<?php
//02-04-2026 Errores de caché y páginas cortadas a mitad. VCDL
ob_start();
$isIIS = ( isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS')!==false );
if(!$isIIS) opcache_reset();
session_start();

//ini_set('display_errors', 1);
//ini_set('display_startup_errors', 1);
//error_reporting(E_ALL);

require_once('config.php');
require_once($rutaPhp.$rutaHtml.'/maqueta/includes.php');





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

//21-20-2025
$cambioEstadoDevolucion=($_SESSION['parametrosSGA']['EstadoProductosRecepcion']=='S');

//26-03-2025
$asociacionEANaProductos=($_SESSION['parametrosSGA']['AsociacionEANaProductos']=='S' && !$_SESSION['entradaEsDevolucion']);

$gestionProductosRegalo=($_SESSION['parametrosSGA']['ProductosDeRegalo']=='S');



//echo '<p>esRecepcionCompra: '.$_SESSION['entradaEsRecepcionCompra'].'</p>';
//echo '<p>Filtro pedido: '.$_SESSION['filtrosRecepcionCompra']['filtroPedido'].'</p>';

//echo '<p>entradaEsDevolucion: '.$_SESSION['entradaEsDevolucion'].'</p>';


//15-11-2023
if($_GET['cargaSeleccionada']) $_SESSION['entrada']['cargaSeleccionada']=$_GET['cargaSeleccionada'];


/////////////////////$_SESSION['entrada']['VisibCodBarras']='N'; //Para pruebas

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

$requierePaletizar=true;
$vieneDeCrossdockingAgrupado=false;
$vieneDePedidoVenta=false;

$pedirPesoNeto=($_SESSION['entrada']['ControlPesoNeto']=='S');
$pedirUbicacion=$_SESSION['seleccionUbicacionEntrada'];

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

$lecturaEspecial = ( isset( $codigosEspeciales[$_SESSION['entrada']['ClientePropietario']] ) );

//18-6-2021 añadirmos el listado de productos que contiene el palet origen al leerlo
$mostrarContenidoPaletOrigen=($_SESSION['parametrosSGA']['NoMostrarInfoPaletEntradas']!='S');

if($_SESSION['entrada']['ControlPaletCliente']=='S' || $_SESSION['entrada']['ControlPaletCliente']=='C') $pedirPaletCliente=true;
	
//17-05-2022 transbidasoa añade sub id palet cliente
if($_SESSION['entrada']['ControlPaletCliente']=='C') $pedirSubIdPaletCliente=true;

////////////////////////////////////// PARA HACER PRUEBA
//$pedirPaletCliente=true;
//$pedirSubIdPaletCliente=true;
////////////////////////////////////////



//echo '<p>'.date('d/m/Y').'</p>';

//echo "<p>Hay lectura especial NO gs1: ".$lecturaEspecial."</p>";

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



//26-1-2022 fecha caducidad por defecto
if($_SESSION['entradaFechaCaducidadPorDefecto']) $fechaCaducidadPorDefecto=$_SESSION['entradaFechaCaducidadPorDefecto'];

if( $_SESSION['entradaFechaCaducidadPorDefectoAmpliacionDias'] || $_SESSION['entradaFechaCaducidadPorDefectoAmpliacionMeses'] || $_SESSION['entradaFechaCaducidadPorDefectoAmpliacionAnyos'] ) {
	$d = new DateTime( $fechaCaducidadPorDefecto );
	if($_SESSION['entradaFechaCaducidadPorDefectoAmpliacionDias']) $d->modify('+'.$_SESSION['entradaFechaCaducidadPorDefectoAmpliacionDias'].' days');
	if($_SESSION['entradaFechaCaducidadPorDefectoAmpliacionMeses']) $d->modify('+'.$_SESSION['entradaFechaCaducidadPorDefectoAmpliacionMeses'].' months');
	if($_SESSION['entradaFechaCaducidadPorDefectoAmpliacionAnyos']) $d->modify('+'.$_SESSION['entradaFechaCaducidadPorDefectoAmpliacionAnyos'].' years');
	$fechaCaducidadPorDefecto = $d->format('d/m/Y');
}


//$_SESSION['entradaOperativaCNFC']=$entradaOperativaCNFC;

//01-02-022
if($_GET['automatizarproducto']) {
	$_POST['tipoDatoLecturaNoReconocida']='codigo';
	$_POST['lecturaGS1']=$_GET['automatizarproducto'];
}


if($_GET['accion']=='reiniciar') {
	unset($_SESSION['producto']);
	unset($_SESSION['lecturasTemporalesGS1']);
	unset($_SESSION['lecturasAcumuladas']);
	unset($_SESSION['lecturasGS1']);
	unset($_SESSION['lecturasTotales']);
}



if($_POST['lecturaGS1'] && !$_POST['lecturaDesconocida']) { //$_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($_POST['tipoDatoLecturaNoReconocida'] && !$lecturaEspecial) {
	
		switch($_POST['tipoDatoLecturaNoReconocida']) {
			case 'codigo':
				$_SESSION['lecturasTemporalesGS1']['codigo']=$_POST['lecturaGS1'];
				break;
			case 'eandun':
				if($_POST['lecturaGS1'].length==13 || $_POST['lecturaGS1'].length==14) {
					$_SESSION['lecturasTemporalesGS1']['eanDun']=$_POST['lecturaGS1'];
				}
				break;
			case 'lote':
				$_SESSION['lecturasTemporalesGS1']['lote']=$_POST['lecturaGS1'];
				break;
			case 'paletCliente':
				$_SESSION['lecturasTemporalesGS1']['paletCliente']=$_POST['lecturaGS1'];
				break;
		}
	
	}
	
	else { //No es lecgtura desconocida, comenzamos la evaluación de qué tipo de codigo es

		//echo "<p>POST para evaluar GS1-128: ".$_POST['lecturaGS1']."</p>";
	
		//27-12-2019
		//Miramos si la cadena resultante tiene paréntesis
		
		$esLecturaGs1=false;
		
		if( strpos($_POST['lecturaGS1'],'(')!==false && strpos($_POST['lecturaGS1'],')')!==false  ) {
	
			$esLecturaGs1=true;
	
			//echo '<p>La lectura tiene parentesis ok.</p>';
			
			if(!$_SESSION['producto']) { //Solo si no tiene producto precargado, presuponemos que puede ser un posible EAN
				$posibleEANenGs1=$_POST['lecturaGS1'];
				$posibleEANenGs1=str_replace('(','',$posibleEANenGs1);
				$posibleEANenGs1=str_replace(')','',$posibleEANenGs1);
				//echo '<p>Nos guardamos la lectura para posible EAN posterior: '.$posibleEANenGs1.'</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':
						//echo '<p>PASA POR AQUI 2</p>';
						$_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'];
				
				
			}
			
		}
		
		//echo '<p>Lectura temporales Gs1:</p>';
		//print_r($_SESSION['lecturasTemporalesGS1']);
		//echo '<p>Lecturas totales:</p>';
		//print_r($_SESSION['lecturasTotales']);
		
		if(!$esLecturaGs1) { //no tiene parentesis, no sabemos lo que es, así que lo asignamos manualmente a $_POST['lecturaDesconocida']
		
			//echo '<p>La lectura NO tiene parentesis desde el origen. La pasamos a desconocida.</p>';
			
			//Solo si no tiene producto, pensamos que puede ser un codigo articulo ean o dun
			if(!$_SESSION['producto']) {
				$_POST['lecturaDesconocida']=$_POST['lecturaGS1'];
			}
			else { //Preparamos para que se muestre el popup de desconocido
			
				//19-05-2022 movemos aqui la gestion de la lectura espcial
				
				if($lecturaEspecial) {
	
					//echo '<p>POST para evaluar Lectura especial: '.$_POST['lecturaGS1'].'</p>';
					
					if($codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['separador'] || $codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['separadoralternativo']) {
				
						$valores=explode($codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['separador'],$_POST['lecturaGS1']);
						
						//Si no ha encontrado trozos con ese separador, prueba con el alternativo
						if(count($valores)<=1) $valores=explode($codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['separadoralternativo'],$_POST['lecturaGS1']);
						
						$contador=0;
						
						foreach( $codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['datos'] as $dato) {
							$_SESSION['lecturasTemporalesGS1'][$dato] = $valores[$contador];
							$contador++;
						}
						
					}
					else {
					
						//23-12-2021 Nuevo caso con datos de longitud fija
						
						$posicion=0;
						
						foreach( $codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['datos'] as $clave=>$valor) {
						
							$longitud=$codigosEspeciales[$_SESSION['entrada']['ClientePropietario']]['longitudes'][$clave];
							
							if(!is_array($longitud)) {
								$_SESSION['lecturasTemporalesGS1'][$valor]=substr($_POST['lecturaGS1'],$posicion,$longitud);
								$posicion=+$longitud;
							}
							else { //18-5-2022 nuevo caso, no son datos consecutivos, sino que pueden superponerse (cliente Betapack  de Transbidasoa)
								$_SESSION['lecturasTemporalesGS1'][$valor]=substr($_POST['lecturaGS1'],$longitud[0],$longitud[1]);
							}
						}
					
					}
					
					//print_r($_SESSION['lecturasTemporalesGS1']);
				
				} else { //No tiene lectura espeical, mostramos popup
				
						$mostrarPopupLecturaNoReconocida=true;
						
				}
				
			}
		}
		
		
	}


}

/*
echo '<p>SESSION producto actual:</p>';
print_r($_SESSION['producto']);
*/
//echo '<p>LECTURAS TEMPORALES GS1: (traza 2)</p>';
//print_r($_SESSION['lecturasTemporalesGS1']);
/*
echo "<p>EANS y DUNS asociados al producto en SESSION actual:</p>";
print_r($_SESSION['producto']['EAN']);
print_r($_SESSION['producto']['DUN']);
*/

if( $_SESSION['producto'] && $_SESSION['lecturasTemporalesGS1']['eanDun'] && ($_SESSION['producto']['EAN'] || $_SESSION['producto']['DUN']) && !eanDunValido($_SESSION['lecturasTemporalesGS1']['eanDun'],$_SESSION['producto']['EAN'],$_SESSION['producto']['DUN']) ) {
	//echo "<p>Hay un error de EAN/DUN, se descartan las lecturas GS1 actuales.</p>";
	?>
    <script>
    alert('ATENCION: Se ha leido un código GTIN 145<br>que no corresponde con el producto actualmente seleccionado.<br><br>Código leido: <?php echo $_SESSION['lecturasTemporalesGS1']['eanDun']; ?>',null,'error')
	.done(function(){
		$('#lecturaGS1').focus();
	});
	</script>
    <?php
	unset($_SESSION['lecturasTemporalesGS1']);
}
else if( $_SESSION['producto'] && $_SESSION['lecturasTemporalesGS1']['codigo'] && $_SESSION['producto']['Codigo']!=$_SESSION['lecturasTemporalesGS1']['codigo'] && !$posibleEANenGs1 ) {
	?>
    <script>
    alert('ATENCION: Se ha leido un código de producto<br>que no corresponde con el producto actualmente seleccionado.',null,'error')
	.done(function(){
		$('#lecturaGS1').focus();
	});
	</script>
    <?php
	unset($_SESSION['lecturasTemporalesGS1']);
}
else {

	//echo "<p>Lecturas GS1 ok. Pasamos de temporales a definitivas.</p>";
	
	
	foreach($_SESSION['lecturasTemporalesGS1'] as $clave=>$valor) {
		//echo "<p>Se asigna nueva lectura a ".$clave." con valor ".$valor."</p>";
		$_SESSION['lecturasGS1'][$clave]=$valor;
	}
	
	//print_r($_SESSION['lecturasGS1']);
}

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

if($_POST['paletCliente']) $paletCliente=$_POST['paletCliente'];

//17-05-2022 Transbidasoa
if($_POST['subIdPaletCliente']) $subIdPaletCliente=$_POST['subIdPaletCliente'];

if($_POST['pesoNeto']) $pesoNeto=$_POST['pesoNeto'];

if($_POST['idioma']) $idioma=$_POST['idioma']; else $idioma='-';
if($_POST['precinta']) $precinta=$_POST['precinta']; else $precinta='-';
if(isset($_POST['lote'])) $lote=(string)$_POST['lote']; else $lote='-'; //29-1-2029 error controlado: lote='0'
if($_POST['fechaCaducidad']) $fechaCaducidad=fechaParaProxium(fechaMysql($_POST['fechaCaducidad'])); else $fechaCaducidad='-';
if($_POST['cadenaNumerosSerieLeidos']) $numerosSerie=$_POST['cadenaNumerosSerieLeidos']; else $numerosSerie='-';

$numerosSerieRecuperar=$numerosSerie;
//echo '<p>numerosSerie: '.$numerosSerie.'</p>';

if($_POST['cantidad']) {
	if($_POST['cajas']==1) $cantidad=$_POST['cantidad']*$_POST['EmbalajePrimarioCaja']; else $cantidad=$_POST['cantidad'];
}

if($_POST['cantidadMultipedido']) {

	//if($_POST['cajas']==1) $cantidadMultipedido=$_POST['cantidadMultipedido']*$_POST['EmbalajePrimarioCaja']; else $cantidadMultipedido=$_POST['cantidadMultipedido'];
	//El calculo por unidades si está informado cajas, ya está hecho en el array
	
	$cantidadMultipedido=$_POST['cantidadMultipedido'];
	
	$cantidad=''; //Borramos porque llegaría el total sumatorio
}


if($_POST['ubicacion']) $ubicacion=$_POST['ubicacion'];

//21-07-2021 Lectura masiva de palets iguales
if($_POST['recepcionMasivaPalet']) $recepcionMasivaPalet=$_POST['recepcionMasivaPalet'];


//23-06-2020
$pesoVariablePesoBruto=$_POST['pesoVariablePesoBruto'];
$pesoVariableTara=$_POST['pesoVariableTara'];
$pesoVariablePesoNeto=$_POST['pesoVariablePesoNeto'];

/*
echo '<p>pesoVariablePesoBruto: '.$pesoVariablePesoBruto.'</p>';
echo '<p>pesoVariableTara: '.$pesoVariableTara.'</p>';
echo '<p>pesoVariablePesoNeto: '.$pesoVariablePesoNeto.'</p>';
*/

//11-02-2021
$marcas = str_replace(PHP_EOL,' ',$_POST['marcas']);

//05-02-2021
$ObsAduana=$_POST['ObsAduana'];

$pesajeTipo=$_POST['pesajeTipo'];
$pesajeCaja=$_POST['pesajeCaja'];
if($_POST['pesajeBascula']) $_SESSION['pesaje']['bascula']=$_POST['pesajeBascula'];
if($_POST['pesajeImpresora']) $_SESSION['pesaje']['impresora']=$_POST['pesajeImpresora'];


//Gestion de la lectura de palet y los tipos de palet
//--
$contenedor=$_POST['contenedor'];
$nuevoTipoPalet=$_POST['tipoPalet'];

//15-02-2024  TAREA INTERNA 57030
$nuevoPaletAncho=$_POST['palet-ancho'];
$nuevoPaletFondo=$_POST['palet-fondo'];
$nuevoPaletAlto=$_POST['palet-alto'];

$contenedorOriginal=$_POST['contenedorOriginal'];

//26-03-2025
$informarEAN=$_POST['informarEAN'];

//21-20-2025
$estadoProducto=$_POST['estadoProducto'];


if( ( $contenedor && $contenedorOriginal=='' ) || ( $contenedorOriginal!='' && $contenedor!=$contenedorOriginal ) ) {

	unset($_SESSION['ubicacionPaletEntradaAutomatizar']);
	
	//COMPROBACION EXISTENCIA Y VALIDEZ CONTENEDOR

	$peticion='SGAUbicar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#INFOUBI#'.$_SESSION['almacen'].';'.$contenedor;
	
	//18-9-2025 TAREA INTERNA 69481
	if(!$_SESSION['entradaEsRecepcionCompra'] && !$_SESSION['entradaEsDevolucion']) {
		$peticion.=';;;'.$_SESSION['entrada']['NumEntrada'];
	}
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

	if($_GET['traza']=='si') {
		echo '<p>Consulta palet:</p>';
		echo '<p>'.$peticion.'</p>';
		print_r($resultado);
	}
	
	$infoContenedor=$resultado[0];
	
	////2-1-2023 para sermasa, ponemos un tipo por defecto en el config
	if(!$infoContenedor['TipoPalet']) $infoContenedor['TipoPalet']=$paletPorDefectoTraspaso;
	
	$_SESSION['ubicacionPaletEntradaAutomatizar']=$infoContenedor['UbicacionActual'];
	
	//17-4-2024 TICKET 24058346
	$ubicacionPaletEtiquetaProductos=$infoContenedor['AliasUbicacionActual'];
	
	$errorPalet=$infoContenedor['Error'];
	
	if($_GET['traza']=='si') {
		echo '<p>Tipo pesaje: '.$pesajeTipo.'</p>';
		print_r($infoContenedor);
	}
	
	if(!$errorPalet) {
	
		if($infoContenedor['EsCaja']=='S') $errorPalet='1#Este identificador corresponde a una caja.';
		else if($pesajeTipo=='U' && $infoContenedor['EsCarro']!='S') $errorPalet='1#Este identificador no corresponde a un carro.';
		else if($pesajeTipo=='R' && $infoContenedor['EsCarro']=='S') $errorPalet='1#No puedes introducir una caja de roturas en un carro.';

	}
	
	if($errorPalet) {
		$valores=explode('#',$errorPalet);
		?>
		<script>
			alert('<?php echo $valores[1]; ?><br><br><strong><?php echo $contenedor; ?></strong>',null,'error')
			.done(function(){
				$('#contenedor').val('');
				$('#paletErrorYaAvisado').val('');
				$('#contenedorOriginal').val('');
				$('#contenedor').focus();
			});
        </script>
		<?php
	}
	else {
		//if($infoContenedor['IdPaletCliente'] && $_POST['paletErrorYaAvisado']!=1) {
		if($infoContenedor['IdPaletCliente']) {
			?>
			<script>
				alert('Advertencia: Este Palet ya está asociado al palet de cliente: <strong><?php echo $infoContenedor['IdPaletCliente']; ?></strong>',null,'advertencia')
				.done(function(){
				
					$('#paletCliente').val('<?php echo $infoContenedor['IdPaletCliente']; ?>');
					bloqueaIdPaletCliente(valor,null);
					$('#desbloquearPaletCliente').show();
					
					<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
					cargaResumenPaletsMasivos();
					<?php } ?>
				
					$('#paletErrorYaAvisado').val(1);
					$('#lecturaGS1').focus();
				});
            </script>
			<?php
		}
		
		//18-6-2021 añadimos obtener la info de lo que contiene el palet origen
		if($mostrarContenidoPaletOrigen) {
		
			
			$peticion='SGAUbicar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#PRODUCTOSCONTENEDOR#'.$_SESSION['almacen'].';'.$contenedor.';'.$noAgrupar;
			$listadoContenidoPalet=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
			if($_GET['traza']=='si') {
				echo "<p>".$peticion."</p>";
				print_r($listadoContenidoPalet);
			}
			
		
		}
		
	}
	
}






if($_SESSION['entradaEsRecepcionCompra']) {


	?>
			<h2>Recepción de compra. Albarán Nº <?php echo $_SESSION['recepcionCompra']['numAlbaran']; ?></h2><?php
	
	$indiceCrossdocking=$_SESSION['recepcionCompra']['proveedorCodigo'].'@'.$_SESSION['recepcionCompra']['numAlbaran'];
	
	//echo '<p>indiceCrossdocking: '.$indiceCrossdocking.'</p>';
	//print_r($_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]);
	//echo '<hr>';
	
	if($_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_pedidoVenta']) {
		$vieneDePedidoVenta=true;
		if($_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado']=='S') {
			$vieneDeCrossdockingAgrupado=true;
			$requierePaletizar=false;
		}
	}
	
	//echo '<p>vieneDeCrossdockingAgrupado: '.$vieneDeCrossdockingAgrupado.'</p>';

	
}
else if($_SESSION['entradaEsDevolucion']) { //devolución de COMPRAS (privado)

	?><h2>Entrada por devolución. Albarán Nº <?php echo $_SESSION['entradaDevolucion']['NumAlbaran']; ?></h2><?php 
}
else {
	//23-09-2025
	$esDevolucion=($_SESSION['entrada']['EsDevolucion']=='S'); //devolución de entradas logisticas (publico)
	
	?><h2>Entrada de mercancía <?php if($esDevolucion) { ?>por devolución<?php } ?> Nº <?php echo $_SESSION['entrada']['NumEntrada']; ?></h2><?php 
}


include($rutaPhp.$rutaHtml.'/contenidos/popup-playas.php');
include($rutaPhp.$rutaHtml.'/contenidos/popup-estados.php');

?>

<input name="paletSeleccionado" type="hidden" id="paletSeleccionado" value="<?php echo $_SESSION['entradaPaletActual']; ?>"/>

<?php







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

function eanDunLimpioSumas($eanDun) {
	return str_replace('%C2%A0','+',$eanDun);
}

function eanDunError($eanDun) {
	return str_replace(' ','[ ]',$eanDun);
}


function compruebaCodigoEanDunEnListado($codigoBuscar,$eandun) {

	global $tipoLectura;
	global $productoNoRegistrado;

	global $codigoProducto;
	global $cantidad;
	global $cantidadCajas;
	global $embalajePrimarioCaja;
	global $leido;
		
	global $pedirLote;
	global $pedirIdioma;
	global $pedirPrecinta;
	global $pedirFechaCaducidad;
	global $pedirNumSerie;
	
	//23-06-2020
	global $pedirPesoVariable;
	
	// VCD añadimos urlencode para controlar espacios
	$eandun=urlencode($eandun); 

	//echo "<p>Función para buscar un codigo, EAN o DUN leido en el listado original y no hay SESSION producto</p>";
	//echo '<p>Codigo: '.$codigoBuscar.'</p>';
	//echo '<p>eanDun: '.$eandun.'</p>';
	
	unset($_SESSION['producto']);
	
	
	
	$contenedor=$_POST['contenedor'];
	
	foreach($_SESSION['productos'] as $item) {
		
		if( $eandun!='' && !is_null($eandun) ) $validacionEanDun = eanDunValido($eandun,$item['EAN'],$item['DUN']);
		else unset($validacionEanDun);
		
		//echo "<p>Validación eandun: ".$validacionEanDun."</p>";
		//print_r($item);
		//echo '<hr>';
			
		if(
			( $validacionEanDun=='EAN' || $validacionEanDun=='DUN' || ( $codigoBuscar && $codigoBuscar==$item['Codigo'] && $item['Codigo']!='' ) )
				&&
				(int)$item['Leido']<(int)$item['Cantidad']
				&&
				( !$_SESSION['entradaEsRecepcionCompra']
				  || ( $_SESSION['entradaEsRecepcionCompra'] && 
						( !$_SESSION['filtrosRecepcionCompra']['filtroPedido'] || ( $_SESSION['filtrosRecepcionCompra']['filtroPedido'] && $item['Pedido']==$_SESSION['filtrosRecepcionCompra']['filtroPedido'] ) )
					  )
				)
 			) {
			//echo '<p>PRODUCTO ENCONTRADO EN LISTA</p>';
				
			$_SESSION['producto']=$item;
				
			if( $eandun && $validacionEanDun ) $tipoLectura=$validacionEanDun;
			break;
		}
	}
			
	if(isset($_SESSION['producto'])) { //Se ha encontrado en el detalle de la entrada y queda cantidad pendiente de leer
			
		//echo '<p>Se ha encontrado en el detalle de la entrada y queda cantidad pendiente de leer.</p>';
			
		$codigoProducto=$_SESSION['producto']['Codigo'];
		$cantidad=$_SESSION['producto']['Cantidad'];
		$cantidadCajas=$_SESSION['producto']['CantidadCajas'];
		$embalajePrimarioCaja=$_SESSION['producto']['EmbalajePrimarioCaja'];
		$leido=$_SESSION['producto']['Leido'];
		
		$ObsAduana=$_SESSION['producto']['ObsAduana'];
			
		$pedirLote=( $_SESSION['producto']['ControlLote']=='S' || $_SESSION['producto']['ControlLote']=='SOP' );
		$pedirIdioma=( $_SESSION['producto']['ControlIdioma']=='S' );
		$pedirPrecinta=( $_SESSION['producto']['ControlPrecinta']=='S' );
		$pedirFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' || $_SESSION['producto']['ControlFechaCaducidad']=='SOP' );

		 
		$pedirNumSerie=( $_SESSION['producto']['ControlNumSerie']=='S' || $_SESSION['producto']['GestionNumSerieInterno']=='I' );
		//27-01-2026
		if($_SESSION['entrada']['GestNumSerSal']=='S' || $_SESSION['entrada']['GestNumSerSal']=='C') $pedirNumSerie=false;
		
		//23-06-2020
		$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
		
		//11-02-2021
		$pedirMarcas=( $_SESSION['producto']['MarcasControl']=='S' );
		$marcas=$_SESSION['producto']['Marcas'];
		
		//12-02-2021
		$obligatoriedadLote=( $_SESSION['producto']['ControlLote']=='S' );
		$obligatoriedadFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' );


	}
	else {
		
		//echo '<p>No se ha encontrado el producto. Volvemos a recorrer por si estuviera ya leido:</p>';
		
		//Volvemos a recorrer el listado, por si el producto ya estuviera leido. En este caso, puede ser que esté entrando más o que sea un error repetición
		foreach($_SESSION['productos'] as $item) {
			
			if($eandun) $validacionEanDun = eanDunValido($eandun,$item['EAN'],$item['DUN']);
			else unset($validacionEanDun);
			
			//echo '<p>validacionEanDun: '.$validacionEanDun.'</p>';
			
			if( ( $validacionEanDun=='EAN' || $validacionEanDun=='DUN' || ( $codigoBuscar==$item['Codigo'] && $item['Codigo']!='' ) ) && (int)$item['Leido']==(int)$item['Cantidad'] ) {
			
				$_SESSION['producto']=$item;
				if( $eandun && $validacionEanDun ) $tipoLectura=$validacionEanDun;
				break;
			}
		}
			
		if(isset($_SESSION['producto'])) { //Se ha encontrado en el detalle de la entrada con toda la cantidad leida. Así que va a ser una entrada completamente nueva
			
			//echo '<p>Se ha encontrado en el detalle de la entrada con toda la cantidad leida. Así que va a ser una entrada completamente nueva</p>';
			
			$codigoProducto=$_SESSION['producto']['Codigo'];
			$embalajePrimarioCaja=$_SESSION['producto']['EmbalajePrimarioCaja'];
			
			$ObsAduana=$_SESSION['producto']['ObsAduana'];
			
			$pedirLote=( $_SESSION['producto']['ControlLote']=='S' || $_SESSION['producto']['ControlLote']=='SOP' );
			$pedirIdioma=( $_SESSION['producto']['ControlIdioma']=='S' );
			$pedirPrecinta=( $_SESSION['producto']['ControlPrecinta']=='S' );
			$pedirFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' || $_SESSION['producto']['ControlFechaCaducidad']=='SOP' );
			
			$pedirNumSerie=( $_SESSION['producto']['ControlNumSerie']=='S' || $_SESSION['producto']['GestionNumSerieInterno']=='I' );
			//27-01-2026
			if($_SESSION['entrada']['GestNumSerSal']=='S' || $_SESSION['entrada']['GestNumSerSal']=='C') $pedirNumSerie=false;
			
			//23-06-2020
			$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
			
			//11-02-2021
			$pedirMarcas=( $_SESSION['producto']['MarcasControl']=='S' );
			$marcas=$_SESSION['producto']['Marcas'];
			
			//12-02-2021
			$obligatoriedadLote=( $_SESSION['producto']['ControlLote']=='S' );
			$obligatoriedadFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' );

				
			//Reseteamos todos los datos de comportamientos, porque no podemos usar los que están informados en esa linea
			foreach($_SESSION['comportamientos'] as $comportamiento) $_SESSION['producto'][$comportamiento['NombreSQL']]='';
				
			?><script>alert('ATENCIÓN: Este producto ya está leido.<br>Se procederá a registrar una entrada nueva que no consta en la previsión.');</script><?php
				
		}

	}

}

