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

if($_GET['traza']=='si') {
	$copyPaste=true;
	$desactivaScannerBluetooth=true;
}

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/calendario.php');

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






if($_GET['palet']) $_SESSION['devolucion']['Palet']=$_GET['palet'];
if($_GET['UbiOrigen']) $_SESSION['devolucion']['UbiOrigen']=$_GET['UbiOrigen'];

///////////obtenemos a linea seleccionada por get, con la construccion del indice a partir de las claves primaris
$linea=$_GET['linea'];
$UbiPropuesta=$_GET['UbiPropuesta'];



/*
$noAgrupar='S';

$peticion='SGAUbicar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#PRODUCTOSCONTENEDOR#'.$_SESSION['almacen'].';'.$_SESSION['devolucion']['Palet'].';'.$noAgrupar;
$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

if($_GET['traza']=='si') {
	echo "<p>".$peticion."</p>";
	print_r($resultado);
}
*/


$encontrado=false;

foreach($_SESSION['devolucionListadoProductos'] as $item) {
	
	$indice='iniciar'.construyeIndiceProductoTraspasar($item);
	
	if($encontrado) { //nos quedamos con la linea siguiente, para navegacion
	
		$parametrosLineaSiguiente='linea='.$indice.'&UbiPropuesta='.$item['UbiPropuesta'];
		
		break;
		
	}
	else {
	
		if($indice==$linea) {
		
			$producto=$item;
			
			///////////////
			//$producto['GestionLotes']='S';
			//$producto['GestionCaducidad']='S';
			//$producto['EmbalajePrimarioCaja']=6;
			/////////////
			
			$pedirLote=($producto['GestionLotes']=='S');
			$pedirFechaCaducidad=($producto['GestionCaducidad']=='S');
			
			if($_SESSION['verEnCajas']=='S' && $producto['EmbalajePrimarioCaja'] && !$pedirNumSerie) $mostrarCajas=true;
			
			if( $mostrarCajas ) {
				$etiqueta="Cajas";
				$etiquetaInversa="Unidades";
				$cajas=true;
			}
			else {
				$etiqueta="Unidades";
				$etiquetaInversa="Cajas";
				$cajas=false;
			}
			
			$encontrado=true;
			
		}
		
	}
	
}

////////////Fin obtención de la linea



//COMPROBACION de si hay más lineas del mismo producto con diferentes lotes o fechas

$cuantosLotes=0;
$cuantasCaducidades=0;

$arrayLotes=array();
$arrayCaducidades=array();

foreach($_SESSION['devolucionListadoProductos'] as $item) {
	if($item['Producto']==$producto['Producto']) {
		$datos=$item['Datos']['PXMobileProxiumResult'];
		foreach($datos as $dato) {
			if($dato['Codigo']=='LT') $arrayLotes[]=$dato['Valor'];
			if($dato['Codigo']=='FCAD') $arrayCaducidades[]=$dato['Valor'];
		}
	}
}

$arrayLotes=array_unique($arrayLotes);
$arrayCaducidades=array_unique($arrayCaducidades);



if($_GET['accion']=='reiniciar') {

	unset($_SESSION['lecturasTemporalesGS1']);
	unset($_SESSION['lecturasAcumuladas']);
	unset($_SESSION['lecturasGS1']);
	unset($_SESSION['lecturasTotales']);
}



