<?
session_name('portal_absa');
session_start();
require("../../conexion/conectar.php");
require("../../libs/funciones.php");
require_once("../../MandaCorreos/FuncionSendMailBCC.php");

set_time_limit(0);

date_default_timezone_set('America/Mexico_City');

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

if(!$RFC_ACTIVOS_NOTIFICACION_PAGOS = getINI("RFC_ACTIVOS_NOTIFICACION_PAGOS=","../../config.ini")){
	setBitacora($conexion, "AUTOMATICO", "" , "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Etiqueta RFC_ACTIVOS_NOTIFICACION_PAGOS Faltante", "No se encontro la etiqueta RFC_ACTIVOS_NOTIFICACION_PAGOS en el config.ini");exit;
}

$conexion = new CONDB();
$conexion->conectar();

$arrRFCReceptores = explode(",",$RFC_ACTIVOS_NOTIFICACION_PAGOS);
for($i=0; $i < count($arrRFCReceptores); $i++){
	//Extraigo Configuracion General de notificaciones
	$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='".$arrRFCReceptores[$i]."' limit 1";
	if(!$rConfig = mysqli_query($conexion->CONEXION,$qConfig)){
		setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i] , "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Error en consulta de configuracion general.", $qConfig);exit;
	}
	if(mysqli_num_rows($rConfig) <= 0){
		setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i] , "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "No se encontro la configuracion del receptor.", $qConfig);continue;
	}
	$tConfig = mysqli_fetch_assoc($rConfig);
	
	$tConfig["tolerancia_NPvsComplemento"] = (float) $tConfig["tolerancia_NPvsComplemento"];
	$tConfig["tolerancia_NPvsFactura"] = (float) $tConfig["tolerancia_NPvsFactura"];
	$tConfig["tolerancia_FacturaPagada"] = (float) $tConfig["tolerancia_FacturaPagada"];
	$tConfig["tolerancia_CompensacionEgreso"] = (float) $tConfig["tolerancia_CompensacionEgreso"];
	$tConfig["tolerancia_tipoCambio"] = (float) $tConfig["tolerancia_tipoCambio"];
	
	//Valido la fecha
	$completaQueryValidacionFechaInicio = "";
	if($tConfig['notificar_fecha_inicio'] != ""){
		$completaQueryValidacionFechaInicio = "fecha >= '".$tConfig['notificar_fecha_inicio']."' and ";
	}

	$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"];

	//CONSULTO NOTIFICACION DE PAGO DEL RECEPTOR
	$qPagos = "select d.rfcreceptor,d.serie,d.folio,d.adicionalA as uuid,d.rfcemisor,d.moneda,d.tipocambio,d.nombrerec,d.total,
	sum(if(r.MetodoDePago = 'PPD',pdr.Monto,0)) as totalPorMetodoDePagoPPD,sum(if(r.MetodoDePago = 'PUE',pdr.Monto,0)) as totalPorMetodoDePagoPUE,
	d.con_complemento_correcto,d.adicionalB as formadepago,d.fecha,
	(select group_concat(correo separator ';') as correos from correos_proveedores where rfc=rfcreceptor and rfc_receptor=d.rfcemisor group by rfc) as correos,
	(select notificar_iniciar from proveedores where rfc=rfcreceptor and rfc_receptor=d.rfcemisor group by rfc) as notificar_iniciar,
	(select concat(notificar_dias,',',notificar_despuesde,',',notificar_repetirdias,',',notificar_general) as notificarConfigProveedor from proveedores where rfc=rfcreceptor and rfc_receptor=d.rfcemisor) as notificarConfigProveedor
	from doce d inner join pago_documentos_ref pdr
	on d.adicionalA = pdr.doce_uuid
	inner join recibedoce r
	on pdr.uuidcfdirelacionado = r.uuid
	where $completaQueryValidacionFechaInicio d.tipodocto='NOTIFICACION DE PAGO' and d.notificar_complemento_faltante='1' and d.status='1' and d.rfcemisor='".trim($arrRFCReceptores[$i])."'
	group by d.adicionalA
	order by rfcreceptor";
	 // echo $qPagos;exit;

	if(!$rPago = mysqli_query($conexion->CONEXION,$qPagos)){
		setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Error en consulta de NOTIFICACIONES DE PAGO", $qPagos);exit;
	}
	if(mysqli_num_rows($rPago) <= 0){
		exit;
	}

	//ITERO TODOS LOS PAGOS
	$body="";
	$bodyEnviar="";
	$auxReceptor="";
	$correosProveedor="";
	while($tPago = mysqli_fetch_array($rPago)){
		if($tPago["totalPorMetodoDePagoPPD"] == 0){
			ActualizaStatus($tPago["uuid"],"");
			continue;
		}
		if(trim($tPago["notificar_iniciar"]) == "0"){
			continue;
		}
		$arrConfigProveedor = explode(",",$tPago["notificarConfigProveedor"]);
		$assocConfigProveedor["notificar_dias"]=$arrConfigProveedor[0];
		$assocConfigProveedor["notificar_despuesde"]=$arrConfigProveedor[1];
		$assocConfigProveedor["notificar_repetirdias"]=$arrConfigProveedor[2];
		$assocConfigProveedor["notificar_general"]=$arrConfigProveedor[3];
		
		if(trim($assocConfigProveedor["notificar_dias"]) == "" || $assocConfigProveedor["notificar_general"] == "1"){
			$assocConfigProveedor["notificar_dias"]=$tConfig["notificar_dias"];
			$assocConfigProveedor["notificar_despuesde"]=$tConfig["notificar_despuesde"];
			$assocConfigProveedor["notificar_repetirdias"]=$tConfig["notificar_repetirdias"];
		}
		
		//VALIDO FECHAS PARA ENVIAR LA NOTIFICACION
		if($assocConfigProveedor["notificar_despuesde"] == "FECHAPAGO"){
			
			//Le sumo
			$fechaDespues = sumaDiasFecha(substr($tPago["fecha"],0,10),$assocConfigProveedor["notificar_dias"]);
			$fechaHoy = date("Y-m-d");
			// echo str_replace("-","",$fechaHoy) ." < ". str_replace("-","",$fechaDespues)."<br/><br/>";
			if(str_replace("-","",$fechaHoy) < str_replace("-","",$fechaDespues)){
				
				continue;
			}else if(str_replace("-","",$fechaHoy) > str_replace("-","",$fechaDespues)){
				$noDias = date_diff2($fechaDespues, $fechaHoy);
				//$noDias = dateDifference($fechaDespues, $fechaHoy);
				if($noDias < $assocConfigProveedor["notificar_repetirdias"]){
					continue;
				}
				$residuo=$noDias%$assocConfigProveedor["notificar_repetirdias"];
				if($residuo != 0){
					continue;
				}
			}
		}else if($assocConfigProveedor["notificar_despuesde"] == "FINMES"){
			$fechaHoy = date("Y-m-d");
			$diaFinMes = getUltimoDiaMes(substr($tPago["fecha"],0,4),substr($tPago["fecha"],5,2));
			$fechaFinMes = substr($tPago["fecha"],0,4)."-".substr($tPago["fecha"],5,2)."-".$diaFinMes;
			//echo str_replace("-","",$fechaHoy) ." < ". str_replace("-","",$fechaDespues)."<br/><br/>";
			if(str_replace("-","",$fechaHoy) > str_replace("-","",$fechaFinMes)){
				
				$noDias = date_diff2($fechaHoy,$fechaFinMes);
				//$noDias = dateDifference($fechaHoy, $fechaFinMes);
				if($noDias < $assocConfigProveedor["notificar_repetirdias"]){
					continue;
				}
				$residuo=$noDias%$assocConfigProveedor["notificar_repetirdias"];
				if($residuo != 0){
					continue;
				}
			}else if(str_replace("-","",$fechaHoy) < str_replace("-","",$fechaFinMes)){
				continue;
			}
		}
		
		$bodyEnviar.=$body;
		$body="";
		if(trim($tPago["rfcreceptor"]) != $auxReceptor){
			if(trim($bodyEnviar) != ""){
				$ParaEmail="";
				if(trim($correosProveedor) != ""){
					$ParaEmail=$correosProveedor;
				}else{
					$ParaEmail=$tConfig["notificar_correos"];
				}
				
				$mensaje = SendMail($ParaEmail,$ParaEmail,$tConfig["notificar_asunto"],$bodyEnviar,"","","",$tConfig["notificar_correos_cc"],$tConfig["notificar_correos_cc"]);
				if(!$mensaje){
					setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "No se pudo enviar el correo de notificacion.", $mensaje);exit;
				}else{
					setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Se ha logrado notificar a $ParaEmail", $bodyEnviar);exit;
				}
			}
			$bodyEnviar="";
			$correosProveedor = $tPago["correos"];
			$auxReceptor=$tPago["rfcreceptor"];
		}
		
		$body.= '
		<table width="98%" bgcolor="white" style="border: 5px #DDDDDD solid;">
			<tr>
				<th style="background-color: #DDDDDD; text-align: center" colspan="9">Pago</th>
			</tr>
			<tr class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
				<td>Serie</td>
				<td>Folio</td>
				<!--<td>UUID</td>-->
				<td>Total PUE</td>
				<td>Total PPD</td>
				<td>Total</td>
				<td>Moneda</td>
				<td>Tipo Cambio</td>
				<td>Forma de Pago</td>
				<td>Proveedor</td>
			</tr>
			<tr class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-accordion-icons">
				<td>'.$tPago["serie"].'</td>
				<td>'.$tPago["folio"].'</td>
				<!--<td>'.$tPago["uuid"].'</td>-->
				<td>'.$tPago["totalPorMetodoDePagoPUE"].'</td>
				<td>'.$tPago["totalPorMetodoDePagoPPD"].'</td>
				<td>'.$tPago["total"].'</td>
				<td>'.$tPago["moneda"].'</td>
				<td>'.$tPago["tipocambio"].'</td>
				<td>'.$tPago["formadepago"].'</td>
				<td>'.$tPago["nombrerec"].'</td>
			</tr>';
		
		$qPagoRecibePago = "select pdr.uuidcfdirelacionado,pdr.monto as PDRmontoPago,pdr.numparcialidad as PDRnumparcialidad,pdr.tipocambio as PDRtipocambio,pdr.moneda as PDRmoneda, rpdr.tipocambiodr as RPDRtipocambio,r.total as totalCFDI,r1.MetodoDePago as MetodoDePagoDoc,pdr.MetodoDePago as PDRMetodoDePago,rpdr.MetodoDePago as RPDRMetodoDePago,
	rpdr.monedadr as RPDRmoneda,rpdr.imppagado as RPDRimpagado,rpdr.NumParcialidad as RPDRnumparcialidad, r.nombreemi,r1.serie,r1.folio, rdp.MonedaP as RDPmoneda,rdp.Monto as RDPmonto,rdp.recibedoce_UUID,
	rdp.TipoCambioP as RDPtipocambio,rdp.formadepago,rcomplemento.status as statusComplemento, 
	rdt.totalPagoDocumentosRef, rdt.totalIngresoCompensado, rdt.ImpPagadoComplemento, rdt.FechaNP, rdt.numReferenciasPagoDocumentosRef,
	(select count(*) from pago_documentos_ref where uuidcfdirelacionado=pdr.uuidcfdirelacionado and numparcialidad=pdr.numparcialidad) as numParcialidadDuplicada,pdr.doce_uuid
	from pago_documentos_ref pdr 
	left join recibedoce r1 
	ON pdr.uuidcfdirelacionado = r1.uuid 
	left join recibedoce_pagos_docto_relacionado rpdr 
	ON pdr.doce_uuid = rpdr.doce_uuid and pdr.uuidcfdirelacionado = rpdr.uuidcfdirelacionado and 
	(pdr.numparcialidad = rpdr.numparcialidad or pdr.numparcialidad <> rpdr.numparcialidad) 
	left join recibedoce_pagos rdp 
	ON rpdr.recibedoce_pagos_id = rdp.recibedoce_pagos_id 
	left join recibedoce r 
	ON rpdr.uuidcfdirelacionado = r.uuid 
	left join recibedoce_totales rdt
	ON rdt.uuid=r.uuid
	left join recibedoce rcomplemento on rdp.recibedoce_UUID = rcomplemento.uuid 
	where pdr.doce_uuid='".$tPago["uuid"]."' and r1.MetodoDePago='PPD'";
	// echo $qPagoRecibePago."<br/><br/>";continue;
	/*if($tPago['uuid'] == "AA4C1A86-8728-4E42-9733-317935B47414"){
				echo $qPagoRecibePago;exit;
			}*/

		
		if(!$rPagoRecibePago = mysqli_query($conexion->CONEXION,$qPagoRecibePago)){
			setBitacora($conexion, "AUTOMATICO", "AUTOMATICO", "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Ocurrio un error al consultar los documentos de referencia de pagos", $qPagoRecibePago);exit;
		}
		if(mysqli_num_rows($rPagoRecibePago) <= 0){
			$body.='
			<tr>
				<td colspan="10" style="padding: 20px 20px 20px 20px">
					<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
						<tr>
							<th style="background-color: #fcfbe5; text-align: center"></th>
						</tr>
					</table>
				</td>
			</tr>
			</table>';
		}
		$con=0;
			$body.='
			<tr>
				<td colspan="10" style="padding: 20px 20px 20px 20px">
					<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
						<tr style="color: #FFFFFF">
							<th style="background-color: #2476af; text-align: center" colspan="8">Pago / ICFDI 3.3</th>
							<th style="background-color: #000000; text-align: center" colspan="6">Complemento / ICFDI 3.3</th>
						</tr>
						<tr style="background-color: #2476af; color: #FFFFFF">
							<td>Serie</td>
							<td>Folio</td>
							<td>UUID</td>
							<td>Parcialidad</td>
							<td>Moneda</td>
							<td>T. Cambio</td>
							<td>Monto</td>
							<td>Metodo de Pago</td>
							
							<td style="background-color: #000000">Parcialidad</td>
							<td style="background-color: #000000">Moneda</td>
							<td style="background-color: #000000">T. Cambio</td>
							<td style="background-color: #000000">Forma de Pago</td>
							<td style="background-color: #000000">Monto</td>
							<td style="background-color: #000000">Metodo de Pago</td>
						</tr>';
		
		
		/*
		************************************************************************
		************************************************************************
		************************************************************************
		************************************************************************
		************************************************************************
		************************************************************************
		empieza a iterar los cfdi pagados
		*/
		$totalMontosFacturasNP=0;
		$sumaMontoPago=0.00;
		$banIncorrecto=false;
		$totalPPD=0.00;
		
		while($tPagoRecibePago = mysqli_fetch_array($rPagoRecibePago,MYSQLI_ASSOC)){
			//Si es una PUE la ignoro
			if(trim($tPagoRecibePago["MetodoDePagoDoc"]) == "PUE"){
				continue;
			}
			if($tPagoRecibePago["MetodoDePagoDoc"] == "PPD"){
				$totalPPD = $totalPPD + $tPagoRecibePago["PDRmontoPago"];
			}
			$con++;
			$res = $con%2;
			$trEstilo="";
			if($res == 0){
				$trEstilo = "style='background-color: #999999'";
			}
			$tdEstiloMonto = "";
			$tdEstiloTipoCambio = "";
			$tdEstiloMoneda = "";
			$tdEstiloParcialidad = "";
			$tdEstiloFormaDePago = "";
			$tdEstiloMetodoDePago = "";
			$tdEstiloParcialidadPago = "";
			
			//Valido el monto pagado al documento en NP vs Complemento
			if($tPagoRecibePago["PDRmontoPago"] != $tPagoRecibePago["RPDRimpagado"]){
				
				$diferencia = (float) $tPagoRecibePago["PDRmontoPago"] - (float) $tPagoRecibePago["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;
			}
			//Valido el tipo de cambio del pago al documento en NP vs Complemento
			if($tPagoRecibePago["PDRtipocambio"] != $tPagoRecibePago["RPDRtipocambio"]){
				$diferencia = (float) $tPagoRecibePago["PDRtipocambio"] - (float) $tPagoRecibePago["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;
			}
			//Valido la moneda
			if($tPagoRecibePago["PDRmoneda"] != $tPagoRecibePago["RPDRmoneda"]){
				$tdEstiloMoneda = "style='background-color: red'";
				$banIncorrecto=true;
			}
			//Valido el numero de parcialidad
			if($tPagoRecibePago["PDRnumparcialidad"] != $tPagoRecibePago["RPDRnumparcialidad"]){
				$tdEstiloParcialidad = "style='background-color: red'";
				$tdEstiloParcialidadPago = "style='background-color: red'";
				$banIncorrecto=true;
			}
			//Valido la forma de pago
			if(trim($tPagoRecibePago["formadepago"]) != trim($tPago["formadepago"])){
				$tdEstiloFormaDePago = "style='background-color: red'";
				$banIncorrecto=true;
			}
			if(trim($tPagoRecibePago["PDRMetodoDePago"]) != trim($tPagoRecibePago["RPDRMetodoDePago"])){
				$tdEstiloMetodoDePago = "style='background-color: red'";
				$banIncorrecto=true;
			}
			
			//Valido que si es PUE, el pago haya sido por completo al total del CFDI
			if(trim($tPago["RPDRMetodoDePago"]) == "PUE"){
				$totalCompensadoMasPagadoCom = $tPagoRecibePago["RPDRimpagado"]+$tPagoRecibePago["totalIngresoCompensado"];
				if($totalCompensadoMasPagadoCom != $tPagoRecibePago["totalCFDI"]){
					if($totalCompensadoMasPagadoCom > $tPagoRecibePago["totalCFDI"]){
						$diferencia = (float) $totalCompensadoMasPagadoCom - (float) $tPagoRecibePago["totalCFDI"];
					}
					if($totalCompensadoMasPagadoCom < $tPagoRecibePago["totalCFDI"]){
						$diferencia = (float) $tPagoRecibePago["totalCFDI"] - (float) $totalCompensadoMasPagadoCom;
					}
					if($diferencia < 0){
						$diferencia = $diferencia * -1;
					}
					if((float) $diferencia > (float) $tConfig["tolerancia_FacturaPagada"]){
						$tdEstiloMonto = "style='background-color: red'";
					}
				}
			}
			
			if($tPagoRecibePago["statusComplemento"] == "C" || $tPagoRecibePago["statusComplemento"] == "R" || trim($tPagoRecibePago["RPDRimpagado"]) == ""){
				$tdEstiloMonto = "style='background-color: red'";
				$tdEstiloTipoCambio = "style='background-color: red'";
				$tdEstiloMoneda = "style='background-color: red'";
				$tdEstiloParcialidad = "style='background-color: red'";
				$tdEstiloParcialidadPago = "style='background-color: red'";
				$tdEstiloFormaDePago = "style='background-color: red'";
				$tdEstiloMetodoDePago = "style='background-color: red'";
				$tPagoRecibePago["RPDRimpagado"] = "";
				$tPagoRecibePago["RPDRmoneda"]="";
				$tPagoRecibePago["RPDRtipocambio"]="";
				$tPagoRecibePago["formadepago"]="";
				$tPagoRecibePago["RPDRnumparcialidad"]="";
				$banIncorrecto=true;
			}
			if($tPagoRecibePago["numParcialidadDuplicada"] > 1){
				if($tdEstiloParcialidadPago != ""){
					$tdEstiloParcialidadPago = "class='tdParcialidadPago'";
				}else{
					$tdEstiloParcialidadPago = "style='background-color: yellow'";
				}
			}
				$body.='
				<tr '.$trEstilo.'>
					<td>'.$tPagoRecibePago["serie"].'</td>
					<td>'.$tPagoRecibePago["folio"].'</td>
					<td>'.$tPagoRecibePago["uuidcfdirelacionado"].'</td>
					<td '.$tdEstiloParcialidadPago.'>'.$tPagoRecibePago["PDRnumparcialidad"].'</td>
					<td '.$tdEstiloMoneda.'>'.$tPagoRecibePago["PDRmoneda"].'</td>
					<td '.$tdEstiloTipoCambio.'>'.$tPagoRecibePago["PDRtipocambio"].'</td>
					<td '.$tdEstiloMonto.'>'.$tPagoRecibePago["PDRmontoPago"].'</td>
					<td '.$tdEstiloMetodoDePago.'>'.$tPagoRecibePago["PDRMetodoDePago"].'</td>
					
					<td '.$tdEstiloParcialidad.'>'.$tPagoRecibePago["RPDRnumparcialidad"].'</td>
					<td '.$tdEstiloMoneda.'>'.$tPagoRecibePago["RPDRmoneda"].'</td>
					<td '.$tdEstiloTipoCambio.'>'.$tPagoRecibePago["RPDRtipocambio"].'</td>
					<td '.$tdEstiloFormaDePago.'>'.$tPagoRecibePago["formadepago"].'</td>
					<td '.$tdEstiloMonto.'>'.$tPagoRecibePago["RPDRimpagado"].'</td>
					<td '.$tdEstiloMetodoDePago.'>'.$tPagoRecibePago["RPDRMetodoDePago"].'</td>
				</tr>';	
		// $sumaMontoPago = $tPagoRecibePago["RDPmonto"];
		$sumaMontoPago += (trim($tPagoRecibePago["RPDRimpagado"]) == "")? 0.00 : $tPagoRecibePago["RPDRimpagado"];
		$totalMontosFacturasNP = (float) $totalMontosFacturasNP + (float) $tPagoRecibePago["PDRmontoPago"];
		}// Termina While Facturas y Complementos de la Notificacion de pago
		
		$tdEstiloPagoTotal="";
		$tdEstiloTotalMontosFacturasNP="";
		//Valido el monto total de la Notificación de Pago contra el monto total del complemento.
		//Multiplico por 1000000 para sacar la parte entera y poder comparar enteros, ya que con decimales hay problemas
		$totalEnPago1000000 = $tPago["totalPorMetodoDePagoPPD"] * 1000000;
		$sumaMontoPago1000000 = $sumaMontoPago * 1000000;
		$arrTotalEnPago1000000 = explode(".",$totalEnPago1000000);
		$arrSumaMontoPago1000000 = explode(".",$sumaMontoPago1000000);
		// if($tPago["totalPorMetodoDePagoPPD"] != $sumaMontoPago){
		if($arrTotalEnPago1000000[0] != $arrSumaMontoPago1000000[0]){
			$diferencia = (float) $tPago["totalPorMetodoDePagoPPD"] - (float) $sumaMontoPago;
			if($diferencia < 0){
				$diferencia = $diferencia * -1;
			}
			
			if((float) $diferencia > (float) $tConfig["tolerancia_NPvsComplemento"]){
				$tdEstiloPagoTotal = "style='background-color: red'";
				$banIncorrecto=true;
			}else{
				$tdEstiloPagoTotal = "style='background-color: orange'";
			}
			// $tdEstiloPagoTotal="style='background-color: red'";
			// $banIncorrecto=true;
		}
		//Valido el monto total de la Notificación de Pago contra el total de la suma de los montos de las facturas
		//Multiplico por 1000000 para sacar la parte entera y poder comparar enteros, ya que con decimales hay problemas
		$totalMontosFacturasNP1000000 = $totalMontosFacturasNP * 1000000;
		$arrTotalMontosFacturasNP1000000 = explode(".",$totalMontosFacturasNP1000000);
		// if($tPago["totalPorMetodoDePagoPPD"] != $totalMontosFacturasNP){
		if($arrTotalEnPago1000000[0] != $arrTotalMontosFacturasNP1000000[0]){
			$diferencia = (float) $tPago["totalPorMetodoDePagoPPD"] - (float) $totalMontosFacturasNP;
			if($diferencia < 0){
				$diferencia = $diferencia * -1;
			}
			if((float) $diferencia > (float) $tConfig["tolerancia_NPvsFactura"]){
				$tdEstiloTotalMontosFacturasNP = "style='background-color: red'";
				$banIncorrecto=true;
			}else{
				$tdEstiloTotalMontosFacturasNP = "style='background-color: orange'";
			}
			// $tdEstiloTotalMontosFacturasNP="style='background-color: red'";
			// $banIncorrecto=true;
		}
						$body.='
						<tr>
							<th style="text-align: right" colspan="6">Total Pago</th>
							<th style="text-align: right" colspan="1" '.$tdEstiloTotalMontosFacturasNP.'>'.$totalMontosFacturasNP.'</th>
							<th style="text-align: right" colspan="4">Total Complemento</th>
							<th style="text-align: right" colspan="1" '.$tdEstiloPagoTotal.'>'.$sumaMontoPago.'</th>
						</tr>
					</table>
				</td>';
		
		// if($tPago["totalPorMetodoDePagoPPD"] != $sumaMontoPago){
		if($arrTotalEnPago1000000[0] != $arrTotalMontosFacturasNP1000000[0]){
			$diferencia = (float) $tPago["totalPorMetodoDePagoPPD"] - (float) $sumaMontoPago;
			if($diferencia < 0){
				$diferencia = $diferencia * -1;
			}
			
			if((float) $diferencia > (float) $tConfig["tolerancia_NPvsComplemento"]){
				?><script>$j_6("#totalpago_<?=$tPago["uuid"]?>").css("background-color","red");</script><?
			}else{
				?><script>$j_6("#totalpago_<?=$tPago["uuid"]?>").css("background-color","orange");</script><?
			}
			
		}
		if($banIncorrecto == true){
					if($tPago["con_complemento_correcto"] == "0"  || trim($tPago["con_complemento_correcto"]) == ""){
						$body.='<td>
							<table width="98%" bgcolor="white" style="border: 2px #DDDDDD solid">
								<tr>
									<th style="background-color: #fcfbe5; text-align: center"></th>
								</tr>
							</table>
						</td>';
					}else{
						ActualizaStatus($tPago["uuid"],$arrRFCReceptores[$i]);
						$body.=''; continue;
					}
		}else{
				ActualizaStatus($tPago["uuid"],$arrRFCReceptores[$i]);
				$body='';continue;
		}
			$body.='
			</tr>
		</table>';
		
	}//Termina While Notificacion Pago
	$bodyEnviar.=$body;
	$body="";
	if(trim($tPago["rfcreceptor"]) != $auxReceptor){
		if(trim($bodyEnviar) != ""){
			$ParaEmail="";
			if(trim($correosProveedor) != ""){
				$ParaEmail=$correosProveedor;
			}else{
				$ParaEmail=$tConfig["notificar_correos"];
			}
			
			$mensaje = SendMail($ParaEmail,$ParaEmail,$tConfig["notificar_asunto"],$bodyEnviar,"","","","","");
			if(!$mensaje){
				setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "No se pudo enviar el correo de notificacion.", $mensaje);
			}else{
				setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Se ha logrado notificar a $ParaEmail", $bodyEnviar);
			}
		}
		$bodyEnviar="";
		$correosProveedor = $tPago["correos"];
		$auxReceptor=$tPago["rfcreceptor"];
	}
}//Termina FOR Receptores

