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

unset($_SESSION['lecturas']);

if($_GET['orden'] && $_GET['empresa']) {

	//02-06-2025 TAREA INTERNA 67118
	if(isset($_GET['redireccionTTT']) && $_GET['redireccionTTT']=='si') $_SESSION['redireccionTTT']['salida']=array('orden'=>$_GET['orden'],'empresa'=>$_GET['empresa']); //Podria ser un "true" ya que no se vuelve a la OP sino al listado
	
	$peticion='TPDTTrazabilidad#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLESALIDA#'.$_GET['orden'];
}
else {
	//Recarga
	$peticion='TPDTTrazabilidad#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DETALLESALIDA#'.$_SESSION['salidaTrazabilidad']['OrdenPreparacion'];
}

$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
if($_GET['traza']=='si') {
	echo "<p>".$peticion."</p>";
	print_r($resultado);
}
	
$_SESSION['salidaTrazabilidad']=$resultado[0];
$_SESSION['productos']=arreglaArrayPXMobileProxiumResult($_SESSION['salidaTrazabilidad']['Productos']);

//14-11-2024 comprobamos si tienen ids disponibles
$_SESSION['hayIdsPreInformados']=true;
foreach($_SESSION['productos'] as $item) {
	$idsDisponibles=arreglaArrayPXMobileProxiumResult($item['IDsDisponibles']);
	if(count($idsDisponibles)==0) $_SESSION['hayIdsPreInformados']=false;
}

if($_GET['traza']=='si') {
	echo '<p>hayIdsPreInformados: '.$_SESSION['hayIdsPreInformados'].'</p>';
}

?>

<div class="estilosOP">

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

<h2 class="desplazamientoSuperiorMenu">Trazabilidad de tabaco en orden de preparación Nº 
  <?php if($_GET['orden']) echo $_GET['orden']; else echo $_SESSION['salidaTrazabilidad']['OrdenPreparacion']; ?></h2>