function compruebaCodigoEanDunEnProxium($codigoBuscar,$eandun) {

	global $wsUsuario;
	global $wsClave;
	global $wsEmpresa;
	
	global $tipoLectura;
	global $productoNoRegistrado;
	
	global $codigoProducto;
	global $cantidad;
	global $cantidadCajas;
	global $embalajePrimarioCaja;
	global $leido;
			
	global $pedirLote;
	global $pedirIdioma;
	global $pedirPrecinta;
	global $pedirFechaCaducidad;
	global $pedirNumSerie;
	
	//23-06-2020
	global $pedirPesoVariable;
	
	//11-02-2021
	global $pedirMarcas;
	
	//12-02-2021
	global $obligatoriedadLote;
	global $obligatoriedadFechaCaducidad;
	
	//echo "<p>Función para buscar un codigo, EAN o DUN leido en WS PROXIUM; y no hay SESSION producto</p>";
	//echo '<p>Codigo: '.$codigoBuscar.'</p>';
	//echo '<p>eanDun: '.$eandun.'</p>';
		
	unset($_SESSION['producto']);
		
	$contenedor=$_POST['contenedor'];
		
	$eandun=urldecode($eandun);
					
	$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#COMPRUEBAPRODUCTO#'.$_SESSION['almacen'].';'.$_SESSION['usuario']['Usuario'].';'.$_SESSION['entrada']['NumEntrada'].';'.$eandun.';'.$codigoBuscar;
			
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
							
	if($_GET['traza']=='si') {
		echo "<p>COMPROBACION EANDUN NO REGISTRADO EN ENTRADA</p>";
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
						
	if(!$resultado[0]['Error']) {
							
		$_SESSION['producto']=$resultado[0];
							
		$productoNoRegistrado=true;
							
		$codigoProducto=$_SESSION['producto']['Codigo'];
		$embalajePrimarioCaja=$_SESSION['producto']['EmbalajePrimarioCaja'];
							
		$pedirLote=( $_SESSION['producto']['ControlLote']=='S' || $_SESSION['producto']['ControlLote']=='SOP' );
		$pedirIdioma=( $_SESSION['producto']['ControlIdioma']=='S' );
		$pedirPrecinta=( $_SESSION['producto']['ControlPrecinta']=='S' );
		$pedirFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' || $_SESSION['producto']['ControlFechaCaducidad']=='SOP' );
		
		$pedirNumSerie=( $_SESSION['producto']['ControlNumSerie']=='S' || $_SESSION['producto']['GestionNumSerieInterno']=='I' );
		//27-01-2026
		if($_SESSION['entrada']['GestNumSerSal']=='S' || $_SESSION['entrada']['GestNumSerSal']=='C') $pedirNumSerie=false;
		
		//23-06-2020
		$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
		
		//11-02-2021
		$pedirMarcas=( $_SESSION['producto']['MarcasControl']=='S' );
		$marcas=$_SESSION['producto']['Marcas'];
		
		//12-02-2021
		$obligatoriedadLote=( $_SESSION['producto']['ControlLote']=='S' );
		$obligatoriedadFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' );
							
		$validacionEanDun = eanDunValido($eandun,$_SESSION['producto']['EAN'],$_SESSION['producto']['DUN']);
							
		if($eandun && $validacionEanDun ) $tipoLectura=$validacionEanDun;
	}
			
}

function compruebaCodigoEanDunRegimen($lectura) {

	//echo '<p>Proceso de comprobacion de codigo/ean/dun</p>';

	global $tipoLectura;

	if($_SESSION['entrada']['Regimen']=='GRAL') {

		compruebaCodigoEanDunEnProxium($lectura,NULL);
		
		if($_SESSION['producto']) {
		
			$_SESSION['lecturasTotales']['240']=$lectura;
		}
		else {
		
			$comprobacionEanDun=compruebaCodigoEanDunEnProxium(NULL,$lectura);
			
			if($_SESSION['producto']) {
				if($comprobacionEanDun=='EAN') $_SESSION['lecturasTotales']['02']=$lectura;
				else $_SESSION['lecturasTotales']['01']=$lectura;
			}
			else {
				?>
				<script>
                alert('ATENCIÓN: No ha podido identificarse en Proxium ningún producto con esta información.<br><br>Código leido: <strong><?php echo eanDunError($lectura); ?></strong>',null,'error')
                .done(function(){
                    $('#lecturaGS1').focus();
                });
                </script>
                <?php
				
			}
			
		}
		
	}
	else {
		?>
		<script>
		alert('ATENCIÓN: El producto solicitado no se encuentra previsto en la Entrada.<br>En Regimen <?php echo $_SESSION['entrada']['Regimen']; ?> no está permitido incluir productos no previstos.<br><br>Código <?php if($eandun) { ?>GTIN-14 leido: <strong><?php echo eanDunError($eandun); ?><?php } else { ?>producto leido: <strong><?php echo eanDunError($lectura); ?><?php } ?></strong>',null,'error')
		.done(function(){
			$('#lecturaGS1').focus();
		});
        </script>
		<?php
	}
			
}


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


//17-11-2022 Limpieza caracteres problemáticos en los valores TICKET 22048256
function limpiaCaracteresNoAdmitidos($cadena) {

	$caracteres=array(';','"','#');
	foreach($caracteres as $caracter) $cadena=str_replace($caracter,'',$cadena);
	
	return $cadena;
	
}





//19-05-2026 Multioperario
$gestionMultiOperario=(isset($_SESSION['parametrosSGA']['GestionMultioperarioEntradas']) && $_SESSION['parametrosSGA']['GestionMultioperarioEntradas']=='S' && isset($_SESSION['entrada']['Multioperario']) && $_SESSION['entrada']['Multioperario']=='S');

if ($gestionMultiOperario) {

	//HACEMOS TODA ESTA CARGA PREVIA, PORQUE EN EL CASO DE MULTIOPERARIO ES POSIBLE QUE LOS DATOS NO ESTÉN ACTUALIZADOS

	$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEENTRADA#'.$_SESSION['almacen'].';'.$_SESSION['entrada']['Empresa'].';'.$_SESSION['entrada']['NumEntrada'];
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($_GET['traza']=='si') {
	
		
		echo "<p>Proceso de recarga de entrada por multioperario</p>";
		echo "<p>".$peticion."</p>";
		print_r($resultado);
		echo '<p>FinalizadaTablet: '.$_SESSION['entrada']['FinalizadaTablet'].'</p>';
	}
	
	
	$_SESSION['entrada']=$resultado[0];
	
	//comprobacion adicional de que no la haya cerrado ya otro usuario
	if(isset($_SESSION['entrada']['FinalizadaTablet']) && $_SESSION['entrada']['FinalizadaTablet']=='S') {
	
		?>
		<script>
		alert('ATENCIÓN: Esta entrada ya ha sido confirmada por otro usuario.',null,'advertencia')
		.done(function(){
			$('#popupCargando').show();
			window.location='entradas-mercancia-gs1.php';
		});
		</script>
        <?php
	
	}
	else {
	
		
		$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['entrada']['ListaProductos']);
		$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($resultado[0]['DetallePalets']);
		
		$_SESSION['paletsConProductos']=array();
		$_SESSION['relacionPaletsProxiumCliente']=array();
		
		foreach($_SESSION['productos'] as $producto) {
			$palets=arreglaArrayPXMobileProxiumResult($producto['ProductoPalets']);
			foreach($palets as $palet) if((int)$palet['CantidadLeida']>0) {
				$_SESSION['paletsConProductos'][]=$palet['CodigoPalet'];
				if($palet['IdPaletCliente']) $_SESSION['relacionPaletsProxiumCliente'][$palet['CodigoPalet']]=$palet['IdPaletCliente'];
			}
		}
		
	}

}




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

	if($_SESSION['entradaEsRecepcionCompra']) {
		
		//WSRecepcionComprasTablet#Empresa#Usuario#LECTURARECEPCION#
		//Almacén;Proveedor;NumeroAlbaranProveedor;
		//Pedido;LineaPedido;
		//Producto;Cantidad;Lote;Caducidad;IdPalet;NumSerie;
		//PaletsAdicionales;IdPaletCliente;TipoPalet;IdSubPaletCliente;Ubicacion
		

 

		//Formato del campo PaletsAdicionales:
		
		//IdPalet2@IdPaletCliente2@IdSubPaletCliente2|IdPalet3@IdPaletCliente3@IdSubPaletCliente3|.....

		//En las entradas, el primer palet lo mandas en los campos indiviudales. Lo he montado de la misma forma. Por eso he puesto el 2 y 3 en el ejemplo. El 1 va en la posición 10 de los parámetros.
		
		$peticion='WSRecepcionComprasTablet#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#LECTURARECEPCION#';
				
		$peticion.=$_SESSION['almacen']; //1
		$peticion.=';'.$_SESSION['recepcionCompra']['proveedorCodigo']; //2
		$peticion.=';'.$_SESSION['recepcionCompra']['numAlbaran'];  //3
		
		if($cantidadMultipedido) {
			$peticion.=';'; //4
			$peticion.=';'; //5
		}
		else {
			$peticion.=';'.$_SESSION['producto']['Pedido']; //4
			$peticion.=';'.$_SESSION['producto']['PedidoLinea']; //5
		}
		
		$peticion.=';'.$_SESSION['producto']['Codigo']; //6
		
		if($cantidadMultipedido) {
			$peticion.=';'; //7
		}
		else {
			$peticion.=';'.$cantidad; //7
		}
		
		$peticion.=';'.$lote; //8
		$peticion.=';'.$fechaCaducidad; //9
		$peticion.=';'.$contenedor; //10
		$peticion.=';'.$numerosSerie;  //11
		
		//Palets lectura masiva
		$peticion.=';'.$recepcionMasivaPalet; //12
		
		$peticion.=';'.$paletCliente; //13 
		$peticion.=';'.$nuevoTipoPalet; //14
		$peticion.=';'; //15 idsubplaetcliente 
		
		$peticion.=';'.$ubicacion; //16
		
		$peticion.=';'.$cantidadMultipedido; //17
		
		$peticion.=';'.$_SESSION['entrada']['cargaSeleccionada']; //18
		
		//15-02-2024  TAREA INTERNA 57030 --> posiciones 19, 20 y 21
		$peticion.=';'.$nuevoPaletAncho;
		$peticion.=';'.$nuevoPaletFondo;
		$peticion.=';'.$nuevoPaletAlto;
		
		//$peticion.=';'.$pesajeCaja;
		
		//26-03-2025
		$peticion.=';'.$informarEAN; //posicion 22
		
		
		
		//08-08-2025 Informar si es crossdocking
		//if($vieneDeCrossdockingAgrupado) $datoVieneCrossdocking='S'; else $datoVieneCrossdocking='';
		//$peticion.=';'.$datoVieneCrossdocking; //posicion 23
		if($_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_pedidoVenta']) {
			$peticion.=';'.$_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado'];						//23
			$peticion.=';'.$_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_concepto'];				//24
			$peticion.=';'.$_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_actualizarCantidades'];	//25
			$peticion.=';'.$_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_bultos'];				//26
			$peticion.=';'.$_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_pedidoVenta'];			//27
			$peticion.=';'.$_SESSION['recepcionCompraCrossdocking'][$indiceCrossdocking]['crossdocking_agrupado_ubicacion'];			//28
		}
		else {
			$peticion.=';;;;;;';
		}

	}
	else if($_SESSION['entradaEsDevolucion']) {
	
		//WSLeerLineaDevolucion (EMP,tipoDoc,numDoc,Devolucion,Articulo, ,Idioma,Precinta,IdPalet,Lote,Caducidad,Serie,Cantidad,Almacen,Usuario,Regimen,TipoPalet,AnchoPalet,FondoPalet,AltoPalet,Superficie)
		//WSLeerLineaDevolucion#PXCOT#ALBARAN#24000022#4#PR0002##-#24042300002#-#-##5#3#PMO###
		
		$peticion='WSLeerLineaDevolucion#'.$_SESSION['empresa'].'#ALBARAN#'.$_SESSION['entradaDevolucion']['NumAlbaran'];
				
		$peticion.='#'.$_SESSION['entradaDevolucion']['IdDevolucion'];
		
		$peticion.='#'.$_SESSION['producto']['Codigo'];
		$peticion.='#'.$idioma;
		$peticion.='#'.$precinta;
		$peticion.='#'.$contenedor;
		$peticion.='#'.$lote;
		$peticion.='#'.$fechaCaducidad;
		$peticion.='#'.$numerosSerie;
		$peticion.='#'.$cantidad;
		$peticion.='#'.$_SESSION['almacen'];
		$peticion.='#'.$_SESSION['usuario']['Usuario'];
		$peticion.='#'.$regimen;
		$peticion.='#'.$nuevoTipoPalet;
		$peticion.='#'.$nuevoPaletAncho;
		$peticion.='#'.$nuevoPaletFondo;
		$peticion.='#'.$nuevoPaletAlto;
		$peticion.='#'.$ubicacion; 
		
		//26-03-2025
		//$peticion.='#'.$informarEAN; //ESTO NO LO DESARROLLAMOS

	}
	else {

		$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#LECTURAPRODUCTO#';
		$peticion.=$_SESSION['almacen']; //1
		$peticion.=';'.$_SESSION['entrada']['Empresa']; //2
		$peticion.=';'.$_SESSION['entrada']['NumEntrada']; //3
		$peticion.=';'.$_SESSION['producto']['LineaEntrada']; //4
		$peticion.=';'.$_SESSION['producto']['Codigo']; //5
		$peticion.=';'.$idioma; //6
		$peticion.=';'.$precinta; //7
		$peticion.=';'.$lote; //8
		$peticion.=';'.$fechaCaducidad; //9
		$peticion.=';'.$contenedor; //10
		$peticion.=';'.$cantidad; //11
		$peticion.=';'.$numerosSerie; //12
		$peticion.=';'.$paletCliente; //13
		$peticion.=';'.$pesoNeto; //14
		$peticion.=';'.$nuevoTipoPalet; //15
		$peticion.=';'.$ubicacion; //16
		
		//Puntos de control
		
		/*
		PC1_Tipo_Estado_Observaciones|PC2_Tipo_Estado_Observaciones
	
		LinEnt: número de línea de entrada
		PC: código del punto de control
		Tipo: ESP/FIJO. Es un dato que tienes en la llamada anterior
		Estado: OK/NOOK
		Observaciones: pues eso
		*/
		
		//opcion4-FIJO
		//observaciones4-FIJO
		
		$puntosControl='';
		
		foreach($_POST as $campo=>$valor) {
			if(substr($campo,0,6)=='opcion') {
				$punto=substr($campo,6,strlen($campo));
				$valores=explode('-',$punto);
				$punto_codigo=$valores[0];
				$punto_tipo=$valores[1];
				$punto_estado=$valor;
				$punto_observaciones=$_POST['observaciones'.$punto];
				
				//11-2-2021 añadimos para STG la posibilidad de informar un nuevo valor, con opciones de control (decimal, longitud, tipo dato, etc.=)
				$punto_nuevoValor=$_POST['nuevoValor'.$punto];
				
				if($puntosControl!='') $puntosControl.='|';
				
				//17-11-2022 Limpieza caracteres problemáticos en los valores TICKET 22048256
				$punto_observaciones=limpiaCaracteresNoAdmitidos($punto_observaciones);
				$punto_nuevoValor=limpiaCaracteresNoAdmitidos($punto_nuevoValor);
				
				//PC1_Tipo_Estado_Observaciones
				
				$puntosControl.=$punto_codigo.'_'.$punto_tipo.'_'.$punto_estado.'_'.$punto_observaciones.'_'.$punto_nuevoValor;
			}
		}
		
		$peticion.=';'.$puntosControl; //posicion 17
		
		//POSICION 18: nuevos tres campos para peso (tres separados por comas)
		//$pedirPesoVariable
		
		$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
		//echo '<p>GRABACION pedirPesoVariable: '.$pedirPesoVariable.'</p>';
		
		//24-5-2021 nuevas condiciones bruto/neto
		if($pedirPesoVariable=='W') {
			$pesoVariablePesoBruto=$pesoVariablePesoNeto;
			$pesoVariableTara=0;
		}
		else if($pedirPesoVariable=='B') {
			$pesoVariablePesoNeto=$pesoVariablePesoBruto;
			$pesoVariableTara=0;
		}
		
		$peticion.=';'.formateaNumeroParaProxium($pesoVariablePesoBruto).','.formateaNumeroParaProxium($pesoVariableTara).','.formateaNumeroParaProxium($pesoVariablePesoNeto); //posicion 18
		
		
		
		//POSICION 19: Observaciones para aduana
		$peticion.=';'.$ObsAduana; //posicion 19
		
		//POSICION 20: Marcas
		$peticion.=';'.$marcas; //posicion 20
		
		//POSICION 21: Palets lectura masiva
		$peticion.=';'.$recepcionMasivaPalet; //posicion 21
		
		//22 Sub Id palet cliente Transbidasoa
		$peticion.=';'.$subIdPaletCliente; //posicion 22
		
		//15-02-2024  TAREA INTERNA 57030 --> posiciones 23,24, y 25
		$peticion.=';'.$nuevoPaletAncho;
		$peticion.=';'.$nuevoPaletFondo;
		$peticion.=';'.$nuevoPaletAlto;
		
		
		///// POSICION 26 RESERVADA INTERNAMENTE A PROXIUM, LA LLAMA "LINEA ORIGEN" entendemos que para duplicar lineas o crear lineas nuevas
		
		$peticion.=';';
		
		
		//26-11-2024 Posicion 27, atributos productos fiscales TIBA
		// ejemplo: GR¬42.5|CA¬500|TT¬I|ES¬S
		
		$cadenaCaracteristicas='';
		
		if($_SESSION['producto']['CaracteristicasProducto']) {
		
			$CaracteristicasProducto=arreglaArrayPXMobileProxiumResult($_SESSION['producto']['CaracteristicasProducto']);
        
        	foreach($CaracteristicasProducto as $caracteristica) {
			
				if($cadenaCaracteristicas!='') $cadenaCaracteristicas.='|';
				
				$valorGrabar=$_POST['caracteristica-'.$caracteristica['Codigo']];
				
				if($caracteristica['Tipo']==1) $valorGrabar=formateaNumeroParaProxium($valorGrabar); //convertir numeros
				
				$cadenaCaracteristicas.=$caracteristica['Codigo'].'¬'.$valorGrabar;
			}
			
			$cadenaCaracteristicas = iconv('UTF-8','ISO-8859-1',$cadenaCaracteristicas);
			$cadenaCaracteristicas = base64_encode($cadenaCaracteristicas);

		}
		
		$peticion.=';'.$cadenaCaracteristicas; //posicion 27
		
		
		$peticion.=';'.$pesajeCaja; //posicion 28 id de caja de pesaje
		
		//26-03-2025
		$peticion.=';'.$informarEAN; //posicion 29
		
		//posicion 30 está ocupada en rutina, posiblemente por alguna integracion que no viene de tablet
		$peticion.=';';
		
		//21-10-2025
		$peticion.=';'.$estadoProducto; //posicion 31
		
	
	} //Fin peticion grabacion general ENTRADA ALMACEN (no recepcion compra)
	
	
	///////////////////////////////////////////////////
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	//echo '<p>Traza 1</p>';
	//echo '<p>Peticion: '.$peticion.'</p>';
	//print_r($resultado);
	//echo '<p>Traza 2</p>';

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

	
	if($_GET['traza']=='si') {
	
		echo "<p>Todos los POST recibidos:</p>";
		print_r($_POST);
		
		echo '<p>Cadena de puntos de control final:</p>';
		echo $puntosControl;
		
		echo "<p>Proceso de grabación de entrada</p>";
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	
	$valores=explode('#',$resultado[0]['Error']);
	
	/// [Error]='1#No se ha podido procesar';
	/// [Error]='0#Proceso correcto';
	/// [Error]='3#Proceso correcto a medfias#Pero...';
	
	if($valores[0]=='0') {
	
		unset($numerosSerieRecuperar); //Para que no los vuelva a pintar si se queda en la misma pantalla, porque queda producto por leer.
	
		?>
		<script>
		alert('Lectura realizada correctamente.',null,'ok')
		.done(function(){
		
		
		//9-7-2020 controlamos las cantidades leidas para decidir si reiniciar
		
			<?php
			
			
			
			//11-11-2021 Multiplicamos la cantidad para controlar, ya que en caso de palets masivos no volvía al inicio. Porque la cantidad se envía la individual
			if($recepcionMasivaPalet) $temp=explode('|',$recepcionMasivaPalet);
			$cuantosPalets=1;
			foreach($temp as $item) if($item!='') $cuantosPalets++;
			$cantidad=$cantidad*$cuantosPalets;
			
			
			
			if($_SESSION['entradaEsRecepcionCompra']) {
			
				//$quedaPorLeer=( ($_SESSION['producto']['CantidadNuevoPendiente']-$cantidad) > 0 );
				$quedaPorLeer=true;
				
			}
			else if($_SESSION['entradaEsDevolucion']) {
			
				$quedaPorLeer=true;
			}
			else {
			
				$quedaPorLeer=( $_SESSION['producto']['Leido']+$cantidad >= $_SESSION['producto']['Cantidad'] );

			}
			
			if( $quedaPorLeer ) {
			
				unset( $_SESSION['producto'] ); //Si la cantidad es mayor o igual a la propuesta, reiniciamos el producto actual
				
				if($_SESSION['entradaEsRecepcionCompra']) {
					$modoLectura=$_SESSION['modoslecturaRecepcionCompra'][$_SESSION['recepcionCompra']['numAlbaran']];
				}
				else if($_SESSION['entradaEsDevolucion']) {
					$modoLectura=$_SESSION['modoslecturaEntradaDevolucion'][$_SESSION['entradaDevolucion']['NumAlbaran']];
				}
				else {
					$modoLectura=$_SESSION['modoslecturaEntradas'][$_SESSION['entrada']['NumEntrada']];
				}
			
				if( $modoLectura=='L') { //Si el modo selecion es listado, volvemos
				
					?>
					
					$('#popupCargando').show();
					<?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
					window.location='recepcion-compra.php';
					<?php } else if($_SESSION['entradaEsDevolucion']) { ?>
					window.location='entrada-devolucion.php';
					<?php } else { ?>
					window.location='entrada-mercancia-gs1.php';
					<?php } ?>
					<?php
				
				}
				else { //Si no es listado, comprobamos que si no queda ningun producto para volver 17-5-2021 segun peticion de ADM
				
					//Recarga de datos
					
					if($_SESSION['entradaEsRecepcionCompra']) {
					
						$peticion='WSRecepcionComprasTablet#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#PRODUCTOSPROVEEDOR#'.$_SESSION['almacen'].';'.$_SESSION['recepcionCompra']['proveedorCodigo'].';'.fechaParaProxium(fechaMysql($_SESSION['recepcionCompra']['fechaRecepcion'])).';'.$_SESSION['recepcionCompra']['numAlbaran'].';'.fechaParaProxium(fechaMysql($_SESSION['recepcionCompra']['fechaAlbaran']));
						$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
						$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosPendientes']);
						$_SESSION['productosLeidos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosLeidos']);
						$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($resultado[0]['DetallePalets']);
					
						$estaTodoLeido=true;
					
						//05-04-2023 quito esto para que siempre vuelva
						//foreach($_SESSION['productos'] as $item) if($item['CantidadNuevoPendiente']>0) $estaTodoLeido=false;
						
						foreach($_SESSION['productosLeidos'] as $producto) {
							$_SESSION['paletsConProductos'][]=$producto['CodigoPalet'];
						}
					
					}
					else if($_SESSION['entradaEsDevolucion']) {
					
						$peticion='WSGetProductosPendientesDevolucion#'.$_SESSION['empresa'].'#ALBARAN#'.$_SESSION['entradaDevolucion']['NumAlbaran'].'#'.'#'.$_SESSION['almacen'];
						$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
						$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosPendientes']);
						$_SESSION['productosLeidos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosLeidos']);
						$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($resultado[0]['DetallePalets']);
					
						$estaTodoLeido=true;
					
						//05-04-2023 quito esto para que siempre vuelva
						//foreach($_SESSION['productos'] as $item) if($item['CantidadNuevoPendiente']>0) $estaTodoLeido=false;
						
						foreach($_SESSION['productosLeidos'] as $producto) {
							$_SESSION['paletsConProductos'][]=$producto['CodigoPalet'];
						}
					
					}
					else {
					
						$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEENTRADA#'.$_SESSION['almacen'].';'.$_SESSION['entrada']['Empresa'].';'.$_SESSION['entrada']['NumEntrada'];
						$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
						
						$_SESSION['entrada']=$resultado[0];
						$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['entrada']['ListaProductos']);
						$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($resultado[0]['DetallePalets']);
					
						$estaTodoLeido=true;
					
						foreach($_SESSION['productos'] as $item) if($item['Leido']!=$item['Cantidad']) $estaTodoLeido=false;
					
					}
					
					if($estaTodoLeido) {
					
						?>
						$('#popupCargando').show();
						<?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
						window.location='recepcion-compra.php';
						<?php } else if($_SESSION['entradaEsDevolucion']) { ?>
						window.location='entrada-devolucion.php';
						<?php } else { ?>
						window.location='entrada-mercancia-gs1.php';
						<?php } ?>
						<?php
					}
					else {
					
					
						//19-02-2024 si se hubieran cambiado los atributos del palet, la sessión de chincheta (fijar palet), cambian los datos, porque volveria a mostrar los anteriores
						
						if($_SESSION['entradaPaletActual']==$contenedor) { //Si no se ha cambiado el palet, y es el de la chincheta, se cogen los ultimos datos grabados
						
							$_SESSION['entradaPaletActualTipo']=$nuevoTipoPalet;
							//$_SESSION['entradaPaletActualEsChep']=$_POST['esChep']; esto no lo sabemos
							$_SESSION['entradaPaletActualUbicacion']=$ubicacion;
							
							$_SESSION['entradaPaletActualAncho']=$nuevoPaletAncho;
							$_SESSION['entradaPaletActualAlto']=$nuevoPaletAlto;
							$_SESSION['entradaPaletActualFondo']=$nuevoPaletFondo;
							
							$_SESSION['entradaPaletActualIdPaletCliente']=$paletCliente;

						}
					
					}
					
				}

			}
			
			?>
				
			<?php if(!$_SESSION['entradaPaletActual'] && $requierePaletizar) { ?>
			$('#contenedor').focus();
			<?php } else { ?>
			$('#lecturaGS1').focus();
			<?php } ?>
		
		});
		</script>
        <?php

		
		unset( $_SESSION['lecturasTotales'] );
		unset( $_SESSION['lecturasGS1'] );
		unset( $_SESSION['lecturasTemporalesGS1'] );
		$contenedor='';
		
		unset( $_POST );
		
		
		//66666666666666666666666666666666666
		

		//Recargamos los datos de cabecera
		
		
		
		//27-8-2019 creo un nuevo array con los palets utilizados, para poder pintar en rojo los no utilizados
		$_SESSION['paletsConProductos']=array();
		//Array para relacionar ids de palet proxium-cliente
		$_SESSION['relacionPaletsProxiumCliente']=array();
		
		//echo "<p>Nueva carga de cabecera de entrada</p>";
		
		if($_SESSION['entradaEsRecepcionCompra']) {
		
			$peticion='WSRecepcionComprasTablet#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#PRODUCTOSPROVEEDOR#'.$_SESSION['almacen'].';'.$_SESSION['recepcionCompra']['proveedorCodigo'].';'.fechaParaProxium(fechaMysql($_SESSION['recepcionCompra']['fechaRecepcion'])).';'.$_SESSION['recepcionCompra']['numAlbaran'].';'.fechaParaProxium(fechaMysql($_SESSION['recepcionCompra']['fechaAlbaran']));
			
			$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
			$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($resultado[0]['DetallePalets']);
			$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosPendientes']);
			$_SESSION['productosLeidos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosLeidos']);
			
			foreach($_SESSION['productos'] as $item)  {
				if($item['Pedido']==$_SESSION['producto']['Pedido'] && $item['PedidoLinea']==$_SESSION['producto']['PedidoLinea']) $_SESSION['producto']=$item;
			}
			
			foreach($_SESSION['productosLeidos'] as $producto) {
				$_SESSION['paletsConProductos'][]=$producto['CodigoPalet'];
			}
		
		}
		else if($_SESSION['entradaEsDevolucion']) { //Esto son devolución de COMPRA
		
			$peticion='WSGetProductosPendientesDevolucion#'.$_SESSION['empresa'].'#ALBARAN#'.$_SESSION['entradaDevolucion']['NumAlbaran'].'#'.'#'.$_SESSION['almacen'];
			
			$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
			$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($resultado[0]['DetallePalets']);
			$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosPendientes']);
			$_SESSION['productosLeidos']=arreglaArrayPXMobileProxiumResult($resultado[0]['ProductosLeidos']);
			
			foreach($_SESSION['productos'] as $item)  {
				if($item['NLinea']==$_SESSION['producto']['NLinea']) $_SESSION['producto']=$item;
			}
			
			foreach($_SESSION['productosLeidos'] as $producto) {
				$_SESSION['paletsConProductos'][]=$producto['CodigoPalet'];
			}
		
		}
		else {
		
			$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEENTRADA#'.$_SESSION['almacen'].';'.$_SESSION['entrada']['Empresa'].';'.$_SESSION['entrada']['NumEntrada'];
			
			$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
			$_SESSION['entrada']=$resultado[0];
			$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($_SESSION['entrada']['DetallePalets']);
			$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['entrada']['ListaProductos']);
		
			//5-2-2021 para mostrar la columna info por linea / obs aduana
			$_SESSION['entrada']['mostrarObservacionesAduana']=($_SESSION['entrada']['Regimen']=='DA' || $_SESSION['entrada']['Regimen']=='DDA' || $_SESSION['entrada']['Regimen']=='ADT' || $_SESSION['entrada']['Regimen']=='LAME');

			//9-7-2020 volvemos a buscar el producto para actualizar, por las cantidades "leidas"
			foreach($_SESSION['productos'] as $item)  {
				if($item['LineaEntrada']==$_SESSION['producto']['LineaEntrada']) $_SESSION['producto']=$item;
			}
			
			foreach($_SESSION['productos'] as $producto) {
				$palets=arreglaArrayPXMobileProxiumResult($producto['ProductoPalets']);
				foreach($palets as $palet) if((int)$palet['CantidadLeida']>0) {
					$_SESSION['paletsConProductos'][]=$palet['CodigoPalet'];
					if($palet['IdPaletCliente']) $_SESSION['relacionPaletsProxiumCliente'][$palet['CodigoPalet']]=$palet['IdPaletCliente'];
				}
			}
			
		}


		
	}
	else if($valores[0]=='3') { //22-04-2026 Control de NS internos mal informados
	
		
		$NSinternosErroneos=explode(';',$valores[2]);
		$errorPintar=$valores[1].'<br><br>';
		foreach($NSinternosErroneos as $item) $errorPintar.='<strong>'.$item.'</strong><br>';
		
		?><script>alert('Error:<br><?php echo $errorPintar; ?>',null,'error');</script><?php
	
	}
	else {
	
		$errorPintar=$valores[1];
		
		$errorPintar=str_replace('¬','<br>',$errorPintar);
	
		?><script>alert('Error:<br><?php echo $errorPintar; ?>',null,'error');</script><?php
		
		$numerosDeSerieError=array();
		$tempNS=explode(')',$errorPintar);
		foreach($tempNS as $itemNS) {
			if($itemNS) {
				$tempNS2=explode('(',$itemNS);
				if($tempNS2) $numerosDeSerieError[]=$tempNS2[1];
			}
		}
		//echo '<p>Numeros de serie a recuperar:</p>';
		//print_r($numerosDeSerieError);
	
		//SE PRODUCE UN ERROR EN LA GRABACIÓN
		//SE MANTIENE EL PRODUCTO ACTUAL
		
		$codigoProducto=$_SESSION['producto']['Codigo'];
		$cantidad=$_SESSION['producto']['Cantidad'];
		$cantidadCajas=$_SESSION['producto']['CantidadCajas'];
		$embalajePrimarioCaja=$_SESSION['producto']['EmbalajePrimarioCaja'];
		
		if($_SESSION['entradaEsRecepcionCompra']) {
			$leido=$_SESSION['producto']['CantidadEnRecepcion'];
		}
		else {
			$leido=$_SESSION['producto']['Leido'];
		}
		
		//$ObsAduana=$_SESSION['producto']['ObsAduana'];
			
		$pedirLote=( $_SESSION['producto']['ControlLote']=='S' || $_SESSION['producto']['ControlLote']=='SOP' );
		$pedirIdioma=( $_SESSION['producto']['ControlIdioma']=='S' );
		$pedirPrecinta=( $_SESSION['producto']['ControlPrecinta']=='S' );
		$pedirFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' || $_SESSION['producto']['ControlFechaCaducidad']=='SOP' );
		
		$pedirNumSerie=( $_SESSION['producto']['ControlNumSerie']=='S' || $_SESSION['producto']['GestionNumSerieInterno']=='I'  );
		//27-01-2026
		if($_SESSION['entrada']['GestNumSerSal']=='S' || $_SESSION['entrada']['GestNumSerSal']=='C') $pedirNumSerie=false;
		
		//23-06-2020
		$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
		
		//11-02-2021
		$pedirMarcas=( $_SESSION['producto']['MarcasControl']=='S' );
		$marcas=$_SESSION['producto']['Marcas'];
		
		//12-02-2021
		$obligatoriedadLote=( $_SESSION['producto']['ControlLote']=='S' );
		$obligatoriedadFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' );
		
		
		//If masiva palets
		if($recepcionMasivaPalet) $recargaResumenPalets=true;
		else $recargaResumenPalets=false;

		

	}
	

}
else { // NO procede de la lectura PLAY de entrada. PROCEDEMOS A ANALIZAR LAS LECTURAS Y BUSCAR EL PRODUCTO

	//echo "<p>No venimos de un play de lectura</p>";
	

	if( ( ( $_SESSION['entradaEsDevolucion'] && isset($_GET['NLinea']) ) || ( !$_SESSION['entradaEsDevolucion'] && !$_SESSION['entradaEsRecepcionCompra'] && isset($_GET['lineaentrada']) ) || ( $_SESSION['entradaEsRecepcionCompra'] && isset($_GET['pedido']) && isset($_GET['pedidoLinea']) ) ) && !$_POST['lecturaGS1'] ) {
	
		//echo "<p>Venimos desde el principio, de un selector desde el listado de produtos</p>";
	
		//Buscamos el producto
		foreach($_SESSION['productos'] as $item)  {
			if($_SESSION['entradaEsRecepcionCompra']) {
				if($item['Pedido']==$_GET['pedido'] && $item['PedidoLinea']==$_GET['pedidoLinea']) $_SESSION['producto']=$item;
			}
			else if($_SESSION['entradaEsDevolucion']) {
				if($item['NLinea']==$_GET['NLinea']) $_SESSION['producto']=$item;
			}
			else {
				if($item['LineaEntrada']==$_GET['lineaentrada']) $_SESSION['producto']=$item;
			}
		}
		
		if(isset($_SESSION['producto'])) { //Se ha encontrado
			
			$codigoProducto=$_SESSION['producto']['Codigo'];
			$cantidad=$_SESSION['producto']['Cantidad'];
			$cantidadCajas=$_SESSION['producto']['CantidadCajas'];
			$embalajePrimarioCaja=$_SESSION['producto']['EmbalajePrimarioCaja'];
			
			if($_SESSION['entradaEsRecepcionCompra']) {
				$leido=$_SESSION['producto']['CantidadEnRecepcion'];
			}
			else if($_SESSION['entradaEsDevolucion']) {
				$leido=$_SESSION['producto']['CantidadLeida']+$_SESSION['producto']['CantidadConfirmada'];
			}
			else {
				$leido=$_SESSION['producto']['Leido'];
			}
			
			$ObsAduana=$_SESSION['producto']['ObsAduana'];
			
			$pedirLote=( $_SESSION['producto']['ControlLote']=='S' || $_SESSION['producto']['ControlLote']=='SOP' );
			$pedirIdioma=( $_SESSION['producto']['ControlIdioma']=='S' );
			$pedirPrecinta=( $_SESSION['producto']['ControlPrecinta']=='S' );
			$pedirFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' || $_SESSION['producto']['ControlFechaCaducidad']=='SOP' );
			
			$pedirNumSerie=( $_SESSION['producto']['ControlNumSerie']=='S' || $_SESSION['producto']['GestionNumSerieInterno']=='I' );
			//27-01-2026
			if($_SESSION['entrada']['GestNumSerSal']=='S' || $_SESSION['entrada']['GestNumSerSal']=='C') $pedirNumSerie=false;
			
			//23-06-2020
			$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
			
			//11-02-2021
			$pedirMarcas=( $_SESSION['producto']['MarcasControl']=='S' );
			$marcas=$_SESSION['producto']['Marcas'];
			
			//12-02-2021
			$obligatoriedadLote=( $_SESSION['producto']['ControlLote']=='S' );
			$obligatoriedadFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' );
			
			if(!$_POST['lecturaGS1']) unset($_SESSION['lecturasGS1']);

		}
	
	}
	else if( ( $_SESSION['lecturasGS1']['eanDun'] || $_SESSION['lecturasGS1']['codigo'] ) && !$_SESSION['producto']) { //Se ha leido primero un código y debemos buscar de qué producto se trata
		
		//echo '<p>Hay una lectura GS1 con codigo o Eandun y no hay producto seleccionado.</p>';
		
		compruebaCodigoEanDunEnListado($_SESSION['lecturasGS1']['codigo'],NULL);
		
		if(!$_SESSION['producto']) {
		
			$comprobacionEanDun=compruebaCodigoEanDunEnListado(NULL,$_SESSION['lecturasGS1']['eanDun']);
			
			//17-04-2025 modificada la condición por TICKET 25066219
			if(!$_SESSION['producto']) {
				if( !$_SESSION['entradaEsRecepcionCompra'] && !$_SESSION['entradaEsDevolucion']) { //Solo si es entrada de mercancía, si no se ha encontrado el producto, se buscará en Proxium
					
					if($_SESSION['lecturasGS1']['codigo']) compruebaCodigoEanDunRegimen($_SESSION['lecturasGS1']['codigo']);
					else compruebaCodigoEanDunRegimen($_SESSION['lecturasGS1']['eanDun']);
					
				}
				else {
					?><script>alert('Producto no encontrado.',null,'error');</script><?php
				}
			}
			
		}
			
	}
	else if($_POST['lecturaDesconocida'] || $posibleEANenGs1) {
	
		if($posibleEANenGs1) $campoLecturaDesconocida=$posibleEANenGs1;
		else $campoLecturaDesconocida=$_POST['lecturaDesconocida'];
	
		//echo '<p>PROCESO LECTURA DESCONOCIDA</p>';
		//echo '<p>Campo de lectura desconocida: '.$campoLecturaDesconocida.'</p>';
		
		compruebaCodigoEanDunEnListado($campoLecturaDesconocida,NULL);
		
		//echo '<p>Primera comprobación:</p>';
		//print_r($_SESSION['producto']);
		
		if(!$_SESSION['producto']) {
		
			$comprobacionEanDun=compruebaCodigoEanDunEnListado(NULL,$campoLecturaDesconocida);
			
			//echo '<p>Segunda comprobación:</p>';
			//print_r($_SESSION['producto']);
			
			//17-04-2025 modificada la condición por TICKET 25066219
			if(!$_SESSION['producto']) {
				if( !$_SESSION['entradaEsRecepcionCompra'] && !$_SESSION['entradaEsDevolucion']) { //Solo si es entrada de mercancía, si no se ha encontrado el producto, se buscará en Proxium
					
					compruebaCodigoEanDunRegimen($campoLecturaDesconocida);
					
					//echo '<p>Tercera comprobación:</p>';
					//print_r($_SESSION['producto']);
					
				}
				else if(!$posibleEANenGs1) { //Solo mostramos el error si no es un posible EAN "oculto" en la lectura gs1
					?><script>alert('Producto no encontrado.',null,'error');</script><?php
				}
			}
			
		}
		
		//echo '<p>Fin de comprobacion EAN</p>';
		
		if($posibleEANenGs1 && $_SESSION['producto']) { //En el caso que haya lectura gs1 correctas, pero casualmente las lecturas coincidan con un EAN, las borramos, ya que se habrá encontrado un producto
			//echo '<p>BORRAMOS EL GS1</p>';
			unset($_SESSION['lecturasGS1']);
			unset($_SESSION['lecturasTemporalesGS1']);
			unset($_SESSION['lecturasTotales']);
		}
	}
	else {
	
		//No cambia nada, puede proceder de una lectura de datos sueltos
		
		
	}
	
}








