Compare commits

..

81 Commits

Author SHA1 Message Date
959a0d02a8 Release 1.2.60+3 2026-04-24 11:12:50 +02:00
ed1d989b2d Merge branch 'Release-1.2-SCPN1-10159' into 'release/1.2'
Release-1.2-SCPN1-10159 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!271
2026-04-24 09:05:06 +00:00
f490cce345 Merge branch 'develop-1.2' into Release-1.2-SCPN1-10159 2026-04-24 09:58:40 +02:00
2a70e2ca76 back SCPN1 10519
(cherry picked from commit 2b25c4853d)
2026-04-24 09:43:40 +02:00
a25e4046a3 back SCPN1-10519 2026-04-24 09:31:22 +02:00
012c4007c7 Release 1.2.60+2 2026-04-23 09:11:07 +02:00
f131a91b36 Merge branch 'release1.2-SCPN1-10621' into 'release/1.2'
SCPN1-10586

See merge request r-d-technique/tiers/reflex-wms-connector!268
2026-04-23 07:07:11 +00:00
b7d97fbd63 SCPN1-10586 2026-04-22 17:59:40 +02:00
86b209e56e Release 1.2.60+1 2026-04-22 09:41:41 +02:00
33e1abe3e1 Merge branch 'release1.2-SCPN1-10621' into 'release/1.2'
SCPN1-10621 into "Release1.2 "

