<?php
session_start();
include('config.php');
include($rutaPhp.$rutaHtml.'/maqueta/includes.php');

include($rutaPhp.$rutaHtml.'/acceso/control.php');
include($rutaPhp.$rutaHtml.'/maqueta/arriba.php');

include($rutaPhp.$rutaHtml.'/librerias/teclado.php');
include($rutaPhp.$rutaHtml.'/librerias/calculadora.php');


include($rutaPhp.$rutaHtml.'/librerias/funciones-gs1.php');

$pedirEanDun=true;

unset($_SESSION['errores']);

$mostrarMasterCases=($_SESSION['parametrosSGA']['GestionTrazabilidadTabacoMasterCase']=='S');


?>

<h2 class="desplazamientoSuperiorMenu">Trazabilidad de tabaco en entrada Nº <?php echo $_SESSION['entradaTrazabilidad']['NumEntrada']; ?></h2>

<?php

if($_POST['procesoEntradaPlay']=='1') {

	//TPDTTrazabilidad#PXPU#FTP#LECTURA#E1900301;1;100,A,KKKKKKK

	$trazas='';
	foreach($_SESSION['lecturas'] as $lectura) {
		///21-10-2024 Parametrizado posible Base64
		$trazas.=$lectura['Cantidad'].','.$lectura['Formato'].','.codificaTTT($lectura['CodigoEscaneado']).'@';
	}
	
	$peticion='TPDTTrazabilidad#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#LECTURA#'.$_SESSION['entradaTrazabilidad']['NumEntrada'].';'.$_SESSION['producto']['LineaEntrada'].';'.$trazas;
	
	//19-02-2024 lo pide LSB - TAREA INTERNA 56836
	$peticion.=';'.$_SESSION['producto']['Codigo'];
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

	if($_GET['traza']=='si') {
		echo "<p>Proceso de grabación de entrada</p>";
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$valores=explode('#',$resultado[0]['Error']);
	if($valores[0]=='0') {
	
		?><p><img src="<?php echo DIR_IMAGENES; ?>/iconos/ok.png" width="50" height="50" /><br />Lectura realizada correctamente.</p><?php
		
		unset($_SESSION['producto']);
		unset($_SESSION['lecturas']);
		
		//Recarga
		$peticion='TPDTTrazabilidad#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEENTRADA#'.$_SESSION['entradaTrazabilidad']['NumEntrada'];
		$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
		if($_GET['traza']=='si') {
			echo "<p>".$peticion."</p>";
			print_r($resultado);
		}
			
		$_SESSION['entradaTrazabilidad']=$resultado[0];
		$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['entradaTrazabilidad']['ListaProductos']);
		
	}
	else if($valores[0]=='3' || $valores[0]=='5') {
	
		//ERROR PARCIAL
	
		$_SESSION['errores']=explode('@',$valores[1]);
		
		if($valores[0]=='3') {
			?><script>alert('No han podido registrarse todas las lecturas.<br />Los identificadores señalados en rojo corresponden a otras entradas ya registradas en Proxium.',null,'error');</script><?php
		}
		else if($valores[0]=='5') {
			?><script>alert('No han podido registrarse todas las lecturas<br />porque algunas de las lecturas contienen errores.<br>Revisa los identificadores señalados en rojo.',null,'error');</script><?php
		}
		
		//Discriminamos en las lecturas actuales
		$temp=array();
		foreach($_SESSION['lecturas'] as $lectura) if(in_array($lectura['CodigoEscaneado'],$_SESSION['errores'])) $temp[]=$lectura;
		$_SESSION['lecturas']=$temp;
		
		//Recarga
		$peticion='TPDTTrazabilidad#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEENTRADA#'.$_SESSION['entradaTrazabilidad']['NumEntrada'];
		$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
		if($_GET['traza']=='si') {
			echo "<p>".$peticion."</p>";
			print_r($resultado);
		}
			
		$_SESSION['entradaTrazabilidad']=$resultado[0];
		$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['entradaTrazabilidad']['ListaProductos']);
		
		//Volvemos a buscar el producto, tendrá lineas grabadas posiblemente
		foreach($_SESSION['productos'] as $item)  {
			if($item['LineaEntrada']==$_SESSION['producto']['LineaEntrada']) {
				$_SESSION['producto']=$item;
				break;
			}
		}
		
		$pedirEanDun=false;
	}
	else if($valores[0]=='4') {
		
		//MENSAJE CONTROLADO. ERROR 4 = Leido ok y toda la orden ha sido finalizada. Se desbloquea (stop) automáticamente
		
		?>
		<script>
			alert('<?php echo $valores[1]; ?>',null,'ok')
			.done(function(){
				window.location='trazabilidad-tabaco-entradas.php';
			});
        </script>
		<?php
		
	}
	else {
		?><p class="error"><img src="<?php echo DIR_IMAGENES; ?>/iconos/error.png" width="50" height="50" /><br />ERROR: <?php echo $valores[1]; ?></p><?php
		$pedirEanDun=false;
	}
	

}
else { // NO procede de la lectura PLAY de entrada

	//Reiniciamos las lecturas ralizadas, ya que es un producto nuevo
	unset($_SESSION['lecturas']);

	if( isset($_GET['lineaentrada']) || $_POST['seleccionLinea'] ) {
	
		if(isset($_GET['lineaentrada'])) $lineaEntrada=$_GET['lineaentrada']; else $lineaEntrada=$_POST['seleccionLinea'];
	
		//Buscamos el producto
		foreach($_SESSION['productos'] as $item)  {
			if($item['LineaEntrada']==$lineaEntrada) $_SESSION['producto']=$item;
		}
		
		$pedirEanDun=false;
	
	}
	else if($_POST['eanDun']) { //Se ha leido primero un código y debemos buscar de qué producto se trata
	
		
	
		unset($_SESSION['producto']);
		
	
		$eandun=$_POST['eanDun'];
		$eandun=urlencode($eandun); //25-6-2019 añadimos urlencode para controlar espacios
		
		if($_GET['traza']=='si') {
			echo "<p>Busqueda de producto por Ean/Dun.</p>";
			echo "<p>Código leido: ".$eandun."</p>";
		}
		
		$cuantasLineasEncontradas=0;
		unset($_SESSION['productosCoincidentes']);
		
		foreach($_SESSION['productos'] as $item) {
			
			if($_GET['traza']=='si') echo "<p>Evaluamos linea de producto. Ean: ".$item['EAN']." Dun: ".$item['DUN']."</p>";
			
			//if( $eandun==$item['EAN'] || $eandun==$item['DUN'] ) {
			if( eanDunValido($eandun,$item['EAN'],$item['DUN']) ) {
				
				if($_GET['traza']=='si') echo "<p>Producto coincidente ENCONTRADO. Cantidad: ".$item['Cantidad']." Leido: ".$item['Leido']."</p>";
				
				if( (int)$item['Leido']<(int)$item['Cantidad'] ) {
					$_SESSION['productosCoincidentes'][]=$item;
				}
				else $encontradoPeroYaLeido=true;
			}
			
			
		}
		
		if(is_array($_SESSION['productosCoincidentes']) && count($_SESSION['productosCoincidentes'])==0) {
		
			?>
			<script>
				alert('ATENCIÓN: El producto solicitado no se encuentra en la Entrada.').done(function(){
					$('#eanDun').focus();
				});
			</script>
			<?php
			$pedirEanDun=true;
			
		}
		else if(is_array($_SESSION['productosCoincidentes']) && count($_SESSION['productosCoincidentes'])==0 && $encontradoPeroYaLeido ) {
		
			
			?>
			<script>
				alert('ATENCIÓN: La trazabilidad de este producto ya se encuentra leida completamente.').done(function(){
					$('#eanDun').focus();
				});
			</script>
			<?php
			$pedirEanDun=true;
	
		}
		else {
			
			//Atención, se pueden haber encontrado varias lineas de entrada con el mismo EAN/DUN (p.e. mismo producto, diferentes lotes)
			$_SESSION['producto']=$_SESSION['productosCoincidentes'][0]; //Grabamos como producto el primero, aunque se hayan encontrado mas de uno
			
			if(is_array($_SESSION['productosCoincidentes']) && count($_SESSION['productosCoincidentes'])==1) unset($_SESSION['productosCoincidentes']); //Si solo se encuentra uno, se borran los demás
			
			if($_GET['traza']=='si') {
				echo "<p>Producto asociado:</p>";
				print_r($_SESSION['producto']);
				echo "<p>Lineas coincidentes encontradas:</p>";
				print_r($_SESSION['productosCoincidentes']);
			}
			
			$pedirEanDun=false;
		}
			
	}
	
}