<?php
if($resultado[0]['Error']) {
	$valores=explode('#',$resultado[0]['Error']);
	?><p class="error">ERROR: <?php echo $valores[1]; ?></p><?php
}
else {
?>

<table class="tablaFormateada desplazamientoSuperior">
<tr>
	<?php if(count($_SESSION['empresas'])>1) { ?><th>Empresa</th><?php } ?>
	<th>Carga</th>
    <th>Fecha</th>
	<th>Cliente</th>
</tr>
<tr>
	<?php if(count($_SESSION['empresas'])>1) { ?><td><?php echo $_SESSION['salidaTrazabilidad']['Empresa']; ?></td><?php } ?>
	<td><?php echo $_SESSION['salidaTrazabilidad']['Carga']; ?></td>
	<td><?php echo fechaNacional($_SESSION['salidaTrazabilidad']['FechaCarga']); ?></td>
    <td><?php echo $_SESSION['salidaTrazabilidad']['NombreCliente']; ?></td>
  </tr>
</table>
    
<?php

// GESTION DE LOS LISTADOS DE PRODUCTOS

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

foreach($_SESSION['productos'] as $producto) {
	
	$cantidadLeida=0;
	foreach(arreglaArrayPXMobileProxiumResult($producto['IDsLeidos']) as $leido) $cantidadLeida+=$leido['Cantidad'];

	if($cantidadLeida>0) $productosLeidos[]=$producto;
	if($producto['Cantidad']>$cantidadLeida) $productosALeer[]=$producto;
}

if(count($productosALeer)>0 || count($productosLeidos)>0) {
	
?>
<h3>Productos incluidos en la salida pendientes de Trazabilidad:</h3>
<?php
	
	if(count($productosALeer)>0) {
	
		?>
    	<table class="tablaFormateada anchoMaximo">
            <tr>
            	<?php if(!$_SESSION['hayIdsPreInformados']) { ?>
                <th>Seleccionar</th>
                <?php } ?>
                <th>Código</th>
                <th>Descripción</th>
                <th>Precinta</th>
                <th>Cantidad</th>
                <?php if($_SESSION['verEnCajas']=='S') { ?>
                <th>Cajas</th>
                <?php } ?>
                <th>Leído</th>
            </tr>
            <?php
			
			$cuantosSeleccionables=0;
        
            foreach($productosALeer as $producto) {
            
				$cantidadLeida=0;
				$productoIDs=arreglaArrayPXMobileProxiumResult($producto['IDsLeidos']);
				foreach($productoIDs as $numero) {
					$cantidadLeida+=$numero['Cantidad'];
				}
				
				$indice=base64_encode($producto['Producto'].'¬¬¬'.$producto['Descripcion'].'¬¬¬'.$producto['Precinta']);
				
				?>
				<tr class="lineaEntrada" indice="<?php echo $indice; ?>">
					<?php if(!$_SESSION['hayIdsPreInformados']) { ?>
					<td><input type="checkbox" name="selector-<?php echo $indice; ?>" id="selector-<?php echo $indice; ?>" class="selectorInicio checkGrande" indice="<?php echo $indice; ?>"/></td>
					<?php $cuantosSeleccionables++; ?>
					<?php } ?>
					<td><?php echo $producto['Producto']; ?></td>
					<td align="left" style="max-width:400px;word-wrap:break-word;"><?php echo $producto['Descripcion']; ?></td>
					<td align="center"><?php echo $producto['Precinta']; ?></td>
					<td align="right"><?php echo number_format($producto['Cantidad'],0,',','.'); ?></td>
					<?php if($_SESSION['verEnCajas']=='S') { ?>
					<td align="right"><?php echo number_format($producto['CantidadCajas'],2,',','.'); ?><br /></td>
					<?php } ?>
					<td align="center"><?php echo number_format($cantidadLeida,0,',','.'); ?></td>
				</tr>
				<?php
            
            } //Fin iteracion productos
            
            ?>
        </table>
<?php
		
	}
	else {
		?><p class="error">No quedan productos pendientes de leer.</p><?php
		$noMostrarPlay=true;
	}

	if(count($productosLeidos)>0) {
	
		?>
        <h3>Trazabilidad ya registrada:</h3>
		
        <table class="tablaFormateada anchoMaximo">
            <tr>
                <th>Código</th>
                <th>Descripción</th>
                <th>Precinta</th>
                <th>Cantidad</th>
              <th>Trazabilidad</th>
            </tr>
            <?php
        
            foreach($productosLeidos as $producto) {
			
				$cadenaTrazabilidad='';
				$cantidadLeida=0;
				$productoIDs=arreglaArrayPXMobileProxiumResult($producto['IDsLeidos']);
				foreach($productoIDs as $numero) {
					if(!empty($cadenaTrazabilidad)) $cadenaTrazabilidad.=';';
					$cadenaTrazabilidad.=base64_encode($numero['CodigoEscaneado']).','.$numero['Formato'].','.$numero['Cantidad'];
					$cantidadLeida+=$numero['Cantidad'];
				}
				
				?>

                <tr class="lineaEntrada" >
                    
					<td><?php echo $producto['Producto']; ?></td>
                    <td align="left" style="max-width:400px;word-wrap:break-word;"><?php echo $producto['Descripcion']; ?></td>
                    <td align="center"><?php echo $producto['Precinta']; ?></td>
                    <td align="right"><?php echo number_format($cantidadLeida,0,',','.'); ?></td>
                  <td><img class="verTrazabilidad clicable" src="<?php echo DIR_IMAGENES; ?>/barcode-buscar.png" style="width:60px" numeros="<?php echo $cadenaTrazabilidad; ?>"/></td>
                </tr>
            
				<?php
            
            } //Fin iteracion productos
            
            ?>
        </table>
        <?php

	}
	
	if(count($productosLeidos)>0) {
		if($_SESSION['salidaTrazabilidad']['Estado']!='Cerrada') {
			?><p><input type="submit" name="botonDesleer" id="botonDesleer" value="Liberar lectura"class="mostrarCargando boton"  style="font-size:0.9em" /></p><?php
		}
	}
	
}
else {
	?><p>Esta Salida no tiene productos.</p><?php
}

?>

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

<script>

$(document).ready(function() {

	$('#botonDesleer').on("click",function(e){
		window.location='<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida-liberar.php?carga=<?php echo $_SESSION['salidaTrazabilidad']['OrdenPreparacion']; ?>&empresa=<?php echo $_SESSION['salidaTrazabilidad']['Empresa']; ?>'
	});

	$('#botonLectura').on("click",function(e){
	
		var parametros='';
		var continuar=false;
		
		<?php if(!$_SESSION['hayIdsPreInformados']) { ?>
		
			//Primero miramos si hay check de inicio
			$('.selectorInicio').each( function(){
				if( $(this).is(":checked") ) {
					parametros='indice='+$(this).attr('indice');
				}
			});
			
			if(parametros=='') {
				alert('Productos incluidos en esta preparación tienen un<br>stock de ids excesivo para trazabilidad directa.<br><br>Para comenzar el proceso debes seleccionar un producto.',null,'error');
			}
			else continuar=true;
		
		<?php } else { ?>
		
			continuar=true;
		
		<?php } ?>
		
		if(continuar) {
		
			$('#popupCargando').show();
		
			<?php if($_SESSION['salidaTrazabilidad']['Estado']=='Iniciada') { ?>
				window.location='<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida-proceso.php?'+parametros;
			<?php } else { ?>
				$.post( "<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-salida-iniciar.php" )
				.done(function(data) {
					var resultado=data.split('#');
					if(resultado[0]==1) {
						$('#popupCargando').hide();
						alert('Error: '+resultado[1]);
					}
					else window.location='<?php echo $rutaHtml; ?>/trazabilidad-tabaco-salida-proceso.php?'+parametros;	
				});
			<?php } ?>
		
		}
		
	});
	
	$('.selectorInicio').on("click",function(){
		valorActual=$(this).prop('checked');
		$('.selectorInicio').prop('checked',false);
		$(this).prop('checked',valorActual);
	});
	
	$('.verTrazabilidad').on('click',function(){
	
		$('#popupCargando').show();
	
		$.post('<?php echo $rutaHtml; ?>/contenidos/trazabilidad-tabaco-ids.php' , { 'numeros' : $(this).attr('numeros') })
		.done(function(data) {
		
			$('#popupCargando').hide();
		
			$('#popupTrazabilidadContenido').html(data);
			$('#popupTrazabilidad').show();
			$('#popupTrazabilidadContenido').show();
			
			var posicion=$(document).scrollTop();
			$('#popupTrazabilidadContenido').offset({ top: posicion+20 });
		});
		
	});
	
	<?php if($cuantosSeleccionables==1) { ?>
	$('.selectorInicio').prop('checked',true);
	<?php } ?>

	
});

</script>
<?php
} //Else error

$noMostrarInfo=true;

include($rutaPhp.$rutaHtml.'/maqueta/menu-trazabilidad-tabaco-salida.php');

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