<?php
//session_start();
if(!isset($_SESSION))session_start();
//include_once "verifica.php";
//include_once "../conexion.php";

//@$xnombres=$_REQUEST['xnombres'];
$creform = new CreditosFormulas;

class CreditosFormulas{


	/***********DIAS SEMANA*************/
	function dias_semana($ndia, $modo){
	
		switch ($ndia){
			case 0:
				$dia_corto = "DOM.";
				$dia_largo = "DOMINGO";				
				break;
			case 1:
				$dia_corto = "LUN.";
				$dia_largo = "LUNES";				
				break;
			case 2:
				$dia_corto = "MAR.";
				$dia_largo = "MARTES";				
				break;
			case 3:
				$dia_corto = "MIE.";
				$dia_largo = "MIERCOLES";				
				break;
			case 4:
				$dia_corto = "JUE.";
				$dia_largo = "JUEVES";				
				break;
			case 5:
				$dia_corto = "VIE.";
				$dia_largo = "VIERNES";				
				break;
			case 6:
				$dia_corto = "SAB.";
				$dia_largo = "SABADO";				
				break;				
		}		
		
		if($modo==1){
			return $dia_corto;
		}

		if($modo==2){
			return $dia_largo;
		}		
	}






	/***********calcular_amortizacion*************/
	function calcular_amortizacion($conexion, $xfecha, $xsql_empresa, $xsql_documento){
		$xamortizado = 0;
		$xamortizado_ajuste_error = 0;
		
		/*
		echo "SELECT o.ordped_codi, o.ordped_numero, SUM(oc.opecaj_monto) as amortizado
										FROM operacion_caja oc
										INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
										INNER JOIN orden_pedido o ON o.ordped_codi=opc.ordped_codi_fk
										WHERE oc.opecaj_estado=1
										AND oc.opecaj_tipo_de_nota=0
										AND o.ordped_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordped_fecha ='$xfecha'
										ORDER BY o.ordped_codi DESC;";
		*/								
		
		$r = mysqli_query($conexion,"SELECT o.ordped_codi, o.ordped_numero, SUM(oc.opecaj_monto) as amortizado
										FROM operacion_caja oc
										INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
										INNER JOIN orden_pedido o ON o.ordped_codi=opc.ordped_codi_fk
										WHERE oc.opecaj_estado=1
										AND oc.opecaj_tipo_de_nota=0
										AND o.ordped_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordped_fecha ='$xfecha'
										ORDER BY o.ordped_codi DESC;");
		while($row = mysqli_fetch_array($r)){
			$xamortizado_venta = $row['amortizado']; 
		}

		$r1 = mysqli_query($conexion,"SELECT o.ordped_codi, o.ordped_numero, SUM(oc.opecaj_monto) as amortizado
										FROM operacion_caja oc
										INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
										INNER JOIN orden_pedido o ON o.ordped_codi=opc.ordped_codi_fk
										WHERE oc.opecaj_estado=1
										AND oc.opecaj_tipo_de_nota=1
										AND o.ordped_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordped_fecha ='$xfecha'
										ORDER BY o.ordped_codi DESC;");
		while($row1 = mysqli_fetch_array($r1)){
			$xamortizado_notacredito = $row1['amortizado']; 
		}

		$xamortizado = $xamortizado_venta - $xamortizado_notacredito;
		
		
		$xamortizado_ajuste_error = 0;
		$r2 = mysqli_query($conexion,"SELECT o.ordped_codi, o.ordped_numero, SUM(oc.opecaj_monto) as amortizado,
										opd.ordpeddet_codi
										FROM operacion_caja oc
										INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
										INNER JOIN orden_pedido o ON o.ordped_codi=opc.ordped_codi_fk
										LEFT JOIN orden_pedido_detalle opd ON o.ordped_codi=opd.ordped_codi_fk
										WHERE oc.opecaj_estado=1
										AND oc.opecaj_tipo_de_nota=0
										AND opd.ordpeddet_codi is null
										AND o.ordped_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordped_fecha ='$xfecha'
										GROUP BY opd.ordped_codi_fk
										ORDER BY o.ordped_codi DESC;");
		while($row2 = mysqli_fetch_array($r2)){
			$xamortizado_ajuste_error = $row2['amortizado']; 
		}
						
		return $xamortizado - $xamortizado_ajuste_error; 		
	}



	/***********calcular_amortizacion nota credito*************/
	function calcular_amortizacion_notacredito($conexion, $xfecha, $xsql_empresa, $xsql_documento){
		$xamortizado = 0;
		$xamortizado_ajuste_error = 0;
		$r = mysqli_query($conexion,"SELECT o.ordped_codi, o.ordped_numero, SUM(oc.opecaj_monto) as amortizado
										FROM operacion_caja oc
										INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
										INNER JOIN orden_pedido o ON o.ordped_codi=opc.ordped_codi_fk
										WHERE oc.opecaj_estado=1
										AND oc.opecaj_tipo_de_nota=1
										AND o.ordped_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordped_fecha ='$xfecha'
										ORDER BY o.ordped_codi DESC;");
		while($row = mysqli_fetch_array($r)){
			$xamortizado = $row['amortizado']; 
		}
		
		
		$xamortizado_ajuste_error = 0;
		$r2 = mysqli_query($conexion,"SELECT o.ordped_codi, o.ordped_numero, SUM(oc.opecaj_monto) as amortizado,
										opd.ordpeddet_codi
										FROM operacion_caja oc
										INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
										INNER JOIN orden_pedido o ON o.ordped_codi=opc.ordped_codi_fk
										LEFT JOIN orden_pedido_detalle opd ON o.ordped_codi=opd.ordped_codi_fk
										WHERE oc.opecaj_estado=1
										AND oc.opecaj_tipo_de_nota=1
										AND opd.ordpeddet_codi is null
										AND o.ordped_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordped_fecha ='$xfecha'
										GROUP BY opd.ordped_codi_fk
										ORDER BY o.ordped_codi DESC;");
		while($row2 = mysqli_fetch_array($r2)){
			$xamortizado_ajuste_error = $row2['amortizado']; 
		}
						
		return $xamortizado - $xamortizado_ajuste_error; 		
	}



	/***********calcular_amortizacion_compra*************/
	function calcular_amortizacion_compra($conexion, $xfecha, $xsql_empresa, $xsql_documento){
		$xamortizado = 0;
		$xamortizado_ajuste_error = 0;
		$r = mysqli_query($conexion,"SELECT o.ordcom_codi, o.ordcom_numero, SUM(oc.opecaj_monto) as amortizado
										FROM operacion_caja oc
										INNER JOIN orden_compra_caja occ ON oc.opecaj_codi=occ.opecaj_codi_fk
										INNER JOIN orden_compra o ON o.ordcom_codi=occ.ordcom_codi_fk
										WHERE oc.opecaj_estado=1
										AND o.ordcom_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordcom_fecha ='$xfecha'
										ORDER BY o.ordcom_codi DESC;");
		while($row = mysqli_fetch_array($r)){
			$xamortizado = $row['amortizado']; 
		}
		
		
		$xamortizado_ajuste_error = 0;
		$r2 = mysqli_query($conexion,"SELECT o.ordcom_codi, o.ordcom_numero, SUM(oc.opecaj_monto) as amortizado,
										ocd.ordcomdet_codi
										FROM operacion_caja oc
										INNER JOIN orden_compra_caja occ ON oc.opecaj_codi=occ.opecaj_codi_fk
										INNER JOIN orden_compra o ON o.ordcom_codi=occ.ordcom_codi_fk
										LEFT JOIN orden_compra_detalle ocd ON o.ordcom_codi=ocd.ordcom_codi_fk
										WHERE oc.opecaj_estado=1
										AND ocd.ordcomdet_codi is null
										AND o.ordcom_estado=1 "
										.$xsql_empresa.$xsql_documento.
										"AND o.ordcom_fecha ='$xfecha'
										GROUP BY ocd.ordcom_codi_fk
										ORDER BY o.ordcom_codi DESC;");
		while($row2 = mysqli_fetch_array($r2)){
			$xamortizado_ajuste_error = $row2['amortizado']; 
		}
						
		return $xamortizado - $xamortizado_ajuste_error; 
		
	}




	/***********calcular_credito_saldo*************/
	function calcular_credito_saldo($conexion, $xper_codi, $xper_importe_credito, $xper_importe_sobregiro){
		$xdias_vencidos3 = 0;
		$xmonto_total = 0;
		$xamortizado_total = 0;		
		$xdias_vencidos = 0;
		$xdias_vencidos_ampliacion = 0;		
		
		/*
		$r_ventas = mysqli_query($conexion, "SELECT o.*, p.*, pt.*, dp.*, e.*, SUM(ordpeddet_precio * ordpeddet_cantidad) AS monto,
											SUM(ordpeddet_cantidad) AS cantidad_total, 
											DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito DAY) ) as dias_vencidos, 
											DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito_ampliacion DAY) ) as dias_vencidos_ampliacion
											FROM orden_pedido o
											INNER JOIN personas p ON o.per_codi_fk=p.per_codi
											INNER JOIN pago_tipo pt ON o.pagtip_codi_fk=pt.pagtip_codi
											INNER JOIN orden_pedido_detalle opd ON opd.ordped_codi_fk=o.ordped_codi
											INNER JOIN documento_pago dp ON dp.docpag_codi=o.docpag_codi_fk
											INNER JOIN empresas e ON o.emp_codi_fk=e.emp_codi
											WHERE p.per_codi=$xper_codi AND
											o.pagtip_codi_fk=2 AND
											o.ordped_estado=1
											GROUP BY o.ordped_codi
											ORDER BY o.ordped_fecha DESC, ordped_numero DESC;");
		*/									
		/*				
		$r_ventas = mysqli_query($conexion, "SELECT o.ordped_numero, o.ordped_codi, 
											SUM((ordpeddet_precio - ordpeddet_precio_descuento) * (ordpeddet_cantidad - ordpeddet_cantidad_devolver)) AS monto,
											DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito DAY) ) as dias_vencidos,
											DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito_ampliacion DAY) ) as dias_vencidos_ampliacion
											FROM orden_pedido o
											INNER JOIN orden_pedido_detalle opd ON opd.ordped_codi_fk=o.ordped_codi
											WHERE o.per_codi_fk=$xper_codi AND
											o.pagtip_codi_fk=2 AND
											o.ordped_estado=1
											GROUP BY o.ordped_codi
											HAVING monto > 0
											ORDER BY o.ordped_fecha DESC, ordped_numero DESC;");											
		*/									
		/*
		$r_ventas = mysqli_query($conexion, "SELECT o.ordped_numero, o.ordped_codi, 
											SUM((ordpeddet_precio - ordpeddet_precio_descuento) * (ordpeddet_cantidad - ordpeddet_cantidad_devolver)) AS monto,
											DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito DAY) ) as dias_vencidos,
											DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito_ampliacion DAY) ) as dias_vencidos_ampliacion
											FROM orden_pedido o
											INNER JOIN orden_pedido_detalle opd ON opd.ordped_codi_fk=o.ordped_codi
											WHERE o.per_codi_fk=$xper_codi AND
											o.ordped_estado=1
											GROUP BY o.ordped_codi
											HAVING monto > 0
											ORDER BY o.ordped_fecha DESC, ordped_numero DESC;");											
		*/
		
		$r_ventas = mysqli_query($conexion, "SELECT o.ordped_numero, o.ordped_codi, 
											SUM((ordpeddet_precio - ordpeddet_precio_descuento) * (ordpeddet_cantidad - ordpeddet_cantidad_devolver)) AS monto,
											IF(o.pagtip_codi_fk=2, DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito DAY)), 0) as dias_vencidos,
											IF(o.pagtip_codi_fk=2, DATEDIFF(now(),DATE_ADD(o.ordped_fecha, INTERVAL o.ordped_dias_credito_ampliacion DAY)), 0) as dias_vencidos_ampliacion											
											FROM orden_pedido o
											INNER JOIN orden_pedido_detalle opd ON opd.ordped_codi_fk=o.ordped_codi
											WHERE o.per_codi_fk=$xper_codi AND
											o.ordped_estado=1
											GROUP BY o.ordped_codi
											HAVING monto > 0
											ORDER BY o.ordped_fecha DESC, ordped_numero DESC;");											
		
		while($row_ventas = mysqli_fetch_array($r_ventas)){			
			/*
			echo "<br><br>";
			echo "ADENTRO...";
			echo "<br><br>";
			*/
		
			$xordped_numero = $row_ventas['ordped_numero'];
			$xordped_codi = $row_ventas['ordped_codi'];
			//$xmonto = round($row_ventas['monto'],3);
			$xmonto = $row_ventas['monto'];
			$xmonto_total = $xmonto_total + $xmonto;			
			
			//if($row_ventas['dias_vencidos'] > $xdias_vencidos){
				$xdias_vencidos = $row_ventas['dias_vencidos'];									
			//}

			//if($row_ventas['dias_vencidos_ampliacion'] > $xdias_vencidos_ampliacion){
				$xdias_vencidos_ampliacion = $row_ventas['dias_vencidos_ampliacion'];									
			//}	
				
		
			if($xdias_vencidos_ampliacion < $xdias_vencidos){
				$xdias_vencidos2 = $xdias_vencidos_ampliacion;
			}else{
				$xdias_vencidos2 = $xdias_vencidos;			
			}
			/*
			$r_amortizado = mysqli_query($conexion, "SELECT SUM(oc.opecaj_monto) as amortizado
												FROM operacion_caja oc
												INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
												WHERE ordped_codi_fk=$xordped_codi AND 
												oc.opecaj_estado=1;");
			*/									
			$r_amortizado = mysqli_query($conexion, "SELECT SUM( IF(oc.opecaj_tipo_de_nota=1, (oc.opecaj_monto * -1), oc.opecaj_monto) ) as amortizado
												FROM operacion_caja oc
												INNER JOIN orden_pedido_caja opc ON oc.opecaj_codi=opc.opecaj_codi_fk
												WHERE ordped_codi_fk=$xordped_codi AND 
												oc.opecaj_estado=1;");																								
		
			while($row_amortizado = mysqli_fetch_array($r_amortizado)){
				//$xamortizado = round($row_amortizado['amortizado'],3);
				$xamortizado = $row_amortizado['amortizado'];
				$xamortizado_total = $xamortizado_total + $xamortizado;	
				$xmonto = number_format($xmonto,2,'.','');					
				$xamortizado = number_format($xamortizado,2,'.','');

					?>
					
					<script language="javascript">
					//alert("esss....<?php echo $xmonto; ?> - <?php echo $xamortizado; ?>");
					</script>	
					
					<?php		
								
				if($xmonto > $xamortizado){				
					?>					
					<script language="javascript">
					//alert(" <?php echo $xordped_numero; ?> - <?php echo $xmonto; ?> - <?php echo $xamortizado; ?> - <?php echo $xdias_vencidos; ?> - <?php echo $xdias_vencidos_ampliacion; ?> - (<?php echo $xdias_vencidos2; ?>)");
					</script>	
					
					<?php		
					if($xdias_vencidos2 > $xdias_vencidos3){
						$xdias_vencidos3 = $xdias_vencidos2;
					}		
				}					
			}
		}
		
		/*
		echo "<br><br>";
		echo 'xmonto_total: '.$xmonto_total;	
		echo "<br>";		
		echo 'xamortizado_total: '.$xamortizado_total;
		echo "<br>";		
		echo 'saldo: '.round((float)$xmonto_total,3) - round((float)$xamortizado_total,3);
		echo "<br><br>";	
		*/	
		
		if($xper_importe_sobregiro > $xper_importe_credito){		
			$xmonto_credito = $xper_importe_sobregiro;
		}else{		
			$xmonto_credito = $xper_importe_credito;		
		}
		
     	$xdeuda = $xmonto_total - $xamortizado_total;		
		//echo 'xdeuda: '.$xdeuda;
		//echo "<br><br>";		
		$xdisponible = $xmonto_credito - $xdeuda;
		
		$arr_credito = array(
			"xper_credito" => 1,
			"xmonto_credito" => number_format($xmonto_credito,2,'.',''),
			"xutilizado" => number_format($xdeuda,2,'.',''),
			"xdisponible" => number_format($xdisponible,2,'.',''),
			"xdias_vencidos" => $xdias_vencidos3,			
		);		
		return $arr_credito;		
	}
	
	



	/***********calcular_stock*************/
	function calcular_stock($conexion, $xemp_codi, $xprd_codi, $xunimed_codi){

		$result4=mysqli_query($conexion,"SELECT ot.opetip_tipo, sum(oad.opealmdet_cantidad) as cantidades 
								FROM operacion_almacen_detalle oad 
								INNER JOIN operacion_almacen oa ON oad.opealm_codi_fk=oa.opealm_codi 
								INNER JOIN operacion_tipo ot ON ot.opetip_codi=oa.opetip_codi_fk 
								WHERE oa.emp_codi_fk=$xemp_codi 
								AND oa.opealm_estado=1 
								and oad.prd_codi_fk=$xprd_codi 
								and oad.unimed_codi_fk=$xunimed_codi 
								GROUP BY ot.opetip_tipo;");
	
		$xcantidad_ingreso = 0;
		$xcantidad_salida = 0;													
	
		while($row4=mysqli_fetch_array($result4)){																
			if($row4['opetip_tipo']=="INGRESO"){	
				$xcantidad_ingreso = $row4['cantidades'];
			}			
			if($row4['opetip_tipo']=="SALIDA"){	
				$xcantidad_salida = $row4['cantidades'];
			}			
		}
		
		$xstock = $xcantidad_ingreso - $xcantidad_salida;
		$xstock = round($xstock,2);
										
		return $xstock; 		
	}

	
	
				
	
}		
?>