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

$peticion='SGAOrdenesComplejo#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#'.$_SESSION['almacen'];

$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

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

$comboEstados=array();
$comboClientes=array();
$comboDestinos=array();
$comboCargas=array();

foreach($resultado as $item) {

	if(!in_array($item['Estado'],$comboEstados) && $item['Estado']!='') $comboEstados[]=$item['Estado'];
	
	//Busqueda en array de dos dimensiones
	//if(!array_search($item['Cliente'], array_column($comboClientes,0)) && $item['Cliente']!='') $comboClientes[]=array($item['Cliente'],$item['NombreCliente']);
	$clienteEncontrado=false;
	foreach($comboClientes as $item2) {
		if($item['Cliente']==$item2[0]) { $clienteEncontrado=true; break; }
	}
	if(!$clienteEncontrado && $item['Cliente']!='') $comboClientes[]=array($item['Cliente'],$item['NombreCliente']);
	
	
	if(!in_array($item['DestinoNombre'],$comboDestinos) && $item['DestinoNombre']!='') $comboDestinos[]=$item['DestinoNombre'];
	if(!in_array($item['Carga'],$comboCargas) && $item['Carga']!='') $comboCargas[]=$item['Carga'];
	
}

//Ordenación por Cliente->NombreCliente
$aux=array();
foreach ($comboClientes as $clave=>$item) $aux[$clave] = $item[1];
array_multisort($aux,SORT_ASC,$comboClientes);

asort($comboDestinos);


