<?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');
include($rutaPhp.$rutaHtml.'/librerias/teclado-multilinea.php');
include($rutaPhp.$rutaHtml.'/librerias/calculadora.php');
include($rutaPhp.$rutaHtml.'/librerias/calendario.php');

if($_GET['bascula']) $basculaUsada=$_GET['bascula'];

if($_SESSION['parametrosSGA']['ControlPesajeRecepcion']=='S') {


	//print_r(arreglaArrayPXMobileProxiumResult($_SESSION['parametrosSGA']['Basculas']));
	
	?>
	
	<h2>Descarga: pesaje de palet</h2>
	
<p>Palet:<br />
	<img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoContenedor" /><input name="contenedor" type="text" class="campo" id="contenedor" value="<?php echo $contenedor; ?>" style="width:460px"/>
	<img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="boton-x" id="borrarContenedor"/>
	</p>
	
	<p>Báscula:<br />
	<select id="bascula" name="bascula" class="campo">
		<option value="">---</option>
		<?php foreach(arreglaArrayPXMobileProxiumResult($_SESSION['parametrosSGA']['Basculas']) as $bascula) { ?>
		<option value="<?php echo $bascula['BasculaCodigo']; ?>" <?php if($basculaUsada==$bascula['BasculaCodigo']) { ?>selected<?php } ?>><?php echo $bascula['BasculaDescripcion']; ?></option>
		<?php } ?>
	</select>
	</p>
		
	<p><input type="button" id="botonAceptarPesaje" name="botonAceptarPesaje" class="campo boton" value="ACEPTAR"/></p>
		
	<p><input type="button" id="botonCancelarPesaje" name="botonCancelarPesaje" class="campo boton reducido" value="Cancelar"/></p>
	
	
	<script>
	
	function validaPesaje() {
	
		$('.campo').removeClass('campoError');
	
		if( !$('#contenedor').val() ) {
			alert('Es obligatorio informar el palet.',$('#contenedor'),'error');
			$('#contenedor').addClass('campoError');
			return false;
		}
		else if( !$('#bascula').val() ) {
			alert('Por favor, selecciona la báscula en la que vas a pesar el palet.',$('#bascula'),'error');
			$('#bascula').addClass('campoError');
			return false;
		}
		else return true;
	
	}
	
	/*
	var deferredPesaje;
	
	function pesaje(contenedor,bascula,iteracion) { 
	
		deferredPesaje = new $.Deferred();
		var codigoRespuesta;
	
		$.post('contenidos/entradas-descarga-palets-pesaje-pesar.php', { 'palet' : $('#contenedor').val() , 'bascula' : $('#bascula').val() })
		.done(function(data){
		
			console.log('Datos '+iteracion+'ª iteración: '+data);
			
			var valores=data.split('#');
			codigoRespuesta=valores[0];
			
			if(codigoRespuesta=='1' || codigoRespuesta=='0') {
			
				deferredPesaje.resolve( data );
			
			}
			else if(codigoRespuesta=='2' || codigoRespuesta=='') {
			
				pesaje(contenedor,bascula,2)
				.done(function(data){
				
					var valores=data.split('#');
					codigoRespuesta=valores[0];
					
					if(codigoRespuesta=='1' || codigoRespuesta=='0') {
					
						deferredPesaje.resolve( data );
					
					}
					else if(codigoRespuesta=='2' || codigoRespuesta=='') {
					
						pesaje(contenedor,bascula,3)
						.done(function(data){
						
							var valores=data.split('#');
							codigoRespuesta=valores[0];
							
							if(codigoRespuesta=='1' || codigoRespuesta=='0') {
							
								deferredPesaje.resolve( data );
							
							}
							else {
							
								deferredPesaje.resolve( '1#Error desconocido.' );
							
							}
									
						});
					
					}
							
				});
			
			}
			
		
		});
		
		return deferredPesaje.promise();
	}
	*/
	
	var deferredPesaje=Array();
	
	
	function pesaje(contenedor,bascula,iteracion) { 
	
		deferredPesaje[iteracion] = new $.Deferred();
		
		var codigoRespuesta;
	
		$.post('contenidos/entradas-descarga-palets-pesaje-pesar.php', { 'palet' : contenedor , 'bascula' : bascula })
		.done(function(data){
		
			console.log('Iteración: '+iteracion);
			console.log('Respuesta: '+data);
			
			var valores=data.split('#');
			codigoRespuesta=valores[0];
			
			if(codigoRespuesta=='1' || codigoRespuesta=='0') {
			
				console.log('Devolvemos: '+data);
			
				deferredPesaje[iteracion].resolve( data );
			
			}
			else if ( codigoRespuesta=='2' || codigoRespuesta=='' ) {
			
				
				if( iteracion < 3 ) {
				
					console.log('Volvemos a iterar');
					
					pesaje(contenedor,bascula,iteracion+1)
					.done(function(data){
						
						console.log('Devolvemos: '+data);
		
						deferredPesaje[iteracion].resolve( data );
		
					});
				
				}
				else {
				
					console.log('Se termina la iteración');
					
					data='1#Error desconocido.<br>No se ha podido obtener el peso o la báscula no ha respondido.';
						
					console.log('Devolvemos: '+data);
								
					deferredPesaje[iteracion].resolve( data );
				
				}
			
			}
			
		});
		
		return deferredPesaje[iteracion].promise();
		
	}
	
	$(document).ready(function() {
	
		// ESTO NO TIENE NINGÚN EFECTO, YA QUE LA LLAMADA POR AJAX A OTRO HILO YA SE HA REALIZADO Y NO SE PUEDE PARAR
		//$('#popupCargandoCancelar').on('click',function(){
			//deferredPesaje.reject();
		//});
	
		$('#botonAceptarPesaje').on('click',function(){
		
			if( validaPesaje() ) {
			
				var contenedor=$('#contenedor').val();
				var bascula=$('#bascula').val();
				
				console.log('-----------------------');
				console.log('Comienza pesaje');
		
				mostrarCargando(true,true,'Esperando a la báscula...'); //Nuevo metodo mostrarCargando con boton de cancelar
		
				pesaje(contenedor,bascula,1) 
				.done(function(data){
				
					console.log('Datos finales: '+data);
					
					var valores=data.split('#');
					codigoRespuesta=valores[0];
				
					if(codigoRespuesta=='1') {
					
						mostrarCargando(false,false);
						
						alert('ERROR: '+valores[1],null,'error');
					
					}
					else if(codigoRespuesta=='0') {
					
						mostrarCargando(false,false);
						
						alert(valores[1],null,'ok')
						.done(function(){
						
							//$('#contenedor').val('');
							//$('#contenedor').focus();
							
							//Redirecciono en vez de borrar, para que se reinicie todo el javascript porque parece que algunos deferred se quedan por ahi pululando.
							
							$('#popupCargando').show();
							window.location='entradas-descarga-palets-pesaje.php?bascula='+bascula;
						
						});
						
					}
				
				});
					
				
				
			}
			
		});
		
		$('#botonCancelarPesaje').on('click',function(){
		
			$('#popupCargando').show();
			window.location='entradas-descarga-palets-pesaje.php';
			
		});
		
		$('#tecladoContenedor').on("click",function(e) {	
			$('#teclado').show();
			$('#valor').val( $('#contenedor').val() );
			$('#valorOculto').val( $('#contenedor').val() );
			$('#enter').attr('campoValor','contenedor' );
			$('#enter').attr('forzarEnter','no');
		});
		
		$('#borrarContenedor').on("click",function(e) {	
			$('#contenedor').val('');
			$('#contenedor').focus();
		});
	
		
		$('#contenedor').focus();
	
	});
	
	</script>
	
	<?php
	
}
else include($rutaPhp.$rutaHtml.'/maqueta/error.php');

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