<?
session_name('portal_absa');
session_start();

$arrHTTP = explode("?",trim(strtoupper($_SERVER['HTTP_REFERER'])));
$http = trim(strtoupper($arrHTTP[0]));

if(!isset($_SESSION['usuario_p_prov_absa']) || trim($_SESSION['usuario_p_prov_absa']) == "" || (trim(strtoupper($_SESSION["URL_PORTAL"]."FORMULARIOS/FORM_EXPEDIENTE_COMPLEMENTOPAGO.PHP")) != $http && trim(strtoupper($_SESSION["URL_PORTAL"]."FORMULARIOS/FORM_EXPEDIENTE_ICFDI.PHP")) != $http && trim(strtoupper($_SESSION["URL_PORTAL"]."FORMULARIOS/FORM_EXPEDIENTE_PAGO.PHP")) != $http && trim(strtoupper($_SESSION["URL_PORTAL"]."admin.php")) != trim(strtoupper($_SERVER['HTTP_REFERER']))) ){
	?><script>window.location.href="<?=$_SESSION["URL_PORTAL"]."index.php"?>"</script><?
	exit;
}

require("../../conexion/conectar.php");
require("../../libs/funciones.php");

if(!$TOLERANCIA_COMPENSADO_PAGADO = getINI("../../config.ini","TOLERANCIA_COMPENSADO_PAGADO=")){
	$TOLERANCIA_COMPENSADO_PAGADO =.5;
}

$conexion = new CONDB();
$conexion->conectar();
$count_status_pago_buscar_nppcfdi = 0;
if(isset($_POST['status_pago_buscar_nppcfdi'])){
	$count_status_pago_buscar_nppcfdi = count($_POST['status_pago_buscar_nppcfdi']);
}

$statusPagos="";
if(is_array($statusPagos)){
	for($i=0; $i < $count_status_pago_buscar_nppcfdi; $i++){
		if($statusPagos == "")
			$statusPagos = "'".$_POST['status_pago_buscar_nppcfdi'][$i]."'";
		else
			$statusPagos .= ",'".$_POST['status_pago_buscar_nppcfdi'][$i]."'";
	}
}

//if(strtoupper(trim($_SESSION['usuario_p_prov_absa'])) == "ADMIN"){
	$rfcreceptor = $_REQUEST['RFCReceptor'];
/*}else{
	$rfcreceptor = $_SESSION['RFC_RECEPTOR_PORTAL'];
}*/

if(!isset($_REQUEST["uuid"])){
	?><script>$j_6.messager.alert("Error","Faltan parametros","error");</script><?exit;
}

//Extraigo Configuracion General de notificaciones
$notificar_fecha_inicio="";
$qConfig = "select notificar_dias,notificar_despuesde,notificar_repetirdias,notificar_correos,notificar_asunto,notificar_correos_cc,notificar_fecha_inicio,tolerancia_NPvsComplemento,tolerancia_NPvsFactura,tolerancia_FacturaPagada,tolerancia_CompensacionEgreso,tolerancia_tipoCambio from configpagina where rfc_receptor='".$rfcreceptor."' limit 1";
if($rConfig = mysqli_query($conexion->CONEXION,$qConfig)){
	if(mysqli_num_rows($rConfig) > 0){
		$tConfig = mysqli_fetch_assoc($rConfig);
		$notificar_fecha_inicio = $tConfig["notificar_fecha_inicio"];
		$tConfig["tolerancia_NPvsComplemento"] = ((float) $tConfig["tolerancia_NPvsComplemento"] == "")? 0.00 : (float) $tConfig["tolerancia_NPvsComplemento"];
		$tConfig["tolerancia_NPvsFactura"] = ((float) $tConfig["tolerancia_NPvsFactura"] == "")? 0.00 : (float) $tConfig["tolerancia_NPvsFactura"];
		$tConfig["tolerancia_FacturaPagada"] = ((float) $tConfig["tolerancia_FacturaPagada"] == "")? 0.00 : (float) $tConfig["tolerancia_FacturaPagada"];
		$tConfig["tolerancia_CompensacionEgreso"] = ((float) $tConfig["tolerancia_CompensacionEgreso"] == "")? 0.00 : (float) $tConfig["tolerancia_CompensacionEgreso"];
		$tConfig["tolerancia_tipoCambio"] = ((float) $tConfig["tolerancia_tipoCambio"] == "")? 0.00 : (float) $tConfig["tolerancia_tipoCambio"];
	}
}

$tConfig["tolerancia_NPvsComplemento"] = (trim($tConfig["tolerancia_NPvsComplemento"]) == "")? 0 : $tConfig["tolerancia_NPvsComplemento"];
$tConfig["tolerancia_NPvsFactura"] = (trim($tConfig["tolerancia_NPvsFactura"]) == "")? 0 : $tConfig["tolerancia_NPvsFactura"];
$tConfig["tolerancia_FacturaPagada"] = (trim($tConfig["tolerancia_FacturaPagada"]) == "")? 0 : $tConfig["tolerancia_FacturaPagada"];
$tConfig["tolerancia_CompensacionEgreso"] = (trim($tConfig["tolerancia_CompensacionEgreso"]) == "")? 0 : $tConfig["tolerancia_CompensacionEgreso"];
$tConfig["tolerancia_tipoCambio"] = (trim($tConfig["tolerancia_tipoCambio"]) == "")? 0 : $tConfig["tolerancia_tipoCambio"];

$q=generaQuery($_REQUEST["serie"],$_REQUEST["serie"],"I CFDI 3.3",$rfcreceptor,$_REQUEST["folio"],$_REQUEST["folio"],$_REQUEST["fecha_emision_inicio"],$_REQUEST["fecha_emision_final"],$_REQUEST["emisor_nombre"],$_REQUEST["emisor_rfc"]);
// echo $_SESSION['query_count_recibedoce'];
if(!$rCount = mysqli_query($conexion->CONEXION,$_SESSION['query_count_recibedoce'])){
	?><script>$j_6.messager.alert("Error","Ocurrio un error al consultar el numero de registros","error.");</script><?exit;
}
if(mysqli_num_rows($rCount) == 0){
	?><script>$j_6.messager.alert("Aviso","No se encontraron registros","info");</script><?exit;
}
$tCount = mysqli_fetch_assoc($rCount);
$count = $tCount["count"];

