<?php
include("db.php");
include("pcg.php");
if (isset($_GET["usuario"]) && !empty($_GET["usuario"]) && $_GET["usuario"]=="admin" && isset($_GET["password"]) && !empty($_GET["password"]) && $_GET["password"]=="1234") {    
    $exito = false;
    if (isset($_GET["orden"]) && !empty($_GET["orden"])) {
    	$exito = true;
    }else{
    	$exito = false;
    	$mensaje_error_id = 1;
    	$mensaje_error = "Folio de orden no fue recibido o inválido";
    }

    if (isset($_GET["nombre"]) && !empty($_GET["nombre"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 2;
    	$mensaje_error = "Nombre de Cliente no fue recibido";
    }    

    if (isset($_GET["calle"]) && !empty($_GET["calle"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 3;
    	$mensaje_error = "Nombre de la calle no fue recibida";
    }    

    if (isset($_GET["colonia"]) && !empty($_GET["colonia"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 4;
    	$mensaje_error = "Nombre de la colonia no fue recibida";
    }    

    if (isset($_GET["telefono"]) && !empty($_GET["telefono"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 5;
    	$mensaje_error = "Telefono del cliente no fue recibido";
    }  

    if (isset($_GET["ciudad"]) && !empty($_GET["ciudad"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 6;
    	$mensaje_error = "Nombre de la ciudad del cliente no fue recibido";
    }  

    if (isset($_GET["estado"]) && !empty($_GET["estado"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 7;
    	$mensaje_error = "Nombre del estado no fue recibido";
    }  

    if (isset($_GET["cp"]) && !empty($_GET["cp"]) && $exito==true) {
    	$exito = true;
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 8;
    	$mensaje_error = "Código Postal Vacío";
    }  

    if (isset($_GET["productos"]) && !empty($_GET["productos"]) && $exito==true) {
    	$productos = array();
    	$i=0;
    	$skus = explode(',', $_GET["productos"]);
    	if(sizeof($skus)>1){
    		foreach ($skus as $sku) {
    			$skus_with_stock = explode(':', $sku);
    			if (sizeof($skus_with_stock)>0) {
    				array_push($productos, array('sku'=>$skus_with_stock[0],'stock'=>$skus_with_stock[1]));
    				$i++;
    			}else{
			    	$exito = false;
			    	$mensaje_error_id = 9;
			    	$mensaje_error = "No se encontro la cantidad de: ".$sku;      				
			    	exit;
    			}
    		}
    	}else{
   			$skus_with_stock = explode(':', $_GET["productos"]);
   			if (sizeof($skus_with_stock)>1) {
   				array_push($productos, array('sku'=>$skus_with_stock[0],'stock'=>$skus_with_stock[1]));
   			}else{
		    	$exito = false;
		    	$mensaje_error_id = 10;
		    	$mensaje_error = "No especificado el stock de: ".$skus_with_stock[0];          				
   			}
   			
    	}
    	if (sizeof($productos>0) && $exito==true) {
    		$exito = true;
    	}else{
	    	$exito = false;
	    	$mensaje_error_id = 11;
	    	$mensaje_error = "Revisar sintaxis de productos, separado por comas y guiones";    		
    	}
    }elseif (!isset($mensaje_error_id)) {
    	$exito = false;
    	$mensaje_error_id = 12;
    	$mensaje_error = "Listado de productos vacío";
    }
	function httpsPost($Url, $strRequest){
	   $ch=curl_init();
	   curl_setopt($ch, CURLOPT_URL, $Url);
	   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	   curl_setopt($ch, CURLOPT_POST, 1) ;
	   curl_setopt($ch, CURLOPT_POSTFIELDS, $strRequest);
	   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	   $result = curl_exec($ch);
	   curl_close($ch);
	   return $result;
	}
	if ($exito==true) {
		$orders_decompras = mysql_query("SELECT * FROM ingram_orders WHERE orden = ".intval($_GET["orden"])); 
		if (!$orders_decompras) {
	    	$exito = false;
	    	$mensaje_error_id = 13;
	    	$mensaje_error = "Problemas buscando ordenes de compra en DECOMPRAS";			
		}		
		else
		{
			if (mysql_num_rows($orders_decompras)>0) {
		    	$exito = false;
	    		$mensaje_error_id = 14;
	    		$mensaje_error = "No. de Orden ".$_GET["orden"]." encontrada, evita replicar.";			
			}else{		
				$atention_to = $_GET["nombre"];
				$address1     = $_GET["calle"];
				$address2     = $_GET["colonia"];
				$address3     =$_GET["telefono"];									
				$city        = $_GET["ciudad"];
				$state        = $_GET["estado"];
				$postal_code = $_GET["cp"];

				$xml_ingram = "<OrderRequest>
							<Version>2.0</Version>";
						$xml_ingram .= "<TransactionHeader>
									<SenderID>".$PCG_SENDER."</SenderID>
									<ReceiverID>INGRAM MICRO</ReceiverID>
									<CountryCode>MX</CountryCode>
									<LoginID>".$PGC_LOGIN."</LoginID>
									<Password>".$PCG_PASS."</Password>
									<TransactionID>{8C1C3C30-63CD-4638-A623-AC888856E3CC}</TransactionID>
									</TransactionHeader>";
							$xml_ingram .= "<OrderHeaderInformation>
										<BillToSuffix>000</BillToSuffix>
										<AddressingInformation>
											<CustomerPO>DCPCG".$_GET["orden"]."</CustomerPO>
											<ShipToAttention>$atention_to</ShipToAttention>
											<EndUserPO/>
											<ShipTo>
												<Address>
													<ShipToAddress1>$address1</ShipToAddress1>
													<ShipToAddress2>$address2</ShipToAddress2>
													<ShipToAddress3>$address3</ShipToAddress3>
													<ShipToCity>$city</ShipToCity>
													<ShipToProvince>$state</ShipToProvince>
													<ShipToPostalCode>$postal_code</ShipToPostalCode>
												</Address>
											</ShipTo>
										</AddressingInformation>";
							$xml_ingram .= "	<ProcessingOptions>
											<CarrierCode>M2</CarrierCode>
											<AutoRelease>0</AutoRelease>
											<ShipmentOptions>
												<BackOrderFlag>Y</BackOrderFlag>
												<SplitShipmentFlag>Y</SplitShipmentFlag>
												<SplitLine>N</SplitLine>
												<ShipFromBranches>10</ShipFromBranches>
											</ShipmentOptions>
										</ProcessingOptions>
									</OrderHeaderInformation>
									<OrderLineInformation>";					
							foreach($productos as $producto)
							{
								$xml_ingram .=	"
										<ProductLine>
											<SKU>".$producto["sku"]."</SKU> 
											<Quantity>".$producto["stock"]."</Quantity> 
											<CustomerLineNumber/> 
										</ProductLine>
										";				
							}
										$xml_ingram .= "<CommentLine>
													<CommentText>NO ENTREGAR FACTURA USUARIO FINAL</CommentText>
												</CommentLine>";
							$xml_ingram .= "</OrderLineInformation>
									<ShowDetail>1</ShowDetail>
								</OrderRequest>";
							$url = 'https://newport.ingrammicro.com/MUSTANG';
							$strRequest = utf8_encode($xml_ingram);
							$Response = httpsPost($url, $strRequest);
							$doc = new DOMDocument();
							$doc->loadXML(utf8_decode($Response));
							$OResp = "OResponse.xml";
							$doc->save("$OResp");			
							$ErrorStatus = $doc->getElementsByTagName("ErrorStatus");
							$ErrorNumber = $ErrorStatus->item(0)->getAttribute("ErrorNumber");
							if(strlen($ErrorNumber)<=0){
								$BranchOrderNumber = $doc->getElementsByTagName( "BranchOrderNumber" );
								$order_from_ingram = $BranchOrderNumber->item(0)->nodeValue;
								$rs_ingram_order_xref = mysql_query("INSERT INTO ingram_orders (orden,ingram,fecha_alta) VALUES (".intval($_GET["orden"]).",$order_from_ingram,NOW())");
							    	$exito = true;
							    	$mensaje_error_id = 15;
							    	$mensaje_error = "ORDEN GRABADA CON EXITO. ".$order_from_ingram;							
							    	foreach ($productos as $producto) {
							    		mysql_query("UPDATE price_file SET disponibilidad = disponibilidad-".intval($producto["stock"])." WHERE sku = '".$producto["sku"]."'");
							    	}
								
							}elseif($ErrorNumber!='20079'){
							    	$exito = false;
							    	$mensaje_error_id = 16;
							    	$mensaje_error = "ERROR FATAL registrando orden de compras, contactar a administradores";							
							}
			}
		}
		$xml = array('message_id' => $mensaje_error_id, 'message' => $mensaje_error );								
	}else{
		$xml = array('message_id' => $mensaje_error_id, 'message' => $mensaje_error );
	}
}else{
	$xml = array('error' => 'Usuario y Contrasenia Incorrectos.');
}
header('Content-type: text/xml');
echo @array_to_xml($xml, new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><orden></orden>'))->asXML();
?>    
