Compare commits

...

136 Commits

Author SHA1 Message Date
7bf0d63d71 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!276
2026-04-28 08:20:10 +00:00
7942a0dfc0 Release 1.2.60+4 2026-04-28 10:17:47 +02:00
16a6ad77c1 Merge branch 'release-1.2-SCPN1-10682' into 'release/1.2'
release-1.2-SCPN1-10682

See merge request r-d-technique/tiers/reflex-wms-connector!275
2026-04-28 08:12:57 +00:00
8d87e02969 SCPN1-10682
(cherry picked from commit 51fdb6d38250095825f9d31d1cfc9d52e3e4bb1a)
2026-04-28 09:53:57 +02:00
1aea681783 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!272
2026-04-24 09:14:05 +00:00
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
f8b0538588 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!269
2026-04-23 07:12:27 +00: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
b594dc3f7e Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 into main 1.2

See merge request r-d-technique/tiers/reflex-wms-connector!266
2026-04-22 07:43:18 +00: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
8721201385 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!262
2026-04-20 12:24:33 +00: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
21f622dfa2 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!255
2026-03-04 14:00:41 +00: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
c472b1f7f5 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!250
2026-03-02 14:19:33 +00: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
c91019ce8c Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!240
2026-02-05 16:18:14 +00:00
c542805488 Release 1.2.58+1 2026-02-05 17:13:36 +01:00
e0e2cf1c7a Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!237
2026-02-05 09:19:16 +00: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
31345b7911 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!233
2026-01-27 07:56:40 +00: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
12c27f5a66 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!229
2026-01-22 14:40:48 +00:00
7d55f08194 Release 1.2.56+1 2026-01-22 15:34:14 +01:00
f96d8b9f09 Release 1.2.55+1 2026-01-22 15:32:21 +01:00
642ce4e4e2 Merge branch 'release1.2-fixv12' into 'release/1.2'
release1.2-fixv12 into release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!228
2026-01-22 13:20:11 +00:00
50dca97d7a Merge branch 'develop-1.2' into release1.2-fixv12 2026-01-21 17:19:37 +01:00
ff5d6bc4d3 SCPN1-10068 2026-01-21 14:48:58 +01:00
f49eb55d6a Merge branch 'develop-1.2' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop-1.2 2026-01-21 10:56:20 +01:00
2ed20478c4 SCPN1-10068 2026-01-21 10:56:14 +01:00
d3cb8ecc15 rollback 2026-01-20 15:09:51 +01:00
e53d81e534 fix error syntax 2026-01-16 16:55:43 +01:00
2ece576560 SCPN1-10040 2026-01-15 17:21:47 +01:00
629d465343 SCPN1-10040 2026-01-15 15:37:58 +01:00
0a34359e12 rollback 2026-01-15 09:31:58 +01:00
d908f7db77 SCPN1-9991 2026-01-14 11:03:00 +01:00
dc52629304 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!225
2026-01-14 08:27:42 +00:00
ca9706e5aa SCPN1-9682 2026-01-14 09:05:37 +01:00
5977dc3af0 hsrAntRec
(cherry picked from commit efddfdc821)
2026-01-13 18:09:24 +01:00
4496a4a2ce hsrAntRec 2026-01-13 18:01:25 +01:00
7e57d91cb6 The loading and unloading appointment is not yet managed. 2026-01-09 15:37:25 +01:00
7ed6f794a6 Merge branch 'release/1.2' into 'main-1.2'
release/1.2 into main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!222
2026-01-08 17:01:00 +00:00
6e89261c27 SCPN1-9943
(cherry picked from commit a6fec0c333)
2026-01-08 15:29:55 +01:00
d544571d1d Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main1.2

See merge request r-d-technique/tiers/reflex-wms-connector!218
2026-01-08 09:29:58 +00:00
eaa14b614a Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main1.2

See merge request r-d-technique/tiers/reflex-wms-connector!217
2026-01-08 07:55:40 +00:00
8205905ddd Merge branch 'release/1.2' into 'main-1.2'
Release/1.2

See merge request r-d-technique/tiers/reflex-wms-connector!212
2025-12-23 14:39:42 +00:00
915fae567d Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main1.2

See merge request r-d-technique/tiers/reflex-wms-connector!209
2025-12-19 12:56:18 +00:00
677abd1d2d Merge branch 'release/1.2' into 'main-1.2'
SCPN1-9254

See merge request r-d-technique/tiers/reflex-wms-connector!204
2025-12-18 08:07:46 +00:00
ae07548499 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main1.2

See merge request r-d-technique/tiers/reflex-wms-connector!191
2025-12-03 09:20:38 +00:00
42fbefc365 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main1.2

See merge request r-d-technique/tiers/reflex-wms-connector!185
2025-11-26 08:43:12 +00:00
dfdf51657b Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main1.2

