diff --git a/LICENCE b/LICENCE new file mode 100644 index 0000000..044c9b5 --- /dev/null +++ b/LICENCE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Hardis Supply Chain + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/TDItoRP.ftl b/TDItoRP.ftl index 05ecbc7..8a25e39 100644 --- a/TDItoRP.ftl +++ b/TDItoRP.ftl @@ -5,68 +5,33 @@ <#assign tdiEvent64b = JsonUtil.decodeBase64(tdiEventMsg.data) /> <#assign tdiEvent = JsonUtil.jsonToMap(tdiEvent64b)> <#assign senderTag = tdiEventMsg.senderTag> - -<#-- Target = 0 : Expedition , Target = 1 : Colis --> -<#if tdiEvent.Target == 0 || (tdiEvent.Target == 1 && tdiEvent.ParcelNumber?? && tdiEvent.ParcelNumber == "")> - <#stop > -<#else> - {"Header": - { - "ProjectID": "${projectRP}" - }, - "ID": - { - "RefID": "${tdiEvent.ParcelNumber}" - }, - "Payload": - {"Events": [ - <#-- {"Date": {"DateTime": "${tdiEvent.EventDate?datetime.iso?iso_utc}", --> - {"Date": {"DateTime": "${tdiEvent.EventDate}", - "AuthorTimeZone": "UTC" - }, - <#if tdiEvent.EventCode == "OK-COLLECTED" || - tdiEvent.EventCode == "OK-EDI" || - tdiEvent.EventCode == "OK-APPT-DATE" || - tdiEvent.EventCode == "OK-APPT-NOTI" || - tdiEvent.EventCode == "OK-APPT-NEED" || - tdiEvent.EventCode == "ADM" || - tdiEvent.EventCode == "RGP" > - "Code": "TRACKING_EVENT_IFTSTA_349", <#-- Handled by carrier --> - <#else> - <#if tdiEvent.EventCode?starts_with("TA") > - "Code": "TRACKING_EVENT_IFTSTA_56", <#-- Incomplete delivery --> - <#else> - <#if tdiEvent.EventCode?starts_with("T-") == true || - tdiEvent.EventCode?starts_with("TD") == true || - tdiEvent.EventCode == "OK-OUT-FOR-D" || - tdiEvent.EventCode == "OK-IN-TRANST" > - "Code": "TRACKING_EVENT_IFTSTA_113",<#-- Delivery in progress --> - <#else> - <#if tdiEvent.EventCode?starts_with("D-") == true || - tdiEvent.EventCode == "OK-DELIVERED" || - tdiEvent.EventCode == "POD" || - tdiEvent.EventCode == "FAC" || - tdiEvent.EventCode == "OK-WITHDRAWA" > - "Code": "TRACKING_EVENT_IFTSTA_21",<#-- Process Completed --> - <#else> - <#if tdiEvent.EventCode?starts_with("DC") == true || - tdiEvent.EventCode?starts_with("DN") == true || - tdiEvent.EventCode?starts_with("DR") == true || - tdiEvent.EventCode?starts_with("C-") == true || - tdiEvent.EventCode == "SUP" || - tdiEvent.EventCode == "NEX" > - "Code": "TRACKING_EVENT_IFTSTA_14",<#-- Delivery completed --> - <#else> - "Code": "TRACKING_EVENT_UNKNOWN", - - - - - - "Reason": "${tdiEvent.EventLabel}" - - } - ] - } - } - \ No newline at end of file + <#if tdiEvent.Target == 0 || (tdiEvent.Target == 1 && tdiEvent.ParcelNumber?? && tdiEvent.ParcelNumber == "")> + <#stop> + <#else> + [ + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingNotified> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "TDItoRP_TrackingNotified.ftl"> + } + <#if tdiEvent.EstimatedDeliveryDate?? && tdiEvent.EstimatedDeliveryDate!=""> + , + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingETAUpdated> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "TDItoRP_TrackingETAUpdated.ftl"> + } + + <#if tdiEvent.TrackingUrl?? && tdiEvent.TrackingUrl!=""> + , + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingURLUpdated> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "TDItoRP_TrackingURLUpdated.ftl"> + } + + ] + diff --git a/TDItoRP_TrackingETAUpdated.ftl b/TDItoRP_TrackingETAUpdated.ftl new file mode 100644 index 0000000..793d3f2 --- /dev/null +++ b/TDItoRP_TrackingETAUpdated.ftl @@ -0,0 +1,22 @@ +[ + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + "RefID": "${tdiEvent.ParcelNumber}" + }, + "Payload": { + "TrackingETA": { + "EndETA": { + "AuthorTimeZone": "UTC", + "DateTime": "${tdiEvent.EstimatedDeliveryDate}" + }, + "StartETA": { + "AuthorTimeZone": "UTC", + "DateTime": "${tdiEvent.EstimatedDeliveryDate}" + } + } + } + } +] \ No newline at end of file diff --git a/TDItoRP_TrackingNotified.ftl b/TDItoRP_TrackingNotified.ftl new file mode 100644 index 0000000..09e575b --- /dev/null +++ b/TDItoRP_TrackingNotified.ftl @@ -0,0 +1,64 @@ +[ + { + "Header": + { + "ProjectID": "${projectRP}" + }, + "ID": + { + "RefID": "${tdiEvent.ParcelNumber}" + }, + "Payload": + { + "Events": [ + <#-- {"Date": {"DateTime": "${tdiEvent.EventDate?datetime.iso?iso_utc}", --> + { + "Date": { + "DateTime": "${tdiEvent.EventDate}", + "AuthorTimeZone": "UTC" + }, + <#if tdiEvent.EventCode == "OK-COLLECTED" || + tdiEvent.EventCode == "OK-EDI" || + tdiEvent.EventCode == "OK-APPT-DATE" || + tdiEvent.EventCode == "OK-APPT-NOTI" || + tdiEvent.EventCode == "OK-APPT-NEED" || + tdiEvent.EventCode == "ADM" || + tdiEvent.EventCode == "RGP" > + "Code": "TRACKING_EVENT_IFTSTA_349", <#-- Handled by carrier --> + <#else> + <#if tdiEvent.EventCode?starts_with("TA") > + "Code": "TRACKING_EVENT_IFTSTA_56", <#-- Incomplete delivery --> + <#else> + <#if tdiEvent.EventCode?starts_with("T-") == true || + tdiEvent.EventCode?starts_with("TD") == true || + tdiEvent.EventCode == "OK-OUT-FOR-D" || + tdiEvent.EventCode == "OK-IN-TRANST" > + "Code": "TRACKING_EVENT_IFTSTA_113",<#-- Delivery in progress --> + <#else> + <#if tdiEvent.EventCode?starts_with("D-") == true || + tdiEvent.EventCode == "OK-DELIVERED" || + tdiEvent.EventCode == "POD" || + tdiEvent.EventCode == "FAC" || + tdiEvent.EventCode == "OK-WITHDRAWA" > + "Code": "TRACKING_EVENT_IFTSTA_21",<#-- Process Completed --> + <#else> + <#if tdiEvent.EventCode?starts_with("DC") == true || + tdiEvent.EventCode?starts_with("DN") == true || + tdiEvent.EventCode?starts_with("DR") == true || + tdiEvent.EventCode?starts_with("C-") == true || + tdiEvent.EventCode == "SUP" || + tdiEvent.EventCode == "NEX" > + "Code": "TRACKING_EVENT_IFTSTA_14",<#-- Delivery completed --> + <#else> + "Code": "TRACKING_EVENT_UNKNOWN", + + + + + + "Reason": "${tdiEvent.EventLabel}" + } + ] + } + } +] \ No newline at end of file diff --git a/TDItoRP_TrackingURLUpdated.ftl b/TDItoRP_TrackingURLUpdated.ftl new file mode 100644 index 0000000..721032b --- /dev/null +++ b/TDItoRP_TrackingURLUpdated.ftl @@ -0,0 +1,13 @@ +[ + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + "RefID": "${tdiEvent.ParcelNumber}" + }, + "Payload": { + "TrackingURL": "${tdiEvent.TrackingUrl}" + } + } +] \ No newline at end of file