<?php
session_name('portal_absa');
session_start();
require "../conexion/conectar.php";
//include("../actualizarBus.php");
require("../libs/funciones.php");

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

if(strtoupper(trim($_SESSION['usuario_p_prov_absa'])) == "ADMIN"){
	$rfcEmisor=$_POST["busca_emisor"];
}else{
	$rfcEmisor=$_SESSION['RFC_RECEPTOR_PORTAL'];
}
$doc=$_POST["busca_documento"];
$serieI=$_POST["busca_serieI"];
$serieF=$_POST["busca_serieF"];
$folioI=$_POST["busca_folioI"];
$folioF=$_POST["busca_folioF"];
$fechaI=$_POST["busca_fechaI"];
$fechaF=$_POST["busca_fechaF"];
$busca_nombre=$_POST["busca_nombre"];
$rfc_receptor=$_REQUEST["busca_rfc"];
$uuid=$_REQUEST["uuid"];

		if($serieF=="")
		{
			
			$resultado=mysqli_query($conexion->CONEXION,getQuery2());
			
			if($maximo=mysqli_fetch_array($resultado,MYSQLI_ASSOC))
			$serieF=$maximo["serie_maxima"];
		}
		if($folioF=="")
		{
			
			$resultado=mysqli_query($conexion->CONEXION,getQuery3());
			
			if($maximo=mysqli_fetch_array($resultado,MYSQLI_ASSOC))
			$folioF=$maximo["folio_maximo"];
		}
		if($fechaF=="")
		{
			
			$resultado=mysqli_query($conexion->CONEXION,getQuery4());
			
			if($maximo=mysqli_fetch_array($resultado,MYSQLI_ASSOC))
			$fechaF=$maximo["fecha_maxima"];
		}
		if($fechaI != ""){
			$fechaI.=" 00:00:00";
		}
		//$fechaF.=" 23:59:59";
		
		$complementoMostrarWEB="and mostrarWeb='SI'";
		
		if($_SESSION['esAdmin'] == "SI"){
			if($_POST['checkMostrarWeb'] == "on"){
				$complementoMostrarWEB="";
			}else{
				$complementoMostrarWEB="and mostrarWeb='SI'";
			}
			$complementoStatus="and status='1'";
			if($_POST['checkMostrarCancelados'] == "on"){
				$complementoStatus="";
			}else{
				$complementoStatus="and status='1'";
			}
			$width="90";
		}else{
			$width="65";
			$complementoMostrarWEB="and mostrarWeb='SI'";
			$complementoStatus="and status='1'";
		}
                $complementoStatus="";
	$q=getQuery5($serieI,$serieF,$doc,$rfcEmisor,$folioI,$folioF,$fechaI,$fechaF,$busca_nombre,$complementoMostrarWEB,$complementoStatus,$rfc_receptor,$uuid);
	
	$filtroA="";
	$filtroB="";
	$filtroC="";
	
	if($doc != "" && $rfcEmisor != ""){
		$query="select filtroA,filtroB,filtroC from emisor e,tdoctos t where e.rfc='$rfcEmisor'
		and e.idEmisor=t.idEmisor and t.tipodocto='$doc' limit 1";
		
                $rquery=mysqli_query($conexion->CONEXION,$query);
                
		if(mysqli_num_rows($rquery) > 0){
			$temp=mysqli_fetch_array($rquery,MYSQLI_ASSOC);
			$filtroA=strtoupper($temp['filtroA']);
			$filtroB=strtoupper($temp['filtroB']);
			$filtroC=strtoupper($temp['filtroC']);
		}
	}
			if($filtroA=="")
				$filtroA="FILTRO A";
			if($filtroB=="")
				$filtroB="FILTRO B";
			if($filtroC=="")
				$filtroC="FILTRO C";

//$cont=1;
$arrCampos=array();
$arrConfigCampos=array();
for($i=1; $i <= 30;$i++){
	$valorIni = getINI("CAMPOD_".$i."=","../config.ini");
	if($valorIni){
		//echo $valorIni;
		$arrConf = explode("||",$valorIni);
		//echo $arrConf[1];
		array_push($arrCampos,$arrConf[0]);
		array_push($arrConfigCampos,$arrConf[1]);
		
		//$cont++;
	}else{
		break;
	}
}
	