if($_SESSION['producto']) {

	$idsLeidosAnteriormente=arreglaArrayPXMobileProxiumResult($_SESSION['producto']['ProductoIDs']);
	
	$cadenaIdsLeidosAnteriormente='';
	foreach($idsLeidosAnteriormente as $item) $cadenaIdsLeidosAnteriormente.=$item['CodigoEscaneado'].',';
	
	if($_GET['traza']=='si') echo "<p>Productos leidos anteriormente: ".$cadenaIdsLeidosAnteriormente."</p>";
	
	//Acumulamos tb una lista con los ids de TODOS los productos de la entrada, para evitar duplicados
	$cadenaTodosIdsLeidosAnteriormente='';
	foreach($_SESSION['productos'] as $producto) {
		foreach(arreglaArrayPXMobileProxiumResult($producto['ProductoIDs']) as $item) {
			$cadenaTodosIdsLeidosAnteriormente.=$item['CodigoEscaneado'].',';
		}
	}
}

// GESTION DE LOS LISTADOS DE PRODUCTOS

$productosALeer=array();
$productosLeidos=array();

foreach($_SESSION['productos'] as $producto) {
			 
	if($producto['Leido']>0) {
		$productosLeidos[]=$producto;
		if( $producto['Cantidad'] > $producto['Leido'] ) $productosALeer[]=$producto;
	}
	else $productosALeer[]=$producto;
}

