<?php
/**   ------------------------------------------------------------
		REALIZA UN AJUSTE DE INVENTARIO EN NAVISION
	  ------------------------------------------------------------
*/ 
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('memory_limit', '512M');
date_default_timezone_set('Europe/Madrid');
$qty=null;
$code=null;
$variant="";
$store=null;
function convertToFloat($string) {
    // Elimina los espacios al principio y al final de la cadena
    $trimmedString = trim($string);

    // Verifica si la cadena es un número de punto flotante válido
    if (filter_var($trimmedString, FILTER_VALIDATE_FLOAT) !== false) {
        // Convierte la cadena a float
        return floatval($trimmedString);
    } else {
        // Maneja el caso donde la cadena no es un número de punto flotante válido
        echo json_encode(["result"=>-1 , "text"=>"La cantidad no tiene el formato correcto"]);
        die;
    }
}


if(isset($_REQUEST["store"])) {
	$store=$_REQUEST["store"]; 
	if($store==""){
		echo json_encode(["result"=>-1 , "text"=>"Debe proporcionar un almacén"]);
		die;
	}	
}else{
	echo json_encode(["result"=>-1 , "text"=>"Debe proporcionar un almacén"]);
	 die;
}

if(isset($_REQUEST["code"])) {
	$code=$_REQUEST["code"]; 
	if($code==""){
		echo json_encode(["result"=>-1 , "text"=>"Debe proporcionar un código de producto"]);
		die;
	}	
}else{
	echo json_encode(["result"=>-1 , "text"=>"Debe proporcionar un código de producto"]);
	 die;
}

if(isset($_REQUEST["variant"])) {
	$variant=strtoupper($_REQUEST["variant"]);
}

if(isset($_REQUEST["qty"])) {
	$qty=$_REQUEST["qty"]; 
	$qty=convertToFloat($qty);
}else{
	echo json_encode(["result"=>-1 , "text"=>"Debe proporcionar una cantidad para el ajuste de inventario"]);
	 die;
}

function mssql_escape($str)
{
    if(get_magic_quotes_gpc())
    {
        $str= stripslashes($str);
    }
    return str_replace("'", "''", $str);
}

$serverName = "localhost";
$connectionInfo = array( "Database"=>"ICF", "UID"=>"VAIO", "PWD"=>"VAIO");

$connNavision=false;
$retries=0;
while(!$connNavision && $retries<3){
	$connNavision = sqlsrv_connect( $serverName, $connectionInfo);
	$retries++;
}
if(!$connNavision ){
	 echo json_encode(["result"=>-11 , "text"=>"No se pudo conectar con Navision"]);
	 die;
}

$sql = "INSERT INTO ".'[Ind. Campollano Ferretería S.L$ICF_StockArticulos]'."(CodProducto, CodVariante, CodAlmacen, Stock, Procesado, Error, Fecha, MesajeError) 
	VALUES (
	'".$code."',
	'".$variant."',
	'".$store."',
	".$qty.",
	0,
	0,
	'".date("d-m-Y")."',
	'');";

$stmt = sqlsrv_query( $connNavision, $sql );
$sql = "INSERT INTO ".'[Ind. Campollano Ferretería S.L$Job Queue Entry]'." ([ID],[User ID], [Last Modified Date_Time], [Expiration Date_Time], [Earliest Start Date_Time], [Object Type to Run],[Object ID to Run],[Response Required],[Maximum No. of Attempts to Run],[No. of Attempts to Run],[Status],[Priority],[Record ID to Process],[Parameter String],[Recurring Job],[No. of Minutes between Runs],[Run on Mondays],[Run on Tuesdays],[Run on Wednesdays],[Run on Thursdays],[Run on Fridays],[Run on Saturdays],[Run on Sundays],[Starting Time],[Ending Time])
		   VALUES(NEWID(),'jag',GETDATE(),'1753-01-01 00:00:00.000',DATEADD(HOUR, -2, GETDATE()),5,50005,0,3,3,0,0,CONVERT(varbinary(max), ''),'',0,0,0,0,0,0,0,1,1,'1754-01-01 21:00:00.000','1753-01-01 00:00:00.000')";
		
	$stmt = sqlsrv_query( $connNavision, $sql );
	if( $stmt === false) {
		echo json_encode(["result"=>-8,"text"=>"Error al solicitar ejecucion de CodeUnit"]);
		die( print_r( sqlsrv_errors(), true) );
	}

if(sqlsrv_errors(SQLSRV_ERR_ERRORS)===NULL) echo json_encode(["result"=>1]); else echo json_encode(["result"=>-12, "text"=>"Ocurrio un error en la consulta SQL de Navision"]);

?>
