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

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

include($rutaPhp.$rutaHtml.'/librerias/calculadora.php');



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


//foreach($_SESSION['tiposPalet'] as $palet) { print_r($palet); echo '<hr>'; }

if($_POST) {

	$cadenaPalets='';

	foreach($_SESSION['agrupaciones'] as $palet) {
	
		if($cadenaPalets!='') $cadenaPalets.='@';
	
		$cadenaActual=$palet['PaletPL'];
		
		//palet;ancho;fondo;alto;peso
		$cadenaActual.=','.$_POST['palet-'.$palet['PaletPL'].'-ancho'];
		$cadenaActual.=','.$_POST['palet-'.$palet['PaletPL'].'-fondo'];
		$cadenaActual.=','.$_POST['palet-'.$palet['PaletPL'].'-alto'];
		$cadenaActual.=','.$_POST['palet-'.$palet['PaletPL'].'-peso'];
		$cadenaActual.=','.$_POST['palet-'.$palet['PaletPL'].'-tipo'];
		
		if($_POST['palet-'.$palet['PaletPL'].'-pesaje']) $cadenaActual.=',S';
		
		$cadenaPalets.=$cadenaActual;
	}

	//ActualizaDimensionesPesoPal(EMP,Usuario,Almacen,Parametros)

	$peticion='ActualizaDimensionesPesoPal#'.$_SESSION['orden']['Empresa'].'#'.$_SESSION['usuario']['Usuario'].'#'.$_SESSION['almacen'].'#'.$cadenaPalets;
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
		
	if($_GET['traza']=='si') {
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
		
	$validacion=explode('#',$resultado[0]['Error']);
		
	if($validacion[0]==0) {

		if($_GET['cierre']=='si') $_SESSION['atributosPaletsConfirmados']=true;
		
		?>
		<script>
			$('#popupCargando').show();
			<?php if($_GET['cierre']=='si') { ?>
				window.location="orden-preparacion-proceso-S.php";
			<?php } else { ?>
				window.location="orden-preparacion-S.php?orden=<?php echo $_SESSION['orden']['OrdenPreparacion']; ?>&empresa=<?php echo $_SESSION['orden']['Empresa']; ?>";
			<?php } ?>
		</script>
		<?php
		
	}
	else { ?><script>alert("<?php echo $validacion[1]; ?>",null,'error');</script><?php }

}

if($_SESSION['orden']['OrdenPreparacion']) {


	//Recargamos los datos de la cabecera, porque sino el listado de palets viene vacio, si no se ha vuelto a pasar por la cabecera tras hacer lecturas y terminar
	$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEORDENPREP#'.$_SESSION['almacen'].';'.$_SESSION['orden']['Empresa'].';'.$_SESSION['orden']['OrdenPreparacion'];
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($_GET['traza']=='si') {
		echo "<p>Recarga cabecera orden prep para cierre</p>";
		echo "<p>".$peticion."</p>";
		print_r($resultado);
		echo '<p>Tipos de palets:</p>';
		print_r($_SESSION['tiposPalet']);
	}
			
	$_SESSION['orden']=$resultado[0];
	
	
	$confirmarPesaje=($_SESSION['orden']['CheckPesaje']=='S');
	
	//echo '<p>confirmarPesaje: '.$confirmarPesaje.'</p>';
	//print_r($_SESSION['orden']);

	if($_GET['traza']=='si') {
		echo '<p>confirmarPesaje: '.$confirmarPesaje.'</p>';
	}
	
	
	$productos=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['Productos']); //Se utiliza más abajo en el constructor de agrupaciones
	
	$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($_SESSION['orden']['PaletsPL']);
	
	//CREACION DEL ARBOL DE AGRUPACIONES PALETS/CAJAS
	include('contenidos/orden-preparacion-S-agrupaciones-constructor.php');



	//9-2-2021 Sacamos la cabecera a "contenidos" para reutilizarla en varias pantallas
	include('contenidos/orden-preparacion-S-cabecera.php');
	
	$agrupacionesOP=array();
	$otrasAgrupaciones=array();
	
	foreach($_SESSION['agrupaciones'] as $palet) {
		if($palet['EnOrdenPreparacionActual']=='S') $agrupacionesOP[]=$palet;
		else $otrasAgrupaciones[]=$palet;
	}
	
	function bloqueAgrupaciones($listado) {
	
		//print_r($listado);
		//print_r($_SESSION['tiposPalet']);
	
		global $confirmarPesaje;
		global $pedirContenedorDestinoUbicacion;
	
		?>
		<table class="tablaFormateada anchoMaximo" style="margin-top:30px">
    
			<tr>
				<th width="50"></th>		
				<th width="50">Id agrupación</th>
                <?php if($pedirContenedorDestinoUbicacion) { ?>
                <th width="50">Ubicación</th>
                <?php } ?>
                <th>Tipo</th>
				<th width="50">Ancho (mm)</th>
				<th width="50">Fondo (mm)</th>
				<th width="50">Alto (mm)</th>
				<th width="50">Peso (kg)</th>
                
                <?php if($confirmarPesaje) { ?>
			    <th width="50">Confirmar<br />
			      Pesaje</th>
                <?php } ?>
                
			</tr>
		
			<?php foreach($listado as $palet) { ?>
			
				<?php $palet['Peso']=round($palet['Peso'],2); ?>
               
                
                <tr>
                  <td>
                    <?php if($palet['EsCaja']=='S') { ?>
                    <img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" width="40" />
                    <?php } else { ?>
                    <img src="<?php echo DIR_IMAGENES; ?>/palet-vacio<?php if($_SESSION['tiposPalet'][$palet['TipoPalet']]['CHEP']=='S') { ?>-chep<?php } ?>.png" width="50" />
                    <?php } ?>			  </td>
                    <td><?php echo $palet['PaletPL']; ?></td>
                    
                    <?php if($pedirContenedorDestinoUbicacion) { ?>
                    <td><?php echo $palet['Ubicacion']; ?></td>
                    <?php } ?>
                    
                    <td>
                    
                        <?php
                        $anchoPredeterminado=0;
                        $fondoPredeterminado=0;
                        $altoPredeterminado=0;
                        ?>
                    
                        <?php if( $_SESSION['seleccionTipoPalet'] || $_SESSION['SeleccionTipoCajaSalida'] ) { ?>
                        
                            <select name="palet-<?php echo $palet['PaletPL']; ?>-tipo" id="palet-<?php echo $palet['PaletPL']; ?>-tipo" class="campo selectorTipoPalet" valorOriginal="<?php echo $palet['TipoSoporte']; ?>" IDPalet="<?php echo $palet['PaletPL']; ?>">
                                <option value="">---</option>
                                
                                <?php if( $palet['EsCaja']=='S' && $_SESSION['SeleccionTipoCajaSalida'] ) { ?>
                                
                                    <?php foreach($_SESSION['tiposCajas'] as $tipoCaja) { ?>
                                    
                                        <option value="<?php echo $tipoCaja['Codigo']; ?>"  <?php if($tipoCaja['Codigo']==$palet['TipoPalet']) { ?>selected<?php } ?> ancho="<?php echo $tipoCaja['Ancho']; ?>" fondo="<?php echo $tipoCaja['Fondo']; ?>" alto="<?php echo $tipoCaja['Alto']; ?>"><?php echo $tipoCaja['Descripcion']; ?></option>
                                        
                                        <?php
                                        if($tipoCaja['Codigo']==$palet['TipoPalet']) {
                                            $anchoPredeterminado=$tipoCaja['Ancho'];
                                            $fondoPredeterminado=$tipoCaja['Fondo'];
                                            $altoPredeterminado=$tipoCaja['Alto'];
                                        }
                                        ?>
                                    
                                    <?php } ?>
                                
                                <?php } else { ?>
                                
                                    <?php foreach(array_keys($_SESSION['tiposPalet']) as $codigoPalet) { ?>
                                    
                                        <option value="<?php echo $codigoPalet; ?>" <?php if($codigoPalet==$palet['TipoPalet']) { ?>selected<?php } ?> chep="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['CHEP']; ?>" ancho="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['Ancho']; ?>" fondo="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['Fondo']; ?>" alto="<?php echo $_SESSION['tiposPalet'][$codigoPalet]['Alto']; ?>" peso="<?php echo round($_SESSION['tiposPalet'][$codigoPalet]['Peso'],2); ?>"><?php echo $_SESSION['tiposPalet'][$codigoPalet]['Descripcion']; ?></option>
                                        
                                        
                                        <?php
                                        if($codigoPalet==$palet['TipoPalet']) {
                                            $anchoPredeterminado=$_SESSION['tiposPalet'][$codigoPalet]['Ancho'];
                                            $fondoPredeterminado=$_SESSION['tiposPalet'][$codigoPalet]['Fondo'];
                                            $pesoSoporte=round($_SESSION['tiposPalet'][$codigoPalet]['Peso'],2);
                                        }
                                        else {
                                            $pesoSoporte=0;
                                        }
                                        ?>
                                        
                                    <?php } ?>
                                    
                                <?php } ?>
                                
                            </select>
    
                            
                        <?php } else { ?>
                        
                            <?php echo $_SESSION['tiposPalet'][$palet['TipoPalet']]['Descripcion']; ?>
                            
                        <?php } ?>
                        
                    <?php
    
                    
                    if( ($palet['Ancho']=='' && $palet['Fondo']=='' && $palet['Alto']='') || ($palet['Ancho']=='0' && $palet['Fondo']=='0' && $palet['Alto']=='0') ) {
                        //Se queda los valores predeterminados cogidos arriba de los maestros
                        //echo '<p>anchoPredeterminado: '.$anchoPredeterminado.'</p>';
                        //echo '<p>fondoPredeterminado: '.$fondoPredeterminado.'</p>';
                        //echo '<p>altoPredeterminado: '.$altoPredeterminado.'</p>';
                    }
                    else {
                        $anchoPredeterminado=$palet['Ancho'];
                        $fondoPredeterminado=$palet['Fondo'];
                        $altoPredeterminado=$palet['Alto'];
                    }
                    ?>
                    
                    <input type="hidden" id="palet-<?php echo $palet['PaletPL']; ?>-pesoSoporteOriginal" name="palet-<?php echo $palet['PaletPL']; ?>-pesoSoporteOriginal" value="<?php echo $pesoSoporte; ?>"/>
                    </td>
                    
                    <td><input type="text" id="palet-<?php echo $palet['PaletPL']; ?>-ancho" name="palet-<?php echo $palet['PaletPL']; ?>-ancho" class="campo cantidad campoAtributo" style="width:80px" autocomplete="off" value="<?php echo $anchoPredeterminado; ?>"/></td>
                    <td><input type="text" id="palet-<?php echo $palet['PaletPL']; ?>-fondo" name="palet-<?php echo $palet['PaletPL']; ?>-fondo" class="campo cantidad campoAtributo" style="width:80px" autocomplete="off" value="<?php echo $fondoPredeterminado; ?>"/></td>
                    <td><input type="text" id="palet-<?php echo $palet['PaletPL']; ?>-alto" name="palet-<?php echo $palet['PaletPL']; ?>-alto" class="campo cantidad campoAtributo" style="width:80px" autocomplete="off" value="<?php echo $altoPredeterminado; ?>"/></td>
                    <td>
                    <?php
                    /*
                    ini_set('precision', 200);
                    echo '<p>pesoSoporte : '.$pesoSoporte.'</p>';
                    echo '<p>palet Peso : '.$palet['Peso'].'</p>';
                    $suma=(float)$pesoSoporte+(float)$palet['Peso'];
                    echo '<p>suma : '.$suma.'</p>';
                    */
                    ?>
                    
                    <input type="text" id="palet-<?php echo $palet['PaletPL']; ?>-peso" name="palet-<?php echo $palet['PaletPL']; ?>-peso" class="campo cantidad campoAtributo" style="width:105px" autocomplete="off" value="<?php if($confirmarPesaje && $palet['Pesaje']!='S') echo $pesoSoporte+$palet['Peso']; else echo $palet['Peso']; ?>"/>
                    <input type="hidden" id="palet-<?php echo $palet['PaletPL']; ?>-pesoContenidoOriginal" name="palet-<?php echo $palet['PaletPL']; ?>-pesoContenidoOriginal" value="<?php echo $palet['Peso'] ?>"/>
                    </td>
                    
                    <?php if($confirmarPesaje) { ?>
                    <td><input type="checkbox" name="palet-<?php echo $palet['PaletPL']; ?>-pesaje" id="palet-<?php echo $palet['PaletPL']; ?>-pesaje" class="checkGrande" <?php if($palet['Pesaje']=='S') { ?>checked<?php } ?>/></td>
                    <?php } ?>
                    
                </tr>
			
			
			<?php } ?>
</table>
        <?php
	
	}
	
	?>
	
    <h3><strong>Informar atributos de las agrupaciones:</strong></h3>
    
    <form action="" method="post" enctype="multipart/form-data" name="formularioPalets" id="formularioPalets">
        
        <?php if(count($otrasAgrupaciones)>0) { ?>
        <p>Agrupaciones utilizadas en la Preparación actual:</p>
        <?php } ?>
        
        <?php bloqueAgrupaciones($agrupacionesOP); ?>
        
        <?php if(count($otrasAgrupaciones)>0) { ?>
        <p>Otras Agrupaciones asociadas al Packing List:</p>
        <?php bloqueAgrupaciones($otrasAgrupaciones); ?>
        <?php } ?>
        
        <?php if($confirmarPesaje) { ?>
        <p><input type="submit" name="botonRecalcularPesos" id="botonRecalcularPesos" value="Recalcular pesos" class="boton reducido"/></p>
        <?php } ?>
        
        <p><input type="submit" name="botonInformar" id="botonInformar" value="Informar" class="boton"/></p>
                    
    </form>
    
    <script>
	
	$(document).ready(function() {
	
		<?php if($confirmarPesaje) { ?>
	
		//8-10-2021 recalculo de pesos
		$('#botonRecalcularPesos').on('click',function(e){
		
			e.preventDefault();
			
			confirm('ATENCIÓN: Solo se recalculará el peso de aquellos palets sin pesaje confirmado.','advertencia')
			.done(function(){
		
				$('.selectorTipoPalet').each(function(){
				
					var idpalet=$(this).attr('IDPalet');
					var seleccionado=$('option:selected',this);
					var peso;
					if(seleccionado.attr('peso')>0) peso=parseFloat(seleccionado.attr('peso'));
					else peso=0;
					
					var pesoContenidoOriginal;
					if($('#palet-'+idpalet+'-pesoContenidoOriginal').val()>0) pesoContenidoOriginal=parseFloat($('#palet-'+idpalet+'-pesoContenidoOriginal').val());
					else pesoContenidoOriginal=0;
					var checkConfirmaPesaje=$('#palet-'+idpalet+'-pesaje').is(':checked');
					if(!checkConfirmaPesaje) $('#palet-'+idpalet+'-peso').val(peso+pesoContenidoOriginal);
				
				});
			
			});
		
		});
		
		<?php } ?>
	
		$('.selectorTipoPalet').on('change',function(){
		
			var idpalet=$(this).attr('IDPalet');
			var seleccionado=$('option:selected',this);
			
			var ancho=seleccionado.attr('ancho');
			var fondo=seleccionado.attr('fondo');
			var alto=seleccionado.attr('alto');
			
			var peso;
			if(seleccionado.attr('peso')>0) peso=parseFloat(seleccionado.attr('peso'));
			else peso=0;
			$('#palet-'+idpalet+'-pesoSoporteOriginal').val(peso);
			
			if(ancho || fondo || alto) {
			
				var anchoInformado=$('#palet-'+idpalet+'-ancho');
				var fondoInformado=$('#palet-'+idpalet+'-fondo');
				var altoInformado=$('#palet-'+idpalet+'-alto');
				
				if( (anchoInformado.val()=='' && fondoInformado.val()=='' && altoInformado.val()=='') || (anchoInformado.val()=='0' && fondoInformado.val()=='0' && altoInformado.val()=='0') ) {
					if(ancho) anchoInformado.val(ancho);
					if(fondo) fondoInformado.val(fondo);
					if(alto) altoInformado.val(alto);
				}
				else {
					confirm('Las dimensiones de este tipo de Palet no coinciden con los valores informados.<br><br>¿Deseas cambiarlos por los estándares?','pregunta','Sustituir','Mantener')
					.done(function(){
						if(ancho) anchoInformado.val(ancho);
						if(fondo) fondoInformado.val(fondo);
						if(alto) altoInformado.val(alto);
					});
				}
				
			}
			
			<?php if($confirmarPesaje) { ?>
			
			//8-10-2021 recalculo de pesos
			var pesoContenidoOriginal;
			if($('#palet-'+idpalet+'-pesoContenidoOriginal').val()>0) pesoContenidoOriginal=parseFloat($('#palet-'+idpalet+'-pesoContenidoOriginal').val());
			else pesoContenidoOriginal=0;
			var checkConfirmaPesaje=$('#palet-'+idpalet+'-pesaje').is(':checked');
			if(!checkConfirmaPesaje) $('#palet-'+idpalet+'-peso').val(peso+pesoContenidoOriginal);
			
			<?php } ?>
		
		});
	
		$('.campoAtributo').on("click",function(e) {
			$('#calculadora').show();
			$('#valorCalculadora').val( $(this).val() );
			$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
		});
		
		$('#botonInformar').on("click",function(e) {
		
			e.preventDefault();
			
			var esCierre=false;
			var confirmarPesaje=false;
			
			var hayVacios=false;
			var pesosInformadosSinCheck=false;
			
			<?php if($_GET['cierre']=='si') { ?>
			
			esCierre=true;
			
			<?php } ?>
			
			<?php if($confirmarPesaje) { ?>
			
			confirmarPesaje=true;
			
			$('.selectorTipoPalet').each(function(){
			
				var idpalet=$(this).attr('IDPalet');
				var seleccionado=$('option:selected',this);
				
				var pesoPalet;
				if(seleccionado.attr('peso')>0) pesoPalet=parseFloat(seleccionado.attr('peso'));
				else pesoPalet=0;
				
				var pesoContenidoOriginal;
				if($('#palet-'+idpalet+'-pesoContenidoOriginal').val()>0) pesoContenidoOriginal=parseFloat($('#palet-'+idpalet+'-pesoContenidoOriginal').val());
				else pesoContenidoOriginal=0;
				
				var pesoInformado=parseFloat($('#palet-'+idpalet+'-peso').val());
				
				console.log('pesoPalet: '+pesoPalet);
				console.log('pesoContenidoOriginal: '+pesoContenidoOriginal);
				console.log('pesoInformado: '+pesoInformado);
				
				var deberiaSumar=pesoPalet+pesoContenidoOriginal;
				
				console.log('deberiaSumar: '+deberiaSumar);
				
				var checkConfirmaPesaje=$('#palet-'+idpalet+'-pesaje').is(':checked');
				if(!checkConfirmaPesaje && pesoInformado!=deberiaSumar) pesosInformadosSinCheck=true;
			
			});
			
			<?php } ?>
						
			$('.campoAtributo').each(function(e) {
				//console.log($(this));
				if($(this).val()=='') hayVacios=true;
			});
			
			
			//console.log('Traza 1');
			
			if( confirmarPesaje && pesosInformadosSinCheck ) {
				alert('ATENCION:<br>Has modificado el peso de algún palet sin confirmar el pesaje.<br>Debes marcarlo para continuar.',null,'error');
			}
			else if( esCierre && hayVacios) {
				confirm('Atención, hay datos sin informar.<br>¿Deseas continuar igualmente con el cierre de la Orden?','advertencia')
				.done(function(){
					//alert('Procedemos al envio... y cierre!');
					$('#popupCargando').show();
					$('#formularioPalets').submit();
				});
			}
			else {
				//alert('Procedemos al envio solo');
				$('#popupCargando').show();
				$('#formularioPalets').submit();
			}
			
		});
		
	});
	
	</script>
	
	<?php
	
}
else {
	?><p class="error">Error, no consta ninguna Orden de Preparación.</p><?php
}

$desactivarPlay=true;
$mostrarInfo=true;
include($rutaPhp.$rutaHtml.'/maqueta/menu-orden-preparacion-S.php');
include($rutaPhp.$rutaHtml.'/maqueta/abajo.php');
?>