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

$filtro=1; //Sin orden de picking

if($_SESSION['accion']=='etiquetado') $metodo='LISTADOETIQUETADO';
else if($_SESSION['accion']=='precintado') $metodo='LISTADOPRECINTADO';
else if($_SESSION['accion']=='desprecintado') $metodo='LISTADODESPRECINTADO';

$peticion='SGAPrecintados#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#'.$metodo.'#'.$_SESSION['almacen'].';'.$filtro;
$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

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

$comboClientes=array();
$comboProductos=array();
$comboFamilias=array();
$comboFechaCarga=array();
$comboHoraCarga=array();

foreach($resultado as $item) {

	if(!in_array($item['ClienteNombre'],$comboClientes) && $item['ClienteNombre']!='') $comboClientes[]=$item['ClienteNombre'];
	if(!in_array($item['Producto'],$comboProductos) && $item['Producto']!='') $comboProductos[]=$item['Producto'];
	if(!in_array($item['FamiliaPreparacionDescripcion'],$comboFamilias) && $item['FamiliaPreparacionDescripcion']!='') $comboFamilias[]=$item['FamiliaPreparacionDescripcion'];
	if(!in_array($item['FechaCarga'],$comboFechaCarga) && $item['FechaCarga']!='') $comboFechaCarga[]=$item['FechaCarga'];
	if(!in_array($item['HoraCarga'],$comboHoraCarga) && $item['HoraCarga']!='') $comboHoraCarga[]=$item['HoraCarga'];
	
}

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

	$agrupacion=array();

	foreach($resultado as $item) {
		if(!isset($agrupacion[$item['Producto']])) $agrupacion[$item['Producto']]=1;
		else $agrupacion[$item['Producto']]++;
	}
	
	?>
    <form id="formularioOrdenes" name="formularioOrdenes" method="post" action="">
	
    <div id="popupDescripcion" class="popup" style="display:none">
      <div class="popupContenidoSimple">
        	<p>Descripción para esta Orden:</p>
        	<p><textarea name="descripcion" id="descripcion" cols="20" rows="3" class="campo"></textarea></p>
            <p><input type="submit" name="botonGenerarPickingFinal" id="botonGenerarPickingFinal" value="Generar Orden de Picking" class="boton mostrarCargando" /></p>
            <p><input type="submit" name="botonCancelarPickingFinal" id="botonCancelarPickingFinal" value="Cancelar" class="boton reducido" /></p>
      </div>
    </div>
    
    <table class="tablaFormateada anchoMaximo">
	<tr>
		<th><input id="selectorTodos" name="selectorTodos" type="checkbox" value="" class="checkGrande"/></th>
    	<?php if(count($_SESSION['empresas'])>1) { ?><th>Emp.</th><?php } ?>
		<th>Nº Orden</th>
		<th>Fecha Orden</th>
        <th>Cliente</th>
        <th>Destino</th>
        <th>Familia</th>
        <th>Producto</th>
        <th>Nombre Producto</th>
        <?php if($_SESSION['accion']=='etiquetado') { ?><th>Idioma</th><?php } ?>
		<th>Cant.</th>
        <?php if($_SESSION['verEnCajas']=='S') { ?><th>Cajas</th><?php } ?>
		<th>Orden Preparación</th>
        <th>Fecha Carga</th>
        <th>Hora Carga</th>
	</tr>
	<?php
	$contador=0;
	foreach($resultado as $orden) {
		$contador++;
		?>
		<tr style="height:75px" class="lineaOrden" producto="<?php echo $orden['Producto']; ?>" id="<?php echo $contador; ?>" cliente="<?php echo $orden['ClienteNombre']; ?>" familia="<?php echo $orden['FamiliaPreparacionDescripcion']; ?>" fechaCarga="<?php echo $orden['FechaCarga']; ?>" horaCarga="<?php echo $orden['HoraCarga']; ?>">
			<td><input id="selector<?php echo $contador; ?>" name="selector<?php echo $contador; ?>" type="checkbox" value="<?php echo $orden['NumeroOrden']; ?>#<?php echo $orden['Empresa']; ?>" class="checkGrande checkIndividual" cuantos="<?php echo $agrupacion[$orden['Producto']]; ?>" producto="<?php echo $orden['Producto']; ?>" /></td>
			<?php if(count($_SESSION['empresas'])>1) { ?><td><?php echo $orden['Empresa']; ?></td><?php } ?>
            <td><?php echo $orden['NumeroOrden']; ?></td>
            <td><?php echo fechaNacional($orden['FechaCreacion']); ?></td>
            <td><?php echo $orden['ClienteNombre']; ?></td>
            <td><?php echo $orden['Destino']; ?></td>
            <td><?php echo $orden['FamiliaPreparacionDescripcion']; ?></td>
            <td><?php echo $orden['Producto']; ?></td>
            <td><?php echo $orden['NombreProducto']; ?></td>
            <?php if($_SESSION['accion']=='etiquetado') { ?><td><?php echo $orden['Idioma']; ?></td><?php } ?>
            <td align="right"><?php echo number_format($orden['Lanzado'],0,',','.'); ?></td>
            <?php if($_SESSION['verEnCajas']=='S') { ?><td align="right"><?php echo number_format($orden['Cajas'],2,',','.'); ?></td><?php } ?>
            <td><?php echo $orden['NumeroOrdenPreparacion']; ?></td>
            <td><?php echo fechaNacional($orden['FechaCarga']); ?></td>
            <td><?php echo $orden['HoraCarga']; ?></td>
		</tr>
	<?php } ?>
	</table>
    