See merge request r-d-technique/tiers/reflex-wms-connector!264
2026-04-22 07:21:10 +00:00
498fd030a6 SCPN1-10586 2026-04-21 08:35:05 +02:00
fc78dbdb66 SCPN1-10586 2026-04-20 16:40:44 +02:00
f2ef0553b7 SCPN1-10586 2026-04-20 13:48:04 +02:00
05a944250c Release 1.2.59+1 2026-04-20 13:44:28 +02:00
2ef220f2ca Merge branch 'release-1.2-v13' into 'release/1.2'
release-1.2-v13 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!260
2026-04-20 09:44:06 +00:00
f4cb551271 Merge branch 'develop-1.2' into release-1.2-v13
# Conflicts:
#	RFXtoRP_HsaItm_ItemCreated.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdatedToConfigure.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl
#	RFXtoRP_HsrCarrierApt_BookingWMSUpdateAppointment.ftl
#	RFXtoRP_HsrCarrierApt_SiteCancelAppointment.ftl
#	RFXtoRP_HsrCarrierApt_UpdateAppointment.ftl
#	RFXtoRP_PlatformLogCreate.ftl
#	RPtoRFX_AppointmentEvent.ftl
#	RPtoRFX_CarrierAppointmentCreated.ftl
#	RPtoRFX_CarrierAppointmentReasonUpdatedByNumber.ftl
#	RPtoRFX_CarrierAppointmentReasonUpdatedByRef.ftl
#	RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByNumber.ftl
#	RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByRef.ftl
#	RPtoRFX_CarrierAppointmentSlotUpdatedByNumber.ftl
2026-04-20 11:17:43 +02:00
6353ffa18f SCPN1-10586 2026-04-17 17:17:45 +02:00
2b443f56a5 SCPN1-10586 2026-04-17 14:17:20 +02:00
4d70e05947 Merge branch 'develop-1.2' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop-1.2 2026-04-17 10:59:55 +02:00
6eebe5c805 SCPN1-10586 2026-04-17 10:59:47 +02:00
9a9e6922da SCPN1-10586
(cherry picked from commit 2bfb866dcc)
2026-04-16 17:36:06 +02:00
af5775375e SCPN1-10586
(cherry picked from commit 13fe55ae1a)
2026-04-16 17:17:55 +02:00
f29f1b6dc4 SCPN1-10579 2026-04-14 15:18:20 +02:00
6fac2a7a2c SCPN1-10579 2026-04-14 14:35:04 +02:00
7f6fb9b63a SCPN1-10560
(cherry picked from commit 8e1d0e3a17)
2026-04-13 15:11:23 +02:00
a570da2699 espace 2026-04-03 16:17:36 +02:00
0795d36caa SCPN1-10402
(cherry picked from commit 4e3162556c)
2026-04-03 14:31:15 +02:00
f30e7b94d3 SCPN1-10402 2026-03-31 17:54:52 +02:00
45904e8b6f SCPN1-10402 2026-03-31 09:46:33 +02:00
71e4b030f7 Merge branch 'develop' into develop-1.2
# Conflicts:
#	README.md
#	RFXtoRP_HfDtlStockLs.ftl
#	RFXtoRP_HfDtlStockLs_StockSnapshotted_SegmentationKeys.ftl
#	RFXtoRP_HliPrepaL.ftl
#	RFXtoRP_HliReceiptLr.ftl
#	RFXtoRP_HliReceiptLr_ExecutionflowLinesAdded.ftl
#	RFXtoRP_HlrProL.ftl
#	RFXtoRP_HlrProL_ExecutionflowLinesAdded.ftl
#	RFXtoRP_HsaCarrier.ftl
#	RFXtoRP_HsaCarrier_ActorCreated.ftl
#	RFXtoRP_HsaCons.ftl
#	RFXtoRP_HsaCons_ActorCreated.ftl
#	RFXtoRP_HsaDesPatch.ftl
#	RFXtoRP_HsaDespNt.ftl
#	RFXtoRP_HsaDispute.ftl
#	RFXtoRP_HsaDispute_Created.ftl
#	RFXtoRP_HsaIpgMove_GoodsReceived.ftl
#	RFXtoRP_HsaIpgMove_StockMoved_SegmentationKeys.ftl
#	RFXtoRP_HsaLstCarSta.ftl
#	RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl
#	RFXtoRP_HsaProStatus.ftl
#	RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl
#	RFXtoRP_HsaProStatus_PreparationCompleted.ftl
#	RFXtoRP_HsaProStatus_PreparationExpected.ftl
#	RFXtoRP_HsaProStatus_PreparationStarted.ftl
#	RFXtoRP_HsaProStatus_TransportStarted.ftl
#	RFXtoRP_HsaSup_ActorCreated.ftl
#	RFXtoRP_HsrCarrierApt.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdatedToConfigure.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdatedToConfigure.ftl
#	RFXtoRP_HsrCarrierApt_BookingForceBookAppointment.ftl
#	RFXtoRP_HsrCarrierApt_BookingWMSUpdateAppointment.ftl
#	RFXtoRP_HsrCarrierApt_CarrierDeparted.ftl
#	RFXtoRP_HsrCarrierApt_LoadingCompleted.ftl
#	RFXtoRP_HsrCarrierApt_UnloadingCompleted.ftl
#	RFXtoRP_HsrCarrierApt_UnloadingStarted.ftl
#	RFXtoRP_HsrDepot_ActorCreated.ftl
#	RFXtoRP_HsrLoadInfo.ftl
#	RFXtoRP_HsrPrepa.ftl
#	RFXtoRP_HsrPrepa_CarrierUpdated.ftl
#	RFXtoRP_HsrPrepa_ExecutionflowMetadataUpdated.ftl
#	RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl
#	RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl
#	RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl
#	RFXtoRP_HsrPro.ftl
#	RFXtoRP_HsrPro_ExecutionflowDetected.ftl
#	RFXtoRP_HsrPro_ExecutionflowDetected_HeaderMetadata.ftl
#	RFXtoRP_HsrReceiptList.ftl
#	RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl
#	RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl
#	RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl
#	RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl
#	RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl
#	RFXtoRP_HsrReceiptList_ReceiptExpected.ftl
#	RFXtoRP_RestResponse.ftl
#	RPtoRFX_AppointmentEvent.ftl
#	RPtoRFX_CarrierAppointmentCreated.ftl
#	RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByNumber.ftl
#	RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByRef.ftl
#	RPtoRFX_CarrierAppointmentPhysicalReceiptDissociationByNumber.ftl
#	RPtoRFX_CarrierAppointmentPhysicalReceiptDissociationByRef.ftl
#	RPtoRFX_CarrierAppointmentReasonUpdatedByNumber.ftl
#	RPtoRFX_CarrierAppointmentReasonUpdatedByRef.ftl
#	RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByNumber.ftl
#	RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByRef.ftl
#	RPtoRFX_ExecutionflowEvent.ftl
#	RPtoRFX_PrepOrder_HeaderMetadata.ftl
#	RPtoRFX_PrepOrder_LineMetadata.ftl
#	RPtoRFX_Receipt.ftl
#	RPtoRFX_Receipt_HeaderMetadata.ftl
#	RPtoRFX_Receipt_LineMetadata.ftl
#	RPtoRFX_Receipt_OptionalAttributes.ftl
#	ReflexUtils.ftl
2026-03-31 09:32:40 +02:00
13b23c5819 SCPN1-9218 2026-03-24 17:17:52 +01:00
1be32968f2 SCPN1-10443 2026-03-20 13:28:08 +01:00
e269d41ccd SCPN1-10443 2026-03-19 14:30:08 +01:00
f48dc006d3 SCPN1-10459 2026-03-19 11:51:22 +01:00
fba2b820ac SCPN1-10443 2026-03-19 10:35:48 +01:00
3c6dd780de SCPN1-10443 2026-03-19 10:24:10 +01:00
326390e93d SCPN1-10443 2026-03-19 10:14:55 +01:00
06bcfecad6 SCPN1-10443 2026-03-19 10:08:13 +01:00
76d3db411f SCPN1-10443 2026-03-19 09:54:55 +01:00
c04e562c46 SCPN1-10408 2026-03-10 10:43:35 +01:00
35550c4e34 Release 1.2.58+3 2026-03-04 14:59:22 +01:00
39d0354d3f Merge branch 'SCPN1-10253-1.2' into 'release/1.2'
SCPN1-10253-1.2 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!254
2026-03-04 13:55:00 +00:00
d9dd53966a SCPN1-10253 2026-03-03 11:33:37 +01:00
68a39fab3d SCPN1-10253
(cherry picked from commit eea2a41313)
2026-03-02 16:19:36 +01:00
f321bdd645 Release 1.2.58+2 2026-03-02 15:17:46 +01:00
b6f0c14942 Merge branch 'SCPN1-10253-1.2' into 'release/1.2'
SCPN1-10253-1.2 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!249
2026-03-02 13:54:41 +00:00
0f63aade04 SCPN1-10294 2026-03-02 14:48:40 +01:00
a1c5485beb SCPN1-10253 2026-03-02 12:09:35 +01:00
ce046a5684 SCPN1-10253
(cherry picked from commit 8d806117fa)
2026-03-02 12:07:40 +01:00
31526f0553 SCPN1-10253 2026-03-02 11:55:24 +01:00
bb2174a8bd SCPN1-10253 2026-02-27 16:27:33 +01:00
29522ebda7 SCPN1-10253 2026-02-27 11:10:59 +01:00
9dd1998c98 SCPN1-10253 2026-02-27 10:22:13 +01:00
4136118604 SCPN1-10253 2026-02-27 10:08:04 +01:00
3c4bb89516 SCPN1-10253 2026-02-27 09:49:31 +01:00
44c9ee7c0c SCPN1-10253 2026-02-27 09:36:46 +01:00
490355cab3 SCPN1-10253 2026-02-27 09:35:08 +01:00
5eb415bfd3 SCPN1-10253SCPN1-8260SCPN1-10253 2026-02-27 09:32:30 +01:00
b61d45d1aa SCPN1-10294 2026-02-25 11:05:10 +01:00
b4314fb6b1 SCPN1-10294 2026-02-24 15:04:19 +01:00
d5f48359b0 Merge branch 'develop-1.2' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop-1.2 2026-02-24 11:37:17 +01:00
c0d58766d2 SCPN1-10294 2026-02-24 11:37:11 +01:00
f1dc82cdf0 SCPN1-10276 2026-02-23 13:35:49 +01:00
df8f126c13 SCPN1-10244 2026-02-16 17:12:02 +01:00
2c9d3109b7 SCPN1-9965
(cherry picked from commit e24e537650)
2026-02-16 11:49:20 +01:00
7c4c7ea395 SCPN1-9965 2026-02-13 10:58:13 +01:00
c9cba04714 Merge branch 'SCPN1-9965-tiny-url-appointment' into 'develop'
SCPN1-9965

