<?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();

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

$OP_bloqueo_multioperario_noDesbloquear=true;

require_once($rutaPhp.$rutaHtml.'/acceso/control.php');
$esPantallaOP=true;
require_once($rutaPhp.$rutaHtml.'/maqueta/arriba.php');

$traza=(isset($_GET['traza']) && $_GET['traza']=='si');
$trazaSino=(isset($_GET['traza']) && $_GET['traza']=='sino');

//25-05-2026 TAREA INTERNA 74922 
$saltarDialogosConfirmacion=(isset($ordenPreparacionRapida) && $ordenPreparacionRapida);


/////////////////////////////
//echo '<p>Traza orden</p>';
//print_r($_SESSION['orden']);
//echo '<p>procedenciaPantallaTablet 1: '.$_SESSION['orden']['procedenciaPantallaTablet'].'</p>';
/////////////////////////////

//30-12-2025
$GestionNumSerieSalida=($_SESSION['orden']['GestionNumSerieSalida']);
$LongitudNS=NULL;



//27-05-2025
$permitirEANMaestro=( isset($eanDunMaestro) && $_SESSION['parametrosSGA']['AsociacionEANaProductos']=='S' );

//echo '<p>eanDunMaestro: '.$eanDunMaestro.'</p>';
//echo '<p>parametrosSGA AsociacionEANaProductos: '.$_SESSION['parametrosSGA']['AsociacionEANaProductos'].'</p>';
//echo '<p>permitirEANMaestro: '.$permitirEANMaestro.'</p>';


//$_SESSION['orden']['VisibCodBarras']='S';

/////////// GS1-128 /////////

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

if( isset( $codigosEspeciales[$_SESSION['orden']['Cliente']] ) ) $lecturaEspecialCliente=$_SESSION['orden']['Cliente'];

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

//25-10-2024 Picking previo obligatorio coger lo que hay propuesto
$pickingPrevio=($_SESSION['orden']['PickingPrevio']=='S');

//24-05-2022 Multioperario
$gestionMultiOperario=($_SESSION['parametrosSGA']['GestionMultioperario']=='S' && $_SESSION['orden']['Multioperario']=='S');

//26-07-2024
$Controlcaducadosycortosdefecha=($_SESSION['parametrosSGA']['Controlcaducadosycortosdefecha']=='S');
if($traza) echo '<p>Controlcaducadosycortosdefecha: '.$Controlcaducadosycortosdefecha.'</p>';

unset($_SESSION['otrosContenedores']);

//7-4-2021 añadimos observaciones al cierre (facturacion)
$observacionesFacturacion=( $_SESSION['parametrosSGA']['ObservacionesFacturacion']=='S' );

//8-5-2020 Se pasa también a la pantalla anterior (orden-preparacion-S.php) por si hubiera que hacer la gestión de Packing List antes
$validacionPackingInicial=( $_SESSION['parametrosSGA']['ValidacionesPackingList']=='S' );

$pickingPacking=($_SESSION['parametrosSGA']['PickingPacking']=='S');
$requierePackingList=($_SESSION['orden']['RequierePackingList']=='S');

$requierePaletizar=( $pickingPacking || $requierePackingList );

$lecturaCajaPalet=( $_SESSION['parametrosSGA']['LecturaCajaPalet']=='S' && $requierePaletizar );

$gestionarDatosCierre=($_SESSION['orden']['TipoOrden']=='S' || $_SESSION['orden']['TipoOrden']=='A');

$imprimirDocumentosCierre=($_SESSION['parametrosSGA']['ImprimirCierreOrden']=='S');

//09-06-2025
$imprimirEtiquetaAgencia=($_SESSION['orden']['ImprimeEtiquetaAgenciaTransporte']=='S');

//27-10-2022
$gestionPickingCierrePalets=($_SESSION['parametrosSGA']['GestionPicking']=='SP' && $_SESSION['orden']['TipoOrden']=='P');

//05-09-2023
$gestionProductosRegalo=($_SESSION['parametrosSGA']['ProductosDeRegalo']=='S');

//28-08-2025
$LecturadeIDsdeTTTdesdelapreparacion=( $_SESSION['parametrosSGA']['LecturadeIDsdeTTTdesdelapreparacion']=='S' && $_SESSION['orden']['TipoOrden']=='S' );
$paletsConSSCCObligatorio=( $_SESSION['parametrosSGA']['TrazabilidadTabaco']=='FO' );
$reiniciarPeticionWebService=( isset($_GET['reiniciarPeticionWebService']) && $_GET['reiniciarPeticionWebService']=='si' );
//Esto a continuación, está copiado de trazabilidad-tabaco-salidas-proceso.php
$cadenaLecturasTTT='';
$cadenaPrecintasTTT='';
$cuantosIdsLecturasTTT=0;
$cantidadLecturasTTT=0;
foreach($_SESSION['lecturas'] as $lectura) {
	//print_r($lectura);
	//echo '<hr>';
	$cuantosIdsLecturasTTT++;
	$cantidadLecturasTTT+=$lectura['Cantidad'];
	$cadenaLecturasTTT.=codificaTTT($lectura['CodigoEscaneado']).'@';
	$cadenaPrecintasTTT.=$lectura['Precinta'].'@';
}


//echo '<p>cuantosIdsLecturasTTT: '.$cuantosIdsLecturasTTT.'</p>';
//echo '<p>cantidadLecturasTTT: '.$cantidadLecturasTTT.'</p>';
//echo '<p>cadenaLecturasTTT: '.$cadenaLecturasTTT.'</p>';
//echo '<p>cadenaPrecintasTTT: '.$cadenaPrecintasTTT.'</p>';


//22-11-2024 Automatizar TTT salidas
unset($_SESSION['redireccionTTT']['salida']); //02-06-2025 TAREA INTERNA 67118
$redireccionTTT=($_SESSION['orden']['TieneTPDT']=='S' && !$LecturadeIDsdeTTTdesdelapreparacion && $_SESSION['orden']['TipoOrden']=='S');


if($traza || $trazaSino) {
	
	echo '<p>lecturaCajaPalet: '.$lecturaCajaPalet.'<br>';
	echo 'validacionPackingInicial: '.$validacionPackingInicial.'<br>';
	echo 'PickingPacking: '.$pickingPacking.'<br>';
	echo 'requierePackingList: '.$requierePackingList.'<br>';
	echo 'requierePaletizar: '.$requierePaletizar.'<br>';
	echo 'gestiona palets completos: '.$_SESSION['orden']['GestionPaletsCompletos'].'</p>';
	echo 'imprimirDocumentosCierre: '.$imprimirDocumentosCierre.'</p>';
	echo 'redireccionTTT: '.$redireccionTTT.'</p>';
	echo '<p>cuantosIdsLecturasTTT: '.$cuantosIdsLecturasTTT.'</p>';
	echo '<p>cantidadLecturasTTT: '.$cantidadLecturasTTT.'</p>';
	echo '<p>cadenaLecturasTTT: '.$cadenaLecturasTTT.'</p>';
	echo '<p>cadenaPrecintasTTT: '.$cadenaPrecintasTTT.'</p>';
}



/////////// PRUEBAS ////////////
//unset( $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]);
//$validacionPackingInicial=false;
//$requierePaletizar=true;
///////////////////////////////


$pedirCajaPaletDestino=( $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]=='C' || $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]=='PC' );
$pedirContenedorDestino=( $requierePaletizar && $validacionPackingInicial && ( !isset($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]) || $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]!='C' ) );

//12-09-2022
$pedirContenedorDestinoUbicacion=($pedirContenedorDestino && $_SESSION['parametrosSGA']['UbicarAlPreparar']=='S');



//14-05-2026 TAREA INTERNA 75040
$mostrarPaisOrigen=(isset($_SESSION['parametrosSGA']['GestionPaisOrigen']) && $_SESSION['parametrosSGA']['GestionPaisOrigen']=='S');



//echo '<p>validacionPackingInicial: '.$validacionPackingInicial.'</p>';
//echo '<p>requierePaletizar: '.$requierePaletizar.'</p>';




if($_POST['esCierre']) {

	///// 8-3-2018 AÑADIMOS LA COMPROBACION DE SI HAY SERVICIOS Y/O DESCARGAS AL CIERRE
	

	
	if($gestionarDatosCierre) $continuarCierre=false;
	else $continuarCierre=true;
	
	
	if( $_POST['hayDescargas'] || $_POST['hayServicios'] || $_POST['hayPaletsCHEP'] || $_POST['observacionesFacturacion'] ) {
	
		$cadenaDescargas='';
	
		foreach($_POST as $campo=>$valor) {
			
			if( substr($campo,0,8)=='descarga' && substr($campo,8,strlen($campo))!='Auto' ) {
				if($cadenaDescargas!='') $cadenaDescargas.=";";
				$cadenaDescargas.=substr($campo,8,strlen($campo)).",".$_POST['cantidad-descarga'.$valor];
			}
		}
		
		$cadenaServicios='';
	
		foreach($_POST as $campo=>$valor) {
			
			if( substr($campo,0,8)=='servicio'  && substr($campo,8,strlen($campo))!='Auto' ) {
				if($cadenaServicios!='') $cadenaServicios.=";";
				$cadenaServicios.=substr($campo,8,strlen($campo)).",".$_POST['cantidad-servicio'.$valor];
			}
		}
		
		$cadenaPaletsCHEP='';
	
		foreach($_POST as $campo=>$valor) {
			
			if(substr($campo,0,9)=='paletCHEP') {
				if($cadenaPaletsCHEP!='') $cadenaPaletsCHEP.=";";
				if($_POST['cantidad-paletCHEP'.$valor]>0) $cantidadPaletCHEP=$_POST['cantidad-paletCHEP'.$valor]; else $cantidadPaletCHEP=0;
				$cadenaPaletsCHEP.=substr($campo,9,strlen($campo)).",".$cantidadPaletCHEP;
			}
		}
		
		//9-7-2020 añado usuario al final por solicitud de JMA para expro
		$peticionServicios='AcepServDescCierreOprep#'.$_SESSION['orden']['Empresa'].'#'.$_SESSION['orden']['OrdenPreparacion'].'#'.$cadenaDescargas.'#'.$cadenaServicios.'#'.$cadenaPaletsCHEP.'#'.$_SESSION['usuario']['Usuario'].'#'.arreglaSaltos($_POST['observacionesFacturacion']);
	
		//2-12-2021 Pasamos esta llamada a DESPUES del cierre. Ticket 21041161 de VCDL, se cuadruplica la facturación porque el cierre NO es ok varias veces.
		$continuarCierre=true;

	
	}
	else $continuarCierre=true;
	
	
	if($continuarCierre) {

		$cadenaEnvio='';
	
		$cadenaEnvio.='*PXTmpCierreSGAOrden'.PHP_EOL;
		$cadenaEnvio.='Empresa='.$_SESSION['orden']['Empresa'].PHP_EOL;
		$cadenaEnvio.='Orden='.$_SESSION['orden']['OrdenPreparacion'].PHP_EOL;
		$cadenaEnvio.='Usuario='.$_SESSION['usuario']['Usuario'].PHP_EOL;
		
		if($gestionarDatosCierre) {
			
			foreach(arreglaArrayPXMobileProxiumResult($_SESSION['orden']['DatosCierre']) as $datoCierre) {
			
				if($datoCierre['NoEditable']!='S') {
					$cadenaEnvio.='*PXTmpCierreSGAOrdenCampos'.PHP_EOL;
					$cadenaEnvio.='NumCampo='.$datoCierre['NumCampo'].PHP_EOL;
					$cadenaEnvio.='Valor='.$_POST['campoCierre-'.$datoCierre['NumCampo']].PHP_EOL;
				}
			}
		
		}
		
		$cadenaEnvio.='*FIN'.PHP_EOL;
	
		$resultado=EnviarDatos($wsUsuario,$wsClave,base64_encode(utf8_decode($cadenaEnvio)));
		
		if($traza || $trazaSino) {
			echo nl2br($cadenaEnvio);
			echo "<p>RESULTADO OBTENIDO</p>";
			print_r($resultado['EnviarDatosResult']);
		}
		
		$resultadoEvaluar=explode("#",$resultado['EnviarDatosResult']);
		
		if($resultadoEvaluar[0]==1) {
		
			unset($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]);
		
			if($resultadoEvaluar[2]!='') $mensajeMostrar=$resultadoEvaluar[2];
			else $mensajeMostrar='Cierre de la Orden realizado correctamente.';
			
			//9-12-2025
			$HayDocumentosImprimir=( ($imprimirDocumentosCierre || $imprimirEtiquetaAgencia) && $resultadoEvaluar[3]=='1' );
			
			//2-12-2021 Pasamos aqui la llamada de servicios comentada arriba. Ticket 21041161 de VCDL, se cuadruplica la facturación porque el cierre NO es ok varias veces.
			
			if($peticionServicios) {
			
				$resultadoServicios=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticionServicios);
				
				if($traza || $trazaSino) {
					echo "<p>".$peticionServicios."</p>";
					print_r($resultadoServicios);
				}
				
				$validacion=explode('#',$resultadoServicios[0]['Error']);
				
				if($validacion[0]!=0) {
					$mensajeMostrar.='<br><br><strong><img src="img_nx/iconos/advertencia.png" width="60"><br>ATENCION:</strong> '.$validacion[1];
				}
			
			}
			
			//En la respuesta de cierre, va a venir si hay que saltar a "imprimir documentos" aunque el paramtro general no esté configurado.
			//$imprimirDocumentosCierre = true;
			
			//IMPRIMIR DOCUMENTOS
			//if($imprimirDocumentosCierre || $imprimirEtiquetaAgencia) $mensajeMostrar.='<br><br>A continuación, selecciona los documentos a imprimir.';
			if($HayDocumentosImprimir) $mensajeMostrar.='<br><br>A continuación, selecciona los documentos a imprimir.';
			
			
			//TICKET 25066120 tras el cierre, se perdían los datos de la orden y la redireccion. Ahora la pasamos por post hidden para no perderla
			if(!$_SESSION['orden']['procedenciaPantallaTablet'] && $_POST['procedenciaPantallaTablet']) $_SESSION['orden']['procedenciaPantallaTablet']=$_POST['procedenciaPantallaTablet'];
			
			
			
			
			?>
			<script>
			
			<?php if($saltarDialogosConfirmacion && $HayDocumentosImprimir) { //25-05-2026 TAREA INTERNA 74922 ?>
			
				$('#popupCargando').show();
				window.location="<?php echo $rutaHtml; ?>/documentos-imprimir.php?procedencia=CIERREOPREP<?php if($redireccionTTT) { ?>&redireccionTTT=si<?php } ?>";
			
			<?php } else { ?>
			
			
				alert('<?php echo $mensajeMostrar; ?>',null,'ok').done( function(){
					
					<?php //if($imprimirDocumentosCierre || $imprimirEtiquetaAgencia) { ?>
					<?php if($HayDocumentosImprimir) { ?>
					
						$('#popupCargando').show();
						window.location="<?php echo $rutaHtml; ?>/documentos-imprimir.php?procedencia=CIERREOPREP<?php if($redireccionTTT) { ?>&redireccionTTT=si<?php } ?>";
						
					<?php } else { ?>
					
						<?php if($redireccionTTT && !$LecturadeIDsdeTTTdesdelapreparacion) { ?>
						
							confirm('Esta Preparación incluye productos de tabaco que requieren trazabilidad.<br><br>¿Deseas acceder directamente a la pantalla de trazabilidad a la salida?','pregunta')
							.done(function(){
								$('#popupCargando').show();
								window.location="<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida.php?orden=<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>&empresa=<?php echo $_SESSION['orden']['Empresa']; ?>&redireccionTTT=si";
							})
							.fail(function(){
								$('#popupCargando').show();
								window.location="<?php echo $_SESSION['orden']['procedenciaPantallaTablet']; ?>";
							});
							
						<?php } else { ?>
						
							$('#popupCargando').show();
							window.location="<?php echo $_SESSION['orden']['procedenciaPantallaTablet']; ?>";
							
						<?php } ?>
						
					<?php } ?>
					
				});
			
			<?php } ?>
			
			</script>
            
			<?php
		}
		else {
			$errorCierre=$resultadoEvaluar[1];
			
			if($traza) {
				echo '<p>Error cierre: '.$errorCierre.'</p>';
			}
		}
		
	}
	else $errorCierre='No ha podido cerrarse la Orden de Preparación';
}






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


<?php include($rutaPhp.$rutaHtml.'/contenidos/popup-playas.php'); ?>


<?php //print_r($_SESSION['orden']['TTT']['datosPantalla']); ?>


<?php if($errorCierre) { ?>
<script>
	$('#popupCargando').hide();
	alert('<strong>Error:</strong> <?php echo convierteSaltosBr($errorCierre); ?>',null,'error')
	.done(function(){
		$('#popupCargando').show();
		window.location='orden-preparacion-S.php?orden=<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>&empresa=<?php echo $_SESSION['orden']['Empresa']; ?>';
	});
</script>
<?php } ?>

<h2 style="margin-top:0">Orden de Preparación Nº <?php echo $_SESSION['orden']['OrdenPreparacion']; ?></h2>

<?php
//29-20-2021 LCT
if($verCabeceraClienteProcesoOP) {
	?><p>Cliente <?php echo $_SESSION['orden']['Cliente']; ?>: <strong><?php echo $_SESSION['orden']['NombreCliente']; ?></strong></p><?php
}
?>

<?php //echo '<p>Modo preparación seleccionado: '.$_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ].'</p>'; ?>



<?php if( $requierePaletizar ) { ?>
<p class="mini" id="mensajeAsociacionPacking"><?php if($_SESSION['orden']['PackingList']) { ?>Esta orden de preparación está asociada al <strong>Packing List <?php echo $_SESSION['orden']['PackingList']; ?></strong><?php } else { ?><span class="error">Esta orden de preparación requiere paletizar los productos</span><?php } ?></p>
<?php } ?>

<input name="requierePackingList" type="hidden" id="requierePackingList" value="<?php if( $requierePaletizar ) echo 'S'; ?>"/>
<input name="packingList" type="hidden" id="packingList" value="<?php echo $_SESSION['orden']['PackingList']; ?>"/>

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

<input name="cajaPaletSeleccionada" type="hidden" id="cajaPaletSeleccionada" value="<?php echo $_SESSION['preparacionCajaPaletActual']; ?>"/>
<input name="cajaPaletSeleccionadaTipo" type="hidden" id="cajaPaletSeleccionada" value="<?php echo $_SESSION['preparacionCajaPaletActualTipo']; ?>"/>

<input name="paletSeleccionadoFijado" type="hidden" id="paletSeleccionadoFijado" value="<?php echo $_SESSION['preparacionPaletActualFijado']; ?>"/>
<input name="paletSeleccionadoFijadoTipo" type="hidden" id="paletSeleccionadoFijadoTipo" value="<?php echo $_SESSION['preparacionPaletActualFijadoTipo']; ?>"/>
<input name="paletSeleccionadoFijadoUbicacion" type="hidden" id="paletSeleccionadoFijadoUbicacion" value="<?php echo $_SESSION['preparacionPaletActualFijadoUbicacion']; ?>"/>

<input name="cajaPaletSeleccionadaFijada" type="hidden" id="cajaPaletSeleccionadaFijada" value="<?php echo $_SESSION['preparacionCajaPaletActualFijada']; ?>"/>
<input name="cajaPaletSeleccionadaFijadaTipo" type="hidden" id="cajaPaletSeleccionadaFijadaTipo" value="<?php echo $_SESSION['preparacionCajaPaletActualFijadaTipo']; ?>"/>

<?php

	
	
//13-05-2026 TAREA 74904
$modoSeleccionCodigo=( isset($_SESSION['modosSeleccionOPs']) && isset($_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]) && $_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]=='C' );
$eanDunSeleccion='';

if($modoSeleccionCodigo && isset($_POST['eanDunSeleccion']) && $_POST['eanDunSeleccion']) {

	$eanDunSeleccion=$_POST['eanDunSeleccion'];

}

$modoSeleccionCodigoSolicitar=( $modoSeleccionCodigo && !$eanDunSeleccion );
	