if(is_array($productosALeer) && count($productosALeer)>0) {

	?>

	<form id="formulario" name="formulario" method="post" action="">
    
		<input type="hidden" name="procesoEntradaPlay" id="procesoEntradaPlay" value="0" />
        <input type="hidden" name="cantidadPendiente" id="cantidadPendiente" value="<?php echo (int)$_SESSION['producto']['Cantidad']-(int)$_SESSION['producto']['Leido']; ?>" />
        <input type="hidden" name="cadenaLecturasGrabadas" id="cadenaLecturasGrabadas" value="<?php echo $cadenaTodosIdsLeidosAnteriormente; ?>" />
        <input type="hidden" name="cadenaLecturasActuales" id="cadenaLecturasActuales" value="" />
    
		<h3>Producto a Leer</h3>
        

        
        <?php if( $pedirEanDun ) { //Si hay que pedir EAN o DUN para comenzar?>
                
			<div id="bloqueEanDun" style="width:350px;margin:0 auto">
				<p class="sinMargen">Código EAN/DUN:</p>
                <div class="campoOrdenPreparacionBloque" style="margin-bottom:40px;margin-left:-20px">
                <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoEanDun" /><input name="eanDun" type="text" class="campo campoOrdenPreparacion" id="eanDun" style="left:5px;" autocomplete="off"/>
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarEanDun" style="position:absolute;right:5px;cursor:pointer;"/>
                </div>
			</div>
        
		<?php } ?>
        
        
        
        </form>
        
		<?php if( !$pedirEanDun && $_SESSION['producto']) { //Si No hay que pedir EAN/DUN y hay producto ?>
        
        
    
			<?php if( is_array($_SESSION['productosCoincidentes']) && count($_SESSION['productosCoincidentes'])>1 && !$lineaEntrada ) { //Hay varias lineas coindidentes en la selección previa ?>
           
        
                <p class="error">ATENCIÓN: Se han encontrado varias lineas para este producto.</p>
                
                <table class="tablaFormateada">
                <tr>
                    <?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><th>Emp.</th><?php } ?>
                    <th>Código</th>
                    <th>Descripción</th>
                 </tr>
                 <tr>
                    <?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><td><?php echo $_SESSION['entradaTrazabilidad']['Empresa']; ?></td><?php } ?>
                    <td><?php echo $_SESSION['producto']['Codigo']; ?></td>
                    <td align="left"><?php echo $_SESSION['producto']['Descripcion']; ?></td>
                </tr>
                </table>
                
                <p>Selecciona la linea sobre la cual realizar la lectura de trazabilidad:</p>
                
                <form id="formularioSeleccionLinea" name="formularioSeleccionLinea" method="post" action="">
                
                <table class="tablaFormateada">
                <tr>
                    <th>Seleccionar</th>
                    <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
                        <?php if($comportamiento['Activo']=='S' ) { ?>
                        <th><?php echo $comportamiento['Nombre']; ?></th>
                        <?php } ?>
                    <?php } ?>
                    <th>Cant.</th>
                    <?php if($_SESSION['verEnCajas']=='S') { ?>
                    <th>Cajas</th>
                    <?php } ?>
                    <th>Leido.</th>
                 </tr>
                
                <?php foreach( $_SESSION['productosCoincidentes'] as $producto ) { ?>
                
                     <tr class="lineaSeleccion clicable" lineaentrada="<?php echo $producto['LineaEntrada']; ?>">
                        <td><input type="radio" name="seleccionLinea" id="seleccionLinea<?php echo $producto['LineaEntrada']; ?>" value="<?php echo $producto['LineaEntrada']; ?>" class="checkGrande"/></td>
                        <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
                            <?php if($comportamiento['Activo']=='S' ) { ?>
                            <td><?php
                            if($comportamiento['NombreSQL']=='Regimen') echo $producto['Regimen'];
                                if($producto[$comportamiento['NombreSQL']]) echo formateaTipo($producto[$comportamiento['NombreSQL']],$comportamiento['Tipo']);
                            ?>
                            </td>
                            <?php } ?>
                        <?php } ?>
                        <td align="right"><?php echo number_format($producto['Cantidad'],0,',','.'); ?></td>
                        <?php if($_SESSION['verEnCajas']=='S') { ?>
                        <td align="right"><?php echo number_format($producto['CantidadCajas'],2,',','.'); ?></td>
                        <?php } ?>
                        <td align="right"><?php echo number_format($producto['Leido'],0,',','.'); ?></td>
                    </tr>
                
                <?php } ?>
                
                </table>
                
                </form>
            
            <?php } else { //No hay varios productos, se ha encontrado un único producto coincidente ?>
        
                <table class="tablaFormateada">
                <tr>
                    <?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><th>Emp.</th><?php } ?>
                    <th>Código</th>
                    <th>Descripción</th>
                    <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
                        <?php if($comportamiento['Activo']=='S' ) { ?>
                        <th><?php echo $comportamiento['Nombre']; ?></th>
                        <?php } ?>
                    <?php } ?>
                    <th>Cant.</th>
                    <?php if($_SESSION['verEnCajas']=='S') { ?>
                    <th>Cajas</th>
                    <?php } ?>
                    <th>Leido.</th>
                 </tr>
                 <tr>
                    <?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><td><?php echo $_SESSION['entradaTrazabilidad']['Empresa']; ?></td><?php } ?>
                    <td><?php echo $_SESSION['producto']['Codigo']; ?></td>
                    <td align="left"><?php echo $_SESSION['producto']['Descripcion']; ?></td>
                    <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
                        <?php if($comportamiento['Activo']=='S' ) { ?>
                        <td><?php
                        if($comportamiento['NombreSQL']=='Regimen') echo $_SESSION['producto']['Regimen'];
                            if($_SESSION['producto'][$comportamiento['NombreSQL']]) echo formateaTipo($_SESSION['producto'][$comportamiento['NombreSQL']],$comportamiento['Tipo']);
                        ?>
                        </td>
                        <?php } ?>
                    <?php } ?>
                    <td align="right"><?php echo number_format($_SESSION['producto']['Cantidad'],0,',','.'); ?></td>
                    <?php if($_SESSION['verEnCajas']=='S') { ?>
                    <td align="right"><?php echo number_format($_SESSION['producto']['CantidadCajas'],2,',','.'); ?></td>
                    <?php } ?>
                    <td align="right"><?php echo number_format($_SESSION['producto']['Leido'],0,',','.'); ?></td>
                </tr>
                </table>
            	<br />
            
            	<div id="lecturasActuales" style="display:none"></div>
            
                <div id="bloqueContenedor" class="bloqueContenedorGS1">
                    
                    <p class="sinMargen">Lectura de Id.:</p>
                    <div id="bloqueLectura" class="campoOrdenPreparacionBloque">
                        <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoLecturaGS1" /><input name="lecturaGS1" type="text" class="campo campoOrdenPreparacion campoLecturaGS1" id="lecturaGS1" style="width:850px;left:5px;font-size:1.2em" autocomplete="off"/>
                        <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLecturaGS1" class="campoOrdenPreparacionBorrar campoOrdenPreparacionBorrarGS1" contador="1"/>
                    </div>
                    
                    <div id="bloqueFormatoCantidad" style="display:none">
                    
                    	<div id="bloqueFormato">
                        	<p>
							<?php foreach(unserialize(FORMATOS_TRAZABILIDAD) as $tipo=>$descripcion) {?>

                                <?php $mostrarFormato=true; ?>
                                <?php if( $_SESSION['producto']['FormatoTrazab']=='C' && $tipo=='U' ) $mostrarFormato=false; ?>
                                <?php if( !$mostrarMasterCases && $tipo=='M') $mostrarFormato=false; ?>
                                
                                <?php if( $mostrarFormato ) { ?>
                                <label><input type="radio" name="formato" id="formato<?php echo $tipo; ?>" value="<?php echo $tipo; ?>" class="checkGrande formato"/> <?php echo $descripcion;?></label>
                                <?php } ?>
                                
                            <?php } ?>
                            </p>
                            
                        </div>
                        
                        <div id="bloqueCantidad" style="display:none">
                        
                            <p class="sinMargen">Cantidad:</p>
                            <div class="campoOrdenPreparacionBloque">
                            <input name="cantidad" type="text" class="campo cantidad campoOrdenPreparacion campoCantidadTTT" id="cantidad" /><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarCantidad" class="campoOrdenPreparacionBorrar campoOrdenPreparacionBorrarTTT" />
                            </div>
                            
                       </div>
                    
                    </div>
                    
                 </div>
    
    
            	
    
    
				<?php if(is_array($idsLeidosAnteriormente) && count($idsLeidosAnteriormente)>0) { ?>
        
                    <?php $total=0; ?>
            
                    <p>Resumen de lecturas ya registradas en Proxium:</p>
                    
                    <table class="tablaFormateada">
                    <tr>
                        <th>Id</th>
                        <th>Formato</th>
                        <th>Cantidad</th>
                    </tr>
                    <?php foreach($idsLeidosAnteriormente as $lectura) { ?>
                        <tr>
                            <td align="left"><?php echo formateaTTT($lectura['CodigoEscaneado']); ?></td>
                            <td>
							<?php
							$arrayTemp=unserialize(FORMATOS_TRAZABILIDAD);
							echo $arrayTemp[$lectura['Formato']];
							?>
                            </td>
                            <td align="right"><?php echo $lectura['Cantidad']; ?></td>
                        </tr>
                        <?php $total+=(int)$lectura['Cantidad']; ?>
                    <?php } ?>
                    <tr>
                        <td colspan="2" align="right">Total lecturas registradas:</td>
                        <td align="right"><strong><?php echo $total; ?></strong></td>
                    </tr>
                    </table>
                    
                <?php } //Fin si hay ids leidos anteriormente?>
    
        	<?php } //Fin de la comprobación de si hay varias lineas o solo una coincidente ?>

		<?php } // Fin if hay producto

} else { //No hay productos a leer
	
	?>
	<p><img src="<?php echo DIR_IMAGENES; ?>/iconos/informacion.png" width="50" height="50" /></p>
    <p>Lectura Completada. No quedan productos por leer.</p>
	<?php
    
}

