<?php
ob_start();
$isIIS = ( isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS')!==false );
if(!$isIIS) opcache_reset();
if(!session_id()) session_start();

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

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

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

$OP_bloqueo_multioperario_noDesbloquear=true;

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

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

unset( $_SESSION['preparacionPaletActual'] );
unset( $_SESSION['preparacionPaletActualUbicacion'] );
unset( $_SESSION['preparacionCajaPaletActual'] );

unset( $_SESSION['preparacionPaletActualTipo'] );
unset( $_SESSION['preparacionCajaPaletActualTipo'] );


//29-08-2025 borramos la información para TTT, ya que es POR PRODUCTO concreto una vez pasamos a la pantalla de proceso-S.php
if( isset($_SESSION['orden']) && isset($_SESSION['orden']['TTT'])) unset( $_SESSION['orden']['TTT'] );
if( isset( $_SESSION['lecturas']) ) unset( $_SESSION['lecturas'] ); //Aqui se graban las lecturas de los ids en la otra pantalla, en la original de lectura TTT en salidas. Pero si cambiamos de producto, se conserva. Entonces, si no se da al play preparacion, no se guardan


//Estos fijados los reiniciamos en el listado, para que se mantengan durante un proceso DENTRO de una OP aunque se vuelva al listado
//unset( $_SESSION['preparacionPaletActualFijado'] );
//unset( $_SESSION['preparacionCajaPaletActualFijada'] );

//////////////// PRUEBAS ///////////////////
//$_SESSION['parametrosSGA']['LecturaCajaPalet']='S';
//$_SESSION['parametrosSGA']['TrazabilidadTabaco']='FO';
///////////////////////////////////////




$LecturadeIDsdeTTTdesdelapreparacion=( isset($_SESSION['parametrosSGA']['LecturadeIDsdeTTTdesdelapreparacion']) && $_SESSION['parametrosSGA']['LecturadeIDsdeTTTdesdelapreparacion']=='S' );
$paletsConSSCCObligatorio=( isset($_SESSION['parametrosSGA']['TrazabilidadTabaco']) && $_SESSION['parametrosSGA']['TrazabilidadTabaco']=='FO' );



//27-08-2024
$Controlcaducadosycortosdefecha=( isset($_SESSION['parametrosSGA']['Controlcaducadosycortosdefecha']) && $_SESSION['parametrosSGA']['Controlcaducadosycortosdefecha']=='S' );
if($traza) echo '<p>Controlcaducadosycortosdefecha: '.$Controlcaducadosycortosdefecha.'</p>';

$marcarFinOrden=$_SESSION['PermitirMarcaFinOrden'];

//22-1-2021 para ocultar las columnas de regimen
$verRegimen=($_SESSION['gestionDepositos']=='S');

//8-5-2020 Para cambiar la forma en la que se gestiona el Packing List, en este caso si es S se gestiona con el primer play si la OP no tiene PL
$validacionPackingInicial=( $_SESSION['parametrosSGA']['ValidacionesPackingList']=='S' );
$requierePaletizar=( $_SESSION['parametrosSGA']['PickingPacking']=='S' || $_SESSION['orden']['RequierePackingList']=='S' );

//10-06-2020 lectura mixta con palets y cajas. Implica que en el primer play, si no está indicado el modo de lectura, se lanza popup preguntando cómo se va a preparar
$lecturaCajaPalet=( $_SESSION['parametrosSGA']['LecturaCajaPalet']=='S' );
$mostrarModoLectura=( $requierePaletizar && $lecturaCajaPalet );

//echo '<p>mostrarModoLectura: '.$mostrarModoLectura.'</p>';

//26-11-2020
//No podemos evaluar la existencia del modo de lectura si es la primera vez que se accede a la pantalla, ya que la var session de la op está vacía
if( isset($_SESSION['orden']) && $_SESSION['orden']['OrdenPreparacion']==$_GET['orden'] ) $ordenComprobar=$_SESSION['orden']['OrdenPreparacion']; else $ordenComprobar=$_GET['orden'];

$primeroSeleccionarModoLectura=( $requierePaletizar && $lecturaCajaPalet && (!isset($_SESSION['modoslecturaOPs'][ $ordenComprobar ]) || $_SESSION['modoslecturaOPs'][ $ordenComprobar ]=='' || is_null($_SESSION['modoslecturaOPs'][ $ordenComprobar ]) || !array_key_exists($ordenComprobar,$_SESSION['modoslecturaOPs']) ) );

//////////////// PRUEBAS ///////////////////
//$validacionPackingInicial=false;
//$requierePaletizar=true;
//$primeroSeleccionarModoLectura=false;
//$lecturaCajaPalet=false;
///////////////////////////////////////////

$cargaRapidaPaletsLeidos=0;

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

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


//20-09-2023 Bayport robot EasyWMS
$gestionRobotEasyWMS=(isset($_SESSION['parametrosSGA']['AlmacenEASYWMS']) && $_SESSION['parametrosSGA']['AlmacenEASYWMS']=='S');


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

if($traza || $trazaSino) {

	echo '<p>validacionPackingInicial: '.$validacionPackingInicial.'</p>';
	echo '<p>requierePaletizar: '.$requierePaletizar.'</p>';
	echo '<p>lecturaCajaPalet: '.$lecturaCajaPalet.'</p>';
	echo '<p>mostrarModoLectura: '.$mostrarModoLectura.'</p>';
	echo '<p>primeroSeleccionarModoLectura: '.$primeroSeleccionarModoLectura.'</p>';
	echo '<p>gestionProductosRegalo: '.$gestionProductosRegalo.'</p>';
	
	print_r($_SESSION['modoslecturaOPs']);
}


if($_GET['orden'] && $_GET['empresa']) {
	
	unset($_SESSION['orden']);
	unset($_SESSION['atributosPaletsConfirmados']);
	
	$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEORDENPREP#'.$_SESSION['almacen'].';'.$_GET['empresa'].';'.$_GET['orden'];
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($traza || $trazaSino) {
		echo "<p>Marca fin orden permitida: ".$marcarFinOrden."</p>";
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$_SESSION['orden']=$resultado[0];

	
	//11-11-2025 Las ordenes que no son de preparacion no llevan lectura TTT
	if($_SESSION['orden']['TipoOrden']!='S') $LecturadeIDsdeTTTdesdelapreparacion=false;
	
	
	//12-05-2026
	$mostrarModoSeleccion=( $_SESSION['orden']['TipoOrden']=='S' && ( ($_SESSION['parametrosSGA']['GestionOleadas']=='S' && isset($_SESSION['orden']['PickingOleada']) && $_SESSION['orden']['PickingOleada']) || $_SESSION['orden']['PickingPrevio']=='S' ) );
	
	//echo '<p>mostrarModoSeleccion: '.$mostrarModoSeleccion.'</p>';
	//echo '<p>modoSeleccion: '.$_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']].'</p>';
	
	
	//01-04-2025 controlamos la procedencia desde la pantalla de cargas, para los retornos
	
	if( (isset($_GET['procedencia']) && $_GET['procedencia']=='carga') || isset($_SESSION['carga']) ) $esProcedenciaCarga=true; else $esProcedenciaCarga=false;
	
	if($esProcedenciaCarga) $_SESSION['orden']['procedenciaPantallaTablet']=$rutaHtml.'/carga-camion-detalle-ampliado.php';
	else $_SESSION['orden']['procedenciaPantallaTablet']=$rutaHtml.'/ordenes-preparacion.php';
	


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

	
	//26-01-2021 Tas error IGAN, definimos qué tipos de ordenes tienen que hacer gestion de packing list
	//05-02-2026 Se añade ordenes tipo D. Bayport ticket 26072839
	$tipoOrdenConPackingList=( ($_SESSION['orden']['TipoOrden']=='S' || $_SESSION['orden']['TipoOrden']=='A' || $_SESSION['orden']['TipoOrden']=='D') && $requierePaletizar );
	
	//19-11-2024 lo predefinimos para condicionar despues diferentes situaciones para las ordenes que son de picking
	if($_SESSION['orden']['TipoOrden']=='P') {
	
		$tipoOrdenPicking=true;
		$primeroSeleccionarModoLectura=false;
		$mostrarModoLectura=false;
		$_SESSION['modoslecturaOPs'][ $_SESSION['orden']['OrdenPreparacion'] ]='P';
		
		//13-05-2026
		$mostrarModoSeleccion=false;
	}
	else $tipoOrdenPicking=false;
	
	//CREACION DEL LISTADO GENERAL DE PRODUCTOS
	$productos=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['Productos']);
	
	//20-8-2020 Nuevo listado con productos que se preparan por cross docking, agrupados por albaran
	$albaranesCrossDocking=array();
	if(isset($_SESSION['orden']['AlbaranesCrossDocking'])) $albaranesCrossDocking=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['AlbaranesCrossDocking']);
	
	//05-10-2020 Nuevo listado con productos que se preparan por palet entero procedente de picking
	$operacionesLogisticas=array();
	if(isset($_SESSION['orden']['PaletsOperacionLog'])) $operacionesLogisticas=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['PaletsOperacionLog']);
	
	//21-09-2022 ORdenes de preparacion rapidas
	$cargaRapida=(isset($_SESSION['orden']['CargaRapida']) && $_SESSION['orden']['CargaRapida']=='S');
	
	//19-09-2025
	$pickingPorOleada=($_SESSION['orden']['TipoOrden']=='P' && $_SESSION['orden']['TipoOrdenDescripcion']=='Oleada por pedido');


	unset($_SESSION['cajas']);
	
	if(isset($_SESSION['orden']['TiposCajas'])) $_SESSION['tiposCajas']=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['TiposCajas']);
	

	if($_SESSION['SGAEspecialAcrylicos']=='S' && $mysqlServidor) {
	
	
		// 3-1-2019 NOTAS: El teoria, el bloqueo por usuarios funciona a nivel del listado de ordenes. Una que está abierta por un usuario, no le sale al otro
		// Mantengo este nivel de seguridad y bloqueo adicional sin tenerlo muy claro, pero supongo que es un extra por si no se actualiza el listado
		// o los usuarios dejan las tabletas sin usar y sin cerrar las órdenes.
	
	
		if($traza || $_GET['traza']=='sino') echo "<p>Usuario actual: ".$_SESSION['usuario']['Usuario']."</p>";
	
		//Comprobamos que la orden no esté ya abierta por otro usuario
		$temp=$conexionBdd->prepare("SELECT * FROM ".$mysqlPrefix."Preparacion WHERE NOrden=? AND Abierta>'0000-00-00' AND Cerrada='0000-00-00'");
		$temp->execute(array($_SESSION['orden']['OrdenPreparacion']));
		
		if($temp->rowCount()>0) {
		
			$resultado=$temp->fetch();
			if( $resultado['Usuario']!=$_SESSION['usuario']['Usuario'] ) {
				$bloqueadaPorOtroUsuario=$resultado['Usuario'];
			}
			else {
				$abiertaPorMi=true;
			}
			
		} 
		
	}

	
}

//echo '<p>Orden Multioperario: '.$_SESSION['orden']['Multioperario'].' y yo soy '.$_SESSION['usuario']['Usuario'].'</p>';