/////////////////////////////////////////////////////////////////////////////////////
///// 9-12-2019 Si se lee un codigo (02) siempre lleva el (37) se supone que son cajas y debe multiplicar por el embalaje primario, que puede estar vacío
if( $_SESSION['producto'] && $_SESSION['lecturasTotales']['02']!='' ) {
	$tipoLectura='DUN';
	if( is_null($_SESSION['producto']['EmbalajePrimarioCaja']) || $_SESSION['producto']['EmbalajePrimarioCaja']=='' ) $_SESSION['producto']['EmbalajePrimarioCaja']=1;
}
/////////////////////////////////////////////////////////////////////////////////////


if($_SESSION['producto']) {

	if($_GET['traza']=='si') {
		echo '<p>Info del producto:</p>';
		print_r($_SESSION['producto']);
	}

	//// METEMOS A PIÑON QUE SOLO SE LEAN CAJAS, PARA NO LIAR Y CONFUNDIR CON LA GESTION INTERNA DE PROXIUM DE UNIDADES PRIMARRIAS ETC
	$etiqueta="Unidades";
	$cajas=false;

	

	
	$numerosSerie=arreglaArrayPXMobileProxiumResult($_SESSION['producto']['NumerosSerie']);
	
	//echo '<p>EANs:</p>';
	//print_r($_SESSION['producto']['EAN']);
	//echo '<p>DUNs:</p>';
	//print_r($_SESSION['producto']['DUN']);
	
	$codigoProducto=$_SESSION['producto']['Codigo'];
	
	$cantidad=$_SESSION['producto']['Cantidad'];
	$cantidadCajas=$_SESSION['producto']['CantidadCajas'];
	$embalajePrimarioCaja=$_SESSION['producto']['EmbalajePrimarioCaja'];
	
	if($_SESSION['entradaEsRecepcionCompra']) {
		$leido=$_SESSION['producto']['CantidadEnRecepcion'];
	}
	else if($_SESSION['entradaEsDevolucion']) {
		$leido=$_SESSION['producto']['CantidadLeida']+$_SESSION['producto']['CantidadConfirmada'];
	}
	else {
		$leido=$_SESSION['producto']['Leido'];
	}
			
	$pedirLote=( $_SESSION['producto']['ControlLote']=='S' || $_SESSION['producto']['ControlLote']=='SOP' );
	$pedirIdioma=( $_SESSION['producto']['ControlIdioma']=='S' );
	$pedirPrecinta=( $_SESSION['producto']['ControlPrecinta']=='S' );
	$pedirFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' || $_SESSION['producto']['ControlFechaCaducidad']=='SOP' );
	
	$pedirNumSerie=( $_SESSION['producto']['ControlNumSerie']=='S' || $_SESSION['producto']['GestionNumSerieInterno']=='I' );
	//27-01-2026
	if($_SESSION['entrada']['GestNumSerSal']=='S' || $_SESSION['entrada']['GestNumSerSal']=='C') $pedirNumSerie=false;
	
	//23-06-2020
	$pedirPesoVariable=( $_SESSION['producto']['GestionPesoVariable'] );
	
	//11-02-2021
	$pedirMarcas=( $_SESSION['producto']['MarcasControl']=='S' );
	$marcas=$_SESSION['producto']['Marcas'];
	
	//12-02-2021
	$obligatoriedadLote=( $_SESSION['producto']['ControlLote']=='S' );
	$obligatoriedadFechaCaducidad=( $_SESSION['producto']['ControlFechaCaducidad']=='S' );
	
	
	if($_SESSION['verEnCajas']=='S' && $_SESSION['producto']['EmbalajePrimarioCaja'] && !$pedirNumSerie) $mostrarCajas=true;

	
	
	
	$recepcionMasivaPalets=($_SESSION['parametrosSGA']['RecepcionMasivaPalet']=='S' && $contenedor && !$pedirNumSerie);
	
	$controlPesaje=( $_SESSION['producto']['ControlPesaje']=='S' );
	
	
	//Modificaciones sobre parametros generales
	if($controlPesaje) {
		$obligatorioPaletizar=false;
		$pedirUbicacion=false;
		$recepcionMasivaPalets=false; //No se puede recibir varios palets iguales si hay que poner ids a las cajas
	}
	else {
		$obligatorioPaletizar=true;
	}
	
	
	
	
	if( !$controlPesaje && ( $mostrarCajas && $tipoLectura!='EAN' ) ) {
		$etiqueta="Cajas";
		$etiquetaInversa="Unidades";
		$cajas=true;
	}
	else {
		$etiqueta="Unidades";
		$etiquetaInversa="Cajas";
		$cajas=false;
	}
	
	
	//29-08-2025 TAREA 68689 recepcion compra crossdocking
	if($vieneDeCrossdockingAgrupado) {
		$pedirLote=false;
		$pedirIdioma=false;
		$pedirPrecinta=false;
		$pedirFechaCaducidad=false;
	}

}

?>
        
<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 pedirPaletCliente=<?php if($pedirPaletCliente) echo 'true'; else echo 'false'; ?>;
	var pedirSubIdPaletCliente=<?php if($pedirSubIdPaletCliente) echo 'true'; else echo 'false'; ?>;	
	var pedirLote=<?php if($pedirLote) echo 'true'; else echo 'false'; ?>;
	var pedirPesoNeto=<?php if($pedirPesoNeto) echo 'true'; else echo 'false'; ?>;
	var pedirIdioma=<?php if($pedirIdioma) echo 'true'; else echo 'false'; ?>;
	var pedirPrecinta=<?php if($predirPrecinta) echo 'true'; else echo 'false'; ?>;
	var pedirFechaCaducidad=<?php if($pedirFechaCaducidad) echo 'true'; else echo 'false'; ?>;
	var pedirNumSerie=<?php if($pedirNumSerie) echo 'true'; else echo 'false'; ?>;	
	var pedirUbicacion=<?php if($pedirUbicacion) echo 'true'; else echo 'false'; ?>
	
	var pedirPesoVariable=<?php if($pedirPesoVariable) echo "'".$pedirPesoVariable."'"; else echo 'false'; ?>;
		
	var secuenciaCampos=new Array();
		
	function inicializaSecuencia() {
		
		secuenciaCampos=[];
		
		secuenciaCampos.push('contenedor');
		
		<?php if( $_SESSION['entrada']['VisibCodBarras']=='S' || !$_SESSION['producto'] ) { ?>
		secuenciaCampos.push('lecturaGS1');
		<?php } ?>
		
		<?php if($pedirPaletCliente) { ?>secuenciaCampos.push('paletCliente');<?php } ?>
		<?php if($pedirSubIdPaletCliente) { ?>secuenciaCampos.push('subIdPaletCliente');<?php } ?>
		<?php if($pedirLote) { ?>secuenciaCampos.push('lote');<?php } ?>
		<?php if($pedirFechaCaducidad) { ?>secuenciaCampos.push('fechaCaducidad');<?php } ?>
		
		
		/*<?php if($pedirIdioma) { ?>secuenciaCampos.push('idioma');<?php } ?>*/
		/*<?php if($pedirPrecinta) { ?>secuenciaCampos.push('precinta');<?php } ?>*/
		
		<?php if($pedirNumSerie) { ?>secuenciaCampos.push('lecturaNS-1');<?php } ?>
		
		
		<?php if($_SESSION['producto']) { ?>secuenciaCampos.push('cantidad');<?php } ?>
		
		
		<?php if($pedirPesoNeto) { ?>secuenciaCampos.push('pesoNeto');<?php } ?>
		
		//pedirPesoVariable = '<?php echo $pedirPesoVariable; ?>'
		
		<?php if($pedirPesoVariable=='S' || $pedirPesoVariable=='B'  || $pedirPesoVariable=='BN') { ?>secuenciaCampos.push('pesoVariablePesoBruto');<?php } ?>
		<?php if($pedirPesoVariable=='S') { ?>secuenciaCampos.push('pesoVariableTara');<?php } ?>
		<?php if($pedirPesoVariable=='W' || $pedirPesoVariable=='BN') { ?>secuenciaCampos.push('pesoVariablePesoNeto');<?php } ?>
		
		<?php if($pedirUbicacion) { ?>secuenciaCampos.push('ubicacion');<?php } ?>

	}
		
	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;
	}
	
	var numerosSerieLeidosAnteriormente=new Array();
	
	<?php foreach($numerosSerie as $numeroSerie) { ?>
	numerosSerieLeidosAnteriormente.push('<?php echo $numeroSerie['NumeroSerie']; ?>');
	<?php } ?>
	
	<?php foreach($_SESSION['productosLeidos_NumerosSerie'] as $numeroSerie) { //25-02-2026 añadimos tambien los que estan en proceso, incluso en otro producto del mismo proceso ?>
	numerosSerieLeidosAnteriormente.push('<?php echo $numeroSerie; ?>');
	<?php } ?>
	
	
	var relacionPaletsProxiumCliente=[];
	<?php foreach($_SESSION['relacionPaletsProxiumCliente'] as $codigoPalet=>$idPaletcliente) { ?>
	relacionPaletsProxiumCliente['<?php echo $codigoPalet; ?>']='<?php echo $idPaletcliente; ?>';
	<?php } ?>
		
</script>

<?php

if($_GET['traza']=='si') {
	echo '<p>EmbalajePrimarioCaja: '.$_SESSION['producto']['EmbalajePrimarioCaja'].'</p>';
	echo '<p>pedirPesoVariable: '.$pedirPesoVariable.'</p>';
	echo '<p>pedirMarcas: '.$pedirMarcas.'</p>';
	echo '<p>seleccionTipoPaletEntrada: '.$_SESSION['seleccionTipoPaletEntrada'].'</p>';
	echo '<p>RequiereDimensionesPalets: '.$_SESSION['entrada']['RequiereDimensionesPalets'].'</p>';
	echo '<p>Parámetro DobleLecturaUbicacion: '.$_SESSION['parametrosSGA']['DobleLecturaUbicacion'].'</p>';
	echo '<p>Parámetro ConfigUbiNivelSeparador: '.$_SESSION['parametrosSGA']['ConfigUbiNivelSeparador'].'</p>';
	echo '<p>Parámetro ConfigUbiNivelTamanyoID: '.$_SESSION['parametrosSGA']['ConfigUbiNivelTamanyoID'].'</p>';
	echo '<p>Parámetro ConfigUbiNivelAutocompletarEspacios: '.$_SESSION['parametrosSGA']['ConfigUbiNivelAutocompletarEspacios'].'</p>';
    echo '<p>Parámetro ConfigUbiNivelCaracterAutocompletar: '.$_SESSION['parametrosSGA']['ConfigUbiNivelCaracterAutocompletar'].'</p>';
	echo '<p>Parámetro ConfigUbiNivelAlineacion: '.$_SESSION['parametrosSGA']['ConfigUbiNivelAlineacion'].'</p>';
	echo "Borrar la altura de la lectura de ubicación desde el scanner (porque está preinformada en la etiqueta): ".$borrarAlturaDeUbicacionScanner."<br>";
}

?>

<?php if($requierePaletizar) { ?>

<?php //print_r($_SESSION['palets']); ?>

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

	<div class="pestanya" id="pestanyaListadoPalets">
		<div class="pestanyaEtiqueta" id="etiquetaListadoPalets">Selector de Palets</div>
        <div class="pestanyaContenido" style="text-align:center" >
        	
            <div id="contenidoPaletsListado">
            
            <table cellpadding="5" style="margin: 0 auto">
            
            <?php  foreach($_SESSION['palets'] as $palet) { ?>
            
            	<?php if($palet['EsCaja']!='S') { ?>
            
            	<tr>
                	<td>
                        <h2 id="itemPalet<?php echo $palet['CodigoPalet']; ?>" idPalet="<?php echo $palet['CodigoPalet']; ?>" tipoPalet="<?php echo $palet['TipoPalet']; ?>" fondo="<?php echo $palet['Fondo']; ?>" alto="<?php echo $palet['Alto']; ?>" ancho="<?php echo $palet['Ancho']; ?>" esChep="<?php echo $_SESSION['tiposPalet'][$palet['TipoPalet']]['CHEP']; ?>" ubicacion="<?php echo $palet['UbicacionPalet']; ?>" idPaletCliente="<?php echo $palet['IdPaletCliente']; ?>" seleccionado="<?php if($_SESSION['entradaPaletActual']==$palet['CodigoPalet']) { ?>si<?php } else { ?>no<?php } ?>" class="selectorPaletSuperior" style="margin:20px">
                        <span class="selectorPalet clicable <?php if(!in_array($palet['CodigoPalet'],$_SESSION['paletsConProductos'])) {?>error<?php } ?>" ><?php echo $palet['CodigoPalet']; ?></span>
                        </h2>
                        
                        <?php if( $_SESSION['relacionPaletsProxiumCliente'][$palet['CodigoPalet']] ) { echo $_SESSION['relacionPaletsProxiumCliente'][$palet['CodigoPalet']]; } ?>
                        <?php
                        if($_SESSION['relacionPaletsProxiumClienteSubId'][$palet['CodigoPalet']]) { 
							?><br /><?php echo $_SESSION['relacionPaletsProxiumClienteSubId'][$palet['CodigoPalet']]; ?><?php
						}
						?>
                    </td>
                    <td>
                        <?php if($_SESSION['entradaPaletActual']==$palet['CodigoPalet']) { ?>
                        <img class="imagenPaletSeleccionado selectorPalet clicable selectorPaletDesfijar" id="imagenPaletSeleccionado<?php echo $palet['CodigoPalet']; ?>" src="<?php echo DIR_IMAGENES; ?>/palet-fijar.png" width="47" />
                        <?php } else { ?>
                        <img class="imagenPaletSeleccionado selectorPalet clicable selectorPaletDesfijar" id="imagenPaletSeleccionado<?php echo $palet['CodigoPalet']; ?>" src="" width="47" />
                        <?php } ?>
                    </td>
                    <td>
						<?php if(!in_array($palet['CodigoPalet'],$_SESSION['paletsConProductos'])) { ?>
                        <img id="borrarPalet<?php echo $palet['CodigoPalet']; ?>" palet="<?php echo $palet['CodigoPalet']; ?>" src="<?php echo DIR_IMAGENES; ?>/x.png" width="67" class="borrarPalet clicable"/>
                        <?php } ?>
                    </td>
                    
                    <?php if( $_SESSION['seleccionTipoPaletEntrada'] ) { ?>
                    
                    	<?php if( $_SESSION['entrada']['RequiereDimensionesPalets']=='S' ) {  //15-02-2024 se oculta si requiere dimensiones, porque entraria en conflicto con la informacion individual el cambio de tipo aqui ?>
                    
                            <td>
                                <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
                                    <?php if($codigoPalet==$palet['TipoPalet']) echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?>
                                <?php } ?>
                            </td>
                        
                        <?php } else {  ?>
                        
                            <td>
                            
                            	<?php if($palet['EsCarro']!='S') { ?>
                                
                                <select name="tipoPalet<?php echo $palet['CodigoPalet']; ?>" id="tipoPalet<?php echo $palet['CodigoPalet']; ?>" class="campo selectorTipoPalet" valorOriginal="<?php echo $palet['TipoPalet']; ?>" idPalet="<?php echo $palet['CodigoPalet']; ?>" >
                                	<?php if(!$_SESSION['seleccionTipoPaletEntrada']) { ?>
                                    <option value="" <?php if(!$palet['TipoPalet']) { ?>selected<?php } ?> >---</option>
                                    <?php } ?>
                                    
                                    <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
                                    <option value="<?php echo $codigoPalet; ?>" <?php if($codigoPalet==$palet['TipoPalet']) { ?>selected<?php } ?> chep="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['CHEP']; ?>"><?php echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?></option>
                                    <?php } ?>
                                </select>
                                
                                <?php } ?>
                                
                            </td>
                            
                        <?php } ?>
                    
                    <td>
                    
                    <?php if($palet['EsCaja']=='S' && !$palet['PaletPadre']) { ?>
						<?php if($palet['EsCajaRoturas']=='S') { ?>
                            <img src="<?php echo DIR_IMAGENES; ?>/caja-roturas.png" style="width:30px;"/>
                        <?php } else { ?>
                            <img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:30px;"/>
                        <?php } ?>
                    <?php } else { ?>
                        <?php if($palet['EsCarro']=='S') { ?>
                            <img src="<?php echo DIR_IMAGENES; ?>/carro.png" style="width:35px;"/>
                        <?php } else { ?>
                            <img id="imagenPalet<?php echo $palet['CodigoPalet']; ?>" src="<?php echo DIR_IMAGENES; ?>/palet-vacio<?php if($_SESSION['tiposPalet'][$palet['TipoPalet']]['CHEP']=='S') { ?>-chep<?php } ?>.png" width="50" height="36"/>
                        <?php } ?>
                    <?php } ?>

                    
                    </td>
                    
                    <?php } //Fin si permite informar tipo palet ?>
                    
                    <?php if($pedirUbicacion) { ?>
                    <td>
                    	<p class="selectorUbicacion" ubicacion="<?php echo $palet['UbicacionPalet']; ?>"><?php echo $palet['UbicacionPalet']; ?></p>
                    </td>
                    <?php } ?>

                </tr>
                
				<?php } ?>
                
            <!--</h2>-->
            
            <?php } ?>
            
            </table>
            
            </div>
            
        </div>
    </div>
    
    <div class="pestanya primeroSeleccionaPalet" id="pestanyaContenidoPalet">
        <div class="pestanyaEtiqueta" id="etiquetaContenidoPalet">Palet actual: <strong id="etiquetaCodigoPalet"><?php echo $_SESSION['entradaPaletActual']; ?></strong></div>
      <div class="pestanyaContenido" id="contenidoPalet">
        </div>
    </div> 
        
    <div class="pestanya primeroSeleccionaPalet" id="pestanyaLectura">
        <div class="pestanyaEtiqueta" id="etiquetaPreparar">Lectura de Productos</div>
        <div class="pestanyaContenido" style="text-align:center;min-height:500px;" >