if($_POST['lecturaGS1']) { //$_POST['lecturaDesconocida'] se usa para la lectura a partir de codigo, sin producto

	//echo '<p>HAY LECTURA GS1</p>';
	//echo '<p>Lectura: '.$_POST['lecturaGS1'].'</p>';
	//echo '<p>tipoDatoLecturaNoReconocida: '.$_POST['tipoDatoLecturaNoReconocida'].'</p>';
	//echo '<p>lectura especial: '.$lecturaEspecial.'</p>';

	unset($_SESSION['lecturasTemporalesGS1']);

	if(true) { 

		//echo "<p>POST para evaluar GS1-128: ".$_POST['lecturaGS1']."</p>";
	
		//27-12-2019
		//Miramos si la cadena resultante tiene paréntesis
		
		if( strpos($_POST['lecturaGS1'],'(')!==false && strpos($_POST['lecturaGS1'],')')!==false  ) {
	
			//echo '<p>La lectura tiene parentesis ok.</p>';
	
			$bloques=explode('(',$_POST['lecturaGS1']);
			
			foreach($bloques as $bloque) {
			
				$temp=explode(')',$bloque);
				$identificador=$temp[0];
				$valor=$temp[1];
				
				//echo "<p>Identificador: ".$identificador." / Valor: ".$valor."</p>";
				
				$_SESSION['lecturasTotales'][$identificador]=$valor;
				
				switch($identificador) {
					case '00':
						//20-05-2021 añadimos que se pueda extraer del id de palet, una subcadena establecida por el rango CaracteresIdPaletGS128 ----->>> Frinavarra. Tarea interna 38376
						if($_SESSION['entrada']['CaracteresIdPaletGS128']) $_SESSION['lecturasTemporalesGS1']['paletCliente']=formateaGS1($valor,'palet',$_SESSION['entrada']['CaracteresIdPaletGS128'],$_SESSION['entrada']['LongitudesEspeciales']);
						else $_SESSION['lecturasTemporalesGS1']['paletCliente']=$valor;
						break;
					case '01':
					case '02':
						$_SESSION['lecturasTemporalesGS1']['eanDun']=$valor;
						break;
					case '240':
						$_SESSION['lecturasTemporalesGS1']['codigo']=$valor;
						break;
					case '10':
						$_SESSION['lecturasTemporalesGS1']['lote']=$valor;
						break;
					case '15':
					case '17':
						$_SESSION['lecturasTemporalesGS1']['fechaCaducidad']=formateaGS1($valor,'fecha',NULL);
						break;
					case '37':
						$_SESSION['lecturasTemporalesGS1']['cantidad']=(int)$valor;
						break;
				}
				
				//17-05-2022 Transbidasoa gestion sub id palet cliente
				if($pedirSubIdPaletCliente && $identificador=='250') {
					$_SESSION['lecturasTemporalesGS1']['subIdPaletCliente']=$valor;
				}
				
				if( substr($identificador,0,3)=='310' && $valor>0) {
					$decimales=substr($identificador,-1);
					$_SESSION['lecturasTemporalesGS1']['pesoNeto']=formateaGS1($valor,'numero',$decimales);
					
					//31-01-2022 formateo con puntos y comas y 3 decimales
					$_SESSION['lecturasTemporalesGS1']['pesoNeto']=number_format($_SESSION['lecturasTemporalesGS1']['pesoNeto'],3,',','.');
				}
				
				if( substr($identificador,0,3)=='330' && $valor>0) {
					$decimales=substr($identificador,-1);
					$_SESSION['lecturasTemporalesGS1']['pesoBruto']=formateaGS1($valor,'numero',$decimales);
					
					//31-01-2022 formateo con puntos y comas y 3 decimales
					$_SESSION['lecturasTemporalesGS1']['pesoBruto']=number_format($_SESSION['lecturasTemporalesGS1']['pesoBruto'],3,',','.');
				}
				if($_SESSION['lecturasTemporalesGS1']['pesoBruto'] && !$_SESSION['lecturasTemporalesGS1']['pesoNeto']) $_SESSION['lecturasTemporalesGS1']['pesoNeto']=$_SESSION['lecturasTemporalesGS1']['pesoBruto'];
				
				
			}

		}
		else {
		
			?>
            <script>
				alert('Dato no reconocido.',null,'error')
				.done(function(){
					$('#lecturaGS1').focus();
				});
            </script>
            <?php
		
		}

	}

}



//echo "<p>Lecturas GS1 EN CURSO:</p>";
//print_r($_SESSION['lecturasGS1']);



$cantidad=$_POST['cantidad'];
$paletDestino=$_POST['paletDestino'];


//Buscamos la linea seleccionada en la petición original



?><h2>Devolución a estantería</h2><?php 