if(isset($_SESSION['orden']['Error'])) {

	$valores=explode('#',$_SESSION['orden']['Error']);
	?>
    <p><img src="<?php echo DIR_IMAGENES; ?>/iconos/error.png" width="60" height="60" /></p>
	<p class="error">ERROR: <?php echo $valores[1]; ?></p>
    
	<form id="form1" name="form1" method="post" action="<?php echo $_SESSION['orden']['procedenciaPantallaTablet']; ?>">
	<p><input type="submit" name="button" id="button" value="Volver al listado" class="boton reducido"/></p>
    </form>
	<?php
	
}
else {



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




?>

<div id="popupModoLecturaCajaPalet" class="popup" style="display:none;">
    <div class="popupContenido" id="popupModoLecturaCajaPaletContenido">
   	  <h2 style="margin:50px 0 30px 0">Selecciona el modo de preparación:</h2>
        <table style="margin:0 auto;font-size:1.5em">
        	<tr><td align="left"><label><input id="modoPreparacionP" name="modoPreparacion" type="radio" value="P" class="checkGrande" <?php if(isset($_SESSION['modoslecturaOPs']) && isset($_SESSION['modoslecturaOPs'][$_SESSION['orden']['OrdenPreparacion']]) && $_SESSION['modoslecturaOPs'][$_SESSION['orden']['OrdenPreparacion']]=='P') { ?>checked<?php } ?>/> <span style="vertical-align:20%">Todos los productos a palet o palets completos</span></label></td><td><img src="<?php echo DIR_IMAGENES; ?>/op-modo-P-horizontal.png" class="opModoIconoSelector"/></td></tr>
            <tr><td align="left"><label><input id="modoPreparacionC" name="modoPreparacion" type="radio" value="C" class="checkGrande" <?php if(isset($_SESSION['modoslecturaOPs']) && isset($_SESSION['modoslecturaOPs'][$_SESSION['orden']['OrdenPreparacion']]) && $_SESSION['modoslecturaOPs'][$_SESSION['orden']['OrdenPreparacion']]=='C') { ?>checked<?php } ?>/> <span style="vertical-align:20%">Todos los productos a cajas sueltas</span></label></td><td><img src="<?php echo DIR_IMAGENES; ?>/op-modo-C-horizontal.png" class="opModoIconoSelector"/></td></tr>
            <tr><td align="left"><label><input id="modoPreparacionPC" name="modoPreparacion" type="radio" value="PC" class="checkGrande" <?php if(isset($_SESSION['modoslecturaOPs']) && isset($_SESSION['modoslecturaOPs'][$_SESSION['orden']['OrdenPreparacion']]) && $_SESSION['modoslecturaOPs'][$_SESSION['orden']['OrdenPreparacion']]=='PC') { ?>checked<?php } ?>/> <span style="vertical-align:20%">Preparación combinada palets/cajas</span></label></td><td><img src="<?php echo DIR_IMAGENES; ?>/op-modo-PC-horizontal.png" class="opModoIconoSelector"/></td></tr>
      </table>
      <p><input type="button" name="botonModoLecturaAceptar" id="botonModoLecturaAceptar" value="ACEPTAR" class="boton"/></p>
      <p><input type="button" name="botonModoLecturaCancelar" id="botonModoLecturaCancelar" value="Cancelar" class="boton reducido"/></p>
    </div>
</div>

<div id="popupModoSeleccionArticulo" class="popup" style="display:none;">
    <div class="popupContenido" id="popupModoSeleccionArticuloContenido">
   	  <h2 style="margin:50px 0 30px 0">Selecciona el modo de selección de artículos:</h2>
      <table style="margin:0 auto;font-size:1.5em">
        	<tr><td align="left"><label><input id="modoSeleccionL" name="modoSeleccion" type="radio" value="L" class="checkGrande" <?php if(isset($_SESSION['modosSeleccionOPs']) && isset($_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]) && $_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]=='L') { ?>checked<?php } ?>/> <span style="vertical-align:20%">A partir del listado de la Entrada</span></label></td><td><img src="<?php echo DIR_IMAGENES; ?>/entrada-modo-L.png" class="entradaModoIconoSelector" /></td></tr>
            <tr><td align="left"><label><input id="modoSeleccionC" name="modoSeleccion" type="radio" value="C" class="checkGrande" <?php if(isset($_SESSION['modosSeleccionOPs']) && isset($_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]) && $_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]=='C') { ?>checked<?php } ?>/> <span style="vertical-align:20%">A partir de códigos de barras</span></label></td><td><img src="<?php echo DIR_IMAGENES; ?>/entrada-modo-C.png" class="entradaModoIconoSelector" /></td></tr>
      </table>
      <p><input type="button" name="botonModoSeleccionAceptar" id="botonModoSeleccionAceptar" value="ACEPTAR" class="boton"/></p>
      <p><input type="button" name="botonModoSeleccionCancelar" id="botonModoSeleccionCancelar" value="Cancelar" class="boton reducido"/></p>
    </div>
</div>

<div id="popupPackingLists" class="popup" style="display:none;"></div>
<div class="popupContenidoScroll" id="popupPackingListsContenido" style="display:none;"></div>

<div id="popupTrazabilidad" class="popup" style="display:none"></div>
<div id="popupTrazabilidadContenido" class="popupContenidoScroll" style="display:none"></div>

<div class="estilosOP">

<?php

//BOTONES PRINCIPALES QUE MUESTRAN PALETS/CAJAS SEGUN PARAMETRIZACION

if(isset($_SESSION['orden']['PaletsPL'])) $_SESSION['palets']=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['PaletsPL']);
else $_SESSION['palets']=null;
	
//CREACION DEL ARBOL DE AGRUPACIONES PALETS/CAJAS
require_once('contenidos/orden-preparacion-S-agrupaciones-constructor.php');

//9-2-2021 Sacamos la cabecera a "contenidos" para reutilizarla en varias pantallas
require_once('contenidos/orden-preparacion-S-cabecera.php');


if($_SESSION['SGAEspecialAcrylicos']=='S' && $_SESSION['orden']['Estado']=='Iniciada') {
	?><p>Esta orden de preparación está en curso<?php if($bloqueadaPorOtroUsuario) { ?> y bloqueada por el usuario <?php echo $bloqueadaPorOtroUsuario; } ?>.</p><?php
}



//Solo mostramos los mensajes cuando tipoOrden=S que es salida normal, ahora tambien hay picking
if( $tipoOrdenConPackingList ) {
	?>
    <?php if(!$_SESSION['orden']['Carga']) { ?><p class="error">Atención: Esta Orden no tiene Carga de Camión asociada. No podrá agruparse con otras en el mismo Packing List.</p><?php } ?>
	<?php if($_SESSION['orden']['PackingList']) { ?><p>Esta orden de preparación está asociada al <strong>Packing List <?php echo $_SESSION['orden']['PackingList']; ?></strong> <?php if( $_SESSION['parametrosSGA']['GestionPackingList']=='S' ) { ?><a href="<?php echo $rutaHtml; ?>/packing-list.php?orden=<?php echo $_SESSION['orden']['PackingList']; ?>"><img id="botonPacking" src="<?php echo DIR_IMAGENES; ?>/ir.png" alt="Ir al Packing List" style="width:40px;margin-bottom:-10px" class="mostrarCargando"/></a><?php } ?></p><?php } else { ?><p class="error">Esta orden de preparación requiere paletizar los productos</p><?php } ?>
	<?php
}
else if( $tipoOrdenPicking ) {

	if( $_SESSION['orden']['Destino']=='PREC' ) {
		if($_SESSION['operacion']['TipoProductoOperacion']=='T') {
			?><img src="<?php echo DIR_IMAGENES; ?>/precintado-animado-T.png" style="width:160px;margin-top:0" /><?php
		}
		else {
			?><img src="<?php echo DIR_IMAGENES; ?>/precintado-animado.gif" style="width:160px;margin-top:0" /><?php
		}
	}
	else if( $_SESSION['orden']['Destino']=='ETIQ' ) {
		?><img src="<?php echo DIR_IMAGENES; ?>/etiquetado-animado.gif" style="width:160px;margin-top:20px" /><?php
	}
	else if( $_SESSION['orden']['Destino']=='TRAN' ) {
		?><img src="<?php echo DIR_IMAGENES; ?>/animacion-transformado.gif" style="width:160px;margin-top:20px" /><?php
	}

}





//CREACION DE LOS COMBOS PARA FILTROS ACRYLICOS

if($_SESSION['SGAEspecialAcrylicos']=='S' || $_SESSION['parametrosSGA']['PickingPacking']=='S') {

	$tempPalets=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['PaletsPL']);
	$_SESSION['palets']=array();
	foreach($tempPalets as $palet) {
		foreach($productos as $item) if($item['Contenedor']==$palet['PaletPL']) $palet['EnOrdenPreparacionActual']='S';
		$_SESSION['palets'][]=$palet;
	}
	
	$comboPalets=array();
	foreach($_SESSION['palets'] as $item) if(isset($item['NumeroCaja'])) $comboPalets[]=$item['NumeroCaja'];
	asort($comboPalets);

	$_SESSION['cajas']=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['Cajas']);
		
	$comboCajas=array();
	foreach($_SESSION['cajas'] as $item) $comboCajas[]=$item['NumeroCaja'];
	asort($comboCajas);

}

if($_SESSION['parametrosSGA']['PickingPacking']=='S' || $_SESSION['SGAEspecialAcrylicos']=='S') {

	?>
	<p>
    <?php if( $requierePaletizar ) { ?>
    
        <input type="submit" name="botonPalets<?php if($cantidadAgrupaciones==0) { ?>Off<?php } ?>" id="botonPalets<?php if($cantidadAgrupaciones==0) { ?>Off<?php } ?>" value="Agrupaciones: <?php echo $textoAgrupaciones; ?>" class="boton <?php if($cantidadAgrupaciones===0) { ?>deshabilitado<?php } else { ?>mostrarCargando<?php } ?>"/>
        
		<?php //13-09-2023 a partir de Elite, se detecta que este boton está activo sin INICIAR la orden. El de "LIBERAR" solo se muestra con esta condicion, asi que añado ?>
        
        <?php if($cantidadAgrupaciones>0 && !$cargaRapida && !($gestionPickingCierrePalets && $tipoOrdenPicking)  && $_SESSION['orden']['EstadoOprep']!='Cerrada' && $_SESSION['orden']['Estado']=='Iniciada') { ?>
            <br /><input type="button" name="botonReorganizar" id="botonReorganizar" class="boton reducido" value="Reorganizar agrupaciones" style="margin-top:20px"/>
        <?php } ?>
        
    <?php } ?>
    
    <?php if($_SESSION['SGAEspecialAcrylicos']=='S') { ?>
        <input type="submit" name="botonCajas<?php if(count($_SESSION['cajas'])==0) { ?>Off<?php } ?>" id="botonCajas<?php if(count($_SESSION['cajas'])==0) { ?>Off<?php } ?>" value="Cajas de Expedición: <?php echo count($_SESSION['cajas']); ?>" class="boton <?php if(count($_SESSION['cajas'])==0) { ?>deshabilitado<?php } else { ?>mostrarCargando<?php } ?>"/> 
	<?php } ?>
    
    </p>
    
    <div id="popupPalets" class="popup" style="display:none"></div>
	<div class="popupContenidoScroll" id="popupPaletsContenido" style="display:none"></div>
    
    <?php if($_SESSION['SGAEspecialAcrylicos']=='S') { ?>
    <div id="popupCajas" class="popup" style="display:none"></div>
	<div class="popupContenidoScroll" id="popupCajasContenido" style="display:none"></div>
    <?php } ?>
   
	<?php
}



// GESTION DE LOS LISTADOS DE PRODUCTOS

$productosAPreparar=array();
$productosYaPreparados=array();
$algunosProductosPreparados=false;

//20-09-2023 Bayport robot EasyWMS
$productosRobotEasyWMS=array();

//19-09-2025
$productosPickingOleadaExpediciones=array();

//29-12-2025
$hayAlgunNoPreparableNS=false;

foreach($productos as $producto) {
	
	$datos=$producto['Datos']['PXMobileProxiumResult'];
			 
	$cajaContenedora='';
			 
	if($producto['Preparado']>0) { //Si hay producto preparado, buscamos en qué caja está

		foreach($_SESSION['cajas'] as $caja) {
				 
			$cajaProductos=arreglaArrayPXMobileProxiumResult($caja['Productos']);
					
			foreach($cajaProductos as $cajaProducto) {
					
				$coincidencia=(
					$cajaProducto['Codigo']==$producto['Codigo']
					&& $cajaProducto['LinEntrada']==$producto['LineaEntrada']
					&& $cajaProducto['NumEntrada']==$producto['NumeroEntrada']
					&& $cajaProducto['Ubicacion']==$producto['Ubicacion']
				);
				
				foreach($_SESSION['comportamientos'] as $comportamiento) {
					if($comportamiento['Activo']=='S') {
						foreach($datos as $dato) {
							if($dato['Codigo']==$comportamiento['Codigo']) {
								$coincidencia=($coincidencia && $cajaProducto[$comportamiento['NombreSQL']]==$dato['Valor']);
								break;
							}
						}
					}
				}
				
				if ($coincidencia) $cajaContenedora.=$caja['NumeroCaja']."<br>";
			}
					
		}
			 
	}
	
	//echo '<p>Cantidad: '.$producto['Cantidad'].'</p>';
	//echo '<p>Preparado: '.$producto['Preparado'].'</p>';
	//echo '<p>CantidadDiferenciaCompletada: '.$producto['CantidadDiferenciaCompletada'].'</p>';
	
	if( $producto['Cantidad']==$producto['Preparado'] || (isset($producto['CantidadDiferenciaCompletada']) && $producto['CantidadDiferenciaCompletada']=='S') ) { //Si el producto está completamente preparado, pasa al segundo listado
			 	
				
		if($pickingPorOleada) {
		
			if($producto['LeidoEnExpedicion']=='S') {
				$productosPickingOleadaExpediciones[]=array('lineaProducto'=>$producto,'cajas'=>$cajaContenedora);
			}
			else {
				$productosYaPreparados[]=array('lineaProducto'=>$producto,'cajas'=>$cajaContenedora);
			}
		}
		else {
			$productosYaPreparados[]=array('lineaProducto'=>$producto,'cajas'=>$cajaContenedora);
		}
		
		
		
	}
	else {
		
		//20-09-2023
		$ubicacionEnRobotEasyWMS=false;
		
		if( $gestionRobotEasyWMS && $producto['Ubicacion']==$_SESSION['parametrosSGA']['UbicacionEASYWMS'] ) {
		
			$ubicacionEnRobotEasyWMS=true;
			
		}

		if( $ubicacionEnRobotEasyWMS ) {
		
			$productosRobotEasyWMS[]=array('lineaProducto'=>$producto,'cajas'=>$cajaContenedora);
		}
		else {
		
			$productosAPreparar[]=array('lineaProducto'=>$producto,'cajas'=>$cajaContenedora);
			
			//29-12-2025
			if( isset($_SESSION['orden']['GestionNumSerieSalida']) && $_SESSION['orden']['GestionNumSerieSalida'] && isset($producto['ControlNumSerie']) && $producto['ControlNumSerie']=='S' && isset($producto['NoPreparableLongitudNS']) && $producto['NoPreparableLongitudNS']=='S') $hayAlgunNoPreparableNS=true;
		}
		
	}
 
 	
	
}



