<?php
//Api general que concentra todas las llamadas a las interfaces SOAP.
//Version: 1.0

//Incluye seguridad http básica mediante el envío del usuario y contraseña en la cabecera
//de la petición. Si el usuario y contraseña no coincide con el local. Se deniega la operación.
//Deshabilitada.

//(C) 2021 - Eduardo Arana para UveDiez Supply Chain, S.L. - earana@grupov10.com

//Historico de cambios:


require('ac_db.inc.php');
require('vd_phplog.php');
require_once __DIR__ . '/vendor/autoload.php';

//Tratamiento de errores PHP

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// permite peticiones desde cualquier origen
header('Access-Control-Allow-Origin: *');
// permite peticiones con métodos GET, PUT, POST, DELETE y OPTIONS
//header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
// permite los headers Content-Type y Authorization
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
header("Access-Control-Max-Age: 3600");

//Definicion del usuario y contraseña para la autenticación.

$usuario = "V10";
$password = "4PtfsrRgduNLbXDD";

//Requiere un header del tipo Autorization: Basic 
$passwords_validos = array ($usuario => $password);
$usuarios_validos = array_keys($passwords_validos);

$user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] :'';
$pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] :'';

//Para interfaces de desarrollo se comenta la autenticación.

//$validar = (in_array($user, $usuarios_validos)) && ($pass == $passwords_validos[$user]);
////
//if (!$validar) {
//  header('WWW-Authenticate: Basic realm="Mi Realm"');
//  header('HTTP/1.0 401 Unauthorized');
//  http_response_code(401);
//  die ("Not authorized to use this resource.");
//}