Closes SCPN1-9965

See merge request r-d-technique/tiers/reflex-wms-connector!242

(cherry picked from commit 8974632c22)
2026-02-13 10:50:16 +01:00
c542805488 Release 1.2.58+1 2026-02-05 17:13:36 +01:00
29713e51d4 Release 1.2.57+1 2026-02-05 10:17:24 +01:00
5fcc1a071d Merge branch 'release-1.2-SCPN1-10100' into 'release/1.2'
release-1.2-SCPN1-10100 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!238
2026-02-05 08:31:43 +00:00
c694bd1b63 SCPN1-10100
(cherry picked from commit d507003c2b)
2026-02-05 08:55:09 +01:00
d507003c2b SCPN1-10100 2026-02-04 08:58:03 +01:00
8dc7e1895f SCPN1-10100 2026-02-02 11:59:14 +01:00
dc28a7be8a SCPN1-10100 2026-02-02 11:25:53 +01:00
99357483f9 SCPN1-10100 2026-01-30 16:14:40 +01:00
74522e1b11 Release 1.2.56+2 2026-01-27 08:55:35 +01:00
71a7001af1 Merge branch 'release1.2-SCPN1-10095' into 'release/1.2'
release1.2-SCPN1-10095 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!231
2026-01-27 07:53:04 +00:00
f8e00cf7ba SCPN1-10095
(cherry picked from commit 3b36b44aea)
2026-01-27 08:36:29 +01:00
3b36b44aea SCPN1-10095 2026-01-26 16:56:28 +01:00
cf964959af SCPN1-10095
(cherry picked from commit fcad79967e)
2026-01-26 16:01:29 +01:00
fcad79967e SCPN1-10095 2026-01-26 15:42:18 +01:00
40 changed files with 836 additions and 323 deletions

View File

@@ -1,6 +1,6 @@
# HARDIS SC NETWORK Core FTLs # HARDIS SC NETWORK Core FTLs
## Overview ## Overview
The **HARDIS WMS Connector** is a set of **FreeMarker templates (FTL)** designed to transform **outgoing JSON flows from HARDIS WMS** into **flows compatible with HARDIS SC NETWORK**.
The **HARDIS WMS Connector** is a set of **FreeMarker templates (FTL)** designed to transform **outgoing JSON flows from HARDIS WMS** into **flows compatible with HARDIS SC NETWORK**. The **HARDIS WMS Connector** is a set of **FreeMarker templates (FTL)** designed to transform **outgoing JSON flows from HARDIS WMS** into **flows compatible with HARDIS SC NETWORK**.

View File

@@ -24,9 +24,14 @@
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl"> <#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">
<#-- Item Photo URI could be added here --> <#-- Item Photo URI could be added here -->
<#if item.url?? && item.url!=""> <#if item.saved_picture_path?? && item.saved_picture_path!="" && item.saved_picture_path?starts_with("http") == true>
, ,
"PhotoURI": "${item.url?json_string}" "PhotoURI": "${item.saved_picture_path?json_string}"
<#else>
<#if item.url?? && item.url!="" && item.url?starts_with("http") == true>
,
"PhotoURI": "${item.url?json_string}"
</#if>
</#if> </#if>
<#-- Loop for the Logistical Variants - LV --> <#-- Loop for the Logistical Variants - LV -->

View File

@@ -7,8 +7,9 @@
<#include "ReflexUtils.ftl"> <#include "ReflexUtils.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project> <#assign projectRP = project>
<#assign organisationRP = organisation> <#assign organisationRP = organisation>
<#assign partnerApplicationRP = partnerApplication>
<#assign aDateTime = .now> <#assign aDateTime = .now>
@@ -20,16 +21,22 @@
<#-- *********************************************** Action = CREATE or UPDATE ******************** --> <#-- *********************************************** Action = CREATE or UPDATE ******************** -->
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteForceBookAppointment> <#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceBookAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl"> <#include "RFXtoRP_HsrCarrierApt_BookingForceBookAppointment.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierExpected.ftl">
} }
] ]
<#break> <#break>
<#case "U"> <#case "U">
<#-- *********************************************** Action = Update ********************--> <#-- *********************************************** Action = Update ********************-->
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
@@ -37,13 +44,14 @@
<#include "RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl"> <#include "RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl">
}, },
<#include "RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdated.ftl"> <#include "RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdated.ftl">
<#include "RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdated.ftl">
<#if carrier_apt.status?? && (carrier_apt.status.status_code=="999" || carrier_apt.status.status_code=="040" || carrier_apt.status.status_code=="030")> <#if carrier_apt.status?? && (carrier_apt.status.status_code=="999" || carrier_apt.status.status_code=="040" || carrier_apt.status.status_code=="030")>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteCancelAppointment> <#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceCancelAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_SiteCancelAppointment.ftl"> <#include "RFXtoRP_HsrCarrierApt_BookingForceCancelAppointment.ftl">
} }
] ]
<#else> <#else>
@@ -107,25 +115,14 @@
} }
] ]
<#else> <#else>
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteWMSUpdateAppointment> <#assign apiReflexPlatformID = ApiReflexPlatformID.BookingWMSUpdateAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_UpdateAppointment.ftl"> <#include "RFXtoRP_HsrCarrierApt_BookingWMSUpdateAppointment.ftl">
} }
] ]
<#else>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteForceRescheduleAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_UpdateSlotAppointment.ftl">
}
]
</#if>
</#if> </#if>
</#if> </#if>
</#if> </#if>
@@ -140,10 +137,10 @@
[ [
<#-- Ajout des lignes--> <#-- Ajout des lignes-->
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteCancelAppointment> <#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceCancelAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_SiteCancelAppointment.ftl"> <#include "RFXtoRP_HsrCarrierApt_BookingForceCancelAppointment.ftl">
} }
] ]
<#break> <#break>