//14-05-2026 TAREA INTERNA 74904. Revisiones ADM 14/05, puntos en verde
$desactivarBotonesSecundarios=(
	//No hay nada preparable
	( (isset($productosAPreparar) && is_array($productosAPreparar) && count($productosAPreparar)==0) || !isset($productosAPreparar) )
	&&
	( (isset($productosRobotEasyWMS) && is_array($productosRobotEasyWMS) && count($productosRobotEasyWMS)==0) || !isset($productosRobotEasyWMS) )
	&&
	( (isset($operacionesLogisticas) && is_array($operacionesLogisticas) && count($operacionesLogisticas)==0) || !isset($operacionesLogisticas) )
	&&
	( (isset($albaranesAPreparar) && is_array($albaranesAPreparar) && count($albaranesAPreparar)==0) || !isset($albaranesAPreparar) )
	&&
	( (isset($productosPickingOleadaExpediciones) && is_array($productosPickingOleadaExpediciones) && count($productosPickingOleadaExpediciones)==0) || !isset($productosPickingOleadaExpediciones) )
);

/*
echo '<p>productosAPreparar: '.count($productosAPreparar).'</p>';
print_r($productosAPreparar);
echo '<p>productosRobotEasyWMS: '.count($productosRobotEasyWMS).'</p>';
print_r($productosRobotEasyWMS);
echo '<p>operacionesLogisticas: '.count($operacionesLogisticas).'</p>';
print_r($operacionesLogisticas);
echo '<p>albaranesAPreparar: '.count($albaranesAPreparar).'</p>';
print_r($albaranesAPreparar);
echo '<p>productosPickingOleadaExpediciones: '.count($productosPickingOleadaExpediciones).'</p>';
print_r($productosPickingOleadaExpediciones);
echo '<p>desactivarBotonesSecundarios: '.$desactivarBotonesSecundarios.'</p>';
*/


if($desactivarBotonesSecundarios) {
	$mostrarModoLectura=false;
	$mostrarModoSeleccion=false;
	unset($_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]);
}




$productosPendientes=array();
foreach( arreglaArrayPXMobileProxiumResult($_SESSION['orden']['ProductosPendientes']) as $producto) {
	$productosPendientes[]=array('lineaProducto'=>$producto);
}



///////////////////////////////////////////////////////
//20-8-2020 Albaranes para lectura mediante cross docking
$albaranesAPreparar=array();
$albaranesYaPreparados=array();
foreach($albaranesCrossDocking as $albaran) {
	if($albaran['Leido']=='S') $albaranesYaPreparados[]=$albaran;
	else $albaranesAPreparar[]=$albaran;
}




//foreach($_SESSION['orden']['ProductosPendientes'] as $pendiente) $productosPendientes[]=$pendiente;
//print_r($productosPendientes);

//pintaListadoProductos($productosYaPreparados,false,true,false,false,$gestionPickingCierrePalets);

