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

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

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


$pedirUbicacion=$_SESSION['seleccionUbicacionEntrada'];


// GESTION DE LOS LISTADOS DE PRODUCTOS

$productosLeidos=array();

foreach($_SESSION['productos'] as $producto) {

	if($_GET['traza']=='si') {
		//print_r($producto);
		//echo '<p>leido: '.$producto['Leido'].'</p>';
		//echo "<hr>";
	}

	if($producto['Leido']>0) {
		$productosLeidos[]=$producto;
	}
 
	
}


//31-01-2022 Borrar lineas

if($_GET['borrar']=='si' && $_GET['linea']) {

	$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#BORRARLINEA#'.$_SESSION['almacen'].';'.$_SESSION['entrada']['Empresa'].';'.$_SESSION['entrada']['NumEntrada'].';'.$_GET['linea'];
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

	if($_GET['traza']=='si') {
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$valores=explode('#',$resultado[0]['Error']);
	
	if($valores[0]==1) {
		?><script>alert('Error: <?php echo $valores[1]; ?>',null,'error');</script><?php
	}
	else {
		?><script>
		$('#popupCargando').show();
		window.location='entrada-mercancia-desleer-gs1.php';
		</script>
		<?php
	}

}




if($_POST) {

	//print_r($_POST);
	//echo "<hr><hr>";
	
	
	//13-02-2025 Si se han marcado cajas enteras, el mensaje de ok llevará un añadido
	$seHanMarcadoCajas=($_POST['seHanMarcadoCajas']);
	

	$parametros='';
	
	foreach($productosLeidos as $producto) {
		
		$hayPalet=false;
		
		$palets=arreglaArrayPXMobileProxiumResult($producto['ProductoPalets']);
		
		if(count($palets)>0) $hayPalet=true;
		
		if(!$hayPalet) {
			$palets=array(array('CodigoPalet'=>'','CantidadLeida'=>$producto['Leido']));
		}
		
		foreach($palets as $palet) {
			
			if ($hayPalet) $numerosSerie=arreglaArrayPXMobileProxiumResult($palet['NumerosSerie']);
			else $numerosSerie=arreglaArrayPXMobileProxiumResult($producto['NumerosSerie']);
			
			$cantidad=$_POST[ 'desleer_'.$producto['LineaEntrada'].'_'.limpiaCodigo($palet['CodigoPalet']) ];
			
			if($cantidad>0) {
				
				//echo "<p>Linea: ".$producto['LineaEntrada']."</p>";
				//echo "<p>Palet: ".$palet['CodigoPalet']."</p>";
				//echo "<p>Cantidad a desleer: ".$cantidad."</p>";
				//print_r($producto);
				//echo "<p>producto ControlNumSerie: ".$producto['ControlNumSerie']."</p>";
				
				if($producto['ControlNumSerie']=='S' || $producto['GestionNumSerieInterno']=='I') {
					
					$numerosSerie='';
					
					foreach($_POST as $campo=>$valor) {
					
						$valores=explode('_',$campo);
						if($valores[1]==$producto['LineaEntrada'] && $valores[2]==limpiaCodigo($palet['CodigoPalet']) && $valor=='on') {
							//echo "<p>Numero de Serie: ".$valores[3]."</p>";
							$numerosSerie.=$valores[3].',';
						}

					}
					
					$numerosSerie=substr($numerosSerie,0,-1);
				}
				
				if(!$palet['CodigoPalet']) $palet['CodigoPalet']='-';
				
				$parametros.=$producto['LineaEntrada'].','.$palet['CodigoPalet'].','.$cantidad;
				if($numerosSerie) $parametros.=','.$numerosSerie;
				$parametros.=';';
				
			}
			
		}
		
	}
	
	$parametros=substr($parametros,0,-1);
	
	//echo "<p>".$parametros."</p>";
	
	$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#ANULACIONLECTURAPRODUCTO#'.$_SESSION['almacen'].';'.$_SESSION['entrada']['Empresa'].';'.$_SESSION['entrada']['NumEntrada'].';'.$parametros;
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($_GET['traza']=='si') {
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$valores=explode('#',$resultado[0]['Error']);
	
	$error=$valores[0];
	$mensaje=$valores[1];
	
	if($error) {
		?>
        
        <p class="error">ERROR: <?php echo $mensaje; ?></p>
        
        <script>
		alert('<?php echo $mensaje; ?>',null,'error')
		</script>
        
        <?php
	}
	else {
	
		if($seHanMarcadoCajas) $mensaje.='<br><br>ATENCIÓN: Se ha anulado la lectura de cajas completas.<br>Las etiquetas impresas anteriormente deben ser desechadas<br>y en su caso volver a pesarse y reetiquetarse.';
	
		?>
        <script>
		alert('<?php echo $mensaje; ?>',null,'ok')
		.done(function(){
			$('#popupCargando').show();
			window.location='<?php echo $rutaHtml; ?>/entrada-mercancia-gs1.php';
		});
		</script>
        <?php
	}

}
else {



/////// RE-CARGA DE LOS DATOS DE LA ENTRADA ///////

$peticion='SGAEntradasMercancia#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLEENTRADA#'.$_SESSION['almacen'].';'.$_SESSION['entrada']['Empresa'].';'.$_SESSION['entrada']['NumEntrada'];

$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
$_SESSION['entrada']=$resultado[0];
$_SESSION['palets']=arreglaArrayPXMobileProxiumResult($_SESSION['entrada']['DetallePalets']);

$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['entrada']['ListaProductos']);

$productosALeer=array();
$productosLeidos=array();

foreach($_SESSION['productos'] as $producto) {
			 
	if($producto['Leido']>0) {
		$productosLeidos[]=$producto;
		if( $producto['Cantidad'] > $producto['Leido'] ) $productosALeer[]=$producto;
	}
	else $productosALeer[]=$producto; 
	
	if( $producto['MarcaLineaNueva']=='S') $discrepanciasNuevos[]=$producto;
	else if( $producto['Cantidad']>$producto['Leido']) $discrepanciasSinLeer[]=$producto;
	else if($producto['CantidadExcedida']) $discrepanciasLeidoDeMas[]=$producto;
}

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


?>

<div class="estilosOP">

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

<h2>Entrada de Mercancía Nº <?php echo $_SESSION['entrada']['NumEntrada']; ?></h2>

<form id="formulario" name="formulario" method="post" action="">

<table class="tablaFormateada anchoMaximo desplazamientoSuperior">
<tr>
	<?php if(count($_SESSION['empresas'])>1) { ?><th>Empresa</th><?php } ?>
    <th>Fecha</th>
	<th>Régimen</th>
	<th>Cliente</th>
	<th>Tipo Entrada</th>
	<th>Tipo Documento</th>
	<th>Expedidor</th>
</tr>
<tr>
	<?php if(count($_SESSION['empresas'])>1) { ?><td><?php echo $_SESSION['entrada']['Empresa']; ?></td><?php } ?>
    <td><?php echo fechaNacional($_SESSION['entrada']['FechaEntrada']); ?></td>
    <td><?php echo $_SESSION['entrada']['Regimen']; ?></td>
    <td><?php echo $_SESSION['entrada']['ClientePropietario']; ?></td>
	<td><?php echo $_SESSION['entrada']['TipoEntrada']; ?></td>
	<td><?php echo $_SESSION['entrada']['TipoDocumento']; ?></td>
	<td><?php echo $_SESSION['entrada']['Expedidor']; ?></td>
  </tr>
</table>

<h3>Productos leídos:</h3>

<input type="hidden" name="seHanMarcadoCajas" id="seHanMarcadoCajas" value=""/>
		
<table class="tablaFormateada">
  <tr>
    	<th>Código</th>
        
        <?php if($_SESSION['entrada']['GestCodB']=='S') { ?>
        <th>Código B</th>
        <?php } ?>
        
        <th>Descripción</th>
        
        <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
        	<?php if($comportamiento['Activo']=='S') { ?><th><?php echo $comportamiento['Nombre']; ?></th><?php } ?>
        <?php } ?>
        
        <th colspan="2">Agrupación</th>
        
        <?php if($pedirUbicacion) { ?>
        <th>Ubicación</th>
        <?php } ?>
        
        <?php if($cambioEstadoDevolucion) { ?>
        <th>Estado</th>
        <?php } ?>
        
		<th>Cantidad</th>
        <th>Formato</th>
	    <th>Liberar</th>
        
        <?php if($_SESSION['entradaBorrarLineas']) { ?>
        <th>Borrar</th>
        <?php } ?>
                    
	</tr>
    <?php
        
	if($_GET['traza']=='si') {
		echo '<p>Array definitivo:</p>';
		print_r($productosLeidos);
	}
		
	foreach($productosLeidos as $producto) {
		
		$hayPalet=false;
		
		$contador++;
		$datos=arreglaArrayPXMobileProxiumResult($producto['Datos']);
			
		$palets=arreglaArrayPXMobileProxiumResult($producto['ProductoPalets']);
		
		foreach($palets as $palet) {
		
			//2021-08-19 Caso VCD que han despaletizado y luego ya no se podía liberar, porque el nivel de palets no incluye CantidadLeida cuando
			//no hay palet (palet guion), asi que para que funcione la pantalla, ponemos como CantidadLeida la cantidad Leido de la linea
			//20-09-2021 Añado que solo si hay un único palet, porque en otros casos, se crean lineas con guion y sin cantidad leida (lo he detectado en decimales)
			if(!$palet['CantidadLeida'] && $palet['CodigoPalet']=='-' && count($palets)==1) $palet['CantidadLeida']=$producto['Leido'];
			
			if($palet['CantidadLeida']>0) {
			
				if ($palet['CodigoPalet']) $numerosSerie=arreglaArrayPXMobileProxiumResult($palet['NumerosSerie']);
				else $numerosSerie=arreglaArrayPXMobileProxiumResult($producto['NumerosSerie']);
				
				?>
				<tr class="lineaEntrada <?php if($producto['MarcaLineaNueva']=='S') { ?>verde<?php } ?>" lineaentrada="<?php echo $producto['LineaEntrada']; ?>" articulo="<?php echo $producto['Descripcion']; ?>">
				
                	<td valign="center"><?php echo $producto['Codigo']; ?></td>
                    
                    <?php if($_SESSION['entrada']['GestCodB']=='S') { ?>
                    <td valign="center"><?php echo $producto['CodigoB']; ?></td>
                    <?php } ?>
                    
				  	<td align="left" valign="center" 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 valign="center" align="left">
						<?php
						if($comportamiento['Codigo']=='NS' && $producto['NumerosSerie']) {
							foreach($numerosSerie as $numero) {
								?><input name="numserie_<?php echo $producto['LineaEntrada']; ?>_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>_<?php echo $numero['NumeroSerie']; ?>" type="checkbox" class="checkGrande selectorNumeroSerie" id="numserie_<?php echo $producto['LineaEntrada']; ?>_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>_<?php echo $numero['NumeroSerie']; ?>" value="on" lineaentrada="<?php echo $producto['LineaEntrada']; ?>" codigopalet="<?php echo limpiaCodigo($palet['CodigoPalet']); ?>"/>
				  <?php echo $numero['NumeroSerie']; ?><br /><?php
							}
						}
						else echo formateaTipo($producto[$comportamiento['NombreSQL']],$comportamiento['Tipo']);
						?>
                        </td>
					<?php } ?>
					<?php } ?>
                    
					<td>
					<?php
					
					//print_r($palet);
					
					if($palet['CodigoPalet']!='-') {
					
						if($palet['EsCaja']=='S' && !$palet['PaletPadre']) { ?>
                        	<?php if($palet['EsCajaRoturas']=='S') { ?>
                        		<img src="<?php echo DIR_IMAGENES; ?>/caja-roturas.png" style="width:30px;"/>
                            <?php } else { ?>
                            	<img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:30px;"/>
                            <?php } ?>
						<?php } else { ?>
                        	<?php if($palet['EsCarro']=='S') { ?>
                        		<img src="<?php echo DIR_IMAGENES; ?>/carro.png" style="width:35px;"/>
                            <?php } else { ?>
                            	<img src="<?php echo DIR_IMAGENES; ?>/palet-vacio.png" style="width:40px;"/>
                            <?php } ?>
						<?php }
						
						?><br /><?php
						
						if($palet['EsCaja']!='S' && !(float)$palet['CantidadLeida']>0 ) {
							 ?><span class="error"><?php echo $palet['CodigoPalet']; ?></span> <img src="<?php echo DIR_IMAGENES; ?>/x-ajustado.png" alt="Eliminar" class="borrarPalet clicable" palet="<?php echo limpiaCodigo($palet['CodigoPalet']); ?>" style="margin: 0 0 -2px 10px"/><?php
						}
						else if($palet['PaletPadre']) echo $palet['PaletPadre'];
						else echo $palet['CodigoPalet'];
						
						//$palet['IdPaletCliente']='00012384746165168282';
					
						if($palet['IdPaletCliente']) echo '<br /><span style="color:#888888;font-size:0.86em">'.$palet['IdPaletCliente'].'</span>';
						if($palet['IdSubPaletCliente']) echo '<br /><span style="color:#888888;font-size:0.86em">'.$palet['IdSubPaletCliente'].'</span>';
					}
					?>
                    </td>
                    
                    <td>
                    <?php
					if($palet['PaletPadre']) {
					
						?><img src="<?php echo DIR_IMAGENES; ?>/caja-vacia.png" style="width:30px;"/><?php
						
						?><br /><?php
						
						echo $palet['CodigoPalet'];
						
					}
					?>
					</td>
                    
                    <?php if($pedirUbicacion) { ?>
                    <td><?php echo $palet['UbicacionPalet']; ?></td>
                    <?php } ?>
                    
                    <?php if($cambioEstadoDevolucion) { ?>
                    <td><?php echo $producto['EstadoRecepcionDescripcion']; ?></td>
                    <?php } ?>
                    
					<td align="right" valign="center"><?php echo formateaNumeroDecimal($palet['CantidadLeida']); ?></td>
				    <td align="center" valign="center"><?php echo $producto['Formato']; ?></td>
				    <td align="center" valign="center">
                    
                    <?php $liberarCajaCompleta=($palet['EsCaja']=='S' && $palet['EsCajaRoturas']!='S'); ?>
                    	
                        <input name="check_desleer_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>" id="check_desleer_<?php echo $producto['LineaEntrada']; ?>_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>" type="checkbox" value="" class="checkGrande check_desleer" <?php if(!$liberarCajaCompleta) { ?>style="display:none"<?php } ?> identificador="<?php echo $producto['LineaEntrada']; ?>_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>" cantidad="<?php echo $palet['CantidadLeida']; ?>"/>
                        <input name="desleer_<?php echo $producto['LineaEntrada']; ?>_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>" type="<?php if($liberarCajaCompleta) { ?>hidden<?php } else { ?>text<?php } ?>" id="desleer_<?php echo $producto['LineaEntrada']; ?>_<?php echo limpiaCodigo($palet['CodigoPalet']); ?>" size="2" maxlength="12" class="cantidad campo" maximo="<?php echo $palet['CantidadLeida']; ?>" contador="<?php echo $contador; ?>" <?php if($producto['ControlNumSerie']=='S' || $producto['GestionNumSerieInterno']=='I') { ?>readonly="readonly"<?php } ?> autocomplete="off"/>

				  	</td>
                  
					<?php if($_SESSION['entradaBorrarLineas'] && $_SESSION['entrada']['Regimen']=='GRAL') { ?>
					<td><img src="img_nx/x-ajustado.png" width="18" height="18" class="iconoBorrar clicable"/></td>
					<?php } ?>
                  
				</tr>
				<?php
			
			}
        
		} //Fin iteración palets
		    
	} //Fin iteracion productos