View File

@@ -0,0 +1,9 @@
<#-- A décommenter si besoin de les utiliser-->
<#-- Uncomment if you need to use them-->
<#--{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierInformationUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdatedToConfigure.ftl">
},
-->

View File

@@ -0,0 +1,42 @@
<#--
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}"
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}"
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if>
</#if>
},
"Payload": {
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#--To configure-->
<#-- "CarrierInformation": [
{
"Key": "string",
"Value": {
"Bool": "true / false",
"Float": 3.1415,
"Int": 42,
"String": "Hello World !",
"Timestamp": {
"AuthorTimeZone": "Europe/Paris",
"DateTime": "2023-01-01T00:00:00Z"
}
}
]
}
}
]
-->

View File

@@ -7,9 +7,9 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
@@ -42,7 +42,15 @@
{ {
"Key": "carrier", "Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}" "Value": "${carrier_apt.planned_carrier?json_string}"
} },
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
] ]
}, },
"Payload":{ "Payload":{

View File

@@ -7,20 +7,20 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}" "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}"
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}" "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}" "RefID": "${carrier_apt.appointment_reference?json_string}"
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}" "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if> </#if>
</#if> </#if>
}, },
"Payload": { "Payload": {
"ActorID": "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#--To configure--> <#--To configure-->
<#-- "MetaData": [ <#-- "MetaData": [
{ {

View File

@@ -0,0 +1,194 @@
[
<#assign creation_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
{
"Header":{
"ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
},
"ID":{
"RefDate": {
"DateTime": "${creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
]
},
"Payload": {
"TimeZone":"${time_zone_rfx}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if (duration < 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
<#else>
<#if (duration == 0)>
<#assign duration = 1 />
</#if>
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration < 0)>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
<#else>
<#if (duration == 0)>
<#assign duration = 1 />
</#if>
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration < 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
<#else>
<#if (duration == 0)>
<#assign duration = 1 />
</#if>
</#if>
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
"AppointmentType": "${appointmentType}",
"Emails": ["${carrier_apt.creation_user_email?json_string}"],
<#include "RFXtoRP_HsrCarrierApt_SegmentationSelections.ftl">,
<#include "RFXtoRP_HsrCarrierApt_CarrierInformation.ftl">,
<#include "RFXtoRP_HsrCarrierApt_MetadataAppointment.ftl">,
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0)>
"Unloading" :
{
"Projects" : [{
"Commissions": [
<#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt>
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!="">
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
"ExecutionflowID":"${physical_receipt.physical_receipt_reference?json_string}",
<#else>
"OrderID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
"ExecutionflowID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
</#if>
"ExecutionflowID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}<#sep>,</#sep>
</#list>
],
"ProjectID" : "${projectRP}"
}]
},
<#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"Unloading" :
<#else>
"Loading" :
</#if>
{
"Projects" : [{
"Commissions": [{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}],
"ProjectID" : "${projectRP}"
}]
},
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_designation?? && carrier_apt.appointment_designation!="">
"Reason": "${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"Reason": "${carrier_apt.appointment_reference?json_string}",
<#else>
"Reason": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
</#if>
</#if>
"Slot": {
<#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" >
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-")>
<#stop "planned_load_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
}
}
}
]

View File

@@ -0,0 +1,58 @@
<#assign update_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
[
{
"ID":{
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${update_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
]
},
"Header": {
"ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -1,61 +1,29 @@
[ [
{ {
<#assign update_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
"Header":{ "Header":{
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}, },
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "ID":{
"RefDate": {
"DateTime": "${update_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"TimeZone":"${time_zone_rfx}", "CustomFields": [
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 />
</#if>
</#if>
</#if>
"AppointmentType": "${appointmentType}",
"Emails": ["${carrier_apt.creation_user_email?json_string}"],
"CustomFields": [
{ {
"Key": "depot", "Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}" "Value": "${carrier_apt.physical_depot?json_string}"
@@ -75,36 +43,115 @@
{ {
"Key": "carrier", "Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}" "Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
} }
], ]
<#include "RFXtoRP_HsrCarrierApt_SegmentationSelections.ftl">, },
<#include "RFXtoRP_HsrCarrierApt_CarrierInformation.ftl">, "Payload": {
<#include "RFXtoRP_HsrCarrierApt_MetadataAppointment.ftl">, <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0)> <#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
"Commissions": [ <#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
<#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt> </#if>
{ <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", <#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!=""> <#if (duration <= 0)>
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}", <#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
"ExecutionflowID": "${physical_receipt.physical_receipt_reference?trim?json_string}", </#if>
<#else>
"OrderID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
"ExecutionflowID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
</#if>
"ProjectID": "${projectRP}",
<#include "RFXtoRP_HsrCarrierApt_Quantities.ftl">
}<#sep>,</#sep>
</#list>
],
<#else> <#else>
"Commissions": [ <#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
"TimeZone":"${time_zone_rfx}",
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
"Unloading" :
{
"Projects" : [
{ {
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "Commissions": [
"ProjectID": "${projectRP}", <#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt>
<#include "RFXtoRP_HsrCarrierApt_Quantities.ftl"> {
} "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
], <#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!="">
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
"ExecutionflowID":"${physical_receipt.physical_receipt_reference?json_string}",
<#else>
"OrderID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
"ExecutionflowID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
</#if>
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}<#sep>,</#sep>
</#list>
],
"ProjectID" : "${projectRP}"
}]
},
"Reason": "",
<#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_LOADING>
"Loading" :
{
"Projects" : [
{
"Commissions": [
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}
],
"ProjectID" : "${projectRP}"
}]
},
<#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"Unloading" :
{
"Projects" : [
{
"Commissions": [
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}
],
"ProjectID" : "${projectRP}"
}]
},
</#if>
</#if>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}", "Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}",
<#else> <#else>
@@ -119,10 +166,9 @@
</#if> </#if>
</#if> </#if>
</#if> </#if>
"Slot": {
"Slots": [{
<#-- calcul de de la durée en fonction des start et end time--> <#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}", "DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" > <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" >
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")> <#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" > <#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
@@ -145,6 +191,7 @@
</#if> </#if>
</#if> </#if>
</#if> </#if>
}] }
} }
}
] ]

View File

@@ -7,15 +7,15 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"RefDate": { "RefDate": {

View File

@@ -7,15 +7,15 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"RefDate": { "RefDate": {

View File

@@ -0,0 +1,31 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
<#assign ref_datetime2 = AddSecondsToDatetime(ref_datetime?datetime.iso, 60)?iso_utc />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime2}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -7,15 +7,15 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"RefDate": { "RefDate": {

View File

@@ -7,15 +7,15 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"RefDate": { "RefDate": {

View File

@@ -1,5 +0,0 @@
"Quantities": [
]

View File

@@ -3,9 +3,9 @@
{ {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">

View File

@@ -7,15 +7,15 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"RefDate": { "RefDate": {

View File

@@ -7,15 +7,15 @@
"ID": { "ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "RefID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
</#if> </#if>
"RefDate": { "RefDate": {

View File

@@ -7,9 +7,9 @@
}, },
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else> <#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> "AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if> </#if>
<#else> <#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
@@ -77,32 +77,33 @@
{ {
"Key": "carrier", "Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}" "Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
} }
], ],
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0)> <#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
"Commissions": [ "Commissions": [
<#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt> <#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt>
{ {
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!=""> <#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!="">
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}", "OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
"ExecutionflowID": "${physical_receipt.physical_receipt_reference?trim?json_string}", "ExecutionflowID":"${physical_receipt.physical_receipt_reference?json_string}",
<#else> <#else>
"OrderID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}", "OrderID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
"ExecutionflowID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}", "ExecutionflowID": "${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
</#if> </#if>
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}<#sep>,</#sep> }<#sep>,</#sep>
</#list> </#list>
], ],
<#else> <#else>
"Commissions": [
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
<#include "RFXtoRP_HsrCarrierApt_Quantities.ftl">
}
],
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}", "Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}",
<#else> <#else>

View File

@@ -1,84 +0,0 @@
[
{
<#assign creation_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
"Header":{
"ProjectID": "${projectRP}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
<#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 /> <#-- à confirmer -->
</#if>
</#if>
</#if>
"Slots": [{
<#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" >
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-")>
<#stop "planned_load_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
}]
}
]

View File

@@ -26,7 +26,7 @@
"datas" : "datas" :
<#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl"> <#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl">
}, },
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCustomFieldsUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :

View File

@@ -79,6 +79,7 @@
<#else> <#else>
"Actor": "Actor":
{ {
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_ShipToMetadata.ftl">,
"Name" : "${(preparation_order.address.name_or_company_name!"")?json_string}", "Name" : "${(preparation_order.address.name_or_company_name!"")?json_string}",
"Address" : "Address" :
{ {

View File

@@ -0,0 +1,10 @@
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ]

View File

@@ -18,7 +18,7 @@
<#if receipt.receipt_type == "030"> <#if receipt.receipt_type == "030">
<#stop "ignored message because receipt type = transfert"> <#stop "ignored message because receipt type = transfert">
<#else> <#else>
<#if receipt.line_list ??> <#if receipt.line_list ?? && receipt.line_list[0]??>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
@@ -60,17 +60,41 @@
} }
<#else> <#else>
<#if receipt.receipt_confirmed == "true" > <#if receipt.receipt_confirmed == "true" >
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
<#assign ID = "${receipt.receipt_reference?trim?json_string}"/>
<#else>
<#assign ID = "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}"/>
</#if>
<#assign payload = '{"Header": {"ProjectID": "${projectRP!""}"},"IDs": [{"RefID": "${ID}"}]}'/>
<#assign queryApiReflexPlatformID = QueryApiReflexPlatformID.OrderGetByIds>
<#assign response = QueryApiReflexPlatformCall.call(queryApiReflexPlatformID,payload) />
<#assign orderRP = JsonUtil.jsonToMap(response)>
<#if orderRP?? && orderRP.Objects?? && orderRP.Objects[0]?? && orderRP.Objects[0].ID.RefID?? >
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl"> <#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
} }
<#else>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
}
</#if>
<#else> <#else>
<#if receipt.receipt_type == "030"> <#if receipt.receipt_type == "030">
<#stop "ignored message because receipt type = transfert"> <#stop "ignored message because receipt type = transfert">
<#else> <#else>
<#if receipt.line_list ??> <#if receipt.line_list ?? && receipt.line_list[0]??>
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",

View File

@@ -33,7 +33,7 @@
"DetailElements": [], "DetailElements": [],
"CorrelationID": "${id.correlationid!"no Correlationid"}", "CorrelationID": "${id.correlationid!"no Correlationid"}",
"ContextPayload": ${strJsonBody}, "ContextPayload": ${strJsonBody},
"Type": "RP_EXECUTIONFLOW_EVENT", "Type": "${event}",
"Task": "${id.apiRestReflexID!"no Task"}", "Task": "${id.apiRestReflexID!"no Task"}",
"OriginalID": "${id.refid!"no OriginalID"?trim?json_string}", "OriginalID": "${id.refid!"no OriginalID"?trim?json_string}",
"StackTrace": "" "StackTrace": ""

View File

@@ -12,7 +12,7 @@
<#assign aDateTime = .now> <#assign aDateTime = .now>
<#assign no_apiRestReflexID = "no apiRestReflexID"> <#assign no_apiRestReflexID = "no apiRestReflexID">
<#assign no_status = -99999> <#assign no_status = -99999>
<#assign event = "UNKNOW_EVENT" >
<#switch id.apiRestReflexID!no_apiRestReflexID> <#switch id.apiRestReflexID!no_apiRestReflexID>
<#case no_apiRestReflexID> <#case no_apiRestReflexID>
@@ -44,6 +44,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -84,6 +85,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_EXECUTIONFLOW_EVENT">
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -107,6 +109,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -132,6 +135,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -162,6 +166,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -184,6 +189,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -209,6 +215,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -236,6 +243,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -258,6 +266,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -284,6 +293,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -311,6 +321,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -333,6 +344,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -359,6 +371,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -386,6 +399,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -408,6 +422,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -436,6 +451,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -463,6 +479,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {
@@ -485,6 +502,7 @@
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#include "RFXtoRP_PlatformLogCreate.ftl">
}, },
{ {

View File

@@ -24,29 +24,40 @@
] ]
<#break> <#break>
<#-- *********************************************** Action = CommissionsUpdated ******************** --> <#-- *********************************************** Action = CommissionsUpdated ******************** -->
<#case "CommissionsUpdated"> <#case "Updated">
<#assign AddComma = false />
<#assign appointment = eventRP.data /> <#assign appointment = eventRP.data />
[ <#if appointment.AppointmentType == "APPOINTMENT_TYPE_UNLOADING"> [
<#if eventRP.addedCommissions?? && eventRP.addedCommissions!=""> <#if appointment?? && (!(appointment.WMSCreated??) || !appointment.WMSCreated) && appointment.Status?? && appointment.Status.Current?? && appointment.Status.Current.StatusCode?? && appointment.Status.Current.StatusCode == AppointmentStatusCode.APPOINTMENT_0150_ALLOCATION_ERROR>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_create>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentCreated.ftl">
}
<#else>
<#if eventRP.commissionsUpdated>
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING && eventRP.addedUnloadCommissions?? && eventRP.addedUnloadCommissions != "">
<#if eventRP.appointmentCustomFields?has_content> <#if eventRP.appointmentCustomFields?has_content>
{ {
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_number> <#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_number>
"apiRestReflexID" : "${apiRestReflexID}", "apiRestReflexID" : "${apiRestReflexID}",
"datas" : "datas" :
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByNumber.ftl"> <#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByNumber.ftl">
} }
<#else> <#else>
{ {
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_ref> <#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_ref>
"apiRestReflexID" : "${apiRestReflexID}", "apiRestReflexID" : "${apiRestReflexID}",
"datas" : "datas" :
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByRef.ftl"> <#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByRef.ftl">
} }
</#if> </#if>
<#assign AddComma = true />
</#if> </#if>
<#if eventRP.removedCommissions?? && eventRP.removedCommissions!=""> <#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING && eventRP.removedUnloadCommissions?? && eventRP.removedUnloadCommissions!="">
<#if eventRP.addedCommissions?? && eventRP.addedCommissions!=""> <#if AddComma == true>
, ,
</#if> </#if>
<#if eventRP.appointmentCustomFields?has_content> <#if eventRP.appointmentCustomFields?has_content>
@@ -64,32 +75,33 @@
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptDissociationByRef.ftl"> <#include "RPtoRFX_CarrierAppointmentPhysicalReceiptDissociationByRef.ftl">
} }
</#if> </#if>
<#assign AddComma = true />
</#if> </#if>
<#else>
<#stop "Unsupported Appointment Type for Commissions Update">
</#if> </#if>
] <#-- *********************************************** Action = reasonUpdated or slotUpdated ******************** -->
<#break> <#if eventRP.reasonUpdated || eventRP.slotUpdated || eventRP.carrierInformationUpdated>
<#-- *********************************************** Action = SlotUpdated ******************** --> <#if AddComma == true>
<#case "SlotUpdated"> ,
<#assign appointment = eventRP.data /> </#if>
[ <#if eventRP.appointmentCustomFields?has_content>
<#if eventRP.appointmentCustomFields?has_content> {
{ <#assign apiRestReflexID = ApiRestReflexID.appointment_put_update_by_number>
<#assign apiRestReflexID = ApiRestReflexID.appointment_put_update_by_number> "apiRestReflexID" : "${apiRestReflexID}",
"apiRestReflexID" : "${apiRestReflexID}", "datas" :
"datas" : <#include "RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByNumber.ftl">
<#include "RPtoRFX_CarrierAppointmentSlotUpdatedByNumber.ftl"> }
} <#else>
<#else> {
{ <#assign apiRestReflexID = ApiRestReflexID.appointment_put_update_by_ref>
<#assign apiRestReflexID = ApiRestReflexID.appointment_put_update_by_ref> "apiRestReflexID" : "${apiRestReflexID}",
"apiRestReflexID" : "${apiRestReflexID}", "datas" :
"datas" : <#include "RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByRef.ftl">
<#include "RPtoRFX_CarrierAppointmentSlotUpdatedByRef.ftl"> }
} </#if>
<#assign AddComma = true />
</#if> </#if>
] </#if>
]
<#break> <#break>
<#-- *********************************************** Action = SlotUpdated ******************** --> <#-- *********************************************** Action = SlotUpdated ******************** -->
<#case "Canceled"> <#case "Canceled">