function pintaListadoProductos($listado,$preparable,$mostrarAgrupaciones=false,$mostrarReposicion=false,$operario=NULL,$mostrarColumnaCierre=false) {

	global $rutaHtml;
	global $algunosProductosPreparados;
	
	global $requierePaletizar;
	global $lecturaCajaPalet;
	
	global $gestionPickingCierrePalets;
	
	global $gestionProductosRegalo;
	
	global $Controlcaducadosycortosdefecha;
	
	global $ocultarColumnaNSenPreparaciones;
	global $ocultarUnidadesPorCajaOP;
	
	global $LecturadeIDsdeTTTdesdelapreparacion;
	global $paletsConSSCCObligatorio;
	
	global $hayAlgunNoPreparableNS;
	
	global $mostrarPaisOrigen;
	
	$productosTrazabilidad=array();
	
	//24-05-2022 Multioperario
	
	$listadoTemp=array();
	
	foreach($listado as $item) {
	
		$operarioAsignado=NULL;
		if(isset($item['lineaProducto']['OperarioAsignado'])) $operarioAsignado=$item['lineaProducto']['OperarioAsignado'];
	
		if( is_null($operario) || $operario==$operarioAsignado || ( $operario=='otrosoperarios' && $operarioAsignado!=$_SESSION['usuario']['Usuario'] ) ) $listadoTemp[]=$item;
		
	}
	
	$listado=$listadoTemp;
	
	
	if(count($listado)>0) {
	
	
	?>
    
    <?php if($hayAlgunNoPreparableNS) { ?>
    <p class="error">Los productos indicados en rojo no se van a poder leer porque no tienen informada la longitud de su número de serie.</p>
    <?php } ?>
    
	<table class="tablaFormateada anchoMaximo" style="font-size:0.9em">
		<tr>
			<?php if($preparable) { ?><th>Iniciar</th><?php } ?>
            
	    	<th>Código</th>
            
            <?php if(isset($_SESSION['orden']['GestCodB']) && $_SESSION['orden']['GestCodB']=='S') { ?>
            <th>Código B</th>
            <?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(isset($_SESSION['orden']['EANVisible']) && $_SESSION['orden']['EANVisible']=='S') { ?>
            <th>EAN</th>
            <?php } ?>
                    
            <?php if(isset($_SESSION['orden']['MarcaVisible']) && $_SESSION['orden']['MarcaVisible']=='S') { ?>
            <th>Marca</th>
            <?php } ?>
            
            <?php if(isset($_SESSION['parametrosSGA']['ReferenciaCliEntrada']) && $_SESSION['parametrosSGA']['ReferenciaCliEntrada']=='S') { ?>
            <th>Ref. cliente</th>
            <?php } ?>
            
            <?php if(isset($_SESSION['parametrosSGA']['GestionRefCliLin']) && $_SESSION['parametrosSGA']['GestionRefCliLin']=='S') { ?>
            <th>Ref. cliente linea</th>
            <?php } ?>
            
			<?php if(isset($_SESSION['verEnCajas']) && $_SESSION['verEnCajas']=='S') { ?>
            <th>Cajas</th>
            <?php if(!$ocultarUnidadesPorCajaOP) { ?>
            <th>Ud/Cj</th>
			<?php } ?>
			<?php } ?>
            
            <th>Cant.</th>
            
            <th>Formato</th>
            
	    	<?php if(isset($_SESSION['orden']['TieneCrossDocking']) && $_SESSION['orden']['TieneCrossDocking']=='S') { ?><th>Albarán</th><?php } ?>
            
			<?php if(isset($_SESSION['gestionPaletizado']) && $_SESSION['gestionPaletizado']=='S' || $requierePaletizar) { ?>
				<?php if($lecturaCajaPalet && $mostrarAgrupaciones) { ?>
                <th colspan="2">Agrupacion</th>
                <?php } else { ?>
                <th>Palet</th>
                <?php } ?>
            <?php } ?>
            
            <?php if($mostrarColumnaCierre) { ?>
            <th>Cerrado</th>
            <?php } ?>
            
			<th width="100">Ubicación</th>
            
            <?php if($mostrarPaisOrigen) { ?>
            <th width="100">País origen</th>
			<?php } ?>
            
	      	<?php if(isset($_SESSION['visibilidadSalidasNumDocumento']) && $_SESSION['visibilidadSalidasNumDocumento']) { ?><th>Documento</th><?php } ?>
            
	      	<!--<th>Preparado</th>-->
            
		  	<?php if(isset($_SESSION['SGAEspecialAcrylicos']) && $_SESSION['SGAEspecialAcrylicos']=='S') { ?><th>Caja Expedición</th><?php } ?>
            
            <?php if($operario) { ?>
            <th>Operario</th>
            <?php } ?>
            
            <?php if($gestionProductosRegalo) { ?>
            <th>Regalos</th>
            <?php } ?>
            
		</tr>
		<?php
	
		foreach($listado as $item) {
		
			?><span style="display:none"><?php //print_r($item); ?></span><?php //No activar porque puede joder la ejecucion del script, segun el contenido que pinta, TICKET 25070497 Elitebags
		
			$producto=$item['lineaProducto'];
			$datos=$producto['Datos']['PXMobileProxiumResult'];
			$cajaContenedora=$item['cajas'];
			$contador=0;
			$color='';
			$colorFondo='';
			
			$cadenaNumerosSerie='';
			if(isset($producto['NumerosSerieDisponibles']) && $producto['NumerosSerieDisponibles']) {
				$numerosSerie=arreglaArrayPXMobileProxiumResult($producto['NumerosSerieDisponibles']);
				foreach($numerosSerie as $numero) {
					if(!empty($cadenaNumerosSerie)) $cadenaNumerosSerie.=';';
					$cadenaNumerosSerie.=$numero['NumeroSerie'].','.$numero['Contenedor'].','.$numero['Ubicacion'].','.$numero['Leido'].','.$numero['CantNSpal'];
				}
			}
			
			//4-3-2022 miramos si tiene desprecintado
			$fondoRosa=false;
			foreach($datos as $dato) {
				if($dato['Codigo']=='PRECEMP' && $dato['Valor']=='DP') $fondoRosa=true;
			}
			if($fondoRosa) $colorFondo='fondoRosa';
			
			
			//27-08-2024
			if($Controlcaducadosycortosdefecha) {
				if($producto['FechaCaducidadEstado']=='CADUCADO') $color='rojo';
				else if($producto['FechaCaducidadEstado']=='PROXIMOACADUCAR') $color='azul';
			}
			
			
			if($producto['Cantidad']==$producto['Preparado']) $color='verde';
			else if($producto['Cantidad']>$producto['Preparado'] && isset($producto['ObservacionesIncidencia']) && $producto['ObservacionesIncidencia']) $color='rojo';
			
			
			if(!$preparable && $LecturadeIDsdeTTTdesdelapreparacion) {
			
				$indice=$producto['Codigo'].'#'.$producto['Contenedor'];
			
				if ( !array_key_exists($indice,$productosTrazabilidad) && $producto['idTPDT'] ) {
			
					$productosTrazabilidad[$indice]=$producto;
					
				}
				
			}
			
			//29-12-2025
			$noPreparableNS=($producto['ControlNumSerie']=='S' && $producto['NoPreparableLongitudNS']=='S');
			
			if($noPreparableNS) $color='rojo';
			
			?>
			<tr class="lineaOrden <?php echo $color; ?> <?php echo $colorFondo; ?>" caja="<?php echo $cajaContenedora; ?>" codigo="<?php echo $producto['Codigo']; ?>" descripcion="<?php echo $producto['Descripcion']; ?>" preparacion="<?php if($producto['Cantidad']==$producto['Preparado']) { ?>si<?php } else { ?>no<?php } ?>" >
            
				<?php if($preparable) { ?>
				<td>
                <?php if(!$noPreparableNS) { ?>
					<?php if($producto['Preparado']<$producto['Cantidad']) { ?><input name="iniciar<?php echo $contador; ?>" type="checkbox" class="checkGrande selectorInicio" id="iniciar<?php echo $contador; ?>" Codigo="<?php echo $producto['Codigo']; ?>" Ubicacion="<?php echo $producto['Ubicacion']; ?>" Contenedor="<?php echo $producto['Contenedor']; ?>" <?php foreach($_SESSION['comportamientosGlobales'] as $comportamiento) { echo $comportamiento['NombreSQL'].'="'; foreach($datos as $dato) if($dato['Codigo']==$comportamiento['Codigo']) echo $dato['Valor']; echo '" '; } ?> NumeroEntrada="<?php echo $producto['NumeroEntrada']; ?>" LineaEntrada="<?php echo $producto['LineaEntrada']; ?>" FechaCaducidadEstado="<?php if(isset($producto['FechaCaducidadEstado'])) echo $producto['FechaCaducidadEstado']; ?>"/><?php } ?>
                <?php } ?>
                </td>
				<?php } ?>
                
				<td><?php echo $producto['Codigo']; ?></td>
                
                <?php if(isset($_SESSION['orden']['GestCodB']) && $_SESSION['orden']['GestCodB']=='S') { ?>
                <td><?php echo $producto['CodigoB']; ?></td>
                <?php } ?>
                    
				<td align="left" style="max-width:400px;word-wrap:break-word;"><?php echo $producto['Descripcion']; ?></td>
				
				<?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
					if($producto['ControlNumSerie']=='S' && $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($mostrarReposicion && isset($producto['SimulacionUbicacion']) && $producto['SimulacionUbicacion']) $valor=$producto[$arraySimulaciones[$dato['Codigo']]];
								else $valor=$dato['Valor'];
							
								echo formateaTipo($valor,$comportamiento['Tipo']);
								break;
							}
						}
					}
					?>                </td>
					<?php } ?>
				<?php } ?>
				
				<?php if(isset($_SESSION['orden']['EANVisible']) && $_SESSION['orden']['EANVisible']=='S') { ?>
				<td align="center"><?php echo $producto['EAN']; ?></td>
				<?php } ?>
						
				<?php if(isset($_SESSION['orden']['MarcaVisible']) && $_SESSION['orden']['MarcaVisible']=='S') { ?>
				<td align="center"><?php echo $producto['Marca']; ?></td>
				<?php } ?>
				
				<?php if(isset($_SESSION['parametrosSGA']['ReferenciaCliEntrada']) && $_SESSION['parametrosSGA']['ReferenciaCliEntrada']=='S') { ?>
				<td align="center"><?php echo $producto['RefCliente']; ?></td>
				<?php } ?>
				
				<?php if(isset($_SESSION['parametrosSGA']['GestionRefCliLin']) && $_SESSION['parametrosSGA']['GestionRefCliLin']=='S') { ?>
				<td align="center"><?php echo $producto['RefCliLin']; ?></td>
				<?php } ?>
                
                
                <?php if(isset($_SESSION['verEnCajas']) && $_SESSION['verEnCajas']=='S') { ?>
                <td align="right"><?php if($producto['Cajas']) echo formateaNumeroDecimal($producto['Cajas']); ?></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($producto['Cantidad']); ?></td>
				
				
				
				<td><?php echo $producto['UnidadMedidaDescripcion']; ?></td>
				
			<?php if(isset($_SESSION['orden']['TieneCrossDocking']) && $_SESSION['orden']['TieneCrossDocking']=='S') { ?><td align="center"><?php echo $producto['AlbaranCrossDocking']; ?></td><?php } ?>
				
				<?php if(isset($_SESSION['gestionPaletizado']) && $_SESSION['gestionPaletizado']=='S' || $requierePaletizar) { ?>
                    
					<?php if(isset($producto['AlbaranCrossDocking']) && $producto['AlbaranCrossDocking']) { ?>
						
						<td align="center" colspan="2"><img src="<?php echo DIR_IMAGENES; ?>/palet-info.png" alt="" width="30" height="30" class="botonCrossdockingInfoPalets clicable" numalbaran="<?php echo $producto['AlbaranCrossDocking']; ?>" listadopalets="<?php echo $producto['AlbaranCrossDockingPalets']; ?>"/></td>
						
					<?php } else { ?>
					
						<?php
						//23-02-2021 ubicaciones simuladas para Reposiciones
						if($mostrarReposicion && isset($producto['SimulacionUbicacion']) && $producto['SimulacionUbicacion']) $paletMostrar=$producto['SimulacionPalet']; 
						else $paletMostrar=$producto['Contenedor'];
						
						if($paletMostrar=='-' && $paletMostrar=='C') $paletMostrar='';
						
						?>
					
						<?php if($lecturaCajaPalet && $mostrarAgrupaciones) { ?>
						
							<?php if(isset($producto['EsCaja']) && $producto['EsCaja']=='S') { ?>
							   
								<td>
								<?php if($producto['ContenedorPadre']) { ?>
								<img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:35px;vertical-align:bottom;"/> <?php echo $producto['ContenedorPadre']; ?>
								<?php } ?>
								</td>

								<td><img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:25px;vertical-align:bottom;"/> <?php echo $paletMostrar; ?></td>
								
							<?php } else { ?>
							
								<td>
								<img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:35px;vertical-align:bottom;"/> <?php echo $producto['Contenedor']; ?>
								</td>
								
								<td>
								<?php if(isset($producto['ListaCajas'])) $listaCajas=arreglaArrayPXMobileProxiumResult($producto['ListaCajas']); else $listaCajas=array(); ?>
								<?php if(count($listaCajas)>0) { ?>
									<?php foreach($listaCajas as $itemCaja) { ?>
									<img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:25px;vertical-align:bottom;"/> <?php echo $itemCaja['NumeroCaja']; ?><br />
									<?php } ?>
								<?php } ?>
								</td>
								
							<?php } ?>
						
						<?php } else { ?>
						<td><?php echo $paletMostrar; ?></td>
						<?php } ?>
                        
                        
                        
                        <?php if($mostrarColumnaCierre) { ?>
                        <?php $cerrado=false; ?>
                        <?php foreach($_SESSION['palets'] as $item) if($producto['Contenedor']==$item['PaletPL'] && $item['PaletCerrado']=='S') $cerrado=true; ?>
                        <td><?php if($cerrado) { ?><img src="<?php echo DIR_IMAGENES; ?>/ok.png" width="47" height="36" /><?php } ?></td>
                  		<?php } ?>

					<?php } ?>
					
				<?php } ?>
				
				
                
                
				<?php
				//23-02-2021 ubicaciones simuladas para Reposiciones
				if($mostrarReposicion && isset($producto['SimulacionUbicacion']) && $producto['SimulacionUbicacion']) {
					if($producto['SimulacionUbicacionAlias']) $ubicacionMostrar=$producto['SimulacionUbicacionAlias']; else $ubicacionMostrar=$producto['SimulacionUbicacion'];
				}
				else {
					if($producto['UbicacionAlias']) $ubicacionMostrar=$producto['UbicacionAlias']; else $ubicacionMostrar=$producto['Ubicacion'];
				}
				?>
				<td class="columnaUbicacion"><?php echo $ubicacionMostrar ?></td>
                
                <?php if($mostrarPaisOrigen) { ?>
                <td><?php echo $producto['PaisOrigenCodigo']; ?></td>
                <?php } ?>
				
				<?php if(isset($_SESSION['visibilidadSalidasNumDocumento']) && $_SESSION['visibilidadSalidasNumDocumento']) { ?><td align="center"><?php if(isset($producto['NumDocumentos'])) echo $producto['NumDocumentos']; ?></td><?php } ?>
                
				<!--<td align="right"><?php echo formateaNumeroDecimal($producto['Preparado']); ?></td>-->
                
				<?php if( $_SESSION['SGAEspecialAcrylicos']=='S' ) { ?><td align="right"><?php if( $producto['Preparado']>0 ) echo $cajaContenedora; ?></td><?php } ?>
                
                <?php if($operario) { ?>
                <td><?php echo $producto['OperarioAsignado']; ?></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="50"
                    height="50"
                    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
			
			
			if($producto['Preparado']>0) $algunosProductosPreparados=true;
			
		
		
		} //Fin iteracion productos
		
		?>
    </table>
    
    <?php
	//echo '<p>preparable: '.$preparable.'</p>';
    //echo '<p>LecturadeIDsdeTTTdesdelapreparacion: '.$LecturadeIDsdeTTTdesdelapreparacion.'</p>';
    //echo '<p>productosTrazabilidad: </p>';
    //print_r($productosTrazabilidad);
    ?>
    
    <?php if(!$preparable && $LecturadeIDsdeTTTdesdelapreparacion && isset($productosTrazabilidad) && is_array($productosTrazabilidad) && count($productosTrazabilidad)>0) { ?>
    
    
        <p>IDs de trazabilidad leidos</p>
        
        <table class="tablaFormateada anchoMaximo" style="font-size:0.9em">
            <tr>
                <th>Código</th>
                <th>Descripción</th>
                <th>Precinta</th>
                
                <th>Agrupación</th>
                <?php if($paletsConSSCCObligatorio) { ?>
                <th>SSCC</th>
                <?php } ?>
                
                <th>Nº Ids</th>
                <th>Cantidad</th>
                <th></th>
            </tr>
            
            <?php foreach($productosTrazabilidad as $producto) { ?>
            
            	<?php
				
				$cadenaTrazabilidad='';
				$cantidadLeida=0;
				$numeroIds=0;
				$idsTrazabilidad=arreglaArrayPXMobileProxiumResult($producto['idTPDT']);
				foreach($idsTrazabilidad as $numero) {
					if(!empty($cadenaTrazabilidad)) $cadenaTrazabilidad.=';';
					$cadenaTrazabilidad.=base64_encode($numero['CodigoEscaneado']).','.$numero['Formato'].','.$numero['Cantidad'];
					$cantidadLeida+=$numero['Cantidad'];
					$numeroIds++;
				}
				
				
				$datos=$producto['Datos']['PXMobileProxiumResult'];
				
				$sscc='';
				foreach($_SESSION['palets'] as $item) if($producto['Contenedor']==$item['PaletPL']) $sscc=$item['SSCC'];
				
				?>
                
                <tr>
                    <td><?php echo $producto['Codigo']; ?></td>
                    <td align="left" style="max-width:400px;word-wrap:break-word;"><?php echo $producto['Descripcion']; ?></td>
                    <td>
					<?php
					foreach($datos as $dato) {
						if($dato['Codigo']=='PRECEMP') {
							echo $dato['Valor'];
							break;
						}
					}
					?>
                    <td>
                    
                    <?php if($producto['EsCaja']=='S') { ?>
						<img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:25px;vertical-align:bottom;margin: 0 5px 0 5px;"/>
					<?php } else { ?>
                    	<img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:35px;vertical-align:bottom;"/>
                    <?php } ?>

					<?php echo $producto['Contenedor']; ?>
                    
                    </td>
					<?php if($paletsConSSCCObligatorio) { ?>
                    <td><?php if($sscc) echo '(00)'.$sscc; ?></td>
                    <?php } ?>
                    <td><?php echo $numeroIds; ?></td>
                    <td><?php echo $cantidadLeida; ?></td>
                    <td><img class="verTrazabilidad clicable" src="<?php echo DIR_IMAGENES; ?>/barcode-buscar.png" style="width:60px" sscc="<?php echo $sscc; ?>" numeros="<?php echo $cadenaTrazabilidad; ?>"/></td>
                </tr>
                
            <?php } ?>
			
    	</table>
    
    <?php } ?>
    
    
    
  <?php
  }
  else {
  	?><p class="error">No constan productos.</p><?php
  }
}