See merge request r-d-technique/tiers/reflex-wms-connector!160
2025-11-06 10:10:42 +00:00
3ec2f8f9bf Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main 1.2

See merge request r-d-technique/tiers/reflex-wms-connector!154
2025-10-29 09:50:21 +00:00
639bbdbff5 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main 1.2

See merge request r-d-technique/tiers/reflex-wms-connector!153
2025-10-24 08:42:10 +00:00
3304d944e5 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main 1.2

See merge request r-d-technique/tiers/reflex-wms-connector!150
2025-10-16 13:49:13 +00:00
d63a3d7a50 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 to main 1.2

See merge request r-d-technique/tiers/reflex-wms-connector!143
2025-09-26 07:23:49 +00:00
c779d5305c Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!137
2025-09-09 13:54:26 +00:00
0f7990b20e Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!134
2025-09-09 07:30:44 +00:00
1df16adb0a Merge branch 'release/1.2' into 'main-1.2'
Release/2.0 -> Main-2.0

See merge request r-d-technique/tiers/reflex-wms-connector!130
2025-09-08 08:55:21 +00:00
a939e6067e Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!126
2025-08-26 14:42:01 +00:00
b66ec8c589 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!122
2025-07-10 09:35:24 +00:00
42c5b2943d Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!114
2025-06-20 15:58:53 +00:00
ac5f5d1b88 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!112
2025-05-27 07:59:40 +00:00
cd1cc00f78 Merge branch 'release/1.2' into 'main-1.2'
Release/1.2 -> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!108
2025-05-13 12:53:12 +00:00
703ad28c19 Merge branch 'release/1.2' into 'main-1.2'
MR-> Main-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!105
2025-04-24 15:03:22 +00:00
48 changed files with 980 additions and 364 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,10 +24,15 @@
<#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.saved_picture_path?json_string}"
<#else>
<#if item.url?? && item.url!="" && item.url?starts_with("http") == true>
, ,
"PhotoURI": "${item.url?json_string}" "PhotoURI": "${item.url?json_string}"
</#if> </#if>
</#if>
<#-- Loop for the Logistical Variants - LV --> <#-- Loop for the Logistical Variants - LV -->
<#if item.logistical_variant_list?? && (item.logistical_variant_list?size == item.logistical_variant_list?filter(l ->l??)?size)> <#if item.logistical_variant_list?? && (item.logistical_variant_list?size == item.logistical_variant_list?filter(l ->l??)?size)>

View File

@@ -5,11 +5,19 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if> </#if>
</#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -5,10 +5,18 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",

View File

@@ -5,10 +5,18 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",

View File

@@ -5,10 +5,18 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",

View File

@@ -5,10 +5,18 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",

View File

@@ -5,10 +5,18 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",

View File

@@ -5,10 +5,18 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}", "RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else> <#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}", "RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${ref_datetime}", "DateTime": "${ref_datetime}",

View File