View File

@@ -9,7 +9,7 @@
{ {
"appointment_reference": "${eventRP.refid?json_string}", "appointment_reference": "${eventRP.refid?json_string}",
<#switch appointment.AppointmentType> <#switch appointment.AppointmentType>
<#case "APPOINTMENT_TYPE_LOADING"> <#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false", "unloading_appointment" : "false",
"load_appointment" : "true", "load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!=""> <#if appointment.TimeZone?? && appointment.TimeZone!="">
@@ -20,7 +20,7 @@
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if> </#if>
<#break> <#break>
<#case "APPOINTMENT_TYPE_UNLOADING"> <#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true", "unloading_appointment" : "true",
"load_appointment" : "false", "load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!=""> <#if appointment.TimeZone?? && appointment.TimeZone!="">
@@ -35,31 +35,34 @@
<#stop "appointment.AppointmentType not implemented" > <#stop "appointment.AppointmentType not implemented" >
</#switch> </#switch>
<#include "RPtoRFX_CarrierAppointmentDefaultData.ftl"> <#include "RPtoRFX_CarrierAppointmentDefaultData.ftl">
<#if appointment.Commissions??> <#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING >
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_UNLOADING"> <#if appointment.Unloading?? && appointment.Unloading.Projects?? &&
<#if appointment.Commissions[0].OrderID?? && appointment.Commissions[0].OrderID!=""> appointment.Unloading.Projects[0]?? &&
"physical_receipt_list": [ appointment.Unloading.Projects[0].Commissions?? &&
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.value?? && l.value?has_content) as custom> appointment.Unloading.Projects[0].Commissions[0]?? &&
appointment.Unloading.Projects[0].Commissions[0].ExecutionflowID?? &&
appointment.Unloading.Projects[0].Commissions[0].ExecutionflowID!="" >
"physical_receipt_list": [
<#list appointment.Unloading.Projects[0].Commissions?filter(l ->l.ExecutionflowID?? && l.ExecutionflowID !="") as commission>
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.key == commission.ExecutionflowID && l.value?? && l.value?has_content) as custom>
{ {
"receipt_activity": "${custom.value.activity_code?json_string}", "receipt_activity": "${custom.value.activity_code?json_string}",
"originator_code": "${custom.value.originator_code?json_string}", "originator_code": "${custom.value.originator_code?json_string}",
"physical_receipt_reference": "${custom.value.reference?json_string}", "physical_receipt_reference": "${custom.value.reference?json_string}",
"receipt_year": "${custom.value.order_year?json_string}", "receipt_year": "${custom.value.order_year?json_string}",
"receipt_number": "${custom.value.order_number?json_string}" "receipt_number": "${custom.value.order_number?json_string}"
} }
<#sep>,</#sep> <#sep>,</#sep>
</#list> </#list>
], <#sep>,</#sep>
<#else> </#list>
"appointment_designation":"${(appointment.Reason!"")!?json_string}", ],
</#if>
<#else> <#else>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING"> "appointment_designation":"${(appointment.Reason!"")!?json_string}",
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING"> </#if>
"appointment_designation":"${(appointment.Reason!"")?json_string}", <#else>
</#if> <#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_LOADING>
</#if> "appointment_designation":"${(appointment.Reason!"")?json_string}",
</#if> </#if>
</#if> </#if>
"constant_appointment": "false" "constant_appointment": "false"

