<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('memory_limit', '512M');
date_default_timezone_set('Europe/Madrid');
include("../conexion.php");


function getIDProduct($ref, $conn) {
	$stmt = $conn->prepare("SELECT id_product FROM fcproduct WHERE reference='$ref' AND id_supplier!=5 AND active=1");
	$stmt->execute();
	$result = $stmt->get_result();
	if($row_m = $result->fetch_assoc()) return $row_m['id_product'];
		else return null;
}

function getStock($reference, $conn)
{
	$sql = $stmt = $conn->prepare("SELECT st.`quantity`
			FROM `fcstock_available` st
			LEFT JOIN `fcproduct` p ON (p.`id_product`=st.`id_product`)
			WHERE p.`reference`='$reference'");
	$stmt->execute();
	$result = $stmt->get_result();
	if($row_m = $result->fetch_assoc()) return $row_m['quantity'];
		else return null;
	
}

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


$connPrestashop = new mysqli($bdd_servidor, $bdd_usuario, $bdd_contrasena, $bdd_base_datos);
	if( $connPrestashop ) {
			 echo "Conexion establecida con Prestashop <br>";
	}else{
			 echo "Conexion no se pudo establecer con Prestashop.<br>";
			 die( print_r( sqlsrv_errors(), true));
}
$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 "Conexion establecida con Navision.\r\n";
	}else{
		 //echo "Conexion no se pudo establecer con Navision.\r\n";
		 die( print_r( sqlsrv_errors(), true));
	}


$data = file_get_contents("https://www.ferreteriacampollano.com/pruebas_feeds/descatalogados_emuca_octubre_21.csv");

$rows = explode("\n",$data);
$s = array();
foreach($rows as $row) {
    $s[] = str_getcsv($row);
}

unset($s[0]);

foreach($s as $producto){
	
		$product_string=$producto[0];
		$producto=explode(";",$product_string);
		$referencia="22".$producto[0];
		$id_producto=getIDProduct($referencia,$connPrestashop);
		
		
		if($id_producto!=null)
		{
			
			
			$sku=$referencia;
			echo ">> Revisamos el producto ".$sku."<br>";
			
				if(getStock($sku,$connPrestashop)<=0)
				{
				
				echo "No queda stock. Lo desactivamos de Prestashop<br>";
				//Desactivamos el producto en Prestashop
				$sql = "UPDATE `fcproduct_shop` SET active=0 WHERE id_product=".$id_producto.";";
				$stmtPrestashop = $connPrestashop->prepare($sql);
				$stmtPrestashop->execute();		

										
				$sql = "UPDATE `fcproduct` SET active=0 WHERE id_product=".$id_producto.";";
				$stmtPrestashop = $connPrestashop->prepare($sql);
				$stmtPrestashop->execute();	
			
					
				//Comprobamos que el producto se encuentre en Navision
				$sql = 'SELECT * FROM dbo.Item WHERE [No.]=\''.$sku.'\' AND [Blocked]=0';				
				$stmt = sqlsrv_query( $connNavision, $sql );
				if( $stmt !== false) {
					if($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
							
						//Discontinuamos y bloqueamos el producto en Navision
						echo $sku."Aparece en Navision. Procedemos a bloquearlo<br><br>";
						$sql2="UPDATE dbo.[Item] SET [Blocked]=1,[Discontinuado]=1 WHERE [No.]='".$sku."'";	
						$stmt2 = sqlsrv_query( $connNavision, $sql2 );
						if( $stmt2 === false) {
							die( print_r( sqlsrv_errors(), true) );
						}
						
					}
				}
			
			}else{
				
				echo "Sigue quedando stock. NO LO DESACTIVAMOS EN PRESTASHOP<br>";		
					
				//Comprobamos que el producto se encuentre en Navision
				$sql = 'SELECT * FROM dbo.Item WHERE [No.]=\''.$sku.'\' AND [Blocked]=0';				
				$stmt = sqlsrv_query( $connNavision, $sql );
				if( $stmt !== false) {
					if($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
							
						//Discontinuamos y bloqueamos el producto en Navision
						echo $sku."Aparece en Navision. Procedemos a discontinuarlo<br><br>";
						$sql2="UPDATE dbo.[Item] SET [Discontinuado]=1 WHERE [No.]='".$sku."'";	
						$stmt2 = sqlsrv_query( $connNavision, $sql2 );
						if( $stmt2 === false) {
							die( print_r( sqlsrv_errors(), true) );
						}
						
					}
				}
			
			
			}
			
				
		}
		
		else echo "El producto ".$referencia." no está en Prestashop o está desactivado<br>";
			
}
		
		$connPrestashop->close();
		echo " \r\n \r\Finalizado \r\n"; 
?>
