<?
if(!isset($_SESSION['usuario_p_prov_absa']) || trim($_SESSION['usuario_p_prov_absa']) == "" || trim(strtoupper($_SESSION["URL_PORTAL"]."admin.php")) != trim(strtoupper($_SERVER['HTTP_REFERER']))){
	?><script>window.location.href="<?=$_SESSION["URL_PORTAL"]."index.php"?>"</script><?
	exit;
}
$col_name[0]="A";
$col_name[1]="B";
$col_name[2]="C";
$col_name[3]="D";
$col_name[4]="E";
$col_name[5]="F";
$col_name[6]="G";
$col_name[7]="H";
$col_name[8]="I";
$col_name[9]="J";
$col_name[10]="K";
$col_name[11]="L";
$col_name[12]="M";
$col_name[13]="N";
$col_name[14]="O";
$col_name[15]="P";
$col_name[16]="Q";
$col_name[17]="R";
$col_name[18]="S";
$col_name[19]="T";
$col_name[20]="U";
$col_name[21]="V";
$col_name[22]="W";
$col_name[23]="X";
$col_name[24]="Y";
$col_name[25]="Z";


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


$MOD_NP_STATUS_0 = trim(getINI("MOD_NP_STATUS_0=","../config.ini"));
if($MOD_NP_STATUS_0 == ""){

}
$MOD_NP_STATUS_2 = trim(getINI("MOD_NP_STATUS_2=","../config.ini"));
if($MOD_NP_STATUS_2 == ""){

}
$MOD_NP_STATUS_3 = trim(getINI("MOD_NP_STATUS_3=","../config.ini"));
if($MOD_NP_STATUS_3 == ""){

}
$MOD_NP_STATUS_4 = trim(getINI("MOD_NP_STATUS_4=","../config.ini"));
if($MOD_NP_STATUS_4 == ""){

}
$MOD_NP_STATUS_5 = trim(getINI("MOD_NP_STATUS_5=","../config.ini"));
if($MOD_NP_STATUS_5 == ""){

}
$MOD_NP_STATUS_8 = trim(getINI("MOD_NP_STATUS_8=","../config.ini"));
if($MOD_NP_STATUS_8 == ""){

}
$MOD_NP_STATUS_11 = trim(getINI("MOD_NP_STATUS_11=","../config.ini"));
if($MOD_NP_STATUS_11 == ""){

}
$MOD_NP_STATUS_12 = trim(getINI("MOD_NP_STATUS_12=","../config.ini"));
if($MOD_NP_STATUS_12 == ""){

}


$completaQueryPagos = "";
if($_REQUEST["serie"] != ""){$completaQueryPagos = " and serie='".$_REQUEST["serie"]."'";}
if($_REQUEST["folio"] != ""){$completaQueryPagos .= " and folio='".$_REQUEST["folio"]."'";}
if($_REQUEST["uuid"] != ""){$completaQueryPagos .= " and adicionalA='".$_REQUEST["uuid"]."'";}
if($_REQUEST["fecha_emision_inicio"] != ""){$completaQueryPagos .= " and fecha >= '".$_REQUEST["fecha_emision_inicio"]."T00:00:00'";}
if($_REQUEST["fecha_emision_final"] != ""){$completaQueryPagos .= " and fecha <= '".$_REQUEST["fecha_emision_final"]."T23:59:59'";}
if($_REQUEST["emisor_nombre"] != ""){$completaQueryPagos .= " and nombrerec like '%".$_REQUEST["emisor_nombre"]."%'";}
if($_REQUEST["emisor_rfc"] != ""){$completaQueryPagos .= " and rfcreceptor = '".$_REQUEST["emisor_rfc"]."'";}
if($_REQUEST["status"] !== ""){
	$st = "";
	switch($_REQUEST["status"]){
		case "SINRELACION": $st = 5;break;
		case "NOCOMPLETOS": $st = 0;break;
		case "COMPLETOS": $st = 4;break;
		case "INCORRECTOS": $st = 3;break;
		default :
	}
	
	if($st !== ""){
		if($_REQUEST["status"] !== "COMPLETOS"){
			$completaQueryPagos .= " and (dstatus.status = '$st' and d.con_complemento_correcto = '0')";
		}else{
			$completaQueryPagos .= " and (dstatus.status = '$st' or d.con_complemento_correcto = '1')";
		}
		
	}
}

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