<?php } //Fin si requiere paletizar, montamos pestañas ?>    


    	<form id="formulario" name="formulario" method="post" action="?accion=<?php if($_GET['traza']=='si') { ?>&traza=si<?php } ?>">
    
		<input type="hidden" name="procesoEntradaPlay" id="procesoEntradaPlay" value="0" />
    
		<div id="popupNumerosSerie" class="popup" style="display:none"></div>
        <div id="popupNumerosSerieContenido" class="popupContenidoScroll" style="display:none"></div>
        
       	<?php if($requierePaletizar) { ?>
        
        
        
        
        
        <?php //echo '<p>controlPesaje: '.$controlPesaje.'</p>'; ?>
        
        <?php
		
		if(!$_SESSION['entrada']['impresoras']) {

			$peticion='ConsultaDocumentosImprimir#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#'.$_SESSION['almacen'].'#ETIQUETASRECEPCION';
			$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
			if($_GET['traza']=='si') {
				echo "<p>".$peticion."</p>";
				print_r($resultado);
			}
			
			$_SESSION['entrada']['impresoras']=arreglaArrayPXMobileProxiumResult($resultado[0]['Impresoras']);
		
		}
		?>
        
        <?php if($controlPesaje) { //C,U,R  caja,unidad,rotura ?>
        
        <div id="popupTipoPesaje" class="popup" <?php if($pesajeTipo) { ?>style="display:none"<?php } ?>>
       	  <div id="popupTipoPesajeContenido" class="popupContenido" style="padding:40px">
            	<h2>Control de pesaje</h2>
                <p>Indica el formato del producto a leer:</p>
                <div style="width:220px;margin:0 auto;text-align:left">
                    <p><label><input type="radio" name="pesajeTipoSelector" id="radioPesajeCaja" value="C" class="radioGrande"/> Caja completa</label></p>
                    <p><label><input type="radio" name="pesajeTipoSelector" id="radioPesajeUnidad" value="U" class="radioGrande"/> Unidad a carro</label></p>
                    <p><label><input type="radio" name="pesajeTipoSelector" id="radioPesajeRotura" value="R" class="radioGrande"/> Unidad dañada</label>
                    </p>
            	</div>
                <p><input type="button" name="botonCancelarPesaje" id="botonCancelarPesaje" class="boton reducido" value="Cancelar" /></p>
        	</div>
        </div>
        
        <input type="hidden" name="pesajeTipo" id="pesajeTipo" value="<?php echo $pesajeTipo; ?>"/>
        
        <script>
		
		var tipoPesaje;
		
		function configuraTipoPesaje(tipoPesaje,redimensionarPestanyas=false) {
			
			if(tipoPesaje=='C') {
				
				$('#tecladoPesajeCaja').hide();
				$('#borrarPesajeCaja').hide();
				$('#pesajeCaja').prop('readonly',true);
				$('#pesajeCaja').addClass('deshabilitado');
				$('#etiquetaPesajeCaja').html('Caja:');
				
				$('#cantidad').val('<?php echo $_SESSION['producto']['EmbalajePrimarioCaja']; ?>');
				
				$('#pesajeImpresora').prop('disabled',false);
				$('#pesajeImpresora').removeClass('deshabilitado');
				
				$('#etiquetaPalet').html('Palet:');
				$('#tipoPalet').show();
				$('#imagenPalet').attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio.png');
				
				$('#iconoPesaje').attr('src','<?php echo DIR_IMAGENES; ?>/pesaje-caja.png');
				$('#iconoPesaje').show();
				
			}
			else if(tipoPesaje=='U') {
				
				$('#tecladoPesajeCaja').hide();
				$('#borrarPesajeCaja').hide();
				$('#pesajeCaja').prop('readonly',true);
				$('#pesajeCaja').addClass('deshabilitado');
				
				$('#cantidad').val(1);
				$('#cantidad').prop('readonly',true);
				$('#cantidad').addClass('deshabilitado');
				$('#borrarCantidad').hide();
				
				$('#pesajeImpresora').prop('disabled',true);
				$('#pesajeImpresora').addClass('deshabilitado');
				$('#pesajeImpresora').val('');
				
				$('#iconoPesaje').attr('src','<?php echo DIR_IMAGENES; ?>/pesaje-carro.png');
				$('#iconoPesaje').show();
				
				$('#etiquetaPalet').html('Carro:');
				$('#tipoPalet').hide();
				$('#imagenPalet').attr('src','<?php echo DIR_IMAGENES; ?>/carro.png');
				
				$('#contenedor').focus();
				
			}
			else if(tipoPesaje=='R') {
			
				$('#tecladoPesajeCaja').show();
				$('#borrarPesajeCaja').show();
				$('#pesajeCaja').prop('readonly',false);
				$('#pesajeCaja').removeClass('deshabilitado');
				$('#etiquetaPesajeCaja').html('Caja de roturas:');
				
				$('#cantidad').prop('readonly',true);
				$('#cantidad').addClass('deshabilitado');
				$('#cantidad').val(1);
				$('#borrarCantidad').hide();
				
				$('#pesajeImpresora').prop('disabled',true);
				$('#pesajeImpresora').addClass('deshabilitado');
				$('#pesajeImpresora').val('');
				
				$('#etiquetaPalet').html('Palet:');
				$('#tipoPalet').show();
				$('#imagenPalet').attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio.png');
				
				$('#iconoPesaje').attr('src','<?php echo DIR_IMAGENES; ?>/pesaje-roturas.png');
				$('#iconoPesaje').show();
				
				$('#pesajeCaja').focus();
				
			}
				
			if(redimensionarPestanyas) redimensionaPestanyas('contenedorPrincipal');
				
		}
		
		$(document).ready(function() {
		
			$('#iconoUnidades').hide();
			
			<?php if($pesajeTipo) { ?>
			configuraTipoPesaje('<?php echo $pesajeTipo; ?>',false);
			<?php } ?>
		
			$('input[type=radio][name=pesajeTipoSelector]').on('click',function(){
			
				pesajeTipo=$('input[type=radio][name=pesajeTipoSelector]:checked').val();
			
				$('#pesajeTipo').val(pesajeTipo);
				
				configuraTipoPesaje(pesajeTipo,true);
				
				$('#popupTipoPesaje').hide();
					
			});
			
			$('#botonCancelarPesaje').on('click',function(){
			
				$('#botonCancelar').trigger('click');
				
			});
		
		});
		
		</script>
        
        <?php } ?>
        
        
        <input type="hidden" name="paletErrorYaAvisado" id="paletErrorYaAvisado" value="<?php echo $_POST['paletErrorYaAvisado']; ?>"/>
        
        <table cellpadding="5" style="margin: 0 auto">
        <tr>
        	<td <?php if($_SESSION['seleccionTipoPaletEntrada']) { ?>style="padding-bottom:32px;"<?php } ?>>
                <div id="bloqueContenedor" style="width:410px;margin:20px auto">
                    <p class="sinMargen" id="etiquetaPalet">Palet:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoContenedor" />
                    <input name="contenedor" type="text" class="campo campoOrdenPreparacion <?php if($errorPalet) { ?>campoError<?php } ?>" id="contenedor" value="<?php if($contenedor) echo $contenedor; else echo $_SESSION['entradaPaletActual']; ?>" style="width:380px;left:5px;" autocomplete="off"/>
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarContenedor" style="position:absolute;right:0;cursor:pointer;"/>
                    
                    </div>
                </div>
                <input type="hidden" name="contenedorOriginal" id="contenedorOriginal" value="<?php echo $contenedor; ?>"/>
        	</td>
            
            <?php if( $_SESSION['seleccionTipoPaletEntrada'] && $_SESSION['entrada']['RequiereDimensionesPalets']!='S' ) { //15-02-2024 se oculta si requiere dimensiones, porque se traslada abajo ?>
            
                <td>
                    <select name="tipoPalet" id="tipoPalet" class="campo moverFocoLecturaGS1trasCambio">
                    <option value=""></option>
                    <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
                    <option value="<?php echo $codigoPalet; ?>" <?php if( ($contenedor && $codigoPalet==$nuevoTipoPalet) || ($contenedor && $codigoPalet==$infoContenedor['TipoPalet']) || (!$contenedor && $codigoPalet==$_SESSION['entradaPaletActualTipo']) ) { ?>selected<?php } ?> chep="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['CHEP']; ?>"><?php echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?></option>
                    <?php } ?>
                    </select>
                </td>
                <td>
                    <img id="imagenPalet" src="<?php echo DIR_IMAGENES; ?>/palet-vacio<?php if( ($contenedor && $_SESSION['tiposPalet'][$infoContenedor['TipoPalet']]['CHEP']=='S') || (!$contenedor && $_SESSION['entradaPaletActualEsChep']=='S') ) { ?>-chep<?php } ?>.png" width="50"/>
                </td>
            
			<?php } ?>
            
        </tr>
        </table>
        
        <?php } ?>
        
        
        <div id="popupRegalos" class="popup" style="display:none"></div>
		<div id="popupRegalosContenido" class="popupContenidoScroll" style="display:none"></div>

        
        <?php //if( $_SESSION['entrada']['VisibCodBarras']=='S' || !$_SESSION['producto'] ) { ?>
        <?php if( true|| !$_SESSION['producto'] ) { ?>
        
        <div style="position:relative;margin-bottom:35px;<?php if($vieneDeCrossdockingAgrupado) { ?>margin-top:40px<?php } ?>">
        
        	<input type="button" name="botonLecturasGS1" id="botonLecturasGS1" value="Lectura código" class="boton reducido" <?php if($vieneDeCrossdockingAgrupado) { ?>style="width:165px;margin-top:-3px;"<?php } else { ?>style="float:left;width:165px;margin-top:-3px;"<?php } ?> /><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoLecturaGS1" <?php if($vieneDeCrossdockingAgrupado) { ?>style="margin: 0 10px 0 15px;vertical-align: middle;"<?php } else { ?>style="float:left;margin:0 0 0 15px;"<?php } ?>/><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 } ?>
        
<?php if( isset($codigoProducto) || !empty($_SESSION['producto']) ) { ?>

		<img id="iconoPesaje" src="<?php echo DIR_IMAGENES; ?>/pesaje-caja.png" height="75" style="display:none;margin-top:-15px;margin-bottom:10px;"/>
        
        <?php if($productoNoRegistrado) { ?>
		<script>
		alert('Este producto no está en previsión, pero puede añadirse a la Entrada.')
		.done(function(){
			$('#lecturaGS1').focus();
		});
        </script>
		<?php } ?>
        
        <?php
		$cadenaNumerosSerie='';
		$numerosSerie=arreglaArrayPXMobileProxiumResult($_SESSION['producto']['NumerosSerie']);
		foreach($numerosSerie as $numero) {
			if(!empty($cadenaNumerosSerie)) $cadenaNumerosSerie.=';';
			$cadenaNumerosSerie.=$numero['NumeroSerie'].','.$numero['Leido'].','.$numero['Ubicacion'];
		}
		?>
        
        <?php $columnas=5; ?>
        <?php if($_SESSION['entrada']['GestCodB']=='S') $columnas++; ?>
        
        <table class="tablaFormateada">
		<tr>
        
		  <?php if(count($_SESSION['empresas'])>1) { ?><th>Emp.</th><?php } $columnas++; ?>
            
            <?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
            <?php $columnas+=2; ?>
            <th>Pedido</th>
            <th>Linea</th>
            <?php } ?>
            
		  <th>Código</th>
            
            <?php if($_SESSION['entrada']['GestCodB']=='S') { ?>
            <th>Código B</th>
            <?php } ?>
            
			<th>Descripción</th>
			<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
				<?php if($comportamiento['Activo']=='S' && ( $_SESSION['producto']['Control'.$comportamiento['NombreSQL']]=='S' || $_SESSION['producto']['Control'.$comportamiento['NombreSQL']]=='SOP' ) ) { ?>
                <th><?php echo $comportamiento['Nombre']; $columnas++; ?></th>
				<?php } ?>
			<?php } ?>
            
            
            <?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
            
            	<th>Pendiente recibir</th>
                <th>En recepción</th>
                <th>Nuevo pendiente</th>
            
            <?php } else { ?>
            
            	<th>Cant.</th>
                <?php if($_SESSION['verEnCajas']=='S') { ?><th>Cajas</th><?php $columnas++; } ?>
                <th>Leido<br />anterior</th>
            
            <?php } ?>
            
            
			<th>Formato</th>
            
            <?php if($_SESSION['producto']['PedidoVenta']) { ?>
            <th>Pedido venta</th>
            <?php } ?>
            
            <?php if($gestionProductosRegalo) { ?>
			<th>Regalos</th>
			<?php } ?>
            
            <?php if($_SESSION['producto']['InfoArt']) { ?><th>Info</th><?php $columnas++; } ?>
            
		 </tr>
		 <tr>
			
			<?php if(count($_SESSION['empresas'])>1) { ?><td><?php echo $_SESSION['entrada']['Empresa']; ?></td><?php } ?>
            
            <?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
            <td><?php echo $_SESSION['producto']['Pedido']; ?></td>
            <td><?php echo $_SESSION['producto']['PedidoLinea']; ?></td>
            <?php } ?>
			
           <td><?php echo $codigoProducto; ?></td>
            
            <?php if($_SESSION['entrada']['GestCodB']=='S') { ?>
            <td><?php echo $_SESSION['producto']['CodigoB']; ?></td>
            <?php } ?>
            
			<td align="left"><?php echo $_SESSION['producto']['Descripcion']; ?></td>
            <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
            	<?php if($comportamiento['Activo']=='S' && ( $_SESSION['producto']['Control'.$comportamiento['NombreSQL']]=='S' || $_SESSION['producto']['Control'.$comportamiento['NombreSQL']]=='SOP' ) ) { ?>
                <td><?php
				if($comportamiento['NombreSQL']=='Regimen') echo $_SESSION['producto']['Regimen'];
					if($comportamiento['Codigo']=='NS' && $_SESSION['producto']['NumerosSerie']) {
                    	?><img class="verNumerosSerie clicable" src="<?php echo DIR_IMAGENES; ?>/barcode-buscar.png" style="width:60px" numeros="<?php echo $cadenaNumerosSerie; ?>"/><?php
                    }
					else if($_SESSION['producto'][$comportamiento['NombreSQL']]) echo formateaTipo($_SESSION['producto'][$comportamiento['NombreSQL']],$comportamiento['Tipo']);
				?>
				</td>
            	<?php } ?>
			<?php } ?>
            
            
            <?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
            
            	<td align="right"><?php echo formateaNumeroDecimal($_SESSION['producto']['Cantidad'],true); ?></td>
                <td align="right"><?php echo formateaNumeroDecimal($_SESSION['producto']['CantidadEnRecepcion'],true); ?></td>
                <td align="right"><?php echo formateaNumeroDecimal($_SESSION['producto']['CantidadNuevoPendiente'],true,0,true); ?></td>
            
            <?php } else { ?>
            
                <td align="right"><?php echo formateaNumeroDecimal($cantidad,true); //echo number_format($cantidad,0,',','.'); ?></td>
                <?php if($_SESSION['verEnCajas']=='S') { ?><td align="right"><?php echo formateaNumeroDecimal($cantidadCajas,true); //echo number_format($cantidadCajas,2,',','.'); ?></td><?php } ?>
                <td align="right" id="valorLeido"><?php echo formateaNumeroDecimal($leido,true); //echo number_format($leido,0,',','.'); ?></td>
                
            <?php } ?>
            
            
			<td><?php echo $_SESSION['producto']['Formato']; ?></td>
            
            <?php if($_SESSION['producto']['PedidoVenta']) { ?>
            <td><?php echo $_SESSION['producto']['PedidoVenta']; ?></td>
            <?php } ?>
            
            <?php if($gestionProductosRegalo) { ?>
						<td>
							<?php if($_SESSION['producto']['Regalos'] || $_SESSION['producto']['CantidadRegalo']) { ?>
							
								<?php
								$cadenaRegalos='';
								if($_SESSION['producto']['Regalos']) {
									foreach(arreglaArrayPXMobileProxiumResult($_SESSION['producto']['Regalos']) as $regalo) {
										if($cadenaRegalos!='') $cadenaRegalos.='|';
										$cadenaRegalos.=$regalo['Cantidad'].'¬'.$regalo['Codigo'].'¬'.$regalo['Descripcion'].'¬'.$regalo['UDdeRegalo'];
									}
								}
								?>
								<img src="<?php echo DIR_IMAGENES; ?>/palet-info.png" width="50" height="50" class="iconoRegalos clicable" <?php if($_SESSION['producto']['Regalos']) { ?>regalos="<?php echo $cadenaRegalos; ?>"<?php } ?> <?php if($_SESSION['producto']['CantidadRegalo']) { ?> CantTotalProductoEnLaOrden="<?php echo $_SESSION['producto']['CantTotalProductoEnLaOrden']; ?>" cantidadRegalo="<?php echo $_SESSION['producto']['CantidadRegalo']; ?>" <?php } ?> />
							
							<?php } ?>
						</td>
			<?php } ?>
            
            <?php if($_SESSION['producto']['InfoArt']) { ?><td style="font-size:1.1em"><?php echo $_SESSION['producto']['InfoArt']; ?></td><?php } ?>
            
		</tr>
        
        <?php if($_SESSION['producto']['InstruccionesDescarga']) { ?>
        
        <tr class="cabecera"><td colspan="<?php echo $columnas; ?>">Instrucciones de Descarga:</td></tr>
        <tr><td colspan="<?php echo $columnas; ?>"><?php echo $_SESSION['producto']['InstruccionesDescarga']; ?></td></tr>
        
        <?php } ?>
        
		</table>
        
        <?php
		
		/////////// PARA RECEPCIONES DE COMPRA, MIRAMOS SI HAY MAS PRODUCTOS IGUALES, DE OTROS PEDIDOS Y LINEAS
		
        if($_SESSION['entradaEsRecepcionCompra']) {
		
			$productosCoincidentes=array();
			
			foreach($_SESSION['productos'] as $item) {
				
				$coincidencia=false;
				
				if( $item['Codigo']==$codigoProducto ) {
					
					$coincidencia=true;
					foreach($_SESSION['comportamientos'] as $comportamiento) {
						if($comportamiento['Activo']=='S') {
							//echo '<p>Evaluamos: '.$comportamiento['NombreSQL'].' / item: '.$item[$comportamiento['NombreSQL']].' / producto: '.$_SESSION['producto'][$comportamiento['NombreSQL']].'</p>';
							
							if($item[$comportamiento['NombreSQL']]!=$_SESSION['producto'][$comportamiento['NombreSQL']]) $coincidencia=false;
							//echo '<p>coindidencia: '.$coincidencia.'</p>';
							//echo '<hr>';
						}
					}
				}
				if($coincidencia) $productosCoincidentes[]=$item;
			}
			
			/*
			echo '<p>Productos coincidentes:</p>';
			foreach($productosCoincidentes as $coincidente) {
				print_r($coincidente);
				echo '<hr>';
			}
			*/
			if( count($productosCoincidentes)>1 && !$vieneDePedidoVenta && !$_SESSION['producto']['PedidoVenta'] ) {
				?><p class="medio" style="margin-top:20px"><img src="img_nx/iconos/advertencia.png" width="40" height="40" style="vertical-align:middle;"/> Hay otros pedidos pendientes con el mismo producto.</p><?php
			}
			
		
		}
		
		?>
        
        <?php //echo '<p>Linea entrada asociada a sesion producto actual: '.$_SESSION['producto']['LineaEntrada'].'</p>'; ?>
        
		<br />
        
		<?php } ?>
            
  <div id="popupLecturaNoReconocida" class="popup" style="<?php if(!$mostrarPopupLecturaNoReconocida) { ?>display:none;<?php } ?>z-index:20000">
			<div id="popupLecturaNoReconocidaContenido" class="popupContenido">
            	<img src="<?php echo DIR_IMAGENES; ?>/iconos/advertencia.png" width="60" height="60" style="margin-top:15px"><br>
            	<p>Error en la lectura. Dato no reconocido.</p>
                <p>Por favor, indica de qué tipo se trata:</p>
                <p><strong id="lecturaNoReconocida"></strong></p>
                
                <table style="margin:0 auto;font-size:1.3em" cellpadding="5" border="0" cellspacing="0">
                <tr><td><input type="radio" name="tipoDatoLecturaNoReconocida" id="tipoDatoLecturaNoReconocidaCodigo" value="codigo" class="checkGrande" /></td><td align="left">Código de Producto</td></tr>
                <tr><td><input type="radio" name="tipoDatoLecturaNoReconocida" id="tipoDatoLecturaNoReconocidaEanDun" value="eandun" class="checkGrande" /></td><td align="left">EAN/DUN</td></tr>
                <?php if($pedirPaletCliente) { ?>
                <tr><td><input type="radio" name="tipoDatoLecturaNoReconocida" id="tipoDatoLecturaNoReconocidaPaletCliente" value="paletCliente" class="checkGrande" /></td><td align="left">Id Palet Cliente</td></tr>
                <?php } ?>
                <?php if($pedirLote) { ?>
                <tr><td><input type="radio" name="tipoDatoLecturaNoReconocida" id="tipoDatoLecturaNoReconocidaLote" value="lote" class="checkGrande" /></td><td align="left">Lote</td></tr>
                <?php } ?>
                </table>
                <p><input type="button" name="botonCancelarLecturaNoReconocida" id="botonCancelarLecturaNoReconocida" value="Cancelar" class="boton reducido"/></p>
            </div>
        </div>

		<?php if($_SESSION['producto']) { ?>
        
        
        
        <div id="popupBusqueda" class="popup" style="display:none"></div>
        <div class="popupContenidoScroll" id="popupBusquedaContenido" style="display:none;min-width:700px" ></div>
        
        <table class="tablaCamposEntradaGs1">
        
        	<?php if($controlPesaje) { ?>
            
            <tr id="bloquePesajeCaja">
              <td align="left" id="etiquetaPesajeCaja">Caja:</td>
              <td>
              
              	<div>
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoPesajeCaja" />
                    <input name="pesajeCaja" id="pesajeCaja" type="text" class="campo campoOrdenPreparacion"  maxlength="50" style="left:5px;" value="" autocomplete="off">
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPesajeCaja" style="position:absolute;right:-55px;cursor:pointer;top:3px;" />
                    </div>
                </div>
                
            	</td>
            </tr>
            
            <?php } ?>
        
        	<?php if($pedirPaletCliente) { ?>
            
            <tr>
              <td align="left">Id Palet Cliente:</td>
              <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoPaletCliente" /><input name="paletCliente" type="text" class="campo campoOrdenPreparacion" id="paletCliente" maxlength="50" style="left:5px;" value="<?php if($_POST['paletCliente']) echo $_POST['paletCliente']; else if($_SESSION['lecturasGS1']['paletCliente']) echo $_SESSION['lecturasGS1']['paletCliente']; else if($_SESSION['entradaPaletActual']) echo $_SESSION['relacionPaletsProxiumCliente'][$_SESSION['entradaPaletActual']];  ?>" autocomplete="off">
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPaletCliente" style="position:absolute;right:-55px;cursor:pointer;top:3px;" />
                <img src="<?php echo DIR_IMAGENES; ?>/candado.png" alt="Desbloquear" id="desbloquearPaletCliente" style="position:absolute;left:410px;cursor:pointer;top:3px;width:45px;display:none" />                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <?php if($pedirSubIdPaletCliente) { ?>
            
            <tr>
              <td align="left">Sub Id Palet Cliente:</td>
              <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoSubIdPaletCliente" /><input name="subIdPaletCliente" type="text" class="campo campoOrdenPreparacion" id="subIdPaletCliente" maxlength="50" style="left:5px;" value="<?php if($_POST['subIdPaletCliente']) echo $_POST['subIdPaletCliente']; else if($_SESSION['lecturasGS1']['subIdPaletCliente']) echo $_SESSION['lecturasGS1']['subIdPaletCliente']; else if($_SESSION['entradaSubIdPaletActual']) echo $_SESSION['relacionPaletsProxiumCliente'][$_SESSION['entradaPaletentradaSubIdPaletActualActual']];  ?>" autocomplete="off">
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarSubIdPaletCliente" style="position:absolute;right:-55px;cursor:pointer;top:3px;" />                </div>
            </div>            </td></tr>
            
            <?php } ?>
        
        	<?php if($pedirLote) { ?>
            
            <tr>
            <td align="left"><img id="fijarLote" src="<?php echo DIR_IMAGENES; ?>/palet-fijar<?php if(!$_SESSION['entradaFijar-lote']) { ?>-off<?php } ?>.png" alt="Fijar" class="iconoFijar entradaChincheta" campo="lote" activo="<?php if($_SESSION['entradaFijar-lote']) { ?>1<?php } else { ?>0<?php } ?>"/>Lote:</td>
            <td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                
                <?php
				
				$loteFijado=$_SESSION['entradaFijar-lote'];
				
				if($_SESSION['entradaFijar-lote']) $lotePintar=$_SESSION['entradaFijar-lote'];
				else if($_POST['lote']) $lotePintar=$_POST['lote'];
				else if($_SESSION['lecturasGS1']['lote']) $lotePintar=$_SESSION['lecturasGS1']['lote'];
				
				?>
                
                <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoLote" <?php if($loteFijado) { ?>style="display:none"<?php } ?>/>
                <input name="lote" type="text" class="campo campoOrdenPreparacion <?php if($_SESSION['entradaFijar-lote']) { ?>deshabilitado<?php } ?>" id="lote" style="left:5px;" value="<?php echo $lotePintar; ?>" autocomplete="off" <?php if($loteFijado) { ?>readonly<?php } ?>>
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLote" style="position: absolute;right:-55px;cursor:pointer;top:3px;<?php if($loteFijado) { ?>display:none<?php } ?>"/>
                
                
                
                <?php if($_SESSION['entradaEsDevolucion']) { ?>
                
                <img src="<?php echo DIR_IMAGENES; ?>/lupa.png" alt="Buscar" class="boton-lupa campoOrdenPreparacionLupa" id="botonBuscarLote" style="left:10px"/>
                
                <script>
					
					$(document).ready(function() {
					
						$('#botonBuscarLote').on("click",function(e){
						
							e.preventDefault();
							
							$("#popupCargando").show();
							
							$.post( "<?php echo $rutaHtml; ?>/contenidos/entrada-devolucion-cargar-lotes.php" , { 'producto' : '<?php echo $codigoProducto; ?>' } )
							.done(function(data) {
							
								$("#popupBusquedaContenido").html(data);
								$("#popupBusqueda").show();
								$("#popupBusquedaContenido").show();
								
								$("#popupCargando").hide();
							});

						});
					
					});
					
					</script>
                
                <?php } ?>
                
                
                
                <?php if($loteAutomaticoEntrada) { ?>
                <img src="<?php echo DIR_IMAGENES; ?>/lote-neutro.png" alt="Borrar" id="loteAutomatico" style="position:absolute;right:-120px;cursor:pointer;" />
                <?php } ?>
                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <?php if($pedirFechaCaducidad) { ?>
            
            <tr><td align="left"><img id="fijarFechaCaducidad" src="<?php echo DIR_IMAGENES; ?>/palet-fijar<?php if(!$_SESSION['entradaFijar-fechaCaducidad']) { ?>-off<?php } ?>.png" alt="Fijar" class="iconoFijar entradaChincheta" campo="fechaCaducidad" activo="<?php if($_SESSION['entradaFijar-lote']) { ?>1<?php } else { ?>0<?php } ?>"//>Fecha de Caducidad:</td><td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                
                <?php
				
				$fechaFijada=$_SESSION['entradaFijar-fechaCaducidad'];
				
				if($_SESSION['entradaFijar-fechaCaducidad']) $fechaCaducidadPintar=$_SESSION['entradaFijar-fechaCaducidad'];
				else if($_POST['fechaCaducidad']) $fechaCaducidadPintar=$_POST['fechaCaducidad'];
				else if($_SESSION['lecturasGS1']['fechaCaducidad']) $fechaCaducidadPintar=$_SESSION['lecturasGS1']['fechaCaducidad'];
				else if($fechaCaducidadPorDefecto) $fechaCaducidadPintar=$fechaCaducidadPorDefecto;
				
				?>
                
                <!--<img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoFechaCaducidad" />-->
                <input name="fechaCaducidad" type="text" class="campo campoOrdenPreparacion <?php if($fechaFijada) { ?>deshabilitado<?php } ?>" id="fechaCaducidad" maxlength="14" style="left:5px;" value="<?php echo $fechaCaducidadPintar ?>" autocomplete="off" <?php if($fechaFijada) { ?>readonly<?php } ?>/>
                
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarFechaCaducidad" style="position: absolute;right:-55px;cursor:pointer;top:3px;" />                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            
            
            
            
            <?php if($pedirIdioma) { ?>
            
            <tr><td align="left">Idioma:</td><td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <input name="idioma" type="text" class="campo campoOrdenPreparacion" id="idioma" maxlength="14" style="left:5px;" value="<?php echo $_SESSION['producto']['Idioma']; ?>" autocomplete="off"/>
                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <?php if($pedirPrecinta) { ?>
            
            <tr><td align="left">Tipo de Precinta:</td><td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <input name="precinta" type="text" class="campo campoOrdenPreparacion" id="precinta" maxlength="14" style="left:5px;" value="<?php echo $_SESSION['producto']['Precinta']; ?>" readonly autocomplete="off"/>
                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <?php if( $pedirNumSerie ) { ?>
            
            <tr><td align="left" valign="top">Números de serie:</td>
            <td>
            
            <?php $contadorNS=1; ?>

            <?php if($numerosSerieRecuperar && $numerosSerieRecuperar!='-') { ?>

				<?php
				
				$numerosSerieSecuencia=explode(',',$numerosSerieRecuperar);
                
                
                foreach($numerosSerieSecuencia as $itemNS) {
                
                   if($itemNS) {
    
                    ?>
                    <div id="bloqueContenedor">
                        <div id="bloqueLecturaNS-1" class="campoOrdenPreparacionBloque">
                        <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado iconoTecladoNS" id="tecladoNS-<?php echo $contadorNS; ?>" contador="<?php echo $contadorNS; ?>"/><input name="lecturaNS-<?php echo $contadorNS; ?>" type="text" class="campo campoOrdenPreparacion lecturaNS <?php if( ( is_array($numerosDeSerieError) && in_array($itemNS,$numerosDeSerieError) ) || ( is_array($NSinternosErroneos) && in_array($itemNS,$NSinternosErroneos) ) ) { ?>campoError<?php } ?>" id="lecturaNS-<?php echo $contadorNS; ?>" contador="<?php echo $contadorNS; ?>" style="left:5px;" autocomplete="off" value="<?php echo $itemNS; ?>"/>
                        <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="campoOrdenPreparacionBorrar borrarNS" contador="<?php echo $contadorNS; ?>" style="right:-55px"/>
                        </div>
                        <div id="nuevaLecturaNS-<?php echo $contadorNS; ?>"></div>
                    </div>
                    <?php
                    
                    $contadorNS++;

                    }
                    
                }
                
                ?>
			
			<?php } ?>
            
            <div id="bloqueContenedor">
                <div id="bloqueLecturaNS-1" class="campoOrdenPreparacionBloque">
                <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado iconoTecladoNS" id="tecladoNS-<?php echo $contadorNS; ?>" contador="<?php echo $contadorNS; ?>"/><input name="lecturaNS-<?php echo $contadorNS; ?>" type="text" class="campo campoOrdenPreparacion lecturaNS" id="lecturaNS-<?php echo $contadorNS; ?>" contador="<?php echo $contadorNS; ?>" style="left:5px;" autocomplete="off" />
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="campoOrdenPreparacionBorrar borrarNS" contador="<?php echo $contadorNS; ?>" style="right:-55px"/>
                </div>
                <div id="nuevaLecturaNS-<?php echo $contadorNS; ?>"></div>
            </div>
            

     
            
            <input type="hidden" id="cantidadMaximaNumerosSerie" name="cantidadMaximaNumerosSerie" value="<?php if($cantidad>0) echo $cantidad; else echo 1000; ?>" />
            <input type="hidden" id="ultimoBloqueNumeroSerie" name="ultimoBloqueNumeroSerie" value="<?php if($contadorNS) echo $contadorNS; else echo 1; ?>" />
            <input type="hidden" id="cadenaNumerosSerieLeidos" name="cadenaNumerosSerieLeidos" style="width:400px" />            </td></tr>
            
            <?php } ?>
            
            <input type="hidden" name="cantidadPedidaOriginal" id="cantidadPedidaOriginal" value="<?php echo $_SESSION['producto']['Cantidad']-$_SESSION['producto']['Leido']; ?>"/>
            <input type="hidden" name="cajas" id="cajas" value="<?php echo $cajas; ?>"/>
        	<input type="hidden" name="EmbalajePrimarioCaja" id="EmbalajePrimarioCaja" value="<?php echo $_SESSION['producto']['EmbalajePrimarioCaja']; ?>" />
            
            <tr id="bloqueCantidadNormal">
            	<td align="left" style="width:350px">Cantidad: (<span id="etiqueta"><?php echo $etiqueta; ?></span>)</td><td>
            
            	<?php $bloquearCantidad=( $pedirNumSerie || $cantidadMultipedido ); ?>
            
                <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" id="iconoUnidades" /><?php } ?>
                    <input name="cantidad" type="text" class="campo cantidad campoOrdenPreparacion <?php if($bloquearCantidad) { ?>deshabilitado<?php } ?>" id="cantidad" maxlength="14" style="left:5px;" <?php if($bloquearCantidad) { ?>readonly<?php } ?> value="<?php if($_POST['cantidad']) echo $_POST['cantidad']; else echo $_SESSION['lecturasGS1']['cantidad']; ?>" autocomplete="off"/>
                    <?php if(!$bloquearCantidad) { ?>
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarCantidad" style="position: absolute;right:-55px;cursor:pointer;top:3px;" />    
                    <?php } ?>
                    </div>
                </div>
                </td>
            </tr>
            
            <?php ////CAMBIO ESTADO PRODUCTO EN DEVOLUCIONES
            
            if($cambioEstadoDevolucion) {
			
				$estadosAlmacen=$_SESSION['parametrosSGA']['EstadosAlmacen'];
				$estadosAlmacen=explode('|',$estadosAlmacen);
				
				?>
				<tr id="bloqueEstadoProducto">
					<td align="left" style="width:350px">Estado producto:</td><td>
				
					<div>
						<div class="campoOrdenPreparacionBloque">
                        	
                            <input type="hidden" id="estadoProducto" name="estadoProducto" />
                            <input id="estadoProductoDescripcion" name="estadoProductoDescripcion" type="text" class="campo cantidad campoOrdenPreparacion deshabilitado" maxlength="14" style="left:5px;" readonly value="<?php if($_SESSION['entrada']['EstadoDevolucion']) echo $_SESSION['entrada']['EstadoDevolucionDescrip']; ?>" autocomplete="off"/>
                            
                           <img src="<?php echo DIR_IMAGENES; ?>/editar.png" alt="Borrar" id="seleccionarEstado" style="position:absolute;right:-130px;cursor:pointer;width:55px;" />

					  </div>
					</div>
                    
                    <script>
					
					$(document).ready(function(){
					
						$(document).on('click','.lineaEstado',function(){
						
							let estado=$(this).attr('estado');
							
							if(estado=='D') {
								alert('Error: No puede indicarse un estado "Para destruir" en una entrada.<br><br>Para ello, debe utilizarse la pantalla Destrucciones<br>de la aplicación de escritorio de Proxium.',null,'error');
							}
							else {
								let nombreEstado=$(this).attr('nombreEstado');
								$('#estadoProducto').val(estado);
								$('#estadoProductoDescripcion').val(nombreEstado);
							}
							$('#popupEstados').hide();
						});
						
						$('#seleccionarEstado').on('click',function(e){
							e.preventDefault();
							$('#popupEstados').show();
						});
					
					});
					
					</script>
                    
					</td>
				</tr>
				<?php 
			
			}
            

			
			////////////////// CANTIDADES MULTIPEDIDO /////////////
            
            if($_SESSION['entradaEsRecepcionCompra'] && !$vieneDeCrossdockingAgrupado) {
			
				if( count($productosCoincidentes)>1 ) {
				
					?>
                    <tr>
                    	<td colspan="2">
                        
                        	<?php if( !$cantidadMultipedido && !$vieneDePedidoVenta && !$_SESSION['producto']['PedidoVenta'] ) { ?>
                        	<p><input id="botonMultipedido" type="button" value="Distribuir cantidades por Pedido de compra" class="boton reducido"/></p>
                            <?php } ?>
                            
                            <input type="hidden" name="cantidadMultipedido" id="cantidadMultipedido" value="<?php echo $cantidadMultipedido; ?>"/>
                            
                            <script>
						
								function cadenaMultipedido() {
								
									$('#cantidadMultipedido').val('');
										
									var cadena='';
									var sumatorio=0;
										
									$('.cantidadPedido').each(function(){
									
										var pedido=$(this).attr('pedido');
										var pedidolinea=$(this).attr('pedidolinea');
										var cantidad=parseFloat($(this).val());
										
										var embalajePrimarioCaja=parseInt($('#EmbalajePrimarioCaja').val());
										
										if(cantidad) {
											
											sumatorio+=cantidad;
											
											if( $('#cajas').val()==1 ) cantidad=cantidad*embalajePrimarioCaja;
											cadena+=pedido+'@'+pedidolinea+'@'+cantidad+'|';
											
										}
										
									});
									
									if(sumatorio>0) $('#cantidad').val(sumatorio);
									else $('#cantidad').val('');
									
									$('#cantidadMultipedido').val(cadena);
								
								}
								
								function cantidadesMultipedido() {
								
									var cantidadMultipedido=0;
									var todasVacias=true;
									
									$('.cantidadPedido').each(function(){
										var cantidad=parseFloat($(this).val());
										if(cantidad) {
											todasVacias=false;
											cantidadMultipedido+=cantidad;
										}
									});
									
									if(todasVacias) return true;
									else return cantidadMultipedido;
								
								}
								
								$(document).ready(function(){
								
									$('#botonMultipedido').on('click',function(){
									
										$('#cantidad').val('');
										
										$('#cantidad').prop('readonly',true);
										$('#cantidad').addClass('deshabilitado');
										
										$('#borrarCantidad').hide();
										$('.bloqueCantidadMultipedido').show();
										
										//20-03-2025 TAREA INTERNA 65537 --> Sí que se permite mezclar multipalet y multipedido
										//$('#recepcionMasivaPaletResumen').hide();
										//$('#botonRecepcionMasivaPalet').hide(); //No se permite multipalet mezclado con multipedido
										$(this).hide();
										
										redimensionaPestanyas('contenedorPrincipal');
										
									});
								
									$('.cantidadPedido').on("click",function(e) {
										$('#calculadora').show();
										$('#valorCalculadora').val( $(this).val() );
										$('#enterCalculadora').attr('campoValor', $(this).attr('id') );
										$('#enterCalculadora').attr('forzarEnter','si');
									});
									
									$('.cantidadPedidoBorrar').on('click',function(){
										$(this).siblings('input').val('');
										$(this).siblings('input').focus();
										
										cadenaMultipedido()
									});
									
									$('.cantidadPedido').on("change",function(e) {
									
										cadenaMultipedido()
						
									});
								
								});
								
							</script>
                            
                        </td>
                    </tr>
                    
                    <tr class="bloqueCantidadMultipedido" style="<?php if(!$cantidadMultipedido) { ?>display:none;<?php } ?>">
                    
                    	<td colspan="2">
                        
                        	<table class="tablaFormateada" style="margin:20px auto 25px;font-size:0.9em">
                            
                            	<tr>
                                	<th>Pedido</th><th>Linea</th><th>Cantidad</th>
                                <tr>
                                
                                <?php
								
								// 2200259@1@36|2200317@11@18|
								
								$temp=explode('|',$cantidadMultipedido);
								$cantidadesIndividualesMultipedido=array();
								foreach($temp as $item) {
								
									$valores=explode('@',$item);
									$cadenaIndice='cantidad-'.$valores[0].'-'.$valores[1];

									if($mostrarCajas) {
										$cantidadIndividualPintar=(float)$valores[2];
										$cantidadIndividualPintar=$cantidadIndividualPintar/$_SESSION['producto']['EmbalajePrimarioCaja'];
									}
									else $cantidadIndividualPintar=$valores[2];
									
									$cantidadesIndividualesMultipedido[$cadenaIndice]=$cantidadIndividualPintar;
									
									//var flotante = parseFloat( $('#cantidad').val() / $('#EmbalajePrimarioCaja').val() );
									//var resultado = Math.round(flotante*100)/100;
									//if(resultado>0) $('#cantidad').val( resultado );
									
								}
								
								?>
                                
                                <?php foreach($productosCoincidentes as $pedido) { ?>
                                
                                <?php $cadenaIndice='cantidad-'.$pedido['Pedido'].'-'.$pedido['PedidoLinea']; ?>
                                
                                <tr>
                                	<td><?php echo $pedido['Pedido']; ?></td>
                                    <td><?php echo $pedido['PedidoLinea']; ?></td>
                                    <td>
                                    
                                    <input name="<?php echo $cadenaIndice; ?>" type="text" class="campo cantidad cantidadPedido campoOrdenPreparacion" id="<?php echo $cadenaIndice; ?>" maxlength="14" style="left:5px;position:relative;width:200px" <?php if( $pedirNumSerie ) { ?>readonly<?php } ?> value="<?php echo $cantidadesIndividualesMultipedido[$cadenaIndice]; ?>" autocomplete="off" pedido="<?php echo $pedido['Pedido']; ?>" pedidolinea="<?php echo $pedido['PedidoLinea']; ?>"/>
                                        <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarCantidad-<?php echo $pedido['Pedido']; ?>-<?php echo $pedido['PedidoLinea']; ?>" style="position:relative;vertical-align:middle;cursor:pointer;top:3px;margin-left:-50px;margin-top:-15px;" class="cantidadPedidoBorrar"/>
                                     
                                    
                                    </td>
                                </tr>
                                
                                <?php } ?>
                                
                            </table>
                        
                        </td>
                        
                    <tr> <!-- bloque de cantidades multipedido -->

					
					 <?php

				}
			
			}
			
			////////////////// FIN cantidades multipedido /////////////
			
			?>
            
            
            
            <?php if($tipoLectura=='EAN' && $_SESSION['producto']['EmbalajePrimarioCaja']>1) { ?>
            
            <tr><td colspan="2" class="error" style="font-size:0.75em;padding-top:10px">Atención: Has leido un EAN (unitario) pero el producto consta en formato de <?php echo $_SESSION['producto']['EmbalajePrimarioCaja']; ?> unidades.
            
			
            <?php if($_POST['cantidad']) $cantidadCalcular=$_POST['cantidad']; else if($_SESSION['lecturasGS1']['cantidad']) $cantidadCalcular=$_SESSION['lecturasGS1']['cantidad']; ?>
            <?php if($cantidadCalcular) { ?>
            <br />Contempla la posibilidad de que la cantidad real sea: <?php echo $_SESSION['producto']['EmbalajePrimarioCaja']; ?>x<?php echo $_SESSION['lecturasGS1']['cantidad']; ?>=<?php echo $_SESSION['lecturasGS1']['cantidad']*$_SESSION['producto']['EmbalajePrimarioCaja']; ?> unidades en vez de <?php echo $_SESSION['lecturasGS1']['cantidad']; ?>.
            <?php } ?>
            
            </td></tr>
            
            <?php } ?>
            
            
            
            <?php if($controlPesaje) { ?>
            
            	<tr>
                
                    <td colspan="2">
                    	<div style="float:left;margin-top: 15px;">Báscula:</div>
                    	<div style="float:right;margin-right: -56px;margin-top: 4px;">
                        	<select id="pesajeBascula" name="pesajeBascula" class="campo" style="width:402px;margin-left:5px;height:55px;font-size:1.3em">
                                <option value="">---</option>
                                <?php foreach(arreglaArrayPXMobileProxiumResult($_SESSION['parametrosSGA']['Basculas']) as $bascula) { ?>
                                <option value="<?php echo $bascula['BasculaCodigo']; ?>" <?php if($_SESSION['pesaje']['bascula']==$bascula['BasculaCodigo']) { ?>selected<?php } ?>><?php echo $bascula['BasculaDescripcion']; ?></option>
                                <?php } ?>
                            </select>
                    	</div>
                    </td>
                
                </tr>
            
            	<tr>
                
                    <td colspan="2">
                    	<div style="float:left;margin-top: 15px;">Impresora de etiquetas:</div>
                    	<div style="float:right;margin-right: -56px;margin-top: 4px;">
                        	<select name="pesajeImpresora" id="pesajeImpresora" class="campo" style="width:402px;margin-left:5px;height:55px;font-size:1.3em">
                                <option value="" <?php if(!$impresora) { ?>selected<?php } ?>>---</option>
                                <?php foreach($_SESSION['entrada']['impresoras'] as $impresora) { ?>
                                <option value="<?php echo $impresora['Impresora']; ?>" <?php if($_SESSION['pesaje']['impresora']==$impresora['Impresora']) { ?>selected<?php } ?>><?php echo $impresora['Impresora']; ?></option>
                                <?php } ?>
                            </select>
                    	</div>
                    </td>
                
                </tr>

            <?php } ?>
            
            
            
            
            <?php if($pedirPesoNeto) { //ATENCION: Este peso neto se controla a nivel de Entrada, no de producto. 23/06/2020 implementamos pesos por productos ?>
            
            <tr><td align="left">Peso neto:</td><td>
            
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <input name="pesoNeto" type="text" class="campo cantidad campoOrdenPreparacion" id="pesoNeto" maxlength="14" style="left:5px;" value="<?php if($_POST['pesoNeto']) echo $_POST['pesoNeto']; else echo $_SESSION['lecturasGS1']['pesoNeto']; ?>" autocomplete="off"/>
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPesoNeto" style="position: absolute;right:-55px;cursor:pointer;top:3px;" />                </div>
            </div>
            
            </td></tr>
            
            <?php } ?>
            
            <?php
			
			
            
			/*
			B => solo bruto
			S => bruto + tara -> neto no editable. tara puede estar vacio
			W => solo neto no editable
			BN => bruto + neto -> tara no editable
			*/
			
			
			?>
            
            <?php if($pedirPesoVariable=='S' || $pedirPesoVariable=='B' || $pedirPesoVariable=='BN') {?>
            
            <tr><td align="left">Peso bruto:</td><td>
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <input name="pesoVariablePesoBruto" type="text" class="campo cantidad campoOrdenPreparacion" id="pesoVariablePesoBruto" maxlength="14" style="left:5px;" value="<?php if($_POST['pesoVariablePesoBruto']) echo $_POST['pesoVariablePesoBruto']; else echo $_SESSION['lecturasGS1']['pesoBruto']; ?>" autocomplete="off"/>
                <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPesoVariablePesoBruto" style="position: absolute;right:-55px;cursor:pointer;top:3px;" />                </div>
            </div>
            </td></tr>
            
            <?php } ?>
            
            <?php if($pedirPesoVariable=='S') {?>
            
            <tr><td align="left">Tara:</td><td>
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <input name="pesoVariableTara" type="text" class="campo cantidad campoOrdenPreparacion " id="pesoVariableTara" maxlength="14" style="left:5px;" value="<?php if($_POST['pesoVariableTara']) echo $_POST['pesoVariableTara']; else if($_SESSION['lecturasTemporalesGS1']['pesoNeto'] && $_SESSION['lecturasTemporalesGS1']['pesoBruto']) echo (float)$_SESSION['lecturasTemporalesGS1']['pesoBruto']-(float)$_SESSION['lecturasTemporalesGS1']['pesoNeto'] ?>" autocomplete="off" />
                <?php if($pedirPesoVariable=='S') { ?><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPesoVariableTara" style="position: absolute;right:-55px;cursor:pointer;top:3px;" /><?php } ?>
                </div>
            </div>
            </td></tr>
            
            <?php } ?>
            
            <?php if($pedirPesoVariable=='S' || $pedirPesoVariable=='W' || $pedirPesoVariable=='BN') {?>
            
            <tr><td align="left">Peso neto:</td><td>
            <div id="bloqueContenedor">
                <div class="campoOrdenPreparacionBloque">
                <input name="pesoVariablePesoNeto" type="text" class="campo cantidad campoOrdenPreparacion <?php if($pedirPesoVariable=='S') { ?>deshabilitado<?php } ?>" id="pesoVariablePesoNeto" maxlength="14" style="left:5px;" value="<?php if($_POST['pesoVariablePesoNeto']) echo $_POST['pesoVariablePesoNeto']; else echo $_SESSION['lecturasTemporalesGS1']['pesoNeto']; ?>" autocomplete="off" <?php if($pedirPesoVariable=='S') { ?>readonly<?php } ?>/>
                <?php if($pedirPesoVariable=='W' || $pedirPesoVariable=='BN') { ?><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPesoVariablePesoNeto" style="position: absolute;right:-55px;cursor:pointer;top:3px;" /><?php } ?>
                </div>
            </div>
            </td></tr>
            
            <?php } ?>
            
            
            
        
        	 <?php if($pedirUbicacion) { ?>
             
             	<?php if($pedirUbicacionMostrarUbicacionPropuesta) { // 28-11-2023 Esto lo definimos en el config a falta de parametrizar. Solo para demopriv ?>
                
                <tr>
                
                    <td align="left">Ubicación propuesta:</td>
                    <td>
                    
                    <div id="bloqueUbicacion">
                    	<div class="campoOrdenPreparacionBloque">
                        <input id="ubicacionPropuesta" name="ubicacionPropuesta" type="text" class="campo campoOrdenPreparacion deshabilitado"  style="left:5px;" autocomplete="off" value="<?php echo $pedirUbicacionMostrarUbicacionPropuesta; ?>" readonly>
                        </div>
                    </div>
                    
                    </td>
                
                </tr>
                
                <?php } ?>
            
            
				<?php
				
				$ubicacionFijada=$_SESSION['entradaFijar-ubicacion'];

				if($_SESSION['entradaFijar-ubicacion']) $ubicacionPintar=$_SESSION['entradaFijar-ubicacion'];
				else if($_POST['ubicacion']) $ubicacionPintar=$_POST['ubicacion'];
				else if($esDevolucion) $ubicacionPintar=$_SESSION['playas']['PlayaDevolucion'];
				else if($_SESSION['ubicacionPaletEntradaAutomatizar'])  $ubicacionPintar=$_SESSION['ubicacionPaletEntradaAutomatizar'];

                ?>
    
                <tr>
                
                    <td align="left"><img id="fijarLote" src="<?php echo DIR_IMAGENES; ?>/palet-fijar<?php if(!$_SESSION['entradaFijar-ubicacion']) { ?>-off<?php } ?>.png" alt="Fijar" class="iconoFijar entradaChincheta" campo="ubicacion" activo="<?php if($_SESSION['entradaFijar-ubicacion']) { ?>1<?php } else { ?>0<?php } ?>"/>Ubicar el palet en:</td>
                    <td>
                    
                    <div id="bloqueUbicacion">
                    
                        <input type="hidden" id="segundaLecturaUbicacion" name="segundaLecturaUbicacion" />
                        <input type="hidden" id="segundaLecturaUbicacionDefinitiva" name="segundaLecturaUbicacionDefinitiva" />
                    
                    	<div class="campoOrdenPreparacionBloque">
                            <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoUbicacion" <?php if($ubicacionFijada) { ?>style="display:none"<?php } ?>/><input name="ubicacion" type="text" class="campo campoOrdenPreparacion  <?php if($_SESSION['entradaFijar-ubicacion']) { ?>deshabilitado<?php } ?>" id="ubicacion" style="left:5px;" autocomplete="off" value="<?php echo $ubicacionPintar; ?>" <?php if($ubicacionFijada) { ?>readonly<?php } ?>>
                            <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarUbicacion" style="position: absolute;right:-55px;cursor:pointer;top:3px;<?php if($ubicacionFijada) { ?>display:none<?php } ?>" />
                            <img src="<?php echo DIR_IMAGENES; ?>/playa.png" alt="Seleccionar Playa" id="botonPlayasDestinoUbicacion" style="position:absolute;width:45px;cursor:pointer;margin-left:425px;margin-top:5px;"/>
                        </div>
                    </div>
                    
                    <script>
					
					$(document).ready(function() {
					
						$('#botonPlayasDestinoUbicacion').on("click",function(e){
							e.preventDefault();
							$('#popupPlayas').show();
						});
						
						$('.selectorPlaya').on("click",function(e){
							
							e.preventDefault();
							
							$('#popupPlayas').hide();
							$('#ubicacion').val( $(this).attr('id') );
							//$('#ubicacion').trigger('change'); //Si hacemos trigger, entonces si tiene doble ubicacion, salta el teclado
							
						});
					
					});
					
					</script>
                    
                    </td>
                
                </tr>
            
            <?php } //Fin if pedir ubicacion ?>



            <?php //if( $asociacionEANaProductos && !$_SESSION['producto']['EAN'] ) { ?>
            <?php if( $asociacionEANaProductos && $_SESSION['producto']['EsGenerico']!='S' ) { ?>
            
            <?php
			
			$valoresEanAnteriores=explode(',',$_SESSION['producto']['EAN']);
			
			if($_SESSION['lecturasTemporalesGS1']['eanDun'] && !in_array($_SESSION['lecturasTemporalesGS1']['eanDun'],$valoresEanAnteriores) ) $eanDunPintar=$_SESSION['lecturasTemporalesGS1']['eanDun']; else $eanDunPintar='';
			
			?>
            
			<tr>
            	<td align="left">Informar EAN del producto:</td>
            	<td>
            
                <div id="bloqueContenedor">
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoInformarEAN" /><input name="informarEAN" type="text" class="campo campoOrdenPreparacion" id="informarEAN" maxlength="14" style="left:5px;" value="<?php echo $eanDunPintar; ?>" autocomplete="off">
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarInformarEAN" style="position:absolute;right:-55px;cursor:pointer;top:3px;" />
                    </div>
                </div>
                
            	</td>
			</tr>
            
            <?php } ?>
            
            
            
        	</table>
            
            <?php if( $_SESSION['seleccionTipoPaletEntrada'] && $_SESSION['entrada']['RequiereDimensionesPalets']=='S' ) { //15-02-2024 se oculta si requiere dimensiones, porque se traslada abajo ?>
            
            	<?php
				if($_GET['traza']=='si') {
					print_r($infoContenedor);
				}
				?>
            
            	<p>Atributos del palet:</p>
            
            	<table style="margin: 0 auto" cellpadding="5">
    
                    <tr>
                        <th width="50"></th>		
                        <th>Tipo</th>
                        <th width="50">Ancho (mm)</th>
                        <th width="50">Fondo (mm)</th>
                        <th width="50">Alto (mm)</th>
                        <th width="50">m<sup>3</sup></th>
                    </tr>
                    
                    <tr>
                        <td>
                        	<?php $esPaletChep=($_SESSION['tiposPalet'][$codigoPalet]['CHEP']=='S'); ?>
                        	<img id="iconoPalet" src="<?php echo DIR_IMAGENES; ?>/palet-vacio<?php if($esPaletChep) { ?>-chep<?php } ?>.png" width="50" />
                        </td>
                        
                        <td>
                        
                        	<select name="tipoPalet" id="tipoPalet" class="campo" valorOriginal="<?php echo $infoContenedor['TipoPalet']; ?>" >
                                    <option value="">---</option>
                                    
                                    <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
                                    	<option value="<?php echo $codigoPalet; ?>" <?php if($codigoPalet==$infoContenedor['TipoPalet']) { ?>selected<?php } ?> chep="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['CHEP']; ?>" ancho="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['Ancho']; ?>" fondo="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['Fondo']; ?>" peso="<?php if($_SESSION['tiposPalet'][$codigoPalet]['Peso']) echo round($_SESSION['tiposPalet'][$codigoPalet]['Peso'],2); ?>"><?php echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?></option>
                                    <?php } ?>
							</select>

                        </td>
                        
                        <td><input type="text" id="palet-ancho" name="palet-ancho" class="campo cantidad campoAtributo" style="width:80px" autocomplete="off" value="<?php if($infoContenedor['ContenedorAncho']>0) echo $infoContenedor['ContenedorAncho']; else if($_SESSION['entradaPaletActualAncho']) echo $_SESSION['entradaPaletActualAncho']; ?>"/></td>
                        <td><input type="text" id="palet-fondo" name="palet-fondo" class="campo cantidad campoAtributo" style="width:80px" autocomplete="off" value="<?php if($infoContenedor['ContenedorFondo']>0) echo $infoContenedor['ContenedorFondo']; else if($_SESSION['entradaPaletActualFondo']) echo $_SESSION['entradaPaletActualFondo']; ?>"/></td>
                        <td><input type="text" id="palet-alto" name="palet-alto" class="campo cantidad campoAtributo" style="width:80px" autocomplete="off" value="<?php if($infoContenedor['ContenedorAlto']>0) echo $infoContenedor['ContenedorAlto']; else if($_SESSION['entradaPaletActualAlto']) echo $_SESSION['entradaPaletActualAlto']; ?>"/></td>
                        
                        <td>
                        <?php
                        $m3=($infoContenedor['ContenedorAncho']/1000) * ($infoContenedor['ContenedorFondo']/1000) * ($infoContenedor['ContenedorAlto']/1000);
                        if($m3) $m3=number_format($m3,2,',','.');
                        else $m3='';
                        ?>
                        <input type="text" id="palet-m3" name="palet-m3" class="campo deshabilitado" style="width:80px" autocomplete="off" value="<?php echo $m3; ?>" readonly/>
                        </td>
                        
                    </tr>

        		</table>
                
                <script>
				
				$(document).ready(function() {
				
					$('.campoAtributo').on('click',function(e) {
					
						if( !$(this).hasClass('deshabilitado') ) {
					
							$('#calculadora').show();
							$('#valorCalculadora').val( $(this).val() );
							$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
							$('#enterCalculadora').attr('forzarEnter','si');
						
						}
						
					});
					
					$('.campoAtributo').on('change',function(e) {
		
						e.preventDefault();
						
						var nombre=$(this).attr('id');
						
						console.log('cambio: '+nombre);
						
						var valores=nombre.split('-');
						var composicionNombrePalet='palet-'+valores[1]+'-';
						
						var calculo= parseInt($('#palet-ancho').val())/1000 * parseInt($('#palet-fondo').val())/1000 * parseInt($('#palet-alto').val())/1000;
						
						if(calculo>0) {
							calculo=parseFloat(calculo);
							calculo=calculo.toFixed(2);
							console.log('calculo: '+calculo);
							calculo=calculo.toString().replace('.',',');
						}
						else calculo='';
						$('#palet-m3').val( calculo );
						
					});
				
					$('#tipoPalet').on('change',function(){
					
						var seleccionado=$('option:selected',this);
			
						var ancho=seleccionado.attr('ancho');
						var fondo=seleccionado.attr('fondo');
						
						if(ancho || fondo) {
						
							var anchoInformado=$('#palet-ancho');
							var fondoInformado=$('#palet-fondo');
							
							if(anchoInformado.val()=='' && fondoInformado.val()=='') {
								if(ancho) anchoInformado.val(ancho);
								if(fondo) fondoInformado.val(fondo);
							}
							else {
								confirm('Las dimensiones de este tipo de Palet no coinciden con los valores informados.<br><br>¿Deseas cambiarlos por los estándares?','pregunta','Sustituir','Mantener')
								.done(function(){
									if(ancho) anchoInformado.val(ancho);
									if(fondo) fondoInformado.val(fondo);
								});
							}
							
						}
						
						//color icono chep
						if(seleccionado.attr('chep')=='S') {
							$('#iconoPalet').attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio-chep.png');
						}
						else {
							$('#iconoPalet').attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio.png');
						}

					});
					
				});
				
				</script>
            
			<?php } ?>
            
          <br />
        
        <?php } ?>
        
        
        
        
        <!-- 27-11-2024 CaracteristicasProducto -->
        
        <?php
		
		if($_SESSION['producto']['CaracteristicasProducto']) {
		
			$CaracteristicasProducto=arreglaArrayPXMobileProxiumResult($_SESSION['producto']['CaracteristicasProducto']);
			
			include('contenidos/entrada-mercancia-caracteristicas-edicion.php');
        
        }
		?>
        
        <!-- //Fin CaracteristicasProducto -->
        
        
        
        
        
        
        
        <input type="hidden" id="recepcionMasivaPaletAnteriores" name="recepcionMasivaPaletAnteriores" style="width:100%" value="<?php foreach( $_SESSION['relacionPaletsProxiumCliente'] as $clave=>$valor ) { echo $clave.'@'.$valor.'|'; } ?>" />
        
        <script>
		
		function compruebaCantidadesPedidoVenta() {
			
			let valorInformado=parseFloat($('#cantidad').val());
			let valorPendiente=parseFloat('<?php echo $_SESSION['producto']['CantidadNuevoPendiente']; ?>');
			let recepcionMasivaPalet=$('#recepcionMasivaPalet').val();
			
			let paletsAdicionales=0
			
			if(recepcionMasivaPalet) {
				$('#recepcionMasivaPalet').val().split('|').forEach(palet=>{
					if(palet!='') paletsAdicionales++;
				});
			}
			
			valorInformado=valorInformado+(paletsAdicionales * valorInformado);
			
			if(valorInformado>valorPendiente) {
			
				alert('Atención: Esta compra procede de un Pedido de Venta<br>y has informado una cantidad mayor de la solicitada.',null,'advertencia');
			
			}
		
		}
		
		//26-1-2022 Esta función estaba definida dentro del bloque de recepcion masiva, pero la saco porque tb se usa cuando no hay
		
		function recepcionMasivaPaletCompruebaRelacionPaletCliente(palet,paletIdCliente,soloAnteriores) {
		
			var error=false;
			var valoresAntes=$('#recepcionMasivaPaletAnteriores').val().split('|');
			var valoresAhora;
			if(!soloAnteriores) valoresAhora=$('#recepcionMasivaPalet').val().split('|');
			
			var valores;
			
			if(soloAnteriores) valores=valoresAntes;
			else valores=valoresAntes.concat(valoresAhora);;
			
			for(var i=0;i<valores.length;i++) {
				var contenido=valores[i].split('@');
				if( paletIdCliente==contenido[1] && palet!=contenido[0] ) error=true;
			}
			
			return !error;
		
		}
		
		</script>
        
        <?php ///////////// RECEPCION MASIVA DE PALETS /////////////////// ?>
        
        <?php if( !$_SESSION['entradaEsDevolucion'] && ( $recepcionMasivaPalets && !$cantidadMultipedido ) ) { ?>
        
        <div id="bloqueRecepcionMasivaPalet" style="display:none">
        
        	<div id="popupRecepcionMasivaPalet" class="popup" style="z-index:20000"></div>
			<div id="popupRecepcionMasivaPaletContenido" class="popupContenidoScroll" style="width:fit-content;min-width:550px;z-index:20000;margin-right:-20px">
        
                <h2>Recepción masiva de palets iguales:</h2>
                
                <table style="margin:0 auto;width:<?php if($pedirSubIdPaletCliente) { ?>1130<?php } else if($pedirPaletCliente) { ?>890<?php } else { ?>470<?php } ?>px"><tr><td width="470"><p style="padding-left:0">Palet</p></td><?php if($pedirPaletCliente) { ?><td width="420"><p style="padding-left:60px">Id Palet Cliente</p></td><?php } ?><?php if($pedirSubIdPaletCliente) { ?><td width="220"><p style="padding-left:50px">Sub Id Cliente</p></td><?php } ?></tr></table>
                
                <div style="text-align:left;margin-bottom:20px">
                <table style="margin:0 auto;width:<?php if($pedirSubIdPaletCliente) { ?>1130<?php } else  if($pedirPaletCliente) { ?>890<?php } else { ?>470<?php } ?>px"><tr>
                <td width="410"><input name="lecturaRecepcionMasivaPalet-0" type="text" class="campo campoOrdenPreparacion deshabilitado" readonly id="lecturaRecepcionMasivaPalet-0" contador="0" autocomplete="off" style="position:relative;width:320px;margin-left:50px" value=""/></td><td><p style="text-align:right;width:50px;padding-right:10px">1</p></td>
                <?php if($pedirPaletCliente) { ?>
                <td><input name="lecturaRecepcionMasivaPaletIdCliente-0" type="text" class="campo campoOrdenPreparacion deshabilitado" readonly id="lecturaRecepcionMasivaPaletIdCliente-0" contador="0" autocomplete="off" style="position:relative;width:320px;margin-left:45px;" value=""/></td>
                <?php } ?>
                <?php if($pedirSubIdPaletCliente) { ?>
                <td><input name="lecturaRecepcionMasivaPaletSubIdCliente-0" type="text" class="campo campoOrdenPreparacion deshabilitado" readonly id="lecturaRecepcionMasivaPaletSubIdCliente-0" contador="0" autocomplete="off" style="position:relative;width:150px;margin-left:60px;" value=""/></td>
                <?php } ?>
                </tr></table>
                </div>
                
                <div id="nuevaLecturaRecepcionMasivaPalet-0">
                </div> <!-- Fin nuevaLecturaRecepcionMasivaPalet-0 -->
                
                <p style="clear:both"><input id="botonRecepcionMasivaPaletAceptar" type="button" value="Aceptar" class="boton"/></p>
            
            </div> <!-- popup -->
            
            
                
        </div>
        
        <!-- 26-1-2022 esto lo saco fuera porque tb se usa cuando no hay recepcion masiva
        <input type="hidden" id="recepcionMasivaPaletAnteriores" name="recepcionMasivaPaletAnteriores" style="width:100%" value="<?php foreach( $_SESSION['relacionPaletsProxiumCliente'] as $clave=>$valor ) { echo $clave.'@'.$valor.'|'; } ?>" />
        -->
        <input type="hidden" id="recepcionMasivaPalet" name="recepcionMasivaPalet" style="width:100%" value="<?php if($_POST['recepcionMasivaPalet']) echo $_POST['recepcionMasivaPalet']; ?>" /> <!-- campo para datos --> 
        
        <div id="recepcionMasivaPaletResumen"></div>
        
        <p><input id="botonRecepcionMasivaPalet" type="button" value="Asociar más palets" class="boton"/></p>
        
        <script>
		
		function actualizaCantidadesResumenPaletsMasivos() {
		
			
			var cantidadOriginal=parseFloat($('#cantidad').val());
			var embalajePrimario=parseFloat($('#EmbalajePrimarioCaja').val());
			
			var cantidad=0;
			var cantidadCajas=0;
			var cuantasLecturas=1;
			
			/*
			$('.lecturaRecepcionMasivaPalet').each(function(){
				if($(this).val()!='') cuantasLecturas++;
			});
			*/
			var valores=$('#recepcionMasivaPalet').val().split('|');
			for(var i=0;i<valores.length;i++) if(valores[i]!='') cuantasLecturas++;
			
			
			if( cantidadOriginal ) {
				if( $('#cajas').val()==1) {
					cantidadCajas=$('#cantidad').val();
					cantidad=cantidadCajas*embalajePrimario;
				}
				else {
					cantidad=$('#cantidad').val();
					cantidadCajas=cantidad/embalajePrimario;
				}
			}
			
			$('.paletsMasivosCantidad').html( cantidad );
			$('.paletsMasivosCantidadCajas').html( cantidadCajas );
			$('.paletsMasivosCantidadTotal').html( cantidad * cuantasLecturas );
			$('.paletsMasivosCantidadCajasTotal').html( cantidadCajas * cuantasLecturas );
			
			
		}
		
		function cargaResumenPaletsMasivos(noRefrescar){
		
			var contenido='';
			
			contenido+='<p>Resumen de lectura de palets:</p>'
            
			contenido+='<table class="tablaFormateada">';
			contenido+='<tr>';
			contenido+='<th colspan="2">Palet</th>';
			<?php if($pedirPaletCliente) { ?>
			contenido+='<th>Id cliente</th>';
			<?php } ?>
			<?php if($pedirSubIdPaletCliente) { ?>
			contenido+='<th>Sub Id cliente</th>';
			<?php } ?>
			contenido+='<th>Cantidad</th>';
			<?php if($_SESSION['verEnCajas']=='S') { ?>
			contenido+='<th>Cajas</th>';
			<?php } ?>
			contenido+='</tr>';
			
			var cuantasLecturas=1;
			
			contenido+='<tr>';
			contenido+='<td>'+cuantasLecturas+'</td>';
			contenido+='<td>'+$('#contenedor').val()+'</td>';
			<?php if($pedirPaletCliente) { ?>
			contenido+='<td>'+$('#paletCliente').val()+'</td>';
			<?php } ?>
			<?php if($pedirSubIdPaletCliente) { ?>
			contenido+='<td>'+$('#subIdPaletCliente').val()+'</td>';
			<?php } ?>
			contenido+='<td class="paletsMasivosCantidad" align="right"></td>';
			<?php if($_SESSION['verEnCajas']=='S') { ?>
			contenido+='<td class="paletsMasivosCantidadCajas" align="right"></td>';
			<?php } ?>
			contenido+='</tr>';
			
			
			
			/*
			$('.lecturaRecepcionMasivaPalet').each(function(){
			
				if($(this).val()!='') {
				
					var contador=$(this).attr('contador');
					
					cuantasLecturas++;
					
					contenido+='<tr>';
					contenido+='<td>'+cuantasLecturas+'</td>';
					contenido+='<td>'+$('#lecturaRecepcionMasivaPalet-'+contador).val()+'</td>';
					<?php if($pedirPaletCliente) { ?>
					contenido+='<td>'+$('#lecturaRecepcionMasivaPaletIdCliente-'+contador).val()+'</td>';
					<?php } ?>
					<?php if($pedirSubIdPaletCliente) { ?>
					contenido+='<td>'+$('#lecturaRecepcionMasivaPaletSubIdCliente-'+contador).val()+'</td>';
					<?php } ?>
					contenido+='<td class="paletsMasivosCantidad" align="right"></td>';
					<?php if($_SESSION['verEnCajas']=='S') { ?>
					contenido+='<td class="paletsMasivosCantidadCajas" align="right"></td>';
					<?php } ?>
					contenido+='</tr>';
					
					
				}
				
			});
			*/
			
			var valores=$('#recepcionMasivaPalet').val().split('|');
			
			for(var i=0;i<valores.length;i++) {
			
				var temp=valores[i];
				var valores2=temp.split('@');
				
				id=valores2[0];
				idCliente=valores2[1];
				idSubCliente=valores2[2];
			
				if(id!='') {
				
					cuantasLecturas++;
					
					contenido+='<tr>';
					contenido+='<td>'+cuantasLecturas+'</td>';
					contenido+='<td>'+id+'</td>';
					<?php if($pedirPaletCliente) { ?>
					contenido+='<td>'+idCliente+'</td>';
					<?php } ?>
					<?php if($pedirSubIdPaletCliente) { ?>
					contenido+='<td>'+idSubCliente+'</td>';
					<?php } ?>
					contenido+='<td class="paletsMasivosCantidad" align="right"></td>';
					<?php if($_SESSION['verEnCajas']=='S') { ?>
					contenido+='<td class="paletsMasivosCantidadCajas" align="right"></td>';
					<?php } ?>
					contenido+='</tr>';

					
					
				}
				
			}
			
			//});
			
			//Totales
			
			contenido+='<tr><td <?php if($pedirSubIdPaletCliente) { ?>colspan="4"<?php } else if($pedirPaletCliente) { ?>colspan="3"<?php } else { ?>colspan="2"<?php } ?> align="left"><strong>TOTAL</strong></td>';
			contenido+='<td align="right"><strong class="paletsMasivosCantidadTotal"></strong></td>';
			<?php if($_SESSION['verEnCajas']=='S') { ?>
			contenido+='<td align="right"><strong class="paletsMasivosCantidadCajasTotal"></strong></td>';
			<?php } ?>
			contenido+='</tr>';
	
			contenido+='</table>';
			
			$('#recepcionMasivaPaletResumen').html( contenido );
			
			actualizaCantidadesResumenPaletsMasivos();
			
			if(!noRefrescar) redimensionaPestanyas('contenedorPrincipal');
		
		}
		
		function construyeCampoFinalRecepcionMasivaPalet(){
		
			$('#recepcionMasivaPalet').val('');
			var cadena='';
			
			$('.lecturaRecepcionMasivaPalet').each(function(){
				if($(this).val()!='') {
					cadena+=$(this).val();
					<?php if($pedirPaletCliente) { ?>
					var contador=$(this).attr('contador');
					cadena+='@'+$('#lecturaRecepcionMasivaPaletIdCliente-'+contador).val();
					<?php } ?>
					<?php if($pedirSubIdPaletCliente) { ?>
					cadena+='@'+$('#lecturaRecepcionMasivaPaletSubIdCliente-'+contador).val();
					<?php } ?>
					cadena+='|';
				}
			});
			
			$('#recepcionMasivaPalet').val(cadena);
		
		}
		
		function construyeNuevaLineaRecepcionMasivaPalet(contador,contenidoPalet='',contenidoIdCliente='',contenidoSubIdCliente='') {
		
			var nuevoContador=parseInt(contador)+1;
			var numeroPalet=nuevoContador+1;
			
			contenido='';
		
			contenido+='<div id="bloqueLecturaRecepcionMasivaPalet-'+nuevoContador+'" style="text-align:left;margin-bottom:20px"><table style="margin:0 auto;width:<?php if($pedirSubIdPaletCliente) { ?>1130<?php } else  if($pedirPaletCliente) { ?>890<?php } else { ?>470<?php } ?>px"><tr><td><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado tecladoRecepcionMasivaPalet" id="tecladoRecepcionMasivaPalet-'+nuevoContador+'" style="margin-right:0;margin-left:0"/><input name="lecturaRecepcionMasivaPalet-'+nuevoContador+'" type="text" class="campo campoOrdenPreparacion lecturaRecepcionMasivaPalet" id="lecturaRecepcionMasivaPalet-'+nuevoContador+'" contador="'+nuevoContador+'" autocomplete="off" style="position:relative;width:320px" value="'+contenidoPalet+'"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLecturaRecepcionMasivaPalet-'+nuevoContador+'" class="borrarLecturaRecepcionMasivaPalet" style="cursor:pointer;position:absolute;margin:0 0 -12px -40px" /></td><td><p style="text-align:right;width:50px;padding-right:10px">'+numeroPalet+'</p></td>';
			 
			 <?php if($pedirPaletCliente) { ?>
			 
			  contenido+='<td><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado tecladoRecepcionMasivaPalet" id="tecladoRecepcionMasivaPaletIdCliente-'+nuevoContador+'" style="margin-right:0;margin-left:0"/><input name="lecturaRecepcionMasivaPaletIdCliente-'+nuevoContador+'" type="text" class="campo campoOrdenPreparacion lecturaRecepcionMasivaPaletIdCliente" id="lecturaRecepcionMasivaPaletIdCliente-'+nuevoContador+'" contador="'+nuevoContador+'" autocomplete="off" style="position:relative;width:320px" value="'+contenidoIdCliente+'"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLecturaRecepcionMasivaPaletIdCliente-'+nuevoContador+'" class="borrarLecturaRecepcionMasivaPalet" style="cursor:pointer;position:absolute;margin:0 0 -12px -40px" /><img src="<?php echo DIR_IMAGENES; ?>/candado.png" alt="Desbloquear" class="desbloquearPaletClienteMasivo" id="desbloquearPaletClienteMasivo-'+nuevoContador+'" style="position:absolute;cursor:pointer;width:45px;margin:0 20px;display:none" contador="'+nuevoContador+'"/></td>';
			 
             <?php } ?>
			 
			 <?php if($pedirSubIdPaletCliente) { ?>
			 
			 contenido+='<td><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado tecladoRecepcionMasivaPalet" id="tecladoRecepcionMasivaPaletSubIdCliente-'+nuevoContador+'" style="margin-right:0;margin-left:0"/><input name="lecturaRecepcionMasivaPaletSubIdCliente-'+nuevoContador+'" type="text" class="campo campoOrdenPreparacion lecturaRecepcionMasivaPaletSubIdCliente" id="lecturaRecepcionMasivaPaletSubIdCliente-'+nuevoContador+'" contador="'+nuevoContador+'" autocomplete="off" style="position:relative;width:150px" value="'+contenidoSubIdCliente+'"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLecturaRecepcionMasivaPaletSubIdCliente-'+nuevoContador+'" class="borrarLecturaRecepcionMasivaPalet" style="cursor:pointer;position:absolute;margin:0 0 -12px -40px" /><img src="<?php echo DIR_IMAGENES; ?>/candado.png" alt="Desbloquear" class="desbloquearPaletSubIdClienteMasivo" id="desbloquearPaletSubIdClienteMasivo-'+nuevoContador+'" style="position:absolute;cursor:pointer;width:45px;margin:0 20px;display:none" contador="'+nuevoContador+'"/></td>';
			
            <?php } ?>
            
			contenido+='</tr></table></div><div id="nuevaLecturaRecepcionMasivaPalet-'+nuevoContador+'"></div>';
				
			$('#nuevaLecturaRecepcionMasivaPalet-'+contador).html( contenido );
			$('#lecturaRecepcionMasivaPalet-'+nuevoContador).focus();
		
		}
		
		function inicializaRecepcionMasivaPaletConDatos() {
		
			$('#nuevaLecturaRecepcionMasivaPalet-0').html('');
			
			var valor=$('#recepcionMasivaPalet').val().split('|');
				
			for(var i=0;i<valor.length;i++) {
				<?php if($pedirSubIdPaletCliente) { ?>
				var contenido=valor[i].split('@');
				construyeNuevaLineaRecepcionMasivaPalet(i,contenido[0],contenido[1],contenido[2]);
				<?php } else if($pedirPaletCliente) { ?>
				var contenido=valor[i].split('@');
				construyeNuevaLineaRecepcionMasivaPalet(i,contenido[0],contenido[1],'');
				<?php } else { ?>
				construyeNuevaLineaRecepcionMasivaPalet(i,valor[i],'','');
				<?php } ?>
				$('#lecturaRecepcionMasivaPalet-'+i).focus();
			}
			
			return i;
		
		}
		
		function recepcionMasivaPaletNoRepetido(palet,paletIdCliente) {
		
			var error=false;
			var valores=$('#recepcionMasivaPalet').val().split('|');
			
			if(palet) {
				if(palet==$('#contenedor').val()) error=true;
				else {
					for(var i=0;i<valores.length;i++) {
						<?php if($pedirPaletCliente) { ?>
						var contenido=valores[i].split('@');
						if(palet==contenido[0]) error=true;
						<?php } else { ?>
						if(palet==valores[i]) error=true;
						<?php } ?>
					}
				}
			}
			else {
				if(paletIdCliente==$('#paletCliente').val()) error=true;
				else {
					for(var i=0;i<valores.length;i++) {
						var contenido=valores[i].split('@');
						if(paletIdCliente==contenido[1]) error=true;
					}
				}
			}
			
			return !error;
		
		}
		
		// ESTA FUNCION LA MUEVO FUERA, PORQUE TAMBIEN SE USA CUANDO ---NO--- HAY RECEPCION MASIVA
		/*
		function recepcionMasivaPaletCompruebaRelacionPaletCliente(palet,paletIdCliente,soloAnteriores) {
		
			var error=false;
			var valoresAntes=$('#recepcionMasivaPaletAnteriores').val().split('|');
			var valoresAhora=$('#recepcionMasivaPalet').val().split('|');
			
			var valores;
			
			if(soloAnteriores) valores=valoresAntes;
			else valores=valoresAntes.concat(valoresAhora);;
			
			for(var i=0;i<valores.length;i++) {
				var contenido=valores[i].split('@');
				if( paletIdCliente==contenido[1] && palet!=contenido[0] ) error=true;
			}
			
			return !error;
		
		}
		*/
		
		
		$(document).ready(function() {
		
			$('#botonRecepcionMasivaPalet').on('click',function(){
			
				////20-03-2025 TAREA INTERNA 65537 --> Sí que se permite mezclar multipalet y multipedido
				//$('#botonMultipedido').hide(); //No se permite mezclar multipalet con multipedido
			
				<?php //if($pedirUbicacion) { ?>
			
				//if( $('#ubicacion').val()!='' && $('#ubicacion').val()!='<?php echo $_SESSION['playas']['PlayaRecepcion']; ?>') {
				//	alert('No se puede informar Ubicación para una recepción masiva de palets.<br><br>Todos serán recepcionados en la Playa correspondiente.',null,'error');
				//}
				//else {
				
				<?php //} else { ?>
				
				if(true) {
				
				<?php //} ?>
				
					if($('#recepcionMasivaPalet').val()=='') {
						construyeNuevaLineaRecepcionMasivaPalet(0,'','');
					}
					else {
						var ultimo=inicializaRecepcionMasivaPaletConDatos();
					}
				
					$('#bloqueRecepcionMasivaPalet').show();
					
					$('#lecturaRecepcionMasivaPalet-0').val( $('#contenedor').val() );
					<?php if($pedirPaletCliente) { ?>
					$('#lecturaRecepcionMasivaPaletIdCliente-0').val( $('#paletCliente').val() );
					<?php } ?>
					<?php if($pedirSubIdPaletCliente) { ?>
					$('#lecturaRecepcionMasivaPaletSubIdCliente-0').val( $('#subIdPaletCliente').val() );
					<?php } ?>
					
					var posicionActual=$(document).scrollTop();
					$('#bloqueRecepcionMasivaPalet').animate({ top:posicionActual+50 },500);
					
					if($('#recepcionMasivaPalet').val()=='') {
						$('#lecturaRecepcionMasivaPalet-1').focus();
					}
					else {
						$('#lecturaRecepcionMasivaPalet-'+ultimo).focus();
					}
					
				}
				
			});
			
			$('#botonRecepcionMasivaPaletAceptar').on('click',function(){
			
				<?php if($pedirPaletCliente) { ?>
				
				var hayError=false;
				
				$('.lecturaRecepcionMasivaPalet').each(function(){
					var contador=$(this).attr('contador');
					//if ( ( $(this).val()=='' && $('#lecturaRecepcionMasivaPaletIdCliente-'+contador).val()!='' ) || ( $(this).val()!='' && $('#lecturaRecepcionMasivaPaletIdCliente-'+contador).val()=='' ) ) {
					if ( $(this).val()=='' && $('#lecturaRecepcionMasivaPaletIdCliente-'+contador).val()!='' ) {
						hayError=true;
					}
				});
				
				if(hayError) {
					alert('Atención, hay Ids de palets cliente informados sin Id de Palet Proxium.',null,'error');
				}
				else {
					$('#bloqueRecepcionMasivaPalet').hide();
				}
				
				<?php } else { ?>
			
				$('#bloqueRecepcionMasivaPalet').hide();
				
				<?php } ?>
				
				cargaResumenPaletsMasivos();
				
				<?php if( $_SESSION['entradaEsRecepcionCompra'] && $_SESSION['producto']['PedidoVenta'] ) {?>
				compruebaCantidadesPedidoVenta();
				<?php } ?>
				
			});
			
			$(document).on('change','.lecturaRecepcionMasivaPalet',function(){
			
				var campo=$(this);
				var contador=campo.attr('contador');
				
				if( recepcionMasivaPaletNoRepetido(campo.val(),'') ) {
				
					$('#popupCargando').show();
				
					$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-info-contenedor.php", { 'contenedor' : campo.val() })
					.done(function(data) {
					
						$('#popupCargando').hide();
				
						var resultado=data.split('#');
						
						if(resultado[0]=='error') {
							alert(resultado[2],null,'error')
							.done(function(){
								campo.val('');
								campo.focus();
							});
						}
						else {
						
							construyeCampoFinalRecepcionMasivaPalet();
							construyeNuevaLineaRecepcionMasivaPalet(contador,'','');
						
							<?php if($pedirPaletCliente) { ?>
							
							if( resultado[5] ) {
								
								$('#lecturaRecepcionMasivaPaletIdCliente-'+contador).val( resultado[5] );
								bloqueaIdPaletCliente(true,null,contador);
								$('#desbloquearPaletClienteMasivo-'+contador).show();
									
								nuevoContador=parseInt(contador)+1;
									
								$('#lecturaRecepcionMasivaPalet-'+nuevoContador).focus();
								
							}
							else {
								
								$('#lecturaRecepcionMasivaPaletIdCliente-'+contador).focus();
									
							}
								
							<?php } ?>
							
							
						
						}
					
					});
				
				}
				else {
					alert('Error: Este palet está repetido. Ya ha sido informado en esta entrada',null,'error')
					.done(function(){
						campo.val('');
						campo.focus();
					});
				}
				
			});
			
			
			$(document).on('click','.desbloquearPaletClienteMasivo',function(){

				var contador=$(this).attr('contador');
				var campo=$('#lecturaRecepcionMasivaPaletIdCliente-'+contador);
				var campoPalet=$('#lecturaRecepcionMasivaPalet-'+contador);
			
				if( campo.hasClass('deshabilitado') ) {
				
					if( !recepcionMasivaPaletCompruebaRelacionPaletCliente( campoPalet , campo.val(), true ) ) {
						alert('La relación entre palets no puede modificarse.<br>El palet '+campoPalet.val()+' ya está asociado al Id de Palet de cliente: '+campo.val()+'<br><br>En caso de que quieras modificarlo, debes liberar la lectura del palet.',null,'error');
					}
					else {
						bloqueaIdPaletCliente(false,campo.val(),contador);
					}
				}
				else {
					bloqueaIdPaletCliente(true,null,contador);
				}
			
			
			
			
			
				/*
				if( $('#lecturaRecepcionMasivaPaletIdCliente-'+contador).hasClass('deshabilitado') ) {
					bloqueaIdPaletCliente(false,$('#lecturaRecepcionMasivaPalet-'+contador).val(),contador);
				}
				else {
					bloqueaIdPaletCliente(true,null,contador);
				}
				*/
			
			});
 
			
			$(document).on('change','.lecturaRecepcionMasivaPaletIdCliente',function(){
			
				var campo=$(this);
				var contador=campo.attr('contador');
				
				var campoPalet=$('#lecturaRecepcionMasivaPalet-'+contador).val();
				
			
				if( recepcionMasivaPaletCompruebaRelacionPaletCliente( campoPalet , campo.val() ) ) {
			
					construyeCampoFinalRecepcionMasivaPalet();
			
					<?php if($pedirSubIdPaletCliente) { ?>
					$('#lecturaRecepcionMasivaPaletSubIdCliente-'+contador).focus();
					<?php } else{ ?>
					var nuevoContador=parseInt(contador)+1;
					$('#lecturaRecepcionMasivaPalet-'+nuevoContador).focus();
					<?php } ?>
					
				}
				else {
					alert('Error: Este Id Palet cliente ya está informado en esta entrada<br>y no coincide con el Palet Proxium <strong>'+campoPalet+'</strong> indicado.',null,'error')
					.done(function(){
						campo.val('');
						campo.focus();
					});
				}
			
			});
			
			$(document).on('change','.lecturaRecepcionMasivaPaletSubIdCliente',function(){
			
				var campo=$(this);
				var contador=campo.attr('contador');
				
				var campoPalet=$('#lecturaRecepcionMasivaPalet-'+contador).val();
				
			
				construyeCampoFinalRecepcionMasivaPalet();
			
				var nuevoContador=parseInt(contador)+1;
					
				$('#lecturaRecepcionMasivaPalet-'+nuevoContador).focus();

			
			});
			
			$(document).on('click','.tecladoRecepcionMasivaPalet',function(){
				
				var campo=$(this).siblings('input');
				var identificador=campo.attr('id');
				
				$('#teclado').show();
				$('#valor').val( campo.val() );
				$('#valorOculto').val( campo.val() );
				$('#enter').attr('campoValor',identificador);
				$('#enter').attr('forzarEnter','si');
				
			});
			
			$(document).on('click','.tecladoRecepcionMasivaPalet',function(){
				
				var campo=$(this).siblings('input');
				var identificador=campo.attr('id');
				
				$('#teclado').show();
				$('#valor').val( campo.val() );
				$('#valorOculto').val( campo.val() );
				$('#enter').attr('campoValor',identificador);
				$('#enter').attr('forzarEnter','si');
				
			});
			
			$(document).on('click','.borrarLecturaRecepcionMasivaPalet',function(){
			
				var campo=$(this).siblings('input');
				
				campo.val('');
				construyeCampoFinalRecepcionMasivaPalet();
				campo.focus();
				
			});
		
		});
		
		</script>
        
        <?php } ?>
        
        <?php ///////////// FIN RECEPCION MASIVA DE PALETS /////////////////// ?>
        
        
        
        <?php if($pedirMarcas) { ?>
        
        <h3 class="sinMargen" style="margin:5px 0 10px 0">Marcas:</h3>
        <p class="sinMargen"><textarea name="marcas" id="marcas" rows="2" class="campo campoMultilinea" style="width:740px;text-align:left;font-size:1.2em"><?php echo $marcas; ?></textarea></p>
        
        <?php } ?>
        
        
        <!--- OBSERVACIONES ADUANA ---->
        
        <?php if($_SESSION['entrada']['mostrarObservacionesAduana']) { ?>
        
        <h3 class="sinMargen" style="margin:5px 0 10px 0">Observaciones Aduana:</h3>
        <p class="sinMargen"><textarea name="ObsAduana" id="ObsAduana" rows="2" class="campo campoMultilinea" style="width:740px;text-align:left;font-size:1.2em"><?php echo $ObsAduana; ?></textarea></p>
        
        <?php } ?>
        
        
        
        
        
        
        
        <!--- PUNTOS DE CONTROL ---->
        
        <?php if($_SESSION['producto']['PuntosDeControl']) { ?>
        
        <?php
		//primero miramos si algun dato es informable, para ocultar o mostrar la columna
		$hayAlgunoInformable=false;
		$puntosDeControl=arreglaArrayPXMobileProxiumResult($_SESSION['producto']['PuntosDeControl']);
		foreach($puntosDeControl as $puntoControl) if($puntoControl['ActualizaDato']=='S') $hayAlgunoInformable=true;
		?>
        
        <h3 id="bloquePuntosControl">Revisión de puntos de control de producto:</h3>
        
        <table class="tablaFormateada">
        <tr>
        	<th>Estado</th>
            <th>Descripción</th>
            <th>Valor</th>
            
            <?php if($hayAlgunoInformable) { ?>
            <th>Nuevo valor</th>
			<?php } ?>
            
            <th colspan="2">Observaciones</th>
        </tr>
        
        <?php foreach($puntosDeControl as $puntoControl) { ?>
        <tr>
        	<td>
            <input type="radio" name="opcion<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" id="opcion<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>ok" value="OK" class="checkGrande checkPuntoControl" style="vertical-align:sub;" <?php if($puntoControl['Estado']=='OK') { ?>checked<?php } ?> codigo="<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>"/> Ok <input type="radio" name="opcion<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" id="opcion<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>nook" value="NOOK" class="checkGrande checkPuntoControl" style="vertical-align:sub;" <?php if($puntoControl['Estado']=='NOOK') { ?>checked<?php } ?> codigo="<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" /> No
       	    </td>
            <td align="left"><?php echo $puntoControl['Descripcion']; ?></td>
			<td><?php echo $puntoControl['Dato']; ?></td>
            
            <?php if($hayAlgunoInformable) { ?>
            
            <td align="left">
            <?php if($puntoControl['ActualizaDato']=='S') { ?>
            <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" tipo="<?php echo $puntoControl['TipoDato']; ?>" class="iconoTeclado botonTecladoNuevoValor" id="tecladoNuevoValor<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" codigo="<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" style="margin-left:0"/><input type="text" name="nuevoValor<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" id="nuevoValor<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" class="campo comprimido nuevoValor cantidad" codigo="<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" value="" style="text-align:left;width:190px;" tipo="<?php echo $puntoControl['TipoDato']; ?>" longitudObligatoria="<?php echo $puntoControl['LongitudObligatoria']; ?>" disabled readonly autocomplete="off"/>
            <?php } ?>
            </td>
            
            <?php } ?>
            
            <td align="left">
            <input type="text" name="observaciones<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" id="observaciones<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" class="campo comprimido observaciones" codigo="<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>" value="<?php echo $puntoControl['Observaciones']; ?>" style="text-align:left;width:190px;" autocomplete="off"/>
            </td>
            
        </tr>
        <?php } ?>
        
        </table>
        
        <script>
		
		$(document).ready(function() {
			
			$('.checkPuntoControl').on('click',function(){
			
				var codigo=$(this).attr('codigo');
				var campo=$('#nuevoValor'+codigo);
				
				if( $(this).val()=='NOOK') {
					campo.val('');
					campo.prop('readonly',true);
					campo.prop('disabled',true);
					campo.removeClass('campoError');
				}
				else {
					campo.prop('readonly',false);
					campo.prop('disabled',false);
				}
				//$('#observaciones'+codigo).focus();
			
			});
			
			$('.botonTecladoNuevoValor').on('click',function(){
			
				var codigo=$(this).attr('codigo');
				var tipo=$(this).attr('tipo');
				
				if( !$('#nuevoValor'+codigo).prop('readonly') ) {
				
					//alert(tipo);
					
					if(tipo=='TXT') {
						$('#teclado').show();
						$('#valor').val( $('#nuevoValor'+codigo).val() );
						$('#valorOculto').val( $('#nuevoValor'+codigo).val() );
						$('#enter').attr('campoValor','nuevoValor'+codigo);
						$('#enter').attr('forzarEnter','si');
					}
					if(tipo=='NUM' || tipo=='NUMDECI') {
						$('#calculadora').show();
						$('#valorCalculadora').val( $('#nuevoValor'+codigo).val() );
						$('#enterCalculadora').attr('campoValor','nuevoValor'+codigo);
						$('#enterCalculadora').attr('forzarEnter','si');
					}
					
				}
			
			});
			
			$('.nuevoValor').on('change',function(){
			
				var campo=$(this);	
					
				var tipo=campo.attr('tipo');
				var longitudObligatoria=parseInt(campo.attr('longitudObligatoria'));
				
				var valoresAceptados = /^[0-9.]+$/;
				
				if(longitudObligatoria>0 && campo.val().length!=longitudObligatoria) {
					alert('Atención, la longitud de este valor debe ser: '+longitudObligatoria,null,'error')
					.done(function(){
						campo.addClass('campoError');
						campo.focus();
					});
				}
				else if( (tipo=='NUM' || tipo=='NUMDECI') && !campo.val().match(valoresAceptados) ) {
					alert('Atención, el valor informado debe ser un número.',null,'error')
					.done(function(){
						campo.val('');
						campo.addClass('campoError');
						campo.focus();
					});
				}
				else if(tipo=='NUM' && campo.val().indexOf('.')!=-1) {
					alert('Atención, el número informado debe ser entero.',null,'error')
					.done(function(){
						campo.addClass('campoError');
						campo.focus();
					});
				}
				else campo.removeClass('campoError');
				
			
			});
			
			$('.observaciones').on('click',function(){
			
				var codigo=$(this).attr('codigo');
			
				$('#teclado').show();
				$('#valor').val( $('#observaciones'+codigo).val() );
				$('#valorOculto').val( $('#observaciones'+codigo).val() );
				$('#enter').attr('campoValor','observaciones'+codigo);
				$('#enter').attr('forzarEnter','no');
			
			});
		
		});
		
		</script>
        
        <?php } ?>
        
        <?php
        //18-6-2021 añadimos obtener la info de lo que contiene el palet origen
		if($mostrarContenidoPaletOrigen && $listadoContenidoPalet) {
		
			//print_r($listadoContenidoPalet);
		
			if(!$listadoContenidoPalet[0]['Error']) { //Solo si contiene productos
			?>
			
			<h3>Detalle de productos que ya contiene el palet <strong><?php echo $contenedor; ?></strong>:</h3>
			
			<h3>Ubicación actual: <strong><?php echo $_SESSION['ubicacionPaletEntradaAutomatizar']; if($ubicacionPaletEtiquetaProductos) echo " (".$ubicacionPaletEtiquetaProductos.")"; //17-04-2024 ?></strong></h3>
			
			<table class="tablaFormateada" style="font-size:0.8em">
			<tr>
				<!--
				<?php if(count($_SESSION['empresas'])>1) { ?>
				<th>Emp.</th>
				<?php } ?>
				-->
				
				<?php if($_SESSION['gestion']=='PUB' || $_SESSION['gestion']=='PUBPRI') { ?>
				<th>Cli. Prop.</th>
				<!--<th>Nombre Cli. Prop.</th>-->
				<?php } ?>
				
				<th>Producto</th>
				
				<?php if($_SESSION['gestion']!='PUB') { ?>
				<th>Familia</td>
				<?php } ?>
				
				<th>Descripción</th>
				
				<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
					<?php $columnasVariables++; ?>
					<?php if($comportamiento['Activo']) { ?><th><?php echo $comportamiento['Nombre']; ?></th><?php } ?>
				<?php } ?>
				
				<?php if($_SESSION['gestionDepositos']=='S') { ?>
				<th>Información adicional</td>
				<?php } ?>
				
				<th>Cantidad</th>
				
				<!--
				<?php if( $_SESSION['mostrarColumnasStockEnProceso'] ) { ?>	 
				<th class="cabecera">En proceso</th>
				<th class="cabecera">Ubicado</th>
				<?php } ?>
				-->
				
				<!--
				<?php if($_SESSION['verEnCajas']=='S') { ?>
				<th>Cajas</th>
				<?php } ?>
				-->
				
			</tr>
			<?php
		
			foreach($listadoContenidoPalet as $producto) {
		
				$datos=$producto['Datos']['PXMobileProxiumResult'];
			
	
			
				?>
				<tr>
					<!--
					<?php if(count($_SESSION['empresas'])>1) { ?><td><?php echo $producto['Empresa']; ?></td><?php } ?>
					-->
					
					<?php if($_SESSION['gestion']=='PUB' || $_SESSION['gestion']=='PUBPRI') { ?>
						<td><?php echo $producto['ClientePropietario']; ?></td>
						<!--<td><?php echo $producto['NombreClientePropietario']; ?></td>-->
					<?php } ?>
					
					<td><a href="info-producto-<?php echo $_SESSION['tipoGestion']; ?>.php?producto=<?php echo $producto['Producto']; ?><?php if( ($_SESSION['gestion']=='PUB' || $_SESSION['gestion']=='PUBPRI') && $producto['ClientePropietario'] ) { ?>&clientePropietario=<?php echo $producto['ClientePropietario']; ?><?php } ?>" class="mostrarCargando"><?php echo $producto['Producto']; ?></a></td>
					<td align="left"><?php echo $producto['Descripcion']; ?></td>
					<?php if($_SESSION['gestion']!='PUB') { ?>
						<td><?php echo $producto['FamiliaDescripcion']; ?></td>
					<?php } ?>
					<?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 } ?>
					<?php if($_SESSION['gestionDepositos']=='S') { ?><td class="informacionAduanera"><?php echo htmlspecialchars_decode($producto['InformacionAduanera']); ?></td><?php } ?>
					
					<td align="right"><?php echo $producto['Stock']; //echo number_format($producto['Stock'],0,'','.'); ?></td>
					
					<!--
					<?php if( $_SESSION['mostrarColumnasStockEnProceso'] ) { ?>	 
					<td align="right"><?php echo $producto['StockEnProceso']; //echo number_format($producto['StockEnProceso'],0,'','.'); ?></th>
					<td align="right"><?php echo $producto['StockUbicacion']; //echo number_format($producto['StockUbicacion'],0,'','.'); ?></th>
					<?php } ?>
					-->
					
					<!-- 
					<?php if($_SESSION['verEnCajas']=='S') { ?><td align="right"><?php echo $producto['Cajas']; //echo number_format($producto['Cajas'],2,',','.'); ?></td><?php } ?>
					-->
	
				</tr>
			
				<?php } //Fin foreach producto?>
			
				</table>
			
			<?php } //Fin if no hay error (no contiene productos) ?>
        
        <?php } //Fin if $mostrarContenidoPaletOrigen?>
        
        
        
        
        
        
        <!-- 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>

<?php if($requierePaletizar) { ?>

    </div> <!-- ultima pestaña -->

</div> <!-- contenedorPrincipal -->

<?php } //Fin si requiere paletizar, montamos pestañas ?>

<div id="popupNumerosSerie" class="popup" style="display:none;z-index:20000"></div>
<div id="popupNumerosSerieContenido" class="popupContenidoScroll" style="display:none;z-index:20000"></div>

<div id="popupPrecintas" class="popup" style="display:none;z-index:20000">
	<div class="popupContenidoSimple" style="text-align:left">
    	<?php
        foreach( arreglaArrayPXMobileProxiumResult($_SESSION['producto']['EstadosPrecintado']) as $precinta) {
			?><p><label><input type="radio" name="tipoPrecinta" id="tipoPrecinta<?php echo $precinta['PrecintaCodigo']; ?>" value="<?php echo $precinta['PrecintaCodigo']; ?>"  class="tipoPrecinta checkGrande" <?php if($precinta['PrecintaCodigo']==$_SESSION['producto']['Precinta']) { ?>checked<?php } ?>/> <?php echo $precinta['PrecintaDescripcion']; ?></label></p><?php
		}
		?>
        <p style="text-align:center"><input id="botonCierraPrecintas" type="button" value="Cerrar" class="boton"/></p>
    </div>
</div>

<script>

	

	function validaCampos() {
	
		console.log('Funcion validaCampos');
	
		var temp=$('#cantidad').val().split('.');
		var parteDecimal=temp[1]
		var tieneDecimal = ( parteDecimal!=undefined && parseInt(parteDecimal)!=0 );
	
		<?php if($requierePaletizar) { ?>
		$('#contenedor').removeClass('campoError');
			<?php if($_SESSION['seleccionTipoPaletEntrada']) { ?>
			$('#tipoPalet').removeClass('campoError');
			<?php } ?>
		<?php } ?>
		<?php if($pedirLote) { ?>$('#lote').removeClass('campoError');<?php } ?>
		
		<?php if($pedirFechaCaducidad) { ?>$('#fechaCaducidad').removeClass('campoError');<?php } ?>
		
		<?php if($pedirPesoNeto) { ?>$('#pesoNeto').removeClass('campoError');<?php } ?>
		
		<?php if($pedirPesoVariable=='S' || $pedirPesoVariable=='B'  || $pedirPesoVariable=='BN') { ?>$('#pesoVariablePesoBruto').removeClass('campoError');<?php } ?>
		<?php if($pedirPesoVariable=='W'  || $pedirPesoVariable=='BN') { ?>$('#pesoVariablePesoNeto').removeClass('campoError');<?php } ?>
		
		$('#cantidad').removeClass('campoError');
	
		<?php //if( $_SESSION['entradaEsRecepcionCompra'] && count($productosCoincidentes)>1 ) { ?>
		//if( !cantidadesMultipedido() ) {
		//	alert('No has especificado ninguna cantidad para ningún pedido.',null,'error')
		//	return false;
		//}
		<?php //} else { ?>
		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 //} ?>
		<?php if($_SESSION['verEnCajas']=='S') { ?>
		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 } ?>
		<?php if($controlPesaje) { ?>
			else if($('#pesajeBascula').val()=='') {
				alert('Por favor, especifica la báscula de pesaje.',null,'error')
				.done( function() {
					$('#pesajeBascula').addClass('campoError');
					$('#pesajeBascula').focus();
					return false;
				});
			}
			else if($('#pesajeTipo').val()=='R' && $('#pesajeCaja').val()=='') {
				alert('Para artículos dañados, es obligatorio informar el id de la caja de roturas.',null,'error')
				.done( function() {
					$('#pesajeCaja').addClass('campoError');
					$('#pesajeCaja').focus();
					return false;
				});
			}
			else if($('#pesajeTipo').val()=='C' && $('#pesajeImpresora').val()=='') {
				alert('Por favor, especifica la impresora para imprimir la etiqueta de la caja.',null,'error')
				.done( function() {
					$('#pesajeImpresora').addClass('campoError');
					$('#pesajeImpresora').focus();
					return false;
				});
			}
			else if($('#pesajeTipo').val()=='U' && $('#contenedor').val()=='') {
				alert('Por favor, especifica el carro destino.',null,'error')
				.done( function() {
					$('#contenedor').addClass('campoError');
					$('#contenedor').focus();
					return false;
				});
			}
			<?php if($_SESSION['seleccionTipoPaletEntrada']) { ?>
				else if( ( $('#pesajeTipo').val()=='R' || $('#pesajeTipo').val()=='C' ) && $('#contenedor').val()!='' && $('#tipoPalet').val()=='' ) {
					alert('Es obligatorio clasificar el tipo de Palet.',null,'error')
					.done( function() {
						$('#tipoPalet').addClass('campoError');
						$('#tipoPalet').focus();
						return false;
					});
				}
			<?php } ?>
		<?php } ?>
		<?php if($requierePaletizar) { ?>
			<?php if($obligatorioPaletizar) { ?>
				else if($('#contenedor').val()=='') {
					alert('Es obligatorio indicar el Palet.',null,'error')
					.done( function() {
						$('#contenedor').addClass('campoError');
						$('#contenedor').focus();
						return false;
					});
				}
				<?php if($_SESSION['seleccionTipoPaletEntrada']) { ?>
				else if($('#tipoPalet').val()=='') {
					alert('Es obligatorio clasificar el tipo de Palet.',null,'error')
					.done( function() {
						$('#tipoPalet').addClass('campoError');
						$('#tipoPalet').focus();
						return false;
					});
				}
				<?php } ?>
			<?php } else if($pedirUbicacion) { ?>
				else if( $('#contenedor').val()=='' && $('#ubicacion').val()!='' ) {
					alert('Para ubicar, es obligatorio hacerlo dentro de un palet.',null,'error')
					.done( function() {
						$('#contenedor').addClass('campoError');
						$('#contenedor').focus();
						return false;
					});
				}
			<?php } ?>
		<?php } ?>
		
		<?php if($pedirPaletCliente) { ?>
		else if($('#contenedor').val()=='' && $('#paletCliente').val()!='' ) {
			alert('Para indicar un Id de Palet de Cliente es necesario asociarlo <br>a un Id de Palet Proxium.',null,'error')
			.done( function() {
				$('#contenedor').addClass('campoError');
				$('#contenedor').focus();
				return false;
			});
		}
		else if( relacionPaletsProxiumCliente[$('#contenedor').val()]!==undefined && relacionPaletsProxiumCliente[$('#contenedor').val()]!=$('#paletCliente').val() ) {
			alert('La relación entre palets no puede registrarse.<br>El palet '+$('#contenedor').val()+' ya está asociado al Id de Palet de cliente: '+relacionPaletsProxiumCliente[$('#contenedor').val()],null,'error')
			.done( function() {
				$('#contenedor').addClass('campoError');
				$('#contenedor').focus();
				return false;
			});
		}
		<?php } ?>
		<?php if($pedirLote && $obligatoriedadLote) { ?>
		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($pedirPesoNeto) { ?>
		else if( $('#pesoNeto').val()=='' ) {
			alert('Para continuar es necesario indicar el Peso Neto.',null,'error')
			.done( function() {
				$('#pesoNeto').addClass('campoError');
				$('#pesoNeto').focus();
				return false;
			});
		}
		<?php } ?>
		<?php if($pedirPesoVariable=='S' || $pedirPesoVariable=='B' || $pedirPesoVariable=='BN') { ?>
		else if( $('#pesoVariablePesoBruto').val()=='' ) {
			alert('Para continuar es necesario indicar el Peso Bruto.',null,'error')
			.done( function() {
				$('#pesoVariablePesoBruto').addClass('campoError');
				$('#pesoVariablePesoBruto').focus();
				return false;
			});
		}
		<?php } ?>
		<?php if($pedirPesoVariable=='W'  || $pedirPesoVariable=='BN') { ?>
		else if( $('#pesoVariablePesoNeto').val()=='' ) {
			alert('Para continuar es necesario indicar el Peso Neto.',null,'error')
			.done( function() {
				$('#pesoVariablePesoNeto').addClass('campoError');
				$('#pesoVariablePesoNeto').focus();
				return false;
			});
		}
		<?php } ?>
		<?php if($pedirFechaCaducidad && $obligatoriedadFechaCaducidad) { ?>
		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 } ?>
		
		<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets && $pedirUbicacion) { ?>
		//else if( $('#recepcionMasivaPalet').val()!='' && $('#ubicacion').val()!='' && $('#ubicacion').val()!='<?php echo $_SESSION['playas']['PlayaRecepcion']; ?>') {
		//alert('No se puede informar la Ubicación si hay una secuencia masiva de palets.',null,'error')
		//	.done( function() {
		//		$('#ubicacion').addClass('campoError');
		//		$('#ubicacion').focus();
		//		return false;
		//	});
		//}
		<?php } ?>
		
		<?php if($_SESSION['producto']['CaracteristicasProducto']) { ?>
		else if( hayCaracteristicasSinInformar() ) {
			alert('Es obligatorio informar todas las características del producto.',null,'error')
			.done( function() {
				return false;
			});
		}
		<?php } ?>
		
		else {
		
			<?php if($_SESSION['producto']['PuntosDeControl']) { ?>
			
			var todosCheckeados=true;
			var hayErrores=false;
			
			<?php foreach(arreglaArrayPXMobileProxiumResult($_SESSION['producto']['PuntosDeControl']) as $puntoControl) { ?>
			if( ! $('#opcion<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>ok').is(':checked') && ! $('#opcion<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>nook').is(':checked') ) todosCheckeados=false;
			if( $('#nuevoValor<?php echo $puntoControl['Codigo'].'-'.$puntoControl['Tipo']; ?>').hasClass('campoError') ) hayErrores=true;
			<?php } ?>
			
			if( !todosCheckeados ) {
				alert('Para continuar debes revisar todos los puntos de control.',null,'advertencia')
				.done( function() {
					var posicion = $('#bloquePuntosControl').offset().top;
					$('html,body').animate({scrollTop:posicion});
					return false;
				});
			}
			else if( hayErrores ) {
				alert('Algunos de los datos informados en los puntos de control tienen errores.',null,'error')
				.done( function() {
					var posicion = $('#bloquePuntosControl').offset().top;
					$('html,body').animate({scrollTop:posicion});
					return false;
				});
			}
			else return true;
			
			<?php } else { ?>
			
			return true;
			
			<?php } ?>
			
		}

	}

	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 );
			
			<?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
			
			$('.cantidadPedido').each(function(){
				var resultado = parseInt( $(this).val() * $('#EmbalajePrimarioCaja').val() );
				if(resultado>0) $(this).val( resultado );
			});
			
			<?php } ?>
			
		}
		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 );
			
			<?php if($_SESSION['entradaEsRecepcionCompra']) { ?>
			
			$('.cantidadPedido').each(function(){
				var flotante = parseFloat( $(this).val() / $('#EmbalajePrimarioCaja').val() );
				var resultado = Math.round(flotante*100)/100;
				if(resultado>0) $(this).val( resultado );
			});
			
			<?php } ?>
			
		}
	
	}


