<?php
session_start();
include("cls_conexion.php");
$CNN=new ClsMySQL();
include("conexion23.php");
include("phpmnu_fun.php");
if(strlen($_SESSION['SYS_USER_ID'])==0){JsDir("login.php");	return;}
//+++
$HW=V($_SESSION['SYS_HW']);
$IdUsu=vbval(V($_SESSION['SYS_USER_ID']));
//++++
$StrGT="";
$SYS_MSG="";
$SYS_FOC="";
$OK=1;
//
$StrId=V($_POST['TxtId']);
$StrCmd=V($_POST['TxtAc']);
$LStrPag=V($_POST['TxtPag']);
//
/*
$VP_RegXPag=100;
$LStrTR=gn("count(*)","ges_puertos","id_pto>0");
$LStrPag=PagGet($LStrPag,$StrCmd,$LStrTR,$VP_RegXPag);	
*/
$TI=0;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Facturas xml - Importar masivos</title>
<!--INI_SCRIPT------------------------------------------------------------------------------>
<?php AddJs(); ?>
<script type="text/javascript" src="ja/funciones.js"></script>

<!--FIN_SCRIPT------------------------------------->
<link rel="stylesheet" type="text/css" href="css/estiloss.css"  />
<link rel="stylesheet" type="text/css" href="css/basic.css"  />
<link rel="stylesheet" type="text/css" href="css/mnu.css"  />

<style type="text/css">
.cF {height:600px;width:1250px;position:relative;top:0px}
.mM {height:34px;width:1250px;position:relative;top:0px;background-color:#09C; z-index:500;}

.tableFixHead          { overflow-y: auto; overflow:auto; border:solid 1px #363636;position: absolute; }
.tableFixHead thead th { position: sticky; top: 0; }
table  {border-collapse:collapse;width:100%;}
th, td {padding: 3px 3px;}
th     {background:#A0A0A0}
</style>
<script>
function FUN_INI(){
  Inicializar();
  //++
}
</script>
</head>

<body onLoad="FUN_INI()" >
<div align="center">

<div class="mM" align="left" style="font-size:12px">
<?php
echo GEN_MENU($IdUsu);
?>
</div>

<div Id="DivFRM"  class="cF" style="background-color:#FFFFFF;">
<form id="Frm" name="Frm" method="post" autocomplete="off"  action="ges_facturas_masivo.php"
enctype="multipart/form-data" 
style="margin:0px; padding:0px; display:inline;" onSubmit="return false;">

<!--INI_TITULO--------------------------------->
<div id="DivT" class="dT" >
<img src="png/caja_trans.png"  class="iT" />
<div class="tT">XML FACTURAS - IMPORTAR MASIVOS</div>
</div>

<div class="s1" style="left: 35px; top: 84px; width: 869px;">Puede ingresar un nombre o numero de lote que identifique al conjunto de XML importados, puede usar mas de una vez el mismo nombre o numero</div>

<div class="s1" style="left: 35px; top: 110px; width: 115px;"> LOTE (Opcional)</div>
<input name="Lot"  type="text" id="Lot"
class="lt  " style="left: 35px; top: 128px; width: 229px" 
value="<?php echo XML_LOTE_GEN();?>" 
tabindex="<?php echo ++$TI;?>"/>





<div class="s1" style="left: 35px; top: 165px; width: 188px;">
SELECCIONAR XMLs</div>

<div  align="left"
style="position: absolute; left: 35px; top: 183px; width: 291px; height: 24px">
<input name="archivos[]" type="file"  id="archivos" multiple >
</div>

<input type="button" name="CmdXls1" id="CmdXls1"  onClick="fxImportar()"
value="Importar xmls" 
 style="position: absolute; left: 35px; top: 215px; width: 162px;"
/>


<input type="button" name="CmdRpt1" id="CmdRpt1"  style="position: absolute; left: 35px; top: 350px; width: 242px; background-color: #C4EFA3; height:35px"
value="Ver facturas xml importadas"  
onClick="fBuscar('ges_facturas_importadas_b.php');" />



<div  align="left"
style="position: absolute; left: 35px; top: 244px; width: 291px; height: 24px">
<progress id="barra" value="0" max="100" style="width:300px;"></progress>
<span id="porcentaje">0%</span>
</div>




<!--FIN_TITULO---------------------------------><!--INI_BOTONES--------------------------------><!--FIN_BOTONES--------------------------------><!--INI_OCULTOS-------------------------------->
<?php
include("ocultos.php");
?>
<!--INI_OCULTOS-------------------------------->
<input name="SYS_MSG" type="hidden" id="SYS_MSG" value="<?php echo $SYS_MSG;?>" />
<input name="SYS_FOC" type="hidden" id="SYS_FOC" value="<?php echo $SYS_FOC;?>" />

<script>
function validarExtensionXML(file) {
    const extension = file.name.split('.').pop().toLowerCase();
    return extension === 'xml';
}
/*
document.getElementById("formSubida").addEventListener("submit", function(e) {
    e.preventDefault();
*/
function fxImportar(){
	var lot=gv("Lot");
    let input = document.getElementById("archivos");
    let formData = new FormData();
	var can=0;
    for (let i = 0; i < input.files.length; i++) {
		if(validarExtensionXML(input.files[i])){
        	formData.append("archivos[]", input.files[i]);
			can++;
		}
    }
	if(can==0){
		alert("Cero archivos xml seleccionados");
		return;
	}
	document.getElementById("archivos").disabled=true;
	document.getElementById("CmdXls1").disabled=true;
	document.getElementById("Lot").readOnly=true;
	document.getElementById("Lot").style.backgroundColor="#CCC";
	//
    let xhr = new XMLHttpRequest();
	//
    xhr.open("POST","subir.php?LOTE="+encodeURIComponent(lot), true);
    // PROGRESO
    xhr.upload.onprogress = function(e) {
        if (e.lengthComputable) {
            let porcentaje = (e.loaded / e.total) * 100;
            document.getElementById("barra").value = porcentaje;
            document.getElementById("porcentaje").innerText = Math.round(porcentaje) + "%";
        }
    };
	//
    xhr.onload = function() {
        if (xhr.status === 200) {
            var ret=xhr.responseText;
			//console.error(ret);
			//alert(ret);
			var dat=ret.split("|");
			if(dat[1]=="MS"){
				var ok=dat[2];
				var er=dat[3];
				if(jVal(er)==0){
					alert("Proceso completado");
				}else{
					alert("Proceso completado, pero uno o mas archivos ("+er+") no se procesaron");
				}
			}else{
				alert("Error de conexion");
			}
			SM("L");
        }
    };

    xhr.onerror = function() {
        console.error("Error en la subida");
    };

    xhr.send(formData);
}

</script>
</form>
</div>
</div>
</body>
</html>