$_SESSION['grid_select']='grid_doce';
//echo "<br/>".$q;exit;
?>

<script>
var query="<?=$q?>";
$j_6(document).ready(function(){
	$j_6().gridJQGrid({
	php: 'grids/doceGrid.php',
	//headerNames: '<img src="grids/Imagenes/descargas.png"/>,RFC Emisor,Tipo Documento,Serie,Folio,Status,Fecha,RFC Receptor,Nombre Receptor,UUID,IVA,Total,<?=$filtroA?>,<?=$filtroB?>,<?=$filtroC?>',
	headerNames: '<img src="grids/Imagenes/descargas.png"/><?php for($i=0; $i < count($arrCampos); $i++){echo ",".$arrCampos[$i];}?>',
	sortname: 'rfcemisor,tipodocto,serie,folio',
	Frozen: true,
	idGrid: 'grid_doce',
	idPagina: 'pagina_doce',
	optionsCol: 'xml|width: <?=$width?>, search: false, sortable:false, frozen: true;'+
				<?php
					for($i=0; $i < count($arrConfigCampos); $i++){
						echo $arrConfigCampos[$i];
				?>
				<?php
					}
				?>
	hiddenCol: 'pdf,archXML,archPDF,usarRutaDistribuida,mostrarweb',
	ignoreColNamesExcel: '0,5',
	sheetName: 'Documentos encontrados',
	<?if(trim($_POST["status"]) == ""){?>
	urlDatos: 'grids/doceValidaDatosGrid.php',
	<?}else{?>
	urlDatos: 'grids/doceDatosGrid.php',	
	<?}?>
	div: 'doceGrid',
	width: $j_6('#doceGrid').width(),
    height: 'auto',
	rowNum: 20,
	query: query,
	optionsForm: 	'',
	captionForm: '',
	tabla: '',
	reloadGridAfterSave: '',
	captionConfirm: '',
	widthConfirm: 300,
	heightConfirm: 100,
	widthForm: 500,
	heightForm: 120,
	fileForm: 'grids/generaForm.php',
	edit: false,
	add: false,
	del: false
	});
});
</script>
<?
function getQuery2(){
	 $getQuery2="select max(serie) as serie_maxima from doce";
	return $getQuery2;
}
function getQuery3(){
	 $getQuery3="select max(folio) as folio_maximo from doce";
	return $getQuery3;
}
function getQuery4(){
	 $getQuery4="select max(fecha) as fecha_maxima from doce";
	return $getQuery4;
}
function getQuery5($serieI,$serieF,$doc,$rfcEmisor,$folioI,$folioF,$fechaI,$fechaF,$busca_nombre,$complementoMostrarWEB,$complementoStatus,$rfc_receptor,$uuid){
	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']."'";
	}
	if($doc == ""){
		$docQuery="like '%$doc%'";
	}else{
		$docQuery="='$doc'";
	}
	
	if($rfcEmisor == ""){
		$rfcQuery="like '%$rfcEmisor%'";
	}else{
		$rfcQuery="='$rfcEmisor'";
	}
	
	$comSerie="";
	if(trim($serieI) == "" && trim($_POST["busca_serieF"]) == ""){
		if($_POST["sinserie_check"] == "1"){
			$comSerie=" and serie=''";
		}
	}else{
		$comSerie="and serie between '$serieI' and '$serieF'";
	}
	
	$comRFCRec="";
	
	if(trim($rfc_receptor) != ""){
		$comRFCRec=" and rfcreceptor='".trim($rfc_receptor)."'";
	}
	
	$comUUID="";
	
	if(trim($uuid) != ""){
		$comUUID=" and uuid='".trim($uuid)."'";
	}
	
	$filtrosQuery="";
	if(trim($_POST["filtroA"]) != ""){
		$filtrosQuery.=" and filtroA='".trim($_POST["filtroA"])."'";
	}
	
	if(trim($_POST["filtroB"]) != ""){
		$filtrosQuery.=" and filtroB='".trim($_POST["filtroB"])."'";
	}
	
	if(trim($_POST["filtroC"]) != ""){
		$filtrosQuery.=" and filtroC='".trim($_POST["filtroC"])."'";
	}
	
	$uuids=array();
	if(trim($_POST["status"]) != ""){
		$uuids = getUUIDS();
		//print_r($uuids); exit;
	}
	
	
	$in = "";
	if(count($uuids) > 0){
		for($i=0; $i < count($uuids); $i++){
			if($in != ""){
				$in.=",'".$uuids[$i]."'";
			}else{
				$in="'".$uuids[$i]."'";
			}
		}
	}
	$FiltroIN="";
	$campoStatus="";
	if($_REQUEST["status"] == "NOCOMPLETOS"){
		$campoStatus=0;
	}else if($_REQUEST["status"] == "INCORRECTOS"){
		$campoStatus=3;
	}else if($_REQUEST["status"] == "COMPLETOS"){
		$campoStatus=4;
	}
    if(trim($_POST["status"]) != "" && trim($in) == ""){
        $in="''";
    }
    
	if($in != ""){
		$FiltroIN=" and adicionalA in ($in)";
	}
    if(trim($_SESSION['taxid']) != ""){
        $cTaxID = "and taxid='".$_SESSION['taxid']."'";
    }
        
	 $getQuery5="select distinct rutaXML_P as xml,'$campoStatus' as statusNP ,rfcemisor,tipodocto,serie,folio,status,fecha,FormaDePago,nombrerec,iva,total,d.filtroA,d.filtroB,d.filtroC,archXML,archPDF,usarRutaDistribuida,mostrarweb,rutaPDF_P as pdf,adicionalA as uuid,rfcreceptor,alta_manual from (select rfc,tipodocto as tipodoc,rutaXML_P,rutaPDF_P,usarRutaDistribuida from emisor e,tdoctos t where e.idEmisor=t.idEmisor) as c,doce d where d.nombrerec like '%$busca_nombre%' and c.rfc = d.rfcemisor and rfcemisor $rfcQuery and tipodocto $docQuery and d.tipodocto=c.tipodoc $complementoQuery $comSerie and folio between '$folioI' and '$folioF' and fecha between '$fechaI' and '$fechaF' $complementoMostrarWEB $complementoStatus $cTaxID $permisosComplemento $comRFCRec $comUUID $filtrosQuery $FiltroIN";
	 // echo $getQuery5;exit;
	
	return $getQuery5;
}

