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



$gestionLineas=($_SESSION['parametrosSGA']['GestionLineasTrabajo']=='S');
$gestionTurnos=($_SESSION['parametrosSGA']['GestionTurnosTrabajo']=='S');

//03-08-2023 TICKET 23053390
$asociarSSCC=($_SESSION['parametrosSGA']['AsociarSSCC']=='S');


if($_POST['noConformes']) $noConformes=$_POST['noConformes']; else if($_GET['noConformes']) $noConformes=$_GET['noConformes'];
if($_POST['autocontroles']) $autocontroles=$_POST['autocontroles']; else if($_GET['autocontroles']) $autocontroles=$_GET['autocontroles'];


if($noConformes) $accion='LISTADONOCONFORMES';
else if($autocontroles) $accion='AUTOCONTROLESPENDIENTES';
else $accion='LISTADOPENDIENTES';

$peticion='SGAControlesCalidad#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#'.$accion;
$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

$listado=arreglaArrayPXMobileProxiumResult($resultado[0]['ControlesCalidadPendientes']);

if($_GET['traza']=='si') {
	echo "<p>".$peticion."</p>";
	print_r($resultado);
}

$comboClientes=array();
$comboRefClientes=array();
$comboProductos=array();
$comboTipoControles=array();

foreach($listado as $item) {

	if(!array_key_exists($item['Cliente'],$comboClientes) && $item['Cliente']!='') $comboClientes[$item['Cliente']]=$item['ClienteNombre'];
	if(!in_array($item['RefCliente'],$comboRefClientes) && $item['RefCliente']!='') $comboRefClientes[]=$item['RefCliente'];
	if(!array_key_exists($item['Producto'],$comboProductos) && $item['Producto']!='') $comboProductos[$item['Producto']]=$item['ProductoNombre'];
	if(!in_array($item['TipoAutoControl'],$comboTipoControles) && $item['TipoAutoControl']!='') $comboTipoControles[]=$item['TipoAutoControl'];
		
}

asort($comboClientes);
asort($comboRefClientes);
asort($comboProductos);
asort($comboTipoControles);



