<?php
/*
Autor: Lic. Carlos Alberto Vaca Coronado
Version: 3.5.0
Cambio: Se agrega el filtro por fecha recibido
*/

session_name('portal_absa');
session_start();
require "../conexion/conectar.php";

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

require "../libs/funciones.php";
//include("../actualizarBus.php");

if(strtoupper(trim($_SESSION['usuario_p_prov_absa'])) == "ADMIN"){
	$rfcReceptor=$_POST["busca_receptor"];
}else{
	$rfcReceptor=$_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"];
$fecha_RI=$_POST["busca_fecha_RI"];
$fecha_RF=$_POST["busca_fecha_RF"];
$busca_nombre=$_POST["busca_nombre"];


$banEspecifico = false;

if(trim($_REQUEST["busca_uuid"]) != ""){
	if(strlen(trim($_REQUEST["busca_uuid"])) < 10){
		?><script>$j_6.messager.alert("Error.","Debe de indicar por lo menos 10 caracteres del uuid de busqueda.","error");</script><?exit;
	}
	$banEspecifico = true;
}	
if(trim($_REQUEST["busca_esta_serie"]) != ""){
	$banEspecifico = true;
}	
if(trim($_REQUEST["busca_este_folio"]) != ""){
	$banEspecifico = true;
}

/*$banVacios = true;
foreach($_POST as $nombre_campo => $valor){
		if(trim($valor) != ""){
			if($nombre_campo != "busca_fechaI" && $nombre_campo != "busca_fechaF" && $nombre_campo != "busca_fecha_RI" && $nombre_campo != "busca_fecha_RF"){
				$banVacios=false;
			}
		}
}
if($banVacios){*/
/*if($banEspecifico == false){
	if(($_REQUEST['busca_fechaI'] == "" || $_REQUEST['busca_fechaF'] == "") && ($_REQUEST['busca_fecha_RI'] == "" || $_REQUEST['busca_fecha_RF'] == "")){
		?><script>$j_6.messager.alert("Error.","Debe de ingresar la fecha inicial y final de fecha de emisión o de recepción.","error");</script><?exit;
	}
	if($_REQUEST['busca_fechaI'] != "" && $_REQUEST["busca_fechaF"] != ""){
		$datetime1 = new DateTime($_REQUEST['busca_fechaI']);
		$datetime2 = new DateTime($_REQUEST['busca_fechaF']);
		$interval = $datetime1->diff($datetime2);
		$dias = $interval->format('%a');
		if(($dias+1) > 31){
			?><script>$j_6.messager.alert("Error.","Debe de ingresar un rango de fechas no maximo de 31 días.","error");</script><?exit;
		}
	}else{
		$datetime1 = new DateTime($_REQUEST['busca_fecha_RI']);
		$datetime2 = new DateTime($_REQUEST['busca_fecha_RF']);
		$interval = $datetime1->diff($datetime2);
		$dias = $interval->format('%a');
		if(($dias+1) > 31){
			?><script>$j_6.messager.alert("Error.","Debe de ingresar un rango de fechas no maximo de 31 días.","error");</script><?exit;
		}
	}
}*/

$q=generaQuery($serieI,$serieF,$doc,$rfcReceptor,$folioI,$folioF,$fechaI,$fechaF,$busca_nombre);

if($doc != "" && $rfcReceptor != ""){
		$query="select adicional from receptor r,tdoctos_r t where r.rfc='$rfcReceptor'
		and r.idReceptor=t.idReceptor 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);
			$adicional=$temp['adicional'];
		}
	}
			if($adicional=="")
				$adicional=$_SESSION["Label_adicional"];
				
                if($_SESSION["tipo_portal"] == "ABSA"){
                    if($_SESSION['esAdmin_p_prov_absa'] == "SI" || strtoupper(trim($_SESSION['tipo_usuario_ABSA'])) == "COMPRAS" || strtoupper(trim($_SESSION['tipo_usuario_ABSA'])) == "CONTABILIDAD")
                            $width="160";
                    else
                            $width="90";
                }else{
                    if($_SESSION['esAdmin_p_prov_absa'] == "SI")
                            $width="160";
                    else
                            $width="120";
                }
                if($_SESSION["mostrar_pdf_std"] == "SI")
			$width = $width + 30;

$arrCampos=array();
$arrConfigCampos=array();

$cont=1;
if(file_exists("../config.ini")){
	$vlineas = file("../config.ini"); 

	foreach ($vlineas as $sLinea) {
		if(substr(trim($sLinea),0,13) == "FECHA_PAGO=NO"){
			$_SESSION['fecha_pago']='NO';
		}else{
			$_SESSION['fecha_pago']='SI';
		}
	}
}