print_r($_SESSION['lecturas']);
?>


 
<script>

var embalajePrimarioCaja='<?php echo $_SESSION['producto']['EmbalajePrimarioCaja']; ?>';
var CajasEnMasterCase='<?php echo $_SESSION['producto']['CajasEnMasterCase']; ?>';

function cargaInformacionLecturasActuales() {
	
	$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'listado' })
	.done(function(data) {
	
		$('#lecturasActuales').html(data);
		$('#lecturasActuales').show();
		
		$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'cantidad' })
		.done(function(data) {
		
			$('#cantidadPendiente').val(data);
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'leidos' })
			.done(function(data) {
			
				$('#cadenaLecturasActuales').val(data);
				
				$('#popupCargando').hide();
			});
			
		});
		
	});
	
}

function guardaLectura() {

	$('#popupCargando').show();
	
	$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'comprobar' , 'id' : $('#lecturaGS1').val() })
	.done(function(data) {
	
		if(data=='1') {
	
			$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'leer' , 'id' : $('#lecturaGS1').val() , 'formato' : $('input:radio[name=formato]:checked').val() , 'cantidad' : $('#cantidad').val() })
			.done(function(data) {
								
				cargaInformacionLecturasActuales();
				reiniciaLectura();
								
			});
		}
		else alert('ERROR: Este identificador ya ha sido leido anteriormente.',$('#lecturaGS1'),'error');
		
	});
	
}