/// Funciones preparación campos numeros de serie

	function gestionaNumerosSerie() {
	
		var cadena='';
		var cuantos=0;
		$('.lecturaNS').each(function(){
			if($(this).val()!='') {
				cadena=cadena+$(this).val().trim()+',';
				cuantos++;
			}
		});
		cadena=cadena.substr(0,cadena.length-1);
		$('#cadenaNumerosSerieLeidos').val(cadena);
				
		if(cuantos>0) $('#cantidad').val(cuantos);
		else $('#cantidad').val('');
	
	}
	
	function construyeLecturaNS(contador) {
					
		var nuevoContador=parseInt(contador)+1;
		
		$('#nuevaLecturaNS-'+contador).html('<div id="bloqueLecturaNS-'+nuevoContador+'" class="campoOrdenPreparacionBloque"><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado iconoTecladoNS" id="tecladoNS-'+nuevoContador+'" contador="'+nuevoContador+'"/><input name="lecturaNS-'+nuevoContador+'" type="text" class="campo campoOrdenPreparacion lecturaNS" id="lecturaNS-'+nuevoContador+'" contador="'+nuevoContador+'" style="left:5px;" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="campoOrdenPreparacionBorrar borrarNS" contador="'+nuevoContador+'" style="right:-55px"/></div><div id="nuevaLecturaNS-'+nuevoContador+'"></div>');
		
		$('#ultimoBloqueNumeroSerie').val(nuevoContador);
		$('#lecturaNS-'+nuevoContador).focus();
		
		redimensionaPestanyas('contenedorPrincipal');
		
		var posicion = $('#lecturaNS-'+nuevoContador).offset().top;
		$('html,body').animate({scrollTop:posicion});
		
	}



