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

$formatosTrazabilidad=unserialize(FORMATOS_TRAZABILIDAD);

$LecturadeIDsdeTTTdesdelapreparacion=( $_SESSION['parametrosSGA']['LecturadeIDsdeTTTdesdelapreparacion']=='S' );


unset($_SESSION['orden']);

function esEntero($valor) {
	$entero=floor($valor);
	if($valor-$entero > 0) return false;
	else return true;
}

if($_POST['orden'] && $_POST['empresa']) {
	
	$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEORDENPREPNSERIE#'.$_SESSION['almacen'].';'.$_POST['empresa'].';'.$_POST['orden'];
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($_GET['traza']=='si') {
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$_SESSION['orden']=$resultado[0];
	
	//5-11-2024 informar palet destino
	//$informarPaletDestino=($_POST['informarPaletDestino']); //11-12-2024 no lo cojo de la llamada por post desde la OP, sino de la recarga
	$informarPaletDestino=($_SESSION['orden']['PaletDestinoAlAnularLecturas']=='S');
	
	//24-05-2022 Multioperario
	$gestionMultiOperario=($_SESSION['parametrosSGA']['GestionMultioperario']=='S' && $_SESSION['orden']['Multioperario']=='S');
	
	$requierePaletizar=( $_SESSION['parametrosSGA']['PickingPacking']=='S' || $_SESSION['orden']['RequierePackingList']=='S' );
	$lecturaCajaPalet=( $_SESSION['parametrosSGA']['LecturaCajaPalet']=='S' );
	$verCajas=($_SESSION['verEnCajas']=='S');
	
	$tieneCrossDocking=($_SESSION['orden']['TieneCrossDocking']=='S');
	
	
	
	//21-09-2022 ORdenes de preparacion rapidas
	$cargaRapida=($_SESSION['orden']['CargaRapida']=='S');
	
	//07-01-2025
	$GestionNumSerieSalida=($_SESSION['orden']['GestionNumSerieSalida']); //Puede ser C u otro valor, pero aqui no importa
	
	
	if(!$_SESSION['orden']['Error']) {
	
	?>
	<?php include($rutaPhp.$rutaHtml.'/librerias/calculadora.php'); ?>
	<table class="tablaFormateada anchoMaximo">
	<tr>
		<?php if(count($_SESSION['empresas'])>1) { ?><th>Empresa</th><?php } ?>
		<th>Familia</th>
		<th>Fecha Orden</th>
		<th>Régimen Origen</th>
		<th>Régimen Destino</th>
		<th>Cliente</th>
        <?php if($_SESSION['parametrosSGA']['VerificacionOrdenPreparacion']=='S') { ?>
		<th>Verificada</th>
        <?php } ?>
		<th>Fecha Carga</th>
		<th>Hora Carga</th>
	  </tr>
	<tr>
		<?php if(count($_SESSION['empresas'])>1) { ?><td><?php echo $_SESSION['orden']['Empresa']; ?></td><?php } ?>
		<td><?php echo $_SESSION['orden']['FamiliaPreparacion']; ?></td>
		<td><?php echo fechaNacional($_SESSION['orden']['FechaGeneracion']); ?></td>
		<td><?php echo $_SESSION['orden']['RegimenOrigen']; ?></td>
		<td><?php echo $_SESSION['orden']['RegimenDestino']; ?></td>
		<td><?php echo $_SESSION['orden']['NombreCliente']; ?></td>
        <?php if($_SESSION['parametrosSGA']['VerificacionOrdenPreparacion']=='S') { ?>
		<td><?php if($_SESSION['orden']['Verificada']=='S') { ?><img src="<?php echo DIR_IMAGENES; ?>/ok.png" width="47" height="36" /><?php } ?></td>
        <?php } ?>
		<td><?php echo fechaNacional($_SESSION['orden']['FechaCarga']); ?></td>
		<td><?php echo $_SESSION['orden']['HoraCarga']; ?></td>
	  </tr>
	</table>
	
    <?php if($_SESSION['orden']['NoSePuedeLiberar']=='S') { ?>
    <p><img src="<?php echo DIR_IMAGENES; ?>/iconos/advertencia.png" width="50" height="50" /></p>
    <p class="error"><?php echo $_SESSION['orden']['MotivoNoSePuedeLiberar']; ?></p>
    <?php } else { ?>
    
	<?php if($_SESSION['orden']['Estado']=='Iniciada') { ?>
	<p>Esta orden de preparación está en curso.</p>
	<?php } ?>
    
    <form id="formularioLiberar" name="formularioLiberar" method="post" action="">
	
	<input name="orden" type="hidden" value="<?php echo $_POST['orden']; ?>" />
	<input name="empresa" type="hidden" value="<?php echo $_POST['empresa']; ?>" />
    
    <?php if($informarPaletDestino) { ?>
    
    	<p>Palet destino:<br />
        <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoContenedor" /><input name="contenedor" type="text" class="campo" id="contenedor" value="<?php echo $contenedor; ?>" style="width:460px"/>
        <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="boton-x" id="borrarContenedor"/></p>
        
        <?php if($_SESSION['seleccionTipoPalet']) { ?>
        <p>Tipo palet:<br />
        <select name="tipoPalet" id="tipoPalet" class="campo" >
            <option value="">---</option>
            <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
            <option value="<?php echo $codigoPalet; ?>" <?php if($_SESSION['preparacionPaletActualFijadoTipo']==$codigoPalet) { ?>selected<?php } ?>><?php echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?></option>
            <?php } ?>
        </select>
        </p>
        <?php } ?>
        
        <p class="mini">En el liberado de productos de esta orden de preparación es obligatorio indicar el palet de destino.<br />Sólo puede utilizarse el mismo palet de origen como palet de destino si se liberan todos los productos incluidos en él.</p>
          
	<?php } ?>
	
	<h3>Productos a Liberar:</h3>
	
	<table class="tablaFormateada colorearAlternos" 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 } ?>
				
				<th width="100">Ubicación</th>
                
				<?php if($_SESSION['gestionPaletizado']=='S' || $requierePaletizar) { ?>
				<?php if($lecturaCajaPalet) { ?>
                <th colspan="2">Agrupacion</th>
                <?php } else { ?>
                <th>Palet</th>
                <?php } ?>
            	<?php } ?>
                
                <th>Cant.</th>
				<?php if($_SESSION['verEnCajas']=='S') { ?><th>Cajas</th><?php } ?>
			    <th>Preparado</th>
                <?php if($tieneCrossDocking) { ?><th>Albarán</th><?php } ?>
                
                <?php if($gestionMultiOperario) { ?>
                <th>Operario</th>
                <?php } ?>
                
                <th <?php if(!$cargaRapida && !$LecturadeIDsdeTTTdesdelapreparacion) { ?>width="235"<?php } ?> >Liberar</th>
                
                <?php if($LecturadeIDsdeTTTdesdelapreparacion) { ?>
                <th>Trazabilidad</th>
                <?php } ?>
                
			</tr>
			 <?php
			 $contador=0;
			 
			 foreach(arreglaArrayPXMobileProxiumResult($_SESSION['orden']['Productos']) as $producto) {
				 
				 $contador++;
				 $datos=arreglaArrayPXMobileProxiumResult($producto['Datos']);
				 
				 $cadenaNumerosSerie='';
				 $numerosSerie=arreglaArrayPXMobileProxiumResult($producto['NumerosSerieDisponibles']);
				 foreach($numerosSerie as $numero) $cadenaNumerosSerie.=$numero['NumeroSerie'].'<br>';

				 //21-12-2023 contemplamos la preparacion de productos regalo incluidos en otros. Estos no se pueden liberar
				 if($producto['CantidadRealRegaloPreparado']) $producto['Preparado']=(float)$producto['Preparado']-(float)$producto['CantidadRealRegaloPreparado'];
				 
				 if($_GET['traza']=='si') {
					 print_r($producto);
					 echo '<p>Preparado inicial: '.$producto['Preparado'].'</p>';
					 echo '<p>CantidadRealRegaloPreparado: '.$producto['CantidadRealRegaloPreparado'].'</p>';
					 echo '<p>Preparado calculado: '.$producto['Preparado'].'</p>';
					 echo '<hr>';
				}

				 if($producto['Preparado']) {
				 
					 $listaCajas=arreglaArrayPXMobileProxiumResult($producto['ListaCajas']);
					 
					 //07-01-2025
					 if($producto['NumerosSerieSalida']) $NumerosSerieSalida=explode('¬',$producto['NumerosSerieSalida']);
					 else $NumerosSerieSalida=array();
					 
					 
					 if($producto['idTPDT']) {
						 $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++;
						 }
					 }
					 
					 
					 
					 
					 
					 
					 if( count($listaCajas)>0 ) {
					 
					 	$preparadoTotal=$producto['Preparado'];
						$preparadoEnCajas=0;
					 	foreach($listaCajas as $item) $preparadoEnCajas=$preparadoEnCajas+(int)$item['Cantidad'];
						
						$preparadoSuelto=$preparadoTotal-$preparadoEnCajas;
					
						$cuantasLineas=count($listaCajas);
						if($preparadoSuelto) $cuantasLineas++;

					 }
					 else if( isset($NumerosSerieSalida) && is_array($NumerosSerieSalida) && count($NumerosSerieSalida)>0 ) {
					 
					 	$cuantasLineas=count($NumerosSerieSalida);
						
						$producto['Cajas']=$producto['Cajas']/$cuantasLineas;
						$producto['Cantidad']=$producto['Cantidad']/$cuantasLineas;
						$producto['Preparado']=$producto['Preparado']/$cuantasLineas;
					 
					 }
					 else $cuantasLineas=1;
					 
					 //echo '<p>cuantasLineas: '.$cuantasLineas.'</p>';
					 

					 
					 for($i=1;$i<=$cuantasLineas;$i++) {
					 
					 	if($i==1) $lineaActualSuelta=true; //Producto suelto
						
						$numeroSeriePintar='';
						if( isset($NumerosSerieSalida) && is_array($NumerosSerieSalida) && $NumerosSerieSalida[$i-1] ) {
							$numeroSeriePintar=$NumerosSerieSalida[$i-1];
						}
					 
						 ?>
						 <tr>
							<td><?php echo $producto['Codigo']; ?></td>
                            
							<?php if($_SESSION['orden']['GestCodB']=='S') { ?>
                            <td><?php echo $producto['CodigoB']; ?></td>
                            <?php } ?>
                            
						   <td align="left"><?php echo $producto['Descripcion']; ?></td>
							<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
								<?php if($comportamiento['Activo']=='S') { ?>
									<td>
										<?php
										foreach($datos as $dato) {
											if($dato['Codigo']==$comportamiento['Codigo']) {
												if($dato['Codigo']=='NS' && $numeroSeriePintar) echo $numeroSeriePintar;
												else echo formateaTipo($dato['Valor'],$comportamiento['Tipo']);
												break;
											} 
										}
										?>
									</td>
								<?php } ?>
							<?php } ?>
							
							<td class="columnaUbicacion"><?php if($producto['UbicacionAlias']) echo $producto['UbicacionAlias']; else echo $producto['Ubicacion']; ?></td>
							
							<?php if($_SESSION['gestionPaletizado']=='S' || $requierePaletizar) { ?>
								<?php if($lecturaCajaPalet) { ?>
								
								<?php if($producto['EsCaja']=='S') { ?>
									<td>
                                    <?php if($producto['ContenedorPadre']) { ?>
                                    <img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:35px;margin:0 5px -5px 0"/><?php echo $producto['ContenedorPadre']; ?>
                                    <?php } ?>
									</td>
									<td><img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:25px;margin:0 5px -5px 0"/><?php echo $producto['Contenedor']; ?></td>
								<?php } else { ?>
									
									<td>
									<img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:35px;margin:0 5px -5px 0"/><?php echo $producto['Contenedor']; ?>
									</td>
									<td>
									<?php if(count($listaCajas)>0) { ?>
										<?php foreach($listaCajas as $itemCaja) { ?>
										<img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:25px;margin:0 5px -5px 0"/><?php echo $itemCaja['NumeroCaja']; ?><br />
										<?php } ?>
									<?php } ?>
									</td>
								<?php } ?>
								
								<?php } else { ?>
								<td><?php if($producto['Contenedor']!='-' && $producto['Contenedor']!='C') echo $producto['Contenedor']; ?></td>
								<?php } ?>
							<?php } ?>
							
							
							<td align="right"><?php echo formateaNumeroDecimal($producto['Cantidad']); //echo number_format($producto['Cantidad'],0,',','.'); ?></td>
						
						
						
							<?php if($_SESSION['verEnCajas']=='S') { ?><td align="right"><?php echo formateaNumeroDecimal($producto['Cajas']); //echo number_format($producto['Cajas'],2,',','.'); ?></td><?php } ?>
							<td align="right"><?php echo formateaNumeroDecimal($producto['Preparado']); //echo number_format($producto['Preparado'],0,',','.'); ?></td>
		
        					 <?php if($tieneCrossDocking) { ?><td align="center"><?php echo $producto['AlbaranCrossDocking']; ?></td><?php } ?>
                             
                             <?php if($gestionMultiOperario) { ?>
                            <td><?php echo $producto['OperarioAsignado']; ?></td>
                            <?php } ?>
                            
                            
                            
                            <!-- bloque columna liberar -->
                            
                           
        
                            <td align="<?php if($producto['AlbaranCrossDocking']) { ?>center<?php } else { ?>left<?php } ?>" >
                            
                            <?php if($producto['Preparado']>0) { ?>
                            
                                <?php if($cargaRapida) { ?>
                                
                                    <input type="checkbox" name="liberarCargaRapida<?php echo $contador; ?>" id="liberarCargaRapida<?php echo $contador; ?>" class="checkAlbaran checkGrande" value="<?php echo $contador; ?>"/>
                                
                                <?php } else if($producto['AlbaranCrossDocking']) { ?>
                                
                                    <input type="checkbox" name="liberarCrossDocking<?php echo $contador; ?>" id="liberarCrossDocking<?php echo $contador; ?>" class="checkAlbaran checkGrande albaran<?php echo $producto['AlbaranCrossDocking']; ?>" value="<?php echo $producto['AlbaranCrossDocking']; ?>"/>
                                    
                                <?php } else if($producto['idTPDT']) {  ?>

                                	<input name="liberar<?php echo $contador; ?>" type="text" id="liberar<?php echo $contador; ?>" size="4" maxlength="12" class="cantidad cantidadTrazabilidad campo deshabilitado" readonly maximo="<?php echo $producto['Preparado']; ?>" contador="<?php echo $contador; ?>"/>
                                    <input type="hidden" name="trazabilidad<?php echo $contador; ?>" id="trazabilidad<?php echo $contador; ?>" class="cadenaTrazabilidad"/>
                                    
                                    </td>
                                    
                                	<td>
                                    
                                    <img id="botonCodigos<?php echo $contador; ?>" class="verTrazabilidad clicable" src="<?php echo DIR_IMAGENES; ?>/barcode-buscar.png" style="width:60px" contador="<?php echo $contador; ?>" numeros="<?php echo $cadenaTrazabilidad; ?>"/>
                                    <img class="verTrazabilidadOff" src="<?php echo DIR_IMAGENES; ?>/barcode-simple.png" style="width:49px;opacity:0.5;display:none"/>
                                         
                                
                                <?php } else { //No es carga rapida, ni TTT, ni tiene albaran crossdoking?>
                                
                                    <?php
                                    //añadido "esEntero" el 15-4-2021 para impedir pasar a cajas si las cajas preparadas llevan decimales -> obligatorio unidades
                                    if($verCajas && esEntero($producto['Cajas'])) {
                                        $etiqueta="Cajas";
                                        $etiquetaInversa="Unidades";
                                        $cajas=1;
                                    }
                                    else {
                                        $etiqueta="Unidades";
                                        $etiquetaInversa="Cajas";
                                        $cajas=0;
                                    }
                                    
                                    
                                    //15-02-2022 Control decimales
                                    if($producto['MaximoDecimalesPermitidos']=='') {
                                        $decimalesPermitir='si';
                                        unset($decimalesPermitirMaximo);
                                    }
                                    else if($producto['MaximoDecimalesPermitidos']=='0') {
                                        $decimalesPermitir='no';
                                        unset($decimalesPermitirMaximo);
                                    }
                                    else {
                                        $decimalesPermitir='si';
                                        $decimalesPermitirMaximo=$producto['MaximoDecimalesPermitidos'];
                                    }
                                    
									
									if(!$numeroSeriePintar) $identificadorUnico=$contador;
									else $identificadorUnico=$contador.'-'.$i;
									
                                    ?>
                                    
                                    <input type="hidden" id="cajas<?php echo $identificadorUnico; ?>" name="cajas<?php echo $identificadorUnico; ?>" value="<?php echo $cajas; ?>" entero="<?php if(esEntero($producto['Cajas'])) echo 1; else echo 0; ?>"/>
                                    <input type="hidden" id="EmbalajePrimarioCaja<?php echo $identificadorUnico; ?>" name="EmbalajePrimarioCaja<?php echo $identificadorUnico; ?>" value="<?php echo $producto['EmbalajePrimarioCaja']; ?>" />
                                    <?php if($verCajas) { ?><img src="<?php echo DIR_IMAGENES; ?>/<?php echo $etiquetaInversa; ?>.png" alt="Informar en <?php echo $etiqueta; ?>" class="iconoUnidades" id="iconoUnidades<?php echo $identificadorUnico; ?>" contador="<?php echo $identificadorUnico; ?>" style="cursor:pointer;width:50px;margin:0 0 -15px -5px;<?php if($verCajas && !esEntero($producto['Cajas'])) { ?>;opacity:0;cursor:none<?php } ?>"/><?php } ?> <input name="liberar<?php echo $identificadorUnico; ?>" type="text" id="liberar<?php echo $identificadorUnico; ?>" size="4" maxlength="12" class="cantidad campo" maximo="<?php echo $producto['Preparado']; ?>" maximoCajas="<?php echo $producto['Preparado']/$producto['EmbalajePrimarioCaja']; ?>" contador="<?php echo $identificadorUnico; ?>" autocomplete="off" preparado="<?php echo formateaNumeroDecimal($producto['Cantidad']); ?>" decimalesPermitir="<?php echo $decimalesPermitir; ?>" decimalesPermitirMaximo="<?php echo $decimalesPermitirMaximo; ?>"/> <span id="etiqueta<?php echo $identificadorUnico; ?>"><?php echo $etiqueta; ?></span>	
                                    
                                <?php } //Fin tipo ?>
                                
                            <?php } //Fin if producto preparado ?>
                                
                           </td>

	  					</tr>
						<?php

					} //Fin for cuantaslineas
				
				} //Fin si producto hay preparado
			}
			?>
	</table>
	
    <?php if(!$cargaRapida) { ?>
    <p>
    <input type="button" name="botonSeleccionarTodo" id="botonSeleccionarTodo" value="Seleccionar completo" class="boton reducido"/>
    <input type="button" name="botonBorrarTodo" id="botonBorrarTodo" value="Borrar cantidades" class="boton reducido"/>
    </p>
    <?php } ?>
    
	<p><input type="button" name="botonLiberar" id="botonLiberar" value="LIBERAR PRODUCTOS" class="boton"/></p>
    <input type="hidden" id="liberarConfirmacion" name="liberarConfirmacion" value="" />
	
	</form>
    
	<script>
	
	$(document).ready(function() {
		
		$('#botonSeleccionarTodo').on('click',function(e){
		
			e.preventDefault();
			
			confirm('Atención: Se van a autocompletar todas las cantidades para liberar<br>la Orden completamente.','advertencia')
			.done(function(){
			
				$('.cantidad').removeClass('campoError');
			
				$('.cantidad').each(function(){
				
					var contador=$(this).attr('contador');
					var preparado=$(this).attr('preparado');
					
					//console.log('contador: '+contador);
					//console.log('preparado: '+preparado);
					
					var embalajePrimarioCaja=$('#EmbalajePrimarioCaja'+contador).val();
					
					//console.log('embalajePrimarioCaja: '+embalajePrimarioCaja);
					
					if( $('#cajas'+contador).val()==1 ) {
						preparado=preparado/embalajePrimarioCaja;
					}
					
					$(this).val( preparado );
				
				});
				
				$('.checkTTT').prop('checked',true);
				
				<?php if($LecturadeIDsdeTTTdesdelapreparacion) { ?>
				
				$('.cantidadTrazabilidad').each(function(){
					
					let maximo=$(this).attr('maximo');
					$(this).val(maximo);
					
					let contador=$(this).attr('contador');
					let numeros=$('#botonCodigos'+contador).attr('numeros');
					let cadena='';
					
					let trozos=numeros.split(';');
					trozos.forEach(trozo=>{
						let pieces=trozo.split(',');
						if(cadena!='') cadena+='@';
						cadena+=pieces[0];
					});
					
					$('#trazabilidad'+contador).val(cadena);
					
				});
				$('.verTrazabilidad').hide();
				$('.verTrazabilidadOff').show();
				
				<?php } ?>
			
			});

		});
		
		$('#botonBorrarTodo').on('click',function(e){
		
			e.preventDefault();
			
			$('.cantidad').removeClass('campoError');
			
			$('.cantidad').each(function(){
				
				$(this).val( '' );
			
			});
			
			$('.checkTTT').prop('checked',false);
			
			<?php if($LecturadeIDsdeTTTdesdelapreparacion) { ?>
			$('.cantidadTrazabilidad').val('');
			$('.verTrazabilidad').show();
			$('.verTrazabilidadOff').hide();
			$('.cadenaTrazabilidad').val('');
			<?php } ?>

		});
		
		$('.iconoUnidades').on("click",function(e){
		
			var contador=$(this).attr('contador');
			
			//añadido el 15-4-2021 para impedir pasar a cajas si las cajas preparadas llevan decimales -> obligatorio unidades
			if( $('#cajas'+contador).attr('entero')==1 ) {
	
				if( $('#cajas'+contador).val()==1 ) {
					$(this).attr('src','<?php echo DIR_IMAGENES; ?>/Cajas.png');
					$('#cajas'+contador).val(0);
					$('#etiqueta'+contador).html('Unidades');
					
					var resultado = parseFloat( $('#liberar'+contador).val() ) * parseFloat( $('#EmbalajePrimarioCaja'+contador).val() );
					
					if(resultado>0) $('#liberar'+contador).val( resultado );
				}
				else {
					$(this).attr('src','<?php echo DIR_IMAGENES; ?>/Unidades.png');
					$('#cajas'+contador).val(1);
					$('#etiqueta'+contador).html('Cajas');
					
					var flotante = parseFloat( $('#liberar'+contador).val() ) / parseFloat( $('#EmbalajePrimarioCaja'+contador).val() );
					var resultado = Math.round(flotante*100)/100;
					
					if(resultado>0) $('#liberar'+contador).val( resultado );
				}
			
			}
		
		});
		
		
		$('#botonLiberar').on("click",function(e) {
		
			e.preventDefault();
			
			$('.cantidad').each(function() {
				$(this).removeClass('campoError');
			});
			
			var vacio=true;
			var error=false;
			var errorDecimalesCajas=false;
			var errorDecimales=false;
			
			$('.cantidad').each(function(){
			
				if($(this).val()!='') vacio=false;
			
				var contador=$(this).attr('contador');
				var maximo;
				
				if( $('#cajas'+contador).val()==1 ) maximo=parseFloat($(this).attr('maximoCajas'));
				else maximo=parseFloat($(this).attr('maximo'));
				
				if( parseFloat($(this).val()) > maximo ) {
					console.log('Validación botonLiberar -> cantidad excede');
					$(this).addClass('campoError');
					error=true;
				}
				
				var partes=$(this).val().split('.');
				if(partes[1]>0 && $('#etiqueta'+contador).html()=='Cajas') errorDecimalesCajas=true;
				
				//16-2-2022 Control decimales
				
				var decimalesPermitir;
				var decimalesPermitirMaximo;
				
				if( $(this).attr('decimalesPermitir')=='si' ) decimalesPermitir=true;
				else decimalesPermitir=false;
				
				if( $(this).attr('decimalesPermitirMaximo')>0 ) decimalesPermitirMaximo=$(this).attr('decimalesPermitirMaximo');
				else decimalesPermitirMaximo=null;
			
				if( ! controlDecimales( $(this) , decimalesPermitir , decimalesPermitirMaximo ) ) {
					console.log('Validación botonLiberar -> error decimales');
					$(this).addClass('campoError');
					errorDecimales=true;
				}

			});
			
			$('.checkAlbaran').each(function(){
			
				if($(this).is(':checked')) vacio=false;

			});
			
			$('.checkTTT').each(function(){
			
				if($(this).is(':checked')) vacio=false;

			});
			
			if(vacio) alert('ATENCIÓN: No hay especificado ningún producto ni cantidad a liberar.',null,'error');
			else if(error) alert('ERROR: Hay cantidades que exceden el total Preparado.',null,'error');
			else if(errorDecimales) alert('ERROR: Hay cantidades con un número de decimales no permitido.',null,'error');
			else if(errorDecimalesCajas) alert('ERROR: Hay cantidades indicadas en cajas con decimales.<br>En estos casos, para evitar errores hay que indicar la cantidad en unidades.',null,'error');
			<?php if($informarPaletDestino) { ?>
			else if($('#contenedor').val()=='') {
				alert('ERROR: Para liberar productos de órdenes que provienen de picking previo<br>es obligatorio indicar el palet de destino.',null,'error')
				.done(function(){
					$('#contenedor').addClass('campoError');
					$('#contenedor').focus();
				});
			}
			<?php } ?>
			<?php if($_SESSION['seleccionTipoPalet']) { ?>
			else if($('#tipoPalet').val()=='') {
				alert('ERROR: Es obligatorio indicar el tipo de palet.',null,'error')
				.done(function(){
					$('#tipoPalet').addClass('campoError');
					$('#tipoPalet').focus();
				});
			}
			<?php } ?>
			else {
				$('#liberarConfirmacion').val(1);
				$('#popupCargando').show();
				$('#formularioLiberar').submit();
			}
			
		});
		
		$('.cantidad').on("click",function(e) {
		
			if(!$(this).hasClass('deshabilitado')) {
		
				$('#calculadora').show();
				$('#valorCalculadora').val( $(this).val() );
				$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
				
				if( $(this).attr('decimalesPermitir')=='si' ) $('#botonDecimal').show();
				else $('#botonDecimal').hide();
			
			}
		
		});
		
		$(document).on('change','.cantidad',function(e) {
		
			/*
			e.preventDefault();
		
			var decimalesPermitir;
			var decimalesPermitirMaximo;
			
			if( $(this).attr('decimalesPermitir')=='si' ) decimalesPermitir=true;
			else decimalesPermitir=false;
			
			if( $(this).attr('decimalesPermitirMaximo')>0 ) decimalesPermitirMaximo=$(this).attr('decimalesPermitirMaximo');
			else decimalesPermitirMaximo=null;
		
			console.log('CONTROL CAMBIO EN CANTIDAD');
			console.log('decimalesPermitir: '+decimalesPermitir+' / decimalesPermitirMaximo: '+decimalesPermitirMaximo);
		
			controlDecimales( $(this) , decimalesPermitir , decimalesPermitirMaximo );
			*/
		
		});
		
		
		$('.checkAlbaran').on("click",function(e) {
		
			var albaran=$(this).val();
			
			if($(this).is(':checked')) $('.albaran'+albaran).prop('checked',true);
			else $('.albaran'+albaran).prop('checked',false);
			
		});
		
		
		
		
		
		
		
		
		
	});
	
	<?php if($informarPaletDestino) { ?>
	
	$(document).ready(function() {
	
		$('#contenedor').on("change",function(e){
			
			e.preventDefault();
			let campoPalet=$(this);
			
			$('#popupCargando').show();
			
			$.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-info-contenedor.php", { contenedor : campoPalet.val() } )
			.done(function(data){
			
				$('#popupCargando').hide();
			
				let resultado=data.split('#');
				
				if (resultado[0]!='error') {
					<?php if($_SESSION['seleccionTipoPalet']) { ?>
					let tipoPalet=resultado[6];
					if(tipoPalet) $('#tipoPalet').val(tipoPalet);
					<?php } ?>
				}
				else {
					alert('ERROR: '+resultado[2],null,'error')
					.done(function(){
						campoPalet.addClass('campoError');
					});
				}

			
			});
			
		});
	
		$('#borrarContenedor').on("click",function(){
			
			$("#contenedor").val('');
			$("#contenedor").focus();
			
		});
		
		$('#tecladoContenedor').on("click",function(){
			
			$('#teclado').show();
			$('#valor').val( $('#contenedor').val() );
			$('#valorOculto').val( $('#contenedor').val() );
			$('#enter').attr('campoValor','contenedor');
			$('#enter').attr('forzarEnter','si');
			
		});
		
	});
	
	if( $('#orden').val()!='' && $('#empresa').val()!='' ) {
		$('#contenedor').focus();
	}
	
	<?php } ?>
	
	</script>
    
	<?php
	} //fin NoSePuedeLiberar else
	}
	else {
		?><p class="error">Error. No se ha encontrado esta Orden de Preparación.</p><?php
	}
}
?>