function pintaListadoProductosSimple($listado,$preparable) {

	global $rutaHtml;

	?>
	<table class="tablaFormateada anchoMaximo" style="font-size:0.9em">
		<tr>
			<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 } ?>
            
            <?php if($_SESSION['orden']['EANVisible']=='S') { ?>
            <th>EAN</th>
            <?php } ?>
                    
            <?php if($_SESSION['orden']['MarcaVisible']=='S') { ?>
            <th>Marca</th>
            <?php } ?>
            
            <?php if($_SESSION['parametrosSGA']['ReferenciaCliEntrada']=='S') { ?>
            <th>Ref. cliente</th>
            <?php } ?>
            
            <?php if($_SESSION['parametrosSGA']['GestionRefCliLin']=='S') { ?>
            <th>Ref. cliente linea</th>
            <?php } ?>
            
			<th>Cant.</th>
            
			<?php if($_SESSION['verEnCajas']=='S') { ?><th>Cajas</th><?php } ?>
            
			<th>Formato</th>
			
            <th>Preparado</th>
		</tr>
		<?php
	
		foreach($listado as $item) {
		
		$producto=$item['lineaProducto'];
		$datos=$producto['Datos']['PXMobileProxiumResult'];
		$contador=0;
		
		//4-3-2022 miramos si tiene desprecintado
		$fondoRosa=false;
		foreach($datos as $dato) {
			if($dato['Codigo']=='PRECEMP' && $dato['Valor']=='DP') $fondoRosa=true;
		}
		 
		?>
		<tr class="<?php if(!$preparable) { ?>verde<?php } ?> <?php if($fondoRosa) { ?>fondoRosa<?php } ?>">
        
			<td><?php echo $producto['Codigo']; ?></td>
            
            <?php if($_SESSION['orden']['GestCodB']=='S') { ?>
                <td><?php echo $producto['CodigoB']; ?></td>
            <?php } ?>
            
			<td align="left" style="max-width:400px;word-wrap:break-word;"><?php echo $producto['Descripcion']; ?></td>
			<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
				<?php if($comportamiento['Activo']=='S') { ?>
				<td>
				<?php
				if($producto['ControlNumSerie']=='S' && $comportamiento['Codigo']=='NS') {
					//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']) {
							echo formateaTipo($dato['Valor'],$comportamiento['Tipo']);
							break;
						}
					}
				}
				?>                </td>
				<?php } ?>
			<?php } ?>
            
             <?php if($_SESSION['orden']['EANVisible']=='S') { ?>
            <td align="center"><?php echo $producto['EAN']; ?></td>
            <?php } ?>
                    
            <?php if($_SESSION['orden']['MarcaVisible']=='S') { ?>
            <td align="center"><?php echo $producto['Marca']; ?></td>
            <?php } ?>
            
            <?php if($_SESSION['parametrosSGA']['ReferenciaCliEntrada']=='S') { ?>
            <td align="center"><?php echo $producto['RefCliente']; ?></td>
            <?php } ?>
            
            <?php if($_SESSION['parametrosSGA']['GestionRefCliLin']=='S') { ?>
            <td align="center"><?php echo $producto['RefCliLin']; ?></td>
            <?php } ?>

			<td align="right"><?php echo formateaNumeroDecimal($producto['Cantidad']); ?></td>
			
			<?php if($_SESSION['verEnCajas']=='S') { ?><td align="right"><?php echo formateaNumeroDecimal($producto['Cajas']); //echo number_format($producto['Cajas'],2,',','.'); ?></td><?php } ?>
            
            <td><?php echo $producto['UnidadMedidaDescripcion']; ?></td>
            
			<td align="right"><?php if($preparable) { ?>0<?php } else { echo formateaNumeroDecimal($producto['Cantidad']); } ?></td>
		</tr>
		<?php
		
		} //Fin iteracion productos
		
		?>
    </table>
  <?php
}


?>
<div id="popupGama" class="popup" style="display:none"></div>
<div id="popupGamaContenido" class="popupContenidoScroll" style="display:none"></div>

<div id="popupNumerosSerie" class="popup" style="display:none"></div>
<div id="popupNumerosSerieContenido" class="popupContenidoScroll" style="display:none"></div>

<div id="popupCrossdocking" class="popup" style="display:none"></div>
<div id="popupCrossdockingContenido" class="popupContenidoScroll" style="display:none"></div>

<div id="popupPaletsOperacionesLogisticas" class="popup" style="display:none"></div>
<div id="popupPaletsOperacionesLogisticasContenido" class="popupContenidoScroll" style="display:none"></div>

<div id="popupRegalos" class="popup" style="display:none"></div>
<div id="popupRegalosContenido" class="popupContenidoScroll" style="display:none"></div>


<?php if($_SESSION['orden']['InstruccionesPreparacionCab']) { ?>
<table class="tablaFormateada anchoMaximo" >
	<tr><th style="height:20px"><img src="<?php echo DIR_IMAGENES; ?>/iconos/informacion.png" style="width:25px;margin-bottom:-8px;margin-right:10px"/> Instrucciones de preparación</th>
	</tr>
	<tr><td valign="top"><?php if($_SESSION['orden']['InstruccionesPreparacionCab'] && is_string($_SESSION['orden']['InstruccionesPreparacionCab'])) echo nl2br($_SESSION['orden']['InstruccionesPreparacionCab']); ?></td></tr>
</table>
<?php } ?>


<?php

if($cargaRapida) {

	include('contenidos/orden-preparacion-carga-rapida-resumen-palets-obligatorios.php');

}



if(count($productosAPreparar)>0 || count($productosYaPreparados)>0 || count($albaranesAPreparar)>0 || count($albaranesYaPreparados)>0 || count($operacionesLogisticas)>0 ) {
	
	if( count($productosAPreparar)>0 || count($productosRobotEasyWMS)>0 ) {
	
		?><h3>Productos a preparar:</h3><?php
		
		//function pintaListadoProductos($listado,$preparable,$mostrarAgrupaciones=false,$mostrarReposicion=false) {
		
		if(isset($gestionMultiOperario) && $gestionMultiOperario && is_array($multiOperario_operarios) && count($multiOperario_operarios)>0) {  //$multiOperario_operarios está definido y controlado en --> contenidos/orden-preparacion-S-cabecera.php
		
			if($multiOperario_estoy_yo) {
			
				pintaListadoProductos($productosAPreparar,true,false,true,$_SESSION['usuario']['Usuario']);
				
				?><h3>Productos a preparar por OTROS operarios: <img src="<?php echo DIR_IMAGENES; ?>/flecha-abajo.png" class="flecha_desplegable" capa="OP_multioperario_capa_otros" visible="no"/></h3><?php
				
				?><div class="capa_desplegable OP_multioperario_capa_otros"><?php	
				pintaListadoProductos($productosAPreparar,false,false,true,'otrosoperarios');
				?></div><?php
			
			}
			else { //Es multiopeario, tiene operario y yo todavía no me he incluido
			
				pintaListadoProductos($productosAPreparar,false,false,true,'otrosoperarios');
			
			}
		}
		else {
		
			pintaListadoProductos($productosAPreparar,true,false,true);
			
		}
		
		if( is_array($productosRobotEasyWMS) && count($productosRobotEasyWMS)>0 ) {
		
			?><h3>Productos a preparar desde EASYWMS: <img src="<?php echo DIR_IMAGENES; ?>/flecha-abajo.png" class="flecha_desplegable" capa="productosRobotEasyWMS_capa" visible="no"/></h3><?php
			
			?><div class="capa_desplegable productosRobotEasyWMS_capa"><?php	
			pintaListadoProductos($productosRobotEasyWMS,false,false,true);
			?></div><?php
			
		}
		
	}
	
	if(is_array($operacionesLogisticas) && count($operacionesLogisticas)>0) {
	
		?>
        
        <h3>Palets procedentes de Operaciones logísticas:</h3>
        
        <table class="tablaFormateada" style="font-size:1em">
            <tr>
              <th width="120">Num Operacion</th>
                <th width="120">Tipo</th>
                <th width="120" colspan="2">Palets</th>
                <th width="90">Preparar</th>
            </tr>
		
			<?php foreach($operacionesLogisticas as $operacion) { ?>
        
        	<?php $numPalets=count(arreglaArrayPXMobileProxiumResult($operacion['NumOperacionPalets'])); ?>
            
        	<tr>
        	  <td><?php echo $operacion['NumOperacion']; ?></td>
                <td><?php echo $operacion['NumOperacionProcedencia']; ?></td>
                <td align="right"><?php echo $numPalets; ?></td>
                <td style="border-left:0"><img src="<?php echo DIR_IMAGENES; ?>/palet-info.png" width="40" height="40" class="botonOperacionesLogisticasInfoPalets clicable" operacion="<?php echo $operacion['NumOperacion']; ?>"/></td>
                <td><img src="<?php echo DIR_IMAGENES; ?>/botones/play.png" style="width:60px;height:60px;" class="botonOperacionesLogisticas clicable" border="0" operacion="<?php echo $operacion['NumOperacion']; ?>"/></td>
            </tr>
            
            <?php } ?>
        </table>
            
	<?php
		
	}
	
	if(isset($albaranesAPreparar) && is_array($albaranesAPreparar) && count($albaranesAPreparar)>0) {
	
		?>
        
        <h3>Albaranes a preparar mediante Cross Docking:</h3>
        
        <table class="tablaFormateada anchoMaximo" style="font-size:1em">
            <tr>
                <th width="120">Albarán Nº</th>
                <th width="500">Proveedor</th>
                <th width="90" colspan="2">Palets</th>
                <th width="90" colspan="2">Productos</th>
                <th width="90">Preparar</th>
            </tr>
		
			<?php foreach($albaranesAPreparar as $albaran) { ?>
        
        	<?php $numPalets=count(arreglaArrayPXMobileProxiumResult($albaran['Palets'])); ?>
        	<?php $numProductos=count(arreglaArrayPXMobileProxiumResult($albaran['Productos'])); ?>
            
        	<tr><td><?php echo $albaran['NumAlbaran']; ?></td>
            <td><?php echo $albaran['ProveedorNombre']; ?></td>
            <td align="right"><?php echo $numPalets; ?></td>
            <td style="border-left:0"><img src="<?php echo DIR_IMAGENES; ?>/palet-info.png" alt="" width="40" height="40" class="botonCrossdockingInfoPalets clicable" numalbaran="<?php echo $albaran['NumAlbaran']; ?>" listadopalets=""/></td>
            <td align="right"><?php echo $numProductos; ?></td>
            <td style="border-left:0"><img src="<?php echo DIR_IMAGENES; ?>/palet-info.png" width="40" height="40" class="botonCrossdockingInfoProductos clicable" numalbaran="<?php echo $albaran['NumAlbaran']; ?>"/></td>
            <td><img src="<?php echo DIR_IMAGENES; ?>/botones/play.png" style="width:60px;height:60px;" class="botonCrossdockingAlbaran clicable" border="0" numalbaran="<?php echo $albaran['NumAlbaran']; ?>"/></td>
			
            <?php } ?>
  	</table>
            
	<?php
		
	}

	if(count($productosYaPreparados)>0) {
	
		?><h3><?php if($cargaRapida) { ?>Palets<?php } else { ?>Productos<?php } ?> ya preparados <?php if($_SESSION['orden']['TipoOrden']=='P') { ?>en este picking<?php } ?>:</h3><?php
		
		pintaListadoProductos($productosYaPreparados,false,true,false,false,$gestionPickingCierrePalets);

	}
	
	if(count($productosPickingOleadaExpediciones)>0) {
	
		?><h3>Productos de esta oleada ya preparados en expedición:</h3><?php
		
		//pintaListadoProductos($productosPickingOleadaExpediciones,false,true,false,false,$gestionPickingCierrePalets);
		pintaListadoProductos($productosPickingOleadaExpediciones,false,true,false,false,false);

	}
	
	if(count($albaranesYaPreparados)>0) {
	
		?><h3>Productos ya preparados mediante Cross Docking:</h3><?php
		
		foreach($albaranesYaPreparados as $albaran) {
			
			?><h2>Albarán Nº <?php echo $albaran['NumAlbaran']; ?></h2><?php
			?><p style="font-weight:400;font-family:'Roboto Condensed',sans-serif;font-size:1.2em;color:#6db200"><?php
			foreach($albaran['Palets'] as $palet) {
				?><span style="margin-right:20px"><img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:35px;margin-right:5px;margin-bottom:-7px"/> <?php echo $palet; ?></span><?php 
			}
			?></p><?php
			$listado=array();
			foreach($albaran['Productos'] as $producto) $listado[]=array('lineaProducto'=>$producto);
			pintaListadoProductosSimple($listado,false);
			
		}

	}
	
	if($traza) {
		echo '<p>cargaRapida: '.$cargaRapida.'</p>';
		echo '<p>cantidadAgrupacionesEnEstaOrden: '.$cantidadAgrupacionesEnEstaOrden.'</p>';
	}
	
	if(count($productosYaPreparados)>0 || $algunosProductosPreparados || count($albaranesYaPreparados)>0 ) {
	
		//echo '<p>NumPaletsServir: '.$_SESSION['orden']['NumPaletsServir'].'</p>';
		//echo '<p>cantidadAgrupacionesEnEstaOrden: '.cantidadAgrupacionesEnEstaOrden.'</p>';
	
		if($cargaRapida && ( !$_SESSION['orden']['NumPaletsServir'] || ($_SESSION['orden']['NumPaletsServir'] && $cantidadAgrupacionesEnEstaOrden==$_SESSION['orden']['NumPaletsServir']) ) && $_SESSION['orden']['Estado']=='Iniciada') {
		
			?><p><input type="submit" name="botonCargaRapidaCerrar" id="botonCargaRapidaCerrar" value="CERRAR ORDEN" class="boton"/></p><?php
		
		}
	
		if($_SESSION['orden']['EstadoOprep']!='Cerrada' && $_SESSION['orden']['Estado']=='Iniciada') {
			?><p><input type="submit" name="botonLiberar" id="botonLiberar" value="Liberar productos preparados"class="mostrarCargando boton reducido"/></p><?php
		}
	}
	
	if($marcarFinOrden=='S' && $_SESSION['orden']['EstadoOprep']!='Cerrada') {
		?>
        <form id="formularioFinOrden" name="formularioFinOrden" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>&finalizar=si">
        	<p><input type="submit" name="botonFinOrden" id="botonFinOrden" value="Marcar como Completada" class="boton"/></p>
        </form>
		<?php
	}
	
}



