<?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();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;}
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"];
$RegimenFiscalEmisor=$_POST["RegimenFiscalEmisor"];


$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);
$adicional="";
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("CAMPO_".$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';

	// for($i=0; $i < count($arrCampos); $i++){echo ",".$arrCampos[$i];} echo "<br/>";

	// for($i=0; $i < count($arrConfigCampos); $i++){
	// 	echo $arrConfigCampos[$i];
	// 	if(strpos($arrConfigCampos[$i],"hidden") !== false){
	// 		$columnasOcultarExcel.=",".($i+2);
	// 	}
	// }exit;
?>
<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/recibedoceGrid.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/recibedoceDatosGrid.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){
	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']."'";
		}

	}



	$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(trim($_POST['status'][$i]) != "0" && trim($_POST['status'][$i]) != "1" && trim($_POST['status'][$i]) != "2"){
                            if($filtroStatus=="")
                                $filtroStatus.=" ( status_absa='".str_replace ("8", "4", str_replace ("7", "3", str_replace ("6", "2", str_replace ("5", "1", $_POST['status'][$i]))))."'";
                            else
                                $filtroStatus.=" or status_absa='".str_replace ("8", "4", str_replace ("7", "3", str_replace ("6", "2", str_replace ("5", "1", $_POST['status'][$i]))))."'";*/
                    //}else{
                            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.=" )";
        }

        $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']."'";
		}
	}
	$qUUID = "";
	$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 = "cast(folio as unsigned) between '$folioI' and '$folioF'";
		}elseif($folioI != ""){
			$comFolio = "cast(folio as unsigned) >= '$folioI'";
		}elseif($folioF != ""){
			$comFolio = "cast(folio as unsigned) <= '$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 = '".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"]."'";
		}
	}

	$comRegimenFiscalEmisor = "";
	if($_POST["RegimenFiscalEmisor"] != ""){
		$comRegimenFiscalEmisor = "d.RegimenFiscalEmisor='".$_REQUEST["RegimenFiscalEmisor"]."'";
	}

	$comBuscaNombre = "";
	if($busca_nombre != ""){
		$comBuscaNombre = "(nombreemi like '%$busca_nombre%' or rfcemisor like '%$busca_nombre%')";
	}
	$docQuery = "";
	$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($comRegimenFiscalEmisor != ""){if($where != ""){$comRegimenFiscalEmisor = " and ".$comRegimenFiscalEmisor;}}
	$where .=$comRegimenFiscalEmisor;

	$filtroStatusPago="";
	if(isset($_POST['status_pago_buscar'])){
		for($i=0; $i < count($_POST['status_pago_buscar']); $i++){
			if(trim($_POST['status_pago_buscar'][$i]) != ""){
				if($filtroStatusPago==""){
					$filtroStatusPago="( status_pago='".str_replace ("0", "N", str_replace ("1", "R", str_replace ("2", "P", $_POST['status_pago_buscar'][$i])))."'";
				}else{
					$filtroStatusPago.=" or status_pago='".str_replace ("0", "N", str_replace ("1", "R", str_replace ("2", "P", $_POST['status_pago_buscar'][$i])))."'";
				}
			}
		}
		if(trim($filtroStatusPago) != "")
			$filtroStatusPago.=" )";
	}

	if($filtroStatusPago != ""){if($where != ""){$filtroStatusPago = " and ".$filtroStatusPago;}}
	$where .=$filtroStatusPago;

	if($permisosComplemento != ""){if($where == ""){$permisosComplemento = str_replace_first("or","",str_replace_first("and","",$permisosComplemento));}}
	$where .= " ".$permisosComplemento;
	if($qUUID != ""){if(trim($where) != ""){$qUUID = " and ".$qUUID;}}
	$where .=$qUUID;

	if(trim($where) != ""){
		$where = "where ".$where;
		$where .= " and d.tipodocto=c.tipodoc and c.rfc = d.rfc_receptor";
	}else{
		$where = "where d.tipodocto=c.tipodoc and c.rfc = d.rfc_receptor";
	}

	$selectComplemento="";
	if(strtoupper(trim($_SESSION["PROVISION_DE_PAGOS"])) == "SI"){
		$selectComplemento = ", d.bloqueadoPP as bloqueadoPP, d.fechaPP as fechaPP, d.IdPP as IdPP";
	}


	// $generaQuery="select distinct 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,c.idReceptor as idReceptor,comentario_status,status_pago,fecha_pago,referencia,verificacionSAT,concepto_pago,d.id as id,d.TipoCambio as TipoCambio,d.status_pagada,d.status_compensada $selectComplemento from
	// (select t.idReceptor as idReceptor,rfc,tipodocto as tipodoc,rutaXML_P,rutaPDF_P,rutaXML,rutaPDF,usarRutaDistribuida,adicional from receptor e,tdoctos_r t where e.idReceptor=t.idReceptor) as c,recibedoce d $where <<FILTROENGRID>>";

	$generaQuery="select distinct d.id, rfcemisor, d.tipodocto, serie, folio, uuid, fechaDocto, rfc_receptor, total, tipoMoneda, status, fechaRecibido, nombreemi, comentarios, ArchivoXML, ArchivoPDF, d.adicional, tipo_documento, fecha_pago, asignado_a, nombrerec, totalmxn, tipo_cambio, subtotal, subtotal_xml, comentario_status, status_pago, referencia, verificacionSAT, concepto_pago, TipoCambio, tipoComprobante, FormaDePago, d.status_pagada, d.status_compensada, status_activa, MetodoDePago, marcar_como_pagada, reporte_pagada_generado, rutaXML_P as xml,rutaPDF_P as pdf,rutaXML,rutaPDF,usarRutaDistribuida,c.idReceptor as idReceptor $selectComplemento from
	(select t.idReceptor as idReceptor,rfc,tipodocto as tipodoc,rutaXML_P,rutaPDF_P,rutaXML,rutaPDF,usarRutaDistribuida,adicional from receptor e,tdoctos_r t where e.idReceptor=t.idReceptor) as c,recibedoce d $where <<FILTROENGRID>>";

	$_SESSION['query_count_recibedoce']="select count(*) as count from (select distinct 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,c.idReceptor as idReceptor,comentario_status,status_pago,fecha_pago,referencia,verificacionSAT,concepto_pago,d.id as id,d.TipoCambio as TipoCambio,d.status_pagada,d.status_compensada $selectComplemento from (select t.idReceptor as idReceptor,rfc,tipodocto as tipodoc,rutaXML_P,rutaPDF_P,rutaXML,rutaPDF,usarRutaDistribuida,adicional from receptor e,tdoctos_r t where e.idReceptor=t.idReceptor) as c,recibedoce d $where <<FILTROENGRID>>) as tmp";

	// echo $_SESSION['query_count_recibedoce'];exit;
	// echo $generaQuery;exit;
	//echo $_SESSION['query_count_recibedoce'];exit;
	return $generaQuery;
}
?>