if(!$resultado[0]['Error']) {

	//Agrupaciones por cliente+destino+carga
	$agrupacion=array();

	foreach($resultado as $item) {
		if(!isset($agrupacion[$item['Cliente'].'+'.$item['Destino'].'+'.$item['Carga']])) $agrupacion[$item['Cliente'].'+'.$item['Destino'].'+'.$item['Carga']]=1;
		else $agrupacion[$item['Cliente'].'+'.$item['Destino'].'+'.$item['Carga']]++;
	}

	?>
    <form id="formularioOrdenes" name="formularioOrdenes" method="post" action="">
	
    <table class="tablaFormateada anchoMaximo" style="padding-bottom:80px">
	<tr>
		<th></th>
    	<th>Nº Orden</th>
		<th>Fecha Orden</th>
        <th>Estado</th>
        <th>Cliente</th>
        <th>Destino</th>
        <th>Carga Camión</th>
        <th>Fecha Carga</th>
	</tr>
	<?php
	foreach($resultado as $orden) {
		?>
		<tr style="height:75px" class="lineaOrden" cliente="<?php echo $orden['Cliente']; ?>" destino="<?php echo $orden['DestinoNombre']; ?>" carga="<?php echo $orden['Carga']; ?>" estado="<?php echo $orden['Estado']; ?>">
			<td><?php if($orden['Estado']=='Cerrada' && $orden['Carga']!='' && !is_null($orden['Carga'])) { ?><input id="selector-<?php echo $orden['OrdenPreparacion']; ?>" name="selector-<?php echo $orden['OrdenPreparacion']; ?>" type="checkbox" value="<?php echo $orden['OrdenPreparacion']; ?>;<?php echo $orden['Cliente']; ?>;<?php echo $orden['Destino']; ?>" class="checkGrande checkIndividual" cuantos="<?php echo $agrupacion[ $orden['Cliente'].'+'.$orden['Destino'].'+'.$orden['Carga'] ]; ?>" cliente="<?php echo $orden['Cliente']; ?>" destino="<?php echo $orden['Destino']; ?>" carga="<?php echo $orden['Carga']; ?>"/><?php } ?></td>
			<td><?php echo $orden['OrdenPreparacion']; ?></td>
            <td><?php echo fechaNacional($orden['FechaGeneracion']); ?></td>
            <td><?php echo $orden['Estado']; ?></td>
            <td><?php echo $orden['NombreCliente']; ?></td>
            <td><?php echo $orden['DestinoNombre']; ?></td>
            <td><?php echo $orden['Carga']; ?></td>
            <td><?php echo fechaNacional($orden['FechaCarga']); ?></td>
		</tr>
	<?php } ?>
	</table>
    
  <div class="barraFiltro">
    	
        <table cellpadding="5" style="margin:0 auto">
        	<tr>
            	<td><input type="submit" name="botonGenerarPackingList" id="botonGenerarPackingList" value="Generar Packing List" class="boton deshabilitado mostrarCargando" onclick="return compruebaCheks()"/></td>
            	<td>
                Estado:<br />
                <select name="filtroEstado" id="filtroEstado" class="campo selectorFiltro" style="width:200px">
                    <option value="">---</option>
                    <?php foreach($comboEstados as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
            	<td>
                Cliente:<br />
                <select name="filtroCliente" id="filtroCliente" class="campo selectorFiltro" style="width:200px">
                    <option value="">---</option>
                    <?php foreach($comboClientes as $item) { ?>
                    <option value="<?php echo $item[0]; ?>"><?php echo $item[1]; ?></option>
                    <?php } ?>
                </select>
                </td>
                <td>
                Destino:<br />
                <select name="filtroDestino" id="filtroDestino" class="campo selectorFiltro" style="width:200px">
                    <option value="">---</option>
                    <?php foreach($comboDestinos as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
                <td>
                Carga:<br />
                <select name="filtroCarga" id="filtroCarga" class="campo selectorFiltro" style="width:200px">
                    <option value="">---</option>
                    <?php foreach($comboCargas as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></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>
    
</form>
	<script>
	
	function compruebaCheks() {
	
		var haySeleccionados=false;
		
		$(".checkIndividual").each(function(){
        	if ( $(this).is(":checked") ) haySeleccionados=true;
        });
		
		if(!haySeleccionados) {
			alert("Atención: No hay ninguna Orden de Preparación seleccionada.");
			return false;
		}
		else return true;
	}
	
	function deshabilitaBoton(boton,valor) {
	
		if(valor) boton.addClass("deshabilitado");
		else boton.removeClass("deshabilitado");
		
		boton.prop("disabled",valor );
	}
	
	function repintarTabla() {
	
		$(".lineaOrden").children('td').css('background-color','#ffffff');
		$(".lineaOrden").children('td').css('border-bottom','');
		$(".lineaOrden").children('td').css('border-radius','');
		$(".lineaOrden").children('td').css('-mozborder-radius','');
		$(".lineaOrden").children('td').css('-webkit-border-radius','');
	
		var par=true;
		$(".lineaOrden").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);
			}
        });
		
		ultimaFila.children('td').css('border-bottom','1px solid #999999');
		ultimaFila.children('td:first').css('border-radius','0 0 0 15px');
		ultimaFila.children('td:first').css('-mozborder-radius','0 0 0 15px');
		ultimaFila.children('td:first').css('-webkit-border-radius','0 0 0 15px');
		ultimaFila.children('td:last').css('border-radius','0 0 15px 0');
		ultimaFila.children('td:last').css('-mozborder-radius','0 0 15px 0');
		ultimaFila.children('td:last').css('-webkit-border-radius','0 0 15px 0');
	
	}
	
	function aplicarFiltro(id) {
	
		if( $('#filtroEstado').val()=='' && $('#filtroCliente').val()=='' && $('#filtroDestino').val()=='' && $('#filtroCarga').val()=='' ) {
			$('#filtroApagado').show();
			$('#quitarFiltro').hide();
			$('#aplicarFiltro').hide();
		}
		else  {
			$('#filtroApagado').hide();
			$('#quitarFiltro').show();
			$('#aplicarFiltro').hide();
		}
		
		$('.lineaOrden').each(function() {
		
			var coincidenciaEstado=false;
			var coincidenciaCliente=false;
			var coincidenciaDestino=false;
			var coincidenciaCarga=false;
			
			if( $('#filtroEstado').val()!='' && $(this).attr('estado')==$('#filtroEstado').val() ) coincidenciaEstado=true;
			else if( $('#filtroEstado').val()=='' ) coincidenciaEstado=true;
		
			if( $('#filtroCliente').val()!='' && $(this).attr('cliente')==$('#filtroCliente').val() ) coincidenciaCliente=true;
			else if( $('#filtroCliente').val()=='' ) coincidenciaCliente=true;
			
			if( $('#filtroDestino').val()!='' && $(this).attr('destino')==$('#filtroDestino').val() ) coincidenciaDestino=true;
			else if( $('#filtroDestino').val()=='' ) coincidenciaDestino=true;
			
			if( $('#filtroCarga').val()!='' && $(this).attr('carga')==$('#filtroCarga').val() ) coincidenciaCarga=true;
			else if( $('#filtroCarga').val()=='' ) coincidenciaCarga=true;
			
			if( coincidenciaEstado && coincidenciaCliente && coincidenciaDestino && coincidenciaCarga ) $(this).show();
			else $(this).hide();
		});
		

		//Revertimos el check actual si viniera de la linea acutomatico porque confunde al filtrar
		if(id) {
			if( $('#'+id).is(":checked") ) $('#'+id).prop("checked",false);
			else $('#'+id).prop("checked",true);
		}

		repintarTabla();
	
	}
	
	
	
	$(document).ready(function() {
	
		$('.selectorFiltro').on("change",function() {
			aplicarFiltro();
		});
	
		$('#quitarFiltro').on("click",function() {
		
			$('#filtroEstado option:selected').removeProp('selected');
			$('#filtroCliente option:selected').removeProp('selected');
			$('#filtroDestino option:selected').removeProp('selected');
			$('#filtroCarga option:selected').removeProp('selected');
			
			$('#filtroEstado option[value=""]').prop('selected',true);
			$('#filtroCliente option[value=""]').prop('selected',true);
			$('#filtroDestino option[value=""]').prop('selected',true);
			$('#filtroCarga option[value=""]').prop('selected',true);
			
			$('#filtroApagado').show();
			$('#quitarFiltro').hide();
			$('#aplicarFiltro').hide();

			$(".lineaOrden").show();
			
			
			repintarTabla();
			
		});
		
		$('.checkIndividual').on("click",function() {
			
			var id=$(this).attr('id');
			
			var cuantos=$(this).attr('cuantos');
			
			var cliente=$(this).attr('cliente');
			var destino=$(this).attr('destino');
			var carga=$(this).attr('carga');
			
			//Comprobación de que no se están seleccionando ordenes que no coincidan en los tres parametros: cliente, destino y carga
			var coincidencia=true;
			
			$('.checkIndividual').each(function() {
				if ( $(this).is(':checked') && ( cliente!=$(this).attr('cliente') || destino!=$(this).attr('destino') || carga!=$(this).attr('carga') ) ) coincidencia=false;
			});
			
			if(coincidencia) {
			
				deshabilitaBoton($("#botonGenerarPackingList"),false);
			
				//Comprobación de coincidencias multiples
	
				if( cuantos>1 && $('#filtroProducto').val()=='' ) {
				
					confirm( "Existen más Ordenes con el mismo cliente, destino y carga.\n\n¿Deseas aplicar el filtro para visualizarlas?" ).done( function(){
						
						$('#filtroCliente option[value="'+cliente+'"]').attr('selected',true);
						$('#filtroDestino option[value="'+destino+'"]').attr('selected',true);
						$('#filtroCarga option[value="'+carga+'"]').attr('selected',true);
						aplicarFiltro(id);
						
					});
	
				}
			}
			else {
				$(this).prop('checked', false);
				alert("Para un mismo Packing List no puedes seleccionar Ordenes de Preparación de distinto Cliente, Destino o Carga.");
			}
	
		});
		
		//Inicializamos con las cerradas
		$('#filtroEstado option[value="Cerrada"]').prop('selected',true);
		aplicarFiltro();
		
	});
	</script>
	<?php
}
else {
	?><p>No hay ninguna Orden de Preparación disponible.</p><?php
}
?>