internal:proship:velocity:ils-event

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
internal:proship:velocity:ils-event [2026/07/14 09:45] – created lseadmininternal:proship:velocity:ils-event [2026/07/14 10:12] (current) – removed lseadmin
Line 1: Line 1:
-**Velocity PSS function to send request to ILS:** 
-<code> 
-Sub Ils_RunEvent(IlsEvent) 
- Dim IlsRq 
- Dim IlsEvXPath 
-  
- Select Case IlsEvent 
- Case "StartClient" 
- Set IlsRq = Sys 
- IlsEvXPath = "/SYSTEM/ILS" 
- Case Else 
- Set IlsRq = Shipment 
- IlsEvXPath = "/SHIPMENT/ILS" 
- End Select 
  
- IlsRq.DeleteElement IlsEvXPath 
- IlsRq.E(IlsEvXPath & "/EVENT") = IlsEvent 
-  
- DMsgBox "Request" & vbLF & IlsRq.Xml 
- Dim ilsRsTxt  
- ilsRsTxt = TcpSend(Machine.ServerName, 3298, IlsRq.Xml & Chr(3), 30) 
- If Right(ilsRsTxt, 1) = Chr(3) Then 
- ilsRsTxt = Left(ilsRsTxt, Len(ilsRsTxt) - 1) 
- End If 
- 
- DMsgBox "Response" & vbLF & ilsRsTxt 
- Dim IlsRs 
- Set IlsRs = CreateProcReq() 
- IlsRs.Xml = ilsRsTxt 
- 'Debug_XML IlsRs.xml 
-  
- DMsgBox IlsRs.E(IlsEvXPath & "/STATUS") 
- If (CInt("0" & IlsRs.E(IlsEvXPath & "/STATUS")) > 0) Then 
- IlsRs.DeleteElement IlsEvXPath 
- Select Case IlsEvent 
- Case "StartClient" 
- 'Sys.Xml = IlsRs.Xml 
- Case Else 
- Shipment.Xml = IlsRs.Xml 
- End Select 
- End If 
-End Sub 
- 
-</code> 
- 
- 
-**Call the function like this within Velocity events:** 
-<code> 
-Function PreShipShipment() 
- Ils_RunEvent "PRESHIP" 
-End Function 
-</code> 
- 
-** PSV.psi: ILS code that handles incoming requests from PSS Ils_RunEvent:** 
-<code> 
- 
-    internal class PSV : VelocityEvents 
-    { 
-        public PSV() : base(IlsConfiguration.Logger) { } 
- 
-        public override string StartClient(ref CpiXml SysClient) 
-        { 
-            LogInfo(String.Format("{0}.{1}() started.", this.GetType().Name, MethodBase.GetCurrentMethod().Name)); 
- 
-            return ""; 
-        } 
- 
-        public override void LoadShipment(ref CpiXml Shipment) 
-        { 
-            LogInfo(String.Format("{0}.{1}() started.", this.GetType().Name, MethodBase.GetCurrentMethod().Name)); 
-            LogDebug(Shipment.Xml); 
- 
-            try 
-            { 
-                var shipRef = Shipment["/SHIPMENT/COMMON/SHIPPER_REFERENCE"]; 
- 
-                try 
-                { 
-                    var JOrder = dolibarr.GetOrder(shipRef); 
- 
-                    Shipment["/SHIPMENT/COMMON/ORDER_ID"] = JOrder.Value<string>("id"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_COMPANY"] = JOrder["shipto"].Value<string>("shipto_name"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_COUNTRY"] = JOrder["shipto"].Value<string>("shipto_country"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_ADDRESS1"] = JOrder["shipto"].Value<string>("shipto_address1"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_CITY"] = JOrder["shipto"].Value<string>("shipto_city"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_STATE"] = JOrder["shipto"].Value<string>("shipto_state"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_POSTALCODE"] = JOrder["shipto"].Value<string>("shipto_zip"); 
-                    Shipment["/SHIPMENT/COMMON/CONSIGNEE_REFERENCE"] = JOrder["shipto"].Value<string>("shipto_code"); 
- 
-                    Shipment["/SHIPMENT/COMMON/SHIPVIA"] = JOrder.Value<string>("shipvia"); 
- 
-                    Shipment["/SHIPMENT/ILS/STATUS"] = "1"; 
-                } 
-                catch (Exception ex) 
-                { 
-                    LogError(ex.ToString()); 
-                    Shipment["/SHIPMENT/ERROR"] = "Unable to load order"; 
-                } 
-            } 
-            catch (Exception ex) 
-            { 
-                LogError("Exception " + ex.Message); 
-                Shipment["/SHIPMENT/ERROR"] = ex.Message; 
-            } 
- 
-        End_LoadShipment: 
-            LogInfo(String.Format("{0}.{1}() done.", this.GetType().Name, MethodBase.GetCurrentMethod().Name)); 
-            LogDebug(Shipment.Xml); 
-        } 
- 
-        public override string PostShip(ref CpiXml Shipment) 
-        { 
-            LogInfo(String.Format("{0}.{1}() started.", this.GetType().Name, MethodBase.GetCurrentMethod().Name)); 
-            LogDebug(Shipment.Xml); 
- 
-                        var custId = Shipment["/SHIPMENT/COMMON/SHIPPER_REFERENCE"]; 
- 
-            using (OdbcConnection db = new OdbcConnection("dsn=proship")) 
-            { 
-                db.Open(); 
- 
-                using (OdbcCommand queryCmd = new OdbcCommand(null, db)) 
-                { 
-                    queryCmd.CommandText = 
-                        "INSERT INTO ps_shipments " + 
-                        "(shipper, shipdate, track_no, shipper_reference, consignee_reference, service, terms, " + 
-                        "`return`, base_charge, total_charge, operator, sort_code, st_company, st_contact, " + 
-                        "st_address1, st_address2, st_city, st_state, st_zip, st_country, st_phone, processed_on) " + 
-                        "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW());"; 
- 
-                    queryCmd.Parameters.AddWithValue("@shipper", Shipment["/SHIPMENT/COMMON/SHIPPER"]); 
-                    queryCmd.Parameters.AddWithValue("@shipdate", DateTime.Parse(Shipment["/SHIPMENT/COMMON/SHIPDATE"])); 
-                    queryCmd.Parameters.AddWithValue("@track_no", Shipment["/SHIPMENT/PACKAGE[1]/TRACKING_NUMBER"]); 
-                    queryCmd.Parameters.AddWithValue("@shipper_reference", Shipment["/SHIPMENT/COMMON/SHIPPER_REFERENCE"]); 
-                    queryCmd.Parameters.AddWithValue("@consignee_reference", Shipment["/SHIPMENT/COMMON/CONSIGNEE_REFERENCE"]); 
-                    queryCmd.Parameters.AddWithValue("@service", Shipment["/SHIPMENT/SERVICE"]); 
-                    queryCmd.Parameters.AddWithValue("@terms", Shipment["/SHIPMENT/COMMON/TERMS"]); 
-                    queryCmd.Parameters.AddWithValue("@return", int.Parse("0" + Shipment["/SHIPMENT/COMMON/RETURN_DELIVERY_METHOD"])); 
-                    queryCmd.Parameters.AddWithValue("@base_charge", decimal.Parse("0" + Shipment["/SHIPMENT/COMMON/BASE"]).ToString("N2")); 
-                    queryCmd.Parameters.AddWithValue("@total_charge", decimal.Parse("0" + Shipment["/SHIPMENT/COMMON/TOTAL"]).ToString("N2")); 
-                    queryCmd.Parameters.AddWithValue("@operator", Shipment["/SHIPMENT/COMMON/MISC/OPERATOR"]); 
-                    queryCmd.Parameters.AddWithValue("@sort_code", Shipment["/SHIPMENT/COMMON/MISC/SORTS/SORT/SORT_CODE"]); 
-                    queryCmd.Parameters.AddWithValue("@st_company", Shipment["/SHIPMENT/COMMON/CONSIGNEE_COMPANY"]); 
-                    queryCmd.Parameters.AddWithValue("@st_contact", Shipment["/SHIPMENT/COMMON/CONSIGNEE_CONTACT"]); 
-                    queryCmd.Parameters.AddWithValue("@st_address1", Shipment["/SHIPMENT/COMMON/CONSIGNEE_ADDRESS1"]); 
-                    queryCmd.Parameters.AddWithValue("@st_address2", Shipment["/SHIPMENT/COMMON/CONSIGNEE_ADDRESS2"]); 
-                    queryCmd.Parameters.AddWithValue("@st_city", Shipment["/SHIPMENT/COMMON/CONSIGNEE_CITY"]); 
-                    queryCmd.Parameters.AddWithValue("@st_state", Shipment["/SHIPMENT/COMMON/CONSIGNEE_STATE"]); 
-                    queryCmd.Parameters.AddWithValue("@st_zip", Shipment["/SHIPMENT/COMMON/CONSIGNEE_POSTALCODE"]); 
-                    queryCmd.Parameters.AddWithValue("@st_country", Shipment["/SHIPMENT/COMMON/CONSIGNEE_COUNTRY"]); 
-                    queryCmd.Parameters.AddWithValue("@st_phone", Shipment["/SHIPMENT/COMMON/CONSIGNEE_PHONE"]); 
-                    LogDebug(queryCmd.CommandText.ToString()); 
- 
-                    LogDebug(String.Format("{0} row(s) affected.", queryCmd.ExecuteNonQuery())); 
-                } 
-            } 
- 
-            var shippedNote = String.Format("Date: {0}\nTracking #: {1}\nCharge: {2}", DateTime.Now.ToString(), Shipment["/SHIPMENT/PACKAGE/TRACKING_NUMBER"], Shipment["/SHIPMENT/COMMON/TOTAL"]); 
-            dolibarr.UpdateNote(Shipment["/SHIPMENT/COMMON/ORDER_ID"], shippedNote); 
- 
-        End_PostShip: 
-            LogInfo(String.Format("{0}.{1}() done.", this.GetType().Name, MethodBase.GetCurrentMethod().Name)); 
-            LogDebug(Shipment.Xml); 
-            return base.PostShip(ref Shipment); 
-        } 
-} 
-</code> 
  • internal/proship/velocity/ils-event.1784036722.txt.gz
  • Last modified: 2026/07/14 09:45
  • by lseadmin