<?
/*
Autor: Lic. Carlos Alberto Vaca Coronado
Version: 3.2.0
*/

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;
}
$numXML=0;
$numPDF=0;
$correcto=false;
$ban=true;
$entro=false;
$arregloPDF = array();
$arregloXML = array();
$arregloSucursal = array();
$arregloHidden = array();
$forzarPDF=true;
require("conexion/conectar.php");

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

if(file_exists("config.ini")){
	$vlineas = file("config.ini"); 
	foreach ($vlineas as $sLinea) {
		if(substr($sLinea,0,9) == "FORZARPDF" && trim($sLinea) == "FORZARPDF=SI"){
			$forzarPDF=true;
			break;
		}else{
			$forzarPDF=false;
		}
	}
	
}else{
	
	$forzarPDF=true;
}


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

	foreach ($vlineas as $sLinea) {
			if(substr($sLinea,0,11) == "SUCURSALES="){
				$arrS = explode('|',substr($sLinea,11,strlen($sLinea)));
				break;
			}
	}
}
if(file_exists("config.ini")){
	$vlineas = file("config.ini"); 		 
	foreach ($vlineas as $sLinea) {
			if(substr($sLinea,0,12) == "RUTAALMACEN="){
				$arrR = explode('|',substr($sLinea,12,strlen($sLinea)));
				break;
			}
		}
}
if(file_exists("config.ini")){
	$vlineas = file("config.ini"); 		 
	foreach ($vlineas as $sLinea) {
			if(substr($sLinea,0,26) == "NOTIFICAR_VALIDACION_USER="){
				$notificar = trim(substr($sLinea,26));
				break;
			}
		}
}

if(file_exists("config.ini")){
	$vlineas = file("config.ini"); 		 
	foreach ($vlineas as $sLinea) {
			if(substr($sLinea,0,16) == "LABEL_ADICIONAL="){
				$label = trim(substr($sLinea,16));
				break;
			}
		}
}