function sumaDiasFecha($fecha,$dias){
	$fechaS = date("Y-m-d", strtotime("$fecha $dias days"));
	return $fechaS;
}

function getUltimoDiaMes($elAnio,$elMes) {
  return date("d",(mktime(0,0,0,$elMes+1,1,$elAnio)-1));
}

function date_diff2($date1, $date2) { 
    $current = $date1; 
    $datetime2 = date_create($date2); 
    $count = 0; 
    while(date_create($current) < $datetime2){ 
        $current = gmdate("Y-m-d", strtotime("+1 day", strtotime($current))); 
        $count++; 
    } 
    return $count; 
}

function dateDifference($date_1 , $date_2 , $differenceFormat = '%a' )
{
    $datetime1 = date_create($date_1);
    $datetime2 = date_create($date_2);
    
    $interval = date_diff($datetime1, $datetime2);
    
    return $interval->format($differenceFormat);
    
}

function ActualizaStatus($uuid,$rfc){
	global $conexion;
	$q="update doce set notificar_complemento_faltante='0' where adicionalA='$uuid'";
	if(!mysqli_query($conexion->CONEXION,$q)){
		setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "No se pudo actualizar el status de notificar_complemento_faltante.", $q);
		return false;
	}else{
		setBitacora($conexion, "AUTOMATICO", $arrRFCReceptores[$i], "NOTIFICACION AUTOMATICA COMPLEMENTOS FALTANTES", "Se logro actualizar el status de notificar_complemento_faltante.", $q);
		return true;
	}
}
?>