function seleccionaPalet(palet,tipoPalet,esChep,ubicacion,alto,ancho,fondo,idPaletCliente) {
	
	//alert("seleccionamos "+palet);
	
	$.post( "<?php echo $rutaHtml; ?>/contenidos/entrada-palet-seleccionar.php", { 'palet' : palet , 'tipoPalet' : tipoPalet , 'esChep' : esChep , 'ubicacion' : ubicacion , 'alto' : alto , 'ancho' : ancho , 'fondo' : fondo , 'idPaletCliente' : idPaletCliente })
	.done(function() {
			
		$('.selectorPaletSuperior').attr('seleccionado','no');
		$('.imagenPaletSeleccionado').attr('src','');
					
		$('#itemPalet'+palet).attr('seleccionado','si');
		$('#imagenPaletSeleccionado'+palet).attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar.png');
			
		//Valores para formulario preparacion
		//$('#paletSeleccionado').val(palet);
			
		//Valor para etiqueta pestaña
		$('#etiquetaCodigoPalet').html(palet);
		
		//Valor para el campo contenedor
		$('#tipoPalet').val(tipoPalet);
		if(esChep=='S') $('#imagenPalet').attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio-chep.png');
		else $('#imagenPalet').attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio.png');
		$('#contenedor').val(palet);
		$('#ubicacion').val(ubicacion);
		
		//19-02-2024 TAREA 57030
		$('#palet-alto').val(alto);
		$('#palet-ancho').val(ancho);
		$('#palet-fondo').val(fondo);
		
		
		
		//alert(idPaletCliente);
		
		if(idPaletCliente) {
			$('#paletCliente').val(idPaletCliente);
			bloqueaIdPaletCliente(true,idPaletCliente);
			$('#desbloquearPaletCliente').show();
		}
		else {
			$('#paletCliente').val('');
			console.log('## traza 1 : <?php echo $pedirPaletCliente; ?>');
			<?php if($pedirPaletCliente) { ?>
			bloqueaIdPaletCliente(false,'');
			<?php } ?>
			$('#desbloquearPaletCliente').hide();
		}
		
		//Carga contenido del palet en la segunda pestaña
		$('#popupCargando').show();
		$.post( "<?php echo $rutaHtml; ?>/contenidos/entrada-palet-contenido.php<?php if($_GET['traza']=='si') { ?>?traza=si<?php } ?>", { 'palet' : palet })
		.done(function(data) {
			$('#contenidoPalet').html(data);
			redimensionaPestanyas('contenedorPrincipal');
		});
			
		$("html, body").animate({scrollTop:0},"slow");
		mueveHastaPestanya('pestanyaLectura');
		
		if(palet) focoSiguiente('contenedor');
		else $('#contenedor').focus();
			
		$('#popupCargando').hide();
				
	});
		
}