///######################## MOVIDO AQUI DESDE ABAJO, POORQUE SI NO NO SE PUEDE SABER SI ES FIN... PARA CIERRE ########################////

	$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#CARGAUBICACION#'.$_SESSION['almacen'].';'.$_SESSION['orden']['Empresa'].';'.$_SESSION['orden']['OrdenPreparacion'];
		
	if($_GET['siguiente'] || $_GET['inicio']) $peticion.=';'.$_SESSION['parametros'];
	else if($_GET['siguienteUbicacion']) $peticion.=';'.$_SESSION['parametrosUbicacion'];
	else $peticion.=';'.$_SESSION['parametrosVacios'];
	
	if($_GET['fuerzaS'] || $_GET['inicio']) $peticion.=';S';
	else $peticion.=';';
	
	
	//13-05-2026 TAREA 74904
	if($modoSeleccionCodigo && $eanDunSeleccion)  $peticion.=';'.$eanDunSeleccion;
	
	
	//29-08-2025 si viene de TTT es posible que esté la petición grabada en memoria, porque se ha saltado a la pantalla de trazabilidad
	if($reiniciarPeticionWebService) {
	
		//borramos los datos
		unset($_SESSION['orden']['TTT']);
		unset($_SESSION['lecturas']);
		
		unset($cuantosIdsLecturasTTT);
		unset($cantidadLecturasTTT);
		unset($cadenaLecturasTTT);
		unset($cadenaPrecintasTTT);
		
		//echo '<p>Se borran las variables de session TTT</p>';
		
	}
	else if($_SESSION['orden']['TTT']['peticionWebService']) {
		$peticion=$_SESSION['orden']['TTT']['peticionWebService'];
	}
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($traza || $trazaSino) {
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$producto=$resultado[0];

///######################## ---FIN---- MOVIDO AQUI DESDE ABAJO, POORQUE SI NO NO SE PUEDE SABER SI ES FIN... PARA CIERRE ########################////


$novolverSolicitarCodigo=( $producto['Error']=='1#No hay productos pendientes de preparar.' || $_GET['cierreCargaRapida'] );





	
if ($modoSeleccionCodigoSolicitar && !$novolverSolicitarCodigo) {

	?>
    
    
    <form id="formularioEanDun" name="formularioEanDun" method="post" action="" >
        <p>Código EAN/DUN<br />
        <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="iconoTecladoEanDunSeleccion" />
        <input id="eanDunSeleccion" name="eanDunSeleccion" type="text" class="campo" style="width:350px" autocomplete="off"/>
        <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="boton-x" id="borrarEanDunSeleccion" />
        </p>      
    </form>
    
    <script>
	$(document).ready(function(){
	
		$('#eanDunSeleccion').on('change',function(){
			$('#popupCargando').show();
		});
	
		$('#eanDunSeleccion').focus();
		
	});
	</script>
	<?php

}
else {

	/*
	$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#CARGAUBICACION#'.$_SESSION['almacen'].';'.$_SESSION['orden']['Empresa'].';'.$_SESSION['orden']['OrdenPreparacion'];
	
	if($_GET['siguiente'] || $_GET['inicio']) $peticion.=';'.$_SESSION['parametros'];
	else if($_GET['siguienteUbicacion']) $peticion.=';'.$_SESSION['parametrosUbicacion'];
	else $peticion.=';'.$_SESSION['parametrosVacios'];
	
	if($_GET['fuerzaS'] || $_GET['inicio']) $peticion.=';S';
	else $peticion.=';';
	
	
	//13-05-2026 TAREA 74904
	if($modoSeleccionCodigo && $eanDunSeleccion)  $peticion.=';'.$eanDunSeleccion;
	
	
	//echo '<p>Peticion: '.$peticion.'</p>';
	
	//echo '<p>reiniciarPeticionWebService: '.$reiniciarPeticionWebService.'</p>';
	
	//29-08-2025 si viene de TTT es posible que esté la petición grabada en memoria, porque se ha saltado a la pantalla de trazabilidad
	if($reiniciarPeticionWebService) {
	
		//borramos los datos
		unset($_SESSION['orden']['TTT']);
		unset($_SESSION['lecturas']);
		
		unset($cuantosIdsLecturasTTT);
		unset($cantidadLecturasTTT);
		unset($cadenaLecturasTTT);
		unset($cadenaPrecintasTTT);
		
		//echo '<p>Se borran las variables de session TTT</p>';
		
	}
	else if($_SESSION['orden']['TTT']['peticionWebService']) {
		$peticion=$_SESSION['orden']['TTT']['peticionWebService'];
	}
	
	
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($traza || $trazaSino) {
	
		echo "<p>".$peticion."</p>";
		print_r($resultado);
		
	}
	
	$producto=$resultado[0];
	*/
	
	
	
	$datos=$producto['Datos']['PXMobileProxiumResult'];
	
	
	if($traza || $trazaSino) {
	
		print_r($producto);
		echo "<p>Parametro general ver en cajas: ".$_SESSION['verEnCajas']."</p>";
		echo "<p>Embalaje primario producto: ".$producto['EmbalajePrimarioCaja']."</p>";
		echo "<p>DiferenciaCantidadOrdPrep: ".$_SESSION['parametrosSGA']['DiferenciaCantidadOrdPrep']."</p>";
	}

	
	if($producto && !$producto['Error']) {
	
		
		//30-12-2025
		if($GestionNumSerieSalida && $GestionNumSerieSalida=='C' && $producto['LongitudNS']) $LongitudNS=explode(',',$producto['LongitudNS']);
		$LongitudNSTexto=str_replace(',',' / ',$producto['LongitudNS']);
	
	
		//29-12-2025 No preparable, pero visible
		$noPreparable=false;
		$NoPreparableLongitudNS=($producto['ControlNumSerie']=='S' && $producto['NoPreparableLongitudNS']=='S');
		//$NoPreparableLongitudNS=true;
		if($NoPreparableLongitudNS) $noPreparable=true;
		
		//echo '<p>NoPreparableLongitudNS: '.$NoPreparableLongitudNS.'</p>';
		//echo '<p>No preparable: '.$noPreparable.'</p>';
	
	
		//28-08-2025
		$SujetoTPDT=($LecturadeIDsdeTTTdesdelapreparacion && $producto['SujetoTPDT']=='S');  //30-09-2025 decidimos que tambien se lea con palets

		
		if( $SujetoTPDT ) {
			$_SESSION['orden']['TTT']['peticionWebService']=$peticion; //Guardamos la peticion WS para poder recuperarla despues, al saltar de pantalla para leer los ids y volver
			foreach( arreglaArrayPXMobileProxiumResult($producto['Datos']) as $campo ) if($campo['Codigo']=='PRECEMP') $precinta=$campo['Valor'];
			
			$indice=$producto['Codigo'].'¬¬¬'.$producto['Descripcion'].'¬¬¬'.$precinta.'¬¬¬'.$producto['Cantidad'];
			//echo '<p>indice: '.$indice.'</p>';
			$indiceTTTPantallaTrazabilidadSalida=base64_encode($indice);
		}
		else {
			unset($_SESSION['orden']['TTT']);
		}
		
		
		//05-08-2025 TAREA INTERNA 68712
		$fondoRosa=false;
		foreach($datos as $dato) {
			if($dato['Codigo']=='PRECEMP' && $dato['Valor']=='DP') $fondoRosa=true;
		}
		if($fondoRosa) $colorFondo='fondoRosa';
	
	
	
		//06-02-2023 listados infinitos de combinaciones de palets/lote/fecha
		$muchasCombinacionesStock=($producto['MuchasCombinacionesStock']=='S');
		
		//echo '<p>noAutomatizarAutorellenado: '.$muchasCombinacionesStock.'</p>';
		
		
		//25-05-2022 Multioperario
		if($gestionMultiOperario) $_SESSION['OP_bloqueo_multioperario']=$_SESSION['orden']['OrdenPreparacion'];
		
		//27-05-2022 Control para multioperarios. Puede haber marcado un check de inicio y luego el producto no corresponderlo
		//con lo cual el ws de CARGAUBICACION dará otro producto completamente distinto
		if($gestionMultiOperario && $_GET['inicio']) {
		
			//echo '<p>Parametros de linea producto prevista:</p>';
			//print_r($_SESSION['parametros']);
			
			//Contruimos cómo hubiera sido la cadena de parametros, pero con el producto que se nos ha dado
			$cadenaObtenida=$producto['Codigo'];
			$cadenaObtenida.=';'.$producto['Ubicacion'];
			$cadenaObtenida.=';'.$producto['Contenedor'];
			
			foreach($_SESSION['comportamientosGlobales'] as $comportamiento) {
			
				$valor='-';
				foreach( arreglaArrayPXMobileProxiumResult($producto['Datos']) as $campo ) {
					if( $campo['Codigo']==$comportamiento['Codigo'] && $campo['Valor']!='' ) {
						$valor=$campo['Valor'];
						break;
					}
				}
				$cadenaObtenida.=';'.$valor;
			}
								
			$cadenaObtenida.=';'.$producto['NumeroEntrada'];
			$cadenaObtenida.=';'.$producto['LineaEntrada'];
			
			//echo '<p>Parametros del producto finalmente obtenido:</p>';
			//print_r($cadenaObtenida);
			
			if($_SESSION['parametros']!=$cadenaObtenida) {
				echo '<p>Se muestra pop-up de advertencia.</p>';
				?><script>alert('Atención, por la redistribución de las lineas de preparación en modo Multioperario,<br>el producto propuesto no coincide con el que habías seleccionado.',null,'advertencia');</script><?php
			}
		
		}
		
		
		
		
		
		
		//15-02-2022 Control decimales
		if($producto['MaximoDecimalesPermitidos']=='') {
			$decimalesPermitir=true;
		}
		else if($producto['MaximoDecimalesPermitidos']=='0') {
			$decimalesPermitir=false;
		}
		else {
			$decimalesPermitir=true;
			$decimalesPermitirMaximo=$producto['MaximoDecimalesPermitidos'];
		}
		
		
		
		//////////////////////////
		//27-05-2020 Control de diferencia de cantidades según margen disponible
		if($traza || $trazaSino) {
			echo "<p>CantidadDiferenciaProducto: ".$producto['CantidadDiferenciaProducto']."</p>";
		}
		$permitirDiferenciaCantidad = ( $_SESSION['parametrosSGA']['DiferenciaCantidadOrdPrep']=='S' && (int)$producto['CantidadDiferenciaProducto']>0 );
		
		$cantidadPreparada=(float)$producto['CantidadTotalProducto']-(float)$producto['CantidadPendienteProducto'];
		$diferenciaTotalMinimo=(float)$producto['CantidadTotalProducto']-(float)$producto['CantidadDiferenciaProducto'];
		$diferenciaTotalMaximo=(float)$producto['CantidadTotalProducto']+(float)$producto['CantidadDiferenciaProducto'];
		$diferenciaPendienteMinimo=$diferenciaTotalMinimo-$cantidadPreparada;
		$diferenciaPendienteMaximo=$diferenciaTotalMaximo-$cantidadPreparada;
		/////////////////////////
		
		
		
		$verCajas=($_SESSION['verEnCajas']=='S' && $producto['EmbalajePrimarioCaja']);
		
		unset($combinacionesUbicacionesContenedores);
		$combinacionesUbicacionesContenedores=arreglaArrayPXMobileProxiumResult($producto['ListaContUbiLot']);
		
		$combinacionesUbicacionesContenedores_serializadas=quitaSaltos(serialize($combinacionesUbicacionesContenedores));
	
		if($traza) {
			echo "<p>Bloque de combinaciones</p>";
			print_r($combinacionesUbicacionesContenedores);
		}
	

		
		
		
		/////////////23-02-2021 ubicaciones simuladas para Reposiciones
		if($producto['SimulacionUbicacion']) {
			if($producto['SimulacionUbicacionAlias']) $ubicacionMostrar=$producto['SimulacionUbicacionAlias']; else $ubicacionMostrar=$producto['SimulacionUbicacion'];
			$paletMostrar=$producto['SimulacionPalet']; 
		}
		else {
            if($producto['UbicacionAlias']) $ubicacionMostrar=$producto['UbicacionAlias']; else $ubicacionMostrar=$producto['Ubicacion'];
			$paletMostrar=$producto['Contenedor'];
		}
 		/////////////////////////////////////////////////////////////////
		
		if($traza) {
			echo '<p>simulacion ubicacion: '.$producto['SimulacionUbicacion'].'</p>';
			echo '<p>producto simulacion palet: '.$producto['SimulacionPalet'].'</p>';
			echo '<p>palet mostrar: '.$paletMostrar.'</p>';
		}
		
		
		$formatoPalet=($paletMostrar!='-');
		
		if($verCajas) {
			$formatoCaja=true;
			$formatoUnidades=false;
		}
		else {
			$formatoCaja=false;
			$formatoUnidades=true;
		}
		
		$paletsNoCompatibles=arreglaArrayPXMobileProxiumResult($producto['PaletsNoCompatibles']);
	
		$pedirNumSerie=($producto['ControlNumSerie']=='S' || $producto['GestionNumSerieInterno']=='I');
	
		//$pedirContenedor=( $formatoPalet && !$pedirNumSerie );
		$pedirContenedor=$formatoPalet;
		$pedirUbicacion=( !$formatoPalet && !$pedirNumSerie );
		
		
		////////////////////////
		
		//14-09-2023 Bayport detecta que hay productos que no están paletizados (se cogen de playa según la propuesta) pero hay otros que SI están en palet y se debería
		//poder elegir, al igual que se puede elegir cuando es palet. Creamos un nuevo caso: si se especifica guion y hay más de una ubicación, se debe mostrar tanto
		//el campo de palet como el de ubicación. Si solo hay producto en una ubicacion, no es necesario, se pone palet guion y arreando
		
		$ubicacionesSinPalet=array();
		$hayPalets=false;
		$haySueltos=false;
		
		foreach($combinacionesUbicacionesContenedores as $combinacionTemp) {
			if( $combinacionTemp['Contenedor']!='-' ) $hayPalets=true;
			else {
				$haySueltos=true;
				if( !in_array($combinacionTemp['Ubicacion'],$ubicacionesSinPalet) ) $ubicacionesSinPalet[]=$combinacionTemp['Ubicacion'];
			}
		}
		
		if( $pedirUbicacion && $hayPalets && $haySueltos && is_array($ubicacionesSinPalet) && count($ubicacionesSinPalet)==1 ) {
			$pedirContenedor=true;
			$pedirUbicacion=false;
		}
		else if( is_array($ubicacionesSinPalet) && count($ubicacionesSinPalet)>1 ) $pedirContenedorTambienUbicacion=true;
		else $pedirContenedorTambienUbicacion=false;
		
		//4-1-2024 -- TICKET 24056056
		// JMA y FTP detectan que si se cambia el contendor por otro diferente al propuesto y éste segundo no está en la misma ubicacion
		// el ws no calcula en qué ubicacion está y no funciona.
		
		//visibilizamos el campo ubicacion, que por defecto se pondrá gris no editable 
		//solo en el caso de que hay muchas combinaciones (PAGINACION). si no hay muchas, el propio script sabrá si mostrarlo o no
		//cuando se rellena un lote, entonces las combinaciones ya las puede detectar, y detecta si es un guion o es un palet
		//en cualquier caso, la automatizacion cuando ya hay algun dato (filtros) pone la ubicacion,
		//con lo que finalmente la ubi se manda en el ws junto con el palet
	
		if($muchasCombinacionesStock) $pedirContenedorTambienUbicacion=true;

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



		//7-5-2020 Palets completos
		$puedeSerPaletCompleto=($producto['PuedeSerPaletCompleto']=='S');
		
		//echo '<p>puedeSerPaletCompleto: '.$puedeSerPaletCompleto.'</p>';

		$pedirEanDun=( ($producto['EAN'] || $producto['DUN']) && !$pedirNumSerie && !$ocultarLecturaEAN && (!isset($_SESSION['orden']['TieneAlgunCrossDocking']) || (isset($_SESSION['orden']['TieneAlgunCrossDocking']) && $_SESSION['orden']['TieneAlgunCrossDocking']!='S')) ); // $ocultarLecturaEAN se pone a nivel de config
		//$pedirEanDun=true; //PARA PRUEBAS
		$pedirEanDunObligatorio=( $pedirEanDun && $producto['ControlEanDunObligatorio']=='S' );
		$mostrarIdioma=( $producto['ControlIdioma']=='S' && !$pedirNumSerie );
		$pedirLote=( $producto['ControlLotes']=='S' && !$pedirNumSerie );
		$pedirFechaCaducidad=( $producto['ControlFCaducidad']=='S' && !$pedirNumSerie );
		$mostrarPrecinta=( $producto['ControlPrecinta']=='S' && !$pedirNumSerie );
	
		$columnasFijas=2;
		if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) $columnasFijas++;
		if($_SESSION['verEnCajas']=='S') $columnasFijas++;
		
		$columnasVariables=0;
	
		//Pruebas para columna Cajas
	 	//$_SESSION['verEnCajas']='N';
	
		$cadenaNumerosSerie='';
		$numerosSerie=arreglaArrayPXMobileProxiumResult($producto['NumerosSerieDisponibles']);
		
		//$numerosSerie=array(array('NumeroSerie'=>'111111','Leido'=>'N','Ubicacion'=>'1110102-1'),array('NumeroSerie'=>'2222222','Leido'=>'N','Ubicacion'=>'1110102-1'));
		
		//30-12-2025
		$numerosSerieLibresContenedor=array();
		
		//echo '<p>Nums de serie</p>';
		//print_r($numerosSerie);
		//echo '<hr>';
		
		foreach($numerosSerie as $numero) {
			if(!empty($cadenaNumerosSerie)) $cadenaNumerosSerie.=';';
			$cadenaNumerosSerie.=$numero['NumeroSerie'].','.$numero['Contenedor'].','.$numero['Ubicacion'].','.$numero['Leido'].','.$numero['CantNSpal'];
			
			//30-12-2025
			if(!array_key_exists($numero['Contenedor'],$numerosSerieLibresContenedor)) $numerosSerieLibresContenedor[$numero['Contenedor']]=0;
			if($numero['NumeroSerie']=='-') $numerosSerieLibresContenedor[$numero['Contenedor']]=$numero['CantNSpal'];
			
		}
	
		//echo '<p>Numeros de serie no informados por contenedor:</p>';
		//print_r($numerosSerieLibresContenedor);
		
		?>
        
        <script>

		<?php if($requierePaletizar) { ?>
			//Inicialización del array de palets no compatibles, para hacer la comprobación por javascript
			var paletsNoCompatibles=new Array;
			<?php foreach($paletsNoCompatibles as $paletNoCompatible) { ?>
			paletsNoCompatibles.push('<?php echo $paletNoCompatible['Contenedor']; ?>');
			<?php } ?>
		<?php } ?>

		//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 formatoPalet=<?php if($formatoPalet) echo 'true'; else echo 'false'; ?>;
		var formatoCaja=<?php if($formatoCaja) echo 'true'; else echo 'false'; ?>;
		var formatoUnidades=<?php if($formatoUnidades) echo 'true'; else echo 'false'; ?>;

		var pedirContenedor=<?php if($pedirContenedor) echo 'true'; else echo 'false'; ?>;
		var pedirUbicacion=<?php if($pedirUbicacion) echo 'true'; else echo 'false'; ?>;
		
		var pedirContenedorDestino=<?php if($pedirContenedorDestino) echo 'true'; else echo 'false'; ?>;
		var pedirCajaPaletDestino=<?php if($pedirCajaPaletDestino) echo 'true'; else echo 'false'; ?>;
		
		var pedirEanDun=<?php if($pedirEanDun) echo 'true'; else echo 'false'; ?>;
		var mostrarIdioma=<?php if($mostrarIdioma) echo 'true'; else echo 'false'; ?>;
		var pedirLote=<?php if($pedirLote) echo 'true'; else echo 'false'; ?>;
		var pedirFechaCaducidad=<?php if($pedirFechaCaducidad) echo 'true'; else echo 'false'; ?>;
		var mostrarPrecinta=<?php if($mostrarPrecinta) echo 'true'; else echo 'false'; ?>;
		var pedirNumSerie=<?php if($pedirNumSerie) echo 'true'; else echo 'false'; ?>;
		
		var mostrarPaisOrigen=<?php if($mostrarPaisOrigen) echo 'true'; else echo 'false'; ?>;
		
		//Inicialización de las variables de combinaciones en javascript, para utilizarlas en la validación de campos y valores únicos
		
		//Arrays conteniendo lotes y fechas de caducidad permitidas dentro de un mismo contenedor
		var lotesContenedorActual=new Array();
		var fechasCaducidadContenedorActual=new Array();
		
		//Arrays contenido lotes y fechas de caducidad por ubicación
		var lotesUbicacionActual=new Array();
		var fechasCaducidadUbicacionActual=new Array();
		
		
		
		<?php
		
		if($pedirNumSerie) {
			?>var numerosSerieDisponibles=new Array();<?php
			foreach($numerosSerie as $numSerie) {
				if($numserie['Leido']!='N') {
					?>
					numeroActual=new Array('<?php echo $numSerie['NumeroSerie']; ?>','<?php echo $numSerie['Contenedor']; ?>','<?php echo $numSerie['Ubicacion']; ?>');
					numerosSerieDisponibles.push(numeroActual);
					<?php
				}
			}
		}
		?>
		
		<?php
		
		//Inicialización variables de sesión con combinaciones, porque las podemos utilizar en popups de las lupas
		
		$lotesContenedorActual=array();
		$fechasCaducidadContenedorActual=array();
		
		$lotesUbicacionActual=array();
		$fechasCaducidadUbicacionActual=array();
		
		foreach($combinacionesUbicacionesContenedores as $item) {
			if($item['Contenedor']==$paletMostrar) {
				if(!in_array($item['Lote'],$lotesContenedorActual)) $lotesContenedorActual[]=$item;
				if(!in_array($item['FechaCaducidad'],$fechasCaducidadContenedorActual)) $fechasCaducidadContenedorActual[]=$item;
			}
			if($item['Ubicacion']==$ubicacionMostrar) {
				if(!in_array($item['Lote'],$lotesUbicacionActual)) $lotesUbicacionActual[]=$item;
				if(!in_array($item['FechaCaducidad'],$fechasCaducidadUbicacionActual)) $fechasCaducidadUbicacionActual[]=$item;
			}
		}
		
		//Rellenado de los arrays de javascript
		
		foreach($lotesContenedorActual as $lote) {
			?>lotesContenedorActual.push('<?php echo $lote['Lote']; ?>'); <?php
		}
		
		foreach($fechasCaducidadContenedorActual as $fecha) {
			?>fechasCaducidadContenedorActual.push('<?php echo $fecha['FechaCaducidad']; ?>'); <?php
		}
		
		foreach($lotesUbicacionActual as $lote) {
			?>lotesUbicacionActual.push('<?php echo $lote['Lote']; ?>'); <?php
		}
		
		foreach($fechasCaducidadUbicacionActual as $fecha) {
			?>fechasCaducidadUbicacionActual.push('<?php echo $fecha['FechaCaducidad']; ?>'); <?php
		}
		
		?>
		
		
		
		var secuenciaCampos=new Array();
		
		function inicializaSecuencia() {
		
			secuenciaCampos=[];
		
			<?php if($pedirContenedor || $pedirContenedorTambienUbicacion) { ?>secuenciaCampos.push('contenedor');<?php } ?>
			<?php if($pedirUbicacion || $pedirContenedorTambienUbicacion) { ?>secuenciaCampos.push('ubicacion');<?php } ?>
			
			<?php if($pedirCajaPaletDestino) { ?>secuenciaCampos.push('cajaPaletDestino');<?php } ?>
			<?php if($pedirContenedorDestino) { ?>secuenciaCampos.push('contenedorDestino');<?php } ?>
			<?php if($pedirContenedorDestinoUbicacionUbicacion) { ?>secuenciaCampos.push('contenedorDestinoUbicacion');<?php } ?>
			
			<?php if( $_SESSION['orden']['VisibCodBarras']=='S' ) { ?>secuenciaCampos.push('lecturaGS1');<?php } ?>
			<?php if($pedirEanDun) { ?>secuenciaCampos.push('eanDun');<?php } ?>
			<?php if($pedirLote) { ?>secuenciaCampos.push('lote');<?php } ?>
			<?php if($pedirFechaCaducidad) { ?>secuenciaCampos.push('fechaCaducidad');<?php } ?>
			<?php if($pedirNumSerie) { ?>secuenciaCampos.push('lecturaNS-1');<?php } ?>
			
			//Idioma y precinta no se añaden nuncaa la secuencia porque son solo campos informativos
			
			secuenciaCampos.push('cantidad');
		}
		
		function focoSiguiente(campoActual) {
		
			var encontradoActual=false;
			var foco=null;
		
			if( campoActual=='' && $('#'+secuenciaCampos[0]).val()=='' ) foco=secuenciaCampos[0];
			else {
				for (i=0;i<secuenciaCampos.length;i++) {
					if(secuenciaCampos[i]==campoActual || campoActual=='') encontradoActual=true;
					if( encontradoActual && !$('#'+secuenciaCampos[i+1]).prop('readonly') && $('#'+secuenciaCampos[i+1]).val()=='' ) {
						foco=secuenciaCampos[i+1];
						break;
					}
				}
			}
			
			if(foco) {
				$('#'+foco).focus();
				return foco;
			}
		}
		
		function cambiaFocoSecuenciaAutomatica() {
			
			for (i=0;i<secuenciaCampos.length;i++) {
				
				////console.log('PROBAMOS CAMBIAR FOCO a campo: '+secuenciaCampos[i]+' valor: '+$('#'+secuenciaCampos[i]).val());
				////console.log('Valor del campo: '+$('#'+secuenciaCampos[i]).val());
				////console.log('Readonly: '+$('#'+secuenciaCampos[i+1]).prop('readonly'));
				
				//if( $('#'+secuenciaCampos[i]).val()=='' && !$('#'+secuenciaCampos[i+1]).prop('readonly') ) {
				if( $('#'+secuenciaCampos[i]).val()=='' && !$('#'+secuenciaCampos[i]).prop('readonly') ) {
					//console.log('Finalmemnte se pasa el foco a: '+secuenciaCampos[i]);
					$('#'+secuenciaCampos[i]).focus();
					break;
				}
			}
			
		}
		
		</script>

		<?php if($requierePaletizar) { ?>
        
        <div id="contenedorPrincipal" class="contenedorPestanyas sombra anchoMaximo" style="margin-top:70px;">
        
            <div class="pestanya" id="pestanyaListadoPalets">
                <div class="pestanyaEtiqueta" id="etiquetaListadoPalets">Selector de Agrupaciones</div>
                <div class="pestanyaContenido" style="text-align:center" >
                    
                    <div id="popupPackingLists" class="popup" style="display:none;"></div>
                    <div class="popupContenidoScroll" id="popupPackingListsContenido" style="display:none;margin-top:-120px"></div>
                    
                    <?php if(!$validacionPackingInicial) { ?>
                    
                    <form id="formularioPalet" name="formularioPalet" method="post" action="" >
                        <p>Nuevo Palet:<br />
                        <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoPalet" />
                        <input name="nuevoPalet" type="text" class="campo mayusculas" id="nuevoPalet" size="24" autocomplete="off"/>
                        <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="boton-x" id="borrarPalet" />
                        </p>
                        <p><input type="submit" name="paletAceptar" id="paletAceptar" value="Aceptar" class="boton"/></p>
                    </form>
                    
                    <?php } ?>
                    
                    <div id="contenidoPaletsListado"></div>
                    
                </div>
            </div>
            
            <div class="pestanya primeroSeleccionaPalet" id="pestanyaContenidoPalet">
                <div class="pestanyaEtiqueta" id="etiquetaContenidoPalet">Agrupación actual: <strong id="etiquetaCodigoPalet"><?php if($_SESSION['preparacionCajaPaletActual']) echo $_SESSION['preparacionCajaPaletActual']; else echo $_SESSION['preparacionPaletActual']; ?></strong></div>
        
                <div class="pestanyaContenido" id="contenidoPalet"></div>
                
            </div> 
                
            <div class="pestanya primeroSeleccionaPalet" id="pestanyaPreparar">
                <div class="pestanyaEtiqueta" id="etiquetaPreparar"><?php if($producto && !$producto['Error']) { ?>Preparar<?php } else { ?>DATOS PARA EL CIERRE<?php } ?></div>
                <div class="pestanyaContenido" style="text-align:center" >
        
        <?php } //Fin si requiere paletizar, montamos pestañas ?>    


    	<?php if($requierePaletizar) { ?>
            
            <?php
            $incompatible=false;
            foreach($paletsNoCompatibles as $palet) if($palet['Contenedor']==$_SESSION['preparacionPaletActual']) $incompatible=true;
            ?>
            
            <p id="mensajePaletIncompatible" class="error parpadea" <?php if(!$incompatible) { ?>style="display:none"<?php } ?>>ATENCIÓN: Este producto no puede prepararse en el Palet actual por incompatibilidad.</p>
        
        <?php } ?>
        
        <?php 
		
		if($formatoPalet) {
			?><p class="medio"><img src="<?php echo DIR_IMAGENES; ?>/paletizado.png" style="width:50px;margin-bottom:-15px" class="parpadea"/> Este producto debe prepararse cogiendo de Palet.</p><?php 
		}
		else if($formatoCaja) {
			?><p class="medio"><img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:40px;margin-bottom:-10px" class="parpadea"/> Este producto debe prepararse cogiendo de cajas sueltas.</p><?php
		}
		else if($formatoUnidades) {
			?><p class="medio"><img src="<?php echo DIR_IMAGENES; ?>/unidades-sueltas.png" style="width:40px;margin-bottom:-15px" class="parpadea"/> Este producto debe prepararse cogiendo unidades sueltas.</p><?php
		}
		

		
		
		$mantenerLote=false;
		$mantenerCaducidad=false;
		$mantenerSerie=false;
		$mantenerIdPalet=false;
		$mantenerEntrada=false;
		$mantenerDocEntrada=false;
		
		//18-05-2023 las restricciones de preparación pasan de la cabecera a la linea de cada producto, ya no son a nivel de Orden
		
		//if($_SESSION['orden']['MantenerLote']=='S') {
		if($producto['MantenerLote']=='S' || $pickingPrevio) {
			$mantenerLote=true;
			foreach($datos as $dato) if($dato['Codigo']=='LT') $mantenerLoteDato=$dato['Valor'];
		}
		//if($_SESSION['orden']['MantenerCaducidad']=='S') {
		if($producto['MantenerCaducidad']=='S' || $pickingPrevio) {
			$mantenerCaducidad=true;
			foreach($datos as $dato) if($dato['Codigo']=='FCAD') $mantenerCaducidadDato=$dato['Valor'];
		}
		//if($_SESSION['orden']['MantenerSerie']=='S') {
		if($producto['MantenerSerie']=='S' || $pickingPrevio) {
			$mantenerSerie=true;
			//Los num de serie vienen en un bloque aparte
			//foreach($datos as $dato) if($dato['Codigo']=='NS') $mantenerSerieDato=$dato['Valor'];
		}
		//if($_SESSION['orden']['MantenerIdPalet']=='S') {
		if($producto['MantenerIdPalet']=='S' || $pickingPrevio) {
			$mantenerIdPalet=true;
			$mantenerIdPaletDato=$producto['Contenedor'];
		}
		//if($_SESSION['orden']['MantenerEntrada']=='S') {
		if($producto['MantenerEntrada']=='S') {
			$mantenerEntrada=true;
			$mantenerEntradaDato=$producto['NumeroEntrada'];
		}
		//if($_SESSION['orden']['MantenerDocEntrada']=='S') {
		if($producto['MantenerDocEntrada']=='S') {
			$mantenerDocEntrada=true;
			$mantenerDocEntradaDato=$producto['NumDocumentos'];
		}
		
		
		
		
		if( $mantenerLote || $mantenerCaducidad || $mantenerSerie || $mantenerIdPalet || $mantenerEntrada || $mantenerDocEntrada) {
        
			?>
            <table class="tablaFormateada" style="font-size:0.9em;margin-bottom:20px">
            	<tr>
                	<th colspan="12">RESTRICCIONES DE PREPARACIÓN</th>
                </tr>
            	<tr>
            	<?php if($mantenerLote) { ?><td><strong>Lote</strong></td><td class="rojoIntenso"><?php echo $mantenerLoteDato; ?></td><?php } ?>
                <?php if($mantenerCaducidad) { ?><td><strong>Caducidad</strong></td><td class="rojoIntenso"><?php echo fechaNacional($mantenerCaducidadDato); ?></td><?php } ?>
                <?php if($mantenerSerie) { ?>
                    <td><strong>Nº Serie</strong></td>
                    <td class="rojoIntenso">
                    <?php
					$valores=explode(';',$cadenaNumerosSerie);
                    foreach($valores as $valor) {
						$valores2=explode(',',$valor);
						echo $valores2[0].'<br>';
					}
					?>
                    </td>
				<?php } ?>
                <?php if($mantenerIdPalet) { ?><td><strong>Palet</strong></td><td class="rojoIntenso"><?php echo $mantenerIdPaletDato; ?></td><?php } ?>
                <?php if($mantenerEntrada) { ?><td><strong>Entrada</strong></td><td class="rojoIntenso"><?php echo $mantenerEntradaDato; ?></td><?php } ?>
                <?php if($mantenerDocEntrada) { ?><td><strong>Doc. Entrada</strong></td><td class="rojoIntenso"><?php echo $mantenerDocEntradaDato; ?></td><?php } ?>
                </tr>
			</table>
			<?php
        	
		}	
		
		?>
        
        <div id="popupRegalos" class="popup" style="display:none"></div>
		<div id="popupRegalosContenido" class="popupContenidoScroll" style="width:60%;display:none"></div>
     
        
        <table class="tablaFormateada" style="max-width:1000px;font-size:0.9em">
        
		<tr>
        
			<?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><th>Emp.</th><?php } ?>
            
			<th>Código</th>
            
            <?php if($_SESSION['orden']['GestCodB']=='S') { ?>
            <th>Código B</th>
            <?php $columnasVariables++; ?>
            <?php } ?>
            
			<th>Descripción</th>
			<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
            	<?php if($comportamiento['Activo']=='S' && !($comportamiento['Codigo']=='NS' && $ocultarColumnaNSenPreparaciones) ) { ?>
				<th><?php echo $comportamiento['Nombre']; ?></th>
				<?php } ?>
			<?php } ?>

			<?php if($_SESSION['parametrosSGA']['ReferenciaCliEntrada']=='S') { ?>
            <th>Ref. cliente</th>
            <?php } ?>
            
            <?php if($_SESSION['parametrosSGA']['GestionRefCliLin']=='S') { ?>
            <th>Ref. cliente linea</th>
            <?php } ?>
            
            <?php if($_SESSION['verEnCajas']=='S') { ?>
            <th>Cajas</th>
            <?php if(!$ocultarUnidadesPorCajaOP) { ?>
			<th>Ud/cj</th>
            <?php } ?>
			<?php } ?>
            
            <th>Cant.</th>
            
			
            
			<th>Formato</th>
            
			<th>Palet</th>
			<th width="100">Ubicación</th>
            
            <?php $colsPanPosterior=3; ?>
            
            <?php if($mostrarPaisOrigen) { ?>
                <th>Pais origen</th>
                <?php $colsPanPosterior++; ?>
            <?php } ?>
            
            
            
            <?php if($_SESSION['visibilidadSalidasNumDocumento']) { ?><th>Documento</th><?php $colsPanPosterior++; ?><?php } ?>
            
            <?php if($producto['InfoArt']) { ?><th>Info</th><?php $colsPanPosterior++; ?><?php } ?>
            
            <?php if($gestionProductosRegalo) { ?><th>Regalos</th><?php $colsPanPosterior++; ?><?php } ?>
            
		 </tr>
         
        
         
		 <tr class="<?php if($fondoRosa) { ?>fondoRosa<?php } ?>">
         
			<?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><td><?php echo $producto['Empresa']; ?></td><?php } ?>
            
			<td><?php echo $producto['Codigo']; ?></td>
            
            <?php if($_SESSION['orden']['GestCodB']=='S') { ?>
                <td><?php echo $producto['CodigoB']; ?></td>
            <?php } ?>
            
			<td align="left"><?php echo $producto['Descripcion']; ?></td>
			
			<?php $comportamientosProducto=array(); ?>
            
             <?php 
			////23-02-2021 ubicaciones simuladas para Reposiciones
			$arraySimulaciones=array(
				'LT'=>'SimulacionLote',
				'FCAD'=>'SimulacionCaducidad',
				'NS'=>'SimulacionSerie'
			);
			?>
            
             
            
			<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
				<?php if($comportamiento['Activo']=='S' && !($comportamiento['Codigo']=='NS' && $ocultarColumnaNSenPreparaciones) ) { ?>
                	<td>
						<?php
						$columnasVariables++;
						
						if($pedirNumSerie && $comportamiento['Codigo']=='NS' && $cadenaNumerosSerie) {
							//Excepcionalmente el comportamiento Numero Serie muestra un popup, ya que las lineas se agrupan
							?><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']) {
								
									////23-02-2021 ubicaciones simuladas para Reposiciones
									if($producto['SimulacionUbicacion']) $valor=$producto[$arraySimulaciones[$dato['Codigo']]];
									else $valor=$dato['Valor'];	
								
									$valor=formateaTipo($valor,$comportamiento['Tipo']);
									
									$comportamientosProducto[$dato['Codigo']]=$valor;
									echo $valor;
									break;
								}
							}
						}
						?>                    </td>
				<?php } ?>
        	<?php } ?>
            
            
            
			<?php if($_SESSION['parametrosSGA']['ReferenciaCliEntrada']=='S') { ?>
				<?php $columnasVariables++; ?>
                <td align="center"><?php echo $producto['RefCliente']; ?></td>
            <?php } ?>
            
            <?php if($_SESSION['parametrosSGA']['GestionRefCliLin']=='S') { ?>
				<?php $columnasVariables++; ?>
                <td align="center"><?php echo $producto['RefCliLin']; ?></td>
            <?php } ?>
            

            
            <?php
			
			/*
			
			if($traza) echo '<p>Traza 1</p>';
			
			if($producto['SimulacionUbicacion']) {
				if($traza) {
					echo '<p>Traza 2</p>';
					echo '<p>producto SimulacionUbicacion: '.$producto['SimulacionUbicacion'].'</p>';
					echo '<p>producto SimulacionCajas: '.$producto['SimulacionCajas'].'</p>';
					echo '<p>producto SimulacionCantidad: '.$producto['SimulacionCantidad'].'</p>';
				}
				$cantidadMostrar=$producto['SimulacionCantidad'];
				$cajasMostrar=$producto['SimulacionCajas'];
			}
			else {
				if($traza) echo '<p>Traza 3</p>';
				$cantidadMostrar=$producto['Cantidad'];
				$cajasMostrar=$producto['Cajas'];
			}
			
			if($traza) {
				echo '<p>producto Cantidad: '.$producto['Cantidad'].'</p>';
				echo '<p>producto Cajas: '.$producto['Cajas'].'</p>';
				echo '<p>cantidadMostrar: '.$cantidadMostrar.'</p>';
			}
			
			*/
			

			if($producto['SimulacionUbicacion']) {
				$cantidadMostrar=$producto['SimulacionCantidad'];
				$cajasMostrar=$producto['SimulacionCajas'];
			}
			else {
				$cantidadMostrar=$producto['Cantidad'];
				$cajasMostrar=$producto['Cajas'];
			}

			
			//echo '<p>SimulacionUbicacion: '.$producto['SimulacionUbicacion'].'</p>';
			//echo '<p>SimulacionCantidad: '.$producto['SimulacionCantidad'].'</p>';
			//echo '<p>SimulacionCajas: '.$producto['SimulacionCajas'].'</p>';
			//echo '<p>Cantidad: '.$producto['Cantidad'].'</p>';
			//echo '<p>Cajas: '.$producto['Cajas'].'</p>';
			//echo '<p>cantidadMostrar: '.$cantidadMostrar.'</p>';
			//echo '<p>cajasMostrar: '.$cajasMostrar.'</p>';

			
			?> 
            
            
            
            <?php if($_SESSION['verEnCajas']=='S') { ?>
            <td align="right"><?php if($cajasMostrar) echo formateaNumeroDecimal($cajasMostrar); ?></td>
            <?php if(!$ocultarUnidadesPorCajaOP) { ?>
            <td align="right"><?php if( $producto['EmbalajePrimarioCaja'] && $producto['EmbalajePrimarioCaja']>1 ) echo 'x'.formateaNumeroDecimal($producto['EmbalajePrimarioCaja']); ?></td>
            <?php } ?>
            <?php } ?>
            
            
            <td align="right"><?php echo formateaNumeroDecimal($cantidadMostrar); ?></td>
            
			
            
            <td><?php echo $producto['UnidadMedidaDescripcion']; ?></td>
			
            <td><?php if($formatoPalet) echo $paletMostrar; ?></td>
			
            <td class="columnaUbicacion"><?php echo $ubicacionMostrar; ?></td>
            
            <?php if($mostrarPaisOrigen) { ?>
            <td><?php echo $producto['PaisOrigenCodigo']; ?></td>
            <?php } ?>
            
            <?php if($_SESSION['visibilidadSalidasNumDocumento']) { ?><td><?php echo $producto['NumDocumentos']; ?></td><?php } ?>
            
            <?php if($producto['InfoArt']) { ?><td style="font-size:1.1em"><?php echo htmlspecialchars_decode($producto['InfoArt']); ?></td><?php } ?>
            
            <?php if($gestionProductosRegalo) { ?>
                <td>
					<?php if($producto['Regalos'] || $producto['CantidadRegalo']) { ?>
                    
                    <?php
					$cadenaRegalos='';
					if($producto['Regalos']) {
						foreach(arreglaArrayPXMobileProxiumResult($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="40" height="40" class="iconoRegalos clicable" <?php if($producto['Regalos']) { ?>regalos="<?php echo $cadenaRegalos; ?>"<?php } ?><?php if($producto['CantidadRegalo']) { ?> CantTotalProductoEnLaOrden="<?php echo $producto['CantTotalProductoEnLaOrden']; ?>" cantidadRegalo="<?php echo $producto['CantidadRegalo']; ?>"<?php } ?> />
                    
                    
                    <?php } ?>
                </td>
			<?php } ?>
            
		</tr>
        
        
        
        <?php $colspan=$columnasFijas+$columnasVariables; ?>
        <?php if($_SESSION['verEnCajas']=='S') $colspan--; ?>

        
		<tr class="miniTotal">
        	<td colspan="<?php echo $colspan; ?>" align="right">Cantidad pendiente de preparar:</td>
            <?php if($_SESSION['verEnCajas']=='S') { ?>
            	<td align="right"><?php echo formateaNumeroDecimal($producto['TotalCajas']); ?></td>
                <?php if(!$ocultarUnidadesPorCajaOP) { ?>
            	<td align="right"><?php if($producto['EmbalajePrimarioCaja']) echo 'x'.formateaNumeroDecimal($producto['EmbalajePrimarioCaja']); ?></td>
                <?php } ?>
        	<?php } ?>
			<td align="right"><?php echo formateaNumeroDecimal($producto['TotalCantidad']); ?></td>
			<td colspan="<?php echo $colsPanPosterior; ?>">&nbsp;</td>
		</tr>
        
        <?php if($permitirDiferenciaCantidad) { ?>
        
			<tr class="miniTotal">
                <td colspan="<?php echo $colspan; ?>"  align="right" valign="top">
                	Cantidad total solicitada:
                    <div style="float:left">De este producto puede preparse una cantidad total variable entre <?php echo formateaNumeroDecimal($diferenciaTotalMinimo); ?> y <?php echo formateaNumeroDecimal($diferenciaTotalMaximo); ?></div>                </td>
                <td align="right" valign="top"><?php echo formateaNumeroDecimal($producto['CantidadTotalProducto']); ?></td>
                <td colspan="<?php echo $colsPanPosterior; ?>"></td>
            </tr>
        
        <?php } ?>
		</table>
        
		<br />
        
        
        
        <?php
		
		
		
		if($traza || $trazaSino) {
			echo "<p>Formato unidades se ha definido como: ".$formatoUnidades."</p>";
			echo "<p>Formato cajas se ha definido como: ".$formatoCaja."</p>";
			echo "<p>Ver en cajas se ha definido como: ".$verCajas."</p>";
		}
		
        if( !$formatoUnidades && $verCajas ) {
			$etiqueta="Cajas";
			$etiquetaInversa="Unidades";
			$cajas=true;
		}
		else {
			$etiqueta="Unidades";
			$etiquetaInversa="Cajas";
			$cajas=false;
		}
		
		
		
		?>
        
        
        
		
		
		
        <input type="hidden" name="paletPropuestoEnLineaActual" id="paletPropuestoEnLineaActual" value="<?php echo $paletMostrar; ?>"/>
        <input type="hidden" name="paletPropuestoEnLineaActualCompleto" id="paletPropuestoEnLineaActualCompleto" value="<?php if($producto['SimulacionUbicacion']) echo $producto['SimulacionPaletPuedeSerPaletCompleto']; else echo $producto['PuedeSerPaletCompleto']; ?>"/>
        
        <input type="hidden" name="cajas" id="cajas" value="<?php if($cajas && !$SujetoTPDT) { ?>1<?php } else { ?>0<?php } ?>"/>
        <input type="hidden" name="EmbalajePrimarioCaja" id="EmbalajePrimarioCaja" value="<?php echo $producto['EmbalajePrimarioCaja']; ?>" />



		<?php if($noPreparable) { ?>
        
        	<?php if($NoPreparableLongitudNS) { ?>
        
        	<p class="error"><img src="<?php echo DIR_IMAGENES; ?>/iconos/advertencia.png" style="width:70px;height:70px" /><br />No puedes preparar este producto<br />porque no tiene informada la longitud de su número de serie.</p>
            
            <?php } ?>
        
        <?php } else { //Sí puede prepararse $noPreparable=false ?>


        <table style="margin:0 auto 30px;font-size:0.9em" >
        
        <tr>
          <td colspan="2" align="center" valign="top">
          
          <?php if($requierePaletizar) { //Solo si requiere paletizar mostramos el esquema de modos de preparacion ?>
          
          <div class="opModoEsquemaInterior color<?php if($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]) echo $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]; else echo 'P'; ?>">
              Modo de preparación:
              <img src="<?php echo DIR_IMAGENES; ?>/op-modo-<?php if($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]) echo $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]; else echo 'P'; ?>-animado.gif" class="opModoIconoAnimado" id="iconoModoAnimado"/>
              <div id="mensajePaletCompleto" style="margin-top:10px;color:#009933;font-size:1.2em;display:none">Palet completo</div>
          </div>
          
         	<?php } ?> 
            
            
          
		   
          <?php if( $pedirContenedor || $pedirContenedorTambienUbicacion ) { ?>
            
          <div id="bloqueContenedor" style="margin-bottom:20px">
            	<p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">Palet origen:</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" id="contenedor" <?php if($pedirNumSerie) { ?>value="<?php //echo $producto['Contenedor']; ?>"<?php } ?> autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/lupa.png" alt="Buscar" class="boton-lupa campoOrdenPreparacionLupa" id="buscarContenedor" /><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarContenedor" class="campoOrdenPreparacionBorrar"/>                </div>
            </div>
            
            <?php } ?>
            


			<?php //////////////////// ANALIZAR ESTO /////////////////// ?>

            
            <?php if( $pedirUbicacion || $pedirContenedorTambienUbicacion ) { ?>
            
            <div id="bloqueUbicacion" style="margin-bottom:20px">
            
            	<input type="hidden" id="segundaLecturaUbicacion" name="segundaLecturaUbicacion" />
        		<input type="hidden" id="segundaLecturaUbicacionDefinitiva" name="segundaLecturaUbicacionDefinitiva" />
            
            	<p style="float:left;font-size:1.5em;margin:15px 0 0 20px;">Ubicación origen:</p>
				<div class="campoOrdenPreparacionBloque">
                <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoUbicacion" /><input name="ubicacion" type="text" class="campo campoOrdenPreparacion" id="ubicacion" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarUbicacion" class="campoOrdenPreparacionBorrar" /><img src="<?php echo DIR_IMAGENES; ?>/playa.png" alt="Seleccionar Playa" id="botonPlayas" style="position:absolute;width:45px;cursor:pointer;margin-left:425px;margin-top:5px;"/>
                </div>
                
            </div>

			<?php } ?>
			






            
            <?php if( $pedirCajaPaletDestino ) { ?>
                
                <div id="bloqueCajaPaletDestino" style="margin-bottom:20px">
                        <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">Caja destino:</p>
                        <div class="campoOrdenPreparacionBloque">
                        <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoCajaPaletDestino" />
                        <input name="cajaPaletDestino" type="text" class="campo campoOrdenPreparacion" id="cajaPaletDestino" value="<?php echo $_SESSION['preparacionCajaPaletActualFijada'] ?>" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarCajaPaletDestino" class="campoOrdenPreparacionBorrar"/></div>
                </div>
            
            	<?php if($_SESSION['SeleccionTipoCajaSalida']) { ?>
            
                <div id="bloqueCajaPaletDestinoTipo" style="margin-bottom:20px">
                    <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">Tipo caja:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <select name="cajaPaletDestinoTipoCaja" id="cajaPaletDestinoTipoCaja" class="campo campoOrdenPreparacion" >
                    	<option value="">---</option>
                        <?php foreach($_SESSION['tiposCajas'] as $tipoCaja) { ?>
                        <option value="<?php echo $tipoCaja['Codigo']; ?>" <?php if($_SESSION['preparacionCajaPaletActualFijadaTipo']==$tipoCaja['Codigo']) { ?>selected<?php } ?>><?php echo $tipoCaja['Descripcion']; ?></option>
                        <?php } ?>
                    </select>
                    </div>
                </div>
                
                <?php } ?>
                
                
				<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
                    
                    <div id="bloqueSSCCCaja" style="margin-bottom:20px">
                        <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">SSCC Caja:</p>
                        <div class="campoOrdenPreparacionBloque">
                        <input id="cajaPaletDestinoSSCC" name="cajaPaletDestinoSSCC" type="text" class="campo campoOrdenPreparacion deshabilitado"  value="" autocomplete="off" disabled="disabled"/>
                        </div>
                    </div>
                    
                <?php } ?>
                
			<?php } ?>
            
			<?php if( $pedirContenedorDestino ) { ?>
                
                <div id="bloqueContenedorDestino" style="margin-bottom:20px">
                    <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">Palet destino:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoContenedorDestino" />
                    <input name="contenedorDestino" type="text" class="campo campoOrdenPreparacion" id="contenedorDestino" value="<?php echo $_SESSION['preparacionPaletActualFijado']; ?>" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/lupa.png" alt="Buscar" class="boton-lupa campoOrdenPreparacionLupa" id="buscarContenedorDestino" /><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarContenedorDestino" class="campoOrdenPreparacionBorrar"/>
                    </div>
                   <!--<div style="margin:-50px 0 0 710px;color:#56c156;font-size:1.4em;display:none" id="bloqueContenedorDestinoPaletCompleto" ><img src="<?php echo DIR_IMAGENES; ?>/palet-completo.png" alt="Palet completo" class="iconoTeclado" id="iconoPaletCompleto" style="margin-bottom:-15px"/>Palet completo</div>-->
                </div>
                
                <?php if($_SESSION['seleccionTipoPalet']) { ?>
                
                    <div id="bloqueContenedorDestinoTipo" style="margin-bottom:20px;">
                        <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">Tipo palet:</p>
                        <div class="campoOrdenPreparacionBloque">
                        <select name="contenedorDestinoTipoPalet" id="contenedorDestinoTipoPalet" class="campo campoOrdenPreparacion" >
                            <option value="">---</option>
                            <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
                            <option value="<?php echo $codigoPalet; ?>" <?php if($_SESSION['preparacionPaletActualFijadoTipo']==$codigoPalet) { ?>selected<?php } ?>><?php echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?></option>
                            <?php } ?>
                        </select>
                        </div>
                    </div>
                    
                <?php } ?>
                
                
                
                <?php //26-20-2022 check para marcar el palet como cerrado en los picking para transformaciones ?>
                <?php //25-08-2025 tambien aplica a picking por oleadas ?>
				<?php if($gestionPickingCierrePalets) { ?>
                	<div id="bloqueContenedorCerrarPalet" style=""><div class="campoOrdenPreparacionBloque">
                    <p><input name="pickingCerrarPalet" id="pickingCerrarPalet" type="checkbox" value="" class="checkGrande" style="vertical-align:middle;margin-left: 140px;"/> Cerrar palet</p>
                    </div></div>
                <?php } ?>
                
                <?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
                
                    <div id="bloqueSSCCPalet" style="margin-bottom:20px">
                        <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">SSCC Palet:</p>
                        <div class="campoOrdenPreparacionBloque">
                        <input id="contenedorDestinoSSCC" name="contenedorDestinoSSCC" type="text" class="campo campoOrdenPreparacion deshabilitado"  value="" autocomplete="off" disabled="disabled"/>
                        </div>
                    </div>
                
            	<?php } ?>
                
			<?php } ?>
            
            
            
            
            <?php if( $pedirContenedorDestino && $pedirContenedorDestinoUbicacion ) { ?>
                
                <div id="bloqueContenedorDestinoUbicacion" style="margin-bottom:20px">
                    <p style="float:left;font-size:1.5em;margin:15px 0 0 60px;">Ubicar en:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoContenedorDestinoUbicacion" />
                    <input name="contenedorDestinoUbicacion" type="text" class="campo campoOrdenPreparacion" id="contenedorDestinoUbicacion" value="<?php echo $_SESSION['preparacionPaletActualFijadoUbicacion']; ?>" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarContenedorDestinoUbicacion" class="campoOrdenPreparacionBorrar"/><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>
                
			<?php } ?>
            
          </td>
        </tr>
        
        <?php if( $_SESSION['orden']['VisibCodBarras']=='S' ) { ?>
        
        <tr>
          <td colspan="2" align="center" valign="top" style="padding-top:10px">
        
        	<div style="position:relative">
        	
        	<input type="button" name="botonLecturasGS1" id="botonLecturasGS1" value="Lectura código" class="boton reducido" style="float:left;width:165px;margin-top:-3px;" /><img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoLecturaGS1" style="float:left;margin:0 0 0 15px;"/><input name="lecturaGS1" id="lecturaGS1" type="text" class="campo" style="width:670px;float:right" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLecturaGS1" style="position:absolute;top:-5px;right:0;cursor:pointer;"/>
            
            </div>

        	</td>
        </tr>
        
        <?php } ?>
        
        
       
        
        <tr>
        
        	<td align="left" valign="top" id="columnaIntroduccionDatos">
            	<table id="tablaObservacionesComercial" class="tablaFormateada <?php if($producto['ComentariosComercial']) { ?>deshabilitada<?php } ?>" style="width:450px;margin:10px 80px 0 0">
                    <tr><th style="height:20px">Instrucciones de preparación</th></tr>
                    <tr><td valign="top" style="font-weight:bold;font-size:1.3em"><?php if($producto['ComentariosComercial'] && is_string($producto['ComentariosComercial'])) echo nl2br($producto['ComentariosComercial']); ?></td></tr>
                </table>            </td>
            
            <td style="font-size:0.9em" valign="top">
            
            <?php if( $pedirEanDun ) { ?>
                
                <div id="bloqueEanDun" class="bloqueDatos">
                    <p class="sinMargen">Código EAN/DUN:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoEanDun" /><input name="eanDun" type="text" class="campo campoOrdenPreparacion" id="eanDun" autocomplete="off"/><input name="eanDunCorrecto" type="hidden" id="eanDunCorrecto" value="0"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarEanDun" class="campoOrdenPreparacionBorrar"/>                    </div>
                </div>
                <!-- //Esto por qué no se ve bien??
                <div id="bloqueEanDun" class="bloqueDatos">
                	<p class="sinMargen">Código EAN/DUN:</p>
                    <div style="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoEanDun" /><input name="eanDun" type="text" class="campo campoOrdenPreparacion" id="eanDun" /><input name="eanDunCorrecto" type="hidden" id="eanDunCorrecto" value="0"/>
                    <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarEanDun" class="campoOrdenPreparacionBorrar"/>
                    </div>
                </div>
                -->
            <?php } ?>
            
            <?php if( $mostrarIdioma ) { ?>
            
                <div id="bloqueIdioma" class="bloqueDatos">
                	<p class="sinMargen">Idioma:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <input name="idioma" type="text" id="idioma" class="campo campoOrdenPreparacion" readonly="readonly" value="<?php echo $comportamientosProducto['IDI']; ?>"/>
                    </div>
                </div>
            
            <?php } ?>
            
            <?php if( $pedirLote ) { ?>
                
                <div id="bloqueLote" class="bloqueDatos">
                    <p class="sinMargen">Lote:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoLote" /><input name="lote" type="text" class="campo campoOrdenPreparacion" id="lote" maxlength="50" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/lupa.png" alt="Buscar" class="boton-lupa campoOrdenPreparacionLupa <?php if($muchasCombinacionesStock) { ?>buscarMuchasCombinacionesStock<?php } ?>" id="<?php if($muchasCombinacionesStock) { ?>buscarMuchasCombinacionesStockLote<?php } else { ?>buscarOtrosLotesPaletOUbicacion<?php } ?>" /><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarLote" class="campoOrdenPreparacionBorrar"/>
                    </div>
                </div>
                
                <input type="hidden" name="loteUnico" id="loteUnico" value="" />
                
            <?php } ?>

            <?php if( $pedirFechaCaducidad ) { ?>
            
                <div id="bloqueFechaCaducidad" class="bloqueDatos">
                	<p class="sinMargen">Fecha de caducidad:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <input name="fechaCaducidad" type="text" class="campo campoOrdenPreparacion" id="fechaCaducidad" <?php if($bloqueoFechaCaducidad) { ?>readonly="readonly" value="<?php echo $comportamientosProducto['FCAD']; ?>"<?php } ?> autocomplete="off"/><?php if(!$bloqueoFechaCaducidad) { ?><img src="<?php echo DIR_IMAGENES; ?>/lupa.png" alt="Buscar" class="boton-lupa campoOrdenPreparacionLupa <?php if($muchasCombinacionesStock) { ?>buscarMuchasCombinacionesStock<?php } ?>" id="<?php if($muchasCombinacionesStock) { ?>buscarMuchasCombinacionesStockFechaCaducidad<?php } else { ?>buscarOtrasFechasCaducidadPaletOUbicacion<?php } ?>" /><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarFechaCaducidad" class="campoOrdenPreparacionBorrar"/><?php } ?>
                    </div>
                </div>
                
                <input type="hidden" name="fechaCaducidadUnica" id="fechaCaducidadUnica" value="" />
                
                <?php if($Controlcaducadosycortosdefecha) { ?>
                <input type="hidden" name="FechaCaducidadEstado" id="FechaCaducidadEstado" value="" />
                <?php } ?>
            
            <?php } ?>
            
			<?php if( $mostrarPrecinta ) { ?>
            
                <div id="bloquePrecinta" class="bloqueDatos">
                	<p class="sinMargen">Precinta:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <input name="precinta" type="text" id="precinta" class="campo campoOrdenPreparacion deshabilitado" readonly="readonly" value="<?php echo $comportamientosProducto['PRECEMP']; ?>"/>
                    </div>
                </div>
            
            <?php } ?>
            
            <?php if($mostrarPaisOrigen) { ?>
            
            	<div id="bloquePaisOrigen" class="bloqueDatos">
                	<p class="sinMargen">País de origen:</p>
                    <div class="campoOrdenPreparacionBloque">
                    <input name="paisOrigen" type="text" id="paisOrigen" class="campo campoOrdenPreparacion deshabilitado" readonly="readonly" value="<?php echo $producto['PaisOrigenCodigo']; ?>"/>
                    </div>
                </div>
            
            <?php } ?>
            
            
            <?php if( $pedirNumSerie ) { ?>
            
                <p class="sinMargen">Números de serie:</p>
                <div>
                    <div id="bloqueLecturaNS-1" class="campoOrdenPreparacionBloque">
                    <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado iconoTecladoNS" id="tecladoNS-1" contador="1"/><input name="lecturaNS-1" type="text" class="campo campoOrdenPreparacion lecturaNS" id="lecturaNS-1" contador="1" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="campoOrdenPreparacionBorrar borrarNS" contador="1"/>                </div>
                    <div id="nuevaLecturaNS-1"></div>
                </div>
                
                <input type="hidden" id="cantidadMaximaNumerosSerie" name="cantidadMaximaNumerosSerie" value="<?php echo $producto['TotalCantidad']; ?>" />
                <input type="hidden" id="ultimoBloqueNumeroSerie" name="ultimoBloqueNumeroSerie" value="1" />
                <input type="hidden" id="cadenaNumerosSerieLeidos" name="cadenaNumerosSerieLeidos" style="width:400px" />
            
            <?php } ?>
            
            
            <?php if( $SujetoTPDT ) { ?>
            
            	<p><input type="button" class="boton reducido" name="botonTrazabilidad" id="botonTrazabilidad" value="Leer IDs trazabilidad" /></p>
                
                <?php if($cuantosIdsLecturasTTT) { ?>
                <p>Número de IDs leidos: <?php echo $cuantosIdsLecturasTTT; ?></p>
                <?php } ?>
            
            <?php } // fin if SujetoTPDT?>
            

             <?php if($pedirNumSerie || $SujetoTPDT) { ?>
             
                 <p style="margin-bottom:0">Cantidad leída:</p>
                 <div class="campoOrdenPreparacionBloque">
                    <input name="cantidad" type="text" class="campo cantidad campoOrdenPreparacion deshabilitado" id="cantidad" readonly="readonly" autocomplete="off"/>
                 </div>
             
             <?php } else { ?>
             
                 <p class="sinMargen">Cantidad <?php if($verCajas) { ?>(<span id="etiqueta"><?php echo $etiqueta; ?></span>)<?php } ?></p>
                 <div class="campoOrdenPreparacionBloque">
                 <?php if($verCajas) { ?><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" id="cantidad" autocomplete="off"/><?php if( $pedirContenedor ) { ?><?php if(!$muchasCombinacionesStock) { ?><img src="<?php echo DIR_IMAGENES; ?>/completo.png" alt="Contenedor completo" class="boton-contenedor-completo campoOrdenPreparacionLupa" id="contenedorCompleto" /><?php } ?><?php } ?><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarCantidad" class="campoOrdenPreparacionBorrar"/>
                 </div>
                 
                 <?php if($permitirDiferenciaCantidad) { ?> 
                     <div style="clear:both;margin-top:10px;margin-left:-60px;text-align:right;">
                     Para completar este producto puedes preparar una cantidad entre <?php echo $diferenciaPendienteMinimo; ?> y <?php echo $diferenciaPendienteMaximo; ?>
                     </div>
                     <input name="confirmarCierreLinea" id="confirmarCierreLinea" type="hidden" value="0" />
                 <?php } ?>
                          
             <?php } ?>
             
             </td>
        </tr>
        
        <?php if($_SESSION['PedirObservacionesPreparacion']) { ?>
        
        <tr>
          <td colspan="3" align="left" valign="top"><p>Observaciones a la preparación:<br />
		    <textarea name="observaciones" id="observaciones" rows="2" class="campo" style="width:935px;text-align:left"></textarea>
          </p></td>
		</tr>
        
        <?php } ?> 
        
        <tr id="lineaIncidencia" <?php if(!$producto['ObservacionesIncidencia']) { ?>style="display:none"<?php } ?>>
          <td colspan="3" align="left" valign="top"><p class="sinMargen">Incidencia:<br />
		    <textarea name="incidencia" id="incidencia" rows="2" class="campo <?php if($producto['ObservacionesIncidencia']) { ?>error<?php } ?>" style="width:980px"><?php echo $producto['ObservacionesIncidencia']; ?></textarea>
          </p></td>
		</tr>
        
        
        </table>
		
		<?php } //Fin if no preparable ?>
		
        <div id="popupBusqueda" class="popup" style="display:none"></div>
        <div class="popupContenidoScroll" id="popupBusquedaContenido" style="display:none;min-width:700px" ></div>

		<?php
		unset($_SESSION['parametros']);
		unset($_SESSION['parametrosUbicacion']);
		unset($_SESSION['parametrosVacios']);
		
		$_SESSION['parametros']=$producto['Codigo'];
		$_SESSION['parametros'].=';'.$producto['Ubicacion'];
		$_SESSION['parametrosVacios'].=';';
		$_SESSION['parametros'].=';'.$producto['Contenedor'];
		$_SESSION['parametrosVacios'].=';';
		
		//echo "<p>Comportamientos:</p>";
		//print_r($_SESSION['comportamientos']);
		//echo "<p>Comportamientos globales:</p>";
		//print_r($_SESSION['comportamientosGlobales']);
		
		foreach($_SESSION['comportamientosGlobales'] as $comportamiento) {
			$valor='-';
			foreach($datos as $dato) if($dato['Codigo']==$comportamiento['Codigo']) { $valor=$dato['Valor']; break; }
			$_SESSION['parametros'].=';'.$valor;
			$_SESSION['parametrosVacios'].=';';
		}
					
		$_SESSION['parametros'].=';'.$producto['NumeroEntrada'];
		$_SESSION['parametrosVacios'].=';';
		$_SESSION['parametros'].=';'.$producto['LineaEntrada'];
		$_SESSION['parametrosVacios'].=';';
		
		//print_r($_SESSION['parametros']);
		
		$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#LISTAUBISPRODUCTO#'.$_SESSION['almacen'].';'.$_SESSION['orden']['Empresa'].';'.$_SESSION['orden']['OrdenPreparacion'].';'.$_SESSION['parametros'];
		$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
		
		if($traza || $trazaSino) {
			echo "<p>".$peticion."</p>";
			echo "<p>Error: ".$resultado[0]['Error']."</p>";
			if(is_array($resultado)) echo "<p>Cuantos resultados:".count($resultado)."</p>";
			print_r($resultado);
		}
		
		if(count($resultado)>0 && !$resultado[0]['Error']) {
			
			?>
            
			<h3>Otras lineas solicitadas de este producto en otras ubicaciones:</h3>
            
			<table class="tablaFormateada" style="font-size:0.9em">
			<tr>
				<?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><th>Emp.</th><?php } ?>
                
				<th>Código</th>
                
                <?php if($_SESSION['orden']['GestCodB']=='S') { ?>
                <th>Código B</th>
                <?php } ?>
                
				<th>Descripción</th>
				<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
				<?php if($comportamiento['Activo']) { ?><th><?php echo $comportamiento['Nombre']; ?></th><?php } ?>
	      <?php } ?>
				<th>Cant.</th>
				<?php if($_SESSION['verEnCajas']=='S') { ?><th>Cajas</th><?php } ?>
				<th>Palet</th>
				<th width="100">Ubicación</th>
			</tr>
			<?php
			foreach($resultado as $productoUbicacion) {
			
				$mostrarLinea=true;
			
				if($pedirNumSerie && $productoUbicacion['Contenedor']==$producto['Contenedor']) $mostrarLinea=false;
				
				if($mostrarLinea) {
				
					$datosProductoUbicacion=$productoUbicacion['Datos']['PXMobileProxiumResult'];
					
					if(!$_SESSION['parametrosUbicacion']) {
				
						$_SESSION['parametrosUbicacion']=$productoUbicacion['Codigo'];
						$_SESSION['parametrosUbicacion'].=';'.$productoUbicacion['Ubicacion'];
						$_SESSION['parametrosUbicacion'].=';'.$productoUbicacion['Contenedor'];
						
						foreach($_SESSION['comportamientosGlobales'] as $comportamiento) {
							$valor='-';
							foreach($datosProductoUbicacion as $dato) if($dato['Codigo']==$comportamiento['Codigo']) { $valor=$dato['Valor']; break; }
							$_SESSION['parametrosUbicacion'].=';'.$valor;
						}
									
						$_SESSION['parametrosUbicacion'].=';'.$productoUbicacion['NumeroEntrada'];
						$_SESSION['parametrosUbicacion'].=';'.$productoUbicacion['LineaEntrada'];
						$_SESSION['parametrosUbicacion'].=';S';
					
					}
					
					?>
					<tr>
						<?php if(is_array($_SESSION['empresas']) && count($_SESSION['empresas'])>1) { ?><td><?php echo $productoUbicacion['Empresa']; ?></td><?php } ?>
						
						<td><?php echo $productoUbicacion['Codigo']; ?></td>
						
						<?php if($_SESSION['orden']['GestCodB']=='S') { ?>
						<td><?php echo $productoUbicacion['CodigoB']; ?></td>
						<?php } ?>
						
						<td align="left"><?php echo $productoUbicacion['Descripcion']; ?></td>
						<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
							<?php if($comportamiento['Activo']=='S') { ?>
								<td>
								<?php
								if( $comportamiento['Codigo']=='NS' && $productoUbicacion['NumeroSerie'] ) echo $productoUbicacion['NumeroSerie'];
								else {
									foreach($datosProductoUbicacion as $dato) {
										if($dato['Codigo']==$comportamiento['Codigo']) {
											echo formateaTipo($dato['Valor'],$comportamiento['Tipo']);
											break;
										}
									}
								} //Fin else (no es NS)
								?>
								</td>
							<?php } //Fin if comportamiento activo ?>
						<?php } //Fin foreach ?>	
					  <td align="right"><?php echo formateaNumeroDecimal($productoUbicacion['Cantidad']); ?></td>
					  <?php if($_SESSION['verEnCajas']=='S') { ?><td align="right"><?php echo formateaNumeroDecimal($productoUbicacion['Cajas']); ?></td><?php } ?>
					  <td><?php echo $productoUbicacion['Contenedor']; ?></td>
					<td><?php if($productoUbicacion['UbicacionAlias']) echo $productoUbicacion['UbicacionAlias']; else echo $productoUbicacion['Ubicacion']; ?></td>
					</tr>
					<?php
					
				}
			}
			?>
			</table>
			<?php
			$mostrarSgteUbicacion=true;

		}
		?>
        <!--</form>-->
        <?php
		
		

	}
	else {
	

	
		$valores=explode('#',$producto['Error']);
		
		$ordenCerrada=false;
		
		if($valores[0]=='2') {
		
			
		
			?>
            <script>
				alert('<?php echo $valores[1]; ?>',null,'advertencia')
				.done(function(){
					$('#popupCargando').show();
					window.location='orden-preparacion-S.php?orden=<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>&empresa=<?php echo $_SESSION['orden']['Empresa']; ?>';
				});	
			</script>
            <?php
		
		}
		else if($producto['Error']=='1#Orden cerrada.') {
		
			$ordenCerrada=true;
		
			?>
            <h3 style="margin:50px 0 50px 0">La orden de preparación ha sido cerrada.</h3>
            <p><input type="button" name="botonVolverListadoCierre" id="botonVolverListadoCierre" value="Volver al listado" class="boton" /></p>
            
            <script>
				$(document).ready(function(){
				
					$('#mensajeAsociacionPacking').hide(); //esta es la linea roja que sale bajo el título de la orden, que no pinta nada en la pantalla final tal como queda al cierre
				
					$('#botonVolverListadoCierre').on('click',function(){
						$('#popupCargando').show();
						window.location="ordenes-preparacion.php";
					});
					
				});
			</script>
            
            <?php
			
		}
		else if($producto['Error']=='1#No hay productos pendientes de preparar.' || $_GET['cierreCargaRapida']) {


			
			$cuantosPalets=count($_SESSION['palets']); //Esto parece que no se usa para nada
			
			
			//14-9-2020 Recargamos los datos de la cabecera, porque sino los datos de cierre pueden ser obsoletos (num palets, por ejemplo)
			$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEORDENPREP#'.$_SESSION['almacen'].';'.$_SESSION['orden']['Empresa'].';'.$_SESSION['orden']['OrdenPreparacion'];
			$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
			if($traza || $trazaSino) {
				echo "<p>Recarga cabecera orden prep para cierre</p>";
				echo "<p>".$peticion."</p>";
				print_r($resultado);
			}
			

			
			//TICKET 25066120 tras recargar los datos de la orden, perdíamos la procedencia
			$procedenciaPantallaTablet=$_SESSION['orden']['procedenciaPantallaTablet'];
			$_SESSION['orden']=$resultado[0];
			$_SESSION['orden']['procedenciaPantallaTablet']=$procedenciaPantallaTablet;
			
			
			if( ( $_SESSION['orden']['RequiereDimensionesPalets']=='S' || $_SESSION['orden']['RequierePesoPalets']=='S' ) && !$_SESSION['atributosPaletsConfirmados'] ) {
			
				?>
				<script>
					$('#popupCargando').show();
					//window.location="orden-preparacion-S-palets-atributos.php?cierre=si";
					
					//4-5-2023 unificamos para preparaciones y entradas, el mismo script
					window.location="palets-informar-atributos.php?origen=preparacion&cierre=si";
					
                </script>
				<?php
			
			}
			else if(!$errorCierre) {
			

			
				?>
				<form id="formulario" name="formulario" method="post" action="">
				
                <input type="hidden" name="esCierre" value="si" />
                <input type="hidden" name="procedenciaPantallaTablet" id="procedenciaPantallaTablet" value="<?php echo $_SESSION['orden']['procedenciaPantallaTablet']; ?>" />
				
				<?php if($gestionarDatosCierre) { ?>
				
                    <h3>DATOS PARA EL CIERRE</h3>
                    <div style="margin:0 auto;width:800px;overflow:hidden;">
                    
                    <?php foreach(arreglaArrayPXMobileProxiumResult($_SESSION['orden']['DatosCierre']) as $datoCierre) { ?>
                        <div style="width:260px;float:left;">
                        <p><?php echo $datoCierre['Texto']; ?><?php if ($datoCierre['Obligatorio']=='S') echo "*"; ?><br />
                        <input
                        type="text"
                        name="campoCierre-<?php echo $datoCierre['NumCampo']; ?>"
                        id="campoCierre-<?php echo $datoCierre['NumCampo']; ?>"
                        value="<?php echo $datoCierre['Valor']; ?>"
                        class="campo cantidad campoCierre"
                        style="width:200px"
                        obligatorio="<?php echo $datoCierre['Obligatorio']; ?>"
                        <?php if($datoCierre['NoEditable']=='S') { ?>disabled<?php } ?>
                        /></p>
                        </div>
                    <?php } ?>
                    
                    <?php if($_SESSION['orden']['PackingList']) { ?>
                    
                    <div style="width:260px;float:left;">
                        <p>Etiquetas expedición<br />
                        <input
                        id="totalBultosPackingListCabecera"
                        type="text"
                        class="campo cantidad"
                        style="width:200px"
                        disabled
                        /></p>
                    </div>
                    <script>
					$(document).ready(function(){
						$('#totalBultosPackingListCabecera').val( $('#totalBultosPackingList').html() ); //30-9-2025 este dato se calcula más abajo y ADM lo pide que se repite aqui arriba en grande
					});
					</script>
                    
                    <?php } ?>
                    
                    </div>
                    <p class="mini">* Datos obligatorios</p>
                    
                    
                    <?php
                    
                    ///// 8-3-2018 AÑADIMOS LA COMPROBACION DE SI HAY SERVICIOS Y/O DESCARGAS AL CIERRE
                    $peticion='ServDescCierreOprep#'.$_SESSION['orden']['Empresa'].'#'.$_SESSION['orden']['OrdenPreparacion'];
            
                    $servicios=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
                    
                    if($traza || $trazaSino) {
                        echo "<p>".$peticion."</p>";
                        print_r($servicios);
                    }
                    
                    if($servicios[0]['Descargas']) {
                        ?>
                        <p>Descargas:</p>
                        <input type="hidden" id="hayDescargas" name="hayDescargas" value="1">
                        <table class="tablaFormateada">
                        <tr>
                            <th></th>
                            <th>Nombre</th>
                            <th>Cantidad</th>
                            <th>Un. Medida</th>
                        </tr>
                        <?php foreach(arreglaArrayPXMobileProxiumResult($servicios[0]['Descargas']) as $descarga) { ?>
                            
                            <?php if($descarga['Auto']=='S') { ?>
                            
                            <tr>
                                <td><input type="checkbox" name="descargaAuto" id="descargaAuto" class="checkGrande" checked onclick="alert('Esta descarga es automática y no puede desmarcarse.');return false"/></td>
                                <td align="left"><?php echo $descarga['Nombre']; ?></td>
                                <td><input id="cantidad-descargaAuto" name="cantidad-descargaAuto" type="text" value="<?php echo $descarga['Cantidad']; ?>" class="campo" style="width:70px" disabled/></td>
                                <td align="left"><?php echo $descarga['UnidadMedida']; ?></td>
                            </tr>
                            
                            <?php } else { ?>
                            
                            <tr>
                                <td><input tipo="descarga" filaGrid="<?php echo $descarga['FilaGrid']; ?>" type="checkbox" name="descarga<?php echo $descarga['FilaGrid']; ?>" id="descarga<?php echo $descarga['FilaGrid']; ?>" value="<?php echo $descarga['FilaGrid']; ?>" class="selectorServicio checkGrande selectorDescarga" <?php if($_POST['descarga'.$descarga['FilaGrid']]) echo "checked"; else if($descarga['Marcado']=='S') echo "checked"; ?> yaexiste="<?php echo $descarga['YaExiste']; ?>" /></td>
                                <td align="left"><?php echo $descarga['Nombre']; ?></td>
                                <td><input id="cantidad-descarga<?php echo $descarga['FilaGrid']; ?>" name="cantidad-descarga<?php echo $descarga['FilaGrid']; ?>" type="text" value="<?php if($_POST['cantidad-descarga'.$descarga['FilaGrid']]) echo $_POST['cantidad-descarga'.$descarga['FilaGrid']]; else echo $descarga['Cantidad']; ?>" class="campo cantidad campoCierre" style="width:70px" /></td>
                                <td align="left"><?php echo $descarga['UnidadMedida']; ?></td>
                            </tr>
                            
                            <?php } ?>
                            
                        <?php } ?>
                        </table>
                        <?php
                    }
                    
                    if($servicios[0]['Servicios']) {
                        ?>
                        <p>Servicios:</p>
                        <input type="hidden" id="hayServicios" name="hayServicios" value="1">
                        <table class="tablaFormateada">
                        <tr>
                            <th></th>
                            <th>Nombre</th>
                            <th>Cantidad</th>
                            <th>Un. Medida</th>
                        </tr>
                        <?php foreach(arreglaArrayPXMobileProxiumResult($servicios[0]['Servicios']) as $servicio) { ?>
                        
                        	<?php
							
							$tempYaExiste=$servicio['YaExiste']; //Error PHP VCDL
							$tempAuto=$servicio['Auto']; 
							
							?>
                        
                            <?php if($tempYaExiste=='S') $yaExiste=true; ?>
                            
                            <?php if($tempAuto=='S') { ?>
                            
                            <tr>
                                <td><input type="checkbox" name="servicioAuto" id="ervicioAuto" class="checkGrande" checked onclick="alert('Este servicio es automático y no puede desmarcarse.');return false"/></td>
                                <td align="left"><?php echo $servicio['Nombre']; ?></td>
                                <td><input id="cantidad-servicioAuto" name="cantidad-servicioAuto" type="text" value="<?php echo $servicio['Cantidad']; ?>" class="campo" style="width:70px" disabled/></td>
                                <td align="left"><?php echo $servicio['UnidadMedida']; ?></td>
                            </tr>
                            
                            <?php } else { ?>
                            
                            <tr>
                                <td><input tipo="servicio" filaGrid="<?php echo $servicio['FilaGrid']; ?>" type="checkbox" name="servicio<?php echo $servicio['FilaGrid']; ?>" id="servicio<?php echo $servicio['FilaGrid']; ?>" value="<?php echo $servicio['FilaGrid']; ?>" class="selectorServicio checkGrande" <?php if($_POST['servicio'.$servicio['FilaGrid']]) echo "checked"; else if($servicio['Marcado']=='S') echo "checked"; ?> yaexiste="<?php echo $servicio['YaExiste']; ?>" /></td>
                                <td align="left"><?php echo $servicio['Nombre']; ?></td>
                                <td><input id="cantidad-servicio<?php echo $servicio['FilaGrid']; ?>" name="cantidad-servicio<?php echo $servicio['FilaGrid']; ?>" type="text" value="<?php if($_POST['cantidad-servicio'.$servicio['FilaGrid']]) echo $_POST['cantidad-servicio'.$servicio['FilaGrid']]; else echo $servicio['Cantidad']; ?>" class="campo cantidad campoCierre" style="width:70px" autocomplete="off"/></td>
                                <td align="left"><?php echo $servicio['UnidadMedida']; ?></td>
                            </tr>
                            
                            <?php } ?>
                            
                        <?php } ?>
                        </table>
                        <?php
                    }
                    
                    /*
					if($_SESSION['orden']['PackingList']) {
                    
                        ?>
                        <p>Bultos asociados al Packing List <strong><?php echo $_SESSION['orden']['PackingList']; ?></strong></p><?php
                        
                        $rutaRaiz=true;
                        include($rutaPhp.$rutaHtml.'/contenidos/orden-preparacion-palets-resumen.php');
                    
                    }
                    else if($servicios[0]['PaletsCHEP']) {
                        ?>
                        <p>Palets CHEP:</p>
        
                        <input type="hidden" id="hayPaletsCHEP" name="hayPaletsCHEP" value="1">
                        <table class="tablaFormateada">
                        <tr>
                            <th>Código</th>
                            <th>Nombre</th>
                            <th>Cantidad</th>
                        </tr>
                        <?php foreach(arreglaArrayPXMobileProxiumResult($servicios[0]['PaletsCHEP']) as $paletCHEP) { ?>
                            <tr>
                                <td><input type="hidden" name="paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" id="paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" value="<?php echo $paletCHEP['FilaGrid']; ?>" /><?php echo $paletCHEP['Codigo']; ?></td>
                                <td align="left"><?php echo $paletCHEP['Nombre']; ?></td>
                                <td><input id="cantidad-paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" name="cantidad-paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" type="text" value="<?php if($_POST['cantidad-paletCHEP'.$paletCHEP['FilaGrid']]) echo $_POST['cantidad-paletCHEP'.$paletCHEP['FilaGrid']]; else echo $paletCHEP['Cantidad']; ?>" class="campo cantidad cantidadPaletChep" style="width:70px" autocomplete="off"/></td>
                            </tr>
                        <?php } ?>
                        </table>
                        <?php
                    }
					*/
					
                    if($servicios[0]['PaletsCHEP']) {
                        ?>
                        <p>Palets CHEP:</p>
        
                        <input type="hidden" id="hayPaletsCHEP" name="hayPaletsCHEP" value="1">
                        <table class="tablaFormateada">
                        <tr>
                            <th>Código</th>
                            <th>Nombre</th>
                            <th>Cantidad</th>
                        </tr>
                        <?php foreach(arreglaArrayPXMobileProxiumResult($servicios[0]['PaletsCHEP']) as $paletCHEP) { ?>
                            <tr>
                                <td><input type="hidden" name="paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" id="paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" value="<?php echo $paletCHEP['FilaGrid']; ?>" /><?php echo $paletCHEP['Codigo']; ?></td>
                                <td align="left"><?php echo $paletCHEP['Nombre']; ?></td>
                                <td><input id="cantidad-paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" name="cantidad-paletCHEP<?php echo $paletCHEP['FilaGrid']; ?>" type="text" value="<?php if($_POST['cantidad-paletCHEP'.$paletCHEP['FilaGrid']]) echo $_POST['cantidad-paletCHEP'.$paletCHEP['FilaGrid']]; else echo $paletCHEP['Cantidad']; ?>" class="campo cantidad cantidadPaletChep" style="width:70px" autocomplete="off"/></td>
                            </tr>
                        <?php } ?>
                        </table>
                        <?php
                    }
					else if($_SESSION['orden']['PackingList']) {
                    
                        ?>
                        <p>Bultos asociados al Packing List <strong><?php echo $_SESSION['orden']['PackingList']; ?></strong></p><?php
                        
                        $rutaRaiz=true;
                        include($rutaPhp.$rutaHtml.'/contenidos/orden-preparacion-palets-resumen.php');
                    
                    }
                    
                    ?>
                    
                    <?php if($observacionesFacturacion) { ?> 
                    <p>Observaciones  facturación:<br />
                    <textarea name="observacionesFacturacion" id="observacionesFacturacion" rows="3" class="campo" style="width:935px;text-align:left"></textarea>
                    </p>
                    <?php } ?>
                    
                    <p><input type="submit" name="botonCierre" id="botonCierre" value="Cerrar Orden" class="boton"/></p>
				
				<?php } else { // no es gestionarDatosCierre ?>
				
				<script>
					$('#popupCargando').show();
					$('#formulario').submit();
				</script>
				
				<?php } ?>
				
				
				
				<script>
				
				$(document).ready(function() {
					
					$('.selectorDescarga').on('click',function(e) {
						var actual=$(this);
						var valor=actual.is(':checked');
						$('.selectorDescarga').each(function(){
							$(this).prop("checked", false);
						});
						if(valor) actual.prop("checked", true);
					});
					
					$('#botonCierre').on("click",function(e){
						
						e.preventDefault();
						
						var hayErrores=false;
						var hayYaExiste=false;
						
						$('.campoCierre').each(function() {
							
							if($(this).attr('obligatorio')=='S' && $(this).val()=='') {
								$(this).addClass('campoError');
								hayErrores=true;
								$(this).focus();
							}
							else $(this).removeClass('campoError');
							
						});
						
						var hayErroresServicios=false;
						
						$('.selectorServicio').each(function() {
							
							var tipo=$(this).attr('tipo');
							var filaGrid=$(this).attr('filaGrid');
							
							var cantidad=$('#cantidad-'+tipo+filaGrid);
							
							if( $(this).is(':checked') ) {
							
								if( cantidad.val()=='' || cantidad.val()==0 ) {
									cantidad.addClass('campoError');
									hayErroresServicios=true;
									cantidad.focus();
								}
								else cantidad.removeClass('campoError');
							}
							else cantidad.removeClass('campoError');
							
							if( $(this).attr('yaexiste')=='S' && $(this).is(':checked') ) hayYaExiste=true;
							
						});
						
						if(hayErrores) {
							alert("Por favor, cumplimenta los campos de cierre marcados como obligatorios.",null,'error');
						}
						else if(hayErroresServicios) {
							alert("Por favor, indica la cantidad para los servicios selecionados.",null,'error');
						}
						else if(hayYaExiste) {
							confirm('Alguno de los servicios indicados ya están asociados y se duplicarán. ¿Desea continuar?').done( function(){
								$('#popupCargando').show();
								$('#formulario').submit();
							});
						} 
						else {
							$('#popupCargando').show();
							$('#formulario').submit();
						}
						
					});
					
					$('.campoCierre').on("click",function(e) {
						$('#calculadora').show();
						$('#valorCalculadora').val( $(this).val() );
						$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
					});
					
					$('.cantidadPaletChep').on("click",function(e) {
						$('#calculadora').show();
						$('#valorCalculadora').val( $(this).val() );
						$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
					});
					
				});
				
				</script>
				
				</form>
				
				<?php
			
			} //Fin else es cierre (si no hay que informar atributos palets)
			
		}
		else {
		
			//13-05-2026 TAREA 74904
		
			$valores=explode('#',$producto['Error']);
		
			?>
            <!--<p class="error"><?php echo $producto['Error']; ?></p>-->
            <script>
			alert('ERROR: <?php echo $valores[1]; ?>',null,'error')
			.done(function(){
				<?php if($modoSeleccionCodigo) { ?>
				$('#popupCargando').show();
				window.location=window.location;
				<?php } ?>
			});
			</script>
			<?php
			
		}
		
	}
	

	?>