if (isset ($_FILES["filePDF"])) {
$tot = count($_FILES["filePDF"]["name"]);
	for ($i = 0; $i < $tot; $i++){
					
					$_FILES["filePDF"]["tmp_name"][$i] = $_FILES["filePDF"]["tmp_name"][$i];
					$_FILES["filePDF"]["name"][$i] = str_replace(" ","_",strtoupper($_FILES["filePDF"]["name"][$i]));
					$tmp_name = $_FILES["filePDF"]["tmp_name"][$i];
					$name = $_FILES["filePDF"]["name"][$i];
					$arregloPDF[$i]["temp"]=$_FILES["filePDF"]["tmp_name"][$i];
					$arregloPDF[$i]["name"]=str_replace(" ","_",strtoupper($_FILES["filePDF"]["name"][$i]));
					
					$_FILES["fileXML"]["tmp_name"][$i] = $_FILES["fileXML"]["tmp_name"][$i];
					$_FILES["fileXML"]["name"][$i] = str_replace(" ","_",strtoupper($_FILES["fileXML"]["name"][$i]));
					$tmp_name = $_FILES["fileXML"]["tmp_name"][$i];
					$name = $_FILES["fileXML"]["name"][$i];
					$arregloXML[$i]["temp"]=$_FILES["fileXML"]["tmp_name"][$i];
					$arregloXML[$i]["name"]=str_replace(" ","_",strtoupper($_FILES["fileXML"]["name"][$i]));
					
					$arregloSucursal[$i] = $_REQUEST["sucursal"][$i];
					$arregloHidden[$i] = $_REQUEST["tbodyId"][$i];
	}
	
	$error=false;
	$exitosos="";
	for($i=0;$i < count($arregloPDF);$i++){
		if($arregloSucursal[$i] != ""){
			$rutaAlmacen="";
			$palabra=preg_quote('.PDF');
			$palabra2=preg_quote('.XML');
			
			// if($forzarPDF || eregi($palabra,$arregloPDF[$i]["name"]) || $arregloPDF[$i]["name"] != ""){
			if($forzarPDF || preg_match($palabra,$arregloPDF[$i]["name"]) || $arregloPDF[$i]["name"] != ""){
				
				if(str_replace(".PDF","",$arregloPDF[$i]["name"]) == str_replace(".XML","",$arregloXML[$i]["name"])){
						if(count($arrS) == count($arrR)){
							$sucursal=array_keys($arrS,$arregloSucursal[$i]);
							$rutaAlmacen = trim($arrR[$sucursal[0]]);
							if(!is_dir($rutaAlmacen)){
								mkdir($rutaAlmacen,0700,true);
							}
							if($rutaAlmacen != "" && is_dir($rutaAlmacen)){
								try{
									$now = (string)microtime();
									$now = explode(' ', $now);
									$mm = explode('.', $now[0]);
									$mm = $mm[1];
									$now = $now[1];
									$segundos = $now % 60;
									$segundos = $segundos < 10 ? "$segundos" : $segundos;
									$nombreComplemento=date("YmdHis").$segundos.$mm;
									$pdf="";
									$xml="";
									$email="";
									$pdfArray=explode(".",$arregloPDF[$i]["name"]);
									$xmlArray=explode(".",$arregloXML[$i]["name"]);
									for($j = 0; $j < (count($pdfArray)-1); $j++){
										$pdf.=$pdfArray[$j];
									}
									for($j = 0; $j < (count($xmlArray)-1); $j++){
										$xml.=$xmlArray[$j];
										$email.=$xmlArray[$j];
									}
									$pdf.="_".$nombreComplemento.".PDF";
									$xml.="_".$nombreComplemento.".XML";
									$email.="_".$nombreComplemento.".EMAIL";
									
									if(strtoupper($notificar) == "SI"){
										$fp = fopen($rutaAlmacen.$email,"a");
										fwrite($fp, $_SESSION['email_user_p_prov_absa']."|".$_SESSION['usuario_p_prov_absa']);
										fclose($fp);
									}
									move_uploaded_file($arregloPDF[$i]["temp"],$rutaAlmacen.$pdf);
									move_uploaded_file($arregloXML[$i]["temp"],$rutaAlmacen.$xml);
									$exitosos.="<img src='Imagenes/accept.png' width='16' height='16'/>".$arregloPDF[$i]["name"]." y ".$arregloXML[$i]["name"]." correctos.<br>";
									?>
									<script>var div = window.parent.document.getElementById('<?=$arregloHidden[$i]?>');
											if(div)
												div.parentNode.removeChild(div);
									</script>
									<?
								}catch(Exception $ed){
									$erroneos[]["name"] = $arregloPDF[$i]["name"]." No se subio correctamente debido a un error desconocido";
									$erroneos[]["name"] = $arregloXML[$i]["name"]." No se subio correctamente debido a un error desconocido";
									$error=true;
								}					
							}else{
								$erroneos[]["name"] = $arregloPDF[$i]["name"]." Error de configuracion en el servidor";
								$erroneos[]["name"] = $arregloXML[$i]["name"]." Error de configuracion en el servidor";
								$error=true;
							}
						}else{
							$erroneos[]["name"] = $arregloPDF[$i]["name"]." Error de configuracion en el servidor";
							$erroneos[]["name"] = $arregloXML[$i]["name"]." Error de configuracion en el servidor";
							$error=true;
						}
				}else{
					$error=true;
					$erroneos[]["name"] = $arregloPDF[$i]["name"]." No es un archivo valido o no coinciden los nombres<br/>de los archivos
										  PDF y XML";
				}
			// }else if(eregi($palabra2,$arregloXML[$i]["name"])){
			}else if(preg_match($palabra2,$arregloXML[$i]["name"])){
					$rutaAlmacen="";
					if(count($arrS) == count($arrR)){
						$sucursal=array_keys($arrS,$arregloSucursal[$i]);
						$rutaAlmacen = trim($arrR[$sucursal[0]]);
						
						if(!is_dir($rutaAlmacen)){
								mkdir($rutaAlmacen,0700,true);
							}
						if($rutaAlmacen != "" && is_dir($rutaAlmacen)){
							try{
								$now = (string)microtime();
								$now = explode(' ', $now);
								$mm = explode('.', $now[0]);
								$mm = $mm[1];
								$now = $now[1];
								$segundos = $now % 60;
								$segundos = $segundos < 10 ? "$segundos" : $segundos;
								$nombreComplemento=date("YmdHis").$segundos.$mm;
								$xml="";
								$email="";
								$xmlArray=explode(".",$arregloXML[$i]["name"]);
								
								for($j = 0; $j < (count($xmlArray)-1); $j++){
									$xml.=$xmlArray[$j];
									$email.=$xmlArray[$j];
								}
								$xml.="_".$nombreComplemento.".XML";
								$email.="_".$nombreComplemento.".EMAIL";
								
								if(strtoupper($notificar) == "SI"){
										$fp = fopen($rutaAlmacen.$email,"a");
										fwrite($fp, $_SESSION['email_user_p_prov_absa']."|".$_SESSION['usuario_p_prov_absa']);
										fclose($fp);
								}
								move_uploaded_file($arregloXML[$i]["temp"],$rutaAlmacen.$xml);
								$exitosos.="<img src='Imagenes/accept.png' width='16' height='16'/>".$arregloXML[$i]["name"]." correcto.<br>";
								?>
								<script>var div = window.parent.document.getElementById('<?=$arregloHidden[$i]?>');
										div.parentNode.removeChild(div);
								</script>
								<?
							}catch(Exception $ed){
								$erroneos[]["name"] = $arregloXML[$i]["name"]." No se subio correctamente debido a un error desconocido";
								$error=true;
							}					
						}else{
							$erroneos[]["name"] = $arregloXML[$i]["name"]." Error de configuracion en el servidor";
							$error=true;
						}
					}else{
						$erroneos[]["name"] = $arregloXML[$i]["name"]." Error de configuracion en el servidor";
						$error=true;
					}
			}else{
					$error=true;
					$erroneos[]["name"] = $arregloXML[$i]["name"]." Formato de Archivo incorrecto";
			}
		}else{
                        /*if($_SESSION["tipo_portal"] == "VIMIFOS")
                            $mensaje=" Debe de especificar $label";
                        else*/
                            $mensaje=" Debe de especificar $label";
                        
			$erroneos[]["name"] = $arregloPDF[$i]["name"].$mensaje;
			$erroneos[]["name"] = $arregloXML[$i]["name"].$mensaje;
			$error=true;
		}
	}
if($error){
?>
<table class="td_general" style="background-color:  #FFFFFF" width="70%">
<tr>
<td width="100%">
	<center>
		<table cellpadding="3" cellspacing="3" class="td_general">
			<tr>
				<td valign="center" height="200" align="left" width="100%">
					<div style="overflow-x: auto; overflow-y: auto; width: 100%; height: 200">
					<table class="td_general" width="650">
					<font color="red" size="2">
					Errores de carga:<br>
					</font>
					<?
						for($i = 0 ; $i < count($erroneos) ; $i++){
							echo "<tr><td valign='top' class='td_general'><font color='red' size='2'>".$erroneos[$i]["name"]."</font></td>";
						}
					?>
					</table>
					</div>
				</td>
			</tr>
		</table>
	</center>
</td>
<td width="100%">
<?
	if($exitosos != ""){
	?>
	<center>
		<table cellpadding="3" cellspacing="3" class="td_general">
			<tr>
				<td valign="center" height="200" align="left" width="100%">
					<div style="overflow-x: auto; overflow-y: auto; width: 100%; height: 200">
					<table class="td_general" width="100%">
					<font color="blue" size="2">
					Archivos cargados correctamente, espere la validaci&oacute;n:<br>
					</font>
					<?
							echo "<tr><td valign='top' class='td_general'><font color='blue' size='2'>".$exitosos."</font></td>";
					?>
					</table>
					</div>
				</td>
			</tr>
		</table>
	</center>
	<?
	}
?>
</td>
</tr>
</table>
<?
}else{
?>
	<center>
		<table cellpadding="3" cellspacing="3"  style="background-color:  #FFFFFF" width="70%" class="td_general">
			<tr>
				<td valign="center" height="200" align="left" width="100%">
					<div style="overflow-x: auto; overflow-y: auto; width: 100%; height: 200">
					<table class="td_general" width="100%">
					<font color="blue" size="2">
					Archivos cargados correctamente, espere la validaci&oacute;n:<br>
					</font>
					<?
							echo "<tr><td valign='top' class='td_general'><font color='blue' size='2'>".$exitosos."</font></td>";
					?>
					</table>
					</div>
				</td>
			</tr>
		</table>
	</center>
<?	
}
}else{
?>
	<center>
		<table cellpadding="3" cellspacing="3"  style="background-color:  #FFFFFF" width="70%" class="td_general">
			<tr>
				<td valign="center" height="200" align="center">
					<font color="red" size="2">Agregue inicialmente los archivos</font>
				</td>
			</tr>
		</table>
	</center>
<?
}
sleep(5);

function valXML($file,$elementoAttr,$buscar){

	$doc = new DOMDocument();
	$doc->load($file);
	$search=explode("|",$elementoAttr);
	for($i = 0 ; $i < count($search) ; $i++){
		$palabra=preg_quote(',');
		$palabra2=preg_quote('.');
		// if(eregi($palabra,$search[$i])){
		if(preg_match($palabra,$search[$i])){
			$elementos = explode(",",$search[$i]);
			$tags  = $doc->documentElement->getElementsByTagName($elementos[0]);

			foreach( $tags as $e ){
				$e2 = $e->getElementsByTagName($elementos[1]);
				$valor = $e2->item(0)->nodeValue;
				if(trim($valor) == $buscar){
					//echo $valor."<br>";
					return true;
				}
			}
			
		// }else if(eregi($palabra2,$search[$i])){
		}else if(preg_match($palabra2,$search[$i])){
			$EA=explode(".",$search[$i]);
			$att = $doc->getElementsByTagName($EA[0]);
			foreach($att as $a){
				if(trim($a->getAttribute($EA[1])) == $buscar){
					//echo $a->getAttribute($EA[1]);
					return true;
				}
			}
		}
	}
	return false;
}