function deSeleccionaPalet() {
	
	//alert('kk');
	
	$.post( "<?php echo $rutaHtml; ?>/contenidos/entrada-palet-seleccionar.php", { 'palet' : '' })
	.done(function() {
			
		$('.selectorPalet').parent().attr('seleccionado','no');
		$('.imagenPaletSeleccionado').attr("src","");
					
		//Valores para formulario preparacion
		//$('#paletSeleccionado').val('');
			
		//Valor para etiqueta pestaña
		$('#etiquetaCodigoPalet').html('');
		
		//Carga contenido del palet en la segunda pestaña
		$('#contenidoPalet').html('');
		redimensionaPestanyas('contenedorPrincipal');
				
	});
		
}

/*
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;

}
*/

function calculaPesos(){

	console.log('traza calculaPesos');

	if( $("#pesoVariablePesoNeto").prop('readonly')==true ) {
	
		console.log('Calcula el peso neto automaticamente');

		var pesoNeto;
		
		if($('#pesoVariablePesoBruto').val() && $('#pesoVariableTara').val()) pesoNeto=parseFloat( cantidadParaCalculadora($('#pesoVariablePesoBruto').val())) - parseFloat( cantidadParaCalculadora($('#pesoVariableTara').val()) );
		else if($('#pesoVariablePesoBruto').val()) pesoNeto=$('#pesoVariablePesoBruto').val();
		else pesoNeto='';
		
		if(pesoNeto) pesoNeto=cantidadParaPantalla(pesoNeto);
		
		$("#pesoVariablePesoNeto").val(pesoNeto);
		
	}

}

function puntoControlAutomatico(identificador,valor,texto) {

	if(valor===null) {
		$('#opcion'+identificador+'ok').prop('checked',false);
		$('#opcion'+identificador+'nook').prop('checked',false);
	}
	else if(valor) {
		$('#opcion'+identificador+'ok').prop('checked',true);
	}
	else {
		$('#opcion'+identificador+'nook').prop('checked',true);
	}

	if(texto) $('#observaciones'+identificador).val(texto);
	else $('#observaciones'+identificador).val('');

}

function bloqueaIdPaletCliente(valor,palet,contador) {

	//miramos si viene de los campos ppales o de los dinamicos palets masivos (hay contador)
	if(contador) {
		var campoPalet=$('#lecturaRecepcionMasivaPaletIdCliente-'+contador);
		var campoBorrarPalet=$('#borrarLecturaRecepcionMasivaPaletIdCliente-'+contador);
		var campoTecladoPalet=$('#tecladoRecepcionMasivaPaletIdCliente-'+contador);
	}
	else {
		var campoPalet=$('#paletCliente');
		var campoBorrarPalet=$('#borrarPaletCliente');
		var campoTecladoPalet=$('#tecladoPaletCliente');
	}

	//aplicamos
	if( valor ) {
	
		campoPalet.prop('readonly',true);
		campoPalet.addClass('deshabilitado');
		campoBorrarPalet.hide();
		campoTecladoPalet.hide();
		
		if(contador) campoPalet.css('margin-left','45px');

	}
	else {
	
		confirm('Atención: Si modificas el Id.Cliente de este palet se modificará también en todos los productos de este palet.')
		.done(function(){
		
			campoPalet.val('');
			campoPalet.prop('readonly',false);
			campoPalet.removeClass('deshabilitado');
			campoBorrarPalet.show();
			campoTecladoPalet.show();
			
			campoPalet.focus();
		});
		
		
		
		if(contador) campoPalet.css('margin-left','0');
		
	}

}

<?php if($controlPesaje) { ?>

	
	var deferredPesaje=Array();
	
	
	function pesaje(bascula,almacen,producto,tipoPesaje,unidadesPorCaja,impresora,cajaRoturas,paletCarro,iteracion) { 
	
		deferredPesaje[iteracion] = new $.Deferred();
		
		var codigoRespuesta;
	
		$.post('contenidos/pesaje-entrada-pesar.php', { 'bascula' : bascula , 'almacen' : almacen , 'producto' : producto , 'tipoPesaje' : tipoPesaje , 'unidadesPorCaja' : unidadesPorCaja , 'impresora' : impresora , 'cajaRoturas' : cajaRoturas , 'paletCarro' : paletCarro })
		.done(function(data){
		
			console.log('Iteración: '+iteracion);
			console.log('Respuesta: '+data);
			
			var valores=data.split('#');
			codigoRespuesta=valores[0];
			
			if(codigoRespuesta=='1' || codigoRespuesta=='0') {
			
				console.log('Devolvemos: '+data);
			
				deferredPesaje[iteracion].resolve( data );
			
			}
			else if ( codigoRespuesta=='2' || codigoRespuesta=='' ) {
			
				
				if( iteracion < 3 ) {
				
					console.log('Volvemos a iterar');
					
					pesaje(bascula,almacen,producto,tipoPesaje,unidadesPorCaja,impresora,cajaRoturas,paletCarro,iteracion+1)
					.done(function(data){
						
						console.log('Devolvemos: '+data);
		
						deferredPesaje[iteracion].resolve( data );
		
					});
				
				}
				else {
				
					console.log('Se termina la iteración');
					
					data='1#Error desconocido.<br>No se ha podido obtener el peso o la báscula no ha respondido.';
						
					console.log('Devolvemos: '+data);
								
					deferredPesaje[iteracion].resolve( data );
				
				}
			
			}
			
		});
		
		return deferredPesaje[iteracion].promise();
		
	}
	
<?php } ?>

