<?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']['ActualizarPesoProducto']=='S') {


	//print_r(arreglaArrayPXMobileProxiumResult($_SESSION['parametrosSGA']['Basculas']));
	
	?>
	
	<h2>Pesaje de producto</h2>
	
    <p>EAN/DUN:<br />
	<img src="<?php echo DIR_IMAGENES; ?>/teclado.png" alt="Mostrar teclado" class="iconoTeclado" id="tecladoProductoEAN" /><input name="eanDun" type="text" class="campo" id="eanDun" value="" style="width:460px"/>
	<img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="iconoBorrar boton-x" id="borrarProductoEAN"/>
	</p>
    
    <table id="fichaProducto" class="tablaFormateada" style="display:none">
    <tr>
    	<th>Código</th><th>Descripción</th>
    </tr>
    <tr>
    	<td id="codigoProducto"></td>
        <td id="descripcionProducto"></td>
    </tr>
    </table>
    
	<p id="bloqueUnidadesPorCaja" style="display:none">Unidades por caja:<br />
	<input name="unidadesPorCaja" id="unidadesPorCaja" type="text" class="campo cantidad" value="" style="width:220px"/>
	<img src="<?php echo DIR_IMAGENES; ?>/x.png" alt="Borrar" class="iconoBorrar boton-x" id="borrarUnidadesPorCaja"/>
	</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="Obtener y grabar peso"/></p>
		
	<p><input type="button" id="botonCancelarPesaje" name="botonCancelarPesaje" class="campo boton reducido" value="Cancelar"/></p>
		
	<script>
	
	function validaPesaje() {
	
		$('.campo').removeClass('campoError');
	
		if( !$('#eanDun').val() ) {
			alert('Es obligatorio leer el EAN o DUN del producto.',$('#eanDun'),'error');
			$('#eanDun').addClass('campoError');
			return false;
		}
		else if( !$('#bascula').val() ) {
			alert('Por favor, selecciona la báscula en la que vas a pesar el producto.',$('#bascula'),'error');
			$('#bascula').addClass('campoError');
			return false;
		}
		else return true;
	
	}
	

	
	var deferredPesaje=Array();
	
	
	function pesaje(eanDun,bascula,unidadesPorCaja,iteracion) { 
	
		deferredPesaje[iteracion] = new $.Deferred();
		
		var codigoRespuesta;
	
		$.post('contenidos/pesaje-producto-pesar.php', { 'ean' : eanDun , 'bascula' : bascula , 'unidadesPorCaja' : unidadesPorCaja })
		.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(eanDun,bascula,unidadesPorCaja,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() {
	
		$('#eanDun').on('change',function(){
		
			$('#eanDun').removeClass('error');
			
			//Trozo de código copiado de info-producto-S.php
			
			if( $('#eanDun').val()!='' ) {
			
				$('#popupCargando').show();
						
				$.post( "<?php echo $rutaHtml; ?>/contenidos/leer-codigo-barras.php?traza=<?php echo $_GET['traza']; ?>", { 'codigo' : $('#eanDun').val() } )
				.done(function(data) {
				
					$('#popupCargando').hide();
						
					var datos=data.split('#');
								
					if( datos[0] ) {
					
						console.log(datos);
						
						$('#codigoProducto').html(datos[0]);
						$('#descripcionProducto').html(datos[3]);
						
						$('#fichaProducto').show();
						
						if(parseInt(datos[2])>1) $('#unidadesPorCaja').val(datos[2]);
						else $('#unidadesPorCaja').val('');
						
						$('#bloqueUnidadesPorCaja').show();
						
					}
					else {
					
						$('#eanDun').addClass('error');
						alert("ERROR: No se ha encontrado ningún producto relacionado con ese código.",$('#eanDun'),'error');
						
					}
						
				});
					
			}
			else {
			
				$('#fichaProducto').hide();
				$('#bloqueUnidadesPorCaja').hide();
				
			}
			
		});
	
		
	
		$('#botonAceptarPesaje').on('click',function(){
		
			if( validaPesaje() ) {
			
				var eanDun=$('#eanDun').val();
				var bascula=$('#bascula').val();
				var unidadesPorCaja=$('#unidadesPorCaja').val();
				
				console.log('-----------------------');
				console.log('Comienza pesaje');
		
				mostrarCargando(true,true,'Esperando a la báscula...'); //Nuevo metodo mostrarCargando con boton de cancelar
		
				pesaje(eanDun,bascula,unidadesPorCaja,1) 
				.done(function(data){
				
					console.log('Datos finales: '+data);
					
					var valores=data.split('#');
					codigoRespuesta=valores[0];
					contenidoRespuesta=valores[1];
				
					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(){
						
							mostrarCargando(true,true);
							window.location=window.location;
						
						});
					}
				
				});
					
				
				
			}
			
		});
		
		$('#botonCancelarPesaje').on('click',function(){
		
			$('#popupCargando').show();
			window.location='pesaje-producto.php';
			
		});
		
		$('.iconoTeclado').on('click',function(e) {	
		
			var campo=$(this).siblings('input');
		
			$('#teclado').show();
			$('#valor').val( campo.val() );
			$('#valorOculto').val( campo.val() );
			$('#enter').attr('campoValor',campo.attr('id') );
			$('#enter').attr('forzarEnter','no');
			
		});
		
		$('.iconoBorrar').on('click',function(e) {	
		
			var campo=$(this).siblings('input');
		
			campo.val('');
			campo.focus();
			
		});
		
		$('#borrarProductoEAN').on('click',function(e) {	
		
			$('#fichaProducto').hide();
			$('#bloqueUnidadesPorCaja').hide();
			
		});
		
		$('.cantidad').on("click",function(e) {
		
			$('#calculadora').show();
			$('#valorCalculadora').val( $(this).val() );
			$('#enterCalculadora').attr('campoValor',$(this).attr('id'));
		
		});
		
		
	
		
		$('#eanDun').focus();
	
	});
	
	</script>
	
	<?php
	
}
else include($rutaPhp.$rutaHtml.'/maqueta/error.php');

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