?>
</table>

			<?php if($_SESSION['entradaBorrarLineas']) { ?>
            
            <script>
			
			$(document).ready(function() {
			
				$('.iconoBorrar').on('click',function(){
				
					var linea=$(this).parent().parent().attr('lineaentrada');
					var articulo=$(this).parent().parent().attr('articulo');
				
					confirm('Atención: Se va a proceder a eliminar la linea correspondiente al producto:<br><strong>'+articulo+'</strong>.','advertencia')
					.done(function(){
						$('#popupCargando').show();
						window.location='entrada-mercancia-desleer-gs1.php?borrar=si&linea='+linea;
					});
				
				});
				
			});
			
			</script>
            
            <?php } ?>

<p><input type="submit" name="botonConfirmarDesleer" id="botonConfirmarDesleer" value="Confirmar liberación de lectura" class="boton"/></p>

</form>

<p><input type="submit" name="botonVolver" id="botonVolver" value="Volver a la Entrada" class="boton reducido mostrarCargando"/></p>

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

<script>

$(document).ready(function() {

	$('.check_desleer').on('change',function(){
	
		var identificador=$(this).attr('identificador');
		var cantidad=$(this).attr('cantidad');
		
		console.log('identificador: '+identificador);
		console.log('cantidad: '+cantidad);
		console.log('checkeado: '+$(this).is(':checked'));
	
		if( $(this).is(':checked') ) {
			$('#desleer_'+identificador).val( cantidad );
		}
		else {
			$('#desleer_'+identificador).val('');
		}
	
	});
		
		$('#botonVolver').on("click",function(e) {
			e.preventDefault();
			window.location='<?php echo $rutaHtml; ?>/entrada-mercancia-gs1.php';
		});
		
		
		$('.selectorNumeroSerie').on('click',function() {
		
			var lineaentrada=$(this).attr('lineaentrada');
			var codigopalet=$(this).attr('codigopalet');
			
			var cuantos=0;
			
			$('.selectorNumeroSerie').each(function(){
				var lineaentrada2=$(this).attr('lineaentrada');
				var codigopalet2=$(this).attr('codigopalet');
				if( $(this).is(':checked') && lineaentrada==lineaentrada2 && codigopalet==codigopalet2 ) cuantos++;
			});
			
			if(cuantos==0) cuantos='';
			
			$('#desleer_'+lineaentrada+'_'+codigopalet).val( cuantos );
		
		});
		
		$('#botonConfirmarDesleer').on("click",function(e) {
		
			e.preventDefault();
			
			$('.cantidad').each(function() {
				$(this).removeClass('campoError');
			});
			
			var vacio=true;
			var error=false;
			
			$('.cantidad').each(function(){
			
				if($(this).val()!='') vacio=false;
			
				var contador=$(this).attr('contador');
				var maximo;
				
				maximo=parseFloat($(this).attr('maximo'));
				
				if( parseFloat($(this).val()) > maximo ) {
					$(this).addClass('campoError');
					error=true;
				}

			});
			
			//Se comprueba si hay alguna caja marcada
			var hayCajasMarcadas=false;
			$('.check_desleer').each(function(){
				if($(this).is(':checked')) hayCajasMarcadas=true;
			});
			if(hayCajasMarcadas) $('#seHanMarcadoCajas').val(1);
			else $('#seHanMarcadoCajas').val('');
			
			if(vacio) {
				alert('ATENCIÓN: No hay especificada ninguna cantidad a liberar.',null,'error');
			}
			else if(error) {
				alert('ERROR: Hay cantidades que exceden el total Preparado.',null,'error');
			}
			else {
				$('#popupCargando').show();
				$('#formulario').submit();
			}
			
		});
		
		$('.cantidad').on("click",function(e) {
		
			if( ! $(this).attr('readonly')) {
		
				$('#calculadora').show();
				$('#valorCalculadora').val( $(this).val() );
				$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
			
			}
		
		});
		
});

</script>
<?php
}

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