<?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>



<!-- ///////////////////////////////////////////////////////////////////////////// -->
<!-- 27/01/2020 al cierre, control inventario en linea -->		
	  
<div id="popupStock" class="popup" style="display:none;z-index:20000"></div>
<div id="popupStockContenido" class="popupContenidoScroll" style="display:none;z-index:20000;width:700px;top:-100px">
    
    <input type="hidden" id="stockCandidadProxium" value="" />
    <input type="hidden" id="stockBotonPulsado" value="" />
    <input type="hidden" id="stockCandidadOriginal" value="" />
    <input type="hidden" id="stockCandidadPreparada" value="" />
    
	<p><img src="<?php echo DIR_IMAGENES; ?>/iconos/advertencia.png" style="width:70px;height:70px" /></p>
    <p>El stock disponible en este palet parece estar por debajo del mínimo. Por favor, confirma el stock real disponible.</p>
    <h2>Palet <span id="stockPalet"></span></h2>
    <p><strong><?php echo $producto['Codigo']; ?> - <?php echo $producto['Descripcion']; ?></strong></p>
    <p>Cantidad <?php if($verCajas) { ?>(<span id="stockEtiqueta"><?php echo $etiqueta; ?></span>)<?php } ?><?php if($verCajas) { ?><img src="<?php echo DIR_IMAGENES; ?>/<?php echo $etiquetaInversa; ?>.png" alt="Informar en <?php echo $etiqueta; ?>" class="iconoTeclado" id="stockIconoUnidades" style="margin-left:10px"/><?php } ?><input type="text" name="stockCantidad" id="stockCantidad" class="campo cantidad" style="width:150px"/></p>
    <p>Observaciones:<br /><textarea name="stockObservaciones" id="stockObservaciones" rows="3" style="width:500px" class="campo"></textarea></p> 
    <p><input type="submit" name="stockBotonInformar" id="stockBotonInformar" value="Informar" class="campo boton"/></p>
    <p><input type="submit" name="stockBotonCancelar" id="stockBotonCancelar" value="Cancelar" class="campo boton reducido"/></p>
    