////////////////////////////////////Procedimiento de interpretación de códigos

var lecturaScanner=new Array(); //array global para almacenar las pulsaciones de teclas obtenidas desde el scanner, cuando se comporta así (scanner externo bluetooth como teclado)
var cadenaLectura='';
var esLecturaGS1Correcta=false;

var yaHayLectura=false; //variable general que nos definirá si se vuelve a pedir formato y cantidad o no


function veHastaLectura() {

	$('#lecturaGS1').focus();
	
	$('html, body').animate({
		scrollTop: $("#lecturaGS1").offset().top-300
	}, 500);
	
}

function reiniciaLectura() {
	
	lecturaScanner=new Array();
	cadenaLectura='';
	esLecturaGS1Correcta=false;
	
	$('#lecturaGS1').val('');
	
	if(!yaHayLectura) {
		$('input:radio[name=formato]').each(function () { $(this).prop('checked', false); });
		$("#cantidad").val('');
		$('#bloqueFormatoCantidad').hide();
	}
	
	veHastaLectura();
}

////////////////////////////////////


$(document).ready(function() {
	
	
	/////////////////////////////////// Selección de linea cuando hay varios productos encontrados con el mismo EAN/DUN
	
	$('.lineaSeleccion').on('click',function(){
		
		var lineaentrada=$(this).attr('lineaentrada');
		$("#seleccionLinea"+lineaentrada).prop("checked", true);
		
		$('#popupCargando').show();
		$('#formularioSeleccionLinea').submit();
	
	});
	
	
	
	/////////////////////////////////////////////////////Gestion campo lectura

	$('#tecladoLecturaGS1').on('click',function(){
		$('#teclado').show();
		$('#valor').val( $('#lecturaGS1').val() );
		$('#valorOculto').val( $('#lecturaGS1').val() );
		$('#enter').attr('campoValor','lecturaGS1');
		$('#enter').attr('forzarEnter','si');
	});
	
	<?php if(!$desactivaScannerBluetooth) { ?>
	
	$('#lecturaGS1').on('keydown',function(e){
	
		e.preventDefault();
		var resultado='';
		
		if(e.which==13 || e.key=='Enter') {
			$('#lecturaGS1').trigger('change');
		}
		else lecturaScanner.push( [ String.fromCharCode(e.which) , e.which , e.key ] );
	}); 
	
	<?php } ?>	
	
	$('#lecturaGS1').on('change',function(){
				
		//Método que detecta que se ha hecho una nueva lectura.
		//tenemos que comprobar si procede del scanner o procede del teclado emergente
		
		
		
		//27-9-2021 Version ultima con escaneres integrados sin separadores
		
		var lecturaFinal='';

		<?php if( ($desactivaScannerBluetooth || $lecturaEspecial) && !$lecturaSinSeparadores ) { ?>
		lecturaFinal=transformaLecturaManualAlFormatoScanner( $('#lecturaGS1').val() );
		<?php } else if($lecturaSinSeparadores) { ?>
			if( $('#lecturaGS1').val().indexOf('(')!=-1 ) { 
				lecturaFinal=transformaLecturaManualAlFormatoScanner( $('#lecturaGS1').val() );
			}
			else {
				<?php if($caracterSeparadorGs1){ ?>
				lecturaFinal=extraeBloquesSinSeparadorCaracterSeparador( $('#lecturaGS1').val() , <?php echo $caracterSeparadorGs1; ?> );
				<?php } else { ?>
				lecturaFinal=extraeBloquesSinSeparador( $('#lecturaGS1').val() );
				<?php } ?>
			}
		<?php } else { ?>
		if(lecturaScanner.length > 0) {
			lecturaFinal=limpiaLecturaDesdeScanner( lecturaScanner );
		}
		else {
			lecturaFinal=transformaLecturaManualAlFormatoScanner( $('#lecturaGS1').val() );
		}
		<?php } ?>
		
		var resultado=pintaLecturaHumana( lecturaFinal );
		
	
		
		if(resultado=='error')  {
			alert('Error en la lectura. Código GS1-128 no reconocido.',null,'error')
			.done(function(){
				reiniciaLectura();
			});
		}
		else if ( ! gs1ValidoConTTT(resultado) ){
			alert('Error en el código.<br>GS1-128 correcto pero que no contiene TTT válido.',null,'advertencia')
			.done(function(){
				reiniciaLectura();
			});
		}
		else {
			
			yaHayLectura=true; //registramos en la var global que ya se ha hecho una lectura ok
			
			$('#lecturaGS1').val( resultado );
					
			$('#popupCargando').show();
					
			$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'comprobar' , 'id' : $('#lecturaGS1').val() })
			.done(function(data) {
						
				$('#popupCargando').hide();
						
				if(data!='1') {
					alert('ERROR: Este identificador ya ha sido leido anteriormente.<br><br>'+$('#lecturaGS1').val()+'<br><br>',$('#lecturaGS1'),'error');
				}
				else  {
				
					$('#bloqueFormatoCantidad').show();
					
					if( yaHayLectura && $('#cantidad').val()!='' && $('#cantidad').val()!='0' ) {
						if( parseInt($('#cantidad').val()) <= parseInt($('#cantidadPendiente').val()) ) guardaLectura();
						else alert('Error: No queda más cantidad pendiente de leer.');
					}
				}
										
			});
					
		}
			
		
	});
			
	$('#borrarLecturaGS1').on('click',function(){
		reiniciaLectura();
	});
	

	
	/////////////////////////////////////////////////////Gestion campo Formato
	
			$('.formato').on('change',function(e) {
			
				e.preventDefault;
				
				if($('#lecturaGS1').val()=='') {
				
					alert('Primero debes realizar la lectura del Id.',$('#lecturaGS1'));
					$('input:radio[name=formato]').each(function () { $(this).prop('checked', false); });
					$('#cantidad').val('');
					
				}
				else {
				
					$('#bloqueCantidad').show();
					$('#cantidad').val('');
					
					var valor=$('input:radio[name=formato]:checked').val();
					
					if(valor=='U') {
						$('#cantidad').val(1);
						$('#cantidad').prop('disabled',true);
						$('#borrarCantidad').hide();
						$('#cantidad').trigger('change');
					}
					else if(valor=='C') {
						$('#cantidad').prop('disabled',false);
						$('#borrarCantidad').show();
						if(embalajePrimarioCaja!='') $('#cantidad').val(embalajePrimarioCaja);
						$('#cantidad').trigger('click');
					}
					else if(valor=='M') {
						$('#cantidad').prop('disabled',false);
						$('#borrarCantidad').show();
						if(embalajePrimarioCaja!='' && CajasEnMasterCase!='') {
							var valor=parseInt(embalajePrimarioCaja)*parseInt(CajasEnMasterCase);
							$('#cantidad').val(valor);
						}
						$('#cantidad').trigger('click');
					}
					else {
						$('#cantidad').prop('disabled',false);
						$('#borrarCantidad').show();
						<?php if((int)$_SESSION['producto']['CajasEnPalet']>0) { ?>
						$('#cantidad').val('<?php echo $_SESSION['producto']['CajasEnPalet']*$_SESSION['producto']['EmbalajePrimarioCaja']; ?>');
						<?php } ?>
						$('#cantidad').trigger('click');
					}
				}
				
			});

	/////////////////////////////////////////////////////Gestion campo Cantidad

			$('#cantidad').on('click',function(e) {
				$('#calculadora').show();
				$('#valorCalculadora').val( $('#cantidad').val() );
				$('#enterCalculadora').attr('campoValor','cantidad');
				$('#enterCalculadora').attr('forzarEnter','si');
			});
			
			$('#borrarCantidad').on('click',function(){
				yaHayLectura=false;
				reiniciaLectura();
			});
			
			$('#cantidad').on('change',function(){
			
				if( $('#cantidad').val()!='' && $('#cantidad').val()!='0' ) {
				
					var formato=$('input:radio[name=formato]:checked').val();
									
					if( parseInt($('#cantidad').val()) <= parseInt($('#cantidadPendiente').val()) ) {
						
						if(formato) guardaLectura();
								
					}
					else {
						alert('Error: No queda tanta cantidad pendiente de leer.')
						.done(function(){
								
							if(formato=='U' || formato=='C') {
								$('input:radio[name=formato]').each(function () { $(this).prop('checked', false); })
								$("#cantidad").val('');
							}
							else {
								$("#cantidad").val('');
								$("#cantidad").trigger('click');
							}
								
						});
					}
				}
				
			});
	
	
	$('#botonLectura').on("click",function(e){
		
		e.preventDefault();
		
		var hayPosiblesErrores=false;
		
		$('.lineaLectura').each(function(){
			if( $(this).hasClass('rojo') ) hayPosiblesErrores=true;
		});
		
		$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'contar' })
		.done(function(data) {
			if(data>0) {
			
				console.log('hay posibles errores: '+hayPosiblesErrores);
			
				var mensaje;
				var icono;
							
				if(hayPosiblesErrores) {
					mensaje='ATENCION: Hay posibles errores en las lecturas.<br>Acepta para continuar o cancela para revisarlas.';
					icono='advertencia';
				}
				else {
					mensaje='Se va a proceder a enviar Proxium las lecturas actuales.<br>¿Deseas continuar?';
					icono='';
				}
				
				confirm(mensaje,icono)
				.done(function(){
					$('#popupCargando').show();
					$('#procesoEntradaPlay').val(1);
					$('#formulario').submit();
				});
			}
			else {
				$('#popupCargando').show();
				window.location='trazabilidad-tabaco-entrada-proceso.php';
			}
		});

	});
	
	$(document).on('click','.cancelarLectura',function(){
	
		var lectura=$(this).attr('lectura');
		
		confirm('¿Deseas cancelar la lectura del Id: '+lectura,'advertencia')
		.done(function(){
			$('#popupCargando').show();
			$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-lecturas.php", { 'accion' : 'cancelar' , 'id' : lectura })
			.done(function(data) {
				cargaInformacionLecturasActuales();
				veHastaLectura();
			});
		});
	});
	
	
	
	
	
	///////////////////////////////////////////////////// Gestion campo EAN/DUM
			
			$(document).on('change','#eanDun',function(){
				$('#popupCargando').show();
				$('#formulario').submit();
			});
			
			$(document).on('click','#tecladoEanDun',function(){
				$('#teclado').show();
				$('#valor').val( $('#eanDun').val() );
				$('#valorOculto').val( $('#eanDun').val() );
				$('#enter').attr('campoValor','eanDun');
				$('#enter').attr('forzarEnter','si');
				
			});
			
			$(document).on('click','#borrarEanDun',function(){
				$("#ubicacion").val('');
				$("#eanDun").val('');
				$('#eanDunCorrecto').val(0)
				$("#eanDun").focus();		
			});
			
	
	//Carga inicial si no se ha cambiado de producto
	cargaInformacionLecturasActuales();
	
	
	<?php if($pedirEanDun) { ?>
	$('#eanDun').focus();
	<?php } else { ?>
	reiniciaLectura();
	<?php } ?>
	
});

</script>

<?php

include($rutaPhp.$rutaHtml.'/maqueta/menu-trazabilidad-tabaco-entrada.php');

include($rutaPhp.$rutaHtml.'/maqueta/abajo.php');
?>