//Valido la fecha
$completaQueryValidacionFechaInicio = "";
if($notificar_fecha_inicio != ""){
	$completaQueryValidacionFechaInicio = "fecha >= '".$tConfig['notificar_fecha_inicio']."' and ";
}

// $qPagos = "select rfcreceptor,serie,folio,adicionalA as uuid,rfcemisor,moneda,tipocambio,nombrerec,total,con_complemento_correcto,adicionalB as formadepago from doce where $completaQueryValidacionFechaInicio tipodocto='NOTIFICACION DE PAGO' and rfcemisor='$rfcemisor' $completaQueryPagos $complementoQuery $permisosComplemento";

//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,
dstatus.totalPPD as totalPorMetodoDePagoPPD,dstatus.totalPUE as totalPorMetodoDePagoPUE,
d.con_complemento_correcto,d.adicionalB as formadepago, d.fechaPago, d.fecha, dstatus.status, date_format(d.fechaPago,'%Y%m%d%H%i%s') as formatFechaPago
from doce d inner join recibecfd_doce_status dstatus
ON d.adicionalA=dstatus.uuid
where $completaQueryValidacionFechaInicio d.tipodocto='NOTIFICACION DE PAGO' and d.rfcemisor='$rfcemisor' $completaQueryPagos $complementoQuery $permisosComplemento
group by d.adicionalA";

/*$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,pdr.MetodoDePago as MetodoDePago
from doce d left join pago_documentos_ref pdr
on d.adicionalA = pdr.doce_uuid
left join recibedoce r
ON r.uuid = pdr.uuidcfdirelacionado
where $completaQueryValidacionFechaInicio d.tipodocto='NOTIFICACION DE PAGO' and d.rfcemisor='$rfcemisor' $completaQueryPagos $complementoQuery $permisosComplemento
group by d.adicionalA";*/
if(!$rPago = mysqli_query($conexion->CONEXION,$qPagos)){
	//<script>$j_6.messager.alert("Error","Ocurrio un error al consultar los pagos.","error.");</script><?exit;
}
if(mysqli_num_rows($rPago) <= 0){
	//<script>$j_6.messager.alert("Error","No se encontraron documentos de pago.","error.");</script><?exit;
}