</div>
            
<script>

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

function stockInforma(valorCantidad) {

	$('#popupCargando').show();
		
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-stock-informar.php<?php if($traza || $trazaSino) { ?>?traza=si<?php } ?>", { articulo : '<?php echo $producto['Codigo']; ?>' , palet : $('#stockPalet').html() , cantidadUsuario : valorCantidad , cantidadSistema : $('#stockCandidadProxium').val() , observaciones : $('#stockObservaciones').val() } )
	.done(function(data){
			
		var resultado=data.split('#');
					
		if(resultado[0]=='1') {
			$('#popupCargando').hide();
			alert('Error: '+resultado[1],null,'error')
			.done(function(){
						procesaSiguienteLlamadaProceso( $('#stockBotonPulsado').val() , $('#stockCandidadOriginal').val() , $('#stockCandidadPreparada').val() );
			});
		}
		else {
			procesaSiguienteLlamadaProceso( $('#stockBotonPulsado').val() , $('#stockCandidadOriginal').val() , $('#stockCandidadPreparada').val() );
		}
	});
}
            
$(document).ready(function() {
    
	$('#stockIconoUnidades').on('click',function(e){
    	stockCambiaUnidades();
	});
            
    $('#stockCantidad').on('click',function(){
                
		if( !$(this).hasClass('deshabilitado') ) {
			$('#calculadora').show();
			$('#valorCalculadora').val( $('#stockCantidad').val() );
			$('#enterCalculadora').attr('campoValor','stockCantidad');
		}
                    
	});
                
	$('#stockObservaciones').on('click',function(){
                
		$('#teclado').show();
		$('#valor').val( $('#stockObservaciones').val() );
		$('#valorOculto').val( $('#stockObservaciones').val() );
		$('#enter').attr('campoValor','stockObservaciones');
		$('#enter').attr('forzarEnter','no');
                
	});
            
	$('#stockBotonInformar').on('click',function(){
		
		if( $('#stockCantidad').val()!=null && $('#stockCantidad').val()!='' ) {
		
			var valorCantidad;
			
			if($('#stockCantidad').val()=='0') valorCantidad='0';
			else {
				if( $('#cajas').val()==1 ) valorCantidad = parseFloat( $('#stockCantidad').val() ) * parseFloat( $('#EmbalajePrimarioCaja').val() );
				else valorCantidad = $('#stockCantidad').val();
			}
		
			if( valorCantidad != $('#stockCandidadProxium').val() ) {
				confirm('La cantidad informada no coincide con el cálculo de stock actual en Proxium.<br>¿Deseas revisar de nuevo o comunicar esta cantidad?','informacion','Comunicar','Revisar')
				.done(function(){
					stockInforma(valorCantidad);
				});
			}
			else stockInforma(valorCantidad);

		}
		else {
		
			confirm('No has informado la cantidad.<br>¿Deseas no informarla y continuar con la preparación?','informacion','No informar')
			.done(function(){
				procesaSiguienteLlamadaProceso( $('#stockBotonPulsado').val() , $('#stockCandidadOriginal').val() , $('#stockCandidadPreparada').val() );
			});
		
		}
		
	});
                
	$('#stockBotonCancelar').on('click',function(){
	
		confirm('¿Deseas no informar la cantidad en stock para este producto y continuar con la preparación?','advertencia','No informar')
		.done(function(){
			procesaSiguienteLlamadaProceso( $('#stockBotonPulsado').val() , $('#stockCandidadOriginal').val() , $('#stockCandidadPreparada').val() );
		});
		
		
	});
            

});
            