if(count($productosPendientes)>0 && $_SESSION['orden']['EstadoOprep']!='Cerrada') {

	?>
    <h3 style="color:#CC0000">Productos en preparación no disponible:</h3>
	<?php
	
	pintaListadoProductos($productosPendientes,false);
	
	if( $_SESSION['parametrosSGA']['MostrarRecepcionesPendientes']=='S' && $_SESSION['orden']['PendienteRecibir']=='S' ) {
		?><p><input type="submit" name="botonMostrarRecepcionesPendientes" id="botonMostrarRecepcionesPendientes" value="Mostrar recepciones pendientes" class="boton"/></p><?php
	} 
	
}
?>

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

<div id="separadorParaBarraFiltro" style="height:70px;clear:both"></div>

<div class="barraFiltro">
    	
            <table cellpadding="5" style="margin:0 auto">
                <tr>
                	<?php if( $_SESSION['SGAEspecialAcrylicos']=='S' ) { ?>
                	<td>
                    Caja de Expedición:<br />
                    <select name="filtroCaja" id="filtroCaja" class="campo selectorFiltro" style="width:250px">
                        <option value="">---</option>
                        <?php foreach($comboCajas as $item) { ?>
                        <option value="<?php echo $item; ?>" <?php if($_SESSION['filtrosOP']['filtroCaja']==$item) { ?>selected<?php } ?>><?php echo $item; ?></option>
                        <?php } ?>
                    </select>
                    </td>
                    <?php } ?>
                    <td>
                    Producto:<br />
                    <input type="text" name="filtroProducto" id="filtroProducto" class="campo selectorFiltro mayusculas" style="font-size:1em;width:250px" value="<?php echo $_SESSION['filtrosOPOrden']['filtroProducto']; ?>"/><img src="<?php echo DIR_IMAGENES; ?>/x-ajustado.png" alt="Borrar" style="position:absolute;width:13px;margin-left:-25px;margin-top:10px" class="clicable" id="borrarFiltroProducto"/>
                    </td>
                    <td>
                    Preparación:<br />
                    <select name="filtroPreparacion" id="filtroPreparacion" class="campo selectorFiltro" style="width:250px">
                        <option value="">---</option>
                        <option value="si" <?php if( $_SESSION['filtrosOPOrden']['filtroPreparacion']=='P' || ($_SESSION['FiltroEstadoOrdenDefecto']=='P' && !$_SESSION['filtrosOPOrden']['filtroPreparacion']) ) { ?>selected<?php } ?>>Preparado</option>
                        <option value="no" <?php if( $_SESSION['filtrosOPOrden']['filtroPreparacion']=='PP' ||($_SESSION['FiltroEstadoOrdenDefecto']=='PP' && !$_SESSION['filtrosOPOrden']['filtroPreparacion']) ) { ?>selected<?php } ?>>Pendiente de preparar</option>
                    </select>
                    </td>
                    <td>
                    <img id="filtroApagado" src="<?php echo DIR_IMAGENES; ?>/botones/filter-off.png" alt="Filtro" class="botonFiltro"/>
                    <img id="aplicarFiltro" src="<?php echo DIR_IMAGENES; ?>/botones/filter.png" alt="Filtro" class="botonFiltro" style="display:none;cursor:pointer;"/>
                    <img id="quitarFiltro" src="<?php echo DIR_IMAGENES; ?>/botones/filter-remove.png" alt="Filtro" class="botonFiltro" style="display:none;cursor:pointer"/>
                    </td>
                </tr>
            </table>
            
</div>

<?php } //Fin if not carga rapida (en carga rapida no muestro filtros ?>

</div> <!-- classe estilosOP -->

<script>

	function repintarTabla() {
	
		$(".lineaOrden").children('td').css('background-color','#ffffff');
		$(".lineaOrden").children('td').css('border-bottom','');
		$(".lineaOrden").children('td').css('border-radius','');
		$(".lineaOrden").children('td').css('-mozborder-radius','');
		$(".lineaOrden").children('td').css('-webkit-border-radius','');
	
		var par=true;
		var ultimaFila;
		
		$(".lineaOrden").each(function(){
			if( $(this).is(":visible") ) {
				if(par) $(this).children('td').css('background-color','#ffffff');
				else $(this).children('td').css('background-color','#eeeeee');
				par = !par;
				ultimaFila=$(this);
			}
        });
		
		if(ultimaFila) {
			ultimaFila.children('td').css('border-bottom','1px solid #999999');
			ultimaFila.children('td:first').css('border-radius','0 0 0 15px');
			ultimaFila.children('td:first').css('-mozborder-radius','0 0 0 15px');
			ultimaFila.children('td:first').css('-webkit-border-radius','0 0 0 15px');
			ultimaFila.children('td:last').css('border-radius','0 0 15px 0');
			ultimaFila.children('td:last').css('-mozborder-radius','0 0 15px 0');
			ultimaFila.children('td:last').css('-webkit-border-radius','0 0 15px 0');
		}
	}
	
	function aplicarFiltro(id) {
	
		if( $('#filtroCaja').val()=='' && $('#filtroProducto').val()=='' ) {
			$('#filtroApagado').show();
			$('#quitarFiltro').hide();
			$('#aplicarFiltro').hide();
		}
		else  {
			$('#filtroApagado').hide();
			$('#quitarFiltro').show();
			$('#aplicarFiltro').hide();
		}
		
		$('.lineaOrden').each(function() {
		
			var coincidenciaCaja=false;
			var coincidenciaProducto=false;
			var coincidenciaPreparacion=false;
			
			console.log('filtroCaja: '+$('#filtroCaja').val()+' / filtroProducto: '+$('#filtroProducto').val()+' / filtroPreparacion: '+$('#filtroPreparacion').val());
			
			if( $('#filtroCaja').val()!='' && $(this).attr('caja').indexOf($('#filtroCaja').val())>-1 ) coincidenciaCaja=true;
			else if( $('#filtroCaja').val()=='' ) coincidenciaCaja=true;
		
			if( $('#filtroProducto').val()!='' && ( $(this).attr('codigo').toUpperCase()==$('#filtroProducto').val().toUpperCase() || $(this).attr('descripcion').toUpperCase().indexOf($('#filtroProducto').val().toUpperCase())>-1  ) ) coincidenciaProducto=true;
			else if( $('#filtroProducto').val()=='' ) coincidenciaProducto=true;
			
			if( $('#filtroPreparacion').val()!='' && $(this).attr('preparacion')==$('#filtroPreparacion').val() ) coincidenciaPreparacion=true;
			else if( $('#filtroPreparacion').val()=='' ) coincidenciaPreparacion=true;
			
			<?php if( $_SESSION['SGAEspecialAcrylicos']=='S' ) { ?>
			if( coincidenciaCaja && coincidenciaProducto && coincidenciaPreparacion) $(this).show();
			<?php } else { ?>
			if( coincidenciaProducto && coincidenciaPreparacion) $(this).show();
			<?php } ?>
			else $(this).hide();
		});
		

		repintarTabla();
		
		actualizaFiltrosVariablesSesion();
	
	}



function redireccionFinal(Codigo,Ubicacion,Contenedor,NumeroEntrada,LineaEntrada) {

	console.log('Redireccion final para el codigo: '+Codigo);
	
	//16-10-2024 aqui se detecta que lso datos de parametrización NO se están pasando. Se han perdido en algun momento, al subdividir en rutinas
	var seleccionado;
	$('.selectorInicio').each( function(){
		if( $(this).is(":checked") ) seleccionado=$(this);
	});
	
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-producto-inicio.php" , { 'Codigo' : Codigo , 'Ubicacion' : Ubicacion , 'Contenedor' : Contenedor , 'NumeroEntrada' : NumeroEntrada , 'LineaEntrada' : LineaEntrada <?php foreach($_SESSION['comportamientosGlobales'] as $comportamiento) { echo " , '".$comportamiento['NombreSQL']."' : seleccionado.attr('".$comportamiento['NombreSQL']."')"; } ?> } )
	.done( function(){
			
		window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-<?php echo $_SESSION['tipoGestion']; ?><?php if($_SESSION['SGAEspecialAcrylicos']=='S') echo "-cajas"; ?>.php?inicio=si';
							
	});

}



function gestionaPlayConvencional( numAlbaran , operacion ) {

	console.log('Traza 5. Function gestionaPlayConvencional (funcion final que redirige a una página u otra) / numAlbaran: '+numAlbaran+' / operacion: '+operacion);

	//Este es el script que inicialmente se asociaba al click del botón play, antes de la posibilidad de gestión de PL desde inicio
	//En cualquier caso, tanto si primero se gestiona PL como si se da al play para leer directamente, el inicio (bloqueo) de la OP se hace ahora fuera, antes estaba metido aqui

	$('#popupCargando').show();
	
	var cargaRapida='<?php if($cargaRapida) echo 'S'; ?>';
	
	if( cargaRapida ) {
	
		console.log('Traza 5 0. El play venía de carga rapida.');
	
		<?php if( !$_SESSION['orden']['NumPaletsServir'] || ($_SESSION['orden']['NumPaletsServir'] && $_SESSION['orden']['NumPaletsServir']>$cantidadAgrupacionesEnEstaOrden ) ) { ?>
	
		window.location='<?php echo $rutaHtml; ?>/orden-preparacion-S-proceso-carga-rapida.php';
		
		<?php } else { ?>
		
		window.location=window.location;
		
		<?php } ?>
	
	}
	else if( numAlbaran ) {
	
		console.log('Traza 5 A. El play venía de albaran.');
	
		window.location='<?php echo $rutaHtml; ?>/orden-preparacion-S-proceso-crossdocking.php?numalbaran='+numAlbaran;
	
	}
	else if( operacion ) {
	
		console.log('Traza 5 B. El play venía de operacion logistica.');
	
		window.location='<?php echo $rutaHtml; ?>/orden-preparacion-S-proceso-operacioneslogisticas.php?operacion='+operacion;
	
	}
	else {
	
		console.log('Traza 5 A. El play venía del menú lateral.');
	
		var checkedInicio=false;
		var hayChecked=false;
		
		const mostrarModoSeleccion=<?php if($mostrarModoSeleccion) echo 'true'; else echo 'false' ?>;
		//const modoSeleccion='<?php echo $_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]; ?>';
		const modoSeleccion=$('input:radio[name=modoSeleccion]:checked').val(); //si cogemos el de arriba, en el momento del cambio no lo coge puesto que lo interpreta php
		
		
		//27-08-2024 primero miramos si hay check de inicio
		
		$('.selectorInicio').each( function(){
		
			if( $(this).is(":checked") ) checkedInicio=true;
		
		});
		
		console.log('---- checkedInicio: '+checkedInicio);
		console.log('---- mostrarModoSeleccion: '+mostrarModoSeleccion);
		console.log('---- modoSeleccion: '+modoSeleccion);
		console.log({checkedInicio, mostrarModoSeleccion, modoSeleccion});
		
		if(  checkedInicio && ( !mostrarModoSeleccion || ( mostrarModoSeleccion && modoSeleccion=='L' ) ) ) {
		
		
			console.log('Traza 6 A. Hay check de inicio.');
			
			
			$('.selectorInicio').each( function(){
				
				if( $(this).is(":checked") ) {
				
					console.log('Se ha encontrado una fila con el check marcado');
					console.log('El codigo es: '+$(this).attr('Codigo'));
					
					var linea=$(this);
				
					var FechaCaducidadEstado=$(this).attr('FechaCaducidadEstado');
					
					<?php if($Controlcaducadosycortosdefecha) { ?>
					
					if(FechaCaducidadEstado=='CADUCADO') {
						$('#popupCargando').hide();
						alert('AVISO: El producto reservado para servir está caducado.',null,'advertencia','OK')
						.done( function() {
						
							$('#popupCargando').show();
						
							redireccionFinal( linea.attr('Codigo') , linea.attr('Ubicacion') , linea.attr('Contenedor') , linea.attr('NumeroEntrada') , linea.attr('LineaEntrada') );
							
						});
					}
					else if(FechaCaducidadEstado=='PROXIMOACADUCAR') {
						$('#popupCargando').hide();
						alert('AVISO: El producto reservado para servir está próximo a su fecha de caducidad.',null,'advertencia','OK')
						.done( function() {
						
							$('#popupCargando').show();
						
							redireccionFinal( linea.attr('Codigo') , linea.attr('Ubicacion') , linea.attr('Contenedor') , linea.attr('NumeroEntrada') , linea.attr('LineaEntrada') );
							
						});
					}
					else {
					
						redireccionFinal( linea.attr('Codigo') , linea.attr('Ubicacion') , linea.attr('Contenedor') , linea.attr('NumeroEntrada') , linea.attr('LineaEntrada') );
						
					}
					
					<?php } else { ?>
					
					console.log('No hay ningun problema con la fecha de caducidad');
					
					redireccionFinal( linea.attr('Codigo') , linea.attr('Ubicacion') , linea.attr('Contenedor') , linea.attr('NumeroEntrada') , linea.attr('LineaEntrada') );
					
					
					
					<?php } ?>
					
				}
				
			});
			

		}
		else { //No hay check de inicio
		
			console.log('Traza 6 B. NO hay check de inicio.');
			console.log('mostrarModoSeleccion: '+mostrarModoSeleccion);
			console.log('modoSeleccion: '+modoSeleccion);
		
			
			if( mostrarModoSeleccion && modoSeleccion=='L' ) {
			
				console.log('Traza 7 A.');
				
				$('#popupModoSeleccionArticulo').hide();
				$('#popupModoLecturaCajaPalet').hide();
			
				
				$('#popupCargando').hide();
				alert('hola');
				

				<?php if($_SESSION['orden']['Estado']=='Iniciada') { ?>
				
					alert('ATENCION: El modo de selección es por listado.<br>Debes seleccionar uno de los productos para preparar.',null,'advertencia');
				
				<?php } else { ?>
				
					console.log('Traza 8 B. NO está la orden iniciada. Es el principio, reiniciamos la pantalla para actualizar');
				
					$('#popupCargando').show();
					window.location=window.location;
					
				<?php } ?>

				
				console.log('Traza 7 XXX.');
			
			}
			else {
			
				console.log('Traza 7 B.');
		
				console.log('NO se ha encontrado ninguna fila con el check marcado');
					
				window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-<?php echo $_SESSION['tipoGestion']; ?><?php if($_SESSION['SGAEspecialAcrylicos']=='S') echo "-cajas"; ?>.php?';
				
			}
			
		
		}
	
	}

}