$soapget = '<wsdl:definitions name="TestV10Soap" targetNamespace="https://sending.grupov10.com:5199/INTERFAZ/api.php"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:tns="https://sending.grupov10.com:5199/INTERFAZ/api.php">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">V10Soap. Copyright 2021 UveDiez Supply Chain, S.L. All rights reserved.</xsd:documentation>
	</xsd:annotation>
	<wsdl:types>
		<xsd:schema targetNamespace="https://sending.grupov10.com:5199/INTERFAZ/api.php">
		
			<!--SKU-->
			<!-- wrapper element of the request message -->
			<xsd:element name="SKUProcessRequest" type="tns:LineSend"/>
			<!-- wrapper element of the response message -->
			<xsd:element name="SKUProcessResponse" type="tns:SKUProcessResponse"/>
			<!-- wrapper element of the fault message -->
			<xsd:element name="SKUProcessFault" type="tns:SKUProcessFault"/>
			
			<!--ordenes-->
			<!-- wrapper element of the request message -->
			<xsd:element name="InboundOrdersInsertRequest" type="tns:Order"/>
			<!-- wrapper element of the response message -->
			<xsd:element name="InboundOrdersInsertResponse" type="tns:InboundOrdersInsertResponse"/>
			<!-- wrapper element of the fault message -->
			<xsd:element name="InboundOrdersInsertFault" type="tns:InboundOrdersInsertFault"/>
			
			<!--ordenes WIP-->
			<!-- wrapper element of the request message -->
			<xsd:element name="InboundOrdersInsertWipRequest" type="tns:OrderWip"/>
			<!-- wrapper element of the response message -->
			<xsd:element name="InboundOrdersInsertWipResponse" type="tns:InboundOrdersInsertWipResponse"/>
			<!-- wrapper element of the fault message -->
			<xsd:element name="InboundOrdersInsertWipFault" type="tns:InboundOrdersInsertWipFault"/>
			
			<!--Cycle-->
			<!-- wrapper element of the request message -->
			<xsd:element name="InboundCycleRequest" type="tns:LineSendCycle"/>
			<!-- wrapper element of the response message -->
			<xsd:element name="InboundCycleResponse" type="tns:InboundCycleResponse"/>
			<!-- wrapper element of the fault message -->
			<xsd:element name="InboundCycleFault" type="tns:InboundCycleFault"/>
			
			<!--ROProcessRequest-->
			<!-- wrapper element of the request message -->
			<xsd:element name="ROProcessRequest" type="tns:OrderRO"/>
			<!-- wrapper element of the response message -->
			<xsd:element name="ROProcessRequestResponse" type="tns:ROProcessRequestResponse"/>
			<!-- wrapper element of the fault message -->
			<xsd:element name="ROProcessRequestFault" type="tns:ROProcessRequestFault"/>
			
			<!--MemberOrderProcessRequest-->
			<!-- wrapper element of the request message -->
			<xsd:element name="MemberOrderProcessRequest" type="tns:MemberOrderProcess"/>
			<!-- wrapper element of the response message -->
			<xsd:element name="MemberOrderProcessResponse" type="tns:MemberOrderProcessResponse"/>
			<!-- wrapper element of the fault message -->
			<xsd:element name="MemberOrderProcessFault" type="tns:MemberOrderProcessFault"/>
			
			<!--SKU-->
			<xsd:complexType name="LineSend">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Line" type="tns:Line"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="Line">
				<xsd:sequence>
					<xsd:element name="Message_Id" type="xsd:string"/>
					<xsd:element name="Interface_Type" type="xsd:string"/>
					<xsd:element name="Destination_Instance" type="xsd:string"/>
					<xsd:element name="Organization" type="xsd:string"/>
					<xsd:element name="Item_Num" type="xsd:string"/>
					<xsd:element name="Barcode" type="xsd:string"/>
					<xsd:element name="Item_Description" type="xsd:string"/>
					<xsd:element name="Action_Code" type="xsd:string"/>
					<xsd:element name="UOM_Code" type="xsd:string"/>
					<xsd:element name="Lot_Control" type="xsd:string"/>
					<xsd:element name="Item_Status" type="xsd:string"/>
					<xsd:element name="UN_Number" type="xsd:string"/>
					<xsd:element name="UN_Description" type="xsd:string"/>
					<xsd:element name="Hazard_Class_Code" type="xsd:string"/>
					<xsd:element name="UN_Packing_Group_Code" type="xsd:string"/>
					<xsd:element name="Kit_Flag" type="xsd:string"/>
					<xsd:element name="Attribute1" type="xsd:string"/>
					<xsd:element name="Attribute2" type="xsd:string"/>
					<xsd:element name="Attribute3" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!--ordenes-->
			<xsd:complexType name="Order">
				<xsd:sequence>
								<xsd:element name="MessageId" type="xsd:string"/>
								<xsd:element name="Interface_Type" type="xsd:string"/>
								<xsd:element name="OrderNumber" type="xsd:string"/>
								<xsd:element name="SupplierName" type="xsd:string"/>
								<xsd:element name="PO_Number" type="xsd:string"/>
								<xsd:element name="Release_Num" type="xsd:string"/>
								<xsd:element name="Resupply_Order_Number" type="xsd:string"/>
								<xsd:element name="Invoice_Number" type="xsd:string"/>
								<xsd:element name="Expected_Receipt_Date" type="xsd:string"/>
								<xsd:element name="WayBill_AirBill_Num" type="xsd:string"/>
								<xsd:element name="Shipped_Date" type="xsd:string"/>
                                <xsd:element name="Packing_Slip" type="xsd:string"/>
								<xsd:element name="Destination_Instance" type="xsd:string"/>
                                <xsd:element name="Num_of_containers" type="xsd:string"/>
								<xsd:element name="Freight_Carrier_Code" type="xsd:string"/>
								<xsd:element name="Lines">
									<xsd:complexType>
										<xsd:sequence>
											<xsd:element name="PO_Line_Number" type="xsd:string"/>
											<xsd:element name="Item_Num" type="xsd:string"/>
											<xsd:element name="Item_Description" type="xsd:string"/>
											<xsd:element name="Lot_Control" type="xsd:string"/>
											<xsd:element name="Line_Quantity" type="xsd:string"/>
											<xsd:element name="Shipment_Line_Num" type="xsd:string"/>
											<xsd:element name="Shipment_Line_Id" type="xsd:string"/>
											<xsd:element name="Unit_of_measure" type="xsd:string"/>
											<xsd:element name="Quantity_Shipped" type="xsd:string"/>
											<xsd:element name="Location_Code" type="xsd:string"/>
											<xsd:element name="Organization_Code" type="xsd:string"/>
											<xsd:element name="Subinventory" type="xsd:string"/>
											<xsd:element name="Pallet_Number" type="xsd:string"/>
											<xsd:element name="Req_Line_Num" type="xsd:string"/>
											<xsd:element name="Lot_Number" type="xsd:string"/>
											<xsd:element name="Lot_Quantity" type="xsd:string"/>
											<xsd:element name="Lot_Expiration_Date" type="xsd:string"/>
											<xsd:element name="Item_Revision" type="xsd:string"/>
                                            <xsd:element name="Packing_Slip" type="xsd:string"/>
											<xsd:element name="Txf_PO_Unit_Price" type="xsd:string"/>
											<xsd:element name="Txf_PO_Price" type="xsd:string"/>
											<xsd:element name="Txf_PO_Price_Currency" type="xsd:string"/>
											<xsd:element name="Unit_Weight_Nett" type="xsd:string"/>
											<xsd:element name="Weight_Nett" type="xsd:string"/>
											<xsd:element name="Weight_UOM_Code_Nett" type="xsd:string"/>
                                            <xsd:element name="Unit_Weight_Gross" type="xsd:string"/>
                                            <xsd:element name="Weight_Uom_Code_Gross" type="xsd:string"/>
                                    <xsd:element name="Shipment">
									<xsd:complexType>
										<xsd:sequence>
											<xsd:element name="Document_Shipment_Line_Num" type="xsd:string"/>
											<xsd:element name="PO_Line_Location_Id" type="xsd:string"/>
											<xsd:element name="Need_by_date" type="xsd:string"/>
											<xsd:element name="Receiving_Tolerance" type="xsd:string"/>
											<xsd:element name="Shipment_Quantity" type="xsd:string"/>
											<xsd:element name="Organization_Code" type="xsd:string"/>
											<xsd:element name="Location_Code" type="xsd:string"/>
											<xsd:element name="SubInventory" type="xsd:string"/>
											<xsd:element name="Days_early_receipt_allowed" type="xsd:string"/>
											<xsd:element name="Days_late_receipt_allowed" type="xsd:string"/>
										</xsd:sequence>
									</xsd:complexType>
								</xsd:element>
										</xsd:sequence>
									</xsd:complexType>
								</xsd:element>								
							</xsd:sequence>
			</xsd:complexType>
			
			<!--ordenes WIP-->
			<xsd:complexType name="OrderWip">
				<xsd:sequence>
					<xsd:element name="Header">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="MessageId" type="xsd:string"/>
								<xsd:element name="Transaction_Type" type="xsd:string"/>
								<xsd:element name="Destination_Instance" type="xsd:string"/>
								<xsd:element name="WIP_Entity_Name" type="xsd:string"/>
								<xsd:element name="Job_Type" type="xsd:string"/>
								<xsd:element name="Class_Code" type="xsd:string"/>
								<xsd:element name="Organization_Code" type="xsd:string"/>
								<xsd:element name="Assembly_Item_Number" type="xsd:string"/>
								<xsd:element name="Assembly_Lot_Control" type="xsd:string"/>
								<xsd:element name="Assembly_Item_Description" type="xsd:string"/>
								<xsd:element name="BOM_Revision" type="xsd:string"/>
								<xsd:element name="BOM_Revision_Date" type="xsd:string"/>
								<xsd:element name="Start_Quantity" type="xsd:string"/>
								<xsd:element name="Scheduled_Start_Date" type="xsd:string"/>
								<xsd:element name="Scheduled_Completion_Date" type="xsd:string"/>
								<xsd:element name="Due_Date" type="xsd:string"/>
								<xsd:element name="LSP_Order_Priority" type="xsd:string"/>
								<xsd:element name="HMS_Order_Type" type="xsd:string"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
								<xsd:element name="Lines">
									<xsd:complexType>
										<xsd:sequence>
											<xsd:element name="Comp_Item_Number" type="xsd:string"/>
											<xsd:element name="Comp_Item_Description" type="xsd:string"/>
											<xsd:element name="WIP_Supply_Type_Meaning" type="xsd:string"/>
											<xsd:element name="Quantity_Per_Assembly" type="xsd:string"/>
											<xsd:element name="Required_Quantity" type="xsd:string"/>
											<xsd:element name="Quantity_Open" type="xsd:string"/>
											<xsd:element name="Supply_Subinventory" type="xsd:string"/>
											<xsd:element name="Supply_Locator" type="xsd:string"/>
										</xsd:sequence>
									</xsd:complexType>
								</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!--Cycle-->
			<xsd:complexType name="LineSendCycle">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="LineCycle" type="tns:LineCycle"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="LineCycle">
				<xsd:sequence>
					<xsd:element name="MessageId" type="xsd:string"/>
					<xsd:element name="Interface_Type" type="xsd:string"/>
					<xsd:element name="Destination_Instance" type="xsd:string"/>
					<xsd:element name="Item_Description" type="xsd:string"/>
					<xsd:element name="Unit_Of_Measure" type="xsd:string"/>
					<xsd:element name="Item_Number" type="xsd:string"/>
					<xsd:element name="Item_Revision" type="xsd:string"/>
					<xsd:element name="Subinventory" type="xsd:string"/>
					<xsd:element name="Lot_Number" type="xsd:string"/>
					<xsd:element name="CC_Entry_Interface_Id" type="xsd:string"/>
					<xsd:element name="Cycle_Count_Header_Id" type="xsd:string"/>
					<xsd:element name="Count_List_Sequence" type="xsd:string"/>
					<xsd:element name="Cycle_Count_Entry_Id" type="xsd:string"/>
					<xsd:element name="Organization_Code" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			
			<!--ROProcessRequest-->
			<xsd:complexType name="OrderRO">
				<xsd:sequence>
								<xsd:element name="Transaction_Type" type="xsd:string"/>
								<xsd:element name="MessageId" type="xsd:string"/>
								<xsd:element name="OrderNumber" type="xsd:string"/>
								<xsd:element name="Customer_Name" type="xsd:string"/>
								<xsd:element name="Customer_Number" type="xsd:string"/>
								<xsd:element name="Cust_PO_Number" type="xsd:string"/>
								<xsd:element name="Shipping_Instructions" type="xsd:string"/>
								<xsd:element name="Destination_Instance" type="xsd:string"/>
								<xsd:element name="Ship_To_Address1" type="xsd:string"/>
								<xsd:element name="Ship_To_Address2" type="xsd:string"/>
								<xsd:element name="Ship_To_Address3" type="xsd:string"/>
                                <xsd:element name="Ship_To_Address4" type="xsd:string"/>
								<xsd:element name="Ship_To_Address5" type="xsd:string"/>
                                <xsd:element name="Telephone" type="xsd:string"/>
                                <xsd:element name="Country_Code" type="xsd:string"/>
                                <xsd:element name="Shipping_Method" type="xsd:string"/>
                                <xsd:element name="Released_Date_Actual" type="xsd:string"/>
                                <xsd:element name="HMS_Order_Type" type="xsd:string"/>
                                <xsd:element name="Request_Date" type="xsd:string"/>
								<xsd:element name="Req_Num" type="xsd:string"/>
								<xsd:element name="Postal_Code" type="xsd:string"/>
								<xsd:element name="Ship_To_City" type="xsd:string"/>
								<xsd:element name="Lines">
									<xsd:complexType>
										<xsd:sequence>
											<xsd:element name="Item_Number" type="xsd:string"/>
											<xsd:element name="Item_Revision" type="xsd:string"/>
											<xsd:element name="Item_Description	" type="xsd:string"/>
											<xsd:element name="Lot_Control" type="xsd:string"/>
											<xsd:element name="Released_Quantity" type="xsd:string"/>
											<xsd:element name="Organization_Code" type="xsd:string"/>
											<xsd:element name="Subinventory" type="xsd:string"/>
											<xsd:element name="UN_Number" type="xsd:string"/>
											<xsd:element name="Ordered_Quantity" type="xsd:string"/>
											<xsd:element name="Ordered_Qty_UOM" type="xsd:string"/>
											<xsd:element name="Fragile_Item_Flag" type="xsd:string"/>
											<xsd:element name="Schedule_Ship_Date" type="xsd:string"/>
											<xsd:element name="Req_Line_Num" type="xsd:string"/>
											<xsd:element name="Move_Order_Line_ID" type="xsd:string"/>
											<xsd:element name="Line_Number" type="xsd:string"/>
                                    	</xsd:sequence>
									</xsd:complexType>
								</xsd:element>								
							</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="MemberOrderProcess">
				<xsd:sequence>
					<xsd:element name="Header">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="WCS_Event_Id" type="xsd:string"/>
                                <xsd:element name="Source_Computer" type="xsd:string"/>
                                <xsd:element name="Ship_From_WHSE" type="xsd:string"/>
                                <xsd:element name="Order_Number" type="xsd:string"/>
                                <xsd:element name="Customer_Name" type="xsd:string"/>
                                <xsd:element name="Customber_Number" type="xsd:string"/>
                                <xsd:element name="Ordered_Date" type="xsd:string"/>
                                <xsd:element name="Ship_To_Address1" type="xsd:string"/>
                                <xsd:element name="Ship_To_Address2" type="xsd:string"/>
                                <xsd:element name="Ship_To_Address3" type="xsd:string"/>
                                <xsd:element name="Ship_To_Address4" type="xsd:string"/>
                                <xsd:element name="Ship_To_Address5" type="xsd:string"/>
                                <xsd:element name="Postal_Code" type="xsd:string"/>
                                <xsd:element name="Ship_To_City" type="xsd:string"/>
                                <xsd:element name="Telephone" type="xsd:string"/>
                                <xsd:element name="Country_Code" type="xsd:string"/>
                                <xsd:element name="Ship_Method_Code" type="xsd:string"/>
                                <xsd:element name="Audit_Flag" type="xsd:string"/>
                                <xsd:element name="Manifest_Flag" type="xsd:string"/>
                                <xsd:element name="HMS_Order_Number" type="xsd:string"/>
                                <xsd:element name="GOC_Order_Number" type="xsd:string"/>
                                <xsd:element name="WCS_Order_Number" type="xsd:string"/>
                                <xsd:element name="Booked_Date" type="xsd:string"/>
                                <xsd:element name="Paid_Date" type="xsd:string"/>
                                <xsd:element name="Print_Date" type="xsd:string"/>
                                <xsd:element name="Released_Date_Actual" type="xsd:string"/>
                                <xsd:element name="Latest_Dispatch_Date" type="xsd:string"/>
                                <xsd:element name="HMS_Order_Type" type="xsd:string"/>
                                <xsd:element name="WCS_Order_Priority" type="xsd:string"/>
                                <xsd:element name="Email_Address" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_Address1" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_Address2" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_Address3" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_Address4" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_Address5" type="xsd:string"/>
                                <xsd:element name="WCS_Postal_Code" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_City" type="xsd:string"/>
                                <xsd:element name="WCS_Telephone" type="xsd:string"/>
                                <xsd:element name="WCS_Country_Code" type="xsd:string"/>
                                <xsd:element name="WCS_Carrier_Code" type="xsd:string"/>
                                <xsd:element name="WCS_Carrier_Service_Level" type="xsd:string"/>
                                <xsd:element name="WCS_Dispatch_Lane" type="xsd:string"/>
                                <xsd:element name="Retail_Total" type="xsd:string"/>
                                <xsd:element name="Discounted_Retail" type="xsd:string"/>
                                <xsd:element name="Val_Needed_Flag" type="xsd:string"/>
                                <xsd:element name="Request_Date" type="xsd:string"/>
                                <xsd:element name="Caps_Invoice_Delivery" type="xsd:string"/>
                                <xsd:element name="WCS_Ticket_Number" type="xsd:string"/>
                                <xsd:element name="Shipping_Instructions" type="xsd:string"/>
                                <xsd:element name="Pickup_Location_Id" type="xsd:string"/>
                                <xsd:element name="WCS_Ship_To_Email" type="xsd:string"/>
                                <xsd:element name="Attribute1" type="xsd:string"/>
                                <xsd:element name="Attribute2" type="xsd:string"/>
                                <xsd:element name="Attribute3" type="xsd:string"/>
                                <xsd:element name="Attribute4" type="xsd:string"/>
                                <xsd:element name="Attribute5" type="xsd:string"/>
                                <xsd:element name="Attribute6" type="xsd:string"/>
                                <xsd:element name="Attribute7" type="xsd:string"/>
                                <xsd:element name="Attribute8" type="xsd:string"/>
                                <xsd:element name="Attribute9" type="xsd:string"/>
                                <xsd:element name="Attribute10" type="xsd:string"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
								<xsd:element name="Lines">
									<xsd:complexType>
										<xsd:sequence>
                                         <xsd:element name="Ordered_Quantity" type="xsd:string"/>
                                         <xsd:element name="Released_Quantity" type="xsd:string"/>
                                         <xsd:element name="Item_Number" type="xsd:string"/>
                                         <xsd:element name="Segment1" type="xsd:string"/>
                                         <xsd:element name="Line_Number" type="xsd:string"/>
                                         <xsd:element name="UN_Number" type="xsd:string"/>
                                         <xsd:element name="Barcode_Scan" type="xsd:string"/>
                                         <xsd:element name="Pick_Locator" type="xsd:string"/>
                                         <xsd:element name="Xref_Qty" type="xsd:string"/>
                                         <xsd:element name="Ordered_Qty_UOM" type="xsd:string"/>
                                         <xsd:element name="Ugly_Item_Flag" type="xsd:string"/>
                                         <xsd:element name="Fragile_Item_Flag" type="xsd:string"/>
                                         <xsd:element name="Promise_Date" type="xsd:string"/>
                                         <xsd:element name="Schedule_Ship_Date" type="xsd:string"/>
                                         <xsd:element name="Actual_Shipment_Date" type="xsd:string"/>
                                         <xsd:element name="Actual_Arrival_Date" type="xsd:string"/>
                                         <xsd:element name="Earliest_Acceptable_Date" type="xsd:string"/>
                                         <xsd:element name="Latest_Acceptable_Date" type="xsd:string"/>
                                         <xsd:element name="Schedule_Arrival_Date" type="xsd:string"/>
                                         <xsd:element name="Earliest_Ship_Date" type="xsd:string"/>										
									</xsd:sequence>
									</xsd:complexType>
								</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Type referenced by the wrapper element of the response message-->
			<xsd:complexType name="SKUProcessResponse">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="InboundOrdersInsertResponse">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="InboundOrdersInsertWipResponse">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!-- Type referenced by the wrapper element of the fault message-->
			<xsd:complexType name="SKUProcessFault">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!-- Type referenced by the wrapper element of the fault message-->
			<xsd:complexType name="InboundOrdersInsertFault">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="InboundOrdersInsertWipFault">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!-- Type referenced by the wrapper element of the response message-->
			<xsd:complexType name="InboundCycleResponse">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!-- Type referenced by the wrapper element of the fault message-->
			<xsd:complexType name="InboundCycleFault">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!--ROProcessRequest-->
			<xsd:complexType name="ROProcessRequestResponse">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!-- Type referenced by the wrapper element of the fault message-->
			<xsd:complexType name="ROProcessRequestFault">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="MemberOrderProcessResponse">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<!-- Type referenced by the wrapper element of the fault message-->
			<xsd:complexType name="MemberOrderProcessFault">
				<xsd:sequence>
					<xsd:element name="ResponseCode" type="xsd:int"/>
					<xsd:element name="ResponseStatus" type="xsd:string"/>
					<xsd:element name="ResponseDetail" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
		</xsd:schema>
	</wsdl:types>
	
	<!-- Request message SKU-->
	<wsdl:message name="SKUProcessRequest">
		<wsdl:part name="inputParameters" element="tns:SKUProcessRequest"/>
	</wsdl:message>
	<!-- Response message -->
	<wsdl:message name="SKUProcessResponse">
		<wsdl:part name="outputParameters" element="tns:SKUProcessResponse"/>
	</wsdl:message>
	<!-- Fault message -->
	<wsdl:message name="SKUProcessFault">
		<wsdl:part name="faultParameters" element="tns:SKUProcessFault"/>
	</wsdl:message>
	
	<!-- Request message orden -->
	<wsdl:message name="InboundOrdersInsertRequest">
		<wsdl:part name="inputParameters" element="tns:InboundOrdersInsertRequest"/>
	</wsdl:message>
	<!-- Response message orden -->
	<wsdl:message name="InboundOrdersInsertResponse">
		<wsdl:part name="outputParameters" element="tns:InboundOrdersInsertResponse"/>
	</wsdl:message>
	<!-- fault message orden -->
	<wsdl:message name="InboundOrdersInsertFault">
		<wsdl:part name="faultParameters" element="tns:InboundOrdersInsertFault"/>
	</wsdl:message>
	
	<!-- Request message OrderWip -->
	<wsdl:message name="InboundOrdersInsertWipRequest">
		<wsdl:part name="inputParameters" element="tns:InboundOrdersInsertWipRequest"/>
	</wsdl:message>
	<!-- Response message OrderWip -->
	<wsdl:message name="InboundOrdersInsertWipResponse">
		<wsdl:part name="outputParameters" element="tns:InboundOrdersInsertWipResponse"/>
	</wsdl:message>
	<!-- fault message OrderWip -->
	<wsdl:message name="InboundOrdersInsertWipFault">
		<wsdl:part name="faultParameters" element="tns:InboundOrdersInsertWipFault"/>
	</wsdl:message>
	
	<!-- Request message Cycle -->
	<wsdl:message name="InboundCycleRequest">
		<wsdl:part name="inputParameters" element="tns:InboundCycleRequest"/>
	</wsdl:message>
	<!-- Response message -->
	<wsdl:message name="InboundCycleResponse">
		<wsdl:part name="outputParameters" element="tns:InboundCycleResponse"/>
	</wsdl:message>
	<!-- Fault message -->
	<wsdl:message name="InboundCycleFault">
		<wsdl:part name="faultParameters" element="tns:InboundCycleFault"/>
	</wsdl:message>
	
	<!-- Request message ordenRO -->
	<wsdl:message name="ROProcessRequest">
		<wsdl:part name="inputParameters" element="tns:ROProcessRequest"/>
	</wsdl:message>
	<!-- Response message ordenRO -->
	<wsdl:message name="ROProcessRequestResponse">
		<wsdl:part name="outputParameters" element="tns:ROProcessRequestResponse"/>
	</wsdl:message>
	<!-- fault message ordenRO -->
	<wsdl:message name="ROProcessRequestFault">
		<wsdl:part name="faultParameters" element="tns:ROProcessRequestFault"/>
	</wsdl:message>
	
	<!-- Request message MemberOrderProcess -->
	<wsdl:message name="MemberOrderProcessRequest">
		<wsdl:part name="inputParameters" element="tns:MemberOrderProcessRequest"/>
	</wsdl:message>
	<!-- Response message MemberOrderProcess -->
	<wsdl:message name="MemberOrderProcessResponse">
		<wsdl:part name="outputParameters" element="tns:MemberOrderProcessResponse"/>
	</wsdl:message>
	<!-- fault message MemberOrderProcess -->
	<wsdl:message name="MemberOrderProcessFault">
		<wsdl:part name="faultParameters" element="tns:MemberOrderProcessFault"/>
	</wsdl:message>
	
	<!-- Port type SKU-->
	<wsdl:portType name="TestSKUP">
		<!-- Operation -->
		<wsdl:operation name="SKUProcessRequest">
			<wsdl:input message="tns:SKUProcessRequest"/>
			<wsdl:output message="tns:SKUProcessResponse"/>
			<wsdl:fault message="tns:SKUProcessFault" name="SKUProcessFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!-- Port type orden-->
	<wsdl:portType name="TestOrder">
		<!-- Operation -->
		<wsdl:operation name="InboundOrdersInsertRequest">
			<wsdl:input message="tns:InboundOrdersInsertRequest"/>
			<wsdl:output message="tns:InboundOrdersInsertResponse"/>
			<wsdl:fault message="tns:InboundOrdersInsertFault" name="InboundOrdersInsertFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!-- Port type OrderWip-->
	<wsdl:portType name="TestOrderWip">
		<!-- Operation -->
		<wsdl:operation name="InboundOrdersInsertWipRequest">
			<wsdl:input message="tns:InboundOrdersInsertWipRequest"/>
			<wsdl:output message="tns:InboundOrdersInsertWipResponse"/>
			<wsdl:fault message="tns:InboundOrdersInsertWipFault" name="InboundOrdersInsertWipFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!-- Port type Cycle-->
	<wsdl:portType name="TestCycle">
		<!-- Operation -->
		<wsdl:operation name="InboundCycleRequest">
			<wsdl:input message="tns:InboundCycleRequest"/>
			<wsdl:output message="tns:InboundCycleResponse"/>
			<wsdl:fault message="tns:InboundCycleFault" name="InboundCycleFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!-- Port type ordenRO-->
	<wsdl:portType name="TestROProcess">
		<!-- Operation -->
		<wsdl:operation name="ROProcessRequest">
			<wsdl:input message="tns:ROProcessRequest"/>
			<wsdl:output message="tns:ROProcessRequestResponse"/>
			<wsdl:fault message="tns:ROProcessRequestFault" name="ROProcessRequestFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!-- Port type MemberOrderProcess-->
	<wsdl:portType name="TestMemberOrderProcess">
		<!-- Operation -->
		<wsdl:operation name="MemberOrderProcessRequest">
			<wsdl:input message="tns:MemberOrderProcessRequest"/>
			<wsdl:output message="tns:MemberOrderProcessResponse"/>
			<wsdl:fault message="tns:MemberOrderProcessFault" name="MemberOrderProcessFault"/>
		</wsdl:operation>
	</wsdl:portType>

	<!-- Binding (SOAP 1.1/ HTTP binding) SKU -->
	<wsdl:binding name="V10SoapSKU" type="tns:TestSKUP">
		<!-- document/literal/wrapped -->
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- Operation order-->
		<wsdl:operation name="SKUProcessRequest">
			<soap:operation/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="SKUProcessFault">
				<soap:fault name="SKUProcessFault" use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
		<!-- Binding (SOAP 1.1/ HTTP binding) ORDER -->
	<wsdl:binding name="V10SoapOrder" type="tns:TestOrder">
		<!-- document/literal/wrapped -->
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- Operation order-->
		<wsdl:operation name="InboundOrdersInsertRequest">
			<soap:operation/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="InboundOrdersInsertFault">
				<soap:fault name="InboundOrdersInsertFault" use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- Binding (SOAP 1.1/ HTTP binding) ORDER WIP -->
	<wsdl:binding name="V10SoapOrderWip" type="tns:TestOrderWip">
		<!-- document/literal/wrapped -->
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- Operation order-->
		<wsdl:operation name="InboundOrdersInsertWipRequest">
			<soap:operation/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="InboundOrdersInsertWipFault">
				<soap:fault name="InboundOrdersInsertWipFault" use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- Binding (SOAP 1.1/ HTTP binding) Cycle -->
	<wsdl:binding name="V10SoapCycle" type="tns:TestCycle">
		<!-- document/literal/wrapped -->
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- Operation order-->
		<wsdl:operation name="InboundCycleRequest">
			<soap:operation/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="InboundCycleFault">
				<soap:fault name="InboundCycleFault" use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- Binding (SOAP 1.1/ HTTP binding) ordenRO -->
	<wsdl:binding name="V10SoapROPickRelease" type="tns:TestROProcess">
		<!-- document/literal/wrapped -->
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- Operation order-->
		<wsdl:operation name="ROProcessRequest">
			<soap:operation/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="ROProcessRequestFault">
				<soap:fault name="ROProcessRequestFault" use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- Binding (SOAP 1.1/ HTTP binding) -->
	<wsdl:binding name="V10SoapMemberOrderProcess" type="tns:TestMemberOrderProcess">
		<!-- document/literal/wrapped -->
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- Operation order-->
		<wsdl:operation name="MemberOrderProcessRequest">
			<soap:operation/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="MemberOrderProcessFault">
				<soap:fault name="MemberOrderProcessFault" use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- Service-->
	<wsdl:service name="TestV10Soap">
		<!-- Port -->
		<wsdl:port name="TestSKUP" binding="tns:V10SoapSKU">
			<soap:address location="https://sending.grupov10.com:5199/INTERFAZ/SKUProcessRequest.php"/>
		</wsdl:port>
		
		<!-- Port order-->
		<wsdl:port name="TestOrder" binding="tns:V10SoapOrder">
			<soap:address location="https://sending.grupov10.com:5199/INTERFAZ/InboundOrdersInsertRequest.php"/>
		</wsdl:port>
    
        <!-- Port order WIP-->
		<wsdl:port name="TestOrderWip" binding="tns:V10SoapOrderWip">
			<soap:address location="https://sending.grupov10.com:5199/INTERFAZ/InboundOrdersInsertWipRequest.php"/>
		</wsdl:port> 

        <!-- Port Cycle -->
		<wsdl:port name="TestCycle" binding="tns:V10SoapCycle">
			<soap:address location="https://sending.grupov10.com:5199/INTERFAZ/InboundCycleRequest.php"/>
		</wsdl:port>	

        <!-- Port order ordenRO-->
		<wsdl:port name="TestROProcess" binding="tns:V10SoapROPickRelease">
			<soap:address location="https://sending.grupov10.com:5199/INTERFAZ/ROProcessRequest.php"/>
		</wsdl:port>
        <!-- Port order OrderProcess-->
		<wsdl:port name="TestMemberOrderProcess" binding="tns:V10SoapMemberOrderProcess">
			<soap:address location="https://sending.grupov10.com:5199/INTERFAZ/MemberOrderProcessRequest.php"/>
		</wsdl:port>		
    	</wsdl:service>
</wsdl:definitions>';

if (isset($_GET['wsdl'])) {
         header("Content-Type: text/xml");
      echo $soapget;
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	http_response_code(400);
    echo "Method ".$_SERVER['REQUEST_METHOD']." not accepted.";
	exit(); 	
}

?>