</script>

<!-- 27/01/2020 al cierre, control inventario en linea -->
<!-- ///////////////////////////////////////////////////////////////////////////// -->
		




<script>

<?php if($_SESSION['orden']['Estado']=='Iniciada' && $producto && !$producto['Error']) { ?>

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

	function cargaDatosGS1enSalida(lectura,lecturaEspecialCliente) {
	
		$('#popupCargando').show();
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-GS1.php", { 'lectura' : lectura , 'lecturaEspecialCliente' : lecturaEspecialCliente })
			.done(function(data) {
			
				//console.log('######### DATOS OBTENIDOS GS1');
				//console.log(data);
				
				var elementosObtenidos=data.split('@');
					
				for(var i=0;i<elementosObtenidos.length;i++) {
					
					var valores=elementosObtenidos[i].split(';');
					
					var datoObtenido=valores[0];
					var valorObtenido=valores[1];
					
					//console.log('TRAZA campo: '+datoObtenido+' / valor: '+valorObtenido+' / valor que debe coincidir: <?php echo $producto['Codigo']; ?>');
					
					if(datoObtenido=='codigo') {
					
						//console.log('TRAZA se ha encontrado codigo');
					
						if(valorObtenido!='<?php echo $producto['Codigo']; ?>') {
							alert('Error: El código de artículo leido <strong>'+valorObtenido+'</strong> no coindide con el de la preparación actual: <strong><?php echo $producto['Codigo']; ?></strong>',null,'error')
							.done(function(){
							
								$('#lecturaGS1').val('');
								$('#lecturaGS1').focus();
								
								reiniciaVariables();
							});
							break;
						}
					}
					else if( datoObtenido=='lote' || datoObtenido=='cantidad' || datoObtenido=='fechaCaducidad' || datoObtenido=='eanDun' ) {
					
						$('#'+datoObtenido).val( valorObtenido );	
						
						if(datoObtenido=='eanDun') $('#eanDun').trigger('change');

					}
				}
				
				$('#lecturaGS1').val('');
				$('#lecturaGS1').focus();
				
				reiniciaVariables();
				
				$('#popupCargando').hide();
					
			});
			
	}



	function cargaUbicacion() {
		
		<?php if(!$muchasCombinacionesStock) { ?>
		
		cambiaFocoSecuenciaAutomatica();
				
		if(pedirLote) {
			$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-lotes-producto-ubicacion-datosdirectos.php" , { 'ubicacion' : $('#ubicacion').val() , 'pedirFechaCaducidad' : pedirFechaCaducidad , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
			.done(function(data) {
				$("#popupBusquedaContenido").html(data); //Si no cargamos el contenido, no se ejecuta el javascript del segundo script
				if( data=='unico') {
					cambiaFocoSecuenciaAutomatica();
				}
			});
		}
		
		reiniciaVariables();
		
		<?php } ?>
		
	}


	function estanTodosVacios() {
	
		var estanTodosVacios=true;
		
		<?php if(!$noPreparable) { ?>
	
		if( pedirUbicacion && $('#ubicacion').val()!='' ) estanTodosVacios=false;
		if( pedirContenedor && $('#contenedor').val()!='' ) estanTodosVacios=false;
		if( pedirLote && $('#lote').val()!='' ) estanTodosVacios=false;
		//Obviamos la fecha caducidad, porque esta se auto-rellena siempre sola y no se puede editar
		//if( pedirFechaCaducidad && $('#fechaCaducidad').val()!='' ) estanTodosVacios=false;
		
		if( $('#cantidad').val()!='' ) estanTodosVacios=false;
		
		<?php } ?>
		
		return estanTodosVacios;	
	
	}

	

	function paletCompatible(palet) {
		
		<?php if($requierePaletizar) { ?>
			var resultado=true;
			for ( var i=0; i<paletsNoCompatibles.length; i++ ) {
				if( paletsNoCompatibles[i]==palet ) resultado=false;
			}
			return resultado;
		<?php } else { ?>
			return true;
		<?php } ?>
	}
	

	function validaCampos() {
	
		//console.log('FUNCTION VALIDACAMPOS');
	
		var cantidad=<?php if($producto['EmbalajePrimarioCaja']) { echo $cajasMostrar; } else { echo $cantidadMostrar; } ?>;
		
		var temp=$('#cantidad').val().split('.');
		var parteDecimal=temp[1]
		var tieneDecimal = ( parteDecimal!=undefined && parseInt(parteDecimal)!=0 );

		
		<?php if($pedirContenedor || $pedirContenedorTambienUbicacion) { ?>$('#contenedor').removeClass('campoError');<?php } ?>
		<?php if($pedirUbicacion || $pedirContenedorTambienUbicacion) { ?>$('#ubicacion').removeClass('campoError');<?php } ?>
		
		<?php if($pedirContenedorDestino) { ?>$('#contenedorDestino').removeClass('campoError');<?php } ?>
		<?php if($pedirCajaPaletDestino) { ?>$('#cajaPaletDestino').removeClass('campoError');<?php } ?>
		
		<?php if($pedirEanDun) { ?>$('#eanDun').removeClass('campoError');<?php } ?>
		<?php if($pedirLote) { ?>$('#lote').removeClass('campoError');<?php } ?>
		<?php if($pedirFechaCaducidad) { ?>$('#fechaCaducidad').removeClass('campoError');<?php } ?>
		<?php if($mostrarPrecinta) { ?>$('#precinta').removeClass('campoError');<?php } ?>
		
		$('#cantidad').removeClass('campoError');
	
	
		if(false) {
		}
		<?php if($pedirUbicacion || $pedirContenedorTambienUbicacion) { ?>
		else if( $('#ubicacion').val()=='' && !$('#ubicacion').prop('readonly') ) {
			alert('Para continuar es necesario indicar la ubicación origen.',null,'error')
			.done( function() {
				$('#ubicacion').addClass('campoError');
				$('#ubicacion').focus();
			});
			return false;
		}
		<?php } else if($pedirContenedor) { ?>
		else if($('#contenedor').val()=='') {
			alert('Para continuar es necesario indicar el Contenedor origen.',null,'error')
			.done( function() {
				$('#contenedor').addClass('campoError');
				$('#contenedor').focus();
			});
			return false;
		}
		<?php } ?>
		
		<?php if($pickingPrevio) { ?>
			else if($('#contenedor').val()!='' && $('#contenedor').val()!='<?php echo $mantenerIdPaletDato; ?>') {
				alert('ERROR: En esta preparación es obligatorio el palet: <?php echo $mantenerIdPaletDato; ?>',null,'error')
				.done(function(){
					$('#contenedor').addClass('campoError');
					$('#contenedor').focus();
				});
				return false;
			}
			<?php if($pedirLote) { ?>
			else if($('#lote').val()!='' && $('#lote').val()!='<?php echo $mantenerLoteDato; ?>') {
				alert('ERROR: En esta preparación es obligatorio el lote: <?php echo $mantenerLoteDato; ?>',null,'error')
				.done(function(){
					$('#lote').addClass('campoError');
					$('#lote').focus();
				});
				return false;
			}
			<?php } ?>
			<?php if($pedirFechaCaducidad) { ?>
			<?php $caducidadEvaluar=fechaNacional($mantenerCaducidadDato); ?>
			else if($('#fechaCaducidad').val()!='' && $('#fechaCaducidad').val()!='<?php echo $caducidadEvaluar; ?>') {
				alert('ERROR: En esta preparación es obligatoria la fecha de caducidad: <?php echo $caducidadEvaluar; ?>',null,'error')
				.done(function(){
					$('#fechaCaducidad').addClass('campoError');
					$('#fechaCaducidad').focus();
				});
				return false;
			}
			<?php } ?>
			<?php if($pedirNumSerie) { ?>
			else if($('#lecturaNS-1').val()!='' && $('#lecturaNS-1').val()!='<?php echo $mantenerSerieDato; ?>') {
				alert('ERROR: En esta preparación es obligatorio el número de serie: <?php echo $mantenerSerieDato; ?>',null,'error')
				.done(function(){
					$('#lecturaNS-1').addClass('campoError');
					$('#lecturaNS-1').focus();
				});
				return false;
			}
			<?php } ?>
			
		<?php } ?>
		
		
		<?php if( $pedirCajaPaletDestino && ( !isset($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]) || $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]=='C' ) ) { ?>
			else if($('#cajaPaletDestino').val()=='') {
				alert('Para continuar es necesario indicar la Caja destino.',null,'error')
				.done( function() {
					$('#cajaPaletDestino').addClass('campoError');
					$('#cajaPaletDestino').focus();
				});
				return false;
			}
			else if( !paletCompatible($('#cajaPaletDestino').val()) ) {
				alert('La caja seleccionada actualmente es incompatible con el producto que se quiere preparar.',null,'error')
				.done( function() {
					
				});
				return false;
			}
		<?php } ?>
		
		<?php if( $pedirContenedorDestino && ( !isset($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]) || $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]=='P' ) ) { ?>
			else if($('#contenedorDestino').val()=='') {
				alert('Para continuar es necesario indicar el Palet destino.',null,'error')
				.done( function() {
					$('#contenedorDestino').addClass('campoError');
					$('#contenedorDestino').focus();
				});
				return false;
			}
			else if( !paletCompatible($('#contenedorDestino').val()) ) {
				alert('El Palet seleccionado actualmente es incompatible con el producto que se quiere preparar.',null,'error')
				.done( function() {
					
				});
				return false;
			}
		<?php } ?>
		
		<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
		if($('#cajaPaletDestino').val()!='' && $('#cajaPaletDestinoSSCC').val()=='') {
		alert('La caja destino informada no es válida al no disponer de SSCC.',null,'error')
			.done( function() {
				$('#cajaPaletDestino').addClass('campoError');
				$('#cajaPaletDestino').focus();
			});
			return false;
		}
		if($('#contenedorDestino').val()!='' && $('#contenedorDestinoSSCC').val()=='') {
			alert('El palet destino informado no es válido al no disponer de SSCC.',null,'error')
			.done( function() {
				$('#contenedorDestino').addClass('campoError');
				$('#contenedorDestino').focus();
			});
			return false;
		}
		<?php } ?>
		
		<?php if( $pedirContenedorDestino || $pedirCajaPaletDestino && ( !isset($_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]) || $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]=='PC' ) ) { ?>
			else if($('#cajaPaletDestino').val()=='' && $('#contenedorDestino').val()=='') {
				alert('Para continuar es necesario indicar una Caja o un Palet destino.',null,'error')
				.done( function() {
					if($('#cajaPaletDestino').val()=='' ) {
						$('#cajaPaletDestino').addClass('campoError');
						$('#cajaPaletDestino').focus();
					}
					else {
						$('#contenedorDestino').addClass('campoError');
						$('#contenedorDestino').focus();
					}
				});
				return false;
			}
		<?php } ?>
		
		<?php if($_SESSION['SeleccionTipoCajaSalida']) { ?>
		else if( $('#cajaPaletDestino').val()!='' && $('#cajaPaletDestinoTipoCaja').val()=='' ) {
			alert('Si indicas una Caja destino, es obligatorio informar el tipo de caja.',null,'error');
			return false;
		}
		<?php } ?>
		
		<?php if($_SESSION['seleccionTipoPalet']) { ?>
		else if( $('#contenedorDestino').val()!='' && $('#contenedorDestinoTipoPalet').val()=='' ) {
			alert('Si indicas un Palet destino, es obligatorio informar el tipo de palet.',null,'error');
			return false;
		}
		<?php } ?>
		
		<?php if($pedirLote) { ?>
		else if( $('#lote').val()=='' ) {
			alert('Para continuar es necesario indicar el Lote.',null,'error')
			.done( function() {
				$('#lote').addClass('campoError');
				$('#lote').focus();
			});
			return false;
		}
		<?php } ?>
		<?php if($pedirEanDunObligatorio) { ?>
		else if( !$('#eanDun').prop('readonly') && $('#eanDun').val()=='') {
			alert('Para continuar es necesario indicar el código EAN/DUN.',null,'error')
			.done( function() {
				$('#eanDun').addClass('campoError');
				$('#eanDun').focus();
			});
			return false;
		}
		else if( !$('#eanDun').prop('readonly') && $('#eanDunCorrecto').val()!=1 ) {
			alert('Error 1: este código EAN/DUN no pertenece a este producto.',null,'error')
			.done( function() {
				$('#eanDun').addClass('campoError');
				$('#eanDun').focus();
			});
			return false;
		}
		<?php } ?>
		<?php if($pedirFechaCaducidad) { ?>
		else if( $('#fechaCaducidad').val()=='' ) {
			alert('Para continuar es necesario indicar la fecha de caducidad.',null,'error')
			.done( function() {
				$('#fechaCaducidad').addClass('campoError');
				$('#fechaCaducidad').focus();
			});
			return false;
		}
		<?php } ?>
		<?php if($pedirNumSerie) { ?>
		
		<?php } ?>
		else if( $('#cantidad').val()=='' || $('#cantidad').val()==0 ) {
			<?php if($SujetoTPDT) { ?>
			mensaje='Para continuar es necesario leer los Ids de trazabilidad.';
			<?php } else { ?>
			mensaje='Para continuar es necesario indicar la cantidad.';
			<?php } ?>
			alert(mensaje,null,'error')
			.done( function() {
				$('#cantidad').addClass('campoError');
				$('#cantidad').focus();
			});
			return false;
		}
		<?php if($_SESSION['verEnCajas']=='S') { ?>
		<?php //08-06-2021 LCT no permitir decimales en modo cajas ?>
		else if( $('#etiqueta').html()=='Cajas' && tieneDecimal ) {
			alert('No se puede indicar decimales en la cantidad en cajas. '+parteDecimal,null,'error')
			.done( function() {
				$('#cantidad').addClass('campoError');
				$('#cantidad').focus();
			});
			return false;
		}
		<?php } ?>
		else return true;

	}
	
	function compruebaCaducidadFechas() {
	
		var deferred = new $.Deferred();
	
		if($('#FechaCaducidadEstado').val()=='CADUCADO') {
			alert('ERROR: No está permitido servir producto caducado.',null,'error')
			.done( function() {
				$('#fechaCaducidad').addClass('campoError');
				$('#fechaCaducidad').focus();
				deferred.reject();
			});
		}
		else if($('#FechaCaducidadEstado').val()=='PROXIMOACADUCAR') {
			confirm('ATENCIÓN: El producto seleccionado para servir está próximo a su fecha de caducidad.<br><br>¿Deseas prepararlo igualmente?','advertencia')
			.done( function() {
				//console.log('- - - - - Se ha pulsado que se quiere continuar');
				deferred.resolve();
			})
			.fail(function(){
				//console.log('- - - - - Se ha pulsado que se cancela');
				$('#fechaCaducidad').addClass('campoError');
				$('#fechaCaducidad').focus();
				deferred.reject();
			});
		}
		else deferred.resolve();
		
		return deferred.promise();

	}