View File

@@ -0,0 +1,21 @@
<#-- Note : you can use Order Line Metadata, using the define map : Line_MetaData_Map -->
<#-- Note : you can use Order Line Segmentation keys, using the define map : SegmentationKeys_Map -->
<#-- How to use MD or SK map
<#if appointment.CarrierInformation??>
<#assign CarrierInformation_Map = JsonUtil.sequenceToMap(appointment.CarrierInformation, "Key", "Value") />
<#if CarrierInformation_Map["Immatriculation"]??>
<#assign registration_number1 = CarrierInformation_Map["Immatriculation"].String!""/>
"registration_number":"${registration_number1}",
<#else>
"registration_number":"no plate number",
</#if>
</#if>
If your SK is :
Boolean : .Bool
Float : .Float
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
Int : .Int
String : .String
-->

View File

@@ -19,3 +19,23 @@
Int : .Int Int : .Int
String : .String String : .String
--> -->
<#-- Note : you can send url path of appointment to WMS, using this below code -->
<#--
<#assign appointmentPathURL = JsonUtil.getAppointmentPathURL(eventRP.site,eventRP.refid)>
<#assign payLoad = '{ "Header": {"ProjectID": "${projectRP!""}"},"IsOnce": false,"IsPublic": true,"TimeToLive": "0","URL": "${appointmentPathURL}"}' />
<#assign projectGetTinyURL = QueryApiReflexPlatformID.ProjectGetTinyURL>
<#assign response = QueryApiReflexPlatformCall.call(projectGetTinyURL,payLoad) />
<#assign tinyURL = JsonUtil.jsonToMap(response)>
<#if tinyURL?? && tinyURL.TinyURL?? >
"comment_list": [
{
"line_number": 1,
"group_code": "SCN",
"text": "${tinyURL.TinyURL.URL?json_string}"
}
],
</#if>
-->