////////////////////////////////////////////////////////////////////// FUNCIONES ///////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




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

	//echo '<p>PROCESO PLAY</p>';
	//print_r($_POST);
	
				$cadenaEnvio='';
		
				if($_POST['cajas']) $cantidad=$producto['EmbalajePrimarioCaja']*$_POST['cantidad'];
				else $cantidad=$_POST['cantidad'];
			
				$cadenaEnvio.='*PXTmpTraspasoContenedoresSGAOrigen'.PHP_EOL;
				
				$cadenaEnvio.='Empresa='.$producto['Empresa'].PHP_EOL;
	
				$cadenaEnvio.='Almacen='.$_SESSION['almacen'].PHP_EOL;
				$cadenaEnvio.='ContenedorOrigen='.$_SESSION['devolucion']['Palet'].PHP_EOL;
				$cadenaEnvio.='UbicacionOrigen='.$_SESSION['devolucion']['UbiOrigen'].PHP_EOL;
				$cadenaEnvio.='ContenedorDestino='.$_POST['paletDestino'].PHP_EOL;
				$cadenaEnvio.='UbicacionDestino='.$_POST['ubicacionDestino'].PHP_EOL;
			
				$cadenaEnvio.='Codigo='.$producto['Producto'].PHP_EOL;
				
				if($producto['Entrada']=='-') $entradaGrabar='SinEntrada-'.$contador;
				else $entradaGrabar=$producto['Entrada'];
				
				$cadenaEnvio.='NumEntrada='.$entradaGrabar.PHP_EOL;
				$cadenaEnvio.='LinEntrada='.$producto['LineaEntrada'].PHP_EOL;
				
				$cadenaEnvio.='ATraspasar='.$cantidad.PHP_EOL;
			
				$datos=$producto['Datos']['PXMobileProxiumResult'];
				foreach($_SESSION['comportamientos'] as $comportamiento) {
					foreach($datos as $dato) {
						if($dato['Codigo']==$comportamiento['Codigo']) {
						
							if($comportamiento['NombreSQL']=='Lote' && $_POST['lote']) $valorGrabar=$_POST['lote'];
							else if($comportamiento['NombreSQL']=='FechaCaducidad' && $_POST['fechaCaducidad']) $valorGrabar=fechaParaProxium(fechaMysql($_POST['fechaCaducidad']));
							else $valorGrabar=$dato['Valor'];
							
							$cadenaEnvio.=$comportamiento['NombreSQL'].'='.$valorGrabar.PHP_EOL;
							break;
						}
					}
				}
				
				//22-11-2021
				$cadenaEnvio.='Estado='.$producto['EstadoAlmacen'].PHP_EOL;
				
				//22-06-2022
				$cadenaEnvio.='Usuario='.$_SESSION['usuario']['Usuario'].PHP_EOL;
				
				
		$cadenaEnvio.='*FIN'.PHP_EOL;
	
		$resultado=EnviarDatos($wsUsuario,$wsClave,base64_encode(utf8_decode($cadenaEnvio)));
	
	
		if($_GET['traza']=='si') {
			echo nl2br($cadenaEnvio);
			echo "<p>RESULTADO OBTENIDO</p>";
			print_r($resultado);
		}
		
		$resultadoEvaluar=explode("#",$resultado['EnviarDatosResult']);
		
		if($resultadoEvaluar[0]==1) {
		
			//buscamos la linea actual y la quitamos del listado. Nos quedamos con la siguiente
			$temporal=array();
			$encontrado=false;
			
			foreach($_SESSION['devolucionListadoProductos'] as $clave=>$item) {
			
				$indice='iniciar'.construyeIndiceProductoTraspasar($item);
				
				if($encontrado) { //si se ha encontrado el anterior, nos quedamoos con este
				
					$temporal[$clave]=$item;
					$parametrosRedireccion='linea='.$indice.'&UbiPropuesta='.$item['UbiPropuesta'];
					$encontrado=false;
					
				}
				else {
					
					if($indice!=$linea) $temporal[$clave]=$item;
					else $encontrado=true;
				}
				
			}
			
			$_SESSION['devolucionListadoProductos']=$temporal;

		
			?>
			<script>
			alert("<?php echo $resultadoEvaluar[1]; ?>",null,'ok').done( function(){
			
				$('#popupCargando').show();
				window.location='devolucion-estanteria-proceso.php?<?php echo $parametrosRedireccion; ?>';
				
			});
			</script>
			<?php
		}
		else {
			?>
			<script>
			alert("ERROR: <?php echo $resultadoEvaluar[1]; ?>",null,'error');
			</script>
			<?php
		}
		
	
	unset($_SESSION['lecturasTemporalesGS1']);
	unset($_SESSION['lecturasAcumuladas']);
	unset($_SESSION['lecturasGS1']);
	unset($_SESSION['lecturasTotales']);


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

	
	
}




?>
        
<script>

	//Inicialización de los campos de lectura y el orden para focos
	//Redefición de las variables en formato javascript desde php, para su gestion posterior por jquery
	
	var pedirLote=<?php if($pedirLote) echo 'true'; else echo 'false'; ?>;
	var pedirFechaCaducidad=<?php if($pedirFechaCaducidad) echo 'true'; else echo 'false'; ?>;
		
	var secuenciaCampos=new Array();
		
	function inicializaSecuencia() {
		
		secuenciaCampos=[];
		
		<?php if($pedirLote) { ?>secuenciaCampos.push('lote');<?php } ?>
		<?php if($pedirFechaCaducidad) { ?>secuenciaCampos.push('fechaCaducidad');<?php } ?>
	
		secuenciaCampos.push('cantidad');
	
		secuenciaCampos.push('paletDestino');

	}
		
	function focoSiguiente(campoActual) {
		
		if(campoActual=='') foco=secuenciaCampos[0];
		else {
			for (i=0;i<secuenciaCampos.length;i++) {
				if(secuenciaCampos[i]==campoActual) {
					foco=secuenciaCampos[i+1];
					if( $('#'+foco).val()!='' || $('#'+foco).hasClass('deshabilitado') ) foco=focoSiguiente(foco);
				}
			}
		}
		$('#'+foco).focus();
		//console.log(foco);
		return foco;
	}
		
</script>