<?php } ?>

	function cambiaUnidades() {
	
		if( $('#cajas').val()==1 ) {
		
			$('#iconoUnidades').attr('src','<?php echo DIR_IMAGENES; ?>/Cajas.png');
			$('#cajas').val(0);
			$('#etiqueta').html('Unidades');
					
			var resultado = parseFloat( $('#cantidad').val() ) * parseFloat( $('#EmbalajePrimarioCaja').val() );
			
			////console.log('cantidad: '+$('#cantidad').val()+' embalaje primario: '+$('#EmbalajePrimarioCaja').val()+' resultado: '+resultado);
			
			if(resultado>0) $('#cantidad').val( resultado );
		}
		else {
		
			$('#iconoUnidades').attr('src','<?php echo DIR_IMAGENES; ?>/Unidades.png');
			$('#cajas').val(1);
			$('#etiqueta').html('Cajas');
					
			var flotante = parseFloat( $('#cantidad').val() / $('#EmbalajePrimarioCaja').val() );
			var resultado = Math.round(flotante*100)/100;
			
			////console.log('cantidad: '+$('#cantidad').val()+' embalaje primario: '+$('#EmbalajePrimarioCaja').val()+' resultado: '+resultado);
					
			if(resultado>0) $('#cantidad').val( resultado );
		}
	
	}
	
	<?php if($requierePaletizar) { ?>
	
	function cargaListadoPalets(noFoco=false,esperar=false) {
		
		$('#popupCargando').show();
		
		let deferred=null;
		
		if(esperar) deferred = new $.Deferred();
		
		//$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palets-listado.php" , { TipoOrden : '<?php echo $_SESSION['orden']['TipoOrden']; ?>' , 'EmpresaOrden' : '<?php echo $_SESSION['orden']['Empresa']; ?>' , 'PackingList' : '<?php echo $_SESSION['orden']['PackingList']; ?>' , 'OrdenPreparacion' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'PaletsPL' : '<?php echo serialize($_SESSION['orden']['PaletsPL']); ?>' , 'empresaSesion' : '<?php echo $_SESSION['empresa']; ?>' , 'almacen' : '<?php echo $_SESSION['almacen']; ?>' , 'Usuario' : '<?php echo $_SESSION['usuario']['Usuario']; ?>' } )
		
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palets-listado.php<?php if($traza) { ?>?traza=si<?php } ?>" , { 'pedirContenedorDestinoUbicacion' : '<?php echo $pedirContenedorDestinoUbicacion; ?>' }  )
		.done(function(data) {
			<?php if(!$_SESSION['preparacionPaletActual']) { ?>
			$('#popupCargando').hide();
			<?php } ?>
			$('#contenidoPaletsListado').html(data);
			redimensionaPestanyas('contenedorPrincipal',100);
			if(!noFoco) $('#nuevoPalet').focus();
			
			if(esperar) deferred.resolve();
			
		});
		
		if(esperar) return deferred.promise();
		
	}
	
	function seleccionaPalet(palet,noMoverPestanya,caja,ubicacion,paletTipo,cajaTipo) {
		
		//console.log('A la funcion seleccionaPalet ha llegado el tipo de palet: '+paletTipo);
		
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-seleccionar.php", { 'palet' : palet , 'caja' : caja , 'paletTipo' : paletTipo , 'cajaTipo' : cajaTipo  } )
		.done(function() {
		
			//console.log('DESPUES A la funcion seleccionaPalet ha llegado el tipo de palet: '+paletTipo);
			
			$('.selectorPalet').parent().attr('seleccionado','no');
			$('.imagenPaletOk').attr('src','');
			
			//Valores para formulario preparacion
			if(palet) $('#paletSeleccionado').val(palet);
			
			//Valor para la etiqueta de la pestaña
			var contenedor;
			if(caja) contenedor=caja;
			else contenedor=palet;
			
			$('#selectorPalet'+contenedor).parent().attr('seleccionado','si');
			$('#imagenPaletOk'+contenedor).attr("src","<?php echo DIR_IMAGENES; ?>/ok.png");
			
			$('#etiquetaCodigoPalet').html(contenedor);
			
			//Carga contenido del palet en la segunda pestaña
			$('#popupCargando').show();
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-contenido.php<?php if($traza || $trazaSino) { ?>?traza=si<?php } ?>", { 'contenedor' : contenedor , 'packinglist' : $('#packingList').val() })
			.done(function(data) {
				$('#contenidoPalet').html(data);
				$('#popupCargando').hide();
			});
			
			//Visibiliza o no el mensaje de palet incompatible para el producto actual
			if( !paletCompatible(contenedor) ) $('#mensajePaletIncompatible').show();
			else $('#mensajePaletIncompatible').hide();
			
			$("html, body").animate({scrollTop:0},"slow");
			
			if(!noMoverPestanya) {
			
				mueveHastaPestanya('pestanyaContenidoPalet');
				
				//mueveHastaPestanya('pestanyaPreparar');
				//focoSiguiente('');
				
			
			}
			
			//console.log('DESPUES DESPUES A la funcion seleccionaPalet ha llegado el tipo de palet: '+paletTipo);
			
			$('#cajaPaletDestino').val( caja );
			$('#cajaPaletDestinoTipoCaja').val( cajaTipo );
			$('#contenedorDestinoTipoPalet').val( paletTipo );
			
			$('#cajaPaletSeleccionadaTipo').val( cajaTipo );
			$('#paletSeleccionadoTipo').val( paletTipo );
			
			
			<?php if($pedirContenedorDestino) { ?>
			comportamientoPantallaPaletCompleto(false,palet,'','',false,ubicacion);
			<?php } ?>
			
			<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
			cajaPaletDestinoSSCC(true);
			contenedorDestinoSSCC(true);
			<?php } ?>
				
		});
		
	}
	
	function fijarPalet(contenedor,contenedorPadre,esCaja,ubicacion,tipo,tipoPadre) {
		
		var caja='';
		var palet='';
		
		if(esCaja) {
			caja=contenedor;
			cajaTipo=tipo;
			if(contenedorPadre) {
				palet=contenedorPadre;
				paletTipo=tipoPadre;
			}
			else {
				palet='';
				paletTipo='';
			}
		}
		else {
			palet=contenedor;
			paletTipo=tipo;
			caja='';
			cajaTipo='';
		}
		
		////console.log('fijamos palet: '+palet+' caja: '+caja);
		
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-fijar.php", { 'palet' : palet , 'caja' : caja , 'ubicacion' : ubicacion , 'paletTipo' : paletTipo , 'cajaTipo' : cajaTipo  } )
		.done(function() {
			
			$('.selectorPaletFijado').attr('seleccionado','no');
			$('.selectorPaletFijado').attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar-off.png');
			
			$('#paletSeleccionadoFijado').val(palet);
			$('#cajaPaletSeleccionadaFijada').val(caja);
			
			$('#paletSeleccionadoFijadoTipo').val(paletTipo);
			$('#cajaPaletSeleccionadaFijadaTipo').val(cajaTipo);
			
			//console.log('Despues de fijar palet, se rellenan los palets, cajas y sus tipos. Traza 1');
			
			//Valores para formulario preparacion
			$('#contenedorDestino').val(palet);
			$('#contenedorDestinoTipoPalet').val(paletTipo);
			$('#cajaPaletDestino').val(caja);
			$('#cajaPaletDestinoTipoCaja').val(cajaTipo);
			
			if(palet) {
				$('#imagenPaletFijado'+palet).attr('seleccionado','si');
				$('#imagenPaletFijado'+palet).attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar.png');
			}
			if(caja) {
				$('#imagenPaletFijado'+caja).attr('seleccionado','si');
				$('#imagenPaletFijado'+caja).attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar.png');
			}
			
			$("html, body").animate({scrollTop:0},"slow");
			
			controlGraficoModoPreparacion()
			
			mueveHastaPestanya('pestanyaPreparar');
			focoSiguiente('');
			
			<?php if($pedirContenedorDestino) { ?>
			comportamientoPantallaPaletCompleto(false,palet,'','',false);
			<?php } ?>
			
			<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
			cajaPaletDestinoSSCC(true);
			contenedorDestinoSSCC(true);
			<?php } ?>
				
		});
		
	}
	
	function desfijarPalets() {
		
		////console.log('desfijamos todo');
		
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-fijar.php", { 'palet' : '' , 'caja' : ''  } )
		.done(function() {
			
			$('.selectorPaletFijado').attr('seleccionado','no');
			$('.selectorPaletFijado').attr('src','<?php echo DIR_IMAGENES; ?>/palet-fijar-off.png');
			
			$('#paletSeleccionadoFijado').val('');
			$('#paletSeleccionadoFijadoTipo').val('');
			$('#cajaPaletSeleccionadaFijada').val('');
			$('#cajaPaletSeleccionadaFijadaTipo').val('');
			
			//Valores para formulario preparacion
			$('#contenedorDestino').val('');
			$('#contenedorDestinoTipoPalet').val('');
			$('#contenedorDestinoUbicacion').val('');
			
			$('#cajaPaletDestino').val('');
			$('#cajaPaletDestinoTipoCaja').val('');
			
			controlGraficoModoPreparacion();
			
			mueveHastaPestanya('pestanyaPreparar');
			focoSiguiente('');
			
			<?php if($pedirContenedorDestino) { ?>
			comportamientoPantallaPaletCompleto(false,palet,'','',false);
			<?php } ?>
				
		});
		
	}
	
	function asociaPaletOrdenPacking(orden,palet,packinglist) {
	
		//alert('orden: '+orden+' / palet: '+palet+' packing: '+packinglist);
	
		$('#popupCargando').show();
								
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-asociar.php", { 'orden' : orden , 'palet' : palet , 'packing' : packinglist })
		.done(function(data) {
									
			$('#popupCargando').hide();
			
			var valores=data.split('#');
	
			if(valores[0]==1) {
				alert('ERROR: '+valores[1]);
			}
			else {
			
				$('#popupPackingLists').hide();
				$('#popupPackingListsContenido').hide();
				
				var mensaje='';
				
				if(orden) {
					if(packinglist) mensaje='La Orden de Preparación ha sido asociada al Packing List <strong>'+packinglist+'</strong>';
					else {
						packinglist=valores[2];
						mensaje='Ha sido creado el nuevo Packing List <strong>'+packinglist+'</strong>';
					}
					alert(mensaje,null,'ok');
					$('#mensajeAsociacionPacking').html('Esta orden de preparación está asociada al <strong>Packing List '+packinglist+'</strong>');
					$('#packingList').val(packinglist);
				}
				
				$('#paletSeleccionado').val(palet);
				
				
				seleccionaPalet(palet,true,'');
				cargaListadoPalets();
				
				$('#nuevoPalet').val('');
				$('#nuevoPalet').focus();

			}
						
		});
	
	}
	
	<?php } ?>
	
	function gestionaNumerosSerie() {
	
		var cadena='';
		var cuantos=0;
		$('.lecturaNS').each(function(){
			if($(this).val()!='') {
				cadena=cadena+$(this).val()+',';
				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=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+'" autocomplete="off"/><img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="campoOrdenPreparacionBorrar borrarNS" contador="'+nuevoContador+'"/></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});
		
	}
	
	
	
	//30-12-2025
	var numerosSerieLibresContenedor=[];
	var numerosSerieLibresLeidos=[];
	<?php foreach($numerosSerieLibresContenedor as $clave=>$valor) { ?>
	<?php if($valor) { ?>numerosSerieLibresContenedor['<?php echo $clave; ?>']=<?php echo $valor; ?>;<?php }?>
	<?php } ?>
	var errorNumerosSerieLibres='';
	
	function numeroSerieDisponible(numerosSerieDisponibles,numero,contenedor) {
	
		
	
		//numeroActual=new Array('<?php echo $numSerie['NumeroSerie']; ?>','<?php echo $numSerie['Contenedor']; ?>','<?php echo $numSerie['Ubicacion']; ?>');
		//numerosSerieDisponibles.push(numeroActual);
		
		if(!contenedor) contenedor='-';
		
		var encontrado=false;
		var actual;
		
		for (i=0;i<numerosSerieDisponibles.length;i++) {
			actual=numerosSerieDisponibles[i];
			if(actual[0]==numero && actual[1]==contenedor) encontrado=true;
		}
		
		<?php if($GestionNumSerieSalida) { ?>
		
		console.log('encontrado: '+encontrado);
		console.log('numerosSerieLibresContenedor: '+numerosSerieLibresContenedor[contenedor]);
		console.log('numerosSerieLibresLeidos: '+numerosSerieLibresLeidos.length);
		
		if(!encontrado && (numerosSerieLibresContenedor[contenedor]-numerosSerieLibresLeidos.length)>0) {
			encontrado=true;
			numerosSerieLibresLeidos.push(numero);
		}
		else {
			//errorNumerosSerieLibres='No puedes informar más números de serie<br>puesto que no hay más productos en este palet sin ser informados.';
			errorNumerosSerieLibres='Este palet tiene unidades con número de serie informado<br>y este número de serie no coincide con ninguno de ellos.';
		}
		<?php } ?>
		
		//console.log('numerosSerieLibresContenedor: '+numerosSerieLibresContenedor[contenedor]);
		//console.log('numerosSerieLibresLeidos: '+numerosSerieLibresLeidos);
		
		return encontrado;
	
	}


function procesaSiguienteLlamadaProceso(botonPulsado,cantidadOriginal,cantidadPreparada) {

	$('#popupCargando').show();

	if( botonPulsado=='botonSgteProducto' ) {
		if ( cantidadPreparada < cantidadOriginal ) window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-S.php?siguiente=si&fuerzaS=si&reiniciarPeticionWebService=si<?php if($traza || $trazaSino) { ?>&traza=si<?php } ?>';
		else window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-S.php?siguiente=si&reiniciarPeticionWebService=si<?php if($traza || $trazaSino) { ?>&traza=si<?php } ?>';	
	}
	else window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-S.php?siguienteUbicacion=si&reiniciarPeticionWebService=si<?php if($traza || $trazaSino) { ?>&traza=si<?php } ?>';
	
}




function compruebaValidezPosteriorContenedorCompleto() {

	if( $('#contenedorDestino').val()==$('#contenedor').val() ) {

		$('#contenedor').trigger('change');
	
	}
	else {
		
		comportamientoPantallaPaletCompleto(false,$('#contenedorDestino').val(),'','',null);
		
	}

}

function bloqueaCampoPaletCaja(valor) {

	if(valor) {
		$('#tecladoCajaPaletDestino').hide();
		$('#borrarCajaPaletDestino').hide();
		$('#cajaPaletDestino').attr('readonly','readonly');
		$('#cajaPaletDestino').addClass('deshabilitado');
	}
	else {
		$('#tecladoCajaPaletDestino').show();
		$('#borrarCajaPaletDestino').show();
		$('#cajaPaletDestino').removeAttr('readonly');
		$('#cajaPaletDestino').removeClass('deshabilitado');
	}

}

function bloqueaCampoContenedorDestino(valor) {

	if(valor) {
		$('#tecladoContenedorDestino').hide();
		$('#borrarContenedorDestino').hide();
		$('#contenedorDestino').attr('readonly','readonly');
		$('#contenedorDestino').addClass('deshabilitado');
	}
	else {
		$('#tecladoContenedorDestino').show();
		$('#borrarContenedorDestino').show();
		$('#contenedorDestino').removeAttr('readonly');
		$('#contenedorDestino').removeClass('deshabilitado');
	}

}

function bloqueaCampoUbicacion(valor) {

	if(valor) {
		$('#tecladoUbicacion').hide();
		$('#borrarUbicacion').hide();
		$('#botonPlayas').hide();
		$('#ubicacion').attr('readonly','readonly');
		$('#ubicacion').addClass('deshabilitado');
	}
	else {
		$('#tecladoUbicacion').show();
		$('#borrarUbicacion').show();
		$('#botonPlayas').show();
		$('#ubicacion').removeAttr('readonly');
		$('#ubicacion').removeClass('deshabilitado');
	}

}

function bloqueaCampoEanDun(valor) {

	//console.log('>>> Function bloqueaCampoEanDun');

	<?php if($_SESSION['parametrosSGA']['ExpedicionesLecturaEANObligatoria']!='S') { ?>

	if(valor) {
		<?php
		$eanDunPintar='';
		$valoresEans=explode(';',$producto['EAN']);
		$valoresDuns=explode(';',$producto['DUN']);
		//Este valor es puramente informativo, cogeremos el primero en el caso que haya varios, si hay EAN y si no, si hay DUN
		//pero no tiene ningún efecto más que control, luego se validará contra Proxium, pero no tendrá ninguna consecuencia
		if($valoresEans[0]) $eanDunPintar=quitaSaltos($valoresEans[0]);
		else if($valoresDuns[0]) $eanDunPintar=quitaSaltos($valoresDuns[0]);
		?>
		$('#eanDun').val('<?php echo $eanDunPintar ?>');
		
		//15-12-2023
		$('#eanDunCorrecto').val(1);
		
		$('#tecladoEanDun').hide();
		$('#borrarEanDun').hide();
		$('#eanDun').attr('readonly','readonly');
		$('#eanDun').addClass('deshabilitado');
	}
	else {
		$('#tecladoEanDun').show();
		$('#borrarEanDun').show();
		$('#eanDun').removeAttr('readonly');
		$('#eanDun').removeClass('deshabilitado');
	}
	
	<?php } ?>
	
}

function bloqueaCampoLote(valor) {

	//console.log('>>> Function bloqueaCampoLote con valor: '+valor);

	//24-05-2023 antes de bloquear el campo, comprueba que TENGA VALOR
	if(valor && $('#lote').val()) {
		$('#tecladoLote').hide();
		$('#buscarOtrosLotesPaletOUbicacion').hide(); //TICKET 23054734 y 23054750
		//$('#buscarOtrosLotesEnContenedor').hide();
		//$('#buscarOtrosLotesEnUbicacion').hide();
		$('#borrarLote').hide();
		
		$('#lote').attr('readonly','readonly');
		$('#lote').addClass('deshabilitado');
	}
	else {
		$('#tecladoLote').show();
		$('#buscarOtrosLotesPaletOUbicacion').show(); //TICKET 23054734 y 23054750
		//$('#buscarOtrosLotesEnContenedor').show();
		//$('#buscarOtrosLotesEnUbicacion').show();
		$('#borrarLote').show();
		
		$('#lote').removeAttr('readonly');
		$('#lote').removeClass('deshabilitado');
	}

}

function bloqueaCampoFechaCaducidad(valor) {

	if(valor) {
		$('#borrarFechaCaducidad').hide();
		$('#buscarOtrasFechasCaducidadPaletOUbicacion').hide();
		//$('#buscarOtrasFechasCaducidadEnContenedor').hide();
		//$('#buscarOtrasFechasCaducidadEnUbicacion').hide();
		
		$('#fechaCaducidad').attr('readonly','readonly');
		$('#fechaCaducidad').addClass('deshabilitado');
	}
	else {
		$('#borrarFechaCaducidad').show();
		$('#buscarOtrasFechasCaducidadPaletOUbicacion').show();
		//$('#buscarOtrasFechasCaducidadEnContenedor').show();
		//$('#buscarOtrasFechasCaducidadEnUbicacion').show();
		
		$('#fechaCaducidad').removeAttr('readonly');
		$('#fechaCaducidad').removeClass('deshabilitado');
	}

}

function bloqueaCampoCantidad(valor) {

	<?php if($SujetoTPDT || $pedirNumSerie) { ?>valor=true;<?php } ?>

	if(valor) {
	
		$('#iconoUnidades').hide();
		$('#borrarCantidad').hide();
		
		$('#cantidad').attr('readonly','readonly');
		$('#cantidad').addClass('deshabilitado');
	}
	else {
	
		$('#iconoUnidades').show();
		$('#borrarCantidad').show();
		
		$('#cantidad').removeAttr('readonly');
		$('#cantidad').removeClass('deshabilitado');
	}
	
	

}

<?php if( !$_POST['esCierre'] && !$ordenCerrada ) { ?>

	function comportamientoPantallaPaletCompleto(activacion,palet,cajas,cantidad,foco,ubicacion) {
	
		if(activacion) { //Autorellena el palet porque es completo y bloquea los campos
		
			<?php //if(!$muchasCombinacionesStock) { //Lo ponemos aqui, sino el borrado/desbloqueo de palet destino no funciona ?>
		
			console.log('Se graba palet destino: '+palet);

			$('#contenedorDestino').val( palet );
			
			if(ubicacion) $('#contenedorDestinoUbicacion').val( ubicacion );
			
			//console.log('funcion comportamientoPantallaPaletCompleto');
			////console.log('unidades: '+cantidad);
			////console.log('cajas: '+cajas);
			////console.log('esta activado el comportamiento por cajas: '+$('#cajas').val());
			
			<?php if(!$SujetoTPDT) { ?>
			
			if( $('#cajas').val()==1 && cajas>0) {
				if( !Number.isInteger(cajas) ) {
					cambiaUnidades();
					$('#cajas').val(0);
					$('#cantidad').val( cantidad );
				}
				else $('#cantidad').val( cajas );
			}
			else if( cantidad>0 ) $('#cantidad').val( cantidad );
			
			<?php } ?>
			
			if(pedirEanDun) bloqueaCampoEanDun(true);
			//console.log('### Traza 1');
			if(pedirLote) bloqueaCampoLote(true);
			if(pedirFechaCaducidad) bloqueaCampoFechaCaducidad(true);
			
			bloqueaCampoCantidad(true);
			bloqueaCampoPaletCaja(true);
			
			<?php if($gestionPickingCierrePalets) { ?>
			$('#pickingCerrarPalet').prop('checked',true);
			<?php } ?>
			

			
			//Repetimos este codigo aqui, que esta en el change de contenedorDestino, pero que genera un bucle si se intenta actualizar por el trigger
			$("#popupCargando").show();
			$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-info.php", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'palet' : $('#contenedorDestino').val() , 'ubicacion' : true })
			.done(function(data) {
			
				var valores=data.split('#');
				var tipoPaletGrabar;
				
				<?php if( $pedirContenedorDestinoUbicacion ) { ?>
				$('#contenedorDestinoUbicacion').val( valores[0] );
				<?php } ?>
				
				<?php if( $_SESSION['seleccionTipoPalet'] ) { ?>
				//2-1-2023 para sermasa, ponemos un tipo por defecto en el config
				if(valores[1]) tipoPaletGrabar=valores[1];
				else tipoPaletGrabar='<?php echo $paletPorDefectoTraspaso; ?>';
				$('#contenedorDestinoTipoPalet').val( tipoPaletGrabar );
				<?php } ?>
				
				$("#popupCargando").hide();
				
			});
			
			<?php //} // fin no automatizar auto-rellenado ?>
			
		}
		else { //Desbloquea los campos
		
			$('#contenedorDestino').val( palet );
	
			if(ubicacion) $('#contenedorDestinoUbicacion').val( ubicacion );
			
			if(pedirEanDun) bloqueaCampoEanDun(false);
			
			//console.log('### Traza 2');
			
			if(pedirLote && !$('#loteUnico').val() ) bloqueaCampoLote(false);
			if(pedirFechaCaducidad && !$('#fechaCaducidadUnica').val()) bloqueaCampoFechaCaducidad(false);
			
			bloqueaCampoCantidad(false);
			
			bloqueaCampoPaletCaja(false);
			
			
		}
		
		controlGraficoModoPreparacion();
		
		
		
		if(foco) $('#contenedorDestino').focus();
	
	}
	
	function controlGraficoModoPreparacion() {
	
		//$('.opModoEsquemaInterior').removeClass('colorP'); //Predeterminado si se queda
		$('.opModoEsquemaInterior').removeClass('colorC');
		$('.opModoEsquemaInterior').removeClass('colorPC');
		$('.opModoEsquemaInterior').removeClass('colorComp');
		
		$('#iconoModoAnimado').show();
	
		var coincidenciaCantidad=false;
		
		if( $('#cajas').val()==1 && $('#cantidad').val()=='<?php echo $cajasMostrar; ?>' ) coincidenciaCantidad=true;
		else if( $('#cantidad').val()=='<?php echo $cantidadMostrar; ?>' ) coincidenciaCantidad=true;
		
		<?php if($gestionPickingCierrePalets) { ?>
		if( $('#contenedor').val() && $('#contenedor').val()==$('#contenedorDestino').val() ) coincidenciaCantidad=true;
		<?php } ?>
		
		
		if( $('#contenedor').val()==$('#contenedorDestino').val() && coincidenciaCantidad ) { //Caso 1: contenedor completo
		
			console.log('Traza 2');
			console.log('coincidenciaCantidad: '+coincidenciaCantidad);
		
			$('#iconoModoAnimado').attr('src','<?php echo DIR_IMAGENES; ?>/op-modo-paletcompleto-animado.gif');
			$('.opModoEsquemaInterior').addClass('colorComp');
			$('#mensajePaletCompleto').show();
		}
		else {
		
			$('#mensajePaletCompleto').hide();
			
			if( typeof pedirCajaPaletDestino!=='undefined' && pedirCajaPaletDestino ) { //Casos con posible caja
			
				if( $('#cajaPaletDestino').val()!='' ) { //Si hay caja
				
					if( $('#contenedorDestino').val()=='' ) {
						$('#iconoModoAnimado').attr('src','<?php echo DIR_IMAGENES; ?>/op-modo-C-animado.gif');
						$('.opModoEsquemaInterior').addClass('colorC');
					}
					else {
						$('#iconoModoAnimado').attr('src','<?php echo DIR_IMAGENES; ?>/op-modo-PC-animado.gif');
						$('.opModoEsquemaInterior').addClass('colorPC');
					}
					
				}
				else {
				
					if( $('#contenedorDestino').val()!='' ) {
						$('#iconoModoAnimado').attr('src','<?php echo DIR_IMAGENES; ?>/op-modo-P-animado.gif');
						$('.opModoEsquemaInterior').addClass('colorP');
					}
					else {
						$('#iconoModoAnimado').attr('src','<?php echo DIR_IMAGENES; ?>/op-modo-PC-animado.gif');
						$('.opModoEsquemaInterior').addClass('colorPC');
					}
				}
				
			}
			else {
			
				<?php if( $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ] ) { ?>
				$('#iconoModoAnimado').attr('src','<?php echo DIR_IMAGENES; ?>/op-modo-<?php echo $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]; ?>-animado.gif');
				$('.opModoEsquemaInterior').addClass('color<?php echo $_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]; ?>');
				<?php } else { ?>
				//$('#iconoModoAnimado').hide();
				<?php } ?>
				
			}
		}
	
	}
	
	
	function procesamientoFinal(botonPulsado) {

	//console.log('### Traza 1 --> PROCESAMIENTO FINAL');
		
				$('#popupCargando').show();
				
				//Asignar php asi, genera un error de javascript, en el caso que no necesite pasar por aqui, pero queda el código incompleto
				<?php if($cantidadMostrar) { ?>
				var cantidadOriginal=<?php echo $cantidadMostrar; ?>;
				<?php } else { ?>
				var cantidadOriginal=0;
				<?php } ?>
				
				var valorCantidad;
				if( $('#cajas').val()==1 ) valorCantidad = parseFloat( $('#cantidad').val() * $('#EmbalajePrimarioCaja').val() );
				else valorCantidad = $('#cantidad').val();
				
				//console.log('cajas: '+$('#cajas').val());
				//console.log('valorCantidad: '+valorCantidad);
				
				//26-10-2022 check cerrar palet para picking transformaciones
				var pickingCerrarPalet;
				if( $('#pickingCerrarPalet').is(':checked') ) pickingCerrarPalet='S';
				
				//console.log('TRAZA 1');

				var parametros={ cantidad: valorCantidad, incidencia: $('#incidencia').val(), contenedor: $('#contenedor').val() , ubicacion : $('#ubicacion').val() , lote : $('#lote').val() , fechacaducidad : $('#fechaCaducidad').val() , numserie : <?php if($pedirNumSerie) { ?>$('#cadenaNumerosSerieLeidos').val()<?php } else { ?>''<?php } ?> , refcliente : '<?php echo $producto['RefCliente']; ?>' , contenedorDestino : $('#contenedorDestino').val() , confirmarCierreLinea : $('#confirmarCierreLinea').val() , cajaPaletDestino : $('#cajaPaletDestino').val() , observaciones : $('#observaciones').val() , contenedorDestinoUbicacion : $('#contenedorDestinoUbicacion').val() , 'pickingCerrarPalet' : pickingCerrarPalet , cajaPaletDestinoTipoCaja : $('#cajaPaletDestinoTipoCaja').val() , contenedorDestinoTipoPalet : $('#contenedorDestinoTipoPalet').val() , cadenaLecturasTTT : '<?php echo $cadenaLecturasTTT; ?>' , cadenaPrecintasTTT : '<?php echo $cadenaPrecintasTTT; ?>' };
				//console.log('PARAMETROS ENVIADOS A PREPARAR PALETS');
				//console.log(parametros);
				
				$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-S-preparar-palets.php<?php if($_GET['traza']) { ?>?traza=<?php echo $_GET['traza']; ?><?php } ?>", parametros )
				.done(function(data) {
				
					console.log('-----');
					console.log('TRAZA RESPUESTA PREPARACION');
					console.log(data);
					console.log('-----');
					
					<?php if($traza || $trazaSino) { ?>
						$('#popupCargando').hide();
						alert(data);
					<?php } else { ?>
					
					var resultado=data.split('#');
					
					//console.log(resultado);
					//console.log(resultado[0]);
					
					//Posibles resultados
					
					// 1-Error Mostrar mensaje popup resultado[1]
					// 2-Ok Inventario en linea
					// 3-Ok Mensaje popup resultado[2]
					// 4-Ok + Mensaje popup resultado[2] + Inventario en linea
					
					if(resultado[0]=='1') {
						$('#popupCargando').hide();
						alert('Error: '+resultado[1],null,'error');
					}
					else if(resultado[0]=='3') {
					
						$('#popupCargando').hide();
						alert(resultado[2],null,'informacion')
						.done(function(){
							procesaSiguienteLlamadaProceso(botonPulsado,cantidadOriginal,valorCantidad);
						});
						
					}
					else if(resultado[0]=='2') { //Error controlado, inventario en linea
					
						$('#stockCandidadProxium').val( resultado[2] );
						$('#stockBotonPulsado').val( botonPulsado );
						$('#stockCandidadOriginal').val( cantidadOriginal );
						$('#stockCandidadPreparada').val( valorCantidad );
						
						$('#stockPalet').html( $('#contenedor').val() );
						
						$('#popupStock').show();
						$('#popupStockContenido').show();
						
						stockInicializaUnidades(); //Para ajustar las etiquetas cajas/unidades a la pantalla actual
						
						$('#popupCargando').hide();
						
					}
					else if(resultado[0]=='4') { //Error controlado, inventario en linea
					
						$('#popupCargando').hide();
					
						//Es lo mismo de arriba (caso 2) pero condicionado a que se haga solo despues de cerrar el popup
						alert(resultado[2],null,'informacion')
						.done(function(){
							$('#stockCandidadProxium').val( resultado[3] );
							$('#stockBotonPulsado').val( botonPulsado );
							$('#stockCandidadOriginal').val( cantidadOriginal );
							$('#stockCandidadPreparada').val( valorCantidad );
							
							$('#stockPalet').html( $('#contenedor').val() );
							
							$('#popupStock').show();
							$('#popupStockContenido').show();
							
							stockInicializaUnidades(); //Para ajustar las etiquetas cajas/unidades a la pantalla actual
							
							$('#popupCargando').hide();
						});
						
					}
					else if(resultado[0]=='5' || resultado[0]=='6') {
					
						let codigosError=resultado[1];
						let mensaje='';
						
						if( resultado[0]=='5' ) mensaje='No han podido registrarse todas las lecturas.<br /><br />Los identificadores señalados en rojo no son válidos,<br>porque no están en stock o porque están en otra orden.';
						else if( resultado[0]=='6' ) mensaje='No han podido registrarse todas las lecturas.<br /><br />Los identificadores señalados en rojo no son válidos,<br>porque su régimen no coincide con el régimen de la orden.';
					
						console.log('ERROR EN LOS CODIGOS DE TRAZABILIDAD');
						console.log(codigosError);
						
						$('#popupCargando').hide();
						
						alert(mensaje,null,'error','Revisar IDs')
						.done(function(){
						
							$("#popupCargando").show();
							window.location='<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida-proceso.php?indice=<?php echo $indiceTTTPantallaTrazabilidadSalida; ?>&procedencia=preparacion&codigosError='+codigosError;
						
						});
					
					}
					else if(resultado[0]=='0') {
					
						procesaSiguienteLlamadaProceso(botonPulsado,cantidadOriginal,valorCantidad);
						
					}
					else { 
						$('#popupCargando').hide();
						alert('Error desconocido o tiempo de llamada a Proxium agotado',null,'error');
					}
					
					<?php } ?>
					
				});

		}
		
<?php } //Fin si no es pantalla de cierre, son funciones que llevan includes referidos a cosas de la preparacion, y causan error de javascript al no estar definidos. TICKET 25066120 ?>


<?php if($SujetoTPDT) { ?>

	function cajaPaletDestinoSSCC(valor){
	
		<?php if($paletsConSSCCObligatorio) { ?>
	
		if(valor) {

			let caja=$('#cajaPaletDestino').val();
			
			if(caja) {
			
				$("#popupCargando").show();
		
				$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-info-contenedor.php", { 'contenedor' : caja })
				.done(function(data) {
				
					console.log('Resultado:');
					console.log(data);
				
					$("#popupCargando").hide();
				
					const valores=data.split('#');
					let sscc=valores[8];
					let NumOrdenAgregacion=valores[9];
					
					if(!NumOrdenAgregacion || NumOrdenAgregacion=='<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>') {
					
						if(sscc) {
							$('#cajaPaletDestino').removeClass('campoError');
							$('#cajaPaletDestinoSSCC').val('(00)'+sscc);
							$('#cajaPaletDestinoSSCC').trigger('change');
						}
						else {
							alert('Error: la caja informada no es válida ya que no dispone de SSCC.',null,'error');
							$('#cajaPaletDestino').addClass('campoError');
							$('#cajaPaletDestinoSSCC').val('');
							$('#cajaPaletDestinoSSCC').trigger('change');
						}
						
					}
					else {
					
						alert('ERROR: La caja destino ya está en otra orden de preparación y no puede reutilizarse,<br>ya que la agregación de tabaco se comunica por orden.',null,'error');
						$('#cajaPaletDestino').addClass('campoError');
						$('#cajaPaletDestinoSSCC').val('');
						$('#cajaPaletDestinoSSCC').trigger('change');
					
					}
				
				});
			
			}
			else {
				$('#cajaPaletDestinoSSCC').val('');
				$('#cajaPaletDestinoSSCC').trigger('change');
			}
			
		}
		else {
			$('#cajaPaletDestinoSSCC').val('');
			$('#cajaPaletDestinoSSCC').trigger('change');
		}

		<?php } ?>
		
	}

	function contenedorDestinoSSCC(valor){
	
		<?php if($paletsConSSCCObligatorio) { ?>
	
		if(valor) {
	
			let palet=$('#contenedorDestino').val();
			
			if(palet) {
			
				$("#popupCargando").show();
		
				$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-info-contenedor.php", { 'contenedor' : palet })
				.done(function(data) {
				
					console.log('Resultado:');
					console.log(data);
				
					$("#popupCargando").hide();
				
					const valores=data.split('#');
					let sscc=valores[8];
					let NumOrdenAgregacion=valores[9];
					
					console.log('INFO CONTENEDOR');
					console.log('sscc: '+sscc);
					console.log('NumOrdenAgregacion: '+NumOrdenAgregacion);
					
					if(!NumOrdenAgregacion || NumOrdenAgregacion=='<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>') {
					
						if(sscc) {
							$('#contenedorDestino').removeClass('campoError');
							$('#contenedorDestinoSSCC').val('(00)'+sscc);
							$('#contenedorDestinoSSCC').trigger('change');
						}
						else {
							alert('Error: el palet informado no es válido ya que no dispone de SSCC.',null,'error');
							$('#contenedorDestino').addClass('campoError');
							$('#contenedorDestinoSSCC').val('');
							$('#contenedorDestinoSSCC').trigger('change');
						}
						
					}
					else {
					
						alert('ERROR: El palet destino ya está en otra orden de preparación y no puede reutilizarse,<br>ya que la agregación de tabaco se comunica por orden.',null,'error');
						$('#contenedorDestino').addClass('campoError');
						$('#contenedorDestinoSSCC').val('');
						$('#contenedorDestinoSSCC').trigger('change');
					
					}
				
				});
			
			}
			else {
				$('#contenedorDestinoSSCC').val('');
				$('#contenedorDestinoSSCC').trigger('change');
			}
			
		}
		else {
			$('#contenedorDestinoSSCC').val('');
			$('#contenedorDestinoSSCC').trigger('change');
		}

		<?php } ?>
		
	}
	
	function actualizarDatosParaTrazabilidad(campo,valor) {
			
		$.post( '<?php echo $rutaHtml; ?>/contenidos/trazabilidad-orden-preparacion-actualizar-datos.php' , { 'campo' : campo , 'valor' : valor , 'session_id' : '<?php echo session_id(); ?>' });
		
	}
	
<?php } ?>

function preProcesamientoFinal(botonPulsado) {

	

	if( estanTodosVacios() ) {
	
		console.log('estanTodosVacios');
	
		procesaSiguienteLlamadaProceso(botonPulsado,0,0);

	}
	else {
	
		var validaCamposValor=validaCampos();
	
		console.log('validaCamposValor:'+validaCamposValor);
	
		if(<?php if($lecturaCajaPalet) { ?>validaCajaPalet() &&<?php } ?> validaCamposValor ) {
	
			console.log('hay valores y se ha pasado la validación');
		
			<?php if($Controlcaducadosycortosdefecha) { ?>
			if($('#FechaCaducidadEstado').val()=='CADUCADO') {
				alert('ERROR: No está permitido servir producto caducado.',null,'error')
				.done( function() {
					$('#fechaCaducidad').addClass('campoError');
					$('#fechaCaducidad').focus();
				});
			}
			else if($('#FechaCaducidadEstado').val()=='PROXIMOACADUCAR') {
				confirm('ATENCIÓN: El producto seleccionado para servir está próximo a su fecha de caducidad.<br><br>¿Deseas prepararlo igualmente?','advertencia')
				.done( function() {
					procesamientoFinal(botonPulsado);
				})
				.fail(function(){
					$('#fechaCaducidad').addClass('campoError');
					$('#fechaCaducidad').focus();
				});
			}
			else {
				procesamientoFinal(botonPulsado);
			}
			<?php } else {?>
			
			procesamientoFinal(botonPulsado);
			
			<?php } ?>
		}
		else $('#popupCargando').hide();
		
	}

}




$(document).ready(function() {

	<?php if( $SujetoTPDT ) { ?>
	
		
	
		<?php foreach($_SESSION['orden']['TTT']['datosPantalla'] as $campo=>$valor) { //Rellenado de los campos previamente informados si se ha saltado a la pantalla de TTT?>
		$('#<?php echo $campo; ?>').val('<?php echo $valor; ?>');
		<?php } ?>
		
		<?php if($_SESSION['orden']['TTT']['datosPantalla']['eanDun']) { ?>
		$('#eanDunCorrecto').val(1);
		<?php } ?>

		<?php if($cantidadLecturasTTT) { ?>$('#cantidad').val(<?php echo $cantidadLecturasTTT; ?>);<?php } ?>
	
		//cajaPaletDestinoSSCC(true);
		//contenedorDestinoSSCC(true);
		
		$('#botonTrazabilidad').on('click',function(){
		
			<?php if($paletsConSSCCObligatorio) { ?>
			
			if( !$('#cajaPaletDestinoSSCC').val() && !$('#contenedorDestinoSSCC').val() ) {
				alert('Para informar los ids de tabaco en la preparación<br>antes debes informar destino que disponga de SSCC.',null,'error')
				.done(function(){
					//$('#cajaPaletDestino').addClass('campoError');
					//$('#cajaPaletDestino').focus();
				});
			}
			else {
			
				$("#popupCargando").show();
				window.location='<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida-proceso.php?indice=<?php echo $indiceTTTPantallaTrazabilidadSalida; ?>&procedencia=preparacion';
			
			}
			
			<?php } else { ?>
		
			$("#popupCargando").show();
			window.location='<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida-proceso.php?indice=<?php echo $indiceTTTPantallaTrazabilidadSalida; ?>&procedencia=preparacion';
			
			<?php } ?>
			
		});
		
		$('.campo.campoOrdenPreparacion').on('change',function(e){
					
			e.preventDefault();
		
			let campo=$(this).attr('id');
			let valor=$(this).val();
			
			console.log('campo cambiado');
			console.log('campo: '+campo+' / valor: '+valor);
			
			actualizarDatosParaTrazabilidad(campo,valor);
			
			//$.post( '<?php echo $rutaHtml; ?>/contenidos/trazabilidad-orden-preparacion-actualizar-datos.php' , { 'campo' : campo , 'valor' : valor , 'session_id' : '<?php echo session_id(); ?>' });
		
		});

	<?php } ?>
	
	$(document).on('click','#observacionesFacturacion',function(){
		
		var idCampo=$(this).attr('id');
		
		$('#tecladoMultilinea').show();
		$('#valorTecladoMultilinea').val( $(this).val() );
		$('#enterTecladoMultilinea').attr('campoValor', idCampo );
		$('#enterTecladoMultilinea').attr('forzarEnter','no');
		
	});
	
	<?php if($_SESSION['orden']['Estado']=='Iniciada' && $producto && !$producto['Error']) { ?>
	
	
	
		//Construcción inicial
		inicializaSecuencia();
		focoSiguiente('');
		
		
		
		$('.continuar').on("click",function(e){
			
			e.preventDefault();
			
			var botonPulsado=$(this).attr('id');
			
			preProcesamientoFinal(botonPulsado);
			
			/*
			
			
			
			if( estanTodosVacios() ) {
			
				procesaSiguienteLlamadaProceso(botonPulsado,0,0);

			}
			else if(<?php if($lecturaCajaPalet) { ?>validaCajaPalet() &&<?php } ?> validaCampos() ) {
			
				<?php if($Controlcaducadosycortosdefecha) { ?>
				if($('#FechaCaducidadEstado').val()=='CADUCADO') {
					alert('ERROR: No está permitido servir producto caducado.',null,'error')
					.done( function() {
						$('#fechaCaducidad').addClass('campoError');
						$('#fechaCaducidad').focus();
					});
				}
				else if($('#FechaCaducidadEstado').val()=='PROXIMOACADUCAR') {
					confirm('ATENCIÓN: El producto seleccionado para servir está próximo a su fecha de caducidad.<br><br>¿Deseas prepararlo igualmente?','advertencia')
					.done( function() {
						procesamientoFinal(botonPulsado);
					})
					.fail(function(){
						$('#fechaCaducidad').addClass('campoError');
						$('#fechaCaducidad').focus();
					});
				}
				else {
					procesamientoFinal(botonPulsado);
				}
				<?php } else {?>
			
			
				procesamientoFinal(botonPulsado);
				
				<?php } ?>
			
				
				
			}
			else $('#popupCargando').hide();
			
			*/
			
		});
	
	
	
			
	
			
	

			/////////////////////////////////////////////////////Gestion iconos campo Caja Destino
			
			<?php if( $pedirCajaPaletDestino ) { ?>
			
			$(document).on('change','#cajaPaletDestino',function(e){
				
				e.preventDefault();
				
				<?php if( $_SESSION['seleccionTipoPalet'] ) { ?>
				
				$("#popupCargando").show();
				
				$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-info.php", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'palet' : $('#cajaPaletDestino').val() , 'ubicacion' : true })
				.done(function(data) {
				
					var valores=data.split('#');
					
					//console.log('Despues de cambiar el num de caja, se rellena el tipo de caja. Traza 2: '+valores[1]);
					//console.log(data);
					
					$('#cajaPaletDestinoTipoCaja').val( valores[1] );
					$("#popupCargando").hide();
					
				});
				
				<?php } ?>

				<?php if( $pedirContenedorDestino ) { //Buscamos si hay palet en nivel superior para ponerlo automaticamente ?>
				
				evaluaAutomatizacionCajasPalets(); //Este método está definido en "orden-preparacion-palets-listado.php"
				
				<?php } ?>
				
				controlGraficoModoPreparacion();
				
				cambiaFocoSecuenciaAutomatica();
				
				<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
				cajaPaletDestinoSSCC(true);
				<?php } ?>
				
				reiniciaVariables();
				
			});
			
			$(document).on('click','#tecladoCajaPaletDestino',function(){
				$('#teclado').show();
				$('#valor').val( $('#cajaPaletDestino').val() );
				$('#valorOculto').val( $('#cajaPaletDestino').val() );
				$('#enter').attr('campoValor','cajaPaletDestino');
				$('#enter').attr('forzarEnter','si');
			});
			
			$(document).on('click','#borrarCajaPaletDestino',function(){
				$('#cajaPaletDestino').val('');
				controlGraficoModoPreparacion();
				$('#cajaPaletDestino').focus();
				
				<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
				$('#cajaPaletDestinoSSCC').val('');
				<?php } ?>
			});
			
			$(document).on('change','#cajaPaletDestinoTipoCaja',function(e){

				cambiaFocoSecuenciaAutomatica();
			
			});
			
			<?php } ?>
			


			/////////////////////////////////////////////////////Gestion iconos campo Contenedor 

			$(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('change','#contenedor',function(e){
				
				//console.log('Id palet origen introducido');
				
				e.preventDefault();
				
				
				
				//14-09-2023
				<?php if($pedirContenedorTambienUbicacion) { ?>
				if( $(this).val()=='-' ) bloqueaCampoUbicacion(false);
				<?php } ?>
				
				<?php if( $pedirContenedorDestino ) { ?>
				
					if( !$('#paletSeleccionadoFijado').val() ) { //Solo comprobacion palet completo si NO hay palet fijado TAREA 69599
				
						//console.log('Proceso con la obligación de introducir palet destino');
					
						if( $('#contenedor').val()==$('#paletPropuestoEnLineaActual').val() && $('#paletPropuestoEnLineaActualCompleto').val()=='S' ) { //Estamos eligiendo el mismo palet propuesto y es completo
						
							//console.log('Estamos eligiendo el mismo palet propuesto y es completo');
							
							comportamientoPantallaPaletCompleto(true,$('#contenedor').val(),'<?php echo $cajasMostrar; ?>','<?php echo $cantidadMostrar; ?>',false);
							
						}
						else {  //Comprobamos si es otro palet completo de la misma OP
							
							//console.log('Comprobamos si es otro palet completo de la misma OP');
							
							$("#popupCargando").show();
							
							////console.log('palet: '+$('#contenedor').val());
							////console.log('cantidad: <?php echo $cantidadMostrar; ?>');
							////console.log('TotalCantidad: <?php echo $producto['TotalCantidad']; ?>');
							
							$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-comprobar-completo.php" , { 'palet' : $('#contenedor').val() , 'cantidad' : '<?php echo $cantidadMostrar; ?>' , 'cantidadTotal' : '<?php echo $producto['TotalCantidad']; ?>' } )
							.done(function(data) {
								
								//console.log('---------');
								//console.log('orden-preparacion-palet-comprobar-completo.php');
								//console.log('palet: '+$('#contenedor').val());
								//console.log('cantidad: <?php echo $cantidadMostrar; ?>');
								//console.log('cantidadTotal: <?php echo $producto['TotalCantidad']; ?>');
								//console.log('RESULTADO: '+data);
								//console.log('---------');
								
								if(data!='N') {
								
									var resultado=data.split(';');
									var codigo=resultado[0];
									
									if(codigo=='<?php echo $producto['Codigo']; ?>') {
										
										comportamientoPantallaPaletCompleto(true,$('#contenedor').val(),resultado[1],resultado[2],false);
										
									}
								}
								
								$("#popupCargando").hide();
								
							});
							
						
						}
					
					}
					
				
				<?php } //Fin comprobaciones COMPLETO si hay que informar palet destino ?>
				
				
				
				controlGraficoModoPreparacion();
				
				cambiaFocoSecuenciaAutomatica();
				
				<?php
				// ATENCIÓN PARA ACTUALIZACIÓN VCD LOGISTICA
				// Se desbordaban las llamadas en artículos que tenían cientos de contenedores y lotes distintos, por lo que se desactiva en proxium este listado
				// Posteriormente, en este script se hace que si el usuario informa exactamente el contenedor propuesto, el lote se ponga solo. De esta forma:
				?>
				<?php if($especialVCDnoBuscarLote) { ?>
				
					if( $('#contenedor').val()=='<?php echo $producto['Contenedor']; ?>' ) { //Si el contenedor informado es justo el mismo que el propuesto, ponemos el lote a piñón
						<?php
						foreach($datos as $dato) {
							if($dato['Codigo']=='LT') $loteAutomatico=$dato['Valor'];
							if($dato['Codigo']=='FCAD') $fechaCaducidadAutomatica=$dato['Valor'];
						}
						?>
						var foco='lote';
						$('#lote').val('<?php echo $loteAutomatico; ?>');
						$('#fechaCaducidad').val('<?php echo fechaNacional($fechaCaducidadAutomatica); ?>');
						cambiaFotoSecuenciaAutomatica();
					}
				
				<?php } else { ?>

					<?php if($muchasCombinacionesStock) { ?>
					
						//console.log('Traza. Tras indicar contenedor origen, comprobamos combinaciones de lotes y fechas, a traves del nuevo metodo para muchasCombinacionesStock');
					
						if($(this).val()!='') {
							comprobarDatosUnicosMuchasCombinacionesStock();
						}
					
					<?php } else { ?>
					
						//console.log('Traza. Tras indicar contenedor origen, el producto exige lote, cargamos el bloque ListaContUbiLot');
	
						if(pedirEanDun && $('#contenedor').val()==$('#paletPropuestoEnLineaActual').val()) {
						
							//01-03-2023 comentamos esto, porque solo debería activarse si es completo
							////console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>> Traza bloqueos <<<<<<<<<<<<<<<<<<<<<<<');
							//bloqueaCampoEanDun(true);
						
						}
	
						if(pedirLote) {
						
							$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-lotes-producto-contenedor-datosdirectos.php" , { 'contenedor' : $('#contenedor').val() , 'pedirFechaCaducidad' : pedirFechaCaducidad , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
							.done(function(data) {
							
								//console.log('### Automatización lote: '+data);
							
								$("#popupBusquedaContenido").html(data); //Si no cargamos el contenido, no se ejecuta el javascript del segundo script
								
								if( data.substring(0,5)=='unico') {
									cambiaFocoSecuenciaAutomatica();
								}
								
							});
							
						}
						else if(pedirFechaCaducidad) {
						
							$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-fechascaducidad-producto-contenedor-datosdirectos.php" , { 'contenedor' : $('#contenedor').val() , 'lote' : $('#lote').val() , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>'} )
							.done(function(data) {
							
								$("#popupBusquedaContenido").html(data);
								
								if( data.substring(0,5)=='unico') {
									cambiaFocoSecuenciaAutomatica();
								}
							});
						}
						else if(mostrarPaisOrigen) {
							
							$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-paisesOrigen-producto-contenedor-datosdirectos.php" , { 'contenedor' : $('#contenedor').val() , 'lote' : $('#lote').val() , 'fechaCaducidad' : $('#fechaCaducidad').val() , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>'} )
							.done(function(data) {
							
								$("#popupBusquedaContenido").html(data);
								
								if( data.substring(0,5)=='unico') {
									cambiaFocoSecuenciaAutomatica();
								}
							});
							
						}
						
					<?php } //Fin condicion auto-rellenado si es o no muchascombinacionessotck ?>
				
				<?php } // fin else no es VCD ?>
				
				reiniciaVariables();
				
			});
			
			$(document).on('click','#borrarContenedor',function(){
			
				$('#contenedor').val('');
				$('#contenedor').focus();
				
				if(pedirLote) $('#lote').val('');
				if(pedirFechaCaducidad) $('#fechaCaducidad').val('');
				
				<?php if($pedirContenedorDestino) { ?>
				comportamientoPantallaPaletCompleto(false,$('#paletSeleccionado').val(),'','',false);
				<?php } ?>
				
				//14-09-2023
				<?php if($pedirContenedorTambienUbicacion) { ?>
				bloqueaCampoUbicacion(true);
				<?php } ?>

				bloqueaCampoLote(false);
				bloqueaCampoFechaCaducidad(false);
				
			});
			
			$(document).on('click','#buscarContenedor',function(){
				
				<?php if($muchasCombinacionesStock) { ?>
				
					popupMuchasCombinacionesStock(null,false);
				
				<?php } else { ?>
				
					$("#popupCargando").show();
					
					$("#popupBusquedaContenido").hide();
					
					$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-contenedores-producto-directo-desde-op.php?traza=<?php echo $_GET['traza']; ?>&mostraridioma=<?php echo $mostrarIdioma; ?>&pedirlote=<?php echo $pedirLote; ?>&pedirfechacaducidad=<?php echo $pedirFechaCaducidad; ?>&mostrarprecinta=<?php echo $mostrarPrecinta; ?>" , { 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'gestionPaletizado' : '<?php echo $_SESSION['gestionPaletizado']; ?>' ,'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
					
					.done(function(data) {
							
						$("#popupBusquedaContenido").html(data);
						$("#popupBusqueda").show();
						$("#popupBusquedaContenido").show();
							
						$("#popupCargando").hide();
							
					});
				
				<?php } ?>
				
			});
			
			
			
			
			
			/// Gestion iconos contenedor destino (contenedores completos)
			
			$(document).on('click','#tecladoContenedorDestino',function(){
			
				$('#teclado').show();
				$('#valor').val( $('#contenedorDestino').val() );
				$('#valorOculto').val( $('#contenedorDestino').val() );
				$('#enter').attr('campoValor','contenedorDestino');
				$('#enter').attr('forzarEnter','si');
				
			});
			
			$(document).on('click','#borrarContenedorDestino',function(){
			
				<?php if( $_SESSION['seleccionTipoPalet'] ) { ?>
				$('#contenedorDestinoTipoPalet').val('');
				<?php } ?>
				
				<?php if($gestionPickingCierrePalets) { ?>
				$('#pickingCerrarPalet').prop('checked',false);
				<?php } ?>
				
				<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
				$('#contenedorDestinoSSCC').val('');
				<?php } ?>
			
				comportamientoPantallaPaletCompleto(false,'','','',true);

			});
			

			
			$(document).on('change','#contenedorDestino',function(e){
			
				e.preventDefault();
				
				<?php if( $pedirContenedorDestinoUbicacion || $_SESSION['seleccionTipoPalet'] ) { ?>
				//12-09-2022 añadimos aqui la comprobación, al cambiar el contenedor destino, de su ubicacion
				
					$("#popupCargando").show();
					
					$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-info.php", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'palet' : $('#contenedorDestino').val() , 'ubicacion' : true })
					.done(function(data) {
					
						console.log('TRAZA TIPO PALET DESTINO');
						console.log(data);
					
						var valores=data.split('#');
						var tipoPaletGrabar;
						
						<?php if( $pedirContenedorDestinoUbicacion ) { ?>
						$('#contenedorDestinoUbicacion').val( valores[0] );
						<?php } ?>
						
						<?php if( $_SESSION['seleccionTipoPalet'] ) { ?>
						//2-1-2023 para sermasa, ponemos un tipo por defecto en el config
						if(valores[1]) tipoPaletGrabar=valores[1];
						else tipoPaletGrabar='<?php echo $paletPorDefectoTraspaso; ?>';
						$('#contenedorDestinoTipoPalet').val( tipoPaletGrabar );
						<?php } ?>
						
						$("#popupCargando").hide();
						
					});
				
				<?php } ?>
				
				compruebaValidezPosteriorContenedorCompleto();
				
				cambiaFocoSecuenciaAutomatica();
				
				<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
				contenedorDestinoSSCC(true);
				<?php } ?>
				
				reiniciaVariables();
				
			});
			
			
			
			$(document).on('change','#contenedorDestinoTipoPalet',function(e){
			
				cambiaFocoSecuenciaAutomatica();
			
			});
			
			
			
			<?php if($pedirContenedorDestinoUbicacion) { ?>
			
			/////////////////////////////////////////////////////Gestion iconos campo Ubicacion contenedor destino
			
			$(document).on('click','#tecladoContenedorDestinoUbicacion',function(){
			
				$('#teclado').show();
				$('#valor').val( $('#contenedorDestinoUbicacion').val() );
				$('#valorOculto').val( $('#contenedorDestinoUbicacion').val() );
				$('#enter').attr('campoValor','contenedorDestinoUbicacion');
				$('#enter').attr('forzarEnter','si');
				
			});
			
			$(document).on('click','#borrarContenedorDestinoUbicacion',function(){
			
				$('#contenedorDestinoUbicacion').val('');
				
				<?php if($SujetoTPDT && $paletsConSSCCObligatorio) { ?>
				contenedorDestinoSSCC(false);
				<?php } ?>
				
			});
			
			$(document).on('change','#contenedorDestinoUbicacion',function(e){
			
				cambiaFocoSecuenciaAutomatica();
				
				reiniciaVariables();
				
			});
			
			$('#botonPlayasDestinoUbicacion').on("click",function(e){
				e.preventDefault();
				$('#popupPlayas').show();
			});
			
			$('.selectorPlaya').on("click",function(e){
				
				e.preventDefault();
				
				let playa=$(this).attr('id');
				
				$('#popupPlayas').hide();
				$('#contenedorDestinoUbicacion').val( playa );
				$('#contenedorDestinoUbicacion').trigger('change');
				
				<?php if($SujetoTPDT) { ?>
				actualizarDatosParaTrazabilidad('contenedorDestinoUbicacion',playa);
				<?php } ?>

			});
			
			<?php } ?>
			
			
			//Punto control playas
			
			<?php if($pedirUbicacion || $pedirContenedorTambienUbicacion) { ?>
			
			/////////////////////////////////////////////////////Gestion iconos campo Ubicacion

			$('#botonPlayas').on("click",function(e){
				e.preventDefault();
				$('#popupPlayas').show();
			});

			$('.selectorPlaya').on("click",function(e){
				
				e.preventDefault();
				let playa=$(this).attr('id');
				
				$('#popupPlayas').hide();
				$("#ubicacion").val( playa );
				
				$("#segundaLecturaUbicacionDefinitiva").val( playa );
				
				$('#segundaLecturaUbicacionDefinitiva').trigger('change');
				
				<?php if($SujetoTPDT) { ?>
				actualizarDatosParaTrazabilidad('ubicacion',playa);
				<?php } ?>
				
			});

			$('#segundaLecturaUbicacion').on('change',function(e){
	
				e.preventDefault();
			
				var valor=$(this).val();
			
				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;
				
				$('#ubicacion').val( $('#ubicacion').val()+valor );
				$('#segundaLecturaUbicacionDefinitiva').val( $('#ubicacion').val() );
				
				cargaUbicacion();
			
			});

			$('#segundaLecturaUbicacionDefinitiva').on('change',function(e){
				$('#ubicacion').val( $('#segundaLecturaUbicacionDefinitiva').val() );
				cargaUbicacion();
			});

			$(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('change','#ubicacion',function(e){
			
				e.preventDefault();
				
				<?php if($_SESSION['dobleLecturaUbicacion']) { ?>
				
				$('#teclado').show();
				$('#valor').val('');
				$('#valorOculto').val('');
				$('#enter').attr('campoValor','segundaLecturaUbicacion');
				$('#enter').attr('forzarEnter','si');
				
				<?php } else { ?>
			
				$('#segundaLecturaUbicacionDefinitiva').val( $('#ubicacion').val() );
				cargaUbicacion();
				
				<?php } ?>
				
			});
			
			$(document).on('click','#borrarUbicacion',function(){
			
				$("#ubicacion").val('');
				
				$('#segundaLecturaUbicacion').val('');
				$('#segundaLecturaUbicacionDefinitiva').val('');
				//console.log('### Traza 4');
				bloqueaCampoLote(false);
				bloqueaCampoFechaCaducidad(false);
				
				$("#ubicacion").focus();
				
			});
			
			<?php } //Fin si pedir ubicacion ?>
			
			
			
			
			
			/////////////////////////////////////////////////////Gestion iconos campo Ean/Dun
			
			$(document).on('change','#eanDun',function(e){
				
				e.preventDefault();
				
				$('#eanDun').removeClass('campoError');
				$('#eanDunCorrecto').val(0);
				
				let validar=true;
					
				<?php if($permitirEANMaestro) { ?>
				
					if($('#eanDun').val()=='<?php echo $eanDunMaestro; ?>') {
						$('#eanDunCorrecto').val(1);
						validar=false;
						cambiaFocoSecuenciaAutomatica();
					}
				
				<?php } ?>
				
				if(validar) {
					
					$("#popupCargando").show();
					
					$.post( "<?php echo $rutaHtml; ?>/contenidos/leer-codigo-barras-coincidencia-producto.php<?php if($traza || $trazaSino) { ?>?traza=si<?php } ?>" , { codigo : $('#eanDun').val() , articulo : '<?php echo $producto['Codigo']; ?>' , clientePropietario : '<?php if($_SESSION['gestion']=='PUB' || $_SESSION['gestion']=='PUBPRI') echo $_SESSION['orden']['Cliente']; ?>' , empresaOrden : '<?php echo $_SESSION['orden']['Empresa']; ?>' } )
					.done(function(data) {
					
						//alert(data);
					
						$("#popupCargando").hide();
						
						var resultado=data.split("#");
						var codigo=resultado[0];
						var tipo=resultado[1];
						
						if(codigo=='<?php echo $producto['Codigo']; ?>') {
						
							////console.log('deteccion tipo codigo eandun leido: '+tipo);
						
							<?php if($_SESSION['verEnCajas']=='S') { ?>
							
							//Cambiamos el campo de control de unidades al contrario de lo que toca, para que al alternar ponga el correcto
							if(tipo=='EAN' && $('#cajas').val()==1 ) {
								$('#cajas').val(1);
								cambiaUnidades();
							}
							else if($('#cajas').val()==0) {
								$('#cajas').val(0);
								cambiaUnidades();
							}
							
							////console.log('deteccion tipo codigo eandun leido.cajas: '+$('#cajas').val());
							
							
							
							<?php } ?>
							
							//Ponemos el valor del campo oculto a Ok para la ultima validación del play
							$('#eanDunCorrecto').val(1);
							
							<?php if($saltarDialogosConfirmacion && $SujetoTPDT) { //25-05-2026 TAREA INTERNA 74922  ?>
						
								$('#botonTrazabilidad').trigger('click');
							
							<?php } else { ?>
							
								cambiaFocoSecuenciaAutomatica();
							
							<?php } ?>
							
						} else {
							$('#eanDun').addClass('campoError');
							alert('Error 2: este código EAN/DUN no pertenece a este producto.',$('#eanDun'));
							$('#eanDun').val('');
						}
						
					});
				
				}
				
			});
			
			$(document).on('click','#tecladoEanDun',function(){
				$('#teclado').show();
				$('#valor').val( $('#eanDun').val() );
				$('#valorOculto').val( $('#eanDun').val() );
				$('#enter').attr('campoValor','eanDun');
				$('#enter').attr('forzarEnter','si');
				
			});
			
			$(document).on('click','#borrarEanDun',function(){
				//$("#ubicacion").val('');
				$("#eanDun").val('');
				$('#eanDunCorrecto').val(0)
				$("#eanDun").focus();		
			});
			
			
			/////////////////////////////////////////////////////Gestion iconos 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(e){
			
				e.preventDefault();
				
				<?php if($muchasCombinacionesStock) { ?>
					if($(this).val()!='') {
						comprobarDatosUnicosMuchasCombinacionesStock();
					}
				<?php } ?>
				
				cambiaFocoSecuenciaAutomatica();
				
			});
			
			
			//SE unifica el 23-10-2023 por TICKET 23054734	 y 23054750		
			$(document).on('click','#buscarOtrosLotesPaletOUbicacion',function(){
			
				//console.log('buscarOtrosLotesPaletOUbicacion');
				//console.log('buscarOtrosLotesPaletOUbicacion - ubicacion: '+$('#ubicacion').val());
				//console.log('buscarOtrosLotesPaletOUbicacion - contenedor: '+$('#contenedor').val());
			
				if( $('#ubicacion').val()!='' && $('#ubicacion').val()!==undefined ) {
				
					//console.log('buscarOtrosLotesPaletOUbicacion -> busca por ubicacion');
				
					$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-lotes-producto-ubicacion-datosdirectos.php" , { 'ubicacion' : $('#ubicacion').val() , 'pedirFechaCaducidad' : pedirFechaCaducidad , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
					.done(function(data) {
						$("#popupBusquedaContenido").html(data);
						$("#popupBusqueda").show();
						$("#popupBusquedaContenido").show();
					});
				}
				else if( $('#contenedor').val()!='' && $('#contenedor').val()!==undefined ) {
				
					//console.log('buscarOtrosLotesPaletOUbicacion -> busca por contenedor');

					$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-lotes-producto-contenedor-datosdirectos.php" , { 'contenedor' : $('#contenedor').val() , 'pedirFechaCaducidad' : pedirFechaCaducidad , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
					.done(function(data) {
						$("#popupBusquedaContenido").html(data);
						$("#popupBusqueda").show();
						$("#popupBusquedaContenido").show();
					});
					
				}
				else {
					alert("Especifica el palet o la ubicación para informar.",null,'advertencia');
				}
			
			});
			
			
			
			$(document).on('click','#borrarLote',function(){
				$("#lote").val('');
				$("#lote").focus();		
			});
	
	
			/////////////////////////////////////////////////////Gestion iconos campo Fecha Caducidad
	
			$(document).on('click','#fechaCaducidad',function(){
				
				if( ! $(this).hasClass('deshabilitado') ) {
					$('#calendario').show();
					$('#valorCalendario').val( $(this).val() );
					deconstruyeFecha();
					$('#enterCalendario').attr('campoValor', 'fechaCaducidad' );
					$('#enterCalendario').attr('forzarEnter','si');
				}
				
			});
			
			$(document).on('change','#fechaCaducidad',function(e){
			
				e.preventDefault();
				
				<?php if($muchasCombinacionesStock) { ?>
					if($(this).val()!='') {
						comprobarDatosUnicosMuchasCombinacionesStock();
					}
				<?php } ?>
				
				cambiaFocoSecuenciaAutomatica();
				
			});
			
			$(document).on('click','#borrarFechaCaducidad',function(){
				$("#fechaCaducidad").val('');
				$("#fechaCaducidad").focus();		
			});
			
			
			//SE unifica el 23-10-2023 por TICKET 23054734 y 23054750		
			$(document).on('click','#buscarOtrasFechasCaducidadPaletOUbicacion',function(){
			
				//console.log('buscarOtrasFechasCaducidadPaletOUbicacion');
				//console.log('buscarOtrasFechasCaducidadPaletOUbicacion - ubicacion: '+$('#ubicacion').val());
				//console.log('buscarOtrasFechasCaducidadPaletOUbicacion - contenedor: '+$('#contenedor').val());
			
				if( $('#ubicacion').val()!='' && $('#ubicacion').val()!==undefined ) {
				
					//console.log('buscarOtrasFechasCaducidadPaletOUbicacion -> busca por ubicacion');
				
					$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-fechascaducidad-producto-ubicacion-datosdirectos.php" , { 'ubicacion' : $('#ubicacion').val() , 'lote' : $('#lote').val() , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>'} )
					.done(function(data) {
						$("#popupBusquedaContenido").html(data);
						$("#popupBusqueda").show();
						$("#popupBusquedaContenido").show();
					});
					
				}
				else if( $('#contenedor').val()!='' && $('#contenedor').val()!==undefined ) {
				
					//console.log('buscarOtrasFechasCaducidadPaletOUbicacion -> busca por contenedor');

					$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-fechascaducidad-producto-contenedor-datosdirectos.php" , { 'contenedor' : $('#contenedor').val() , 'lote' : $('#lote').val() , 'combinacionesUbicacionesContenedores' : '<?php echo $combinacionesUbicacionesContenedores_serializadas; ?>' , 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
					.done(function(data) {
						$("#popupBusquedaContenido").html(data);
						$("#popupBusqueda").show();
						$("#popupBusquedaContenido").show();
					});
					
				}
				else {
					alert("Especifica el palet o la ubicación para informar.",null,'advertencia');
				}
			
			
			});
			
			
			
			
			/////////////////////////////////////////////////////Gestion iconos campo Precinta
	

			
			/////////////////////////////////////////////////////Gestion iconos campo Numeros de Serie
			
			
			$('.verNumerosSerie').on('click',function(){
				$.post('<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-numeros-serie.php' , { 'numeros' : $(this).attr('numeros') , 'mostrarUbicacion' : 'si' , 'mostrarContenedor' : 'si' , <?php if($formatoPalet) { ?>'filtrarNumeroContenedor' : '<?php echo $paletMostrar; ?>' <?php } ?> })
				.done(function(data) {
					$('#popupNumerosSerieContenido').html(data);
					$('#popupNumerosSerie').show();
					$('#popupNumerosSerieContenido').show();
				});
			});
			
			$(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 contenedor=$('#contenedor').val();
				var contador=campo.attr('contador');
			
				if(campo.val()=='-') {
				
					if($('#cadenaNumerosSerieLeidos').val()=='') {
						$('#cadenaNumerosSerieLeidos').val('-');
						$('#cantidad').removeAttr('readonly');
						$('#cantidad').focus();
					}
					else {
						campo.val('');
						alert('Ya no puedes preparar sin Número de Serie en esta secuencia.',$('#lecturaNS-'+contador),'error');
					}
				}
				else {
			
					if(false) {
					}
					<?php if( is_array($LongitudNS) && count($LongitudNS)>0 ) { ?>
					else if(true<?php foreach($LongitudNS as $longitud) { ?> && campo.val().length!=<?php echo $longitud; ?> <?php } ?>){
						alert('La longitud de un número de serie para este producto debe de ser de <?php echo $LongitudNSTexto; ?> caracteres.',null,'error')
						.done(function(){
							campo.val('');
							campo.focus();
						});
					}
					<?php } ?>
					else if( !numeroSerieDisponible(numerosSerieDisponibles,campo.val(),contenedor) ) {
						if(errorNumerosSerieLibres) mensajeNS=errorNumerosSerieLibres;
						else mensajeNS='Este Número de Serie no está disponible aquí.'
						alert(mensajeNS,null,'error')
						.done(function(){
							campo.val('');
							campo.focus();
						});
					}
					else if( $('#cadenaNumerosSerieLeidos').val().indexOf( campo.val() ) != -1 ) {
						alert('Este Número de Serie ya está leido.',null,'error')
						.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());
				const valorAEliminar=$('#lecturaNS-'+contador).val();
				
				if(valorAEliminar != '') {
				
					$('#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');
					
					//30-12-2025
					let indice = numerosSerieLibresLeidos.indexOf(valorAEliminar);
					console.log('indice: '+indice);
					if (indice > -1) {
						numerosSerieLibresLeidos.splice(indice,1);
					}
				
				}
				else {
					$('#lecturaNS-'+contador).focus();
					$('#lecturaNS-'+contador).removeAttr('readonly');
				}
			
			});
			
			
			/////////////////////////////////////////////////////Gestion iconos campo cantidad
			
			
			

			
			
			<?php if(!$pedirNumSerie) { ?>
			
			$(document).on('change','#cantidad',function(e) {
			
				console.log('traza 2');
			
				controlDecimales( $('#cantidad') , <?php if($decimalesPermitir) { ?>true<?php } else { ?>false<?php } ?> , <?php if($decimalesPermitirMaximo>0) echo $decimalesPermitirMaximo; else { ?>null<?php } ?> );
				
			});
			
			$(document).on('click','#cantidad',function(e) {
			
				console.log('traza 1');
				
				if( !$(this).hasClass('deshabilitado') ) {
					
					if( !pedirContenedorDestino || ( pedirContenedorDestino && ( $('#contenedorDestino').val()=='' || $('#contenedor').val()!=$('#contenedorDestino').val() ) ) ) {
					
						$('#calculadora').show();
						$('#valorCalculadora').val( $('#cantidad').val() );
						$('#enterCalculadora').attr('campoValor','cantidad');
						$('#enterCalculadora').attr('forzarEnter','si');
						
						<?php if(!$decimalesPermitir) { ?>
						$('#botonDecimal').hide();
						<?php } ?>
					
					}
				
				}
				
			});
			
			$(document).on('click','#borrarCantidad',function(){
			
				$("#cantidad").val('');
				$("#cantidad").focus();
				
				<?php if($pedirContenedorDestino) { ?>
				compruebaValidezPosteriorContenedorCompleto();
				<?php } ?>
				
				<?php if($permitirDiferenciaCantidad) { ?>
				$('#confirmarCierreLinea').val(0);
				<?php } ?>
				
			});
	
			$('#iconoUnidades').on("click",function(e){
				cambiaUnidades();
			});

			$(document).on('click','#contenedorCompleto',function(){
			
				$('#popupCargando').show();
				
				$.post( "<?php echo $rutaHtml; ?>/contenidos/cantidad-contenedor-completo.php", { contenedor: $('#contenedor').val() } )
				.done(function(data) {
					$('#popupCargando').hide();
					if(data=='error') {
						$('#contenedor').addClass('error');
						alert("Ese contenedor no contiene el producto.",$('#contenedor'),'error');
					}
					else {
						$('#contenedor').removeClass('error');
						
						var valor=data;
						
						if( $('#cajas').val()==1 ) {
							var flotante = parseFloat( valor / $('#EmbalajePrimarioCaja').val() );
							var resultado = Math.round(flotante*100)/100;
							$("#cantidad").val(resultado);
						}
						else {
							$("#cantidad").val(valor);
						}
						
						<?php if($gestionPickingCierrePalets) { ?>
						$('#popupCargando').show();
						$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-comprobar-completo.php" , { 'palet' : $('#contenedor').val() , 'cantidad' : valor , 'cantidadTotal' : valor } )
						.done(function(data) {
							
							if(data!='N') {
								 $('#contenedorDestino').val( $('#contenedor').val() );
								comportamientoPantallaPaletCompleto(true,$('#contenedor').val(),resultado,valor,null,null);
							}
							
							$("#popupCargando").hide();
							
						});
						<?php } else if($pedirContenedorDestino) { ?>
						compruebaValidezPosteriorContenedorCompleto();
						<?php } ?>
					}
				});
				
			});
	
	
				<?php if($pedirContenedorDestino) { ?>
				$('#cantidad').on('change',function(){
					compruebaValidezPosteriorContenedorCompleto();
				});
				<?php } ?>
				
				<?php if($permitirDiferenciaCantidad) { ?>
				$('#cantidad').on('change',function(){
					if( parseFloat($(this).val())>=<?php echo $diferenciaPendienteMinimo; ?> && parseFloat($(this).val())<<?php echo $producto['CantidadPendienteProducto']; ?> ) {
						confirm('La cantidad indicada se encuentra dentro del rango en el que se puede dar este producto como completamente preparado.<br><br>¿Deseas dar esta línea de producto como terminada?')
						.done(function(){
							$('#confirmarCierreLinea').val(1);
						})
						.fail(function(){
							$('#confirmarCierreLinea').val(0);
						});
					}
				});
				<?php } ?>
	
			<?php } ?>

	
	
	<?php if($requierePaletizar) { ?>
	
	// ********** EVENTOS ASOCIADOS A LAS PESTAÑAS DE PALETS ************** //
	
	
			$('.primeroSeleccionaPalet').on("click",function(){
			
				<?php if( $_SESSION['orden']['GestionPaletsCompletos']!='S' && !$validacionPackingInicial ) { ?>
				
				if( $('#paletSeleccionado').val()=='') {
					alert("Primero debes seleccionar un Palet.")
					.done( function(){
						//console.log('Traza 1');
						mueveHastaPestanya('pestanyaListadoPalets');
						$("#nuevoPalet").val('');
						$("#nuevoPalet").focus();
					});
				}
				
				<?php } ?>
					
			});
	
			$('#tecladoPalet').on("click",function(){
					
				$('#teclado').show();
				$('#nuevoPalet').val('');
				$('#valor').val( $('#nuevoPalet').val() );
				$('#valorOculto').val( $('#nuevoPalet').val() );
				$('#enter').attr('campoValor','nuevoPalet');
				$('#enter').attr('formulario','formularioPalet');
						
			});
			
			$('#borrarPalet').on("click",function(){
					
				$("#nuevoPalet").val('');
				$("#nuevoPalet").focus();
						
			});
			
			$('#formularioPalet').on("submit",function(e){
			
				e.preventDefault();
				
				$('#popupCargando').show();
				
				$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-info.php", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'palet' : $('#nuevoPalet').val()  })
				.done(function(data) {
				
					$('#popupCargando').hide();
					
					var valores=data.split('#');
					var resultado=valores[0];
					
					if(resultado==0) {
						alert('ERROR: Este Palet no existe.');
					}
					else if(resultado==1) { //EL PALET YA PERTENECE A UN PACKING LIST
						
						var coincidencia=valores[1];
						var packinglist=valores[2];
						
						if( packinglist==$('#packingList').val() ) {
							
							//alert('Este Palet ya pertenece al Packing List de esta Orden de Preparación');
							
							$('#paletSeleccionado').val( $('#nuevoPalet').val() );
							seleccionaPalet( $('#nuevoPalet').val());
							$('#nuevoPalet').val('');
							
						}
						else if(coincidencia=='N') {
							alert('ERROR: Este Palet no puede utilizarse porque pertenece al Packing List <strong>'+packinglist+'</strong><br>y no puede asociarse a esta Orden de Preparación.')
							.done(function(){
									$('#nuevoPalet').val('');
									$('#nuevoPalet').focus();
							});
						}
						else {
							confirm('Este Palet pertenece a un Packing List válido para esta Orden de Preparación.<br><br>Se procede a asociar esta Orden de Preparación al Packing List <strong>'+packinglist+'</strong>')
							.done(function(){
								asociaPaletOrdenPacking('<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>',$('#nuevoPalet').val(),packinglist);

							});
						}
					}
					else if(resultado==2) { //El palet está libre y hay Packing Lists coincidentes con la orden de preparación actual
					
						if( $('#packingList').val()!='') { //YA hay un packing list asociado a esta orden
						
							asociaPaletOrdenPacking(null,$('#nuevoPalet').val(),$('#packingList').val());
						
						}
						else { //El palet está libre y hay Packing Lists coincidentes con la orden de preparación actual
						
							$('#popupCargando').show();
					
							$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palet-elegir-packing-list.php", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'palet' : $('#nuevoPalet').val() })
							.done(function(data) {
								
								$('#popupPackingListsContenido').html(data);
								
								$('#popupPackingLists').show();
								$('#popupPackingListsContenido').show();
								
								$('#popupCargando').hide();
									
							});
						
						}
					
					}
					else { //EL PALET ESTÁ LIBRE, NO PERTENECE A NINGUN PACKING LIST Y NO HAY PACKING LISTS COINCIDENTES CON OP ACTUAL
						
						asociaPaletOrdenPacking('<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>',$('#nuevoPalet').val(),null);
						
					}
					
				});
			
			});
			
			$('#etiquetaListadoPalets').on("click",function(){
				
				//if( !$.trim($("#contenidoPaletsListado").html()) ) $('#popupCargando').show();
				if( !$("#contenidoPaletsListado").html().trim() ) cargaListadoPalets();
				$("#nuevoPalet").val('');
				$("#nuevoPalet").focus();
						
			});
			
			$('#etiquetaContenidoPalet').on("click",function(){
				
				//if( !$.trim($("#contenidoPalet").html()) && $('#paletSeleccionado').val()!='' ) $('#popupCargando').show();
				if( !$("#contenidoPalet").html().trim() && $('#paletSeleccionado').val()!='' ) $('#popupCargando').show();
						
			});
	
	
	
	
	
	///////////////// METODOS PARA LA LECTURA GS1 POR SCANNER O MANUAL
	
	
	
	<?php if(!$desactivaScannerBluetooth && !$lecturaEspecialCliente) { ?>
	
	$("#lecturaGS1").on('keydown',function(e){
	
		e.preventDefault();
		var resultado='';
		
		////console.log(e.which);
		////console.log(e.key);
		
		if(e.which==13 || e.key=='Enter') {
			$('#lecturaGS1').trigger('change');
		}
		else lecturaScanner.push( [ String.fromCharCode(e.which) , e.which , e.key ] );
	}); 
	
	<?php } ?>	
	
	$('#lecturaGS1').on('change',function(){
		
		//Método que detecta que se ha hecho una nueva lectura.
		//tenemos que comprobar si procede del scanner o procede del teclado emergente
		
		var lecturaFinal='';
		
		<?php if($desactivaScannerBluetooth || $lecturaEspecialCliente) { ?>
		lecturaFinal=transformaLecturaManualAlFormatoScanner( $('#lecturaGS1').val() );
		<?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 en orden-preparacion-proceso-S: ' + lecturaFinal + ' > resultado: ' + resultado);
		
		if(resultado=='error')  {
		
			<?php if($lecturaEspecialCliente) { ?>
			
				$('#lecturaGS1').val( lecturaFinal );
			
				cargaDatosGS1enSalida(lecturaFinal,'<?php echo $lecturaEspecialCliente; ?>');
			
			<?php } else { ?>
			
				<?php if($desactivaScannerBluetooth) { ?>
				
					var mostrarLectura=lecturaFinal;
				
				<?php } else { ?>
				
					var mostrarLectura=limpiaLecturaDesdeScannerNoGS1(lecturaScanner);
				
				<?php } ?>
				
				////console.log('mostraLectura en en orden-preparacion-proceso-S: ' + mostraLectura );
				
				//alert('error');
				
				// Lectura no reconocida, posible codigo o EAN/DUN
			
				if(mostrarLectura=='<?php echo $producto['Codigo']; ?>') {
					//Nada todo ok
				}
				else {
					$('#eanDun').val(mostrarLectura);
					$('#eanDun').trigger('change');
				}
				
				$('#lecturaGS1').val('');
				$('#lecturaGS1').focus();
								
				reiniciaVariables();
				
			
			<?php } ?>
		}
		else {
		
			//console.log('resultado en en orden-preparacion-proceso-S: ' + resultado );
			
		
			$('#lecturaGS1').val( resultado );
			
			cargaDatosGS1enSalida(resultado,'<?php echo $lecturaEspecialCliente; ?>');
			
		}
		
		
		
	});
	
	$('#borrarLecturaGS1').on('click',function(){
	
		reiniciaVariables();
		
		$('#lecturaGS1').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');
	
	});
	

	$(document).on('click','#observaciones',function(){
		
		var idCampo=$(this).attr('id');
		
		$('#tecladoMultilinea').show();
		$('#valorTecladoMultilinea').val( $(this).val() );
		$('#enterTecladoMultilinea').attr('campoValor', idCampo );
		$('#enterTecladoMultilinea').attr('forzarEnter','no');
		
	});
	
	
	
	
	
	
	//CARGA INICIAL LISTADO DE PALET

	
	<?php if( $_SESSION['preparacionPaletActual'] || $pedirContenedorDestino || $validacionPackingInicial ) { ?>
		cargaListadoPalets(true);
		mueveHastaPestanya('pestanyaPreparar');
		focoSiguiente('');
		<?php if($pedirNumSerie) $foco='lecturaNS-1'; ?>
	<?php } else { ?>
		<?php if($_SESSION['orden']['PackingList']) $esperarCarga=true; ?>
		if( $('#packingList').val()!='' ) cargaListadoPalets();
		//console.log('Traza 2');
		mueveHastaPestanya('pestanyaListadoPalets');
	<?php } ?>
	
	
	<?php if($gestionPickingCierrePalets) { ?>
	$(document).on('click','.pickingCerrarPalet',function(){
		
		var selector=$(this);
		var palet=selector.attr('palet');
		var cerrar;
		
		if( selector.is(':checked') ) cerrar='S';
		else cerrar='N';
		
		$('#popupCargando').show();
				
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-picking-cerrar-palet.php", { 'palet' : palet , 'cerrar' : cerrar } )
		.done(function(data) {
			$('#popupCargando').hide();
			var resultado=data.split('#');
			if(resultado[0]=='1') {
				alert('ERROR: '+resultado[1],null,'error')
				.done(function(){
					if(cerrar=='S') selector.prop('checked',false);
					else selector.prop('checked',true);
				});
			}
					
		});
				
		
	});
	<?php } ?>
	
	
	<?php } else { // Fin eventos asociados pestañas palets ?>
		
		focoSiguiente('');
		
	<?php } ?>
	
	$('#etiquetaPreparar').on('click',function(){
		focoSiguiente('');
	});
	
	<?php } //Fin si la orden está iniciada y no hay error ?>
	
	
	
	//Ajuste del campo de observaciones en alto, por estética
	$('#columnaIntroduccionDatos').ready(function() {
		var valor=parseInt( $('#columnaIntroduccionDatos').innerHeight() );
		$('#tablaObservacionesComercial').height( valor+'px' );
	});
	
	<?php if( !$_POST['esCierre'] && !$ordenCerrada ) { ?>
	
		<?php if($lecturaCajaPalet) { ?>
		controlGraficoModoPreparacion();
		<?php } ?>
	
	<?php } ?>
	
	
});