View File

@@ -10,8 +10,14 @@
"payload" : "payload" :
{ {
<#assign executionflowCustomFields = eventRP.executionflowCustomFields > <#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign addedCommissions = eventRP.addedUnloadCommissions />
<#else>
<#assign addedCommissions = eventRP.addedLoadCommissions />
</#if>
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.addedCommissions as addedCommission> <#list addedCommissions?filter(l -> l.ExecutionflowID??) as addedCommission>
{ {
"receipt_activity": "${executionflowCustomFields[addedCommission.ExecutionflowID].activity_code?json_string}", "receipt_activity": "${executionflowCustomFields[addedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[addedCommission.ExecutionflowID].originator_code?json_string}", "originator_code": "${executionflowCustomFields[addedCommission.ExecutionflowID].originator_code?json_string}",

View File

@@ -9,8 +9,14 @@
"payload" : "payload" :
{ {
<#assign executionflowCustomFields = eventRP.executionflowCustomFields > <#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign addedCommissions = eventRP.addedUnloadCommissions />
<#else>
<#assign addedCommissions = eventRP.addedLoadCommissions />
</#if>
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.addedCommissions as addedCommission> <#list addedCommissions?filter(l -> l.ExecutionflowID??) as addedCommission>
{ {
"receipt_activity": "${executionflowCustomFields[addedCommission.ExecutionflowID].activity_code?json_string}", "receipt_activity": "${executionflowCustomFields[addedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[addedCommission.ExecutionflowID].originator_code?json_string}", "originator_code": "${executionflowCustomFields[addedCommission.ExecutionflowID].originator_code?json_string}",

View File

@@ -10,8 +10,14 @@
"payload" : "payload" :
{ {
<#assign executionflowCustomFields = eventRP.executionflowCustomFields > <#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign removedCommissions = eventRP.removedUnloadCommissions />
<#else>
<#assign removedCommissions = eventRP.removedLoadCommissions />
</#if>
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.removedCommissions as removedCommission> <#list removedCommissions?filter(l -> l.ExecutionflowID??) as removedCommission>
{ {
"receipt_activity": "${executionflowCustomFields[removedCommission.ExecutionflowID].activity_code?json_string}", "receipt_activity": "${executionflowCustomFields[removedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[removedCommission.ExecutionflowID].originator_code?json_string}", "originator_code": "${executionflowCustomFields[removedCommission.ExecutionflowID].originator_code?json_string}",

View File

@@ -9,8 +9,14 @@
"payload" : "payload" :
{ {
<#assign executionflowCustomFields = eventRP.executionflowCustomFields > <#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign removedCommissions = eventRP.removedUnloadCommissions />
<#else>
<#assign removedCommissions = eventRP.removedLoadCommissions />
</#if>
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.removedCommissions as removedCommission> <#list removedCommissions?filter(l -> l.ExecutionflowID??) as removedCommission>
{ {
"receipt_activity": "${executionflowCustomFields[removedCommission.ExecutionflowID].activity_code?json_string}", "receipt_activity": "${executionflowCustomFields[removedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[removedCommission.ExecutionflowID].originator_code?json_string}", "originator_code": "${executionflowCustomFields[removedCommission.ExecutionflowID].originator_code?json_string}",

View File

@@ -9,10 +9,10 @@
}, },
"payload" : "payload" :
{ {
<#switch appointment.AppointmentType> "unloading_appointment" : "${eventRP.appointmentCustomFields.unloading!"false"?json_string}",
<#case "APPOINTMENT_TYPE_LOADING"> "load_appointment" : "${eventRP.appointmentCustomFields.loading!"false"?json_string}",
"unloading_appointment" : "false", <#switch appointment.AppointmentType>
"load_appointment" : "true", <#case AppointmentType.APPOINTMENT_TYPE_LOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!=""> <#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
@@ -20,11 +20,9 @@
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}", "planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if> </#if>
<#break> <#break>
<#case "APPOINTMENT_TYPE_UNLOADING"> <#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true", <#if appointment.TimeZone?? && appointment.TimeZone!="">
"load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else> <#else>

View File

@@ -0,0 +1,39 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments/{appointment_reference}",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_reference":"${eventRP.refid?json_string}"
},
"payload" :
{
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false",
"load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true",
"load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
"appointment_designation":"${(appointment.Reason!"")!?json_string}"
}
}

View File

@@ -0,0 +1,39 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/appointment_years/{appointment_year}/appointment_numbers/{appointment_number}",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_year":"${eventRP.appointmentCustomFields.year?json_string}",
"appointment_number":"${eventRP.appointmentCustomFields.number?json_string}"
},
"payload" :
{
<#include "RPtoRFX_CarrierAppointmentDataUpdated.ftl">
"unloading_appointment" : "${eventRP.appointmentCustomFields.unloading!"false"?json_string}",
"load_appointment" : "${eventRP.appointmentCustomFields.loading!"false"?json_string}",
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
"appointment_designation":"${(appointment.Reason!"")!?json_string}"
}
}

View File

@@ -8,8 +8,9 @@
}, },
"payload" : "payload" :
{ {
<#include "RPtoRFX_CarrierAppointmentDataUpdated.ftl">
<#switch appointment.AppointmentType> <#switch appointment.AppointmentType>
<#case "APPOINTMENT_TYPE_LOADING"> <#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false", "unloading_appointment" : "false",
"load_appointment" : "true", "load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!=""> <#if appointment.TimeZone?? && appointment.TimeZone!="">
@@ -20,9 +21,9 @@
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if> </#if>
<#break> <#break>
<#case "APPOINTMENT_TYPE_UNLOADING"> <#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true", "unloading_appointment" : "true",
"load_appointment" : "false", "load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!=""> <#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",

View File

@@ -1 +1 @@
1.2.56+1 1.2.60+3