<?/*
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;
}
?>
<script type="text/javascript">
function abrirU(url,b,mensaje)
{
	//window.open(url,"Location=1");
	if(b != 'elimina')
	{
		if(b == 'b3')
		{
			window.top.location.href = url;
		}
		else if(b == 'regresa')
		{
			window.top.location.href = url;
		}
		else if(b == 'reporte')
		{
			if(arch=prompt("De el Nombre del Archivo",mensaje))
			window.top.location.href = url+"?archivo="+arch+"&tipo=txt";
		}
	
	}
	else if(confirm(mensaje))
		{
			window.top.location.href = url;
		}
		else
		return false;
}
</script>
<?
$numXML=0;
$numPDF=0;
$correcto=false;
$ban=true;
$entro=false;
$arreglo = 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;
		}else{
			$forzarPDF=false;
		}
	}
}else{
	$forzarPDF=true;
}

			
$tot = count($_FILES["archivos"]["name"]);
if (isset ($_FILES["archivos"])) {
	for ($i = 0; $i < $tot; $i++){
					
					$_FILES["archivos"]["tmp_name"][$i] = $_FILES["archivos"]["tmp_name"][$i];
					$_FILES["archivos"]["name"][$i] = strtoupper($_FILES["archivos"]["name"][$i]);
					$tmp_name = $_FILES["archivos"]["tmp_name"][$i];
					$name = $_FILES["archivos"]["name"][$i];
					$arreglo[$i]["temp"]=$_FILES["archivos"]["tmp_name"][$i];
					$arreglo[$i]["name"]=strtoupper($_FILES["archivos"]["name"][$i]);
	}
	function cmp($a, $b)
	{
		if (strcmp($a["name"],$b["name"]) == 0) {
			return 0;
		}
		
		return (strcmp($a["name"],$b["name"]) < 0) ? -1 : 1;
	}

	usort($arreglo,"cmp");
	$error=false;
	$queryRutas="select buscar,elementoattr,upload from configxml";
	$resultRutas=mysqli_query($conexion->CONEXION,$queryRutas);
	for($i=0;$i < count($arreglo);$i++){
		$rutaAlmacen="";
		if(strpos($arreglo[$i]["name"],".PDF")){
			if(str_replace(".PDF","",$arreglo[$i]["name"]) == str_replace(".XML","",$arreglo[$i+1]["name"])){
				try{
					if(mysqli_num_rows($resultRutas) > 0){
						while($rutas=mysqli_fetch_array($resultRutas,MYSQLI_ASSOC)){
							$valor=valXML($arreglo[$i+1]["temp"],$rutas["elementoattr"],$rutas["buscar"]);
							if($valor){
								$rutaAlmacen=$rutas["upload"];
								//Secho $rutaAlmacen;
								break;
							}
						}
					}else{
						$erroneos[]["name"] = $arreglo[$i]["name"]." Error de configuracion en el servidor";
						$error=true;
					}
				}catch(Exception $e){
					$erroneos[]["name"] = $arreglo[$i+1]["name"]." Error al cargar el xml";
				}
				if($rutaAlmacen != "" && is_dir($rutaAlmacen)){
					try{
						move_uploaded_file($arreglo[$i]["temp"],$rutaAlmacen.$arreglo[$i]["name"]);
						move_uploaded_file($arreglo[$i+1]["temp"],$rutaAlmacen.$arreglo[$i+1]["name"]);
						$i++;
					}catch(Exception $ed){
						$erroneos[]["name"] = $arreglo[$i]["name"]." No se subio correctamente debido a un error desconocido";
						$error=true;
					}					
				}else{
					$erroneos[]["name"] = $arreglo[$i]["name"]." Error de configuracion en el servidor";
					$error=true;
				}
				
			}else{
				$error=true;
				$erroneos[]["name"] = $arreglo[$i]["name"]." No cuenta con XML";
			}
		}else if(strpos($arreglo[$i]["name"],".XML") && $forzarPDF==false){
			try{
					if(mysqli_num_rows($resultRutas) > 0){
						while($rutas=mysqli_fetch_array($resultRutas,MYSQLI_ASSOC)){
							$valor=valXML($arreglo[$i+1]["temp"],$rutas["elementoattr"],$rutas["buscar"]);
							if($valor){
								$rutaAlmacen=$rutas["upload"];
								break;
							}
						}
					}else{
						$erroneos[]["name"] = $arreglo[$i]["name"]." Error de configuracion en el servidor";
						$error=true;
					}
				}catch(Exception $e){
					$erroneos[]["name"] = $arreglo[$i]["name"]." Error al cargar el xml";
				}
				if($rutaAlmacen != "" && is_dir($rutaAlmacen)){
					try{
						move_uploaded_file($arreglo[$i]["temp"],$temp["upload"].$arreglo[$i]["name"]);
						$i++;
					}catch(Exception $ed){
						$erroneos[]["name"] = $arreglo[$i]["name"]." No se subio correctamente debido a un error desconocido";
						$error=true;
					}					
				}else{
					$erroneos[]["name"] = $arreglo[$i]["name"]." Error de configuracion en el servidor";
					$error=true;
				}
		}else{
				$error=true;
				$erroneos[]["name"] = $arreglo[$i]["name"]." Debe de subir tambien el formato de impresion en pdf";
		}
	}
}
if($error){
?>
	<center>
		<table cellpadding="3" cellspacing="3" class="td_general">
			<tr>
				<td valign="center" height="200" align="left" width="450">
					<div style="overflow-x: auto; overflow-y: auto; width: 400px; height: 100">
					<table class="td_general" width="650">
					<font color="red" size="2">
					Errores:<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>
					<br><br><input type="Button" onClick="abrirU('admin.php?seccion=8&menu=2','b3','')" name="Regresar" value="REGRESAR" class="estilo_btn"/>
				</td>
			</tr>
		</table>
	</center>
<?
}else{
?>
	<center>
		<table cellpadding="3" cellspacing="3" class="td_general">
			<tr>
				<td valign="center" height="200" align="center">
					<font color="red" size="2">Los archivos se subieron correctamente</font>
					<br><br><input type="Button" onClick="abrirU('admin.php?seccion=8&menu=2','b3','')" name="Regresar" value="REGRESAR" class="estilo_btn"/>
				</td>
			</tr>
		</table>
	</center>
<?	
}

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

	$doc = new DOMDocument();
	$doc->load($file);
	$search=explode("|",$elementoAttr);
	for($i = 0 ; $i < count($search) ; $i++){
		if(strpos($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(strpos($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;
}