<?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(isset($_FILES['xls'])){
	
	$fecha = date("YmdHis");
    $targetFile = "../../upload/importacion/".$fecha."_".$_FILES['xls']['name'];
	
	if(trim($_FILES['xls']['name']) == ""){
		?><script>$j_6.messager.alert("Error","Debe de seleccionar un archivo.","error");</script><?exit;
	}
	
	$infoArchivo=pathinfo($_FILES['xls']["name"]);
	if(trim(strtoupper($infoArchivo["extension"])) != "XLS"){
		?><script>alert("Extension invalida.");</script><?
		exit;
	}
		
	if (file_exists($targetFile)){
		unlink($targetFile);	
	}
	$tempFile = $_FILES['xls']['tmp_name'];
	$targetPath = '../../upload/importacion/';
	$targetFile =  str_replace('//','/',$targetPath) . $fecha."_".$_FILES['xls']['name'];
	move_uploaded_file($_FILES['xls']['tmp_name'],$targetFile);
	$data = new Spreadsheet_Excel_Reader();
	$data->setOutputEncoding('CP1251');	
	// $data->read($targetFile);
	$data->read($targetFile);
	//$data->read('E:/PHP8/www/RecibeCFD/upload/importacion/20220811005925_config_proveedores.xls');

}else{
    ?><script>$j_6.messager.alert("Error","Debe de seleccionar un archivo.","error");</script><?
    exit;
}   
//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 from configpagina where rfc_receptor='".$_SESSION['RFC_RECEPTOR_PORTAL']."' 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"];
	}else{
		?><script>$j_6.messager.alert("Error","No se encontraron las configuraciones generales para el Receptor <?=$_SESSION['RFC_RECEPTOR_PORTAL']?>","error");</script><?
		exit;
	}
}else{
	?><script>$j_6.messager.alert("Error","Ocurrio un error al consultar las configuraciones generales del sistema.","error");</script><?
		exit;
}
set_time_limit(0);
$exito=0;
$erroneo=0;
$LOG="";	
cargaProveedor($data);
if($erroneo > 0){
	?>
	<table><tr style="background-color: #DDDDDD"><th>RFC Proveedor</th><th>RFC Receptor</th><th>Comentario</th></tr>
	<?=$LOG?>
	</table>
	<?
}

$exito=0;
$erroneo=0;
$LOG="";
cargaCorreosProveedor($data);

if($erroneo > 0){
	?>
	<table cellspacing="0" width="100%"><tr style="background-color: #DDDDDD"><th>RFC Proveedor</th><th>RFC Receptor</th><th>Correo</th><th>Comentario</th></tr>
	<?=$LOG?>
	</table>
	<?
}else{
	?><center><br><br><br><h1>Importación exitosa</h1></center><?
}


function cargaProveedor($data){
	global $tConfig,$conexion,$exito,$erroneo,$LOG;
    $renglon=1;
    foreach($data->sheets[0]['cells'] as $filas)
	{
		if($renglon>=2){
			if(trim($filas[1]) == "" || trim($filas[2]) == "" || trim($filas[3]) == "" || trim($filas[4]) == "" || trim($filas[5]) == "" || trim($filas[6]) == "" || trim($filas[7]) == ""){
				continue;
			}
			try{
				
				$qI = "insert into proveedores set rfc='".trim($filas[1])."', rfc_receptor='".trim($filas[2])."', 
				notificar_dias='".trim($filas[3])."', notificar_despuesde='".trim($filas[4])."', 
				notificar_repetirdias='".trim($filas[5])."', notificar_general='".trim($filas[6])."', 
				notificar_iniciar='".trim($filas[7])."' ON DUPLICATE KEY UPDATE notificar_dias='".trim($filas[3])."', notificar_despuesde='".trim($filas[4])."', 
				notificar_repetirdias='".trim($filas[5])."', notificar_general='".trim($filas[6])."', 
				notificar_iniciar='".trim($filas[7])."', 
				esFinanciero='".trim(@$filas[8])."'";
				if(!mysqli_query($conexion->CONEXION,$qI)){
					$erroneo++;
					$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">Error al dar de alta/actualizar proveedor. <font style=\"color: red\">ERROR:</font> ".htmlentities(mysqli_error($conexion->CONEXION),ENT_QUOTES)."</td></tr>";
				}else{
					$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\"><img src=\"Imagenes/accept.png\" width=\"32\" height=\"32\" /></td></tr>";
					$exito++;
				}
			}catch(Exception $e){
				$erroneo++;
				$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">Error al dar de alta/actualizar proveedor. <font style=\"color: red\">ERROR:</font> ".htmlentities($e->getMessage(),ENT_QUOTES)."</td></tr>";
			}           
		}
		   $renglon++; 
	}
        
}

function cargaCorreosProveedor($data){
	global $tConfig,$conexion,$exito,$erroneo,$LOG;
    $renglon=1;
    foreach($data->sheets[1]['cells'] as $filas)
        {
            if($renglon>=2){
				
				if(trim($filas[1]) == "" || trim($filas[2]) == "" || trim($filas[4]) == ""){
					continue;
				}
				if(trim($filas[3]) == ""){
					$filas[3] = trim($filas[4]);
				}
				
                try{
					
					$qS = "select * from correos_proveedores where rfc='".trim($filas[1])."' and rfc_receptor='".trim($filas[2])."' and correo='".trim($filas[4])."'";
					
					if(!$rS = mysqli_query($conexion->CONEXION,$qS)){
						$erroneo++;
						$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[4])."</td><td style=\"border: 1px solid #999999;\">Error al dar de alta el correo del proveedor. <font style=\"color: red\">ERROR:</font> ".htmlentities(mysqli_error($conexion->CONEXION),ENT_QUOTES)."</td></tr>";
						continue;
					}
					if(mysqli_num_rows($rS) > 0){
						$erroneo++;
						$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[4])."</td><td style=\"border: 1px solid #999999;\"><font style=\"color: orange\">Advertencia:</font>El correo ya esta dado de alta.</td></tr>";
						continue;
					}
					
					$qI = "insert into correos_proveedores set rfc='".trim($filas[1])."', rfc_receptor='".trim($filas[2])."', nombre='".utf8_encode(mysqli_real_escape_string($conexion->CONEXION,trim($filas[3])))."', correo='".trim($filas[4])."'";
					
					if(!mysqli_query($conexion->CONEXION,$qI)){
						$erroneo++;
						$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[4])."</td><td style=\"border: 1px solid #999999;\">Error al dar de alta el correo del proveedor. <font style=\"color: red\">ERROR:</font> ".htmlentities(mysqli_error($conexion->CONEXION),ENT_QUOTES)."</td></tr>";
					}else{
						$erroneo++;
						$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[4])."</td><td style=\"border: 1px solid #999999;\"><img src=\"Imagenes/accept.png\"  width=\"32\" height=\"32\" /></td></tr>";
						$exito++;
					}
				}catch(Exception $e){
					$erroneo++;
					$LOG.="<tr><td style=\"border: 1px solid #999999;\">".trim($filas[1])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[2])."</td><td style=\"border: 1px solid #999999;\">".trim($filas[4])."</td><td style=\"border: 1px solid #999999;\">Error al dar de alta el correo del proveedor. <font style=\"color: red\">ERROR:</font> ".htmlentities(($e->getMessage()),ENT_QUOTES)."</td></tr>";
				}           
            }
               $renglon++; 
        }
        
}

?>
