<?php

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_once '../../libs/ExcelReader/reader.php';
require '../../conexion/conectar.php';
require("../../libs/funciones.php");

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

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

if(isset($_FILES['xls'])){
	
	$infoArchivo=pathinfo($_FILES['xls']["name"]);
	if(trim(strtoupper($infoArchivo["extension"])) != "XLS"){
		?><script>alert("Extension invalida.");</script><?
		exit;
	}
	
    $targetFile = "../../upload/importacion/".$_FILES['xls']['name'];
	
	if(trim($_FILES['xls']['name']) == ""){
		?><script>alert("Debe de seleccionar primero un archivo.");</script><?exit;
	}
		
	if (file_exists($targetFile)){
		unlink($targetFile);	
	}
	$tempFile = $_FILES['xls']['tmp_name'];
	$targetPath = '../../upload/importacion/';
	$targetFile =  str_replace('//','/',$targetPath) . $_FILES['xls']['name'];
	move_uploaded_file($_FILES['xls']['tmp_name'],$targetFile);
        
	$data = new Spreadsheet_Excel_Reader();
	$data->setOutputEncoding('CP1251');	
	$data->read("../../upload/importacion/".$_FILES['xls']['name']);
}else{
    htmlError("Debe de seleccionar un Archivo");
    exit;
}   
    

        

    cargaPagos($data);