$limit = 10;

if(isset($_POST["pagina_actual"])){
	$page = $_REQUEST["pagina_actual"];
}else{
	$page = 1;
}

if( $count >0 ) {
	$total_pages = (integer) ceil($count/$limit);
} else {
	$total_pages = 0;
}
if ($page > $total_pages) $page=$total_pages;
if ($limit<0) $limit = 0;
$start = (integer) $limit*$page - $limit;
if ($start<0) $start = 0;

$q .= " limit $start,$limit";

// echo $q;exit;


?>
<?if(trim($_SESSION["sesion_editar_expediente"]) == "1"){?>
<script>
function cambiaStatusComoPagada(uuid){
	var img = $j_6("#img_"+uuid).attr("src");
	if(img.indexOf("ok.png") != -1){
		$j_6.messager.confirm("Confirmar.","<?=utf8_encode("¿")?>Esta seguro de marcar la factura como no pagada?",function(r){
			if(r){
				$j_6.post("formularios/extras/cambia_status_como_pagada.php",{uuid: uuid,status:0},function(data){
					$j_6("#result").html(data);
				});
			}else{
				return false;
			}
		});
	}else{
		$j_6.messager.confirm("Confirmar.","<?=utf8_encode("¿")?>Esta seguro de marcar el pago como correcto?",function(r){
			if(r){
				$j_6.post("formularios/extras/cambia_status_como_pagada.php",{uuid: uuid,status:1},function(data){
					$j_6("#result").html(data);
				});
			}else{
				return false;
			}
		});
	}
}
</script>
<?}?>
<script>

emisor_rfc = '<?=$_REQUEST["emisor_rfc"]?>';
emisor_nombre = '<?=$_REQUEST["emisor_nombre"]?>';
RFCReceptor = '<?=$_REQUEST["RFCReceptor"]?>';
<?if(is_array(@$_POST["status_pago_buscar_nppcfdi"]) && $count_status_pago_buscar_nppcfdi > 0){?>
status_pago_buscar_nppcfdi = new Array(<?=$statusPagos?>);
<?}else{?>
	status_pago_buscar_nppcfdi = new Array();	
<?}?>
fecha_emision_inicio = '<?=$_REQUEST["fecha_emision_inicio"]?>';
fecha_emision_final = '<?=$_REQUEST["fecha_emision_final"]?>';

pagina=<?=$page?>;

totalrows=<?=$count?>;
no_paginas=<?=$total_pages?>;
ban_busca=true;
</script>

<?
/*$completaQueryPagos = "";
if($_REQUEST["serie"] != ""){$completaQueryPagos = " and serie='".$_REQUEST["serie"]."'";}
if($_REQUEST["folio"] != ""){$completaQueryPagos .= " and folio='".$_REQUEST["folio"]."'";}
if($_REQUEST["uuid"] != ""){$completaQueryPagos .= " and uuid='".$_REQUEST["uuid"]."'";}
if($_REQUEST["fecha_emision_inicio"] != ""){$completaQueryPagos .= " and fechadocto > '".$_REQUEST["fecha_emision_inicio"]."'";}
if($_REQUEST["fecha_emision_final"] != ""){$completaQueryPagos .= " and fechadocto < '".$_REQUEST["fecha_emision_final"]."'";}
if($_REQUEST["emisor_nombre"] != ""){$completaQueryPagos .= " and nombreemi like '%".$_REQUEST["emisor_nombre"]."%'";}
if($_REQUEST["emisor_rfc"] != ""){$completaQueryPagos .= " and rfcemisor < '".$_REQUEST["emisor_rfc"]."'";}

if($_SESSION['todo_RFC_p_prov_absa'] == "SI"){
	$complementoQuery="";
	$permisosComplemento=$_SESSION['permisos_p_prov_absa'];
}else{
	$complementoQuery="and rfcEmisor='".$_SESSION['rfc_cliente_p_prov_absa']."'";
}

$qRecibeDoce = "select rfcemisor,serie,folio,uuid,fechaDocto,tipomoneda as moneda,tipocambio as tipocambio,nombreemi,total,marcar_como_pagada,formadepago, 
(select doce.fecha as fecha from pago_documentos_ref p inner join doce ON p.doce_uuid=doce.adicionalA where uuidCFDIRelacionado=recibedoce.uuid and doce.status <>'C' order by fecha desc limit 1)
as FechaNP
from recibedoce where status not in('C','R') and tipodocto='I CFDI 3.3' and  rfc_receptor='$rfcreceptor' $completaQueryPagos $complementoQuery $permisosComplemento";*/