<div id="contenedorPrincipal" class="contenedorPestanyas sombra anchoMaximo" style="margin-top:50px;border:0">

	<form id="formularioDevolucion" name="formularioDevolucion" method="post" action="<?php if($_GET['traza']=='si') { ?>?traza=si<?php } ?>">
    
		<input type="hidden" name="procesoEntradaPlay" id="procesoEntradaPlay" value="0" />
    
		
        
        <table class="tablaFormateada">
        
            <tr>
            
                <th>Palet</th>
                <th>Producto</th>
                <th>Descripción</th>
                <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
					<?php if($comportamiento['Activo']) { ?><th><?php echo $comportamiento['Nombre']; ?></th><?php } ?>
                <?php } ?>
                <th>Estado</th>
                <th>Stock</th>
                <th>Formato</th>
                <th>Ubicación propuesta</th>
                
             </tr>
             <tr>
                
                <td><?php echo $_SESSION['devolucion']['Palet']; ?></td>
                <td><?php echo $producto['Producto']; ?></td>
                <td><?php echo $producto['Descripcion']; ?></td>
                
                <?php $datos=$producto['Datos']['PXMobileProxiumResult']; ?>
                
                <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
					<?php if($comportamiento['Activo']=='S') { ?>
                    <td>
                        <?php
                        $cadenaNumerosSerie='';
                        $numerosSerie=arreglaArrayPXMobileProxiumResult($producto['NumerosSerie']);
                        foreach($numerosSerie as $numero) {
                            if(!empty($cadenaNumerosSerie)) $cadenaNumerosSerie.=';';
                            $cadenaNumerosSerie.=$numero['NumeroSerie'].','.$numero['Leido'];
                        }
                        
                        if(count($numerosSerie)>0 && $comportamiento['Codigo']=='NS') {
                            ?><img class="verNumerosSerie clicable" src="<?php echo DIR_IMAGENES; ?>/barcode-buscar.png" style="width:60px" numeros="<?php echo $cadenaNumerosSerie; ?>"/><?php
                        }
                        else foreach($datos as $dato) {
                            if($dato['Codigo']==$comportamiento['Codigo']) {
                                echo formateaTipo($dato['Valor'],$comportamiento['Tipo']);
                                break;
                            }
                        }
                        ?>
                    </td>
                    <?php } ?>
                <?php } ?>
                
                <td align="center"><?php foreach($estadosAlmacen as $estado) if($estado['Estado']==$producto['EstadoAlmacen']) echo $estado['DescripcionEstado']; ?></td>
            
     			<td align="right"><?php echo $producto['Stock']; ?></td>
            
                <td><?php echo $producto['Formato']; ?></td>
                <td><?php echo $UbiPropuesta; ?></td>
                
            </tr>
        
		</table>
        
        <?php if($entradasLecturaGs1) { ?>
        
        <div style="position:relative;margin:30px 0 30px 0">
        
        	<input type="button" name="botonLecturasGS1" id="botonLecturasGS1" value="Lectura código" class="boton reducido" style="float:left;width:165px;margin-top:-3px;" /><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado noLanzarTeclado" id="tecladoLecturaGS1" style="float:left;margin:0 0 0 15px;"/><input name="lecturaGS1" id="lecturaGS1" type="text" class="campo" style="width:700px" autocomplete="off" <?php if($mostrarPopupLecturaNoReconocida) { ?>value="<?php echo $_POST['lecturaGS1']; ?>"<?php } ?>/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLecturaGS1" style="position:absolute;top:-5px;right:15px;cursor:pointer;"/>
            
            <input type="hidden" name="lecturaDesconocida" id="lecturaDesconocida" />

        </div>

		<?php } ?>

        
        <table class="tablaCamposEntradaGs1">
        
        
        	<tr>
            <td align="left">Palet origen:</td>
            <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                	<input name="ContenedorOrigen" type="text" class="campo campoOrdenPreparacion deshabilitado" id="ContenedorOrigen" style="left:5px;" value="<?php echo $_SESSION['devolucion']['Palet']; ?>" autocomplete="off" readonly >
                </div>
            </div>
            
            </td>
            </tr>
            
            <tr>
            <td align="left">Ubicación:</td>
            <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                	<input name="ContenedorOrigen" type="text" class="campo campoOrdenPreparacion deshabilitado" id="ContenedorOrigen" style="left:5px;" value="<?php echo $_SESSION['devolucion']['UbiOrigen']; ?>" autocomplete="off" readonly >
                </div>
            </div>
            
            </td>
            </tr>
        
        	<?php if($pedirLote) { ?>
            
            <tr>
            <td align="left">Lote:</td>
            <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                
                <?php
				
				if($_POST['lote']) $lotePintar=$_POST['lote'];
				else if($_SESSION['lecturasGS1']['lote']) $lotePintar=$_SESSION['lecturasGS1']['lote'];
				
				if(count($arrayLotes)==1) {
					$lotePintar=$arrayLotes[0];
					$bloquearLote=true;
				}
				else $bloquearLote=false;
				
				?>
                
                <?php if(!$bloquearLote) { ?><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoLote" /><?php } ?>
                <input name="lote" type="text" class="campo campoOrdenPreparacion <?php if($bloquearLote) { ?>deshabilitado<?php  } ?>" id="lote" style="left:5px;" value="<?php echo $lotePintar; ?>" autocomplete="off" <?php if($bloquearLote) { ?>readonly<?php  } ?>>
                <?php if(!$bloquearLote) { ?><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLote" class="iconoBorrar" style="position: absolute;right:-55px;cursor:pointer;top:3px;"/><?php } ?>

                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <?php if($pedirFechaCaducidad) { ?>
            
            <tr><td align="left">Fecha de Caducidad:</td><td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                
                <?php
				
				if($_POST['fechaCaducidad']) $fechaCaducidadPintar=$_POST['fechaCaducidad'];
				else if($_SESSION['lecturasGS1']['fechaCaducidad']) $fechaCaducidadPintar=$_SESSION['lecturasGS1']['fechaCaducidad'];

				if(count($arrayCaducidades)==1) {
					$fechaCaducidadPintar=fechaNacional(fechaDesdeProxium($arrayCaducidades[0]));
					$bloquearCaducidad=true;
				}
				else $bloquearCaducidad=false;				
				
				
				?>
                
                <input name="fechaCaducidad" type="text" class="campo campoOrdenPreparacion <?php if($bloquearCaducidad) { ?>deshabilitado<?php } ?>" id="fechaCaducidad" maxlength="14" style="left:5px;" value="<?php echo $fechaCaducidadPintar ?>" autocomplete="off" <?php if($bloquearCaducidad) { ?>readonly<?php } ?>/>
                <?php if(!$bloquearCaducidad) { ?><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarFechaCaducidad" style="position: absolute;right:-55px;cursor:pointer;top:3px;" class="iconoBorrar"/><?php } ?>
                
                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <input type="hidden" name="cajas" id="cajas" value="<?php echo $cajas; ?>"/>
        	<input type="hidden" name="EmbalajePrimarioCaja" id="EmbalajePrimarioCaja" value="<?php echo $producto['EmbalajePrimarioCaja']; ?>" />
            
            <tr id="bloqueCantidadNormal">
            	<td align="left" style="width:350px">Cantidad: (<span id="etiqueta"><?php echo $etiqueta; ?></span>)</td><td>
                
                <?php
				
				if($mostrarCajas && !$_POST['cajas']) $cantidadMostrar=$_POST['cantidad']/$_POST['EmbalajePrimarioCaja'];
				else $cantidadMostrar=$_POST['cantidad'];
				
				?>
            
            	<div id="bloqueContenedor">
                    <div class="campoOrdenPreparacionBloque">
                    <?php if($mostrarCajas) { ?><img src="<?php echo DIR_IMAGENES; ?>/<?php echo $etiquetaInversa; ?>.png" alt="Informar en <?php echo $etiqueta; ?>" class="iconoTeclado noLanzarTeclado" id="iconoUnidades" /><?php } ?>
                    <input name="cantidad" type="text" class="campo cantidad campoOrdenPreparacion" id="cantidad" maxlength="14" style="left:5px;"  value="<?php echo $cantidadMostrar; ?>" autocomplete="off"/>
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarCantidad" style="position: absolute;right:-55px;cursor:pointer;top:3px;" class="iconoBorrar"/>    
                    </div>
                </div>
                </td>
            </tr>

           <tr>
            <td align="left">Palet destino:</td>
            <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                	<img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoPaletDestino" />
                	<input name="paletDestino" type="text" class="campo campoOrdenPreparacion" id="paletDestino" style="left:5px;" value="<?php echo $paletDestino; ?>" autocomplete="off" >
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPaletDestino" class="iconoBorrar" style="position:absolute;right:-55px;cursor:pointer;top:3px;" />
                </div>
            </div>
            
            </td>
            </tr>
            
            <tr>
            <td align="left">Ubicación:</td>
            <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                	<input name="ubicacionDestino" type="text" class="campo campoOrdenPreparacion deshabilitado" id="ubicacionDestino" style="left:5px;" value="<?php echo $_POST['ubicacionDestino']; ?>" autocomplete="off" readonly >
                </div>
            </div>
            
            </td>
            </tr>
            
        </table>
            


        
        <!-- INFO DE LECURAS GS1 -->
        
        <?php if($_SESSION['lecturasTotales'] && !$lecturaEspecial) { ?>
        
        <hr class="separador"/>
        <h3>Resumen de todas las lecturas realizadas:</h3>
        
        <table class="tablaFormateada">
        <tr><th>Código</th><th>Tipo de dato</th><th>Valor</th></tr>
        <?php
        
		foreach($_SESSION['lecturasTotales'] as $codigo=>$valor) {
            
            if($codigo) {
            
                //echo "<p>CODIGO: ".$codigo."</p>";
                //echo "<p>VALOR: ".$valor."</p>";
                
                foreach(unserialize(GS1_128_CODES) as $identificador) {
                    if($identificador['codigo']==$codigo) {
                        $etiqueta=$identificador['etiqueta'];
                        if( ! ( ( $identificador['formato']=='fecha' || $identificador['formato']=='numero' ) && $valor==0 ) ) $valor=formateaGS1($valor,$identificador['formato'],NULL);
						else $valor='';
                    }
                    else {
                        if( substr($identificador['codigo'],-1)=='n' && substr($identificador['codigo'],0,strlen($identificador['codigo'])-1) ==  substr($codigo,0,strlen($codigo)-1)) {
                            $etiqueta=$identificador['etiqueta'];
                            $decimales=substr($codigo,-1);
                            if( ! ( ( $identificador['formato']=='fecha' || $identificador['formato']=='numero' ) && $valor==0 ) ) $valor=formateaGS1($valor,$identificador['formato'],$decimales);
							else $valor='';
                            //$valor=substr($valor,0,strlen($valor)-$decimales).".".substr($valor,-$decimales);
                        }
                    }
                }
        
                
                ?><tr><td><?php echo $codigo; ?></td><td align="left"><?php echo $etiqueta; ?></td><td><?php echo $valor; ?></td></tr><?php
            }
        }
        
        ?>
        </table>
        
        <?php } ?>

</form>


</div> <!-- div prinicpal -->

<script>

	function validaCampos() {
	
		var temp=$('#cantidad').val().split('.');
		var parteDecimal=temp[1]
		var tieneDecimal = ( parteDecimal!=undefined && parseInt(parteDecimal)!=0 );
	
		
	
		<?php if($pedirLote) { ?>$('#lote').removeClass('campoError');<?php } ?>
		<?php if($pedirFechaCaducidad) { ?>$('#fechaCaducidad').removeClass('campoError');<?php } ?>
		
		$('#paletDestino').removeClass('campoError');
		$('#cantidad').removeClass('campoError');
	

		if( $('#cantidad').val()=='' || $('#cantidad').val()==0 ) {
			alert('Para continuar es necesario indicar la cantidad.',null,'error')
			.done( function() {
				$('#cantidad').addClass('campoError');
				$('#cantidad').focus();
				return false;
			});
		}
		<?php if($mostrarCajas) { ?>
		else if( $('#etiqueta').html()=='Cajas' && tieneDecimal ) {
			alert('No se puede indicar decimales en la cantidad en cajas. '+parteDecimal,null,'error')
			.done( function() {
				$('#cantidad').addClass('campoError');
				$('#cantidad').focus();
				return false;
			});
		}
		<?php } ?>
		else if($('#paletDestino').val()=='') {
			alert('Es obligatorio indicar el palet destino.',null,'error')
			.done( function() {
				$('#paletDestino').addClass('campoError');
				$('#paletDestino').focus();
				return false;
			});
		}
		<?php if($pedirLote) { ?>
		else if( $('#lote').val()=='' ) {
			alert('Para continuar es necesario indicar el lote.',null,'error')
			.done( function() {
				$('#lote').addClass('campoError');
				$('#lote').focus();
				return false;
			});
		}
		else if( $('#lote').val()=='-' ) {
			alert('Para continuar es necesario indicar el lote.<br>No se puede indicar un guión (-) como lote.',null,'error')
			.done( function() {
				$('#lote').addClass('campoError');
				$('#lote').focus();
				return false;
			});
		}
		<?php } ?>
		<?php if($pedirFechaCaducidad) { ?>
		else if( $('#fechaCaducidad').val()=='' ) {
			alert('Para continuar es necesario indicar la fecha de caducidad.',null,'error')
			.done( function() {
				$('#fechaCaducidad').addClass('campoError');
				$('#fechaCaducidad').focus();
				return false;
			});
		}
		<?php } ?>
		else {
		
			return true;
			
		}

	}

	function cambiaUnidades() {
	
		if( $('#cajas').val()==1 ) {
			
			$('#iconoUnidades').attr('src','<?php echo DIR_IMAGENES; ?>/Cajas.png');
			$('#cajas').val(0);
			$('#etiqueta').html('Unidades');
			
			var resultado = parseInt( $('#cantidad').val() * $('#EmbalajePrimarioCaja').val() );
			if(resultado>0) $('#cantidad').val( resultado );
			
		}
		else {
		
			$('#iconoUnidades').attr('src','<?php echo DIR_IMAGENES; ?>/Unidades.png');
			$('#cajas').val(1);
			$('#etiqueta').html('Cajas');
					
			var flotante = parseFloat( $('#cantidad').val() / $('#EmbalajePrimarioCaja').val() );
			var resultado = Math.round(flotante*100)/100;
			if(resultado>0) $('#cantidad').val( resultado );
			
		}
	
	}




	function cantidadParaCalculadora(valor) {
		valor = valor.replace(/\./g,'');
		valor = valor.replace(/\,/g,'.');
		return valor;
	}
	
	function cantidadParaPantalla(valor) {
	
		if(valor)  valor=parseFloat( valor );
		else valor=0;
		
		valor = Intl.NumberFormat("de-DE",{minimumFractionDigits:3}).format( valor );
		return valor;

	}




$(document).ready(function() {
	
	
	$(document).on('click','.iconoTeclado',function(){
	
		if( ! $(this).hasClass('noLanzarTeclado') ) {
		
			var campo=$(this).siblings('input');
	
			$('#teclado').show();
			$('#valor').val( campo.val() );
			$('#valorOculto').val( campo.val() );
			$('#enter').attr('campoValor',campo.attr('id'));
			$('#enter').attr('forzarEnter','si');
			
		}
		
	});
			
	$(document).on('click','.iconoBorrar',function(){
			
		var campo=$(this).siblings('input');
		
		campo.val('');
		campo.focus();	
				
	});




		///////////////////////////////////////////////////// Gestion campo palet destino

			
			
			$(document).on('change','#paletDestino',function(){
			
				$('#popupCargando').show();
		
				$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-info-contenedor.php?traza=<?php echo $_GET['traza']; ?>", { contenedor : $('#paletDestino').val() })
				.done(function(data) {
				
					$('#popupCargando').hide();

					var info=data.split('#');
						
					if(info[0]=='error') {
							
						$('#popupCargando').hide();
						$("#paletDestino").val('');
						alert(info[2],$('#paletDestino'),'error');
								
					}
					else {
							
						var ubicacionMostrar;
							
						if(info[2]!='') ubicacionMostrar=info[2]; else ubicacionMostrar=info[0];
							
						$('#ubicacionDestino').val(ubicacionMostrar);
							
					}
						
				});

			});


			$('#borrarPaletDestino').on('click',function(){
			
				$('#ubicacionDestino').val('');
			
			});
			

	///////////////////////////////////////////////////// Gestion campo lote

			
			
			$(document).on('change','#lote',function(){
			
				siguienteCampo=focoSiguiente('lote');

			});
			
			
			
		///////////////////////////////////////////////////// Gestion campo fecha caducidad

			<?php if(!$bloquearCaducidad) { ?>

			$(document).on('click','#fechaCaducidad',function(){
				$('#calendario').show();
				$('#valorCalendario').val( $(this).val() );
				deconstruyeFecha();
				$('#enterCalendario').attr('campoValor', 'fechaCaducidad' );
				$('#enterCalendario').attr('forzarEnter','si');
			});
			
			$(document).on('change','#fechaCaducidad',function(){
				siguienteCampo=focoSiguiente('fechaCaducidad');
			});
			
			<?php } ?>
	

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


			$('#iconoUnidades').on("click",function(e){
				cambiaUnidades();
			});

			$('#cantidad').on("click",function(e) {
			
				if( !$(this).hasClass('deshabilitado') ) {
			
					$('#calculadora').show();
					$('#valorCalculadora').val( $('#cantidad').val() );
					$('#enterCalculadora').attr('campoValor','cantidad');
					$('#enterCalculadora').attr('forzarEnter','si');
				
				}
				
			});
			
			$('#borrarCantidad').on('click',function(){
			
				$("#cantidad").val('');
				$("#cantidad").focus();
				
			});
			
			
			$('#cantidad').on('change',function(){
			
				$('#cantidad').val( $('#cantidad').val().replace(/[^0-9.,]/gi,'') );
				
				siguienteCampo=focoSiguiente('cantidad');
				
			});

			
	
	
	$('#botonLectura').on("click",function(e){
		
		e.preventDefault();
		
		if(validaCampos()) {
			
			$('#procesoEntradaPlay').val(1);
			enviaFormulario();
			
		}
	});
	

	
	///////////////// METODOS PARA LA LECTURA GS1 POR SCANNER O MANUAL
	
	
	
	<?php if(!$desactivaScannerBluetooth) { ?>
	
	$("#lecturaGS1").on('keydown',function(e){
	
		e.preventDefault();
		var resultado='';
		
		//console.log(e.which);
		//console.log(e.key);
		
		if(e.which==13 || e.key=='Enter') {
			console.log('Se procede a hacer un trigger change');
			$('#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
		
		var lecturaFinal='';
		
		<?php //if( ($desactivaScannerBluetooth || $lecturaEspecial) && !$lecturaSinSeparadores ) { ?>
		<?php if( $desactivaScannerBluetooth && !$lecturaSinSeparadores ) { ?>
		
		console.log('Escanner desactivado o lectura especial');
		console.log('Llamamos al método transformaLecturaManualAlFormatoScanner con el valor: '+$('#lecturaGS1').val());
		
		lecturaFinal=transformaLecturaManualAlFormatoScanner( $('#lecturaGS1').val() );
		
		console.log('lecturaFinal: '+lecturaFinal);
		
		<?php } else if($lecturaSinSeparadores) { ?>
		
			console.log('Lectura de códigos gs1 sin pulsaciones separadoras, o lectura manual sin paréntesis');
			
			if( $('#lecturaGS1').val().indexOf('(')!=-1 ) { 
			
				console.log('Excepción: lectura manual sin paréntesis');
				
				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) {
			console.log('Lectura detectada desde scanner.');
			lecturaFinal=limpiaLecturaDesdeScanner( lecturaScanner );
		}
		else {
			console.log('Lectura manual detectada.');
			lecturaFinal=transformaLecturaManualAlFormatoScanner( $('#lecturaGS1').val() );
		}

		<?php } ?>
		
		var resultado=pintaLecturaHumana( lecturaFinal );
		
		console.log('lecturaFinal: '+lecturaFinal + ' > resultado: ' + resultado);
		
		
		
		if(resultado=='error')  {
			
			console.log('La lectural final da error, por lo que NO ES GS1-128');
			
			<?php if($lecturaEspecial) { ?>
			
				$('#lecturaGS1').val( lecturaFinal );
			
				enviaFormulario();
			
			<?php } else { ?>
			
				<?php if($desactivaScannerBluetooth) { ?>
				
					var mostrarLectura=lecturaFinal;
				
				<?php } else { ?>
				
					var mostrarLectura=limpiaLecturaDesdeScannerNoGS1(lecturaFinal);
				
				<?php } ?>
			
				$('#lecturaGS1').val( mostrarLectura );
				
				console.log('mostrarLectura: '+mostrarLectura);
				console.log('lecturaFinal: '+lecturaFinal);
				
				<?php if($_SESSION['producto']) { ?>
				
					if( lecturaFinal!='error' && lecturaFinal!='' ) $('#lecturaGS1').val(mostrarLectura);
					
					console.log('Lectura no reconocida: '+mostrarLectura+' / es lecturaEspecial: <?php echo $lecturaEspecial; ?>');
					
					$('#lecturaNoReconocida').html(mostrarLectura);
					$('#popupLecturaNoReconocida').show();
					//alert('Error en la lectura. Código GS1-128 no reconocido.<br><br>'+limpiaLecturaDesdeScannerNoGS1(lecturaScanner),null,'error');
				
				<?php } else { ?>
				
					if(mostrarLectura!='') $('#lecturaDesconocida').val( mostrarLectura );
					else $('#lecturaDesconocida').val( lecturaFinal );
					
					enviaFormulario();
				
				<?php } ?>
				
			
			<?php } ?>
		}
		else { //No hay error
		
			$('#lecturaGS1').val( resultado );
			
			enviaFormulario();
		}
		
		
		
	});
	
	$('#borrarLecturaGS1').on('click',function(){
	
		reiniciaVariables();
		//lecturaScanner=new Array();
		//cadenaLectura='';
		//esLecturaGS1Correcta=false;
		
		$('#lecturaGS1').val('');
		$('#lecturaDesconocida').val('');
		$('#lecturaGS1').focus();
	});
	
	$('#botonLecturasGS1').on('click',function(){
	
		reiniciaVariables();
		
		$('#lecturaGS1').val('');
		$('#lecturaGS1').focus();
	
	});
	
	$('#tecladoLecturaGS1').on('click',function(){
	
		$('#teclado').show();
		$('#valor').val( $('#lecturaGS1').val() );
		$('#valorOculto').val( $('#lecturaGS1').val() );
		$('#enter').attr('campoValor','lecturaGS1');
		$('#enter').attr('forzarEnter','si');
	
	});
	

	
	
	//21-05-2021 Llevar el foco a la lecturaGS1 despues de cualquier cambio
	$('.moverFocoLecturaGS1trasCambio').on('change',function(){
		$('#lecturaGS1').focus();
	});

	
	
	
	
	//26-1-2022 Nuevo método para fijar campos
	function capitalizarTexto(str) {
	  return str.charAt(0).toUpperCase() + str.slice(1);
	}


	

	
	//Construcción inicial focos
	inicializaSecuencia();
	
	
});

function enviaFormulario() {

	$('#popupCargando').show();
	$('#formulario').submit();
	
}

//DEFINICION GLOBAL DE LAS VARIABLES PARA LECTURAS GS1

var lecturaScanner=new Array();
var cadenaLectura='';
var esLecturaGS1Correcta=false;

function reiniciaVariables() {
	lecturaScanner=new Array();
	cadenaLectura='';
	esLecturaGS1Correcta=false;
}

</script>


<?php include($rutaPhp.$rutaHtml.'/maqueta/menu-devolucion-estanteria.php'); ?>

<script>
	
		$(document).ready(function() {
		
			$('#botonLectura').on("click",function(e){
			
				e.preventDefault();
				
				if( validaCampos() ) {
				
					$('#procesoEntradaPlay').val(1);
					$('#popupCargando').show();
					$('#formularioDevolucion').submit();
				
				}
				
			});
		
			$('#botonVolver').on("click",function(e){
				e.preventDefault();
				$('#popupCargando').show();
				window.location='<?php echo $rutaHtml; ?>/info-contenedor-S.php?contenedor=<?php echo $_SESSION['devolucion']['Palet']; ?>&procedencia=devoluciones';	
			});
		
		});
	
</script>
    
<?php

if($entradasLecturaGs1) $foco='lecturaGS1';
else if($pedirLote) $foco='lote';
else if($pedirFechaCaducidad) $foco='fechaCaducidad';
else $foco='paletDestino';

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