function gestionaPackingList( numAlbaran , operacion ) {

	console.log('Traza 6. Function gestionaPackingList / numAlbaran: '+numAlbaran+' / operacion: '+operacion);

	<?php if($_SESSION['orden']['PackingList']) { ?>
	
	console.log('Traza 6 A. El PL ya está asociado, se procede al play convencional.');
	
	gestionaPlayConvencional( numAlbaran , operacion );
	
	<?php } else { ?>
	
	console.log('Traza 6 B. No hay PL se procede a gestionarlo.');
	
	$('#popupCargando').show();
		
			
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-packing-info.php", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' })
	.done(function(data) {
	
		//console.log("<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-packing-info.php");
		//console.log(data);
	
		
		$('#popupCargando').hide();
					
		var valores=data.split('#');
		var resultado=valores[0];
		
		if(resultado==4) {
			//27-05-2022 en Bayport multiusuario, comprobamos que si dos usuarios inician al mismo tiempo, al segundo le sugiere asociar al PL que
			//ya se había asociado en el primero. Gestionamos un nuevo campo para controlar esto y el info debe devolver 4 en este caso, entonces continuamos como si nada
			gestionaPlayConvencional( numAlbaran , operacion );
		}
		else if(resultado==0) {
			alert('ERROR: '+resultado);
		}
		else if(resultado==3) { //No hay PL, se crea uno nuevo
		
			console.log('Traza 6 B A. Se crea un nuevo PL de forma automática.');
		
			asociaOrdenPacking('<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>',null,numAlbaran,operacion);
						
		}
		else if(resultado==2) { //Hay Packing Lists coincidentes con la orden de preparación actual
			
			console.log('Traza 6 B A. Hay PLs coincidentes se lanza el popup para tomar la decisión.');
			
			$('#popupCargando').show();
					
			$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-packing-elegir-packing-list.php<?php if($traza) { ?>?traza=si<?php } ?>", { 'orden' : '<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>' , 'numalbaran' : numAlbaran })
			.done(function(data) {
								
				$('#popupPackingListsContenido').html(data);
								
				$('#popupPackingLists').show();
				
				var posicion = $('html').scrollTop();
				$('#popupPackingListsContenido').css('top',parseInt(posicion)+50);
				
				$('#popupPackingListsContenido').show();
				
				$('#popupCargando').hide();
									
			});
						
		}

		
	
	});
	
	
	<?php } ?>

}

function asociaOrdenPacking(orden,packinglist,numAlbaran,operacion) {
	
	console.log('Traza 7. Function asociaOrdenPacking / numAlbaran: '+numAlbaran+' / operacion: '+operacion);
	
	$('#popupCargando').show();
								
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-packing-asociar.php", { 'orden' : orden , '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')
				.done(function(){
				
					$('#mensajeAsociacionPacking').html('Esta orden de preparación está asociada al <strong>Packing List '+packinglist+'</strong>');
					$('#packingList').val(packinglist);
					
					gestionaPlayConvencional( numAlbaran , operacion );
					
				});
				
			}

		}
						
	});
	
}

function gestionaPlay( numAlbaran , operacion ) {

	console.log('Traza 4. Function gestionaPlay / numAlbaran: '+numAlbaran);

	<?php if( $tipoOrdenConPackingList && $validacionPackingInicial && !$_SESSION['orden']['PackingList'] ) { ?>
		
		console.log('Traza 4 A. Primero hay que gestionar PL.');
		
		gestionaPackingList( numAlbaran , operacion );
		
	<?php } else { //Es un play de inicio normal, que no tiene gestion de PL al inicio (nuevo formato) o bien el PL ya está creado ?>
	
		console.log('Traza 4 B. No hay que hacer gestion de PL o bien el PL ya está creado.');
		
		gestionaPlayConvencional( numAlbaran , operacion );
		
	<?php } ?>
		
}

function gestionaInicio( numAlbaran , operacion ) {

	console.log('Traza 3. Function gestionaInicio / numAlbaran: '+numAlbaran+' / operacion: '+operacion);

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

	<?php if($mostrarModoLectura) { ?>
	$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-selectorModoLectura-grabar.php" , { modoSeleccionado : $('input:radio[name=modoPreparacion]:checked').val() } )
	.done(function(data) {
	<?php } ?>	
	
		<?php if($mostrarModoSeleccion) { ?>
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-selectorModoSeleccion-grabar.php" , { modoSeleccionado : $('input:radio[name=modoSeleccion]:checked').val() } )
		.done(function(data) {
		<?php } ?>	

			<?php if($_SESSION['orden']['Estado']!='Iniciada') { ?>
			
				console.log('Traza 3 A. La orden no está iniciada, se inicia');
			
				$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-iniciar.php" )
				.done(function(data) {
					var resultado=data.split('#');
					if(resultado[0]==1) {
						$('#popupCargando').hide();
						alert('Error: '+resultado[1],null,'error');
					}
					else {
						gestionaPlay( numAlbaran , operacion );
					}
				});
			
			<?php } else { ?>
			
				console.log('Traza 3 B. La orden YA estaba iniciada, se procede a procesar el play.');
				
				gestionaPlay( numAlbaran , operacion );
				
			<?php } ?>
		
		<?php if($mostrarModoSeleccion) { ?>
		});
		<?php } ?>
	
	<?php if($mostrarModoLectura) { ?>
	});
	<?php } ?>	
				
}

function botonPlay( numAlbaran , operacion ) {

	console.log('Traza 2. Function botonPlay / numAlbaran: '+numAlbaran+' / operacion: '+operacion );

	<?php if($_SESSION['orden']['Estado']=='Iniciada' && !$primeroSeleccionarModoLectura ) { ?>
		
		console.log('Traza 2 A. Orden iniciada y no hay que seleccionar modo lectura / numAlbaran: '+numAlbaran+' / operacion: '+operacion );
		
		gestionaPlay( numAlbaran , operacion );
		
	<?php } else { ?>
	
		console.log('Traza 2 B. Orden NO iniciada');
		
		<?php if( $_SESSION['orden']['InstruccionesPreparacionCab'] && is_string($_SESSION['orden']['InstruccionesPreparacionCab']) ) { ?>
		var textoInstrucciones='<h3>Instrucciones de preparación:</h3><?php echo preg_replace("/[\r\n|\n|\r]+/","",nl2br(addslashes($_SESSION['orden']['InstruccionesPreparacionCab']))); ?>';
		alert(textoInstrucciones,null,'informacion')
		.done(function(){
		<?php } ?>
		
			if( !numAlbaran && !operacion ) {
		
			console.log('primeroSeleccionarModoLectura: <?php echo $primeroSeleccionarModoLectura; ?>');
			console.log('count productosAPreparar: <?php echo count($productosAPreparar); ?>');
		
			<?php if( $primeroSeleccionarModoLectura && count($productosAPreparar)>0 && !$cargaRapida) { ?>
			
				console.log('Traza 2 B A. Seleccionar modo de lectura antes de iniciar');
			
				$('#popupModoLecturaCajaPalet').show();
			
			<?php } else { ?>
			
				console.log('Traza 2 B B. Gestionamos inicio sin modo lectura');
			
				gestionaInicio();
			
			<?php } ?>
			
			}
			else gestionaInicio( numAlbaran , operacion );
			
		<?php if( $_SESSION['orden']['InstruccionesPreparacionCab'] ) { ?>
		});
		<?php } ?>
		
	<?php } ?>
		
}

function actualizaFiltrosVariablesSesion() {
			
	//12-06-2023 Guardamos los filtros en session para conservarlos
	$.post( '<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-filtros.php?<?php foreach(unserialize(FILTROS_OP_ORDEN) as $filtro) { echo $filtro."='+$('#".$filtro."').val()+'&"; } ?>' );
			
}

