<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Madrid');

// Parámetros
$discordchannel	= "883046233017552956";
$serverName 	= "localhost";
$connectionInfo = array( "Database"=>"ICF", "UID"=>"VAIO", "PWD"=>"VAIO");

// Conexión con Navision
$connNavision=false;
$retries=0;
while(!$connNavision && $retries<3){
	$connNavision = sqlsrv_connect( $serverName, $connectionInfo);
	$retries++;
}

if( $connNavision ) {
	 //echo "Conexion establecida con Navision.\r\n";
}else{
	  file_get_contents("https://icfbot.ferreteriacampollano.com/message.php?channel=".$discordchannel."&msg=".urlencode(":sos:"."SCRIPT ".basename(__FILE__, '.php').": No se pudo establecer la conexion con Navision"));
	  echo json_encode(["result"=>-11 , "text"=>"No se pudo conectar con Navision"]);
	  die;
}

$result		= [];

// Obtención de los productos que han cambiado
$sql = "SELECT 
		accion,
		codigo_antiguo,
		codigo_nuevo
		FROM [navisionChanges]
		WHERE entidad='EAN13' 
		ORDER BY fecha asc";

$stmt_changes = sqlsrv_query( $connNavision, $sql);
if(sqlsrv_errors(SQLSRV_ERR_ERRORS)!==NULL) {
	echo json_encode(["result"=>-12, "text"=>"1 Ocurrio un error en la consulta SQL de Navision"]);
	file_get_contents("https://icfbot.ferreteriacampollano.com/message.php?channel=".$discordchannel."&msg=".urlencode(":sos:"."SCRIPT ".basename(__FILE__, '.php').": No se pudo obtener la lista de EAN13 que han cambiado"));
	die;
}
if( $stmt_changes !== false) {
	$j =0;
	while($row = sqlsrv_fetch_array( $stmt_changes, SQLSRV_FETCH_ASSOC)){		
		$cambio_object=[];
		foreach($row as $key=>$object){
			$cambio_object[$key]=!is_object($object)?utf8_encode($object):$object;
		}		
		$cambio_object['accion'] = $cambio_object['accion'];
		$cambio_object['codigo_antiguo'] =trim($cambio_object['codigo_antiguo']);
		$cambio_object['codigo_nuevo'] =trim($cambio_object['codigo_nuevo']);
		$result[$j]=$cambio_object;
		
		$adatos = explode('~',$cambio_object['codigo_nuevo']);
		if ($cambio_object['accion']=='D')
			$adatos = explode('~',$cambio_object['codigo_antiguo']);
		
		if (count($adatos)>=4){
			// Obtención del ean13
			$sql = "SELECT 
					[idaxiom] 
					FROM [Item Cross Reference] 
					WHERE 					 
					[Cross-Reference No.]='".$adatos[0]."' and
					[Item No.]='".$adatos[1]."' and
					[Cross-Reference Type]='".$adatos[2]."' and
					[Cross-Reference Type No.]='".$adatos[3]."'";
			if (count($adatos)==5)
				$sql .=	" and [Variant Code]='".$adatos[4]."'";
			$stmt_ean13 = sqlsrv_query( $connNavision, $sql);
			if(sqlsrv_errors(SQLSRV_ERR_ERRORS)!==NULL) {
				echo json_encode(["result"=>-12, "text"=>"1 Ocurrio un error en la consulta SQL de Navision"]);
				file_get_contents("https://icfbot.ferreteriacampollano.com/message.php?channel=".$discordchannel."&msg=".urlencode(":sos:"."SCRIPT ".basename(__FILE__, '.php').": No se pudieron obtener los EAN13 que han cambiado"));
				die;
			}
			if( $stmt_ean13 !== false) {
				while($row = sqlsrv_fetch_array( $stmt_ean13, SQLSRV_FETCH_ASSOC)){			
					$ean13_object=[];
					foreach($row as $key=>$object){
						$ean13_object[$key]=!is_object($object)?utf8_encode($object):$object;
					}			
					$result[$j]['ean13']=$ean13_object;
				}
			}
			$j++;
		}
	}
}

header('Content-Type: application/json');
echo json_encode($result, JSON_PRETTY_PRINT);
?>
