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

//Aqui a diferencia de Igan, que tienen que incidentar, se permite informar menos cantidad para hacer la distribución por cajas de expedicion. No se utiliza la opcion de incidentar

//10-1-2019 comprobacion adicional para asegurarnos que hay caja seleccionada o secuencia de cajas
if( $_SESSION['preparacionCajaActual'] || isset($_SESSION['preparacionSecuenciaCajasActuales']) ) {


	//Si hay secuencia de cajas, cogemos la primera y la última
	if( isset($_SESSION['preparacionSecuenciaCajasActuales']) ) {
	
		$primeraCaja=$_SESSION['preparacionSecuenciaCajasActuales'][0];
		$ultimaCaja=$_SESSION['preparacionSecuenciaCajasActuales'][count($_SESSION['preparacionSecuenciaCajasActuales'])-1];
		
		$cajas=$primeraCaja.';'.$ultimaCaja;
	}
	else $cajas=$_SESSION['preparacionCajaActual']; //En caso contrario, pasamos solo la caja actual seleccionada



	/////////////////////////////////////////////////////////////////////////////
	//8-7-2019 CONTROL PARA EVITAR QUE SE DUPLIQUEN LAS PREPARACIONES Y DEN ERROR
	$date1 = new DateTime($_SESSION['ultimaPreparacionEnviadaOk']['cuando']);
	$date2 = new DateTime('NOW');
	$diff = $date1->diff($date2);

	$minutos=$diff->i;
	$segundos=$diff->s;
	$segundosTranscurridos=$minutos*60+$segundos;
	/////////////////////////////////////////////////////////////////////////////


	

	$peticion='SGAPreparar#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#PREPARARUBICACION#'.$_SESSION['almacen'].';'.$_SESSION['orden']['Empresa'].';'.$_SESSION['orden']['OrdenPreparacion'].';'.$_SESSION['parametros'].';'.$_POST['cantidad'].';'.$_POST['contenedor'].';'.$_POST['lote'].';'.$_POST['ubicacion'].';';
		
	if($_POST['idGama']) $peticion.=$_POST['idGama'];
		
	$peticion.=';'.$cajas; //Ver arriba, porque puede pasarse una sola caja o dos cajas (secuencia desde-hasta)
	
	if( isset($_SESSION['preparacionSecuenciaCajasActuales']) && $_SESSION['gestionPaletizado']=='N' && $_SESSION['parametrosSGA']['GestionPackingList']=='S' && $_SESSION['orden']['RequierePackingList']=='S') {
	
		//Pasamos como ultmo parámetro el palet, ya que en caso de secuencias, la asociación caja-OP se hace automatica, entonces la asociacion caja-palet tambien debe hacerse
		//y no queremos hacer otra llamada para asociar cada caja a palet, que sería muy lenta y nos encontraríamos con el mismo problema de velocidad
		
		$peticion.=';'.$_SESSION['preparacionPaletActual'];
	}
	
	
	//5-7-2019 Comprobación de si la última preparación fue igual y cuanto tiempo ha pasado
	if($peticion == $_SESSION['ultimaPreparacionEnviadaOk']['peticion']) {
		if($_GET['traza']=='si') echo "<p>Petición repetida</p>";
	}
	else {
		if($_GET['traza']=='si') echo "<p>Es una petición nueva, no coincide con la anterior</p>";
	}
	
	
	/////////////////////////////////////////////////////////////////////////////
	
	
	
	if($peticion!=$_SESSION['ultimaPreparacionEnviadaOk']['peticion'] || ( $peticion==$_SESSION['ultimaPreparacionEnviadaOk']['peticion'] && $segundosTranscurridos>$segundosSeguridadDuplicadosPreparacion) ) {
	/////////////////////////////////////////////////////////////////////////////
	
	
		$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]=='0') $_SESSION['ultimaPreparacionEnviadaOk']=array('peticion'=>$peticion,'cuando'=>date('Ymd h:i:s'));
	
	/////////////////////////////////////////////////////////////////////////////
	}
	else {
	
		if($_GET['traza']=='si') {
			echo "<p>Es una petición duplicada.</p>";
		}
		
		$resultado[0]['Error']='0#Preparación ok anterior pero duplicada';
	}
	/////////////////////////////////////////////////////////////////////////////
		
	
}
else $resultado[0]['Error']='1#Error de interfaz web: no hay caja seleccionada';




print_r($resultado[0]['Error']);
?>