function getUUIDS(){
	global $conexion;
	
	$completaQueryPagos = "";
	
	if($_REQUEST["sinserie_check_doce"] == "1"){
	if($_REQUEST["busca_serie_doceI"] != ""){$completaQueryPagos = " and serie='".$_REQUEST["busca_serie_doceI"]."'";}
	}
	if($_REQUEST["busca_folio_doceI"] != ""){$completaQueryPagos .= " and folio>='".$_REQUEST["busca_folio_doceI"]."'";}
	if($_REQUEST["busca_folio_doceF"] != ""){$completaQueryPagos .= " and folio<='".$_REQUEST["busca_folio_doceF"]."'";}
	//if($_REQUEST["uuid"] != ""){$completaQueryPagos .= " and adicionalA='".$_REQUEST["uuid"]."'";}
	if($_REQUEST["busca_fecha_doceI"] != ""){$completaQueryPagos .= " and fecha >= '".$_REQUEST["busca_fecha_doceI"]."'";}
	if($_REQUEST["busca_fecha_doceF"] != ""){$completaQueryPagos .= " and fecha <= '".$_REQUEST["busca_fecha_doceF"]."'";}
	if($_REQUEST["busca_nombre_doce"] != ""){$completaQueryPagos .= " and nombrerec like '%".$_REQUEST["busca_nombre_doce"]."%'";}
	if($_REQUEST["busca_rfc_doce"] != ""){$completaQueryPagos .= " and rfcreceptor = '".$_REQUEST["busca_rfc_doce"]."'";}

	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']."'";
	}

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

	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;
	}

	//ITERO TODOS LOS PAGOS
	$uuids= array();
	
	while($tPago = mysqli_fetch_array($rPago)){

	$qPagoRecibePago = "select pdr.uuidcfdirelacionado,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, r.nombreemi,r.serie,r.folio, rdp.MonedaP as RDPmoneda,rdp.Monto as RDPmonto,rdp.recibedoce_UUID,
	rdp.TipoCambioP as RDPtipocambio,rdp.formadepago,rcomplemento.status as statusComplemento, (select count(*) from pago_documentos_ref where uuidcfdirelacionado=pdr.uuidcfdirelacionado and numparcialidad=pdr.numparcialidad) as numParcialidadDuplicada
	from pago_documentos_ref pdr 
	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 rcomplemento on rdp.recibedoce_UUID = rcomplemento.uuid 
    where pdr.doce_uuid='".$tPago["uuid"]."'";
	//where pdr.doce_uuid='65267B58-71B9-463E-85C2-CB3C7EEA2AB0'";
	
	//echo $qPagoRecibePago."<br/>";exit;


	if(!$rPagoRecibePago = mysqli_query($conexion->CONEXION,$qPagoRecibePago)){
		?><script>$j_6.messager.alert("Error","Ocurrio un error al consultar los documentos de referencia de pagos.","error.");</script><?exit;
	}
	//echo mysqli_num_rows($rPagoRecibePago);exit;
	
	if(mysqli_num_rows($rPagoRecibePago) <= 0){
		if($_REQUEST["status"] == "NOCOMPLETOS"){
			if($tPago["con_complemento_correcto"] == "0"){
				if(!in_array($tPago["uuid"],$uuids)){
					array_push($uuids,$tPago["uuid"]);
				}
			}
		}
		continue;
	}
	if($tPago["con_complemento_correcto"] == "1"){
		if(!in_array($tPago["uuid"],$uuids)){
			array_push($uuids,$tPago["uuid"]);
		}
	}

	$sumaMontoPago=0.00;
	$banIncorrecto=false;
	$banFaltante=false;
	while($tPagoRecibePago = mysqli_fetch_array($rPagoRecibePago,MYSQLI_ASSOC)){
		
		if($tPagoRecibePago["PDRmontoPago"] != $tPagoRecibePago["RPDRimpagado"]){
			$tdEstiloMonto = "style='background-color: red'";
			$banIncorrecto=true;
		}
		if($tPagoRecibePago["PDRtipocambio"] != $tPagoRecibePago["RPDRtipocambio"]){
			$tdEstiloTipoCambio = "style='background-color: red'";
			$banIncorrecto=true;
		}
		if($tPagoRecibePago["PDRmoneda"] != $tPagoRecibePago["RPDRmoneda"]){
			$tdEstiloMoneda = "style='background-color: red'";
			$banIncorrecto=true;
		}
		if($tPagoRecibePago["PDRnumparcialidad"] != $tPagoRecibePago["RPDRnumparcialidad"]){
			$tdEstiloParcialidad = "style='background-color: red'";
			$tdEstiloParcialidadPago = "style='background-color: red'";
			$banIncorrecto=true;
		}
		if(trim($tPagoRecibePago["formadepago"]) != trim($tPago["formadepago"])){
			$tdEstiloFormaDePago = "style='background-color: red'";
			$banIncorrecto=true;
		}
		
		if($tPagoRecibePago["statusComplemento"] == "C" || $tPagoRecibePago["statusComplemento"] == "R" || $tPagoRecibePago["RPDRimpagado"] == ""){
			$banFaltante=true;
			if($_REQUEST["status"] == "NOCOMPLETOS"){
				if(!in_array($tPago["uuid"],$uuids)){
					array_push($uuids,$tPago["uuid"]);
				}
				break;
			}else{
				break;
			}
		}
		
		if($tPagoRecibePago["numParcialidadDuplicada"] > 1){
				$banIncorrecto=true;
		}

	$sumaMontoPago = $tPagoRecibePago["RDPmonto"];
	}
    //echo $banFaltante;exit;
	if($tPago["total"] != $sumaMontoPago){
		$banIncorrecto=true;
	}
	
	if($_REQUEST["status"] == "INCORRECTOS" && $banIncorrecto == true){
		if($banFaltante == false){
			if(!in_array($tPago["uuid"],$uuids)){
				array_push($uuids,$tPago["uuid"]);
			}
		}
	}
    /*if($_REQUEST["status"] == "NOCOMPLETOS"){
        if($tPago["con_complemento_correcto"] == "0"){
            if(!in_array($tPago["uuid"],$uuids)){
                array_push($uuids,$tPago["uuid"]);
            }
        }
    }*/
	if($_REQUEST["status"] == "COMPLETOS" && $banIncorrecto == false){
		if(!in_array($tPago["uuid"],$uuids)){
			array_push($uuids,$tPago["uuid"]);
		}
	}
	}//while
	
	return $uuids;
}//Termina funcion getUUIDS
?>