@@ -9,38 +9,33 @@
<#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>
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt = JsonUtil.jsonToMap(dataRfx)>
<#switch cloudEventMsg.action> <#switch cloudEventMsg.action>
<#case "C"> <#case "C">
<#-- *********************************************** Action = CREATE or UPDATE ******************** --> <#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt = JsonUtil.jsonToMap(dataRfx)>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteForceBookAppointment> <#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceBookAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl"> <#include "RFXtoRP_HsrCarrierApt_BookingForceBookAppointment.ftl">
} },
<#if (carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" && (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-"))) || (carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" && (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-"))) || (carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true" && (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 "One of the datetime fields of appointment is not initialized" >
<#else>
,
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl"> <#include "RFXtoRP_HsrCarrierApt_CarrierExpected.ftl">
} }
</#if>
] ]
<#break> <#break>
<#case "U"> <#case "U">
<#-- *********************************************** Action = Update ********************--> <#-- *********************************************** Action = Update ********************-->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt = JsonUtil.jsonToMap(dataRfx)>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated>
@@ -49,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>
@@ -119,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>
@@ -149,15 +134,13 @@
<#break> <#break>
<#case "D"> <#case "D">
<#-- *********************************************** Action = Delete ******************** --> <#-- *********************************************** Action = Delete ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt = JsonUtil.jsonToMap(dataRfx)>
[ [
<#-- 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,6 +42,14 @@
{ {
"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}"
} }
] ]
}, },

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,23 +1,60 @@
[ [
{ {
<#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)}"
},
"ID":{
"RefDate": {
"DateTime": "${update_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}, },
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#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": [
{
"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": {
<#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-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")> <#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" > <#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
@@ -48,63 +85,73 @@
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" > <#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
</#if> </#if>
<#else> <#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN> <#stop "Appointment type not supported" >
<#assign duration = 0 />
</#if> </#if>
</#if> </#if>
</#if> </#if>
"AppointmentType": "${appointmentType}", "TimeZone":"${time_zone_rfx}",
"Emails": ["${carrier_apt.creation_user_email?json_string}"], <#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"))>
"CustomFields": [ "Unloading" :
{ {
"Key": "depot", "Projects" : [
"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}"
}
],
<#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)>
"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}",
<#include "RFXtoRP_HsrCarrierApt_Quantities.ftl"> "PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}<#sep>,</#sep> }<#sep>,</#sep>
</#list> </#list>
], ],
"ProjectID" : "${projectRP}"
}]
},
"Reason": "",
<#else> <#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_LOADING>
"Loading" :
{
"Projects" : [
{
"Commissions": [ "Commissions": [
{ {
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}", "ProjectID": "${projectRP}",
<#include "RFXtoRP_HsrCarrierApt_Quantities.ftl"> "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,8 +166,7 @@
</#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" >
@@ -140,9 +186,12 @@
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" > <#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if> </#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}" "StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#stop "Appointment type not supported" >
</#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.last_update_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>
@@ -134,7 +135,12 @@
"StartDateTime": "${carrier_apt.planned_load_start_datetime}" "StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else> <#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#stop "Not managed"> <#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> </#if>
</#if> </#if>

View File

@@ -1,82 +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}"
</#if>
</#if>
</#if>
}]
}
]

View File

@@ -9,6 +9,32 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"CustomFields": [
{
"Key": "depot_code",
"Value": "${preparation_order.physical_depot_code?trim?json_string}"
},
{
"Key": "activity_code",
"Value": "${preparation_order.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${preparation_order.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${preparation_order.originator_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${preparation_order.preparation_order_year}"
},
{
"Key": "order_number",
"Value": "${preparation_order.preparation_order_number}"
}
],
"RefID": "${preparation_order.originator_reference?trim?json_string}", "RefID": "${preparation_order.originator_reference?trim?json_string}",
"RefDate": { "RefDate": {
"DateTime": "${pro_creation_datetime}", "DateTime": "${pro_creation_datetime}",
@@ -53,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

@@ -9,6 +9,32 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"CustomFields": [
{
"Key": "depot_code",
"Value": "${receipt.physical_depot_code?trim?json_string}"
},
{
"Key": "activity_code",
"Value": "${receipt.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${receipt.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${receipt.receipt_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${receipt.receipt_year}"
},
{
"Key": "order_number",
"Value": "${receipt.receipt_number}"
}
],
<#if receipt.receipt_reference?? && receipt.receipt_reference!=""> <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.receipt_reference?trim?json_string}", "RefID": "${receipt.receipt_reference?trim?json_string}",
<#else> <#else>

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,10 +24,20 @@
] ]
<#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>
@@ -43,9 +53,10 @@
<#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>
@@ -64,31 +75,32 @@
<#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_CarrierAppointmentSlotUpdatedByNumber.ftl"> <#include "RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByNumber.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_CarrierAppointmentSlotUpdatedByRef.ftl"> <#include "RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByRef.ftl">
} }
</#if> </#if>
<#assign AddComma = true />
</#if>
</#if>
] ]
<#break> <#break>
<#-- *********************************************** Action = SlotUpdated ******************** --> <#-- *********************************************** Action = SlotUpdated ******************** -->

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,33 +35,36 @@
<#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]?? &&
appointment.Unloading.Projects[0].Commissions?? &&
appointment.Unloading.Projects[0].Commissions[0]?? &&
appointment.Unloading.Projects[0].Commissions[0].ExecutionflowID?? &&
appointment.Unloading.Projects[0].Commissions[0].ExecutionflowID!="" >
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.value?? && l.value?has_content) as custom> <#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>
</#list>
], ],
<#else> <#else>
"appointment_designation":"${(appointment.Reason!"")!?json_string}", "appointment_designation":"${(appointment.Reason!"")!?json_string}",
</#if> </#if>
<#else> <#else>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING"> <#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_LOADING>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING">
"appointment_designation":"${(appointment.Reason!"")?json_string}", "appointment_designation":"${(appointment.Reason!"")?json_string}",
</#if> </#if>
</#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" :
{ {
"unloading_appointment" : "${eventRP.appointmentCustomFields.unloading!"false"?json_string}",
"load_appointment" : "${eventRP.appointmentCustomFields.loading!"false"?json_string}",
<#switch appointment.AppointmentType> <#switch appointment.AppointmentType>
<#case "APPOINTMENT_TYPE_LOADING"> <#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false",
"load_appointment" : "true",
<#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)}",
@@ -21,9 +21,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",
"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

@@ -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,7 +21,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!="">

View File

@@ -1 +1 @@
1.2.54+3 1.2.60+4