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

if($_GET['codigo']) $codigoBarras=urldecode($_GET['codigo']); else $codigoBarras=urldecode($codigoBarras=$_POST['codigo']);
if($_GET['clientePropietario']) $clientePropietario=$_GET['clientePropietario']; else $clientePropietario=$_POST['clientePropietario'];

//4-7-2023 Añadimos la posibilidad de que un EAN esté en varios productos. TICKET 23052748
if($_GET['procedencia']) $procedencia=$_GET['procedencia']; else $procedencia=$_POST['procedencia'];


$lecturaEspecial = ( isset( $codigosEspeciales[$clientePropietario] ) );

if($_GET['traza']=='si') {
	//echo '<p>Lectura especial: '.$lecturaEspecial.'</p>';
}

if($lecturaEspecial) {

	if($codigosEspeciales[$clientePropietario]['separador'] || $codigosEspeciales[$clientePropietario]['separadoralternativo']) {

		$valores=explode($codigosEspeciales[$clientePropietario]['separador'],$codigoBarras);
		
		//Si no ha encontrado trozos con ese separador, prueba con el alternativo
		if(count($valores)<=1) $valores=explode($codigosEspeciales[$clientePropietario]['separadoralternativo'],$codigoBarras);
		
		$contador=0;
			
		foreach( $codigosEspeciales[$clientePropietario]['datos'] as $dato) {
			if($dato=='codigo') break;
			else $contador++;
		}
		
		echo $valores[$contador]; //Esto es el código de producto según la definición del array codigosEspeciales
	}
	else {
		
		//23-12-2021 Nuevo caso con datos de longitud fija
		$posicion=0;
		$longitud=0;
		
		foreach( $codigosEspeciales[$clientePropietario]['datos'] as $clave=>$valor) {
			if($valor=='codigo') {
				$longitud=$codigosEspeciales[$clientePropietario]['longitudes'][$clave];
				break;
			}
			else $posicion=+$codigosEspeciales[$clientePropietario]['longitudes'][$clave];
		}
		
		if($_GET['traza']=='si') {
			//echo '<p>posicion: '.$posicion.'</p>';
			//echo '<p>longitud: '.$longitud.'</p>';
		}
		
		$valorCodigo=substr($codigoBarras,$posicion,$longitud);
		
		echo $valorCodigo;
		
	}
}
else {
	
	// NOTA: Aunque "DATOSCODIGOBARRAS" depende del método SGARecepcionPedido no obtiene solo productos de pedidos pendientes de recepcion
	// sino que da todos los productos relacionados con ese código en esa empresa. Por eso usamos esto en varias pantallas y no solo en "Entradas"
	$peticion='SGARecepcionPedido#'.$_SESSION['empresa'].'#'.$_SESSION['usuario']['Usuario'].'#DATOSCODIGOBARRAS#'.$_SESSION['empresa'].';'.$codigoBarras.'#'.$clientePropietario;
	$proveedores=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	$cuantosResultados=count($resultado);
	
	if($_GET['traza']=='si'){
		echo "<p>".$peticion."</p>";
		print_r($resultado);
		echo '<p>Cuantos resultados: '.$cuantosResultados.'</p>';
	}
	
	$cadenaDevuelta='';
	
	//4-7-2023 Añadimos la posibilidad de que un EAN esté en varios productos, lo acotamos solo a la pantalla de producto por si acaso. TICKET 23052748
	if( $cuantosResultados>1 && $procedencia=='info-producto-S' ) {
	
		$cadenaDevuelta='@@MULTIPLE@@';
		
		for($i=0;$i<$cuantosResultados;$i++) {
		
			$producto=$resultado[$i];
			
			$cadenaDevuelta .= $producto['Codigo']."#".$producto['Tipo'].'#'.$producto['EmbalajePrimarioCaja'].'#'.$producto['Descripcion'].'#'.$producto['TieneGestionFCaducidad'].'#'.$producto['TieneGestionLotes'].'#'.$producto['TieneGestionNSerie'].'#'.$producto['PosicionPicking'].'@@MULTIPLE@@';
		
		}
	}
	else {
	
		$producto=$resultado[0];
		
		$cadenaDevuelta = $producto['Codigo']."#".$producto['Tipo'].'#'.$producto['EmbalajePrimarioCaja'].'#'.$producto['Descripcion'].'#'.$producto['TieneGestionFCaducidad'].'#'.$producto['TieneGestionLotes'].'#'.$producto['TieneGestionNSerie'].'#'.$producto['PosicionPicking'];
	
	}
	
	echo $cadenaDevuelta;

}
?>