//////////////////// 08-02-2023 métodos relacionados con $muchasCombinacionesStock (ANTIR)

function popupMuchasCombinacionesStock(numPagina,permitirSeleccionarLote) {
	
	if(!numPagina) numPagina=1;
	
	$("#popupCargando").show();
				
	//$("#popupBusquedaContenido").hide();

				
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-carga-combinaciones-WSListaContUbiLot.php?traza=<?php echo $_GET['traza']; ?>&mostraridioma=<?php echo $mostrarIdioma; ?>&pedirlote=<?php echo $pedirLote; ?>&pedirfechacaducidad=<?php echo $pedirFechaCaducidad; ?>&mostrarprecinta=<?php echo $mostrarPrecinta; ?>" , { 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'gestionPaletizado' : '<?php echo $_SESSION['gestionPaletizado']; ?>' , 'datoInformadoPalet' : $('#contenedor').val() , 'datoInformadoLote' : $('#lote').val() , 'datoInformadoFechaCaducidad' : $('#fechaCaducidad').val() , 'numPagina' : numPagina , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' , 'permitirSeleccionarLote' : permitirSeleccionarLote} )
	.done(function(data) {
						
		$("#popupBusquedaContenido").html(data);
		$("#popupBusqueda").show();
		$("#popupBusquedaContenido").show();
						
		$("#popupCargando").hide();
						
	});
	
}