if(!$rRecibeDoce = mysqli_query($conexion->CONEXION,$q)){
	?><script>$j_6.messager.alert("Error","Ocurrio un error al consultar los documentos.","error.");</script><?exit;
}
if(mysqli_num_rows($rRecibeDoce) <= 0){
	?><script>$j_6.messager.alert("Error","No se encontraron documentos.","error.");</script><?exit;
}
while($tRecibeDoce = mysqli_fetch_array($rRecibeDoce,MYSQLI_ASSOC)){
	
	/*if($notificar_fecha_inicio != ""){
		if( str_replace(":","",str_replace(" ","",str_replace("-","",$tRecibeDoce["fechaDocto"]))) < str_replace(":","",str_replace(" ","",str_replace("-","",$notificar_fecha_inicio))) ){
			if(trim($tRecibeDoce["FechaNP"]) != ""){
				if( str_replace(":","",str_replace(" ","",str_replace("-","",$tRecibeDoce["FechaNP"]))) < str_replace(":","",str_replace(" ","",str_replace("-","",$notificar_fecha_inicio))) ){
					continue;
				}
			}else{
				continue;
			}
		}
	}*/
	
	//$montoTotalCompensado = getMontoCompensado($tRecibeDoce["uuid"]);
	$montoTotalCompensado = $tRecibeDoce["totalIngresoCompensado"];
	$sumaPagadoEnPago=0.00;
	$sumaPagadoEnComplemento=0.00;
	$totalAPagarEnPago=0.00;
	$totalAPagarEnComplemento=0.00;
	?><table width="98%" bgcolor="white" style="border: 5px #DDDDDD solid" id="cfdi_<?=$tRecibeDoce["uuid"]?>">
		<tr>
			<th style="background-color: #DDDDDD; text-align: center" colspan="7">I CFDI 3.3</th>
		</tr>
		<!--<tr class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">-->
		<tr style="background-color: #DDDDDD; text-align: center">
			<td>Proveedor</td>
			<td>Serie</td>
			<td>Folio</td>
			<td>UUID</td>
			<td>Total</td>
			<td>Moneda</td>
			<td>TipoCambio</td>
		</tr>
		<!--<tr class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-accordion-icons">-->
		<tr>
			<!--<td></td>-->
			<td><?=$tRecibeDoce["nombreemi"]?></td>
			<td><?=$tRecibeDoce["serie"]?></td>
			<td><?=$tRecibeDoce["folio"]?></td>
			<td><?=$tRecibeDoce["uuid"]?></td>
			<td><?=$tRecibeDoce["total"]?></td>
			<td><?=$tRecibeDoce["tipoMoneda"]?></td>
			<td><?=$tRecibeDoce["TipoCambio"]?></td>
		</tr>
		<?
			$qMontosAplicados = "select pdr.serie as Dserie,pdr.folio as Dfolio,pdr.adicionalA as Duuid,pdr.total as Dtotal,pdr.adicionalB as Dformadepago,pdr.uuidcfdirelacionado,pdr.monto as PDRmontoPago,pdr.numparcialidad as PDRnumparcialidad,pdr.tipocambio as PDRtipocambio,pdr.moneda as PDRmoneda,
			tmp.TipoCambioDR as RPDRtipocambio,tmp.MonedaDR as RPDRmoneda,tmp.ImpPagado as RPDRimpagado,tmp.NumParcialidad as RPDRnumparcialidad,
			r.nombreemi,r.serie,r.folio,r.MetodoDePago,
			tmp.MonedaP as RDPmoneda,tmp.Monto as RDPmonto,tmp.recibedoce_UUID,tmp.TipoCambioP as RDPtipocambio,tmp.FormaDePago as RDPformadepago,
			tmp.serie as RepSerie,tmp.folio as RepFolio,tmp.uuid as RepUUID,tmp.recibedoce_pagos_id as recibedoce_pagos_id
			from 
			
			(select d.serie,d.folio,d.adicionalA,d.total,d.adicionalB,pdr.uuidcfdirelacionado,pdr.monto,pdr.numparcialidad,pdr.tipocambio,pdr.moneda,pdr.MetodoDePago,pdr.doce_uuid from doce d inner join
			pago_documentos_ref pdr ON d.adicionalA=pdr.doce_uuid where d.status = 1) as pdr			
			
			left join 
			
			(select rpdr.recibedoce_pagos_ID, rpdr.uuidCFDIRelacionado, rpdr.doce_UUID, rpdr.MonedaDR, rpdr.TipoCambioDR, rpdr.NumParcialidad, rpdr.ImpPagado, rpdr.MetodoDePago, rdp.recibedoce_UUID, rdp.FechaPago, rdp.TipoCambioP, rdp.MonedaP, rdp.Monto, rdp.RfcEmisorCtaOrd, rdp.RfcEmisorCtaBen, rdp.FormaDePago,rcomplemento.serie,rcomplemento.folio,rcomplemento.uuid  from 
			recibedoce_pagos_docto_relacionado rpdr 
			left join recibedoce_pagos rdp ON rpdr.recibedoce_pagos_id = rdp.recibedoce_pagos_id 
			left join recibedoce rcomplemento ON rdp.recibedoce_UUID=rcomplemento.uuid where rpdr.uuidCFDIRelacionado = '".$tRecibeDoce["uuid"]."' and rcomplemento.status not in('R','C'))as tmp
			
			ON pdr.doce_uuid = tmp.doce_UUID and pdr.uuidcfdirelacionado = tmp.uuidCFDIRelacionado and (pdr.numparcialidad = tmp.NumParcialidad or pdr.numparcialidad <> tmp.NumParcialidad)
			left join recibedoce r on tmp.uuidCFDIRelacionado = r.uuid where pdr.uuidCFDIRelacionado='".$tRecibeDoce["uuid"]."'
			
			UNION ALL
			
			select pdr.serie as Dserie,pdr.folio as Dfolio,pdr.adicionalA as Duuid,pdr.total as Dtotal,pdr.adicionalB as Dformadepago,pdr.uuidcfdirelacionado,pdr.monto as PDRmontoPago,pdr.numparcialidad as PDRnumparcialidad,pdr.tipocambio as PDRtipocambio,pdr.moneda as PDRmoneda,
			tmp.TipoCambioDR as RPDRtipocambio,tmp.MonedaDR as RPDRmoneda,tmp.ImpPagado as RPDRimpagado,tmp.NumParcialidad as RPDRnumparcialidad,
			r.nombreemi,r.serie,r.folio,r.MetodoDePago,
			tmp.MonedaP as RDPmoneda,tmp.Monto as RDPmonto,tmp.recibedoce_UUID,tmp.TipoCambioP as RDPtipocambio,tmp.FormaDePago as RDPformadepago,
			tmp.serie as RepSerie,tmp.folio as RepFolio,tmp.uuid as RepUUID,tmp.recibedoce_pagos_id as recibedoce_pagos_id
			from 
			
			(select d.serie,d.folio,d.adicionalA,d.total,d.adicionalB,pdr.uuidcfdirelacionado,pdr.monto,pdr.numparcialidad,pdr.tipocambio,pdr.moneda,pdr.MetodoDePago,pdr.doce_uuid from doce d inner join
			pago_documentos_ref pdr ON d.adicionalA=pdr.doce_uuid where d.status = 1) as pdr
			
			
			right join 
			
			(select rpdr.recibedoce_pagos_ID, rpdr.uuidCFDIRelacionado, rpdr.doce_UUID, rpdr.MonedaDR, rpdr.TipoCambioDR, rpdr.NumParcialidad, rpdr.ImpPagado, rpdr.MetodoDePago, rdp.recibedoce_UUID, rdp.FechaPago, rdp.TipoCambioP, rdp.MonedaP, rdp.Monto, rdp.RfcEmisorCtaOrd, rdp.RfcEmisorCtaBen, rdp.FormaDePago,rcomplemento.serie,rcomplemento.folio,rcomplemento.uuid,rcomplemento.status  from 
			recibedoce_pagos_docto_relacionado rpdr 
			left join recibedoce_pagos rdp ON rpdr.recibedoce_pagos_id = rdp.recibedoce_pagos_id 
			left join recibedoce rcomplemento ON rdp.recibedoce_UUID=rcomplemento.uuid where rpdr.uuidCFDIRelacionado = '".$tRecibeDoce["uuid"]."' and 
            rcomplemento.status not in('R','C'))as tmp
			
			ON pdr.doce_uuid = tmp.doce_UUID and pdr.uuidcfdirelacionado = tmp.uuidCFDIRelacionado and (pdr.numparcialidad = tmp.NumParcialidad or pdr.numparcialidad <> tmp.NumParcialidad)
			left join recibedoce r on tmp.uuidCFDIRelacionado = r.uuid where pdr.doce_uuid is null";
			
			if(!$rMontosAplicados = mysqli_query($conexion->CONEXION,$qMontosAplicados)){
				echo mysqli_error($conexion->CONEXION);
				?><script>$j_6.messager.alert("Error","Ocurrio un error al consultar los documentos.","error.");</script><?exit;
			}
			if(mysqli_num_rows($rMontosAplicados) <= 0){
				?>
				<tr>
					<td colspan="7">
					<?if($tRecibeDoce["marcar_como_pagada"] == "0"){?>
						<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
							<tr>
								<th style="background-color: #fcfbe5; text-align: center"><img id="img_<?=$tRecibeDoce["uuid"]?>" src="Imagenes/Attention_A.png"/></th>
							</tr>
						</table>
						<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
							<tr>
								<td>
									<a href="#" id="lbl_<?=$tRecibeDoce["uuid"]?>" onclick="cambiaStatusComoPagada('<?=$tRecibeDoce["uuid"]?>')" >Marcar como pagada.</a>
								</td>
							</tr>
						</table>
					<?}else{?>
						<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
							<tr>
								<th style="background-color: #fcfbe5; text-align: center"><img id="img_<?=$tRecibeDoce["uuid"]?>" src="Imagenes/ok.png"/></th>
							</tr>
						</table>
						<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
							<tr>
								<td>
									<a href="#" id="lbl_<?=$tRecibeDoce["uuid"]?>" onclick="cambiaStatusComoPagada('<?=$tRecibeDoce["uuid"]?>')" >Marcar como NO pagada.</a>
								</td>
							</tr>
						</table>
					<?}?>
					</td>
				</tr>
				</table>
		<?
				continue;
			}
		?>
		<tr>
			<td style="padding: 20px 20px 20px 20px" colspan="6">
				<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
					<tr>
						<th style="background-color: #DDDDDD; text-align: center" colspan="12">PAGOS AL DOCUMENTO</th>
					</tr>
					<tr style="color: #FFFFFF">
						<th style="background-color: #2476af; text-align: center" colspan="7">Pago / I CFDI 3.3</th>
						<th style="background-color: #000000; text-align: center" colspan="8">Complemento / I CFDI 3.3</th>
					</tr>
					<tr style="color: #FFFFFF">
						<td style="background-color: #2476af; text-align: center">Serie</td>
						<td style="background-color: #2476af; text-align: center">Folio</td>
						<!--<td>UUID</td>-->
						<td style="background-color: #2476af; text-align: center">Forma de pago</td>
						<td style="background-color: #2476af; text-align: center">Parcialidad</td>
						<td style="background-color: #2476af; text-align: center">Tipo Cambio</td>
						<td style="background-color: #2476af; text-align: center">Moneda</td>
						<td style="background-color: #2476af; text-align: center">Monto</td>
						<td style="background-color: #000000; text-align: center">Forma de pago</td>
						<td style="background-color: #000000; text-align: center">Parcialidad</td>
						<td style="background-color: #000000; text-align: center">Tipo Cambio</td>
						<td style="background-color: #000000; text-align: center">Moneda</td>
						<td style="background-color: #000000; text-align: center">Monto</td>
						<td style="background-color: #000000; text-align: center">REP UUID</td>
						<td style="background-color: #000000; text-align: center">REP Serie</td>
						<td style="background-color: #000000; text-align: center">REP Folio</td>
					</tr>
	<?
	$con=0;
	$tdEstiloPagoTotalNP="";
	$tdEstiloPagoTotalREP="";
	$tdEstiloPagoNPvsComplemento="";
	$banIncorrecto=false;
	$sumaPagadoEnComplemento=0.00;
	$sumaPagadoEnPago=0.00;
	while($tMontosAplicados = mysqli_fetch_array($rMontosAplicados,MYSQLI_ASSOC)){
		
		
		$sumaPagadoEnComplemento+=$tMontosAplicados["RPDRimpagado"];
		$sumaPagadoEnPago+=$tMontosAplicados["PDRmontoPago"];
		$con++;
		$res = $con%2;
		$trEstilo="";
		if($res == 0)
			$trEstilo = "style='background-color: #999999'";
		
		$tdEstiloMonto = "";
		$tdEstiloTipoCambio = "";
		$tdEstiloMoneda = "";
		$tdEstiloParcialidad = "";
		$tdEstiloFormaDePago = "";
		$tdEstiloREPAplicado = "";
		if((float) $tMontosAplicados["PDRmontoPago"] != (float) $tMontosAplicados["RPDRimpagado"]){
			$diferencia = (float) $tMontosAplicados["PDRmontoPago"] - (float) $tMontosAplicados["RPDRimpagado"];
			if($diferencia < 0){
				$diferencia = $diferencia * -1;
			}
			
			if((float) $diferencia > (float) $tConfig["tolerancia_NPvsComplemento"]){
				$tdEstiloMonto = "style='background-color: red'";
				$banIncorrecto=true;
			}else{
				$tdEstiloMonto = "style='background-color: orange'";
			}
			// $tdEstiloMonto="style='background-color: red'";
			// $banIncorrecto=true;
		}
		if((float) $tMontosAplicados["PDRtipocambio"] != (float) $tMontosAplicados["RPDRtipocambio"]){
			$diferencia = (float) $tMontosAplicados["PDRtipocambio"] - (float) $tMontosAplicados["RPDRtipocambio"];
			if($diferencia < 0){
				$diferencia = $diferencia * -1;
			}
			
			if((float) $diferencia > (float) $tConfig["tolerancia_tipoCambio"]){
				$tdEstiloTipoCambio = "style='background-color: red'";
				$banIncorrecto=true;
			}else{
				$tdEstiloTipoCambio = "style='background-color: orange'";
			}
			// $tdEstiloTipoCambio="style='background-color: red'";
			// $banIncorrecto=true;
			
		}
		if($tMontosAplicados["PDRmoneda"] != $tMontosAplicados["RPDRmoneda"]){
			$tdEstiloMoneda="style='background-color: red'";
			$banIncorrecto=true;
			
		}
		if($tMontosAplicados["PDRnumparcialidad"] != $tMontosAplicados["RPDRnumparcialidad"]){
			$tdEstiloParcialidad="style='background-color: red'";
			$banIncorrecto=true;
		}
		if($tMontosAplicados["Dformadepago"] != $tMontosAplicados["RDPformadepago"]){
			$tdEstiloFormaDePago="style='background-color: red'";
			$banIncorrecto=true;
		}
		
		if($tRecibeDoce["MetodoDePago"] == "PUE"){
			if($tMontosAplicados["RPDRimpagado"] != "" && $tMontosAplicados["RPDRimpagado"] != 0){
				$tdEstiloFormaDePago="style='background-color: yellow'";
				$tdEstiloParcialidad="style='background-color: yellow'";
				$tdEstiloMoneda="style='background-color: yellow'";
				$tdEstiloTipoCambio = "style='background-color: yellow'";
				$tdEstiloMonto = "style='background-color: yellow'";
				$tdEstiloREPAplicado = "style='background-color: yellow'";
				$banIncorrecto=true;
			}else{
				$tdEstiloFormaDePago="";
				$tdEstiloParcialidad="";
				$tdEstiloMoneda="";
				$tdEstiloTipoCambio = "";
				$tdEstiloMonto = "";
				$tdEstiloREPAplicado = "";
				$banIncorrecto=false;
			}
		}
		
		?>
					<tr <?=$trEstilo?>>
						<td <?=$tdEstiloREPAplicado?>><?=$tMontosAplicados["Dserie"]?></td>
						<td <?=$tdEstiloREPAplicado?>><?=$tMontosAplicados["Dfolio"]?></td>
						<!--<td><?=$tMontosAplicados["Duuid"]?></td>-->
						<td <?=$tdEstiloFormaDePago?>><?=$tMontosAplicados["Dformadepago"]?></td>
						<td <?=$tdEstiloParcialidad?>><?=$tMontosAplicados["PDRnumparcialidad"]?></td>
						<td <?=$tdEstiloTipoCambio?>><?=$tMontosAplicados["PDRtipocambio"]?></td>
						<td <?=$tdEstiloMoneda?>><?=$tMontosAplicados["PDRmoneda"]?></td>
						<td <?=$tdEstiloMonto?>><?=$tMontosAplicados["PDRmontoPago"]?></td>
						<td <?=$tdEstiloFormaDePago?>><?=$tMontosAplicados["RDPformadepago"]?></td>
						<td <?=$tdEstiloParcialidad?>><?=$tMontosAplicados["RPDRnumparcialidad"]?></td>
						<td <?=$tdEstiloTipoCambio?>><?=$tMontosAplicados["RPDRtipocambio"]?></td>
						<td <?=$tdEstiloMoneda?>><?=$tMontosAplicados["RPDRmoneda"]?></td>
						<td <?=$tdEstiloMonto?>><?=$tMontosAplicados["RPDRimpagado"]?></td>
						<td <?=$tdEstiloREPAplicado?>><?=$tMontosAplicados["RepUUID"]?></td>
						<td <?=$tdEstiloREPAplicado?>><?=$tMontosAplicados["RepSerie"]?></td>
						<td <?=$tdEstiloREPAplicado?>><?=$tMontosAplicados["RepFolio"]?></td>
					</tr>
			
		<?
		
		
	}
	
	//Multiplico por 1000000 para sacar la parte entera y poder comparar enteros, ya que con decimales hay problemas
	$sumaPagadoEnPago1000000 = $sumaPagadoEnPago * 1000000;
	$sumaPagadoEnComplemento1000000 = $sumaPagadoEnComplemento * 1000000;
	$arrSumaPagadoEnPago1000000 = explode(".",$sumaPagadoEnPago1000000);
	$arrSumaPagadoEnComplemento1000000 = explode(".",$sumaPagadoEnComplemento1000000);
	
	$tdEstiloPagoNPvsComplemento = "style='text-align: right;'";
	if($tRecibeDoce["MetodoDePago"] != "PUE"){
		// if($sumaPagadoEnPago != $sumaPagadoEnComplemento){
		if($arrSumaPagadoEnPago1000000[0] != $arrSumaPagadoEnComplemento1000000[0]){
			$diferencia = (float) $sumaPagadoEnPago - (float) $sumaPagadoEnComplemento;
			if($diferencia < 0){
				$diferencia = $diferencia * -1;
			}
			
			if((float) $diferencia > (float) $tConfig["tolerancia_NPvsComplemento"]){
				$tdEstiloPagoNPvsComplemento = "style='text-align: right; background-color: red'";
				$banIncorrecto=true;
			}else{
				$tdEstiloPagoNPvsComplemento = "style='text-align: right; background-color: orange'";
			}
			// $tdEstiloPagoTotalNP="style='background-color: red'";
			// $banIncorrecto=true;
		}
		//echo $tRecibeDoce["total"]." - ".$sumaPagadoEnPago." - ".$montoTotalCompensado;
		$totalAPagarEnPago = $tRecibeDoce["total"] - ($sumaPagadoEnPago + $montoTotalCompensado);
		$totalAPagarEnComplemento = $tRecibeDoce["total"] - ($sumaPagadoEnComplemento + $montoTotalCompensado);
	}else{
		if($tRecibeDoce["ImpPagadoComplemento"] != 0){
			$tdEstiloPagoNPvsComplemento = "style='text-align: right; background-color: yellow'";
			$banIncorrecto=true;
		}
	}

	if($totalAPagarEnPago != 0){
		
		$totalAPagarEnPagoNoNegativo = $totalAPagarEnPago;
		if($totalAPagarEnPagoNoNegativo < 0){$totalAPagarEnPagoNoNegativo = $totalAPagarEnPagoNoNegativo*-1;}
		
		$tolerancia_FacturaPagada1000000 = explode(".",$tConfig["tolerancia_FacturaPagada"] * 1000000);
		$totalAPagarEnPagoNoNegativo1000000 = explode(".",$totalAPagarEnPagoNoNegativo * 1000000);
		
		if((float) $totalAPagarEnPagoNoNegativo1000000[0] > (float) $tolerancia_FacturaPagada1000000[0]){
			$tdEstiloPagoTotalNP = "style='text-align: right; background-color: red'";
			$banIncorrecto=true;
		}else{
			$tdEstiloPagoTotalNP = "style='text-align: right; background-color: orange'";
		}
		// $tdEstiloPagoTotalNP="style='background-color: red'";
		// $banIncorrecto=true;
	}
	if($totalAPagarEnComplemento != 0){
		$totalAPagarEnComplementoNoNegativo = $totalAPagarEnComplemento;
		if($totalAPagarEnComplementoNoNegativo < 0){$totalAPagarEnComplementoNoNegativo = $totalAPagarEnComplementoNoNegativo*-1;}
		
		$tolerancia_FacturaPagada1000000 = explode(".",$tConfig["tolerancia_FacturaPagada"] * 1000000);
		$totalAPagarEnComplementoNoNegativo1000000 = explode(".",$totalAPagarEnComplementoNoNegativo * 1000000);
		
		if((float) $totalAPagarEnComplementoNoNegativo1000000[0] > (float) $tolerancia_FacturaPagada1000000[0]){
			$tdEstiloPagoTotalREP = "style='text-align: right; background-color: red'";
			$banIncorrecto=true;
		}else{
			$tdEstiloPagoTotalREP = "style='text-align: right; background-color: orange'";
		}
		// $tdEstiloPagoTotalREP="style='background-color: red'";
		// $banIncorrecto=true;
	}
	?>
					<tr>
						<th style="text-align: right" colspan="5">Total Pagado</th>
						<th colspan="2" <?=$tdEstiloPagoNPvsComplemento?>><?=$tRecibeDoce["totalPagoDocumentosRef"]?></th>
						<th style="text-align: right" colspan="4">Total Pagado</th>
						<th <?=$tdEstiloPagoNPvsComplemento?>><?=$tRecibeDoce["ImpPagadoComplemento"]?></th>
					</tr>
					<tr>
						<th style="text-align: right" colspan="5">Total Compensado</th>
						<th style="text-align: right" colspan="2"><?=$tRecibeDoce["totalIngresoCompensado"]?></th>
						<th style="text-align: right" colspan="4"></th>
						<th style="text-align: right" colspan="2"></th>
					</tr>
					<tr>
						<th style="text-align: right" colspan="5">Total a Pagar</th>
						<th <?=$tdEstiloPagoTotalNP?> colspan="2"><?=number_format($totalAPagarEnPago,2,".","")?></th>
						<th style="text-align: right" colspan="4">Total a Pagar</th>
						<th <?=$tdEstiloPagoTotalREP?>><?=number_format($totalAPagarEnComplemento,2,".","")?></th>
					</tr>
				</table>
			</td>
			<?if($banIncorrecto == true){?>
				<td>
					<?if($tRecibeDoce["marcar_como_pagada"] == "0"){?>
						<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
							<tr>
								<th style="background-color: #fcfbe5; text-align: center"><img id="img_<?=$tRecibeDoce["uuid"]?>" src="Imagenes/Attention_A.png"/></th>
							</tr>
							<tr>
								<td>
									<a href="#" id="lbl_<?=$tRecibeDoce["uuid"]?>" onclick="cambiaStatusComoPagada('<?=$tRecibeDoce["uuid"]?>')" >Marcar como pagada.</a>
								</td>
							</tr>
						</table>
					<?}else{?>
						<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
							<tr>
								<th style="background-color: #fcfbe5; text-align: center"><img id="img_<?=$tRecibeDoce["uuid"]?>" src="Imagenes/ok.png"/></th>
							</tr>
							<tr>
								<td>
									<a href="#" id="lbl_<?=$tRecibeDoce["uuid"]?>" onclick="cambiaStatusComoPagada('<?=$tRecibeDoce["uuid"]?>')" >Marcar como NO pagada.</a>
								</td>
							</tr>
						</table>
					<?}?>
				</td>
			<?}else{?>
				<td>
					<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
						<tr>
							<th style="background-color: #fcfbe5; text-align: center"><img src="Imagenes/ok.png"/></th>
						</tr>
					</table>
				</td>
			<?}?>
		</tr>
	</table><?
}