<div class="barraFiltro">
    	
        <table cellpadding="5" style="margin:0 auto">
        	<tr>
            	<td><input type="submit" name="botonGenerarPicking" id="botonGenerarPicking" value="Generar Orden de Picking" class="boton"/></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; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
                <td>
                Familia:<br /> 
                <select name="filtroFamilia" id="filtroFamilia" class="campo selectorFiltro" style="width:200px">
                    <option value="">---</option>
                    <?php foreach($comboFamilias as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
                <td>
                Código:<br />
                <select name="filtroProducto" id="filtroProducto" class="campo selectorFiltro">
                    <option value="">---</option>
                    <?php foreach($comboProductos as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo $item; ?></option>
                    <?php } ?>
                </select>
                </td>
                <td>
                Fecha carga: <br />
                <select name="filtroFecha" id="filtroFecha" class="campo selectorFiltro">
                    <option value="">---</option>
                    <?php foreach($comboFechaCarga as $item) { ?>
                    <option value="<?php echo $item; ?>"><?php echo fechaNacional($item); ?></option>
                    <?php } ?>
                </select>
                </td>
                <td>
                Hora<br />
                <select name="filtroHora" id="filtroHora" class="campo selectorFiltro">
                    <option value="">---</option>
                    <?php foreach($comboHoraCarga 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 ningún <?php echo ucfirst($_SESSION['accion']); ?> seleccionado.");
			return false;
		}
		else return true;
	}
	
	function muestraSelectorTodos() {
		
		$('#selectorTodos').prop('checked',false);
		
		var todosMarcados=true;

		$(".lineaOrden").each(function(){
			if( $(this).is(":visible") ) {
				if( !$(this).children('td').children('input').is(":checked") ) todosMarcados=false;
			}
        });
		if(todosMarcados) $('#selectorTodos').prop('checked',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( $('#filtroCliente').val()=='' && $('#filtroProducto').val()=='' && $('#filtroFamilia').val()=='' && $('#filtroFecha').val()=='' && $('#filtroHora').val()=='' ) {
			$('#filtroApagado').show();
			$('#quitarFiltro').hide();
			$('#aplicarFiltro').hide();
			deshabilitaBoton($("#botonGenerarPicking"),false);
		}
		else  {
			$('#filtroApagado').hide();
			$('#quitarFiltro').show();
			$('#aplicarFiltro').hide();
			deshabilitaBoton($("#botonGenerarPicking"),true);
		}
		
		$('.lineaOrden').each(function() {
		
			var coincidenciaCliente=false;
			var coincidenciaProducto=false;
			var coincidenciaFamilia=false;
			var coincidenciaFecha=false;
			var coincidenciaHora=false;
		
			if( $('#filtroCliente').val()!='' && $(this).attr('cliente')==$('#filtroCliente').val() ) coincidenciaCliente=true;
			else if( $('#filtroCliente').val()=='' ) coincidenciaCliente=true;
		
			if( $('#filtroProducto').val()!='' && $(this).attr('producto')==$('#filtroProducto').val() ) coincidenciaProducto=true;
			else if( $('#filtroProducto').val()=='' ) coincidenciaProducto=true;
			
			if( $('#filtroFamilia').val()!='' && $(this).attr('familia')==$('#filtroFamilia').val() ) coincidenciaFamilia=true;
			else if( $('#filtroFamilia').val()=='' ) coincidenciaFamilia=true;
			
			if( $('#filtroFecha').val()!='' && $(this).attr('fechaCarga')==$('#filtroFecha').val() ) coincidenciaFecha=true;
			else if( $('#filtroFecha').val()=='' ) coincidenciaFecha=true;
			
			if( $('#filtroHora').val()!='' && $(this).attr('horaCarga')==$('#filtroHora').val() ) coincidenciaHora=true;
			else if( $('#filtroHora').val()=='' ) coincidenciaHora=true;
			
			if( coincidenciaCliente && coincidenciaProducto && coincidenciaFamilia && coincidenciaFecha && coincidenciaHora ) $(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() {
	
		$('#botonGenerarPicking').on("click",function(e) {
			e.preventDefault();
			if(compruebaCheks()) $('#popupDescripcion').show();
		});
		
		$('#botonCancelarPickingFinal').on("click",function(e) {
			e.preventDefault();
			$('#descripcion').val('');
			$('#popupDescripcion').hide();
		});
		
		$('#descripcion').on("click",function(e) {
			$('#teclado').show();
			$('#valor').val( $('#descripcion').val() );
			$('#valorOculto').val( $('#descripcion').val() );
			$('#enter').attr('campoValor','descripcion');	
		});
	
		$('.selectorFiltro').on("change",function() {
			aplicarFiltro();
		});
	
		$('#selectorTodos').on("click",function() {
			var valor;
			if( $('#selectorTodos').is(":checked") ) valor=true; else valor=false;
			$(".lineaOrden").each(function(){
                if( $(this).is(":visible") ) {
					$(this).children('td').children('input').prop('checked',valor);
				}
            });
			muestraSelectorTodos();			
		});
		
		$('#quitarFiltro').on("click",function() {
		
			$('#filtroCliente option:selected').removeProp('selected');
			$('#filtroProducto option:selected').removeProp('selected');
			$('#filtroFamilia option:selected').removeProp('selected');
			$('#filtroFecha option:selected').removeProp('selected');
			$('#filtroHora option:selected').removeProp('selected');
			
			$('#filtroCliente option[value=""]').prop('selected',true);
			$('#filtroProducto option[value=""]').prop('selected',true);
			$('#filtroFamilia option[value=""]').prop('selected',true);
			$('#filtroFecha option[value=""]').prop('selected',true);
			$('#filtroHora option[value=""]').prop('selected',true);
			
			$('#filtroApagado').show();
			$('#quitarFiltro').hide();
			$('#aplicarFiltro').hide();

			$(".lineaOrden").show();
			deshabilitaBoton($("#botonGenerarPicking"),false);
			muestraSelectorTodos();
			
			repintarTabla();
			
		});
		
		$('.checkIndividual').on("click",function() {
			
			var id=$(this).attr('id');
			var cuantos=$(this).attr('cuantos');
			var producto=$(this).attr('producto');

			if( cuantos>1 && $('#filtroProducto').val()=='' ) {
			
				confirm( "Existen más Ordenes de <?php echo ucfirst($_SESSION['accion']); ?> con el mismo producto.\n\n¿Deseas aplicar el filtro para visualizarlas?" ).done( function(){
					
					$('#filtroProducto option[value="'+producto+'"]').attr('selected',true);
					aplicarFiltro(id);
					
				});

			}
			muestraSelectorTodos();
	
		});
		
	});
	</script>
	<?php
}
else {
	?><p>No hay ninguna Orden de <?php echo ucfirst($_SESSION['accion']); ?> pendiente de asignar Picking.</p><?php
}
?>