function cargaPagos($data){
    $exito=0;
    $erroneo=0;
    $exitoU=0;
    $erroneoU=0;
    $errores="";
    $renglon=1;
	Global $COPIAR_ARCHIVOS_PAGADOS;
    foreach($data->sheets[0]['cells'] as $filas)
        {
            
            if($renglon>=2){
                            if(trim($filas[1]) == ""){
                                continue;
                            }
                            
                           
                            $query="select total,fecharecibido,archivopdf,archivoxml,rfc_receptor,id from recibedoce where rfcemisor='".trim($filas[1])."' and tipodocto='".trim($filas[2])."' and serie='".trim($filas[3])."' and folio='".trim($filas[4])."' and uuid='".trim($filas[5])."' LIMIT 1";
							
                            $rQ = mysqli_query($conexion->CONEXION,$query);
								
							if(mysqli_num_rows($rQ) <= 0){
								$erroneo++;
								$errores.="<b><font color=\"red\">Error:</font></b> El documento ".trim($filas[1]).", ".trim($filas[2]).", ".trim($filas[3]).",".trim($filas[4]).", ".trim($filas[5])." NO EXISTE<br/>";
								continue;
							}else{
								
								$tmp = mysqli_fetch_array($rQ,MYSQLI_ASSOC);
								$totalFactura = $tmp['total'];
								
								$query="select sum(monto) as totalPagado from pago_doc_detalle where rfcemisor='".trim($filas[1])."' and tipodocto='".trim($filas[2])."' and serie='".trim($filas[3])."' and folio='".trim($filas[4])."' and uuid='".trim($filas[5])."'";
								
								$rSum = mysqli_query($conexion->CONEXION,$query);
								$totalPagado = 0;
								if(mysqli_num_rows($rSum) > 0){
									$tSum = mysqli_fetch_array($rSum,MYSQLI_ASSOC);
									$totalPagado = $tSum['totalPagado'];
								}
								
								$totalPagado+=trim($filas[9]);
								
								if($totalPagado > $totalFactura){
									$erroneo++;
									$errores.="<b><font color=\"red\">Error:</font></b> El documento ".trim($filas[1]).", ".trim($filas[2]).", ".trim($filas[3]).",".trim($filas[4]).", ".trim($filas[5])." YA HA SIDO COMPLETADO EL TOTAL PAGADO Ó EL MONTO ES MAS GRANDE QUE EL TOTAL DE LA FACTURA<br/>";
									continue;
								}
								
								if(trim($filas[6]) == "" || trim($filas[7]) == "" || trim($filas[8]) == "" || trim($filas[9]) == ""){
									$erroneo++;
									$errores.="<b><font color=\"red\">Error:</font></b> El documento ".trim($filas[1]).", ".trim($filas[2]).", ".trim($filas[3]).",".trim($filas[4]).", ".trim($filas[5])." LOS CAMPOS DE FECHA DE PAGO,REFERENCIA,CONCEPTO Y MONTO, NO PUEDEN ESTAR VACIOS<br/>";
									continue;
								}
								
								$query="insert into pago_doc_detalle set  rfcemisor='".trim($filas[1])."',tipodocto='".trim($filas[2])."',serie='".trim($filas[3])."',folio='".trim($filas[4])."',uuid='".trim($filas[5])."',fecha_pago='".$filas[6]."',referencia='".$filas[7]."',concepto_pago='".$filas[8]."',monto=".$filas[9];
							}
								
                                if(mysqli_query($conexion->CONEXION,$query)){
                                        $exito++;
										$fechaRecibido = $tmp["fecharecibido"];
										$fechadocto=trim($filas[6]);
										$archivoxml=$tmp["archivoxml"];
										$archivopdf=$tmp["archivopdf"];
										$rfc_receptor=$tmp["rfc_receptor"];
										$totalFactura=$tmp["total"];
										$idDoc=$tmp["id"];
										
										$stDoc="";
										
										if(substr($tmp["fechadocto"],0,4) < substr(trim($filas[6]),0,4)){
											$stDoc="_EJERCICIOANT";
										}else if(substr($tmp["fechadocto"],5,2) < substr(trim($filas[6]),5,2)){
											$stDoc="_MESANT";
										}
										
										$info = pathinfo($archivoxml);
										$aXML = basename($archivoxml,'.'.$info['extension']).$stDoc."_".$idDoc.".xml";
										$info = pathinfo($archivopdf);
										$aPDF = basename($archivopdf,'.'.$info['extension']).$stDoc."_".$idDoc.".pdf";
										
										
										if($COPIAR_ARCHIVOS_PAGADOS=="SI"){
											
											//if($totalSuma == $totalFactura){
												if(!$RUTA_ALMACEN_PAGADAS=trim(getINI("RUTA_ALMACEN_PAGADAS=","../../config.ini"))){
													echo "Falta una configuracion en el sistema.<br/>Llame al administrador del sistema";exit;
												}
												
												$qFile = "select rutaXML_P,rutaPDF_P,usarRutaDistribuida from tdoctos_r t, receptor r where tipodocto='".trim($filas[2])."' and r.idreceptor = t.idreceptor and r.rfc='$rfc_receptor' limit 1";
												
												$resultTipo = mysqli_query($conexion->CONEXION,$qFile);
												
												if(mysqli_num_rows($resultTipo) > 0){
													$tmpRuta=mysqli_fetch_array($resultTipo,MYSQLI_ASSOC);
													$rutaXML_P=$tmpRuta["rutaXML_P"];
													$rutaPDF_P=$tmpRuta["rutaPDF_P"];
													$usarRutaDistribuida=$tmpRuta["usarRutaDistribuida"];
												}
												
												$arrVars = array("<<RFCRECEPTOR>>","<<RFCEMISOR>>","<<TIPODOCTO>>","<<ANIO>>","<<MES>>","<<DIA>>");
												
												$arrVals = array($rfc_receptor,$rfcemisor,$tipodocto,substr($fechadocto,0,4),substr($fechadocto,5,2),substr($fechadocto,8,2));
												
												$RUTA_ALMACEN_PAGADAS=str_replace($arrVars,$arrVals,$RUTA_ALMACEN_PAGADAS);
												
												if(!is_dir(trim($RUTA_ALMACEN_PAGADAS))){
													mkdir($RUTA_ALMACEN_PAGADAS,755,true);
												}
												
												if($usarRutaDistribuida=="SI"){
													$rutaXML_P=$rutaXML_P.substr($fechaRecibido,0,4)."/".substr($fechaRecibido,5,2)."/".$archivoxml;
													$rutaPDF_P=$rutaPDF_P.substr($fechaRecibido,0,4)."/".substr($fechaRecibido,5,2)."/".$archivopdf;
												}else{
													$rutaXML_P=$rutaXML_P.$archivoxml;
													$rutaPDF_P=$rutaPDF_P.$archivopdf;
												}
												
												
												if(file_exists($rutaXML_P)){
													if(!copy($rutaXML_P,$RUTA_ALMACEN_PAGADAS.$aXML)){
														echo "Hubo un error al copiar el XML a pagadas. Intente nuevamente.";
														exit;
													}
												}
												if(file_exists($rutaPDF_P)){
													if(!copy($rutaPDF_P,$RUTA_ALMACEN_PAGADAS.$aPDF)){
														echo "Hubo un error al copiar el PDF a pagadas. Intente nuevamente";
														exit;
													}
												}
											//}
										}
                                }else{
                                        $erroneo++;
										$errores.="<b><font color=\"red\">Error:</font></b> El documento ".trim($filas[1]).", ".trim($filas[2]).", ".trim($filas[3]).",".trim($filas[4]).", ".trim($filas[5])." NO FUE POSIBLE REGISTRAR EL PAGO<br/>";
                                }
								

            }
               $renglon++; 
        }
        htmlResultados($exito, $erroneo, 0, 0, "Pago (s) Aplicado (s)", $errores);
}


function htmlResultados($exito,$erroneo,$exitoU,$erroneoU,$catalogo,$errores){
?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class='td_general'>
      <tr>
        <td colspan="2" align="left" class="txt_titulos" style='background-color: #FBEC88'>La carga se ha completado</td>
      </tr>
      <tr>
        <td colspan="3" align="left">
            <table width="590" border="0" cellpadding="0" cellspacing="0" class="none">
                <tr>
                  <td class="HeaderMenuBck">
                    <?=$exito?><br/>
                    <?=$erroneo?><br/>
                  </td>
                  <td class="HeaderMenuBck">
                    <?=$catalogo?> se han insertado correctamente<br/>
                    <?=$catalogo?> NO se han insertado<br/>
                  </td>
                </tr>
                <tr>
                  <td colspan="2" class="HeaderMenuBck" colpan='2'><?=$errores?></td>
                </tr>
            </table>
            
        </td>
      </tr>
</table>  
    <?
}


function htmlError($msg){
?>
<table width="100%">
      <tr>
        <td colspan="2" align="left" class="txt_titulos" style='background-color: #710909'><?=$msg?></td>
      </tr>
</table>  
    <?
}
?>