if( !$resultado[0]['Error'] && is_array($listado) && count($listado)>0 ) {

	?>
    
    <?php if(!$autocontroles) { ?>
    
     <p class="sinMargen">Palet:<div class="campoOrdenPreparacionBloque" style="margin:0 auto">
            <img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoPalet" /><input name="palet" type="text" class="campo campoOrdenPreparacion" id="palet" maxlength="20" style="left:5px;"/>
            <img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" id="borrarPalet" style="position:absolute;right:5px;cursor:pointer;"/>
        </div>
    </p>
    
    <?php } ?>
    
    <?php if($autocontroles) { ?>
    <form id="formulario" name="formulario" method="post" action="">
    <?php } ?>
    
    <table class="tablaFormateada2022 anchoMaximo" style="font-size:0.9em">
    
	<tr style="white-space:nowrap">
    
    	<th>Cliente</th>
        
        <?php if(!$autocontroles) { ?>
        
        <th>Palet</th>
        
        <?php if($asociarSSCC) { ?>
        <th>SSCC</th>
        <?php } ?>
        
        <th>Ubicación</th>
        
        <?php } //Fin if not autocontroles ?>
        
        <th>Producto</th>
        <th>Descripción</th>
        
        <?php if(!$autocontroles) { ?>
        
        <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
			<?php if($comportamiento['Activo']=='S') { ?><th><?php echo $comportamiento['Nombre']; ?></th><?php } ?>
		<?php } ?>
        
        <th>Cantidad</th>
        
        <?php } ?>
        
        <th>Transformación</th>
        <th>Ref. Cliente</th>
        
        <?php if($autocontroles) { ?>
        <th>Control</th>
        <?php } ?>
        
        <th><?php if($noConformes) { ?>Desde<?php } else { ?>Cierre<?php } ?></th>
        
        <?php if($gestionLineas) { ?>
        <th>Linea</th>
        <?php } ?>
        
        <?php if($gestionTurnos) { ?>
        <th>Turno</th>
        <?php } ?>
        
        <th>Usuario</th>
        
        <?php if($autocontroles) { ?>
        <th>Conformidad</th>
        <?php } ?>
        
	</tr>

	<?php
	
	$impar=false;
	
	foreach($listado as $operacion) {
	
		$lotes=array();
		foreach(arreglaArrayPXMobileProxiumResult($operacion['Lotes']) as $item) $lotes[]=$item;
		$cuantosLotes=count($lotes);
		
		if($autocontroles) $cuantosLotes=1; //Para que no haga los rowspan porque son lineas individuales
	
		$cadenaIndices =' producto="'.$operacion['Producto'].'"';
		$cadenaIndices.=' cliente="'.$operacion['Cliente'].'"';
		$cadenaIndices.=' refCliente="'.$operacion['RefCliente'].'"';
		
		if(!$autocontroles) $cadenaIndices.=' palet="'.$operacion['Palet'].'"';
	
		$cadenaIndices.=' transformacion="'.$operacion['Transformacion'].'"';

		
		if($autocontroles) {
			$cadenaIndices.=' lineatrabajo="'.$operacion['LineaTrabajo'].'"';
			$cadenaIndices.=' turno="'.$operacion['Turno'].'"';
			$cadenaIndices.=' ordinal="'.$operacion['OrdinalAutoControl'].'"';
			$cadenaIndices.=' ordinalConcepto="'.$operacion['OrdinalConcepto'].'"';
			$cadenaIndices.=' productonombre="'.$operacion['ProductoNombre'].'"';
			$cadenaIndices.=' lineatrabajonombre="'.$operacion['LineaTrabajoNombre'].'"';
			$cadenaIndices.=' turnonombre="'.$operacion['TurnoNombre'].'"';
			$cadenaIndices.=' tipoautocontrol="'.$operacion['TipoAutoControl'].'"';
		}
		
		$estilo="";
		if($operacion['Reprocesado']=='S') $estilo='rojo';
		
		
	
		?>
        
        <tr class="lineaOrden primerNivel clicable <?php echo $estilo; ?> <?php if($impar) {?>coloreado<?php } ?>" style="height:75px" <?php echo $cadenaIndices; ?>>

			<td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable">
            
			<?php echo $operacion['ClienteNombre']; ?></td>
            
            <?php if(!$autocontroles) { ?>
            
                <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['Palet']; ?></td>
                <?php if($asociarSSCC) { ?>
                <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['SSCC']; ?></td>
                <?php } ?>
                <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['Ubicacion']; ?></td>
                
            <?php } //Fin if not autocontroles?>
            
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['Producto']; ?></td>
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['ProductoNombre']; ?></td>
            
            <?php if(!$autocontroles) { ?>
            
            <?php
			$traductorComportamientos=array('REGE'=>'Regimen','LT'=>'NumLote','FCAD'=>'FechaCaducidad','IDI'=>'Idioma','PRECEMP'=>'Precinta');
			?>
			<?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
                <?php if($comportamiento['Activo']=='S') { ?>
				<td valign="middle" <?php echo $cadenaEnlaceBase.$cadenasEnlaceProductos[0]; ?> class="lineaOrdenClicable">
				<?php echo formateaTipo($lotes[0][$traductorComportamientos[$comportamiento['Codigo']]],$comportamiento['Tipo']); ?>
				</td>
				<?php } ?>
			<?php } ?>
            
            <td class="lineaOrdenClicable"><?php echo formateaNumeroDecimal($lotes[0]['Cantidad'],true); ?></td>
            
            <?php } ?>
            
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['Transformacion']; ?></td>
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['RefCliente']; ?></td>
            
            <?php if($autocontroles) { ?>
            <td class="lineaOrdenClicable"><?php echo $operacion['TipoAutoControl']; ?><?php if($operacion['TipoAutoControl']=='Limpieza') echo '<br>al '.strtolower($operacion['OrdinalConcepto']); ?></td>
            <?php } ?>
            
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['FechaHoraCierre']; ?></td>
            
            <?php if($gestionLineas) { ?>
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['LineaTrabajoNombre']; ?></td>
            <?php } ?>
            
            <?php if($gestionTurnos) { ?>
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['TurnoNombre']; ?></td>
            <?php } ?>
            
            <td rowspan="<?php echo $cuantosLotes; ?>" class="lineaOrdenClicable"><?php echo $operacion['Usuario']; ?></td>
            
            <?php if($autocontroles) { ?>
            
            <?php
			
			
            if($operacion['TipoAutoControl']=='Limpieza') $identificadorTipo='L';
			else if($operacion['TipoAutoControl']=='Autocontrol') $identificadorTipo='S';
			
			$identificador='conformidadAutocontrol-'.$operacion['Transformacion'].'-'.$identificadorTipo.'-'.$operacion['OrdinalAutoControl'].'-'.$operacion['OrdinalConcepto'];;

			?>
            
            <td>
            <?php //print_r($operacion); ?>
            <input type="checkbox" name="<?php echo $identificador; ?>" id="<?php echo $identificador; ?>" class="checkConformidad checkGrande" identificadortipo="<?php echo $identificadorTipo; ?>"/>
            </td>
            <?php } ?>
            
		</tr>
        
        <?php if(!$autocontroles) { ?>
        
			<?php if($cuantosLotes>1) { ?>
            
				<?php for($i=1;$i<$cuantosLotes;$i++) { ?>
                
                    <tr class="lineaOrden segundoNivel clicable <?php echo $estilo; ?> <?php if($impar) {?>coloreado<?php } ?>" style="height:75px" <?php echo $cadenaIndices; ?>>
                    
                        <?php foreach($_SESSION['comportamientos'] as $comportamiento) { ?>
                            <?php if($comportamiento['Activo']=='S') { ?>
                            <td valign="middle" <?php echo $cadenaEnlaceBase.$cadenasEnlaceProductos[0]; ?> class="lineaOrdenClicable">
                            <?php echo formateaTipo($lotes[$i][$traductorComportamientos[$comportamiento['Codigo']]],$comportamiento['Tipo']); ?>
                            </td>
                            <?php } ?>
                        <?php } ?>
                        <td class="lineaOrdenClicable"><?php echo formateaNumeroDecimal($lotes[$i]['Cantidad'],true); ?></td>
                    
                    </tr>
                
                <?php } ?>
            
            <?php } ?>
        
        <?php } ?>
        
        <?php $impar=!$impar; ?>

	<?php } //Fin foreach ?>
    
    </table>
    
    <input type="hidden" id="enviar" name="enviar" value="" />
    
    <?php if($autocontroles) { ?>
    
    <p><input type="button" name="botonSeleccionarEnBloque" id="botonSeleccionarEnBloque" value="Seleccionar todos" class="boton reducido"/></p>
    
    <p>Resultado de la inspeccion en bloque:</p>
        
    <p><strong><label><input name="resultadoInspeccion" id="resultadoInspeccionAceptada" type="radio" value="Aceptado" class="checkGrande" style="vertical-align:sub;" /> ACEPTADAS</label> <label><input name="resultadoInspeccion" id="resultadoInspeccionNoConforme" type="radio" value="No conforme" class="checkGrande" style="vertical-align:sub;margin-left:20px" /> NO CONFORMES</label></strong></p>
    
    <p><input type="button" name="botonEnviarEnBloque" id="botonEnviarEnBloque" value="ENVIAR" class="boton"/></p>
    
    </form>
    
    <script>
	
		$(document).ready(function() {
		
			$('#botonSeleccionarEnBloque').on('click',function(){
			
				var todosSeleccionados=true;
				$('.checkConformidad').each(function(){
					if( $(this).parent().parent().css('display')!='none' && ! $(this).is(':checked') ) todosSeleccionados=false;
				});	
			
				$('.checkConformidad').prop('checked',false);
			
				if(!todosSeleccionados) {
				
					$('.checkConformidad').each(function(){
						console.log('control check. la visibilidad de su parent es: '+$(this).parent().parent().css('display'));
						
						if( $(this).parent().parent().css('display')!='none' ) $(this).prop('checked',true);
					});
			
				}
				
			});
			
			$('#botonEnviarEnBloque').on('click',function(){
			
				var algunoSeleccionado=false;
				var limpiezasSeleccionadas=false;
			
				$('.checkConformidad').each(function(){
					if($(this).is(':checked')) algunoSeleccionado=true;
					if($(this).attr('identificadortipo')=='L' && $(this).is(':checked') ) limpiezasSeleccionadas=true;
				});
				
				if( limpiezasSeleccionadas && $('#resultadoInspeccionNoConforme').is(':checked') ) {
					alert('ATENCION: No puedes marcar limpiezas como no conformes.',null,'advertencia');
				}
				else if(!algunoSeleccionado) {
					alert('Por favor, selecciona alguna linea de autoncontrol para proceder.',null,'advertencia');
				}
				else  {
				
					$('#enviar').val(1);
					$('#popupCargando').show();
					$('#formulario').submit();
				
				}
				
				
			});
			
		
		});
	
	</script>
    
    <?php } ?>

    
	<div class="barraFiltro">
    	
        <table cellpadding="5" style="margin:0 auto">
        	<tr>
        	  
				<td>
                Cliente:<br /> 
                <select name="filtroCliente" id="filtroCliente" class="campo selectorFiltro" style="width:240px">
                    <option value="">---</option>
                    <?php foreach($comboClientes as $clave=>$valor) { ?>
                    <option value="<?php echo $clave; ?>"><?php echo $valor; ?></option>
                    <?php } ?>
                </select>
                </td>
                
                <td>
                Ref. Cliente:<br /> 
                <select name="filtroRefCliente" id="filtroRefCliente" class="campo selectorFiltro" style="width:240px">
                    <option value="">---</option>
                    <?php foreach($comboRefClientes as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
                
                <?php if($autocontroles) { ?>
                <td>
                Tipo control:<br /> 
                <select name="filtroTipoControl" id="filtroTipoControl" class="campo selectorFiltro" style="width:240px">
                    <option value="">Todos</option>
                    <?php foreach($comboTipoControles as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
                <?php } ?>

				<td>
                Producto:<br /> 
                <select name="filtroProducto" id="filtroProducto" class="campo selectorFiltro" style="width:240px">
                    <option value="">---</option>
                    <?php foreach($comboProductos as $clave=>$valor) { ?>
                    <option value="<?php echo $clave; ?>"><?php echo $valor; ?></option>
                    <?php } ?>
                </select>
                </td>
                
                <td>
                <img id="filtroApagado" src="<?php echo DIR_IMAGENES; ?>/botones/filter-off.png" alt="Filtro" style="width:60px;height:60px;"/>
                <img id="aplicarFiltro" src="<?php echo DIR_IMAGENES; ?>/botones/filter.png" alt="Filtro" style="display:none;width:60px;height:60px;cursor:pointer;"/>
                <img id="quitarFiltro" src="<?php echo DIR_IMAGENES; ?>/botones/filter-remove.png" alt="Filtro" style="display:none;width:60px;height:60px;cursor:pointer"/>                </td>
            </tr>
        </table>
        
	</div>
    
	<script>
	
		function repintarTabla() {
		
			console.log('REPINTAR TABLA');
	
			$(".lineaOrden").children('td').css('background-color','#ffffff');
		
			var par=true;
			$(".primerNivel").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);
				}
			});
			
			$(".segundoNivel").each(function(){
			
				var colorActual=$(this).css('background-color');
				//console.log('colorActual: '+colorActual);
				
				var anterior=$(this).prev();
				var campoAnterior=anterior.children('td').first();
				var colorAnterior=campoAnterior.css('background-color');
				//console.log(campoAnterior.text());
				//console.log('colorAnterior: '+colorAnterior);
				
				$(this).children('td').css('background-color',colorAnterior);

			});

		
		}
		
		function aplicarFiltro(id) {
		
			if( $('#filtroCliente').val()=='' && $('#filtroRefCliente').val()=='' && $('#filtroProducto').val()=='' && $('#filtroTipoControl').val()=='' ) {
				$('#filtroApagado').show();
				$('#quitarFiltro').hide();
				$('#aplicarFiltro').hide();
			}
			else  {
				$('#filtroApagado').hide();
				$('#quitarFiltro').show();
				$('#aplicarFiltro').hide();
			}
			
			$('.lineaOrden').each(function() {
			
				var coincidenciaCliente=false;
				var coincidenciaRefCliente=false;
				var coincidenciaProducto=false;
				var coincidenciaTipoControl=false;
			
				if( $('#filtroCliente').val()!='' && $(this).attr('cliente')==$('#filtroCliente').val() ) coincidenciaCliente=true;
				else if( $('#filtroCliente').val()=='' ) coincidenciaCliente=true;
				
				if( $('#filtroRefCliente').val()!='' && $(this).attr('refCliente')==$('#filtroRefCliente').val() ) coincidenciaRefCliente=true;
				else if( $('#filtroRefCliente').val()=='' ) coincidenciaRefCliente=true;
				
				if( $('#filtroProducto').val()!='' && $(this).attr('producto')==$('#filtroProducto').val() ) coincidenciaProducto=true;
				else if( $('#filtroProducto').val()=='' ) coincidenciaProducto=true;
				
				if( $('#filtroTipoControl').val()!='' && $(this).attr('tipoautocontrol')==$('#filtroTipoControl').val() ) coincidenciaTipoControl=true;
				else if( $('#filtroTipoControl').val()=='' ) coincidenciaTipoControl=true;
				
				if( coincidenciaCliente && coincidenciaRefCliente && coincidenciaProducto && coincidenciaTipoControl) $(this).show();
				else $(this).hide();
				
			});
			
			repintarTabla();
			
			$('#palet').focus();
		
		}
		
		function abreControlCalidad(palet,transformacion,linea) {
		
			$('#popupCargando').show();
			var linea;
			
			<?php if($noConformes) { ?>
			window.location='<?php echo $rutaHtml; ?>/calidad-control-no-conforme.php?palet='+palet+'&transformacion='+transformacion;
			<?php } else if($autocontroles) { ?>
			
			var url;
	
			url ='calidad-control.php';
			
			if(linea.attr('tipoautocontrol')=='Limpieza') {	
				url+='?procedencia=limpieza_revision';
			}
			else if(linea.attr('tipoautocontrol')=='Autocontrol') {	
				url+='?procedencia=autocontrol_revision';
			}
			
			url+='&empresa=<?php echo $_SESSION['empresa']; ?>';
			url+='&transformacion='+linea.attr('transformacion');
			url+='&producto='+linea.attr('producto');
			url+='&productoNombre='+linea.attr('productonombre');
			url+='&cliente='+linea.attr('cliente');
			url+='&lineaTrabajo='+linea.attr('lineatrabajo');
			url+='&lineaTrabajoNombre='+linea.attr('lineatrabajonombre');
			url+='&turnoTrabajo='+linea.attr('turno');
			url+='&turnoTrabajoNombre='+linea.attr('turnonombre');
			url+='&ordinal='+linea.attr('ordinal');
			url+='&ordinalConcepto='+linea.attr('ordinalConcepto');
			
			window.location=url;
			
			<?php } else { ?>
			window.location='<?php echo $rutaHtml; ?>/calidad-control.php?palet='+palet+'&transformacion='+transformacion;
			<?php } ?>
						
		}
	
		$(document).ready(function() {
			
			$(document).on('click','.lineaOrdenClicable',function(e){
			
				var palet=$(this).parent().attr('palet');
				var transformacion=$(this).parent().attr('transformacion');
					
				$('#popupCargando').show();
				abreControlCalidad(palet,transformacion,$(this).parent());
				
			});
			
			$(document).on('change','#palet',function(){
		
				var palet=$(this).val();
				var encontrado=false;
				var cuantosEncontrados=0;
				var transformacion='';
		
				if(palet!='') {
		
					$('#popupCargando').show();
					
					console.log('cuantosEncontrados: '+cuantosEncontrados);
					
					$('.lineaOrden').each(function() {
						if( $(this).attr('palet')==palet ) {
							encontrado=true;
							transformacion=$(this).attr('transformacion');
							cuantosEncontrados++;
						}
					});
					
					console.log('cuantosEncontrados despues: '+cuantosEncontrados);
					
					if(encontrado) {
						if(cuantosEncontrados>1) {
							$('#popupCargando').hide();
							alert('Atención: Este palet contiene producto de diferentes transformaciones.<br><br>Por favor, elige desde el listado.',null,'advertencia')
							.done(function(){
								$("#palet").val('');
								$("#palet").focus();
							});
						}
						else {
							abreControlCalidad(palet,transformacion);
						}
					}
					else {
						$('#popupCargando').hide();
						alert('Error: Palet no encontrado.',null,'error')
						.done(function(){
							$("#palet").val('');
							$("#palet").focus();
						});
					}
				}
				
			});
					
			$(document).on('click','#tecladoPalet',function(){
				$('#teclado').show();
				$('#valor').val( $('#palet').val() );
				$('#valorOculto').val( $('#palet').val() );
				$('#enter').attr('campoValor','palet');
				$('#enter').attr('forzarEnter','si');	
			});
					
			$(document).on('click','#borrarPalet',function(){
				$("#palet").val('');
				$("#palet").focus();		
			});
			
			$('.selectorFiltro').on("change",function() {
				aplicarFiltro();
			});
			
			$('#quitarFiltro').on("click",function() {
		
				$('#filtroCliente option:selected').removeProp('selected');
				$('#filtroCliente option[value=""]').prop('selected',true);
				
				$('#filtroRefCliente option:selected').removeProp('selected');
				$('#filtroRefCliente option[value=""]').prop('selected',true);
				
				$('#filtroProducto option:selected').removeProp('selected');
				$('#filtroProducto option[value=""]').prop('selected',true);
				
				$('#filtroTipoControl option:selected').removeProp('selected');
				$('#filtroTipoControl option[value=""]').prop('selected',true);
				
				$('#filtroApagado').show();
				$('#quitarFiltro').hide();
				$('#aplicarFiltro').hide();
	
				$(".lineaOrden").show();
				
				repintarTabla();
				
				$('#palet').focus();
				
			});
			
		$('#palet').focus();
			
		});
	
	</script>
    
	<?php
}
else {
	if($resultado[0]['Error']) {
		$valores=explode('#',$resultado[0]['Error'])
		?>
		<script>
			alert('<?php echo $valores[1]; ?>',null,'error');
		</script>
		<?php
	}
	else {
		?>
		<p>No hay ningún control de calidad pendiente.</p><?php
	}
}
?>