function comprobarDatosUnicosMuchasCombinacionesStock() {
				
	$("#popupCargando").show();
	
	//console.log('Llamada al proceso: orden-preparacion-carga-combinaciones-WSListaContUbiLot.php');
				
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-carga-combinaciones-WSListaContUbiLot.php?traza=<?php echo $_GET['traza']; ?>&mostraridioma=<?php echo $mostrarIdioma; ?>&pedirlote=<?php echo $pedirLote; ?>&pedirfechacaducidad=<?php echo $pedirFechaCaducidad; ?>&mostrarprecinta=<?php echo $mostrarPrecinta; ?>" , { 'verEnCajas' : '<?php echo $_SESSION['verEnCajas']; ?>' , 'gestionPaletizado' : '<?php echo $_SESSION['gestionPaletizado']; ?>' , 'datoInformadoPalet' : $('#contenedor').val() , 'datoInformadoLote' : $('#lote').val() , 'datoInformadoFechaCaducidad' : $('#fechaCaducidad').val() , 'soloComprobarDatosUnicos' : true , 'mantenerLote' : '<?php echo $mantenerLoteDato; ?>' , 'mantenerCaducidad' : '<?php echo $mantenerCaducidadDato; ?>' , 'mantenerSerie' : '<?php echo $mantenerSerieDato; ?>' , 'mantenerIdPalet' : '<?php echo $mantenerIdPaletDato; ?>' , 'mantenerEntrada' : '<?php echo $mantenerEntradaDato; ?>' , 'mantenerDocEntrada' : '<?php echo $mantenerDocEntradaDato; ?>' } )
	.done(function(data) {
		
		//console.log('Resultado: '+data);
		
		var resultados=data.split('#');

		// 0-palet
		// 1-ubi
		// 2-lote
		// 3-caducidad

		//console.log(resultados);
		
		
		if(resultados[0]!='' && resultados[0]!='-') $('#contenedor').val(resultados[0]);
		if(resultados[1]!='' && resultados[1]!='-') $('#ubicacion').val(resultados[1]);
		if(resultados[2]!='' && resultados[2]!='-') $('#lote').val(resultados[2]);
		if(resultados[3]!='' && resultados[3]!='-') $('#fechaCaducidad').val(resultados[3]);
		
		
		$("#popupCargando").hide();
						
	});
	
}

$(document).ready(function() {

	$('.buscarMuchasCombinacionesStock').on('click',function(){
	
		var permitirSeleccionarLote=false;
		
		<?php if($permitirSeleccionarLoteMuchasCombinaciones) { ?>
		if( $(this).attr('id')=='buscarMuchasCombinacionesStockLote' ) permitirSeleccionarLote=true;
		<?php } ?>
	
		popupMuchasCombinacionesStock(null,permitirSeleccionarLote);

	});
	
	$(document).on('click','.paginacionEnlace',function(){
	
		var pagina=$(this).attr('pagina');
		
		popupMuchasCombinacionesStock(pagina,false);
	
	});
	
		//GESTION POPUP REGALOS
	
		$('.iconoRegalos').on('click',function(){
		
			$('#popupCargando').show();
			
			var regalos=$(this).attr('regalos');
			var cantidad=$(this).attr('CantTotalProductoEnLaOrden');
			var cantidadRegalo=$(this).attr('cantidadRegalo');
			
			$.post('<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-regalos.php?regalos' , { 'regalos' : regalos , 'cantidad' : cantidad , 'cantidadRegalo' : cantidadRegalo } )
			.done(function(data) {
			
				$('#popupRegalosContenido').html(data);
				
				$('#popupRegalos').show();
				$('#popupRegalosContenido').show();
				
				$('#popupCargando').hide();
				
			});
			
		});
		
		$(document).on('click','#botonCerrarRegalos',function(){
		
			$('#popupRegalosContenido').html('');
		
			$('#popupRegalos').hide();
			$('#popupRegalosContenido').hide();
		
		});
		
		//07-01-2025
		<?php if( isset($_GET['playAutomatico']) && $_GET['playAutomatico']=='si' ) { ?>
		$('#popupCargando').show();
		cargaListadoPalets(false,true) //08-01-2025 se añade un promise porque, si no da un error la funcion validaCajaPalet() que está definida dentro del subscript que se carga en la primera pestaña
		.done(function(){
			preProcesamientoFinal('botonSgteProducto');
		});
		//$('#botonSgteProducto').trigger('click');
		//$('.continuar').trigger('click');
		<?php } ?>
		
		

});

<?php if( $producto['EAN'] || $producto['DUN'] ) { ?>
//Atajo declado CTR+MAY+E para pegar ean
$(document).keydown(function(e){
	//console.log(e);
	if (e.ctrlKey && e.shiftKey && e.key=="E") {
		let eanDun='<?php if($producto['EAN']) echo quitaSaltos($producto['EAN']); else echo quitaSaltos($producto['DUN']); ?>';
		$('#eanDun').val(eanDun);
		<?php if($SujetoTPDT) { ?>
		actualizarDatosParaTrazabilidad('eanDun',eanDun);
		<?php } ?>
		$('#eanDunCorrecto').val(1);
		$('#eanDun').trigger('change');
	}
});
<?php } ?>



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


</script>

<?php




} //13-05-2026  fin else modoSeleccionCodigoSolicitar




$mostrarInfo=true;

include($rutaPhp.$rutaHtml.'/maqueta/menu-orden-preparacion-S.php');


//if($pedirNumSerie) $foco='lecturaNS-1';
if( $requierePaletizar && !$_SESSION['preparacionPaletActual'] && !$pedirContenedorDestino && !$validacionPackingInicial ) $foco='nuevoPalet';
else if($pedirContenedor || $pedirContenedorTambienUbicacion) {
	$foco='contenedor';
	if($pedirContenedorTambienUbicacion) {
		?>
        <script>
		$(document).ready(function() {
        	bloqueaCampoUbicacion(valor);
		});
		</script>
        <?php
	}
}
else $foco='ubicacion';










if($_SESSION['orden']['PermiteCopiarPegar']=='N') $bloqueoCopiarPegarPorPantalla=true;

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