$(document).ready(function() {


	<?php if($asociacionEANaProductos) { ?>
	
	$(document).on('click','#tecladoInformarEAN',function(){
		$('#teclado').show();
		$('#valor').val( $('#informarEAN').val() );
		$('#valorOculto').val( $('#informarEAN').val() );
		$('#enter').attr('campoValor','informarEAN');
		$('#enter').attr('forzarEnter','no');
	});

	$(document).on('click','#borrarInformarEAN',function(){
		$('#informarEAN').val('');		
		$('#informarEAN').focus();
	});
	
	<?php } ?>

	
	
	<?php if($_SESSION['entradaPaletActual']) { ?>
		
	$.post( "<?php echo $rutaHtml; ?>/contenidos/entrada-palet-contenido.php", { 'palet' : '<?php echo $_SESSION['entradaPaletActual']; ?>' })
	.done(function(data) {
		$('#contenidoPalet').html(data);
		redimensionaPestanyas('contenedorPrincipal');
	});
		
	<?php } ?>
	
	$(document).on('click','.selectorPalet',function() {
		
		var palet=$(this).parent().attr('idPalet');
		var tipoPalet=$(this).parent().attr('tipoPalet');
		var esChep=$(this).parent().attr('esChep');
		var ubicacion=$(this).parent().attr('ubicacion');
		
		var alto=$(this).parent().attr('alto');
		var ancho=$(this).parent().attr('ancho');
		var fondo=$(this).parent().attr('fondo');
		var idPaletCliente=$(this).parent().attr('idPaletCliente');
		
		if( $(this).parent().attr('seleccionado')=='no' ) {
			$('#popupCargando').show();
			seleccionaPalet(palet,tipoPalet,esChep,ubicacion,alto,ancho,fondo,idPaletCliente);
		}
		
	});
	
	$(document).on('click','.selectorPaletDesfijar',function() {
		
		seleccionaPalet('','','','','','','');
		//deseleccionaPalet();
		$('#contenedor').focus();
		
	});
	
	
	$('.borrarPalet').on("click",function() {
		
		var palet=$(this).attr('palet');
		
		confirm('Se va a proceder a desasociar el Palet '+palet+' de la Entrada.<br><br>¿Deseas continuar?')
		.done(function(){
		
			$('#popupCargando').show();
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/entrada-palet-borrar.php<?php if($_GET['traza']=='si') { ?>?traza=si<?php } ?>", { 'palet' : palet , 'entrada' : '<?php echo $_SESSION['entrada']['NumEntrada']; ?>' })
			.done(function(data) {
				var resultado=data.split('#');
				if(resultado[0]==1) {
					$('#popupCargando').hide();
					alert('Error: '+resultado[1]);
				}
				else window.location='<?php echo $rutaHtml; ?>/entrada-mercancia-gs1-proceso.php?accion=borradopalet';
			});
			
		});
			
	});
	
	$('.selectorTipoPalet').on('change',function() {
		
		var selector=$(this);
			
		var idPalet=selector.attr('idPalet');
		var valorOriginal=selector.attr('valorOriginal');
		
		var seleccionado=selector.children('option:selected').val();
		var esChep=selector.children('option:selected').attr('chep');
		
		confirm('¿Deseas redefinir el tipo de soporte del Palet Nº '+idPalet+'?')
		.done(function(){
			
			$('#popupCargando').show();
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/palet-tipificar.php", { 'cadenaPalets' : idPalet+','+seleccionado })
			.done(function() {
				
				selector.val(seleccionado);
				selector.children('option[value='+seleccionado+']').attr('selected',true);
					
				if(esChep=='S') $('#imagenPalet'+idPalet).attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio-chep.png');
				else $('#imagenPalet'+idPalet).attr('src','<?php echo DIR_IMAGENES; ?>/palet-vacio.png');
					
				$('#popupCargando').hide();
			});
		})
		.fail(function(){
			selector.val(valorOriginal);
			selector.children('option[value='+valorOriginal+']').attr('selected',true);
		});
			
	});



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

			<?php if(!$desactivaScannerBluetooth && !$desactivaScannerBluetoothParaPaletEntrada) { ?>
	
			$("#contenedor").on('keydown',function(e){
			
				e.preventDefault();
				var resultado='';
				
				if(e.which==13 || e.key=='Enter') {
					$('#contenedor').trigger('change');
				}
				else lecturaScanner.push( [ String.fromCharCode(e.which) , e.which , e.key ] );
			}); 
			
			<?php } ?>
			
			$('#contenedor').on('change',function(e){
			
				e.preventDefault();
			
				<?php if($_GET['traza']=='si') { ?>
				
				//Si es traza no hacemos nada, porque sino lo vacía y envia el form
				
				<?php } else { ?>
				
				if( $('#valorOculto').val()!='' ) { //Proviene del teclado
					$('#contenedor').val( $('#valorOculto').val() );
				}
				else {
					<?php if(!$desactivaScannerBluetooth && !$desactivaScannerBluetoothParaPaletEntrada) { ?>
					var mostrarLectura=limpiaLecturaDesdeScannerNoGS1(lecturaScanner);
					$('#contenedor').val( mostrarLectura );
					<?php } ?>
				}
				
				//Limpiamos los valores del teclado emergente
				$('#valor').val('');
				$('#valorOculto').val('');
				
				<?php } ?>
				
				//var mostrarLectura=limpiaLecturaDesdeScannerNoGS1(lecturaScanner);
				//$('#contenedor').val( mostrarLectura );
				
				enviaFormulario();
		
			});

			$(document).on('click','#tecladoContenedor',function(){
				$('#teclado').show();
				$('#valor').val( $('#contenedor').val() );
				$('#valorOculto').val( $('#contenedor').val() );
				$('#enter').attr('campoValor','contenedor');
				$('#enter').attr('forzarEnter','si');
			});

			$(document).on('click','#borrarContenedor',function(){
			
				deSeleccionaPalet();
				
				$('#contenedor').val('');
				$('#tipoPalet').val('');
				$('#palet-ancho').val('');
				$('#palet-alto').val('');
				$('#palet-fondo').val('');
				
				$('#paletErrorYaAvisado').val('');
				$('#contenedorOriginal').val('');
				
				$('#contenedor').focus();
			});




		///////////////////////////////////////////////////// Gestion campo palet Cliente

			$('#desbloquearPaletCliente').on('click',function(){
				
				var campo=$('#paletCliente');
				var campoPalet=$('#contenedor');
				
				if( campo.hasClass('deshabilitado') ) {
				
					<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
					if( !recepcionMasivaPaletCompruebaRelacionPaletCliente( campoPalet , campo.val(), true ) ) {
						alert('La relación entre palets no puede modificarse.<br>El palet '+campoPalet.val()+' ya está asociado al Id de Palet de cliente: '+campo.val()+'<br><br>En caso de que quieras modificarlo, debes liberar la lectura del palet.',null,'error');
					}
					else {
						bloqueaIdPaletCliente(false,campoPalet.val());
					}
					<?php } else { ?>
					bloqueaIdPaletCliente(false,campoPalet.val());
					<?php } ?>
				}
				else {
					bloqueaIdPaletCliente(true,null);
				}
				
			});

			$(document).on('click','#tecladoPaletCliente',function(){
				$('#teclado').show();
				$('#valor').val( $('#paletCliente').val() );
				$('#valorOculto').val( $('#paletCliente').val() );
				$('#enter').attr('campoValor','paletCliente');
				$('#enter').attr('forzarEnter','si');
			});
			
			$(document).on('change','#paletCliente',function(){
			
				var campo=$(this);
				var campoPalet=$('#contenedor').val();
				
				<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
				if( recepcionMasivaPaletCompruebaRelacionPaletCliente( campoPalet , campo.val() ) ) {
				<?php } else { ?>
				if( recepcionMasivaPaletCompruebaRelacionPaletCliente( campoPalet , campo.val() , true ) ) {
				<?php } ?>
			
					siguienteCampo=focoSiguiente('paletCliente');
					
				}
				else {
					alert('Error: Este Id Palet cliente ya está informado en esta entrada<br>y no coincide con el Palet Proxium <strong>'+campoPalet+'</strong> indicado.',null,'error')
					.done(function(){
						campo.val('');
						campo.focus();
					});
				}
			
				<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
				cargaResumenPaletsMasivos();
				<?php } ?>
			});
			
			$(document).on('click','#borrarPaletCliente',function(){
				
				$("#paletCliente").val('');
				$("#paletCliente").focus();	
				
				<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
				cargaResumenPaletsMasivos();
				<?php } ?>	
			});	



		///////////////////////////////////////////////////// Gestion campo SUB ID palet Cliente
		
			$(document).on('click','#tecladoSubIdPaletCliente',function(){
				$('#teclado').show();
				$('#valor').val( $('#subIdPaletCliente').val() );
				$('#valorOculto').val( $('#subIdPaletCliente').val() );
				$('#enter').attr('campoValor','subIdPaletCliente');
				$('#enter').attr('forzarEnter','si');
			});
			
			$(document).on('change','#subIdPaletCliente',function(){
			
				siguienteCampo=focoSiguiente('subIdPaletCliente');

			});
		
			$(document).on('click','#borrarSubIdPaletCliente',function(){
				
				$("#subIdPaletCliente").val('');
				$("#subIdPaletCliente").focus();	

			});	


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

			$(document).on('click','#tecladoLote',function(){
				$('#teclado').show();
				$('#valor').val( $('#lote').val() );
				$('#valorOculto').val( $('#lote').val() );
				$('#enter').attr('campoValor','lote');
				$('#enter').attr('forzarEnter','si');
			});
			
			$(document).on('change','#lote',function(){
			
				puntoControlAutomatico('5-FIJO',true,$(this).val());
				
				//console.log('aqui cambia el lote');
				siguienteCampo=focoSiguiente('lote');
				//console.log('siguiente campo: '+siguienteCampo);
				

			});
			
			$(document).on('click','#borrarLote',function(){
			
				puntoControlAutomatico('5-FIJO',null,null);
			
				$("#lote").val('');
				$("#lote").focus();	
				
			});
			
		///////////////////////////////////////////////////// Gestion campo fecha caducidad

			$(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');
			});
			
			$(document).on('click','#borrarFechaCaducidad',function(){
				$("#fechaCaducidad").val('');
				$("#fechaCaducidad").focus();		
			});

		///////////////////////////////////////////////////// Gestion campo precinta
		
			$(document).on('click','#precinta',function(){
				$('#popupPrecintas').show();
			});
			
			$('#botonCierraPrecintas').on('click',function(){
				$('#popupPrecintas').hide();
			});
			
			$('.tipoPrecinta').on('change',function(){
				$('#precinta').val( $('input:radio[name=tipoPrecinta]:checked').val() );
				$('#popupPrecintas').hide();
			});



	/////////////////////////////////////////////////////Gestion iconos campo Numeros de Serie
			
			
			$(document).on('click','.iconoTecladoNS',function(){
				
				var contador=$(this).attr('contador');
				
				$('#teclado').show();
				$('#valor').val( $('#lecturaNS-'+contador).val() );
				$('#valorOculto').val( $('#lecturaNS-'+contador).val() );
				$('#enter').attr('campoValor','lecturaNS-'+contador);
				$('#enter').attr('forzarEnter','si');
			});
			
			$(document).on('change','.lecturaNS',function(){
			
				var campo=$(this);
				var contador=campo.attr('contador');
			
				var encontradoAntes=false;
			
				for(i=0;i<numerosSerieLeidosAnteriormente.length;i++) {
					if( campo.val()==numerosSerieLeidosAnteriormente[i] ) encontradoAntes=true;
				}
			
				if(encontradoAntes) {
					alert('Este número de serie ya está leido en la entrada.')
					.done(function(){
						campo.val('');
						campo.focus();
					});
				}
				else if( $('#cadenaNumerosSerieLeidos').val().indexOf( campo.val() ) != -1 ) {
					alert('Este número de serie ya se ha leido en la secuencia actual.')
					.done(function(){
						campo.val('');
						campo.focus();
					});
				}
				else {
				
					$(this).attr('readonly','readonly');
					$('#tecladoNS-'+contador).hide();
				
					gestionaNumerosSerie();
					
					//var contador=parseInt( $(this).attr('contador') );
					var contador=parseInt( $('#ultimoBloqueNumeroSerie').val() );
						
					//if( parseInt($('#cantidad').val()) < parseInt( $('#cantidadMaximaNumerosSerie').val() ) ) {
					
						construyeLecturaNS(contador);
						
					//}
				}
				
			});
			
			
			
			$(document).on('click','.borrarNS',function(){
			
				var contador=parseInt($(this).attr('contador'));
				var ultimoBloqueNumeroSerie=parseInt($('#ultimoBloqueNumeroSerie').val());
				var cantidadMaximaNumerosSerie=parseInt($('#cantidadMaximaNumerosSerie').val());
				var cantidadActual=parseInt($('#cantidad').val());
				
				if($('#lecturaNS-'+contador).val() != '') {
				
					$('#lecturaNS-'+contador).val('');
					
					if( contador!=ultimoBloqueNumeroSerie ) $('#bloqueLecturaNS-'+contador).hide();
					
					gestionaNumerosSerie();
					
					if( $( '#lecturaNS-'+ultimoBloqueNumeroSerie ).val() != '' ) {
					
						//if( cantidadActual < cantidadMaximaNumerosSerie ) {
						
							construyeLecturaNS(ultimoBloqueNumeroSerie);
						//}
					
					}
					
					$('#lecturaNS-'+ultimoBloqueNumeroSerie).focus();
					$('#lecturaNS-'+ultimoBloqueNumeroSerie).removeAttr('readonly');
				
				}
				else {
					$('#lecturaNS-'+contador).focus();
					$('#lecturaNS-'+contador).removeAttr('readonly');
				}
			
			});

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

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

			$('#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();
				
				<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
				actualizaCantidadesResumenPaletsMasivos()
				<?php } ?>
			});
			
			
			$('#cantidad').on('change',function(){
			
				$('#cantidad').val( $('#cantidad').val().replace(/[^0-9.,]/gi,'') );
				
				<?php if($pedirUbicacion) { ?>
				siguienteCampo=focoSiguiente('cantidad');
				<?php } ?>
				
				<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
				actualizaCantidadesResumenPaletsMasivos()
				<?php } ?>
				
				<?php if( $_SESSION['entradaEsRecepcionCompra'] && $_SESSION['producto']['PedidoVenta'] ) {?>
				compruebaCantidadesPedidoVenta();
				<?php } ?>
				
			});
			
			

			<?php } ?>
			
	/////////////////////////////////////////////////////Gestion iconos campo Peso Neto

			<?php if($pedirPesoNeto) { ?>

			$('#pesoNeto').on("click",function(e) {
				$('#calculadora').show();
				$('#valorCalculadora').val( $('#pesoNeto').val() );
				$('#enterCalculadora').attr('campoValor','pesoNeto');
				$('#enterCalculadora').attr('forzarEnter','si');
			});
			
			$('#borrarPesoNeto').on('click',function(){
				$("#pesoNeto").val('');
				$("#pesoNeto").focus();
			});
			
			$('#pesoNeto').on('change',function(){
				siguienteCampo=focoSiguiente('pesoNeto');
			});

			<?php } ?>
			
			
			
			$('#pesoVariablePesoBruto').on("click",function(e) {
				$('#calculadora').show();
				$('#valorCalculadora').val( cantidadParaCalculadora($('#pesoVariablePesoBruto').val()) );
				$('#enterCalculadora').attr('campoValor','pesoVariablePesoBruto');
				$('#enterCalculadora').attr('forzarEnter','si');
			});
			
			$('#borrarPesoVariablePesoBruto').on('click',function(){
				$("#pesoVariablePesoBruto").val('');
				calculaPesos();
				$("#pesoVariablePesoBruto").focus();
			});
			
			$('#pesoVariablePesoBruto').on('change',function(){
				$('#pesoVariablePesoBruto').val( cantidadParaPantalla( $('#pesoVariablePesoBruto').val() ) );
				calculaPesos();
				siguienteCampo=focoSiguiente('pesoVariablePesoBruto');
			});
			
			
			
			$('#pesoVariableTara').on("click",function(e) {
				$('#calculadora').show();
				$('#valorCalculadora').val( cantidadParaCalculadora($('#pesoVariableTara').val()) );
				$('#enterCalculadora').attr('campoValor','pesoVariableTara');
				$('#enterCalculadora').attr('forzarEnter','si');
			});
			
			$('#borrarPesoVariableTara').on('click',function(){
				$("#pesoVariableTara").val('');
				calculaPesos();
				$("#pesoVariableTara").focus();
			});
			
			$('#pesoVariableTara').on('change',function(){
				$('#pesoVariableTara').val( cantidadParaPantalla( $('#pesoVariableTara').val() ) );
				calculaPesos();
				siguienteCampo=focoSiguiente('pesoVariableTara');
			});
			
			
			
			$('#pesoVariablePesoNeto').on("click",function(e) {
				console.log('se ha hecho click en pesoVariablePesoNeto');
				$('#calculadora').show();
				$('#valorCalculadora').val( cantidadParaCalculadora($('#pesoVariablePesoNeto').val()) );
				$('#enterCalculadora').attr('campoValor','pesoVariablePesoNeto');
				$('#enterCalculadora').attr('forzarEnter','si');
			});
			
			$('#borrarPesoVariablePesoNeto').on('click',function(){
				$("#pesoVariablePesoNeto").val('');
				$("#pesoVariablePesoNeto").focus();
			});
			
			$('#pesoVariablePesoNeto').on('change',function(){
				console.log('ha cambiado pesoVariablePesoNeto: '+$('#pesoVariablePesoNeto').val());
				$('#pesoVariablePesoNeto').val( cantidadParaPantalla( $('#pesoVariablePesoNeto').val() ) );
				siguienteCampo=focoSiguiente('pesoVariablePesoNeto');
			});
			
			
			
		///////////////////////////////////////////////////// Gestion campo ubicacion

			<?php if($pedirUbicacion) { ?>

			$('#segundaLecturaUbicacion').on('change',function(e){
	
				e.preventDefault();
			
				var valor=$(this).val();
				
				<?php if($mascaraDobleUbicacion) { ?>
				
					var mascara='<?php echo $mascaraDobleUbicacion; ?>';
					valor=mascara.replace('*',valor);
				
				<?php } else { ?>
			
					var ConfigUbiNivelSeparador='<?php echo $_SESSION['parametrosSGA']['ConfigUbiNivelSeparador']; ?>';
					var ConfigUbiNivelTamanyoID='<?php echo $_SESSION['parametrosSGA']['ConfigUbiNivelTamanyoID']; ?>';
					var ConfigUbiNivelCaracterAutocompletar='<?php if($_SESSION['parametrosSGA']['ConfigUbiNivelAutocompletarEspacios']=='S') { ?> <?php } else if($_SESSION['parametrosSGA']['ConfigUbiNivelCaracterAutocompletar']=='') { ?>0<?php } else echo $_SESSION['parametrosSGA']['ConfigUbiNivelCaracterAutocompletar']; ?>';
					var ConfigUbiNivelAlineacion='<?php echo $_SESSION['parametrosSGA']['ConfigUbiNivelAlineacion']; ?>';
					
					var valorAutorellenado='';
					for( var i=1 ; i <= ConfigUbiNivelTamanyoID-valor.length ; i++) valorAutorellenado+=ConfigUbiNivelCaracterAutocompletar;
					
					if(ConfigUbiNivelAlineacion=='I') valor=valor+valorAutorellenado;
					else valor=valorAutorellenado+valor;
					
					if(ConfigUbiNivelSeparador!='') valor=ConfigUbiNivelSeparador+valor;
					
				<?php } ?>
				
				$('#ubicacion').val( $('#ubicacion').val()+valor );
				$('#segundaLecturaUbicacionDefinitiva').val( $('#ubicacion').val() );
				
				CargaValidaUbica();
			
			});
			
			$('#segundaLecturaUbicacionDefinitiva').on('change',function(e){
				$('#ubicacion').val( $('#segundaLecturaUbicacionDefinitiva').val() );
				CargaValidaUbica();
			});
			
			$('#ubicacion').on('change',function(e){
	
				e.preventDefault();
			
				<?php if($_SESSION['dobleLecturaUbicacion']) { ?>
				
					<?php if($borrarAlturaDeUbicacionScanner) { ?>
						$(this).val( $(this).val().substring(0,$(this).val().length-<?php echo $_SESSION['parametrosSGA']['ConfigUbiNivelTamanyoID']; ?>) );
					<?php } ?>
				
					$('#teclado').show();
					$('#valor').val('');
					$('#valorOculto').val('');
					$('#enter').attr('campoValor','segundaLecturaUbicacion');
					$('#enter').attr('forzarEnter','si');
				
				<?php } else { ?>
				
					$('#segundaLecturaUbicacionDefinitiva').val( $('#ubicacion').val() );
				
				<?php } ?>
			
			});

			$(document).on('click','#tecladoUbicacion',function(){
				$('#teclado').show();
				$('#valor').val( $('#segundaLecturaUbicacionDefinitiva').val() );
				$('#valorOculto').val( $('#segundaLecturaUbicacionDefinitiva').val() );
				$('#enter').attr('campoValor','segundaLecturaUbicacionDefinitiva');
				$('#enter').attr('forzarEnter','si');
			});
			
			$(document).on('click','#borrarUbicacion',function(){
				
				$("#ubicacion").val('');
				
				$('#segundaLecturaUbicacion').val('');
				$('#segundaLecturaUbicacionDefinitiva').val('');
				
				$("#ubicacion").focus();	
					
			});		
			
			<?php } ?>
			
			<?php if($controlPesaje) { ?>
			
			$(document).on('click','#tecladoPesajeCaja',function(){
				$('#teclado').show();
				$('#valor').val( $('#tecladoPesajeCaja').val() );
				$('#enter').attr('campoValor','pesajeCaja');
				$('#enter').attr('forzarEnter','no');
			});
			
			$(document).on('click','#borrarPesajeCaja',function(){
				$("#ubicacion").val('');
				$('#pesajeCaja').val('');
				$("#pesajeCaja").focus();		
			});	
			
			<?php } ?>
			
			
	
	$('#etiquetaPreparar').on('click',function(){
		focoSiguiente('');
	});
	
	
	$('#botonLectura').on("click",function(e){
		
		e.preventDefault();
		
		if(validaCampos()) {
			
			<?php if($_SESSION['producto']['CaracteristicasProducto']) { ?>
			
			if( hayCaracteristicasQueNoCoinciden() ) {
			
				confirm('ATENCION: Hay características que no coinciden con los valores informados en la ficha del producto.<br><br>¿Deseas continuar con el proceso de lectura aunque se generen discrepancias?','advertencia','CONTINUAR','Revisar')
				.done(function(){
					$('#procesoEntradaPlay').val(1);
					enviaFormulario();
				});
			
			}
			else {
			
				$('#procesoEntradaPlay').val(1);
				enviaFormulario();
				
			}
			
			<?php } else { ?>
			
				<?php if($controlPesaje) { ?>
				
					var bascula=$('#pesajeBascula').val();
					var almacen='<?php echo $_SESSION['almacen']; ?>';
					var producto='<?php echo $_SESSION['producto']['Codigo']; ?>';
					var tipoPesaje=$('#pesajeTipo').val();
					var unidadesPorCaja=$('#cantidad').val();
					var impresora=$('#pesajeImpresora').val();
					var cajaRoturas=$('#pesajeCaja').val();
					var paletCarro=$('#contenedor').val();
					
					console.log('-----------------------');
					console.log('Comienza pesaje');
			
					mostrarCargando(true,true,'Esperando a la báscula...'); //Nuevo metodo mostrarCargando con boton de cancelar
			
					pesaje(bascula,almacen,producto,tipoPesaje,unidadesPorCaja,impresora,cajaRoturas,paletCarro,1)
					.done(function(data){
					
						console.log('Datos finales: '+data);
						
						var valores=data.split('#');
						
						var codigoRespuesta=valores[0];
						var contenidoRespuesta=valores[1];
					
						if(codigoRespuesta=='1') {
						
							mostrarCargando(false,false);
							
							alert('ERROR: '+contenidoRespuesta,null,'error');
						
						}
						else if(codigoRespuesta=='0') {
						
							var idCaja=valores[2];
						
							mostrarCargando(false,false);
							
							alert(contenidoRespuesta,null,'ok')
							.done(function(){
							
								if(tipoPesaje=='C') $('#pesajeCaja').val( idCaja ); //Solo se graba id de caja nuevo, sino se mantiene el que se ha picado
							
								$('#procesoEntradaPlay').val(1);
								enviaFormulario();
							
								//mostrarCargando(true,true);
								//window.location=window.location;
							
							});
						}
					
					});
				
				<?php } else  { ?>
				
					$('#procesoEntradaPlay').val(1);
					enviaFormulario();
				
				<?php } ?>

			<?php } ?>
			
		}
	});
	
	$('.verNumerosSerie').on('click',function(){
		$.post('<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-numeros-serie.php' , { 'numeros' : $(this).attr('numeros') , 'ocultarPreparado' : 'si' })
		.done(function(data) {
			$('#popupNumerosSerieContenido').html(data);
			$('#popupNumerosSerie').show();
			$('#popupNumerosSerieContenido').show();
			
			var posicion=$(document).scrollTop();
			$('#popupNumerosSerieContenido').offset({ top: posicion+20 });
		});
	});
	
	
	
	
	///////////////// METODOS PARA LA LECTURA GS1 POR SCANNER O MANUAL
	
	
	
	<?php //if(!$desactivaScannerBluetooth && !$lecturaEspecial) { ?>
	<?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 {
			console.log('Pulsacion de scanner');
			lecturaScanner.push( [ String.fromCharCode(e.which) , e.which , e.key ] );
		}
	}); 
	
	<?php } ?>	
	
	$('#lecturaGS1').on('change',function(){
	
		console.log('INICIO PROCESO CAMBIO EN LECTURA CAMPO GS1');
				
		//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) { ?>
			
				console.log('>>>>>>>>>>>> Tiene lectura especial');
			
				$('#lecturaGS1').val( lecturaFinal );
			
				enviaFormulario();
			
			<?php } else { ?>
			
				<?php if($desactivaScannerBluetooth) { ?>
				
					console.log('>>>>>>>>>>>> Está desactivado el scanner');
				
					var mostrarLectura=lecturaFinal;
				
				<?php } else { ?>
				
					console.log('>>>>>>>>>>>> Está ACTIVADO el scanner. longitud de la lectura: '+lecturaScanner.length);
					
					if(lecturaScanner.length==0) { //esta activado, pero no se ha escaneado nada --> se ha puesto a mano
					
						var mostrarLectura=lecturaFinal;
					
					}
					else {
				
						var mostrarLectura=limpiaLecturaDesdeScannerNoGS1(lecturaScanner); //28-02-2024 se detecta que si se introduce manualmente, peta porque lecturaScanner está vacio
						//var mostrarLectura=limpiaLecturaDesdeScannerNoGS1(lecturaFinal);     //más arriba, se comprueba si es por scanner o es manual y se graba en lecturaFinal, que es el valor correcto
						
					}
				
				<?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');
	
	});
	
	$('#botonCancelarLecturaNoReconocida').on('click',function(){

		$('#popupLecturaNoReconocida').hide();
		
		reiniciaVariables();
		
		$('#lecturaGS1').val('');
		$('#lecturaGS1').focus();
		
	});
	
	$('input[type="radio"][name="tipoDatoLecturaNoReconocida"]').on('click',function(){
	
		enviaFormulario();
	
	});
	
	
	$(document).on('click','.campoMultilinea',function(){
		
		var idCampo=$(this).attr('id');
		
		$('#tecladoMultilinea').show();
		$('#valorTecladoMultilinea').val( $(this).val() );
		$('#enterTecladoMultilinea').attr('campoValor', idCampo );
		$('#enterTecladoMultilinea').attr('forzarEnter','no');
		
	});
	
	
	//21-05-2021 Llevar el foco a la lecturaGS1 despues de cualquier cambio
	$('.moverFocoLecturaGS1trasCambio').on('change',function(){
		$('#lecturaGS1').focus();
	});

	
	
	<?php if($loteAutomaticoEntrada) { ?>
	$('#loteAutomatico').on('click',function(){
		if('<?php echo $_SESSION['producto']['Lote']; ?>'!='') {
			$('#lote').val('<?php echo $_SESSION['producto']['Lote']; ?>');
			puntoControlAutomatico('5-FIJO',true,'<?php echo $_SESSION['producto']['Lote']; ?>');
		}
		else {
			$('#lote').val('<?php echo $_SESSION['entrada']['NumEntrada']; ?>/<?php echo $_SESSION['producto']['NumPartida']; ?>');
			puntoControlAutomatico('5-FIJO',true,'<?php echo $_SESSION['entrada']['NumEntrada']; ?>/<?php echo $_SESSION['producto']['NumPartida']; ?>');
		}
		focoSiguiente('lote');
	});
	<?php } ?>
	
	
	//26-1-2022 Nuevo método para fijar campos
	function capitalizarTexto(str) {
	  return str.charAt(0).toUpperCase() + str.slice(1);
	}

	$('.iconoFijar').on('click',function(){
	
		var nombreCampo=$(this).attr('campo');
		var campo=$('#'+nombreCampo);
		var valor=campo.val();
		
		var icono=$(this);
		var iconoTeclado=$('#teclado'+capitalizarTexto(nombreCampo));
		var iconoBorrar=$('#borrar'+capitalizarTexto(nombreCampo));
		
		if($(this).attr('activo')=='0') {
			if(valor) {
				$.post('<?php echo $rutaHtml; ?>/contenidos/entrada-mercancia-fijar-campo.php' , { 'campo' : nombreCampo , 'valor' : valor })
				.done(function(data) {
					icono.attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar.png');
					icono.attr('activo',1);
					campo.addClass('deshabilitado');
					campo.prop('readonly',true);
					iconoTeclado.hide();
					iconoBorrar.hide();
				});
			}
			else alert('Para fijar '+capitalizarTexto(nombreCampo)+' debes informar primero un valor para este dato.',campo,'advertencia');
		}
		else {
			$.post('<?php echo $rutaHtml; ?>/contenidos/entrada-mercancia-fijar-campo.php' , { 'campo' : nombreCampo , 'valor' : '' })
			.done(function(data) {
				icono.attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar-off.png');
				icono.attr('activo',0);
				campo.removeClass('deshabilitado');
				campo.prop('readonly',false);
				iconoTeclado.show();
				iconoBorrar.show();
			});
		}
	
	});
	
	
	
	<?php if($gestionProductosRegalo) { ?>
	
	//GESTION POPUP REGALOS
		
	$('.iconoRegalos').on('click',function(){
	
		$('#popupCargando').show();
		
		var regalos=$(this).attr('regalos');
		var cantidad=$(this).attr('CantTotalProductoEnLaOrden');
		var cantidadRegalo=$(this).attr('cantidadRegalo');
		
		var posicionIcono=$(this).position();
		posicionIcono=parseInt(posicionIcono.top);
		
		$.post('<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-regalos.php?regalos' , { 'regalos' : regalos , 'cantidad' : cantidad , 'cantidadRegalo' : cantidadRegalo } )
		.done(function(data) {
		
			$('#popupRegalosContenido').html(data);
			
			var posicionScroll = parseInt($('html').scrollTop());
			var posicionMover= posicionScroll + (posicionIcono*0.25);
			$('#popupRegalosContenido').css('top',posicionMover);
			
			$('#popupRegalos').show();
			$('#popupRegalosContenido').show();
			
			$('#popupCargando').hide();
			
		});
		
	});
	
	$(document).on('click','#botonCerrarRegalos',function(){
	
		$('#popupRegalosContenido').html('');
	
		$('#popupRegalos').hide();
		$('#popupRegalosContenido').hide();
	
	});
	
	<?php } ?>
	
	
	
	<?php if($_GET['accion']=='borradopalet') { ?>
	mueveHastaPestanya('pestanyaListadoPalets');
	<?php } else { ?>
	mueveHastaPestanya('pestanyaLectura');
	<?php } ?>
	
	//Construcción inicial
	inicializaSecuencia();
	focoSiguiente('contenedor');
	
	
	
	<?php if( !$_SESSION['entradaEsDevolucion'] && $recepcionMasivaPalets ) { ?>
		cargaResumenPaletsMasivos(true);
	<?php } ?>
	
});

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;
}

<?php if($pedirNumSerie) { ?>

	/*

	construyeLecturaNS(0); //Inicialización

	$(document).ready(function(){

		
		
		<?php if($numerosSerieRecuperar) { ?>

			<?php $numerosSerieSecuencia=explode(',',$numerosSerieRecuperar); ?>
			<?php $contadorNS=1; ?>
			
			<?php foreach($numerosSerieSecuencia as $itemNS) { ?>
			
				<?php if($itemNS) { ?>

				$('#lecturaNS-<?php echo $contadorNS; ?>').val('<?php echo $itemNS; ?>');
				
				<?php if( is_array($numerosDeSerieError) && in_array($itemNS,$numerosDeSerieError) ) { ?>
				$('#lecturaNS-<?php echo $contadorNS; ?>').addClass('campoError');
				<?php } ?>
				
				construyeLecturaNS(<?php echo $contadorNS; ?>);
				
				<?php $contadorNS++; ?>
				
				setTimeout(() => {}, 1000);
				
				<?php } ?>
				
			<?php } ?>
			
		<?php } ?>
	
	});
	
	*/
	
<?php } ?>




</script>

<?php echo '<p>numerosSerieRecuperar: '.$numerosSerieRecuperar.'</p>'; ?>


<?php

$mostrarInfo=true;

if($_SESSION['entradaEsRecepcionCompra']) {
	include($rutaPhp.$rutaHtml.'/maqueta/menu-recepcion-compra.php');
}
else if($_SESSION['entradaEsDevolucion']){
	include($rutaPhp.$rutaHtml.'/maqueta/menu-entrada-devolucion.php');
}
else {
	include($rutaPhp.$rutaHtml.'/maqueta/menu-entrada-mercancia-gs1.php');
}

if(!$_SESSION['entradaPaletActual'] && $requierePaletizar && !$contenedor) $foco='contenedor';
else if($_SESSION['entrada']['VisibCodBarras']=='S') $foco='lecturaGS1';
else $focoSiguiente='contenedor';

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

?>