$objPHPExcel->setActiveSheetIndex(0);
$conEncabezado=0;
$NumRow=0;
while($tPago = mysqli_fetch_array($rPago)){
	$validarTipoCambio = true;
	$codigo = '$tPago["status"] = $MOD_NP_STATUS_'.$tPago["status"].';';
	eval($codigo);
	$tablePago = "";

	$qPagoRecibePago = "select pdr.uuidcfdirelacionado,
		r1.serie,r1.folio,
		pdr.monto as PDRmontoPago,pdr.numparcialidad as PDRnumparcialidad,pdr.tipocambio as PDRtipocambio,pdr.moneda as PDRmoneda, rpdr.tipocambiodr as RPDRtipocambio,
	rpdr.monedadr as RPDRmoneda,rpdr.imppagado as RPDRimpagado,rpdr.NumParcialidad as RPDRnumparcialidad,r1.MetodoDePago as MetodoDePagoDoc,rpdr.MetodoDePago as MetodoDePagoRPDR,pdr.MetodoDePago as MetodoDePagoPDR, r1.nombreemi,r1.total as totalCFDI, rdp.MonedaP as RDPmoneda,rdp.Monto as RDPmonto,rdp.recibedoce_UUID,
	rdp.TipoCambioP as RDPtipocambio,rdp.formadepago, rdp.FechaPago as RDPFechaPago, date_format(rdp.FechaPago,'%Y%m%d%H%i%s') as formatRDPFechaPago, rcomplemento.status as statusComplemento,rcomplemento.uuid as RepUUID,rcomplemento.serie as RepSerie,rcomplemento.folio as RepFolio,
	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
	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 (rcomplemento.status IN ('A','S','W','WS') or rcomplemento.status is null) and length(trim(pdr.uuidcfdirelacionado)) > 1";
	// where pdr.doce_uuid='".$tPago["uuid"]."'";
	//echo $qPagoRecibePago."<br/>";exit;

	$qMoneda = "select moneda from pago_documentos_ref where doce_uuid = '".$tPago["uuid"]."' group by moneda";
	if(!$rMoneda = mysqli_query($conexion->CONEXION,$qMoneda)){
		echo "Ocurrio un error al consultar las monedas de la NP ".$tPago["serie"].$tPago["folio"].". Error: ".mysqli_error($conexion->CONEXION);exit;
	}

	if(mysqli_num_rows($rMoneda) > 0){
		if(mysqli_num_rows($rMoneda) == 1){
			$qMoneda = "select moneda from pago_documentos_ref where doce_uuid = '".$tPago["uuid"]."' group by moneda limit 1";
			if(!$rMoneda = mysqli_query($conexion->CONEXION,$qMoneda)){
				?><script>$j_6.messager.alert("Error","Ocurrio un error al consultar la moneda detalle de la NP <?php echo $tPago["serie"].$tPago["folio"];?>","error.");</script><?exit;
			}
			$tMoneda = mysqli_fetch_assoc($rMoneda);
			if(trim(strtoupper($tMoneda["moneda"])) == trim(strtoupper($tPago["moneda"]))){
				$validarTipoCambio = false;
			}
		}
	}else{
		// echo "No se encontraron las monedas de pago de la NP ".$tPago["serie"].$tPago["folio"]." UUID->".$tPago["uuid"];exit;
	}


	if(!$rPagoRecibePago = mysqli_query($conexion->CONEXION,$qPagoRecibePago)){
		echo "Ocurrio un error al consultar los documentos de referencia de pagos. Error: ".mysqli_error($conexion->CONEXION);
		exit;
	}
	if(mysqli_num_rows($rPagoRecibePago) <= 0){
		if($_REQUEST["status"] == "SINRELACION"){
			if($tPago["con_complemento_correcto"] != "1"){
				PintaEncabezado();
			}
		}
		if($_REQUEST["status"] == "" ){
				PintaEncabezado();
		}
		continue;
	}

	$con=0;

	//Si es una NP sin PPDs la ignoro
	if($tPago["totalPorMetodoDePagoPPD"] == 0){
		continue;
	}



	$sumaMontoPago=0.00;
	$banIncorrecto=false;
	$codigoEjecutar="";
	$banFaltante=false;
	$statusNPvsCom = "";

	while($tPagoRecibePago = mysqli_fetch_array($rPagoRecibePago,MYSQLI_ASSOC)){
		//Si es una PUE la ignoro
		if(trim(@$tPagoRecibePago["MetodoDePagoDoc"]) == "PUE"){
			continue;
		}

		if($tPago["con_complemento_correcto"] == "1"){
			$statusNPvsCom = "COMPLETOS";
		}elseif(@$tPagoRecibePago["statusComplemento"] == "C" || @$tPagoRecibePago["statusComplemento"] == "R" || trim(@$tPagoRecibePago["RPDRimpagado"]) == ""){
			$statusNPvsCom = "NOCOMPLETOS";
		}else{

			//Valido el monto pagado al documento en NP vs Complemento
				if((float) @$tPagoRecibePago["PDRmontoPago"] != (float) @$tPagoRecibePago["RPDRimpagado"]){
					$diferencia = (float) @$tPagoRecibePago["PDRmontoPago"] - (float) @$tPagoRecibePago["RPDRimpagado"];
					if($diferencia < 0){
						$diferencia = $diferencia * -1;
					}

					if((float) $diferencia > (float) $tConfig["tolerancia_NPvsComplemento"]){
						$banIncorrecto = true;
					}
				}

				//Valido el tipo de cambio del pago al documento en NP vs Complemento
				if($validarTipoCambio == true){
					if((float) @$tPagoRecibePago["PDRtipocambio"] != (float) @$tPagoRecibePago["RPDRtipocambio"]){
						$diferencia = (float) @$tPagoRecibePago["PDRtipocambio"] - (float) @$tPagoRecibePago["RPDRtipocambio"];
						if($diferencia < 0){
							$diferencia = $diferencia * -1;
						}

						if((float) $diferencia > (float) $tConfig["tolerancia_tipoCambio"]){
							$banIncorrecto = true;
						}
					}
				}

				//Valido la moneda
				if(@$tPagoRecibePago["PDRmoneda"] != @$tPagoRecibePago["RPDRmoneda"]){
					$banIncorrecto = true;
				}
				//Valido el numero de parcialidad
				if(@$tPagoRecibePago["PDRnumparcialidad"] != @$tPagoRecibePago["RPDRnumparcialidad"]){
					$banIncorrecto = true;
				}
				//Valido la forma de pago
				if(trim(@$tPagoRecibePago["formadepago"]) != trim($tPago["formadepago"])){
					$banIncorrecto = true;
				}
				//Valido la fecha de pago
				/*if($valida_fecha_pago == "1"){
					if(substr($tPago["formatFechaPago"],0,8) >= substr($formatFecha_valida_fecha_pago,0,8)){
						if($tPago["formatFechaPago"] != @$tPagoRecibePago["formatRDPFechaPago"]){
							$banIncorrecto = true;
						}
					}

				}*/

				if($valida_fecha_pago == "1"){
					if($tPago["formatFechaPago"] == ""){
						$banIncorrecto = true;
					}else if(substr($tPago["formatFechaPago"],0,8) >= substr($formatFecha_valida_fecha_pago,0,8)){
						if(substr(@$tPagoRecibePago["formatRDPFechaPago"],8,6) != "120000"){
							if($tPago["formatFechaPago"] != @$tPagoRecibePago["formatRDPFechaPago"]){
								$banIncorrecto = true;
							}
						}
					}
				}


				//Valido el metodo de pago NP vs Complemento
				//echo trim(@$tPagoRecibePago["MetodoDePagoPDR"])." != ".trim(@$tPagoRecibePago["MetodoDePagoRPDR"]);exit;

				if(trim(@$tPagoRecibePago["MetodoDePagoPDR"]) != trim(@$tPagoRecibePago["MetodoDePagoRPDR"])){
					$banIncorrecto = true;
				}
				if(@$tPagoRecibePago["numParcialidadDuplicada"] > 1){
					$banIncorrecto = true;
				}
		}//else


		//Sumo los importes pagados en REP
		$sumaMontoPago += (trim(@$tPagoRecibePago["RPDRimpagado"]) == "")? 0.00 : ((float) (trim(@$tPagoRecibePago["RPDRimpagado"]))) / (float) @$tPagoRecibePago["RPDRtipocambio"];
		//Sumo los importes pagados en NP
		// $totalMontosFacturasNP = (double) $totalMontosFacturasNP + (double) @$tPagoRecibePago["PDRmontoPago"];
		$totalMontosFacturasNP = (float) @$totalMontosFacturasNP + (((float) @$tPagoRecibePago["PDRmontoPago"]) / (float) @$tPagoRecibePago["PDRtipocambio"]);

		//$arrSerieFolio = explode("&&",@$tPagoRecibePago["SerieFolio"]);
		/*
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[0].$NumRow, "'.$arrSerieFolio[0].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[1].$NumRow, "'.$arrSerieFolio[1].'");
		*/
		$codigoEjecutar.='$NumRow++;
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[0].$NumRow, "'.@$tPagoRecibePago["serie"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[1].$NumRow, "'.@$tPagoRecibePago["folio"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[2].$NumRow, "'.@$tPagoRecibePago["uuidcfdirelacionado"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[3].$NumRow, "'.@$tPagoRecibePago["MetodoDePagoDoc"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[4].$NumRow, "'.@$tPagoRecibePago["MetodoDePagoPDR"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[5].$NumRow, "'.@$tPagoRecibePago["PDRnumparcialidad"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[6].$NumRow, "'.$tPago["fechaPago"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[7].$NumRow, "'.@$tPagoRecibePago["PDRmoneda"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[8].$NumRow, "'.@$tPagoRecibePago["PDRtipocambio"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[9].$NumRow, "'.@$tPagoRecibePago["PDRmontoPago"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[10].$NumRow, "'.@$tPagoRecibePago["MetodoDePagoRPDR"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[11].$NumRow, "'.@$tPagoRecibePago["RPDRnumparcialidad"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[12].$NumRow, "'.@$tPagoRecibePago["RDPFechaPago"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[13].$NumRow, "'.@$tPagoRecibePago["RPDRmoneda"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[14].$NumRow, "'.@$tPagoRecibePago["RPDRtipocambio"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[15].$NumRow, "'.@$tPagoRecibePago["formadepago"].'");
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[16].$NumRow, "'.@$tPagoRecibePago["RPDRimpagado"].'");;
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[17].$NumRow, "'.@$tPagoRecibePago["RepUUID"].'");;
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[18].$NumRow, "'.@$tPagoRecibePago["RepSerie"].'");;
		$objPHPExcel->getActiveSheet()->setCellValue($col_name[19].$NumRow, "'.@$tPagoRecibePago["RepFolio"].'");';

	}

	//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((float) $tPago["total"] != (float) $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"]){
			if($statusNPvsCom != "NOCOMPLETOS" && $statusNPvsCom != "COMPLETOS"){
				$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($arrTotalEnPago1000000[0] != $arrTotalMontosFacturasNP1000000[0]){
		$diferencia = (float) $tPago["totalPorMetodoDePagoPPD"] - (float) $totalMontosFacturasNP;
		if($diferencia < 0){
			$diferencia = $diferencia * -1;
		}
		if((float) $diferencia > (float) $tConfig["tolerancia_NPvsFactura"]){
			if($statusNPvsCom != "NOCOMPLETOS" && $statusNPvsCom != "COMPLETOS"){
				$banIncorrecto = true;
			}
		}
	}
	if($arrTotalEnPago1000000[0] != $arrSumaMontoPago1000000[0]){
		$diferencia = (float) $tPago["totalPorMetodoDePagoPPD"] - (float) $sumaMontoPago;
		if($diferencia < 0){
			$diferencia = $diferencia * -1;
		}

		//Si paso la diferencia lo marco rojo, si no aplico tolerancia y lo marco naranja
		if((float) $diferencia > (float) $tConfig["tolerancia_NPvsComplemento"]){
			$banIncorrecto == true;
		}
	}


	$codigoEjecutar.='$NumRow++;
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[0].$NumRow, "Total Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[1].$NumRow, '.number_format(floor($sumaMontoPago*1000000)/1000000, 6,".",",").');';

	if($banIncorrecto == true){
		$statusNPvsCom = "INCORRECTOS";
	}

	/*if($_REQUEST["status"] == "" || $_REQUEST["status"] == $statusNPvsCom){
		PintaEncabezado();
		PintaDetalleEncabezado();
		eval($codigoEjecutar);
	}*/
	
	PintaEncabezado();
	PintaDetalleEncabezado();
	eval($codigoEjecutar);

}

$objPHPExcel->getActiveSheet()->setTitle("Complementos Faltantes");

function PintaEncabezado(){
	global $tPago,$conEncabezado,$NumRow,$objPHPExcel,$col_name;
	$conEncabezado++;
	$NumRow++;
	$header_name = array("Serie","Folio","Total PUE","Total PPD","Total","Moneda","Tipo Cambio","Forma de Pago","Proveedor","Fecha de Pago","Status","Corregido Manualmente");
	$col=0;
	$autofilter=0;
	for($row=0; $row < count($header_name); $row++){
			$objPHPExcel->getActiveSheet()->setCellValue($col_name[$col].$NumRow, $header_name[$row]);
			$objPHPExcel->getActiveSheet()->getColumnDimension($col_name[$col])->setAutoSize(true);
			$autofilter++;
			$col++;
	}
	$objPHPExcel->getActiveSheet()->getStyle('A'.$NumRow.':'.$col_name[$autofilter-1].$NumRow)->applyFromArray(
		array(
			'font'    => array(
				'bold'      => true,
				'color'      => array('rgb' => 'FFFFFF')
			),
			'alignment' => array(
				'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
			),
			'borders' => array(
				'top'     => array(
 					'style' => PHPExcel_Style_Border::BORDER_THIN
 				)
			),
			'fill' => array(
	 			//'type'       => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
	 			'type'       => PHPExcel_Style_Fill::FILL_SOLID,
				'color' => array('rgb' => '000000'),
	  			'rotation'   => 90
	 			/*'startcolor' => array(
	 				'argb' => '99999999'
	 			),
	 			'endcolor'   => array(
	 				'argb' => '99999999'
	 			)*/
	 		)
		)
	);
	$NumRow++;

	$objPHPExcel->getActiveSheet()->setCellValue($col_name[0].$NumRow, $tPago["serie"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[1].$NumRow, $tPago["folio"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[2].$NumRow, $tPago["totalPorMetodoDePagoPUE"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[3].$NumRow, $tPago["totalPorMetodoDePagoPPD"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[4].$NumRow, $tPago["total"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[5].$NumRow, $tPago["moneda"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[6].$NumRow, $tPago["tipocambio"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[7].$NumRow, $tPago["formadepago"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[8].$NumRow, $tPago["nombrerec"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[9].$NumRow, $tPago["fechaPago"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[10].$NumRow, $tPago["status"]);
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[11].$NumRow, ($tPago["con_complemento_correcto"] == "1")? "SI": "NO");
}
function PintaDetalleEncabezado(){
	global $tPago,$conEncabezado,$NumRow,$objPHPExcel,$col_name;
	$NumRow++;
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[0].$NumRow, "Serie");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[1].$NumRow, "Folio");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[2].$NumRow, "UUID");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[3].$NumRow, "Metodo de pago CFDI");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[4].$NumRow, "Metodo de pago en NP");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[5].$NumRow, "Parcialidad");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[6].$NumRow, "Fecha de Pago");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[7].$NumRow, "Moneda");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[8].$NumRow, "Tipo de Cambio");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[9].$NumRow, "Monto");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[10].$NumRow, "Metodo de pago en REP");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[11].$NumRow, "Parcialidad Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[12].$NumRow, "Fecha de Pago Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[13].$NumRow, "Moneda Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[14].$NumRow, "Tipo de Cambio Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[15].$NumRow, "Forma de Pago Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[16].$NumRow, "Monto Complemento");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[17].$NumRow, "REP UUID");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[18].$NumRow, "REP Serie");
	$objPHPExcel->getActiveSheet()->setCellValue($col_name[19].$NumRow, "REP Folio");

	foreach(range('A','O') as $columnID) {
    $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)
        ->setAutoSize(true);
	}


	$objPHPExcel->getActiveSheet()->getStyle('A'.$NumRow.':'.$col_name[17].$NumRow)->applyFromArray(
			array(
				'font'    => array(
					'bold'      => true,
					'color'      => array('rgb' => '000000')
				),
				'alignment' => array(
					'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
				),
				'borders' => array(
					'top'     => array(
						'style' => PHPExcel_Style_Border::BORDER_THIN
					)
				),
				'fill' => array(
					// 'type'       => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
					'type'       => PHPExcel_Style_Fill::FILL_SOLID,
					'rotation'   => 90,
					'color' => array('rgb' => 'BBBBBB'),
					/*'startcolor' => array(
						'argb' => 'FFFFAA00'
					),
					'endcolor'   => array(
						'argb' => '00000000'
					)*/
				)
			)
		);
}
?>