$(document).ready(function() {

	$('.verTrazabilidad').on('click',function(){
	
		$('#popupCargando').show();
		
		let numeros=$(this).attr('numeros');
	
		$.post('<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-ids.php' , { 'numeros' : numeros , 'accion' : null })
		.done(function(data) {
		
			$('#popupCargando').hide();
		
			$('#popupTrazabilidadContenido').html(data);
			$('#popupTrazabilidad').show();
			$('#popupTrazabilidadContenido').show();
			
			var posicion=$(document).scrollTop();
			$('#popupTrazabilidadContenido').offset({ top: posicion+20 });
		});
		
	});

	<?php if(!empty($_SESSION['FiltroEstadoOrdenDefecto'])) { ?>
	aplicarFiltro();
	<?php } ?>
	
	$('.verNumerosSerie').on('click',function(){
		$.post('<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-numeros-serie.php' , { 'numeros' : $(this).attr('numeros') , 'mostrarUbicacion' : 'si' , 'mostrarContenedor' : 'si' })
		.done(function(data) {
			$('#popupNumerosSerieContenido').html(data);
			$('#popupNumerosSerie').show();
			$('#popupNumerosSerieContenido').show();
			
			var posicion=$(document).scrollTop();
			$('#popupNumerosSerieContenido').offset({ top: posicion+20 });
		});
	});

	$('.selectorGama').on("click",function(){
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-gama.php?traza=<?php echo $_GET['traza']; ?>" , { 'Codigo' : $(this).attr('Codigo') , 'Ubicacion' : $(this).attr('Ubicacion') , 'Contenedor' : $(this).attr('Contenedor') , <?php foreach($_SESSION['comportamientosGlobales'] as $comportamiento) { echo "'".$comportamiento['NombreSQL']."' : "; ?>$(this).attr('<?php echo $comportamiento['NombreSQL'] ; ?>')<?php echo " , "; } ?> 'NumeroEntrada' : $(this).attr('NumeroEntrada') , 'LineaEntrada' : $(this).attr('LineaEntrada') , 'pendientes' : $(this).attr('pendientes') } )
			.done(function(data) {
				$('#popupGamaContenido').html(data);
				$('#popupGama').show();
				$('#popupGamaContenido').show();
						
				if($(document).scrollTop() > 0 ) $('#popupGamaContenido').css({ top: $(document).scrollTop() });
		});
		return false;
	});

	<?php if( $_SESSION['parametrosSGA']['PickingPacking']=='S' || $_SESSION['SGAEspecialAcrylicos']=='S' ) { ?>
	
	$('#botonPalets').on("click",function(e){
		e.preventDefault();
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-palets-listado-completo.php" , { textoAgrupaciones : '<?php echo $textoAgrupaciones; ?>' , 'pedirContenedorDestinoUbicacion' : '<?php echo $pedirContenedorDestinoUbicacion; ?>' } )
		.done( function(data){
			$('#popupPaletsContenido').html(data);
			$('#popupPalets').show();
			$('#popupPaletsContenido').show();
			$('#popupCargando').hide();
			
			<?php if( isset($_SESSION['carga']) && $_SESSION['orden']['EstadoOprep']=='Cerrada' ) { ?>
			$('#botonInformarAtributos').hide();
			<?php } ?>
			
		});
	
	});
	
	<?php } ?>
	
	<?php if($_SESSION['SGAEspecialAcrylicos']=='S') { ?>
	
	$('#botonCajas').on("click",function(e){
	
		$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-cajas-listado-completo.php" )
		.done( function(data){
			$('#popupCajasContenido').html(data);
			$('#popupCajas').show();
			$('#popupCajasContenido').show();
			$('#popupCargando').hide();
		});
	
	});
	
	<?php } ?>

	$('#botonCargaRapidaCerrar').on("click",function(e){
		<?php if($errorCargaRapidaPaletsObligatorios) { ?>
		confirm('Hay productos de carga obligatoria que no se han leído.<br>Si continúas no cumplirás con las especificaciones del cliente.<br><br>¿Deseas continuar?','advertencia')
		.done(function(){
			$('#popupCargando').show();
			window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-S.php';
		});
		<?php } else { ?>
			$('#popupCargando').show();
			window.location='<?php echo $rutaHtml; ?>/orden-preparacion-proceso-S.php';
		<?php } ?>
	});

	$('#botonLiberar').on("click",function(e){
		window.location='<?php echo $rutaHtml; ?>/orden-preparacion-liberar<?php if($_SESSION['SGAEspecialAcrylicos']=='S') echo "-cajas"; ?>.php?orden=<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>&empresa=<?php echo $_SESSION['orden']['Empresa']; ?>&procedencia=ordenPreparacion'
	});

	$('#botonSgteProducto').on("click",function(e){
	
		console.log('Traza 1. Play en botón de menú lateral');
	
		<?php //if( !$mostrarModoSeleccion || ( $mostrarModoSeleccion && isset($_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']]) ) ) { ?>
		botonPlay(null);
		<?php //} else { ?>
		//$('#popupModoSeleccionArticulo').show();
		<?php //} ?>
		
	});
	
	
	
	<?php if($mostrarModoLectura) { ?>
	
	$('#botonModoLecturaAceptar').on('click',function(e){
		if ( $('input:radio[name=modoPreparacion]:checked').val() ) {
			<?php //if($mostrarModoSeleccion && ( !$_SESSION['modosSeleccionOPs'] || !$_SESSION['modosSeleccionOPs'][$_SESSION['orden']['OrdenPreparacion']] ) ) { ?>
			<?php if($mostrarModoSeleccion && $_SESSION['orden']['Estado']!='Iniciada') { ?>
			$('#popupModoSeleccionArticulo').show();
			<?php } else { ?>
			gestionaInicio();
			<?php } ?>
		}
		else alert('Por favor, especifica el modo de preparación para esta Orden.',null,'error');
	});
	
	$('#botonModoLecturaCancelar').on('click',function(e){
		$('#popupModoLecturaCajaPalet').hide();
	});
	
	$('#botonModoLectura').on('click',function(e){
		$('#popupModoLecturaCajaPalet').show();
	});
	
	<?php } ?>
	
	<?php if($mostrarModoSeleccion) { ?>
	
	$('#botonModoSeleccionAceptar').on('click',function(e){
		if ( $('input:radio[name=modoSeleccion]:checked').val() ) gestionaInicio();
		else alert('Por favor, especifica el modo seleccoin de artículos para esta Orden.',null,'error');
	});
	
	$('#botonModoSeleccionCancelar').on('click',function(e){
		$('#popupModoSeleccionArticulo').hide();
	});
	
	$('#botonModoSeleccion').on('click',function(e){
		$('#popupModoSeleccionArticulo').show();
	});
	
	<?php } ?>
	
	
	$('.selectorInicio').on("click",function(){
		valorActual=$(this).prop('checked');
		$('.selectorInicio').prop('checked',false);
		$(this).prop('checked',valorActual);
	});


		$('.selectorFiltro').on("change",function(e) {
			e.preventDefault();
			aplicarFiltro();
		});
		
		$('#filtroProducto').on("click",function(){
		
			$('#teclado').show();
			$('#valor').val( $('#filtroProducto').val() );
			$('#valorOculto').val( $('#filtroProducto').val() );
			$('#enter').attr('campoValor','filtroProducto');
			$('#enter').attr('formulario','');
			$('#enter').attr('forzarEnter','si');
			
		});
		
		$('#borrarFiltroProducto').on("click",function(){
			$('#filtroProducto').val('');
			aplicarFiltro();
		});
	
		$('#quitarFiltro').on("click",function() {
		
			$('#filtroCaja option:selected').removeProp('selected');
			$('#filtroProducto').val('');
			$('#filtroPreparacion option:selected').removeProp('selected');
			
			$('#filtroCaja option[value=""]').prop('selected',true);
			$('#filtroProducto').val('');
			$('#filtroPreparacion option[value=""]').prop('selected',true);
			
			$('#filtroApagado').show();
			$('#quitarFiltro').hide();
			$('#aplicarFiltro').hide();

			$(".lineaOrden").show();
			
			
			repintarTabla();
			
			actualizaFiltrosVariablesSesion();
			
		});
		
		$('#botonFinOrden').on("click",function(e){
			e.preventDefault();
			confirm("Vas a proceder a marcar la Orden como Completada.")
			.done(function(){
				
				$('#popupCargando').show();
				$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-marcar-completada.php" )
					.done(function(data) {
						var resultado=data.split('#');
						if(resultado[0]==1) {
							$('#popupCargando').hide();
							alert('Error: '+resultado[1]);
						}
						else {
							<?php if($_SESSION['orden']['Estado']=='Iniciada') { ?>
							$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-finalizar.php" )
								.done(function(data) {
									var resultado=data.split('#');
									if(resultado[0]==1) {
										$('#popupCargando').hide();
										alert('Error: '+resultado[1]);
									}
									else window.location='<?php echo $_SESSION['orden']['procedenciaPantallaTablet']; ?>';	
							});
							<?php } else { ?>
							window.location='<?php echo $_SESSION['orden']['procedenciaPantallaTablet']; ?>';
							<?php } ?>
						}
				});
			});
		});
		
		$('#botonMostrarRecepcionesPendientes').on('click',function(){
			$('#popupCargando').show();
			window.location='<?php echo $rutaHtml; ?>/orden-preparacion-recepciones-pendientes.php';
		});
		
		$('#botonReorganizar').on('click',function(){
			$('#popupCargando').show();
			window.location='<?php echo $rutaHtml; ?>/packing-list-reorganizar.php';
		});
		
		
		//Botones info cross docking
		$('.botonCrossdockingInfoPalets').on('click',function(){
			
			$('#popupCargando').show();
			
			var numalbaran=$(this).attr('numalbaran');
			var listadopalets=$(this).attr('listadopalets');
			
			$.post( '<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-crossdocking-palets.php?numalbaran='+numalbaran+'&listadopalets='+listadopalets )
			.done(function(data) {
			
				$('#popupCrossdockingContenido').html(data);
				
				var posicion = $('html').scrollTop();
				//$('#popupCrossdockingContenido').animate({top:parseInt(posicion)+100});
				$('#popupCrossdockingContenido').css('top',parseInt(posicion)+50);
				
				$('#popupCrossdockingContenido').show();
				$('#popupCrossdocking').show();
				
				$('#popupCargando').hide();
				
				
			});
			
		});
		
		$('.botonCrossdockingInfoProductos').on('click',function(){
			
			$('#popupCargando').show();
			
			var numalbaran=$(this).attr('numalbaran');
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-crossdocking-productos.php?numalbaran="+numalbaran )
			.done(function(data) {
			
				$('#popupCrossdockingContenido').html(data);
				
				var posicion = $('html').scrollTop();
				//$('#popupCrossdockingContenido').animate({top:parseInt(posicion)+100});
				$('#popupCrossdockingContenido').css('top',parseInt(posicion)+50);
				
				$('#popupCrossdockingContenido').show();
				$('#popupCrossdocking').show();
				
				$('#popupCargando').hide();
			});
			
		});
		
		$('.botonCrossdockingAlbaran').on('click',function(){
		
			var numalbaran=$(this).attr('numalbaran');
			
			console.log('Traza 1. Play en botón albaran');
			
			botonPlay( numalbaran , null );
		
		});
		
		
		// BOTONES PALETS PICKING
		
		$('.botonOperacionesLogisticasInfoPalets').on('click',function(){
			
			$('#popupCargando').show();
			
			var operacion=$(this).attr('operacion');
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-operacioneslogisticas-palets-productos.php?operacion="+operacion )
			.done(function(data) {
			
				$('#popupPaletsOperacionesLogisticasContenido').html(data);
				
				var posicion = $('html').scrollTop();
				$('#popupPaletsOperacionesLogisticasContenido').css('top',parseInt(posicion)+100);
				
				$('#popupPaletsOperacionesLogisticasContenido').show();
				$('#popupPaletsOperacionesLogisticas').show();
				
				$('#popupCargando').hide();
			});
			
		});
		
		$('.botonOperacionesLogisticas').on('click',function(){
		
			var operacion=$(this).attr('operacion');
			
			botonPlay( null , operacion );
		
		});
		
		/*
		$('.OP_multioperario_flecha_otros').on('click',function(){
		
			visible=$(this).attr('visible');
			
			if(visible=='no') {
				$('.OP_multioperario_capa_otros').slideDown('slow');
				$(this).attr('src','<?php echo DIR_IMAGENES; ?>/flecha-arriba.png');
				$(this).attr('visible','si');
			}
			else {
				$('.OP_multioperario_capa_otros').slideUp('slow');
				$(this).attr('src','<?php echo DIR_IMAGENES; ?>/flecha-abajo.png');
				$(this).attr('visible','no');
			}
		
		});
		*/
		$('.flecha_desplegable').on('click',function(){
		
			var visible=$(this).attr('visible');
			var capa=$(this).attr('capa');
			
			if(visible=='no') {
				$('.'+capa).slideDown('slow');
				$(this).attr('src','<?php echo DIR_IMAGENES; ?>/flecha-arriba.png');
				$(this).attr('visible','si');
			}
			else {
				$('.'+capa).slideUp('slow');
				$(this).attr('src','<?php echo DIR_IMAGENES; ?>/flecha-abajo.png');
				$(this).attr('visible','no');
			}
		
		});
		
		
		//GESTION POPUP REGALOS
		
		$('.iconoRegalos').on('click',function(){
		
			$('#popupCargando').show();
			
			var regalos=$(this).attr('regalos');
			var cantidad=$(this).attr('CantTotalProductoEnLaOrden');
			var cantidadRegalo=$(this).attr('cantidadRegalo');
			
			console.log('regalos: '+regalos);
			console.log('CantTotalProductoEnLaOrden: '+cantidad);
			console.log('cantidadRegalo: '+cantidadRegalo);
			
			var posicionIcono=$(this).position();
			posicionIcono=parseInt(posicionIcono.top);
			
			$.post('<?php echo $rutaHtml; ?>/contenidos/orden-preparacion-regalos.php?regalos' , { 'regalos' : regalos , 'cantidad' : cantidad , 'cantidadRegalo' : cantidadRegalo } )
			.done(function(data) {
			
				$('#popupRegalosContenido').html(data);
				
				var posicionScroll = parseInt($('html').scrollTop());
				var posicionMover= posicionScroll + (posicionIcono*0.25);
				$('#popupRegalosContenido').css('top',posicionMover);
				
				$('#popupRegalos').show();
				$('#popupRegalosContenido').show();
				
				$('#popupCargando').hide();
				
			});
			
		});
		
		$(document).on('click','#botonCerrarRegalos',function(){
		
			$('#popupRegalosContenido').html('');
		
			$('#popupRegalos').hide();
			$('#popupRegalosContenido').hide();
		
		});
		
		aplicarFiltro();
		
});

</script>
<?php

if($traza) {
	echo '<p>NumPaletsServir: '.$_SESSION['orden']['NumPaletsServir'].'</p>';
	echo '<p>cantidadAgrupacionesEnEstaOrden: '.$cantidadAgrupacionesEnEstaOrden.'</p>';
	echo '<p>Estado: '.$_SESSION['orden']['Estado'].'</p>';
}


if($cargaRapida && ( $_SESSION['orden']['NumPaletsServir'] && $_SESSION['orden']['NumPaletsServir']==$cantidadAgrupacionesEnEstaOrden ) && $_SESSION['orden']['Estado']=='Iniciada') {
	$desactivarPlay=true;
}


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

} //Fin else error

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