$cont=1;
for($i=1; $i <= 40;$i++){
	$valorIni = getINI("CAMPOP_".$cont."=","../config.ini");
	if($valorIni){
		
		$arrConf = explode("||",$valorIni);
		array_push($arrCampos,$arrConf[0]);
		array_push($arrConfigCampos,$arrConf[1]);
		
		$cont++;
	}else{
		break;
	}
}



$label_asignado_a="ASIGNADO A";
if(trim($_SESSION["Label_asignado_a"]) != "")
    $label_asignado_a=$_SESSION["Label_asignado_a"];
	
	$_SESSION['query_recibedoce']=$q;

	$_SESSION['grid_select']='grid_recibedoce';
?>
<script>
var query="";
$j_6(document).ready(function(){
	banBusca = true;
	if(navigator.appVersion.toLowerCase().indexOf("safari") != -1 && navigator.appVersion.toLowerCase().indexOf("chrome") == -1)
		var w = <?=((integer) $width)+10?>;
	else
		var w = <?=$width?>;
		
	$j_6().gridJQGrid({
	php: 'grids/recibedocePagosGrid.php',
	headerNames: '<img src="grids/Imagenes/descargas.png"/>,SAT<?php for($i=0; $i < count($arrCampos); $i++){echo ",".$arrCampos[$i];}?>',
	sortname: 'rfc_receptor,tipodocto,serie,folio',
	//sortname: 'fechaDocto',
	Frozen: true,
	idGrid: 'grid_recibedoce',
	idPagina: 'pagina_recibedoce',
	optionsCol: 'xml|width: '+w+', search: false, sortable:false, align: "left", frozen: true;'+
	            'sat|width: 30, search: false, sortable:false, align: "center", frozen: true;'+
				<?php
				$columnasOcultarExcel = "";
					for($i=0; $i < count($arrConfigCampos); $i++){
						echo $arrConfigCampos[$i];
						if(strpos($arrConfigCampos[$i],"hidden") !== false){
							$columnasOcultarExcel.=",".($i+2);
						}
				?>
				<?php
					}
				?>
	hiddenCol: 'pdf,ArchivoXML,ArchivoPDF,usarRutaDistribuida',
	ignoreColNamesExcel: '0,1<?=$columnasOcultarExcel?>',
	sheetName: 'Documentos Encontrados',
	urlDatos: 'grids/recibedocePagosDatosGrid.php',
	div: 'resultRecibedoce',
	width: $j_6('#cuerpo').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>
<?php
function generaQuery($serieI,$serieF,$doc,$rfcReceptor,$folioI,$folioF,$fechaI,$fechaF,$busca_nombre){
global $conexion;
//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"];
		$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"];
	}
}
//echo $_SESSION['RFC_RECEPTOR_PORTAL'];exit;
$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"];
		
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{
		$complementoQuery=" rfcEmisor='".$_SESSION['rfc_cliente_p_prov_absa']."'";
	}
	
	
	
	$qIDDoc = "";
	if(trim($_REQUEST["iddoc"]) != ""){
		$qIDDoc=" id=".trim($_REQUEST["iddoc"]);
	}
	
	if(trim($doc) != ""){
		$docQuery="tipodocto='$doc'";
	}
	
	$rfcQuery = "";
	if($rfcReceptor != ""){
		$rfcQuery="rfc_receptor='$rfcReceptor'";
	}
	
	$qFechaR="";
	
	$fecha_RI=$_POST["busca_fecha_RI"];
	$fecha_RF=$_POST["busca_fecha_RF"];

	if(trim($fecha_RI) != ""){
		$qFechaR .= "fechaRecibido>='$fecha_RI 00:00:00'";
	}
	
	if(trim($fecha_RF) != ""){
		if($qFechaR == "")
			$qFechaR .= " fechaRecibido<='$fecha_RF 23:59:59'";
		else
			$qFechaR .= " and fechaRecibido<='$fecha_RF 23:59:59'";
	}
	
	
        $filtroStatus="";
        
        if(isset($_POST['status'])){
            
            for($i=0; $i < count($_POST['status']); $i++){
                if(trim($_POST['status'][$i]) != ""){
					if($filtroStatus=="")
						$filtroStatus.=" ( status='".str_replace ("4", "S", str_replace ("3", "WS", str_replace ("0", "R", str_replace ("1", "W", str_replace ("2", "A", $_POST['status'][$i])))))."'";
					else
						$filtroStatus.=" or status='".str_replace ("4", "S", str_replace ("3", "WS", str_replace ("0", "R", str_replace ("1", "W", str_replace ("2", "A", $_POST['status'][$i])))))."'";
                }
            }
            
            if(trim($filtroStatus) != "")
                $filtroStatus.=" )";
        }
		
		// ------------- 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($_POST['status_pago_buscar_nppcfdi'][$i] == "11"){
					   if($filtroStatusPagoComplemento != " Having "){
							$filtroStatusPagoComplemento.= " or statusNP = 9";
					   }else{
						   $filtroStatusPagoComplemento.= "statusNP = 9";
					   }
				   }
				   if($_POST['status_pago_buscar_nppcfdi'][$i] == "10"){
					   if($filtroStatusPagoComplemento != " Having "){
							$filtroStatusPagoComplemento.= " or statusNP = 10";
					   }else{
						   $filtroStatusPagoComplemento.= "statusNP = 10";
					   }
				   }
                }
            }
            
            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="";
	if(trim($_REQUEST['busca_esta_serie']) == "" && trim($_REQUEST['busca_este_folio']) == "" && trim($_REQUEST['busca_uuid']) == ""){
		
		if($serieI != "" && $serieF != ""){
			$comSerie = "serie between '$serieI' and '$serieF'";
		}elseif($serieI != ""){
			$comSerie = "serie >= '$serieI'";
		}elseif($serieF != ""){
			$comSerie = "serie <= '$serieF'";
		}
		
		$comFolio="";
		
		if($folioI != "" && $folioF != ""){
			$comFolio = "folio between '$folioI' and '$folioF'";
		}elseif($folioI != ""){
			$comFolio = "folio >= '$folioI'";
		}elseif($folioF != ""){
			$comFolio = "folio <= '$folioF'";
		}

		
		$comFecha="";
		if($fechaI != ""){
			$comFecha = "fechaDocto >= '$fechaI 00:00:00'";
		}
		if($fechaF != ""){
			if($comFecha != ""){$comFecha.=" and ";}
			$comFecha .= "fechaDocto <= '$fechaF 23:59:59'";
		}
	}else{
		if(trim($_REQUEST["busca_uuid"]) != ""){
			$qUUID = "";
			if(trim($_REQUEST["busca_uuid"]) != ""){
				$qUUID="uuid like '%".trim($_REQUEST["busca_uuid"])."%'";
			}
		}
		if(trim($_REQUEST["busca_esta_serie"]) != ""){
			$comSerie = "serie='".$_REQUEST["busca_esta_serie"]."'";
		}	
		if(trim($_REQUEST["busca_este_folio"]) != ""){
			$comFolio = "folio='".$_REQUEST["busca_este_folio"]."'";
		}
	}
	
	
	$comBuscaNombre = "";
	if($busca_nombre != ""){
		$comBuscaNombre = "(nombreemi like '%$busca_nombre%' or rfcemisor like '%$busca_nombre%')";
	}
		
		//*********************Query con SUM*********************
		/*$generaQuery="select *,(totalPagoDocumentosRef+if(totalIngresoCompensado is null,0,totalIngresoCompensado)) as totalPago, (ImpPagadoComplemento+if(totalIngresoCompensado is null,0,totalIngresoCompensado)) as impPagadoComplemento from (select asignado_a,rutaXML_P as xml,rutaPDF_P as pdf,rutaXML,rutaPDF,rfc_receptor,d.tipodocto,serie,folio,uuid,fechaDocto,rfcemisor,nombreemi,total,tipoMoneda,status,fechaRecibido,d.adicional as adicional,comentarios, ArchivoXML,ArchivoPDF,tipoComprobante,usarRutaDistribuida,e.idReceptor as idReceptor,comentario_status,status_pago,fecha_pago,referencia,verificacionSAT,concepto_pago,d.id as id,d.TipoCambio as TipoCambio,
		(select sum(Monto) as totalPagoDocumentosRef from pago_documentos_ref p inner join doce ON p.doce_uuid=doce.adicionalA where uuidCFDIRelacionado=d.uuid and doce.status <>'C')
		as totalPagoDocumentosRef,
		(select doce.fecha as fecha from pago_documentos_ref p inner join doce ON p.doce_uuid=doce.adicionalA where uuidCFDIRelacionado=d.uuid and doce.status <>'C' order by fecha desc limit 1)
		as FechaNP,
		(select sum(monto_enmoneda_padre) as monto_enmoneda_padre from recibedoce_compensacion rdc inner join recibedoce rd ON rdc.uuid_hijo=rd.uuid 
		where rdc.uuid_padre=d.uuid and rd.status not in('R','C'))
		as totalIngresoCompensado,
		(select sum(ImpPagado) as ImpPagadoComplemento from recibedoce_pagos_docto_relacionado rdpdr inner join recibedoce_pagos rdp ON rdpdr.recibedoce_pagos_ID=rdp.recibedoce_pagos_ID
		inner join recibedoce rd ON rdp.recibedoce_UUID=rd.uuid
		where rdpdr.uuidCFDIRelacionado=d.uuid and rd.status not in('R','C'))
		as ImpPagadoComplemento,
		(select sum(monto_enmoneda_hijo) as totalEgresoCompensado from recibedoce_compensacion rdc inner join recibedoce rd ON rdc.uuid_hijo=rd.uuid 
		where rdc.uuid_hijo=d.uuid and rd.status not in('R','C'))
		as totalEgresoCompensado
		from receptor e inner join tdoctos_r t on e.idReceptor=t.idReceptor
		inner join recibedoce d on e.rfc = d.rfc_receptor and t.tipodocto = d.tipodocto
		where (d.nombreemi like '%$busca_nombre%' or d.rfcemisor like '%$busca_nombre%') and rfc_receptor $rfcQuery and d.tipodocto $docQuery and d.tipodocto=t.tipodocto $complementoQuery $comSerie $comFolio $comRFCRECEPTOR $comFecha $qFechaR $qIDDoc $filtroStatus $filtroStatusPago $permisosComplemento $qUUID) as tmp $filtroStatusPagoComplemento";*/
		
		//*********************Query sin SUM*********************
		
		/*$generaQuery="select *,(totalPagoDocumentosRef+if(totalIngresoCompensado is null,0,totalIngresoCompensado)) as totalPago, (ImpPagadoComplemento+if(totalIngresoCompensado is null,0,totalIngresoCompensado)) as impPagadoComplemento from (select asignado_a,rutaXML_P as xml,rutaPDF_P as pdf,rutaXML,rutaPDF,rfc_receptor,d.tipodocto,serie,folio,d.uuid,fechaDocto,rfcemisor,nombreemi,total,tipoMoneda,status,fechaRecibido,d.adicional as adicional,comentarios, ArchivoXML,ArchivoPDF,tipoComprobante,usarRutaDistribuida,e.idReceptor as idReceptor,comentario_status,status_pago,fecha_pago,referencia,verificacionSAT,concepto_pago,d.id as id,d.TipoCambio as TipoCambio, rdtotales.totalPagoDocumentosRef, rdtotales.FechaNP, rdtotales.totalIngresoCompensado, rdtotales.ImpPagadoComplemento, rdtotales.totalEgresoCompensado
		from receptor e inner join tdoctos_r t on e.idReceptor=t.idReceptor
		inner join recibedoce d on e.rfc = d.rfc_receptor and t.tipodocto = d.tipodocto
		left join recibedoce_totales rdtotales ON d.uuid=rdtotales.uuid
		where (d.nombreemi like '%$busca_nombre%' or d.rfcemisor like '%$busca_nombre%') and rfc_receptor $rfcQuery and d.tipodocto $docQuery and d.tipodocto=t.tipodocto $complementoQuery $comSerie $comFolio $comRFCRECEPTOR $comFecha $qFechaR $qIDDoc $filtroStatus $filtroStatusPago $permisosComplemento $qUUID) as tmp $filtroStatusPagoComplemento";
		
		$_SESSION['query_count_recibedoce']="select count(*) as count from (select *,(totalPagoDocumentosRef+if(totalIngresoCompensado is null,0,totalIngresoCompensado)) as totalPago, (ImpPagadoComplemento+if(totalIngresoCompensado is null,0,totalIngresoCompensado)) as impPagadoComplemento from (select asignado_a,rutaXML_P as xml,rutaPDF_P as pdf,rutaXML,rutaPDF,rfc_receptor,d.tipodocto,serie,folio,d.uuid,fechaDocto,rfcemisor,nombreemi,total,tipoMoneda,status,fechaRecibido,d.adicional as adicional,comentarios, ArchivoXML,ArchivoPDF,tipoComprobante,usarRutaDistribuida,e.idReceptor as idReceptor,comentario_status,status_pago,fecha_pago,referencia,verificacionSAT,concepto_pago,d.id as id,d.TipoCambio as TipoCambio, rdtotales.totalPagoDocumentosRef, rdtotales.FechaNP, rdtotales.totalIngresoCompensado, rdtotales.ImpPagadoComplemento, rdtotales.totalEgresoCompensado
		from receptor e inner join tdoctos_r t on e.idReceptor=t.idReceptor
		inner join recibedoce d on e.rfc = d.rfc_receptor and t.tipodocto = d.tipodocto
		left join recibedoce_totales rdtotales ON d.uuid=rdtotales.uuid
		where (d.nombreemi like '%$busca_nombre%' or d.rfcemisor like '%$busca_nombre%') and rfc_receptor $rfcQuery and d.tipodocto $docQuery and d.tipodocto=t.tipodocto $complementoQuery $comSerie $comFolio $comRFCRECEPTOR $comFecha $qFechaR $qIDDoc $filtroStatus $filtroStatusPago $permisosComplemento $qUUID) as tmp $filtroStatusPagoComplemento) as tmp2";*/
		
		//*****************************Query con Vista y sin SUM*********************
		
		$where = $comBuscaNombre;
		if($rfcQuery != ""){if($where != ""){$rfcQuery = " and ".$rfcQuery;}}
		$where .=$rfcQuery;
		if($docQuery != ""){if($where != ""){$docQuery = " and ".$docQuery;}}
		$where .=$docQuery;
		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($qFechaR != ""){if($where != ""){$qFechaR = " and ".$qFechaR;}}
		$where .=$qFechaR;
		if($qIDDoc != ""){if($where != ""){$qIDDoc = " and ".$qIDDoc;}}
		$where .=$qIDDoc;
		if($filtroStatus != ""){if($where != ""){$filtroStatus = " and ".$filtroStatus;}}
		$where .=$filtroStatus;
		
		if($permisosComplemento != ""){if($where == ""){$permisosComplemento = str_replace("or ","",str_replace("and ","",$permisosComplemento));}}
		$where .= $permisosComplemento;
		if($qUUID != ""){if($where != ""){$qUUID = " and ".$qUUID;}}
		$where .=$qUUID;
		
		if(trim($where != "")){
			$where = "WHERE ".$where;
		}
		
		// if($where == ""){
			// $where = "where MetodoDePago<>'PUE'";
		// }else{
			// $where = " and MetodoDePago<>'PUE'";
		// }
		
		$generaQuery="select * from (select *,
		if(length(MetodoDePago) > 3,99,getStatusNP(tipoComprobante,MetodoDePago,numReferenciasPagoDocumentosRef,vigenciaPUE,SoloFechaNP,totalPagoDocumentosRef,totalIngresoCompensado,fechaDocto,'$notificar_fecha_inicio',total,FechaNP,".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusNP,
		if(length(MetodoDePago) > 3,99,getStatusPCFDI(tipoComprobante,MetodoDePago,impPagadoComplemento,fechaDocto,'$notificar_fecha_inicio',total,".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusPCFDI,
		getStatusEgreso(tipoComprobante,total,totalEgresoCompensado,".$tConfig["tolerancia_CompensacionEgreso"].") as statusEgreso
		from (select * from view_recibedocepagos
		$where <<FILTROENGRID>>) as tmp $filtroStatusPagoComplemento) as tmp2";
		
		$_SESSION['query_count_recibedoce']="select count(*) as count from (select *,
		if(length(MetodoDePago) > 3,99,getStatusNP(tipoComprobante,MetodoDePago,numReferenciasPagoDocumentosRef,vigenciaPUE,SoloFechaNP,totalPagoDocumentosRef,totalIngresoCompensado,fechaDocto,'$notificar_fecha_inicio',total,FechaNP,".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusNP,
		if(length(MetodoDePago) > 3,99,getStatusPCFDI(tipoComprobante,MetodoDePago,impPagadoComplemento,fechaDocto,'$notificar_fecha_inicio',total,".$tConfig["tolerancia_FacturaPagada"].",marcar_como_pagada)) as statusPCFDI,
		getStatusEgreso(tipoComprobante,total,totalEgresoCompensado,".$tConfig["tolerancia_CompensacionEgreso"].") as statusEgreso
		
		from (select * from view_recibedocepagos
		$where <<FILTROENGRID>>) as tmp $filtroStatusPagoComplemento) as tmp2";
		
	
		// echo $_SESSION['query_count_recibedoce'];exit;
          // echo $generaQuery;exit;
        //echo $_SESSION['query_count_recibedoce'];exit;
	return $generaQuery;
}
?>