function generaQuery($serieI,$serieF,$doc,$rfcReceptor,$folioI,$folioF,$fechaI,$fechaF,$busca_nombre,$busca_rfc){
global $conexion,$notificar_fecha_inicio,$tConfig;

if(trim($notificar_fecha_inicio) == "" || $notificar_fecha_inicio=="0000-00-00 00:00:00"){
	$notificar_fecha_inicio = "2018-01-01 00:00:00";
}
	if($_SESSION['todo_RFC_p_prov_absa'] == "SI"){
		$complementoQuery="";
		$permisosComplemento=$_SESSION['permisos_p_prov_absa'];
	}else{
		if(trim(strtoupper($_SESSION['RFC_RECEPTOR_PORTAL'])) != trim(strtoupper($_SESSION['rfc_cliente_p_prov_absa']))){
			$complementoQuery=" rfcEmisor='".$_SESSION['rfc_cliente_p_prov_absa']."'";
		}
	}

	
	$rfcQuery = "";
	if($rfcReceptor != ""){
		$rfcQuery="rfc_receptor='$rfcReceptor'";
	}
	
	
	/*if(trim($_REQUEST['status']) == ""){
		$filtroStatusPagoComplemento = " Having statusNP in(0,1,4) or statusPCFDI in(0,1,4)";
	}elseif(trim($_REQUEST['status']) == "FALTANTEPAGO"){
		$filtroStatusPagoComplemento = " Having statusNP in(0,1) or statusPCFDI in(0,1)";
	}elseif(trim($_REQUEST['status']) == "YAPAGADO"){
		$filtroStatusPagoComplemento = " Having statusNP = 4 and statusPCFDI = 4 or marcar_como_pagada = 1";
	}*/
	
	// ------------- INICIA STATUS PAGO ------------------
		
		
		$filtroStatusPagoComplemento="";
		if(isset($_POST['status_pago_buscar_nppcfdi'])){
            $filtroStatusPagoComplemento=" Having ";
            for($i=0; $i < count($_POST['status_pago_buscar_nppcfdi']); $i++){
                if(trim($_POST['status_pago_buscar_nppcfdi'][$i]) != ""){
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "0"){
					   //$filtroStatusPagoComplemento.= " (totalPagoDocumentosRef = 0 or totalPagoDocumentosRef is null)";
					   $filtroStatusPagoComplemento.= " statusNP = 0";
				   }
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "1"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or totalPagoDocumentosRef > 0";
							$filtroStatusPagoComplemento.= " or statusNP = 1";
					   }else{
						   // $filtroStatusPagoComplemento.= "totalPagoDocumentosRef > 0";
						   $filtroStatusPagoComplemento.= "statusNP = 1";
					   }
				   }
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "2"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or totalPago = total";
							$filtroStatusPagoComplemento.= " or statusNP = 4";
					   }else{
						   // $filtroStatusPagoComplemento.= "totalPago = total";
						   $filtroStatusPagoComplemento.= "statusNP = 4";
					   }
				   }
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "3"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or totalPago > total";
							$filtroStatusPagoComplemento.= " or statusNP = 2";
					   }else{
						   // $filtroStatusPagoComplemento.= "totalPago > total";
						   $filtroStatusPagoComplemento.= "statusNP = 2";
					   }
				   }
				   //---------------------------------
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "4"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or (ImpPagadoComplemento = 0 or ImpPagadoComplemento is null)";
							$filtroStatusPagoComplemento.= " or statusPCFDI = 0";
					   }else{
						   // $filtroStatusPagoComplemento.= "(ImpPagadoComplemento = 0 or ImpPagadoComplemento is null)";
						   $filtroStatusPagoComplemento.= "statusPCFDI = 0";
					   }
				   }
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "5"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or ImpPagadoComplemento > 0";
							$filtroStatusPagoComplemento.= " or statusPCFDI = 1";
					   }else{
						   // $filtroStatusPagoComplemento.= "ImpPagadoComplemento > 0";
						   $filtroStatusPagoComplemento.= "statusPCFDI = 1";
					   }
				   }
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "6"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or impPagadoComplemento = total";
							$filtroStatusPagoComplemento.= " or statusPCFDI = 4";
					   }else{
						   // $filtroStatusPagoComplemento.= "impPagadoComplemento = total";
						   $filtroStatusPagoComplemento.= "statusPCFDI = 4";
					   }
				   }
                   if($_POST['status_pago_buscar_nppcfdi'][$i] == "7"){
					   if($filtroStatusPagoComplemento != " Having "){
							// $filtroStatusPagoComplemento.= " or impPagadoComplemento > total";
							$filtroStatusPagoComplemento.= " or statusPCFDI = 2";
					   }else{
						   // $filtroStatusPagoComplemento.= "impPagadoComplemento > total";
						   $filtroStatusPagoComplemento.= "statusPCFDI = 2";
					   }
				   }
				   if($_POST['status_pago_buscar_nppcfdi'][$i] == "8"){
					   if($filtroStatusPagoComplemento != " Having "){
							$filtroStatusPagoComplemento.= " or statusNP = 7";
					   }else{
						   $filtroStatusPagoComplemento.= "statusNP = 7";
					   }
				   }
				   if($_POST['status_pago_buscar_nppcfdi'][$i] == "9"){
					   if($filtroStatusPagoComplemento != " Having "){
							$filtroStatusPagoComplemento.= " or statusNP = 5";
					   }else{
						   $filtroStatusPagoComplemento.= "statusNP = 5";
					   }
				   }
				   if($_POST['status_pago_buscar_nppcfdi'][$i] == "10"){
					   if($filtroStatusPagoComplemento != " Having "){
							$filtroStatusPagoComplemento.= " or statusNP = 6";
					   }else{
						   $filtroStatusPagoComplemento.= "statusNP = 6";
					   }
				   }
                }
            }
            
            if(trim($filtroStatusPago) != "")
                $filtroStatusPago.=" )";
        }
		// --------------- TERMINA STATUS PAGO ---------------
				   
        
	$comRFCRECEPTOR="";
	if(trim($_SESSION["RES_RFC_REFERENCIA"]) == "SI"){
		if(trim(strtoupper($_SESSION['usuario_p_prov_absa'])) != "ADMIN"){
			//$comRFCRECEPTOR="rfc_receptor='".$_SESSION['sesion_ref_rfc_receptor']."' and";
			//$comRFCRECEPTOR="rfc_receptor in ('".str_replace(",","','",$_SESSION['sesion_ref_rfc_receptor'])."') and";
			$comRFCRECEPTOR="rfc_receptor='".$_SESSION['RFC_RECEPTOR_PORTAL']."'";
		}
	}
	
	$comSerie="";
	$comFecha="";
	$comFolio = "";
	$qUUID = "";
	
	if($fechaI != ""){
		$comFecha = "fechaDocto >= '$fechaI 00:00:00'";
	}
	if($fechaF != ""){
		if($comFecha != ""){$comFecha.=" and ";}
		$comFecha .= "fechaDocto <= '$fechaF 23:59:59'";
	}
	if(trim($_REQUEST["uuid"]) != ""){
		$qUUID = "";
		if(trim($_REQUEST["uuid"]) != ""){
			$qUUID="uuid like '%".trim($_REQUEST["uuid"])."%'";
		}
	}
	if(trim($_REQUEST["serie"]) != ""){
		$comSerie = "serie='".$_REQUEST["serie"]."'";
	}	
	if(trim($_REQUEST["folio"]) != ""){
		$comFolio = "folio='".$_REQUEST["serie"]."'";
	}
	
	
	$comBuscaNombre = "";
	if($busca_nombre != ""){
		$comBuscaNombre = " and nombreemi like '%$busca_nombre%'";
	}
	$comBuscaRFC = "";
	if($busca_rfc != ""){
		$comBuscaRFC = " and rfcemisor like '%$busca_rfc%'";
	}
		
		$where = "where tipodocto='I CFDI 3.3'";
		
		$where .= $comBuscaNombre.$comBuscaRFC;
		if($rfcQuery != ""){if($where != ""){$rfcQuery = " and ".$rfcQuery;}}
		$where .=$rfcQuery;
		if($complementoQuery != ""){if($where != ""){$complementoQuery = " and ".$complementoQuery;}}
		$where .=$complementoQuery;
		if($comSerie != ""){if($where != ""){$comSerie = " and ".$comSerie;}}
		$where .=$comSerie;
		if($comFolio != ""){if($where != ""){$comFolio = " and ".$comFolio;}}
		$where .=$comFolio;
		if($comRFCRECEPTOR != ""){if($where != ""){$comRFCRECEPTOR = " and ".$comRFCRECEPTOR;}}
		$where .=$comRFCRECEPTOR;
		if($comFecha != ""){if($where != ""){$comFecha = " and ".$comFecha;}}
		$where .=$comFecha;
		if($permisosComplemento != ""){if($where == ""){$permisosComplemento = str_replace("or ","",str_replace("and ","",$permisosComplemento));}}
		$where .= $permisosComplemento;
		if($qUUID != ""){if($where != ""){$qUUID = " and ".$qUUID;}}
		$where .=$qUUID;
		
		
		
		$generaQuery="select *,
		if(length(MetodoDePago) > 3,99,getStatusNP(tipoComprobante,MetodoDePago,numReferenciasPagoDocumentosRef,vigenciaPUE,SoloFechaNP,totalPagoDocumentosRef,totalIngresoCompensado,fechaDocto,if(length('$notificar_fecha_inicio') > 0,'$notificar_fecha_inicio',null),total,if(length(FechaNP) > 0,FechaNP,null),".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusNP,
		if(length(MetodoDePago) > 3,99,getStatusPCFDI(tipoComprobante,MetodoDePago,impPagadoComplemento,fechaDocto,if(length('$notificar_fecha_inicio') > 0,'$notificar_fecha_inicio',null),total,".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusPCFDI,
		MetodoDePago
		from (select * from view_recibedocepagos
		$where) as tmp $filtroStatusPagoComplemento";
		
		$_SESSION['query_count_recibedoce']="select count(*) as count from (select *,
		if(length(MetodoDePago) > 3,99,getStatusNP(tipoComprobante,MetodoDePago,numReferenciasPagoDocumentosRef,vigenciaPUE,SoloFechaNP,totalPagoDocumentosRef,totalIngresoCompensado,fechaDocto,if(length('$notificar_fecha_inicio') > 0,'$notificar_fecha_inicio',null),total,if(length(FechaNP) > 0,FechaNP,null),".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusNP,
		if(length(MetodoDePago) > 3,99,getStatusPCFDI(tipoComprobante,MetodoDePago,impPagadoComplemento,fechaDocto,if(length('$notificar_fecha_inicio') > 0,'$notificar_fecha_inicio',null),total,".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusPCFDI
		
		from (select * from view_recibedocepagos
		$where) as tmp $filtroStatusPagoComplemento) as tmp2";
		
	
		// echo $_SESSION['query_count_recibedoce'];exit;
          // echo $generaQuery;exit;
        //echo $_SESSION['query_count_recibedoce'];exit;
	return $generaQuery;
}

?>











