Compare commits

...

673 Commits

Author SHA1 Message Date
eaaa9bbea5 SCPN1-10534 2026-04-03 17:01:28 +02:00
6c0deafd93 SCPN1-10534 2026-04-03 16:54:48 +02:00
62cdd584d3 SCPN1-10534 2026-04-03 16:36:54 +02:00
97f93a1f26 SCPN1-10534 2026-04-03 16:32:02 +02:00
ee7e5bb8c9 SCPN1-10534 2026-04-03 16:22:31 +02:00
4e3162556c SCPN1-10402 2026-04-03 14:30:18 +02:00
20437cace5 SCPN1-10534 2026-04-02 11:48:30 +02:00
93effa78ff SCPN1-10402 2026-03-31 17:57:33 +02:00
085f0ae4f8 Merge branch 'SCPN1-10402-SCPN1-10471-develop' into 'develop'
SCPN1-10471

Closes SCPN1-10402

See merge request r-d-technique/tiers/reflex-wms-connector!259
2026-03-31 06:54:39 +00:00
3d585203ef SCPN1-10402 2026-03-31 08:53:18 +02:00
57576b1ac0 SCPN1-10443 2026-03-26 14:14:31 +01:00
83260c7ac5 SCPN1-10443 2026-03-26 11:37:46 +01:00
8ebaa8e15a https://pid.hardis.fr/jira/browse/SCPN1-10443 2026-03-26 11:28:56 +01:00
f602f74da1 SCPN1-10471
SCPN1-10402
2026-03-24 17:10:45 +01:00
37495ca141 SCPN1-9218 2026-03-24 17:07:31 +01:00
217a2680de SCPN1-10443 2026-03-20 13:27:45 +01:00
6fd708cf58 SCPN1-10443 2026-03-19 17:28:52 +01:00
e5482ad09c SCPN1-10443 2026-03-19 17:18:31 +01:00
33ea0af1b9 SCPN1-10443 2026-03-19 17:10:10 +01:00
f7394986c2 SCPN1-10443 2026-03-19 16:57:33 +01:00
6ae3af7139 SCPN1-10443 2026-03-19 16:37:35 +01:00
c89c74d2e2 SCPN1-10443 2026-03-19 16:26:24 +01:00
d02e6feead SCPN1-10443 2026-03-19 14:35:06 +01:00
6ce6ac0b8d SCPN1-10443 2026-03-19 14:30:00 +01:00
647e2d45af SCPN1-10443 2026-03-19 14:15:15 +01:00
f26dda887a SCPN1-10459 2026-03-19 11:51:15 +01:00
9dd59d75f3 SCPN1-10443 2026-03-19 11:34:25 +01:00
48be4322cb SCPN1-10443 2026-03-19 11:14:45 +01:00
07a50a71d9 SCPN1-10443 2026-03-18 11:13:55 +01:00
81c6dec4f2 SCPN1-10414 2026-03-11 11:29:53 +01:00
64fc9f3e15 SCPN1-10408 2026-03-10 10:42:51 +01:00
a43e59f7cb Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!253
2026-03-02 15:18:38 +00:00
eea2a41313 SCPN1-10253 2026-03-02 16:18:04 +01:00
2a908a85d7 SCPN1-10253 2026-03-02 12:10:01 +01:00
70ec04c65a Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!247
2026-02-27 15:40:15 +00:00
4784cc2bc1 SCPN1-10253 2026-02-27 16:37:25 +01:00
ac5219b94a SCPN1-10253 2026-02-27 16:31:14 +01:00
127a662057 SCPN1-10253 2026-02-27 09:45:31 +01:00
da53dc05fc Merge branch 'SCPN1-10253-develop' into 'develop'
Resolve SCPN1-10253 "Develop"

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!246
2026-02-26 14:50:20 +00:00
4823bc6fed Merge branch 'develop' into SCPN1-10253-develop 2026-02-26 15:49:25 +01:00
b1577d1791 SCPN1-10253 2026-02-26 15:48:51 +01:00
1352a36a21 Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!245
2026-02-26 14:15:28 +00:00
57113f4c51 SCPN1-10253 2026-02-26 15:15:11 +01:00
1de2a47dae Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!244
2026-02-26 08:00:33 +00:00
02de559235 SCPN1-10253 2026-02-25 18:47:58 +01:00
b1527f9e7e SCPN1-10294 2026-02-25 11:04:29 +01:00
7bb190e4f5 SCPN1-10294 2026-02-24 15:04:36 +01:00
c561f9674b SCPN1-10294 2026-02-24 11:37:02 +01:00
d2b5eeafdf SCPN1-10276 2026-02-24 09:37:32 +01:00
d1c3bb9d16 Merge branch 'SCPN1-10276-develop' into 'develop'
SCPN1-10276

Closes SCPN1-10276

See merge request r-d-technique/tiers/reflex-wms-connector!243
2026-02-20 15:11:30 +00:00
dca0fa7fe4 SCPN1-10276 2026-02-20 13:52:18 +01:00
c3364d77a2 SCPN1-10244 2026-02-16 17:11:48 +01:00
e24e537650 SCPN1-9965 2026-02-16 11:48:56 +01:00
71bd4918a9 SCPN1-9965
(cherry picked from commit 7c4c7ea395)
2026-02-13 10:58:36 +01:00
8974632c22 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
2026-02-13 09:49:18 +00:00
cb59aa28b5 SCPN1-9965 2026-02-13 10:48:40 +01:00
95f07b1ae0 SCPN1-10100 2026-02-02 11:25:32 +01:00
650990b045 SCPN1-10100 2026-01-30 16:02:20 +01:00
5b316bb395 SCPN1-10100 2026-01-28 16:55:00 +01:00
24d7ad81bd SCPN1-10100 2026-01-28 16:43:49 +01:00
456b304879 SCPN1-10100 2026-01-28 16:34:14 +01:00
1772ed970b SCPN1-10100 2026-01-28 14:48:31 +01:00
8d4eb4ec4c SCPN1-10100 2026-01-28 14:39:01 +01:00
04a72fcda4 SCPN1-10100 2026-01-28 11:51:58 +01:00
264257fcd0 SCPN1-10100 2026-01-27 18:39:34 +01:00
944f3a2da5 SCPN1-10100 2026-01-27 18:32:34 +01:00
1c07a8dd77 SCPN1-10100 2026-01-27 18:23:15 +01:00
0f4191012d SCPN1-10100 2026-01-27 17:12:04 +01:00
27ea4f3795 SCPN1-10100 2026-01-27 16:06:40 +01:00
5492139935 SCPN1-10100 2026-01-27 15:01:08 +01:00
c1ea6e46af SCPN1-10100 2026-01-27 14:40:05 +01:00
efeb0c0185 SCPN1-10100 2026-01-27 14:34:06 +01:00
91467086c4 SCPN1-10100 2026-01-27 14:31:24 +01:00
b68855504a SCPN1-10100 2026-01-27 14:03:17 +01:00
2d022ccf47 SCPN1-10100 2026-01-27 13:31:55 +01:00
9b5eec0f7f SCPN1-10100 2026-01-27 12:05:58 +01:00
e12235319e SCPN1-10100 2026-01-27 12:02:28 +01:00
289b8c3fc1 SCPN1-10100 2026-01-27 10:14:11 +01:00
c324773fad SCPN1-10095 2026-01-26 16:57:23 +01:00
5552265833 SCPN1-10095 2026-01-26 16:52:31 +01:00
8fe3dd364c SCPN1-10095 2026-01-26 15:33:35 +01:00
833821a8a3 SCPN1-10068 2026-01-21 14:50:17 +01:00
c556124565 SCPN1-10068 2026-01-21 10:55:03 +01:00
83d1fbfcaa RDV 2026-01-19 16:11:06 +01:00
509d47a979 SCPN1-10047 2026-01-19 13:53:33 +01:00
8128e55ede SCPN1-10047 2026-01-19 11:40:13 +01:00
0ef7219e29 SCPN1-10047 2026-01-19 11:36:09 +01:00
9a130211ba SCPN1-10047 2026-01-16 17:16:19 +01:00
6def04b358 SCPN1-10047 2026-01-16 17:14:20 +01:00
cd63035277 SCPN1-10047 2026-01-16 17:04:51 +01:00
2f04415f2e SCPN1-10047 2026-01-16 17:00:58 +01:00
8821916dc6 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2026-01-16 16:58:41 +01:00
474061200b SCPN1-10047 2026-01-16 16:58:36 +01:00
2098be0ce7 fix error syntax 2026-01-16 16:58:08 +01:00
e8bcece299 SCPN1-10047 2026-01-16 16:20:16 +01:00
cff6c1fd3f SCPN1-10040 2026-01-15 15:27:29 +01:00
46260b8241 rollback
(cherry picked from commit 0a34359e12)
2026-01-15 09:32:15 +01:00
3e3091f194 SCPN1-9991 2026-01-14 11:56:56 +01:00
efddfdc821 hsrAntRec 2026-01-13 18:09:02 +01:00
e03da2db8d hsrAntRec
(cherry picked from commit 4496a4a2ce)
2026-01-13 18:01:42 +01:00
f5c8640d11 The loading and unloading appointment is not yet managed.
(cherry picked from commit 7e57d91cb6)
2026-01-09 15:37:48 +01:00
a6fec0c333 SCPN1-9943 2026-01-08 15:29:01 +01:00
6bdd925601 rdz 2026-01-07 16:02:19 +01:00
9e8e20f6ce RDV 2026-01-07 14:08:07 +01:00
5006beed8c RDV 2026-01-07 11:50:10 +01:00
e2eb764e2e RDV 2026-01-07 09:08:13 +01:00
6b86a61015 RDV 2026-01-06 16:42:13 +01:00
b1c46cd0f1 RDV 2026-01-06 16:29:08 +01:00
e7c3154c56 SCPN1-9905 2026-01-06 14:53:53 +01:00
706c73a530 RDV 2026-01-06 14:37:00 +01:00
955928a754 RDV 2026-01-05 17:23:25 +01:00
ec76673e95 RDV 2026-01-05 16:40:32 +01:00
e6cd04b6bf RDV 2026-01-05 16:37:45 +01:00
2e3cd66843 RDV 2026-01-05 16:05:59 +01:00
2987a4fb38 RDV 2026-01-05 15:58:24 +01:00
d4a389737e RDV 2026-01-05 15:44:34 +01:00
3a14a46b18 RDV 2026-01-05 15:41:23 +01:00
808b2072ce RDV 2026-01-05 14:55:37 +01:00
9c22f7786f RDV 2026-01-02 09:30:45 +01:00
dcbd037b22 RDV 2025-12-23 16:07:44 +01:00
e1b1b8ad2d RDV 2025-12-23 15:23:43 +01:00
f66912121e RDV 2025-12-23 15:17:25 +01:00
b361f1fcf7 RDV 2025-12-23 14:54:53 +01:00
51b5fd7d17 RDV 2025-12-23 13:59:33 +01:00
e1d6e3ca3f RDV 2025-12-23 13:56:04 +01:00
861cd70eb9 RDV 2025-12-23 12:11:23 +01:00
b14e6c21ff RDV 2025-12-23 12:03:15 +01:00
c352775cd4 RDV 2025-12-23 11:54:02 +01:00
f1b0d1a5d4 RDV 2025-12-23 11:53:50 +01:00
fad0c31ae8 RDV 2025-12-23 11:52:49 +01:00
f81591371f RDV 2025-12-23 11:43:58 +01:00
7d0d4d5538 RDV 2025-12-23 11:38:32 +01:00
481bbcb1af RDV 2025-12-23 11:31:35 +01:00
6e4cc5549a RDV 2025-12-23 11:12:41 +01:00
ce415efc4e RDV 2025-12-23 10:30:55 +01:00
a6262045f4 RDV 2025-12-23 10:15:16 +01:00
3a7cfb555f RDV 2025-12-23 09:33:10 +01:00
249f9e3fbe RDV 2025-12-22 16:33:31 +01:00
3bd0cd26fd RDV 2025-12-22 16:27:11 +01:00
369a8b7e10 RDV 2025-12-22 16:23:47 +01:00
a3fc98c8d9 RDV 2025-12-22 16:07:50 +01:00
613cfcd377 RDV 2025-12-22 15:54:53 +01:00
c0bec9085b RDV 2025-12-22 15:50:33 +01:00
72143d38bd RDV 2025-12-22 15:48:26 +01:00
4faf7a3753 RDV 2025-12-22 15:35:21 +01:00
6ae403817f RDV 2025-12-22 15:28:42 +01:00
a661bcc5e6 RDV 2025-12-22 15:09:49 +01:00
82c4aea28e RDV 2025-12-22 11:30:31 +01:00
420d1cd0ef RDV 2025-12-22 10:28:09 +01:00
3d957d8572 RDV 2025-12-19 10:22:51 +01:00
edd5562ed5 RDV 2025-12-19 09:44:37 +01:00
0917a0b435 RDV 2025-12-18 10:23:24 +01:00
f0145706a6 RDV 2025-12-17 21:52:57 +01:00
190d484c9b RDV 2025-12-17 21:02:25 +01:00
2603c4ee27 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!200
2025-12-17 16:46:39 +00:00
eea8276d78 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!199
2025-12-17 16:45:44 +00:00
437a39f115 modif sur les rdz 2025-12-17 17:44:23 +01:00
b2afedf9f8 modif sur les rdz 2025-12-17 17:24:26 +01:00
a3283f5531 RDV 2025-12-17 17:23:59 +01:00
608bbb4aee RDV 2025-12-17 17:16:45 +01:00
793abba25f RDV 2025-12-17 17:00:04 +01:00
0ac201dbc5 RDV 2025-12-17 13:29:07 +01:00
1006b619d8 RDV 2025-12-17 09:59:24 +01:00
9d3c536993 RDV 2025-12-17 09:48:14 +01:00
95ba5b5990 RDV 2025-12-17 09:31:47 +01:00
29aa9fa187 RDV 2025-12-17 09:31:24 +01:00
68e695c084 RDV 2025-12-17 08:57:15 +01:00
91d134d02d RDV 2025-12-16 17:49:00 +01:00
f46aa46ae4 RDV 2025-12-16 17:24:58 +01:00
e73fb15ffe RDV 2025-12-16 17:13:31 +01:00
3504515b03 RDV 2025-12-16 16:56:47 +01:00
55c3d24f79 RDV 2025-12-16 16:41:29 +01:00
d6331bd8ca RDV 2025-12-16 11:49:36 +01:00
32c47dcf22 RDV 2025-12-16 11:46:18 +01:00
574cc16f10 RDV 2025-12-16 11:36:07 +01:00
0db8396224 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-16 11:30:21 +01:00
f242bf0d95 RDV 2025-12-16 11:30:16 +01:00
80e25c18d1 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!197
2025-12-16 10:18:03 +00:00
f7d10368f2 modif sur les rdz 2025-12-16 11:17:22 +01:00
59d170c599 RDV 2025-12-16 11:17:02 +01:00
17ae3b23bf rdv 2025-12-16 10:37:07 +01:00
7f3d3abb08 RDV 2025-12-16 10:33:00 +01:00
29e35d8ed1 RDV 2025-12-16 10:24:29 +01:00
dbb4a21e66 RDV 2025-12-15 17:14:37 +01:00
34133aabec RDV 2025-12-15 16:16:19 +01:00
cd7f2ecb22 RDV 2025-12-15 15:53:57 +01:00
67fb97753d RDV 2025-12-15 15:40:35 +01:00
c654ef5cf9 RDV 2025-12-15 15:38:17 +01:00
8caed06a9e RDV 2025-12-15 15:31:42 +01:00
c15b087c68 RDV 2025-12-15 15:15:04 +01:00
84bb2ca294 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!196
2025-12-12 17:15:37 +00:00
ecb0ede86e modif sur les rdz 2025-12-12 18:15:09 +01:00
540a6c9da6 RDV 2025-12-12 17:05:09 +01:00
21516ad815 RDV 2025-12-12 16:57:47 +01:00
a4b2fb2eef RDV 2025-12-12 16:48:11 +01:00
8f66226519 RDV 2025-12-12 15:30:21 +01:00
f0f0078e08 RDV 2025-12-12 15:18:00 +01:00
85e1dfd7d3 RDV 2025-12-12 15:15:21 +01:00
51198beafd RDV 2025-12-12 15:02:57 +01:00
503481e410 RDV 2025-12-12 14:57:08 +01:00
57db370c4c RDV 2025-12-12 14:54:21 +01:00
c47da0ae86 RDV 2025-12-12 14:49:32 +01:00
fbd3e74906 RDV 2025-12-12 14:39:20 +01:00
de2a95e83c RDV 2025-12-12 14:32:13 +01:00
ca1989b91a RDV 2025-12-12 14:08:55 +01:00
863253b7e0 RDV 2025-12-12 11:20:31 +01:00
a75167d7f0 RDV 2025-12-11 16:16:13 +01:00
108d29b5b3 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-11 15:49:27 +01:00
be4dcf11f6 RDV 2025-12-11 15:49:22 +01:00
ce9e528b70 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!195
2025-12-11 13:31:32 +00:00
261549ed60 modif sur les rdz 2025-12-11 14:28:51 +01:00
825ca2bc54 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!194
2025-12-11 13:05:15 +00:00
9c5741cc7f modif sur les rdz 2025-12-11 14:03:56 +01:00
0113829f9b RDV 2025-12-10 18:57:29 +01:00
08e1ac8c11 RDV 2025-12-10 18:46:27 +01:00
18c8a344bf RDV 2025-12-10 18:40:28 +01:00
87a120bb55 RDV 2025-12-10 18:36:58 +01:00
b1d66f66aa RDV 2025-12-10 18:35:04 +01:00
b0e231a38d RDV 2025-12-10 18:23:52 +01:00
e8551aa698 RDV 2025-12-10 18:00:14 +01:00
b24fe76a81 RDV 2025-12-10 14:16:46 +01:00
26e143efb0 RDV 2025-12-10 11:10:47 +01:00
65b34e6fe4 RDV 2025-12-10 11:08:40 +01:00
cb5f3aaa4e RDV 2025-12-10 11:02:43 +01:00
719f0ed475 RDV 2025-12-10 11:00:25 +01:00
c78be4ac9b RDV 2025-12-10 10:55:35 +01:00
268642a1fa RDV 2025-12-10 10:51:42 +01:00
bb20aae908 RDV 2025-12-10 10:48:08 +01:00
23de1ee9b1 RDV 2025-12-10 10:43:31 +01:00
396ad187da RDV 2025-12-09 17:01:00 +01:00
832efcc8f6 RDV 2025-12-09 10:43:48 +01:00
92eecba160 RDV 2025-12-09 10:33:39 +01:00
c635353b69 RDV 2025-12-09 08:47:01 +01:00
63a668340d RDV 2025-12-08 15:01:33 +01:00
7feb4a8242 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-08 15:00:04 +01:00
f5b20c2ac3 RDV 2025-12-08 14:59:56 +01:00
3e9cc53ced Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!193
2025-12-05 09:00:46 +00:00
30cd227b41 modif sur les rdz 2025-12-05 09:50:29 +01:00
efc642999d RDV 2025-12-04 15:17:54 +01:00
0180dfb342 RDV 2025-12-04 15:09:30 +01:00
562d8fbba8 RDV 2025-12-04 14:36:34 +01:00
c382107adc RDV 2025-12-04 14:13:24 +01:00
f3c607ce94 Custom 2025-12-04 11:45:54 +01:00
de580e5b2c HsrPro 2025-12-04 10:22:19 +01:00
7be9de856a RestResponse 2025-12-04 10:21:13 +01:00
a933def832 Merge branch 'develop-rdz' into 'develop'
update custom-field

See merge request r-d-technique/tiers/reflex-wms-connector!192
2025-12-03 17:13:27 +00:00
133050bf8c update custom-field 2025-12-03 18:12:27 +01:00
14ce3c586f Customfields receipt 2025-12-03 16:20:02 +01:00
5c52f62b1e EF customfields 2025-12-03 15:35:54 +01:00
fe0f78a42e RDV 2025-12-01 13:43:15 +01:00
44187e0c24 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-01 13:34:22 +01:00
b259f1762f RDV 2025-12-01 13:34:15 +01:00
5c23ec6dec Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!189
2025-12-01 09:19:13 +00:00
ad15120def modif sur les rdz 2025-12-01 10:09:35 +01:00
ff28804bd5 DEV 2025-11-28 17:49:45 +01:00
8a43500c2b Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!188
2025-11-28 15:05:36 +00:00
52b8e3d68d modif sur les rdz 2025-11-28 16:05:14 +01:00
a4c892b9e7 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!187
2025-11-27 13:51:06 +00:00
16f533bed4 Merge branch 'develop' into develop-rdz
# Conflicts:
#	RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl
2025-11-27 14:50:26 +01:00
07482da77d modif sur les rdz 2025-11-27 14:47:27 +01:00
df3df0e933 RDV 2025-11-26 17:35:20 +01:00
135862972d RDV 2025-11-26 15:39:33 +01:00
b2ca7897eb RDV 2025-11-26 15:33:10 +01:00
d7c78145ea RDV 2025-11-26 14:43:05 +01:00
d355aa5676 RDV 2025-11-26 11:58:44 +01:00
64e46cace2 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!184
2025-11-25 13:38:02 +00:00
c004d7f36c Merge branch 'develop' into develop-rdz 2025-11-25 14:37:37 +01:00
65b4ed7482 modif sur les rdz 2025-11-25 14:36:44 +01:00
2f09297593 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!183
2025-11-25 13:19:49 +00:00
22d11ff07e modif sur les rdz 2025-11-25 14:18:29 +01:00
d3ffb379b6 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!182
2025-11-25 12:47:28 +00:00
39f654c95a modif sur les rdz 2025-11-25 13:30:00 +01:00
97ed60c7fa RDV 2025-11-25 11:30:50 +01:00
d6724025ee RDV 2025-11-25 10:46:12 +01:00
178e73d81b RDV 2025-11-24 15:46:31 +01:00
7bf4f67caf Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!181
2025-11-24 14:05:13 +00:00
9150d2fe1b modif sur les rdz 2025-11-24 15:03:30 +01:00
e81c062092 RDV 2025-11-24 14:24:07 +01:00
efd6a52332 RDV 2025-11-24 13:40:17 +01:00
613bd9739b Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!180
2025-11-21 15:05:29 +00:00
e0c159215b modif sur les rdz 2025-11-21 16:05:12 +01:00
899b0fd4c2 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!179
2025-11-21 14:53:29 +00:00
df49304c05 modif sur les rdz 2025-11-21 14:45:29 +01:00
2f4280a4da RDV 2025-11-21 11:47:10 +01:00
806af7a011 RDV 2025-11-21 11:46:23 +01:00
1caf5b830f Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!178
2025-11-20 16:34:47 +00:00
6eea1ad67f Merge branch 'develop' into develop-rdz 2025-11-20 17:34:28 +01:00
243482af3b modif sur les rdz 2025-11-20 17:34:07 +01:00
a678df969c RDV 2025-11-20 17:02:30 +01:00
d4b7b7de82 RDV 2025-11-20 16:09:29 +01:00
0b03e04865 Merge branch 'develop-rdz' into 'develop'
no message

See merge request r-d-technique/tiers/reflex-wms-connector!177
2025-11-20 12:29:55 +00:00
9129186a5a no message 2025-11-20 13:29:39 +01:00
2a9162f31b Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!176
2025-11-20 12:12:46 +00:00
b691a8bf21 modif sur les rdz 2025-11-20 13:12:29 +01:00
359b416b97 RDV 2025-11-20 11:15:02 +01:00
c273754d49 RDV 2025-11-20 10:11:22 +01:00
64f3a77fb5 RDV 2025-11-20 09:33:41 +01:00
429d9588b2 RDV 2025-11-20 09:09:27 +01:00
e3bbaa0211 RDV 2025-11-19 17:57:11 +01:00
9a458be469 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-11-19 17:52:59 +01:00
8be4f0e949 RDV 2025-11-19 17:52:50 +01:00
c0aeb305af Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!175
2025-11-19 16:51:03 +00:00
39e2272e67 modif sur les rdz 2025-11-19 17:50:50 +01:00
4d9f26f260 RDV 2025-11-19 17:18:37 +01:00
7233859ed8 RDV 2025-11-19 17:16:16 +01:00
5f9f912347 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!174
2025-11-19 12:20:30 +00:00
f0d37c04ed modif sur les rdz 2025-11-19 13:20:18 +01:00
a5891999f2 RDV 2025-11-19 11:55:43 +01:00
d7693249ca Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!173
2025-11-19 10:45:29 +00:00
65ba8e94c9 modif sur les rdz 2025-11-19 11:45:12 +01:00
ced9c8adab Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!172
2025-11-19 09:59:07 +00:00
db60006e94 modif sur les rdz 2025-11-19 10:58:52 +01:00
52cbace27a Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-11-19 10:54:01 +01:00
2a129f1b9c RDV 2025-11-19 10:53:55 +01:00
45e2779b58 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!171
2025-11-19 09:53:32 +00:00
1bff43fe8d modif sur les rdz 2025-11-19 10:53:16 +01:00
08e9b9b9eb rdv 2025-11-19 10:48:56 +01:00
a176edd4c6 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!170
2025-11-19 09:11:01 +00:00
35440a5eb3 modif sur les rdz 2025-11-19 10:10:45 +01:00
2432b37d64 RDV 2025-11-18 15:36:02 +01:00
8cbfa04ac1 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-11-18 15:26:44 +01:00
28c5cabbc3 RDV 2025-11-18 15:25:06 +01:00
861766cbe4 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!169
2025-11-18 14:23:10 +00:00
1168bfc50f modif sur les rdz 2025-11-18 15:18:52 +01:00
3f1711728a RDV 2025-11-18 15:12:41 +01:00
256e747c48 RDV 2025-11-18 11:57:00 +01:00
d03f3bb7a0 RDV 2025-11-18 11:06:35 +01:00
9018609ca1 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!168
2025-11-18 09:49:02 +00:00
ae47fda38f modif sur les rdz 2025-11-18 10:48:46 +01:00
f57276f088 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!167
2025-11-18 09:42:04 +00:00
138dd801d2 modif sur les rdz 2025-11-18 10:41:35 +01:00
db0e4df78d Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!166
2025-11-17 16:59:10 +00:00
5df1ebe54b Merge branch 'develop' into develop-rdz 2025-11-17 17:58:40 +01:00
4bfd6e7a4f modif sur les rdz 2025-11-17 17:58:20 +01:00
cdab58da71 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!165
2025-11-17 16:39:36 +00:00
065d4c026b modif sur les rdz 2025-11-17 17:39:15 +01:00
b930c0eb40 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!164
2025-11-17 16:32:00 +00:00
6c1a19ad04 Merge branch 'develop' into develop-rdz 2025-11-17 17:31:39 +01:00
7ff859420a modif sur les rdz 2025-11-17 17:31:23 +01:00
789e2e6c19 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!163
2025-11-17 09:05:02 +00:00
1dcf91bf71 modif sur les rdz 2025-11-17 10:02:33 +01:00
068ef56d25 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!162
2025-11-17 08:46:03 +00:00
c9050d837a Merge branch 'develop' into develop-rdz 2025-11-17 09:45:24 +01:00
e83186cc3f modif sur les rdz 2025-11-17 09:45:06 +01:00
355e170831 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!161
2025-11-14 13:32:28 +00:00
53006d3fa1 Merge branch 'develop' into develop-rdz
# Conflicts:
#	RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl
2025-11-14 14:29:40 +01:00
4648c02a2c modif sur les rdz 2025-11-14 14:27:33 +01:00
8f8f26d2a2 mails 2025-11-13 10:09:11 +01:00
b4f11ef83d SCPN1-8643 2025-11-13 10:02:56 +01:00
a2fd6f1145 Merge branch 'develop' into develop-rdz
# Conflicts:
#	RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl
2025-11-12 17:14:12 +01:00
bd7b24fed7 modif sur les rdz 2025-11-12 17:10:56 +01:00
9c38272c6c SCPN1-9640 2025-11-12 16:37:15 +01:00
e09c0fecda SCPN1-9640 2025-11-12 16:33:27 +01:00
5477fbd66a SCPN1-8643 2025-11-12 16:30:59 +01:00
a151a0b655 Revert "SCPN1-9640"
This reverts commit 894031cc49.
2025-11-10 14:45:26 +01:00
bf365ba170 SCPN1-9640 2025-11-10 14:23:57 +01:00
894031cc49 SCPN1-9640 2025-11-10 14:22:40 +01:00
d895bac137 version 1 des FTL des RDZ 2025-11-07 10:07:21 +01:00
9214df8b96 SCPN1-9601 2025-11-04 10:02:37 +01:00
bfbf654ee2 SCPN1-9577 2025-10-30 14:47:34 +01:00
0adef4a1f3 Brand 2025-10-30 11:50:35 +01:00
e9c7594555 SCPN1-9399SCPN1-9399 2025-10-22 16:19:05 +02:00
a46b06fa3d SCPN1-9399 2025-10-22 14:59:19 +02:00
d116ab3856 json_string order 2025-10-22 14:29:37 +02:00
b3366a3597 Brand 2025-10-21 15:36:15 +02:00
f8c4e5d79d SCPN1-9399 2025-10-21 11:39:54 +02:00
4f8317f007 Coorection HliPrepaL 2025-10-20 15:49:28 +02:00
b783e7dcc1 customFields delete payload 2025-10-17 14:25:35 +02:00
039e984ec0 readme 2025-10-16 10:07:03 +02:00
791a958b4d SCPN1-9437 2025-10-14 17:09:53 +02:00
0732360ff3 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-10-14 12:05:49 +02:00
5bdd9fbfe1 SCPN1-9437 2025-10-14 12:05:44 +02:00
15430bea94 SCPN1-9400 2025-10-14 11:23:55 +02:00
93a0fbd79c SCPN1-9437 2025-10-13 15:31:14 +02:00
ae27efacf3 SCPN1-9437 2025-10-13 14:25:08 +02:00
b4677ea095 test 2025-10-13 13:31:57 +02:00
eafbf7a6e3 nouvelle marque 2025-10-13 12:03:45 +02:00
a262140b4b SCPN1-9400 2025-10-08 15:58:21 +02:00
6080d1a959 SCPN1-8956 2025-10-03 10:04:03 +02:00
a98b0ef16b Merge branch 'develop-SCPN1-9094' into 'develop'
Resolve SCPN1-9094 "Develop "

Closes SCPN1-9094

See merge request r-d-technique/tiers/reflex-wms-connector!144
2025-10-01 07:52:59 +00:00
8ca640ca38 SCPN1-9094 2025-09-29 17:44:43 +02:00
4129dfdd58 SCPN1-9094 2025-09-29 14:55:51 +02:00
a6628be34e SCPN1-9348 2025-09-25 16:23:34 +02:00
4fd4007794 Correction transfert 2025-09-23 10:17:39 +02:00
9b07206cf4 Correction list 2025-09-09 08:13:56 +02:00
8d4721576f Renotified 2025-09-08 16:43:25 +02:00
6b0d53926f Corrections 250908 2025-09-08 10:01:04 +02:00
7c15a16e57 SCPN1-9254 2025-08-29 11:48:14 +02:00
9a456ac412 modif hsaipgmove receipt number line 2025-08-25 16:47:37 +02:00
cb8f9d84b2 readme 2025-08-07 16:38:25 +02:00
f6fb052e8c Modif OptionalAttributes 2025-08-07 11:03:45 +02:00
828fe74f5b controle line-list 2025-08-06 11:03:31 +02:00
fa59170f4d Controle line_list 2025-08-06 10:12:28 +02:00
db7d673b07 ajout controle 2025-08-05 17:19:51 +02:00
92b4f80170 Modif 2025-08-05 17:10:28 +02:00
5063703e56 Enlever un controle sur le D transfert 2025-08-05 16:43:20 +02:00
544cecb4f2 Modif RPtoRFX 2025-08-05 13:54:38 +02:00
06bd2c2520 SCPN1-9104 2025-07-22 11:39:19 +02:00
c4d328235f SCPN1-9104 2025-07-22 11:36:46 +02:00
6adc190531 SCPN1-9104 2025-07-22 11:33:16 +02:00
4419794595 SCPN1-9104 2025-07-22 11:30:28 +02:00
2544ee3983 SCPN1-9104 2025-07-22 11:26:53 +02:00
3e978f8d75 SCPN1-9104 2025-07-22 11:20:18 +02:00
bef91763b1 SCPN1-9104 2025-07-22 11:11:07 +02:00
f7ff9071af SCPN1-9104 2025-07-22 11:03:32 +02:00
0f5052308b SCPN1-9104 2025-07-22 10:38:18 +02:00
842bdac857 SCPN1-9104 2025-07-22 10:23:40 +02:00
974cb0a3d4 supression commentaire 2025-07-18 17:02:50 +02:00
3d2670b9a2 SCPN1-9084 2025-07-15 14:57:59 +02:00
43855289ed hsadispute 2025-07-11 16:56:56 +02:00
25044dca56 hsadispute 2025-07-11 16:52:38 +02:00
7f6442450b hsadispute 2025-07-11 15:58:42 +02:00
9d6fabef0b hsadispute 2025-07-11 15:26:33 +02:00
577d5272e9 hsadispute 2025-07-11 15:19:18 +02:00
42fd531289 Hsadispute 2025-07-11 14:49:09 +02:00
bc7b677ada modif hsaipgmove 2025-07-10 12:00:51 +02:00
f829fa6310 modif réception 2025-07-10 11:57:52 +02:00
d9445d9ad5 modif 2025-07-10 11:39:46 +02:00
a605e98ccd modif hsadispute created 2025-07-10 11:04:16 +02:00
804ceb25f3 Modif Réception 2025-07-10 10:33:34 +02:00
17184ed314 SCPN1-9059 2025-07-10 09:55:20 +02:00
a60c20d707 SCPN1-8871 2025-07-09 16:42:20 +02:00
da69788478 SCPN1-9059 2025-07-09 15:10:20 +02:00
5d7427b0a0 SCPN1-9059 2025-07-09 15:00:03 +02:00
94e988ac56 Modif hsaIpgMove 2025-07-08 17:22:01 +02:00
a5e4cad965 Modif HsrPro Detected 2025-07-08 17:06:42 +02:00
c33c54ed92 Modif HsrPrepa Carrier Updated 2025-07-08 16:55:20 +02:00
03ca7d0ef7 modif Hsrprepa Carrier Updated 2025-07-08 16:53:43 +02:00
4ffaf0ec73 SCPN1-8871 2025-07-03 15:09:53 +02:00
bcd2d995c2 SCPN1-8987 2025-07-02 15:51:11 +02:00
a85eb86c99 SCPN1-8991
(cherry picked from commit 9d7293d92eb9f4b07886ab11f7ed59a2a6f7aaa1)
(cherry picked from commit fb329894ccf8e618135eea2c9ca9f13c87316ec0)
2025-07-01 15:44:15 +02:00
f5971a6b06 SCPN1-8980 2025-06-30 16:03:38 +02:00
4256228eb1 Modif 2025-06-25 11:00:55 +02:00
a610e0b077 modif 2025-06-24 18:10:49 +02:00
6fb9fd6685 SCPN1-8863 2025-06-24 18:04:55 +02:00
b40bde6d19 SCPN1-8863 2025-06-24 17:44:55 +02:00
cfc2c35e4f SCPN1-8863 2025-06-24 17:22:11 +02:00
bdc59a2c20 modifs transfert 2025-06-24 10:59:07 +02:00
af99f0d11f Ajout controle 2025-06-16 11:38:53 +02:00
645a1cda86 ajout controle 2025-06-16 11:21:49 +02:00
18cecd64aa Ajout controle 2025-06-16 11:12:20 +02:00
93db70c433 Correction syntaxe 2025-06-16 11:06:43 +02:00
0e9d31ea17 Ajout controle 2025-06-16 11:03:02 +02:00
9c27dbf768 Ajout controle 2025-06-16 10:54:19 +02:00
877e31529a SCPN1-8871 2025-06-13 15:19:49 +02:00
6ebda9ab09 SCPN1-8871 2025-06-13 15:04:29 +02:00
54d0fc4575 SCPN1-8871 2025-06-13 11:58:42 +02:00
8d74d8f085 SCPN1-8871 2025-06-13 11:49:45 +02:00
53640ab313 SCPN1-8863 2025-06-12 13:40:35 +02:00
8d9072da4a SCPN1-8863 2025-06-12 13:06:35 +02:00
fa17314de3 SCPN1-8863 2025-06-12 11:52:26 +02:00
b01ba5205b SCPN1-8871 2025-06-11 15:09:44 +02:00
2abe538825 SCPN1-8871 2025-06-11 15:07:19 +02:00
f1ef756198 SCPN1-8871 2025-06-11 14:32:31 +02:00
ab6aef0026 SCPN1-8871 2025-06-11 14:15:45 +02:00
122122db8c SCPN1-8864 2025-06-11 12:09:43 +02:00
14b8a9a534 SCPN1-8864 2025-06-11 12:00:09 +02:00
372f5d2239 SCPN1-8864 2025-06-11 09:25:28 +02:00
4c3d6fbea6 SCPN1-8871 2025-06-10 17:07:09 +02:00
5e4bcbccbe SCPN1-8871 2025-06-10 15:49:55 +02:00
72ec763cc5 SCPN1-8871 2025-06-10 14:51:50 +02:00
a17bfd876c SCPN1-8871 2025-06-10 14:48:31 +02:00
bbe97fba7f SCPN1-8871 2025-06-10 14:47:59 +02:00
44830bcd10 SCPN1-8871 2025-06-10 14:34:34 +02:00
a6a42f79a6 SCPN1-8871 2025-06-10 13:29:55 +02:00
1be3af7cf1 SCPN1-8871 2025-06-10 11:50:03 +02:00
44e8afd18c SCPN1-8871 2025-06-09 17:36:12 +02:00
236dc49de2 SCPN1-8871 2025-06-09 17:23:29 +02:00
3f916b564d SCPN1-8871 2025-06-09 17:06:34 +02:00
5b74e7f1d3 SCPN1-8871 2025-06-09 16:56:53 +02:00
c3163e39d3 SCPN1-8871 2025-06-09 16:25:27 +02:00
34beb5fddf SCPN1-8871 2025-06-09 16:18:40 +02:00
1d6222e6cc SCPN1-8871 2025-06-09 15:56:49 +02:00
40f4396dfa SCPN1-8871 2025-06-09 15:37:47 +02:00
8d453bd599 SCPN1-8871 2025-06-09 15:28:26 +02:00
6e855c31dd SCPN1-8863 2025-06-06 17:23:27 +02:00
2e68e1e839 SCPN1-8863 2025-06-06 17:11:50 +02:00
8ea0c3a1c2 SCPN1-8863 2025-06-06 17:05:51 +02:00
6823a0aeb1 SCPN1-8863 2025-06-06 16:55:24 +02:00
fcc7d30336 SCPN1-8863 2025-06-06 16:44:41 +02:00
ca36d6688e SCPN1-8863 2025-06-06 16:25:00 +02:00
9a7f669192 SCPN1-8800 2025-05-26 10:08:22 +02:00
b0e7dc18d7 SCPN1-8696 2025-05-13 10:59:34 +02:00
6b1d598a75 SCPN1-8729 2025-05-12 13:41:38 +02:00
871648ca6d SCPN1-8728 2025-05-12 10:00:32 +02:00
003a4e1e59 SCPN1-8728 2025-05-12 09:51:54 +02:00
b7743f00fb SCPN1-8695 2025-04-28 13:44:29 +02:00
ffad895309 SCPN1-8696 2025-04-28 13:31:39 +02:00
c7bce6018b clean README 2025-04-25 08:56:02 +00:00
1ced677ec6 SCPN1-8583 2025-04-24 15:48:02 +02:00
a1c4b8a4ac Modif typologie 2025-04-15 14:29:22 +02:00
b72199c8b2 Snapshot reflex-wms-connector 2.1.0-SNAPSHOT 2025-04-08 10:00:02 +02:00
11ab7068cd New Major version 2.y.z 2025-04-08 07:57:49 +00:00
3aee512fa1 adjsut version 2025-04-07 13:46:35 +02:00
40d767406a change executuionflow.Order.ID to eventRP.refid 2025-03-27 15:21:59 +01:00
d5efde68a9 modifs recipt 2025-03-24 15:59:20 +01:00
f31be2092e modifs 2025-03-21 17:19:13 +01:00
24564d199e claim 2025-03-21 17:09:37 +01:00
5397b211b4 depot actor 2025-03-21 11:31:45 +01:00
c3e584c43b claim reference empty 2025-03-21 11:22:43 +01:00
cdc4ab6c3c claim 2025-03-20 17:52:49 +01:00
9b4506912c modifs actor 2025-03-20 17:44:33 +01:00
e7fa9ec7b7 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-03-20 17:29:25 +01:00
53c400be49 SCPN1-8474 2025-03-20 17:28:57 +01:00
bb6e68a697 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-03-20 17:21:27 +01:00
969560a0d1 modifs claim 2025-03-20 17:21:20 +01:00
3f693dc4cb Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-03-20 17:10:26 +01:00
02e8dc2566 SCPN1-8474 2025-03-20 17:09:41 +01:00
546891463b modifs claim 2025-03-20 17:09:16 +01:00
c5afde166a SCPN1-8401 la correction a été perdue... 2025-03-19 17:50:55 +01:00
9e16ebae85 claim 2025-03-19 16:54:47 +01:00
546d46fc42 modifs 2025-03-19 15:11:14 +01:00
f14616784a modifs 2025-03-19 15:06:59 +01:00
4115d9ec5f SCPN1-8483
(cherry picked from commit 8ee7527ba4)
2025-03-19 11:47:41 +01:00
9d99c0c65e displayID 2025-03-19 10:44:16 +01:00
ff25781b84 claim 2025-03-13 15:07:49 +01:00
a045b37b7b claim 2025-03-13 11:51:44 +01:00
337b011d4e claim 2025-03-13 11:47:09 +01:00
7b4dfe0288 claim 2025-03-13 11:39:29 +01:00
da75ead70f claim 2025-03-13 11:32:04 +01:00
b168b16931 claim 2025-03-13 11:28:34 +01:00
f76d632303 claim 2025-03-13 10:20:22 +01:00
5963948635 update URL in readme.md 2025-03-12 15:05:01 +01:00
80965f3927 UTC 2025-03-12 10:14:55 +01:00
7ae70dae92 Ajout OrderID 2025-03-11 16:19:35 +01:00
dbffc01a70 SCPN1-8401
(cherry picked from commit 0cec20a8aa91ce5d958a9d6087d4778f86f2c5fd)
2025-03-07 14:17:28 +01:00
2681a4dc24 SCPN1-8401 (syntaxe error in RXftoRP-HsrReceiptList_ExecutionflowDetected.ftl et RXftoRP-HsrReceiptList_ExecutionflowReceiptComplet.ftl) 2025-03-06 16:13:36 +01:00
9380d39bb6 SCPN1-8401 (syntaxe error in RXftoRP-HsrPro_ExecutionflowDetected.ftl) 2025-03-04 14:28:12 +01:00
ba13f7cf59 add version 2.0 support 2025-03-03 11:01:03 +00:00
9997441edb Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-02-28 09:45:55 +01:00
d2a00ffe2e claim 2025-02-28 09:45:48 +01:00
45a31fb33f SCPN1-8401
(cherry picked from commit 724d4dd0c756a8c2f5b461874b36cd513feafbbd)
2025-02-27 17:56:42 +01:00
57d4cb6be2 modifs hsrprepa 2025-02-19 17:45:45 +01:00
172d6ead58 trackingNumberSource 2025-02-11 17:54:26 +01:00
57533e8735 SCPN1-8280 2025-02-11 17:53:39 +01:00
4d59a53517 modifs 2025-02-10 11:56:10 +01:00
71a73bded4 modif 2025-02-10 11:06:00 +01:00
0e0397708f modif 2025-02-07 16:15:15 +01:00
6319051741 modif 2025-02-07 16:05:57 +01:00
d955ccdbc4 include 2025-02-07 15:56:20 +01:00
817209a095 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-02-07 10:50:57 +01:00
af0d846271 HU 2025-02-07 10:50:35 +01:00
fda736c295 SCPN1-8291 2025-02-07 10:11:04 +01:00
2318bee797 SCPN1-8291 2025-02-06 09:50:00 +01:00
df2332b17e move 520 2025-01-21 15:41:31 +01:00
1de373be9c Merge branch 'query_in_ftl' into 'develop'
SCPN1-8043

See merge request r-d-technique/tiers/reflex-wms-connector!84
2025-01-16 17:00:28 +00:00
e806da1129 SCPN1-8043 2025-01-16 17:59:55 +01:00
b40475626e Merge branch 'query_in_ftl' into 'develop'
SCPN1-8043

See merge request r-d-technique/tiers/reflex-wms-connector!83
2025-01-13 15:28:57 +00:00
559fff82e5 SCPN1-8043 2025-01-13 16:23:17 +01:00
37f73115ff Merge branch 'query_in_ftl' into 'develop'
SCPN1-8043

See merge request r-d-technique/tiers/reflex-wms-connector!82
2025-01-07 16:42:00 +00:00
a7bf18f25d SCPN1-8043 2025-01-07 17:40:55 +01:00
498ef5a5bf SCPN1-8043 2025-01-07 11:16:32 +01:00
b6415fa316 commit first 2025-01-06 17:56:10 +01:00
d3c7d5a96c modifs 2024-12-02 16:26:44 +01:00
329747d225 modifs ID Claim 2024-12-02 16:21:14 +01:00
f5e6c2b22e modif trim 2024-12-02 16:03:45 +01:00
e41309e744 Correction priority date 2024-11-19 11:17:59 +01:00
20d77f21ed CountryCode 2024-11-18 11:20:56 +01:00
3c11695650 CountryCode 2024-11-18 10:25:57 +01:00
5c6e200d3e suppression logs d'erreurs 2024-11-13 10:50:10 +01:00
d896aa95f4 SCPN1-7518 2024-11-12 17:59:03 +01:00
ea58acc353 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2024-11-12 10:16:13 +01:00
4d24367b58 json_string 2024-11-12 10:16:06 +01:00
5901619f6a SCPN1-7518 2024-11-08 16:39:08 +01:00
19c87e38df Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2024-11-05 16:36:54 +01:00
821b58b3bf Claim 2024-11-05 16:36:47 +01:00
31f38e9626 SCPN1-7496 2024-11-05 11:37:39 +01:00
5d799566fe unicité 2024-11-04 17:13:19 +01:00
867a894e2e unicité 2024-11-04 10:49:32 +01:00
a11124d144 unicité 2024-11-04 10:42:40 +01:00
dbfcccfdd9 modifs 2024-10-29 13:49:45 +01:00
0c4e85067b correction 2024-10-29 11:24:45 +01:00
b1e5d51ba0 modifs uniqueness 2024-10-29 11:18:35 +01:00
1e42f6d81c modifs HsrReceipt 2024-10-18 15:52:08 +02:00
8aab4296a2 update "uniqueness" variable 2024-10-16 17:37:17 +02:00
8160342c63 update "uniqueness" variable 2024-10-16 16:23:43 +02:00
72abd3b22a update "uniqueness" variable 2024-10-16 16:04:00 +02:00
bcddf351a0 modifs 2024-10-16 11:51:25 +02:00
9c229997b3 espace 2024-10-16 09:40:53 +02:00
cdbb00ea4c modifs 2024-10-16 09:13:07 +02:00
ffbeb4cadc modifs 2024-10-15 17:03:15 +02:00
f736d62ee4 modifs 2024-10-15 17:00:34 +02:00
6f636b4ee7 modifs 2024-10-15 16:56:15 +02:00
0406a2ff3a Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2024-10-15 16:54:31 +02:00
833ed4ebd6 modifs 2024-10-15 16:54:24 +02:00
90bfd41f41 Ajout du flux LoadInfo 2024-10-15 16:19:31 +02:00
557828b459 modifs nom 2024-10-11 11:01:13 +02:00
1cc34e6657 modifs depot 2024-10-10 14:08:43 +02:00
42571ef2a1 modifs 2024-10-09 17:13:05 +02:00
63db993164 modifs dispute 2024-10-09 17:07:16 +02:00
86335ba52d modifs 2024-10-09 16:06:17 +02:00
37773416ff modifs 2024-10-09 15:17:53 +02:00
e9e09a5eb1 modifs 2024-10-09 15:03:29 +02:00
234918a77e modifs 2024-10-09 14:56:26 +02:00
8d4067a58e modifs 2024-10-09 11:32:48 +02:00
aa62c276d1 modifs 2024-10-08 14:19:15 +02:00
de5a9b431e modifs 2024-10-08 11:44:47 +02:00
deba22e9d4 modifs 2024-10-08 11:12:47 +02:00
81720b2547 modifs 2024-10-08 10:20:15 +02:00
ed8aff1e3c SCPN1-7052 2024-10-08 10:00:14 +02:00
153df99ed1 modifs 2024-10-08 09:25:04 +02:00
65601133f1 unicité 2024-10-07 14:52:28 +02:00
25011e68e6 modifs 2024-10-03 14:46:45 +02:00
3a9f26cef2 modifs 2024-10-01 11:25:06 +02:00
7c1b05d76e modifs 2024-10-01 11:07:39 +02:00
134e44185a modifs 2024-10-01 10:12:12 +02:00
49b2f6e17a modifs 2024-10-01 10:07:43 +02:00
6400c985a2 message 2024-09-30 16:59:22 +02:00
e97066c118 modifs labelled 2024-09-30 15:28:24 +02:00
9f02fce236 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2024-09-30 15:19:33 +02:00
10bb90bf92 modifs 2024-09-30 15:19:24 +02:00
e53e4ec9a0 SCPN1-7265 2024-09-30 12:05:38 +02:00
9524923f0c SCPN1-7265 2024-09-27 10:08:36 +02:00
138bcdadf8 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2024-09-26 16:09:30 +02:00
e2c0735dc7 modifs 2024-09-26 15:58:37 +02:00
aba22026bb date tracking 2024-09-26 15:58:04 +02:00
360c0743bc SCPN1-7088 2024-09-20 17:22:27 +02:00
307ae9ebe2 modifs 2024-09-17 17:29:04 +02:00
80a34b354d modifs 2024-09-17 16:28:49 +02:00
09ec0e4509 modifs 2024-09-17 11:46:24 +02:00
c05a4653ba modifs 2024-09-17 10:25:53 +02:00
956105fc38 modifs uniqueness 2024-09-16 16:12:43 +02:00
d91d15c1c9 modifs 2024-09-16 15:25:39 +02:00
550c0047da modifs 2024-09-16 15:25:10 +02:00
a8b044fdba modifs 2024-09-16 14:54:43 +02:00
89fae85a2f modifs 2024-09-16 14:48:12 +02:00
bfc96d37ab modifs 2024-09-16 14:35:15 +02:00
c742c3639f modifs 2024-09-16 14:30:11 +02:00
d60a75cbbc modifs 2024-09-16 14:25:29 +02:00
cde81b3e8b modifs 2024-09-16 14:20:20 +02:00
75a9a1727c modifs 2024-09-16 14:12:45 +02:00
6d45f474d4 modifs 2024-09-16 14:04:35 +02:00
7857dfd696 modifs 2024-09-16 13:54:09 +02:00
01d58746d8 modifs 2024-09-12 17:07:33 +02:00
ab7c45bcd7 SCPN1-7155 2024-09-12 11:55:45 +02:00
f4f0a50493 modifs 2024-09-11 15:12:17 +02:00
65fed72146 modifs 2024-09-11 15:09:41 +02:00
0a0121c020 modifs 2024-09-11 14:59:45 +02:00
50fb9b467f modifs 2024-09-06 16:21:09 +02:00
843bf837b2 motifs 2024-09-06 16:14:11 +02:00
ca33a85694 SCPN1-7065 2024-08-29 10:34:55 +02:00
c183ade001 hsadispute 2024-08-08 11:47:14 +02:00
d4b927b7f7 hsrdispute 2024-08-08 10:55:39 +02:00
08cf8ec1a6 add hsaDispute flow 2024-08-06 17:40:16 +02:00
66d002052c Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2024-08-06 17:13:10 +02:00
949d4c6a8d CC vide 2024-08-06 17:13:04 +02:00
2b828c2f4b code country ISO 2024-08-06 14:18:02 +02:00
a9fec0b5f9 country 2024-08-06 11:29:02 +02:00
b7f383d531 country code 2 2024-08-06 11:26:18 +02:00
d21a863060 country code 2024-08-06 11:21:18 +02:00
9ee9743b81 Code ico controle 2024-08-06 10:54:28 +02:00
b5ef671512 MD Actor 2024-07-31 17:15:44 +02:00
3eb072f36d Mouvements 2024-07-26 14:06:19 +02:00
f98e963b76 modifs HsrPRo 2024-07-19 11:22:18 +02:00
5c0b112c39 Modifs 170724 2024-07-17 11:07:36 +02:00
c3d1ceb0c5 ODP 2024-07-12 11:17:30 +02:00
45e8c4fee2 ajout MD HuAdded 2024-07-05 10:40:55 +02:00
af29a11b22 adjust json_string 2024-06-25 17:29:36 +02:00
74b976b367 adjust json_string 2024-06-24 16:20:09 +02:00
044fda9d16 correction dans le cas où la commande n'a pas de ligne... 2024-06-21 13:28:44 +02:00
e8510d079c SCPN1-6605 MovementCreated 2024-06-07 11:15:47 +02:00
aa19de32a5 Merge branch 'SCPN1-6692' into 'develop'
SCPN1-6692

Closes SCPN1-6692

See merge request r-d-technique/tiers/reflex-wms-connector!43
2024-06-06 07:44:29 +00:00
2524859cd4 SCPN1-6692 2024-06-06 09:15:09 +02:00
06147dd8d4 SCPN1-6642 SCPN1-6641 2024-05-30 17:18:16 +02:00
9cbacc0ebc priority date 2024-05-17 11:00:25 +02:00
c31d6de4a2 Merge branch 'SCPN1-6564' into 'release/1.2'
SCPN1-6564

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

(cherry picked from commit c0dd029d1f)
2024-05-17 10:57:10 +02:00
b3da874dd3 modifs HUGP 2024-05-13 16:00:46 +02:00
82dfc05cdb Création de commande 2024-04-24 15:09:45 +02:00
eda5fe4e07 modifs hsrprepa 2024-04-15 10:16:14 +02:00
26654a9820 modifs 2024-04-12 09:37:03 +02:00
6b6cef5332 modifs ipgmove 2024-04-11 11:01:05 +02:00
d7c9c72762 modifs hsrpro 2024-04-10 16:25:27 +02:00
87efb21e64 modifs ipg 2024-04-09 16:53:34 +02:00
165 changed files with 6030 additions and 1066 deletions

162
ActorPrefix.ftl Normal file
View File

@@ -0,0 +1,162 @@
<#-- --------------------------------------------------------------------------------------- -->
<#-- Actor Prefix 4 cars -->
<#-- --------------------------------------------------------------------------------------- -->
<#-- For Depot -->
<#function RFXtoRPprefixDepot depot>
<#if uniqueness >
<#local actor = depot>
<#else>
<#if text_language_rfx ="fr">
<#local actor = "DEP_"+depot>
<#else>
<#if text_language_rfx ="it">
<#local actor = "DEP_"+depot>
<#else>
<#if text_language_rfx ="es">
<#local actor = "DEP_"+depot>
<#else>
<#if text_language_rfx ="pl">
<#local actor = "MAG_"+depot>
<#else>
<#if text_language_rfx ="nl">
<#local actor = "DEP_"+depot>
<#else>
<#local actor = "DEP_"+depot>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
<#return (actor)>
</#function>
<#function RPtoRFXprefixDepot actor>
<#if uniqueness>
<#local depot = actor>
<#else>
<#local depot = actor[4..]>
</#if>
<#return (depot)>
</#function>
<#-- For Supplier -->
<#function RFXtoRPprefixSupplier supplier>
<#if uniqueness>
<#local actor = supplier>
<#else>
<#if text_language_rfx ="fr">
<#local actor = "FOU_"+supplier>
<#else>
<#if text_language_rfx ="it">
<#local actor = "FOR_"+supplier>
<#else>
<#if text_language_rfx ="es">
<#local actor = "PRO_"+supplier>
<#else>
<#if text_language_rfx ="pl">
<#local actor = "DOS_"+supplier>
<#else>
<#if text_language_rfx ="nl">
<#local actor = "LEV_"+supplier>
<#else>
<#local actor = "SUP_"+supplier>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
<#return (actor)>
</#function>
<#function RPtoRFXprefixSupplier actor>
<#if uniqueness>
<#local supplier = actor>
<#else>
<#local supplier = actor[4..]>
</#if>
<#return (supplier)>
</#function>
<#-- For Carrier -->
<#function RFXtoRPprefixCarrier carrier>
<#if uniqueness>
<#local actor = carrier>
<#else>
<#if text_language_rfx ="fr">
<#local actor = "TRA_"+carrier>
<#else>
<#if text_language_rfx ="it">
<#local actor = "VET_"+carrier>
<#else>
<#if text_language_rfx ="es">
<#local actor = "TRA_"+carrier>
<#else>
<#if text_language_rfx ="pl">
<#local actor = "PRZ_"+carrier>
<#else>
<#if text_language_rfx ="nl">
<#local actor = "VER_"+carrier>
<#else>
<#local actor = "CAR_"+carrier>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
<#return (actor)>
</#function>
<#function RPtoRFXprefixCarrier actor>
<#if uniqueness>
<#local carrier = actor>
<#else>
<#local carrier = actor[4..]>
</#if>
<#return (carrier)>
</#function>
<#-- For Consignee -->
<#function RFXtoRPprefixConsignee consignee>
<#if uniqueness>
<#local actor = consignee>
<#else>
<#if text_language_rfx ="fr">
<#local actor = "DES_"+consignee>
<#else>
<#if text_language_rfx ="it">
<#local actor = "DES_"+consignee>
<#else>
<#if text_language_rfx ="es">
<#local actor = "DES_"+consignee>
<#else>
<#if text_language_rfx ="pl">
<#local actor = "ODB_"+consignee>
<#else>
<#if text_language_rfx ="nl">
<#local actor = "ONT_"+consignee>
<#else>
<#local actor = "CON_"+consignee>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
<#return (actor)>
</#function>
<#function RPtoRFXprefixConsignee actor>
<#if uniqueness>
<#local consignee = actor>
<#else>
<#local consignee = actor[4..]>
</#if>
<#return (consignee)>
</#function>

11
InternalSettings.ftl Normal file
View File

@@ -0,0 +1,11 @@
<#-- --------------------------------------------------------------------------------------- -->
<#-- DeleteEF est un paramètre qui permet de déterminer si lexécution logistique doit être supprimée lors de la création dune commande.-->
<#-- Attention : si vous choisissez de la supprimer, toutes les métadonnées associées à cette exécution logistique seront également supprimées. -->
<#-- Si DeleteEF_False = true, nous ne supprimons pas l'exécution logistique, Si DeleteEF_False = false, nous supprimons l'exécution logistique.-->
<#-- --------------------------------------------------------------------------------------- -->
<#-- DeleteEF is a parameter used to determine whether the logistics execution should be deleted when creating an order.-->
<#-- Warning: if deletion is selected, all metadata related to the logistics execution will also be removed. -->
<#-- If DeleteEF_False = true, we do not delete the logistics execution. If DeleteEF_False = false, we delete the logistics execution. -->
<#-- --------------------------------------------------------------------------------------- -->
<#assign DeleteEF_False = true>

View File

@@ -1,11 +1,20 @@
# Reflex Platform Core FTLs
# HARDIS SC NETWORK Core FTLs
## 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**.
These FTL core files aim to translate data flow from Reflex WMS into Reflex platform API.
This connector does not contain any standalone executable code: it is intended to be used by **HARDIS WMS integration engines** or **data exchange pipelines**, where it applies the mapping rules defined in the `.ftl` files.
## Role of the FTL Files
- Each `.ftl` file corresponds to a **flow type** (order, stock, receipt, shipment, appointment etc.).
- These templates use the **FreeMarker** syntax to:
- Extract the required fields from the WMS source flow.
- Apply transformation rules (mapping, conversions, enrichments).
- Generate a **final structured JSON** for HARDIS SC NETWORK.
You can find more info about those files in the Reflex platform documentation center : https://docs.viz.reflex-platform.com/connectivity/howto/reflex-wms-connector/
## Useful Resources
- [FreeMarker Documentation](https://freemarker.apache.org/docs/index.html)
- [HARDIS SC NETWORK](https://auth.reflex-platform.com/)

View File

@@ -0,0 +1 @@
<#assign trackingNumberSource = 3>

View File

@@ -0,0 +1,11 @@
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${id.refid?json_string}"
},
"Payload": {}
}
]

View File

@@ -1,7 +1,7 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#-- sum_elt : nb element in snapshot (optional parameter) -->
<#include "HfRpConfig.ftl">
@@ -50,11 +50,11 @@
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#stop "event not supported">
<#stop >
<#break>
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -1,4 +1,6 @@
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
[
<#list reflexStockPicturesInterface.detailled_stock_list as stock>
{
@@ -6,17 +8,17 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${stock.physical_depot_code}"
},
"RefID": "${RFXtoRPprefixDepot(stock.physical_depot_code)}"
},
"Payload": {
<#assign generation_date = RfxDateTimetoUTC(stock.generation_date,time_zone_offset_rfx) />
<#assign generation_date = RfxDateTimetoUTCWithTimezone(stock.generation_date,time_zone_rfx) />
"Snapshot": {
"EndDateTime": {
"DateTime": "${generation_date}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"ID": "${stock.physical_depot_code}-${idSnapshot}",
"MessageNb": ${sum_elt}
"ID": "${stock.physical_depot_code}-${idSnapshot}",
"MessageNb": ${sum_elt}
}
}

View File

@@ -1,4 +1,6 @@
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
[
<#list reflexStockPicturesInterface.detailled_stock_list as stock>
{
@@ -6,19 +8,19 @@
"ProjectID": "${projectRP}"
},
"Payload": {
"ActorID": "${stock.physical_depot_code}",
<#assign generation_date = RfxDateTimetoUTC(stock.generation_date,time_zone_offset_rfx) />
"ActorID": "${RFXtoRPprefixDepot(stock.physical_depot_code)}",
<#assign generation_date = RfxDateTimetoUTCWithTimezone(stock.generation_date,time_zone_rfx) />
"Snapshot": {
"DateTime": {
"DateTime": "${generation_date}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"ID": "${stock.physical_depot_code}-${idSnapshot}",
"Quantity":
{
"Value" : "${stock.quantity_in_base_lvs!"0"}",
"LVID": "${quantity_in_base_lv_RP_Cst}"
}
"ID": "${stock.physical_depot_code}-${idSnapshot}",
"Quantity":
{
"Value" : "${stock.quantity_in_base_lvs!"0"}",
"LVID": "${quantity_in_base_lv_RP_Cst}"
}
},
"Goods": {

View File

@@ -1,6 +1,12 @@
<#-- use protobuf of class HfDtlStockLs to find Reflex WMS fields names -->
<#-- use protobuf of class HfDtlStockLs 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)
"SegmentationKeys": [
{
@@ -16,7 +22,7 @@
<#if stock.batch_1 == "">
"Value": { "String" : "no batch"}
<#else>
"Value": { "String" : "${stock.batch_1}"}
"Value": { "String" : "${stock.batch_1?json_string}"}
</#if>
},
{
@@ -25,7 +31,7 @@
},
{
<#assign manufacturing_datetime = RfxDateTimetoUTC(stock.Date_of_manufacture,time_zone_offset_rfx) />
<#assign manufacturing_datetime = RfxDateTimetoUTCWithTimezone(stock.Date_of_manufacture,time_zone_rfx) />
"Key": "ManufacturingDate",
"Value": "Timestamp": {
"AuthorTimeZone": "${time_zone_rfx}",

View File

@@ -14,6 +14,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -16,6 +16,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -14,6 +14,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -1,5 +1,5 @@
<#-- ****
Reflex WMS provides some of their environment parameters through the class HfRpConfig
HARDIS WMS provides some of their environment parameters through the class HfRpConfig
those parameters are stored in FTL file HfRpConfig.ftl for later use in some of the data ftl files
*** -->
@@ -28,6 +28,6 @@ those parameters are stored in FTL file HfRpConfig.ftl for later use in some of
<#default>
<#stop "event not supported">
<#stop >
</#switch>

49
RFXtoRP_HliAntRecLr.ftl Normal file
View File

@@ -0,0 +1,49 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#-- *********************************************** Action = CREATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceiptLine = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop "create anticipated receipt line">
}
]
<#break>
<#case "U">
<#-- *********************************************** Action = UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceiptLine = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop "update anticipated receipt line">
}
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceiptLine = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop "delete anticipated receipt line">
}
]
<#break>
<#default>
<#stop >
</#switch>

103
RFXtoRP_HliPrepaL.ftl Normal file
View File

@@ -0,0 +1,103 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#include "ReflexUtils.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#include "RFX_PartnerAPP_Settings.ftl">
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#--<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)>
<#if preparationOrder.total_lv_validated?? && preparationOrder.total_lv_validated !=0>
<#if preparationOrder.preparation_type_code=="010" || preparationOrder.preparation_type_code=="030">
<#if preparationOrder.preparation_line_lst??>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
}
<#assign refIDHmap ={}>
<#assign hd_numberHmap ={}>
<#assign hd_numberHmapHUadded ={}>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? ) as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign HUadded_packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
<#if (!hd_numberHmap[despatched_ipg.hd_number]?? && !hd_numberHmap[despatched_ipg.carton_number]??)&& (trackingNumberSource==2 || trackingNumberSource==3 || (despatched_ipg.consignment_unit_id!="" && trackingNumberSource==1))>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl">
}
</#if>
<#if despatched_ipg.carton_number != "000000000000000000" && despatched_ipg.carton_number!=despatched_ipg.hd_number >
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitHUsAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitHUsAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
}
<#if !hd_numberHmapHUadded[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 )>
<#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl">
}
</#if>
</#if>
</#list>
</#list>
<#assign refIDHmap ={}>
]
<#else>
<#-- No line-->
<#stop>
</#if>
<#else>
<#-- Preparation Type not supported-->
<#stop>
</#if>
<#else>
<#-- no confirmed quantity for the preparation - preparation closed-->
<#stop>
</#if>
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#stop>
<#break>
<#default>
<#stop>
</#switch>

163
RFXtoRP_HliReceiptLr.ftl Normal file
View File

@@ -0,0 +1,163 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#-- *********************************************** Action = CREATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
<#if receipt.receipt_type?? && receipt.receipt_type = "030" && receipt.line_list??> <#-- if reception is a transfer type -->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HliReceiptLr_TransfertExecutionflowLinesAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl">
}
]
<#else>
<#if receipt.line_list ??>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HliReceiptLr_ExecutionflowLinesAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
}
]
<#else>
<#stop>
</#if>
</#if>
<#break>
<#case "U">
<#-- *********************************************** Action = UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
[
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowCancelled.ftl">
}
<#else>
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "true">
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowReceiptCompleted.ftl">
}
<#else>
<#if receipt.receipt_confirmed?? && receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
}
<#else>
<#if receipt.receipt_confirmed ?? && receipt.receipt_confirmed == "true" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
}
<#else>
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "false" && receipt.line_list??>
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HliReceiptLr_TransfertExecutionflowLinesAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl">
}
]
<#else>
<#stop> <#-- Receipt reference for transfer is empty-->
</#if>
<#else>
<#if receipt.line_list ??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HliReceiptLr_TransfertExecutionflowLinesAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
}
<#else>
<#stop>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
<#if receipt.line_list ??>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
}
]
<#else>
<#stop> <#-- No line-->
</#if>
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,60 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
{
<#assign receipt_datetime = RfxDateTimetoUTCWithTimezone(receipt.receipt_datetime,time_zone_rfx) />
<#assign receipt_creation_datetime = RfxDateTimetoUTCWithTimezone(receipt.creation_datetime,time_zone_rfx) />
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "R${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}",
"RefDate": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
<#if receipt.line_list??>
"Lines" : [
<#list receipt.line_list as line>
{
"LineID": "${line.receipt_line_number}",
<#-- Line Metadata inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_LineMetadata.ftl">,
"RequestedContent":
{
"Goods":
{
"ItemID": "${line.item_code?trim?json_string!"0"}",
"LVBranchID": "${line.item_lv_code?json_string!"0"}",
<#if (line.line_without_detail?? && line.line_without_detail.priority_date?length != 0) && (line.line_without_detail.priority_date?starts_with("00") == false)>
<#assign line_without_detail_priority_date = line.line_without_detail.priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_without_detail_priority_date}",
<#else>
<#if (line.line_detail?? && line.line_detail?size == 1 && line.line_detail[0].priority_date?length != 0) && (line.line_detail[0].priority_date?starts_with("00") == false)>
<#assign line_detail_priority_date = line.line_detail[0].priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_detail_priority_date}",
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
</#if>
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl">
},
"Quantity" :
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": "${line.order_quantity_in_lv!0}"
}
}
}
<#sep>,</#sep>
</#list>
]
</#if>
}
}
]

View File

@@ -0,0 +1,193 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
<#assign receipt_datetime = RfxDateTimetoUTCWithTimezone(receipt.receipt_datetime,time_zone_rfx) />
<#assign receipt_creation_datetime = RfxDateTimetoUTCWithTimezone(receipt.creation_datetime,time_zone_rfx) />
<#assign refIDHmap_local ={}>
[
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
{
"Header": {"ProjectID": "${projectRP}"},
"ID": {
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "R${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>
"RefDate": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
<#if receipt.line_list??>
"Lines" : [
<#list receipt.line_list as line>
{
"LineID": "${line.receipt_line_number}",
<#-- Line Metadata inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_LineMetadata.ftl">,
"RequestedContent":
{
"Goods":
{
"ItemID": "${line.item_code?trim?json_string!"0"}",
"LVBranchID": "${line.item_lv_code?json_string!"0"}",
<#if (line.line_without_detail?? && line.line_without_detail.priority_date?length != 0) && (line.line_without_detail.priority_date?starts_with("00") == false)>
<#assign line_without_detail_priority_date = line.line_without_detail.priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_without_detail_priority_date}",
<#else>
<#if (line.line_detail?? && line.line_detail?size == 1 && line.line_detail[0].priority_date?length != 0) && (line.line_detail[0].priority_date?starts_with("00") == false)>
<#assign line_detail_priority_date = line.line_detail[0].priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_detail_priority_date}",
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
</#if>
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl">
},
"Quantity" :
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": "${line.order_quantity_in_lv!0}"
}
}
}
<#sep>,</#sep>
</#list>
]
</#if>
}
}
<#else>
<#if receipt.line_list??>
<#list receipt.line_list as receipt_line >
<#if receipt_line.origin_order_line_reference!="">
<#if !refIDHmap_local[receipt_line.origin_order_line_reference]?? >
<#if refIDHmap_local?size != 0 >
,
</#if>
<#assign refIDHmap_local +={receipt_line.origin_order_line_reference,receipt_line.origin_order_line_reference}>
{
"Header": {"ProjectID": "${projectRP}"},
"ID": {
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt_line.origin_order_line_reference?trim?json_string}",
<#else>
"RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt_line.origin_order_line_reference?trim?json_string}",
</#if>
"RefDate": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
"CreationDateTime": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"OrderID":"${receipt_line.origin_order_line_reference?trim?json_string}",
<#if receipt.line_list??>
"Lines" : [
<#list receipt.line_list as line>
{
"LineID": "${line.receipt_line_number}",
<#-- Line Metadata inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_LineMetadata.ftl">,
"RequestedContent":
{
"Goods":
{
"ItemID": "${line.item_code?trim?json_string!"0"}",
"LVBranchID": "${line.item_lv_code?json_string!"0"}",
<#if (line.line_without_detail?? && line.line_without_detail.priority_date?length != 0) && (line.line_without_detail.priority_date?starts_with("00") == false)>
<#assign line_without_detail_priority_date = line.line_without_detail.priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_without_detail_priority_date}",
<#else>
<#if (line.line_detail?? && line.line_detail?size == 1 && line.line_detail[0].priority_date?length != 0) && (line.line_detail[0].priority_date?starts_with("00") == false)>
<#assign line_detail_priority_date = line.line_detail[0].priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_detail_priority_date}",
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
</#if>
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl">
},
"Quantity" :
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": "${line.order_quantity_in_lv!0}"
}
}
}
<#sep>,</#sep>
</#list>
]
</#if>
}
}
</#if>
<#else>
{
"Header": {"ProjectID": "${projectRP}"},
"ID": {
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year?trim?json_string}${receipt.receipt_number?trim?json_string}",
"RefDate": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
"CreationDateTime": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"OrderID":"${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year?trim?json_string}${receipt.receipt_number?trim?json_string}",
<#if receipt.line_list??>
"Lines" : [
<#list receipt.line_list as line>
{
"LineID": "${line.receipt_line_number}",
<#-- Line Metadata inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_LineMetadata.ftl">,
"RequestedContent":
{
"Goods":
{
"ItemID": "${line.item_code?trim?json_string!"0"}",
"LVBranchID": "${line.item_lv_code?json_string!"0"}",
<#if (line.line_without_detail?? && line.line_without_detail.priority_date?length != 0) && (line.line_without_detail.priority_date?starts_with("00") == false)>
<#assign line_without_detail_priority_date = line.line_without_detail.priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_without_detail_priority_date}",
<#else>
<#if (line.line_detail?? && line.line_detail?size == 1 && line.line_detail[0].priority_date?length != 0) && (line.line_detail[0].priority_date?starts_with("00") == false)>
<#assign line_detail_priority_date = line.line_detail[0].priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${line_detail_priority_date}",
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
</#if>
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl">
},
"Quantity" :
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": "${line.order_quantity_in_lv!0}"
}
}
}
<#sep>,</#sep>
</#list>
]
</#if>
}
}
<#break>
</#if>
</#list>
</#if>
</#if>
]

65
RFXtoRP_HlrProL.ftl Normal file
View File

@@ -0,0 +1,65 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
[
<#-- check preparation type code (internal order and reservation are ignored) -->
<#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030">
<#if preparation_order.line_list??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HlrProL_ExecutionflowLinesAdded.ftl">
}
<#else>
<#-- No line -->
<#stop>
</#if>
<#else>
<#-- Preparation order type not supported -->
<#stop>
</#if>
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
[
<#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030" >
<#if preparation_order.line_list??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl">
}
<#else>
<#-- No line -->
<#stop>
</#if>
<#else>
<#-- Preparation order type not supported -->
<#stop>
</#if>
]
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,59 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
{
<#assign planned_final_delivery_start_datetime = RfxDateTimetoUTCWithTimezone(preparation_order.planned_final_delivery_start_datetime,time_zone_rfx) />
<#assign pro_creation_datetime = RfxDateTimetoUTCWithTimezone(preparation_order.creation_datetime,time_zone_rfx) />
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
"RefID": "${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.originator_reference?trim?json_string}",
<#else>
"RefID": "O${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.preparation_order_year}${preparation_order.preparation_order_number}",
</#if>
"RefDate": {
"DateTime": "${pro_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
<#if preparation_order.line_list??>
"Lines" : [
<#list preparation_order.line_list as preparation_order_line >
{
<#if (preparation_order_line.originator_reference_line_number!0) != 0>
"LineID": "${preparation_order_line.originator_reference_line_number}",
<#else>
"LineID": "${preparation_order_line.preparation_order_line_number!0}",
</#if>
<#-- Line Metadata inclusion -->
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_LineMetadata.ftl">,
"RequestedContent":
{
"Goods":
{
"ItemID": "${preparation_order_line.item_code?trim?json_string!"0"}",
"LVBranchID": "${preparation_order_line.item_lv_code?json_string!"0"}",
<#if (preparation_order_line.optional_attributes.forced_priority_date?length != 0) && (preparation_order_line.optional_attributes.forced_priority_date?starts_with("00") == false)>
<#assign forced_priority_date = preparation_order_line.optional_attributes.forced_priority_date?datetime(rfx_date_format_default)?iso_utc />
"PriorityDate": "${forced_priority_date}",
</#if>
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_SegmentationKeys.ftl">
},
"Quantity" :
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": "${preparation_order_line.base_lv_quantity_to_prepare!0}"
}
}
}<#sep>,</#sep>
</#list>
]
</#if>
}
}
]

View File

@@ -1,7 +1,10 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
@@ -17,7 +20,7 @@
<#assign carrier = JsonUtil.jsonToMap(dataRfx)>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreated>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreatedv2>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaCarrier_ActorCreated.ftl">
@@ -41,6 +44,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -4,24 +4,17 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${carrier.carrier_code?trim?json_string}"
"RefID": "${RFXtoRPprefixCarrier(carrier.carrier_code?trim?json_string)}"
},
"Payload": {
"Name": "${carrier.carrier_designation?json_string}",
"ManagedStock": false,
"IsCarrier": true,
<#-- ***Partner ID could be added here *** -->
<#-- "PartnerID": "${}", -->
<#--
<#include "RFXtoRP_HsaCarrier_ActorCreated_Metadata.ftl">,
-->
"Address":
{
<#-- if Reflex WMS address is structured -->
<#-- if HARDIS WMS address is structured -->
<#if carrier.carrier_structured_address?? >
"Name": "${carrier.carrier_structured_address.name_or_company?json_string}",
@@ -29,17 +22,22 @@
"StreetAddressTwo" : "${carrier.carrier_structured_address.additionnal_data?json_string}",
"PostalCode" : "${carrier.carrier_structured_address.postal_code?json_string}",
"City" : "${carrier.carrier_structured_address.post_code_area_name?json_string}",
"CountryCode" : "${carrier.carrier_structured_address.country_code?json_string}",
<#assign isCountryCode = JsonUtil.isCountryCode(carrier.carrier_structured_address.country_code?upper_case) />
<#if isCountryCode>
"CountryCode" : "${carrier.carrier_structured_address.country_code?upper_case?json_string}",
<#else>
"CountryCode" : "",
</#if>
"ProvinceCode": "${carrier.carrier_structured_address.territorial_div_code?json_string}",
"State": "${carrier.carrier_structured_address.country_designation?json_string}"
<#-- if Reflex WMS address is not structured -->
<#-- if HARDIS WMS address is not structured -->
<#else>
<#if carrier.address??>
"Name": "${carrier.address.company_name?json_string}",
"StreetAddressOne" : "${carrier.address.address_1?json_string}",
"StreetAddressTwo" : "${carrier.address.address_2?json_string}",
"StreetAddressThree" : "${carrier.address.address_3?json_string}"
"StreetAddressThree" : "${carrier.address.address_3?json_string}",
"CountryCode" : ""
</#if>
</#if>
},

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaCarrier to find Reflex WMS fields names -->
<#-- use protobuf of class HsaCarrier 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

@@ -4,9 +4,8 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${carrier.carrier_code?trim?json_string}"
"RefID": "${RFXtoRPprefixCarrier(carrier.carrier_code?trim?json_string)}"
},
"Payload": {}
}
]

View File

@@ -1,7 +1,10 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
@@ -15,14 +18,15 @@
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign actor = JsonUtil.jsonToMap(dataRfx)>
[
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreated>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreatedv2>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaCons_ActorCreated.ftl">
}
]
<#break>
<#case "D">
@@ -41,6 +45,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -4,24 +4,17 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${actor.code?trim?json_string}"
"RefID": "${RFXtoRPprefixConsignee(actor.code?trim?json_string)}"
},
"Payload": {
"Name": "${actor.designation?json_string}",
"ManagedStock": false,
"IsCarrier": false,
<#-- ***Partner ID could be added here *** -->
<#-- "PartnerID": "${}", -->
<#--
<#include "RFXtoRP_HsaCons_ActorCreated_Metadata.ftl">,
-->
"Address":
{
<#-- if Reflex WMS is structured -->
<#-- if HARDIS WMS is structured -->
<#if actor.consignee_structured_address??>
"Name": "${actor.consignee_structured_address.name_or_company?json_string}",
@@ -29,18 +22,24 @@
"StreetAddressTwo" : "${actor.consignee_structured_address.additionnal_data?json_string}",
"PostalCode" : "${actor.consignee_structured_address.postal_code?json_string}",
"City" : "${actor.consignee_structured_address.post_code_area_name?json_string}",
"CountryCode" : "${actor.consignee_structured_address.country_code?json_string}",
<#assign isCountryCode = JsonUtil.isCountryCode(actor.consignee_structured_address.country_code?upper_case) />
<#if isCountryCode>
"CountryCode" : "${actor.consignee_structured_address.country_code?upper_case?json_string}",
<#else>
"CountryCode" : "",
</#if>
"ProvinceCode": "${actor.consignee_structured_address.territorial_div_code?json_string}",
"State": "${actor.consignee_structured_address.country_designation?json_string}"
<#-- if Reflex WMS is not structured -->
<#-- if HARDIS WMS is not structured -->
<#else>
<#if actor.address?? >
"Name": "${actor.address.company_name?json_string}",
"StreetAddressOne" : "${actor.address.address_1?json_string}",
"StreetAddressTwo" : "${actor.address.address_2?json_string}",
"StreetAddressThree" : "${actor.address.address_3?json_string}"
"StreetAddressThree" : "${actor.address.address_3?json_string}",
"CountryCode" : ""
</#if>
</#if>
},

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaCons to find Reflex WMS fields names -->
<#-- use protobuf of class HsaCons 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

@@ -4,9 +4,8 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${actor.code?trim?json_string}"
"RefID": "${RFXtoRPprefixConsignee(actor.code?trim?json_string)}"
},
"Payload": {}
}
]

32
RFXtoRP_HsaDesPatch.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign desPatch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for desPatch">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign desPatch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for desPatch">
<#break>
<#default>
<#stop >
</#switch>

32
RFXtoRP_HsaDespNt.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign despNt = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for despNt">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign despNt = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for despNt">
<#break>
<#default>
<#stop >
</#switch>

50
RFXtoRP_HsaDispute.ftl Normal file
View File

@@ -0,0 +1,50 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign dispute = JsonUtil.jsonToMap(dataRfx)>
[
<#if dispute.dispute_closed == true >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ClaimCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaDispute_Created.ftl">
}
<#if TableReasonCode[dispute.dispute_reason_code]??>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ClaimMessageSent>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaDispute_MessageSent.ftl">
}
<#else>
<#stop>
</#if>
</#if>
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#stop>
<#break>
<#default>
<#stop>
</#switch>

View File

@@ -0,0 +1,10 @@
<#-- use protobuf of class HsaDispute 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

@@ -0,0 +1,91 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "Table.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if dispute.dispute_preparation??>
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"RefID": "${dispute.dispute_preparation.preparation_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_activity_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
<#else>
<#stop "preparation order list is empty" >
</#if>
<#else>
<#if dispute.dispute_reception??>
"RefID": "${dispute.dispute_reception.reception_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_activity_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
</#if>
</#if>
},
"Payload": {
<#if dispute.dispute_reference?? && dispute.dispute_reference!="">
"Title":"${dispute.dispute_reference?json_string}",
<#else>
"Title":"",
</#if>
"Criticality":"${TableCriticality[dispute.dispute_criticity]}",
"Amount": {
<#assign isCurrencyCode = JsonUtil.isCurrencyCode(dispute.dispute_amount_unit?upper_case) />
<#if isCurrencyCode>
"Currency" : "${dispute.dispute_amount_unit?upper_case?json_string}",
<#else>
<#if TableAmount[dispute.dispute_amount_unit?json_string]??>
"Currency" : "${TableAmount[dispute.dispute_amount_unit?json_string]}",
<#else>
"Currency" : "XXX",
</#if>
</#if>
"Value": "${dispute.dispute_amount}"
},
<#-- Claim metadata inclusion -->
<#include "RFXtoRP_HsaDispute_ClaimMetadata.ftl">,
<#-- To configure -->
<#include "RFXtoRP_HsaDispute_TableReasonCodeToClaimTypeID.ftl">
<#if dispute.dispute_type_code=="050" > <#-- Preparation -->
<#if dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?? && dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference!="">
"EntityID":"${dispute.dispute_preparation.preparation_order_list[0].preparation_order_physical_depot_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_activity_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?trim?json_string}",
"DisplayID":"${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?trim?json_string}",
<#else>
"EntityID":"O${dispute.dispute_preparation.preparation_order_list[0].preparation_order_physical_depot_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_activity_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_year_number?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_number?trim?json_string}",
"DisplayID":"O${dispute.dispute_preparation.preparation_order_list[0].preparation_order_physical_depot_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_activity_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_year_number?trim?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_number?trim?json_string}",
</#if>
<#else>
<#if dispute.dispute_type_code=="030" || dispute.dispute_type_code=="070" >
<#if dispute.dispute_reception.reception_type_code=="030"> <#-- Receipt transfer type -->
<#if dispute.dispute_reception.reception_supplier.supplier_transfer_physical_depot?? && dispute.dispute_reception.reception_supplier.supplier_transfer_physical_depot!="" >
"EntityID":"${dispute.dispute_reception.reception_supplier.supplier_transfer_physical_depot?json_string}${dispute.dispute_reception.reception_supplier.supplier_activity_code?json_string}${dispute.dispute_reception.reception_contractor_code?json_string}${dispute.dispute_reception.reception_reference?json_string}",
"DisplayID":"${dispute.dispute_reception.reception_reference?json_string}",
<#else>
<#if dispute.dispute_reception.reception_reference?? && dispute.dispute_reception.reception_reference!="">
"EntityID":"R${dispute.dispute_reception.reception_physical_depot_code?json_string}${dispute.dispute_reception.reception_activity_code?json_string}${dispute.dispute_reception.reception_contractor_code?json_string}${dispute.dispute_reception.reception_year_number?json_string}${dispute.dispute_reception.reception_number?json_string}",
"DisplayID":"${dispute.dispute_reception.reception_reference?json_string}",
<#else>
"EntityID":"R${dispute.dispute_reception.reception_physical_depot_code?json_string}${dispute.dispute_reception.reception_activity_code?json_string}${dispute.dispute_reception.reception_contractor_code?json_string}${dispute.dispute_reception.reception_year_number?json_string}${dispute.dispute_reception.reception_number?json_string}",
"DisplayID":"R${dispute.dispute_reception.reception_physical_depot_code?json_string}${dispute.dispute_reception.reception_activity_code?json_string}${dispute.dispute_reception.reception_contractor_code?json_string}${dispute.dispute_reception.reception_year_number?json_string}${dispute.dispute_reception.reception_number?json_string}",
</#if>
</#if>
<#else>
<#if dispute.dispute_reception.reception_type_code=="010" || dispute.dispute_reception.reception_type_code=="020" >
"EntityID":"R${dispute.dispute_reception.reception_physical_depot_code?json_string}${dispute.dispute_reception.reception_activity_code?json_string}${dispute.dispute_reception.reception_contractor_code?json_string}${dispute.dispute_reception.reception_year_number?json_string}${dispute.dispute_reception.reception_number?json_string}",
"DisplayID":"${dispute.dispute_reception.reception_reference?json_string}",
<#else>
<#stop "WMS type code not supported">
</#if>
</#if>
</#if>
</#if>
<#if TableReasonCode[dispute.dispute_reason_code]??>
"ClaimTypeID":"CLAIMTYPE_${projectRP}_EXECUTIONFLOW_${TableReasonCode[dispute.dispute_reason_code]}"
<#else>
<#stop "Claim reason code not supported" >
</#if>
}
}
]

View File

@@ -0,0 +1,124 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if dispute.dispute_preparation??>
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"RefID": "${dispute.dispute_preparation.preparation_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_activity_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
<#else>
<#stop "preparation order list is empty" >
</#if>
<#else>
<#if dispute.dispute_reception??>
"RefID": "${dispute.dispute_reception.reception_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_activity_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
</#if>
</#if>
},
"Payload": {
<#if dispute.dispute_preparation??>
"Message": "${dispute.dispute_reference?trim?json_string}"
<#else>
<#if dispute.dispute_reception??>
"Message": "${dispute.dispute_reception.reception_reference?trim?json_string}"
</#if>
</#if>
}
},
<#if dispute.dispute_quantity!=0 && dispute.dispute_item??>
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if dispute.dispute_preparation??>
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"RefID": "${dispute.dispute_preparation.preparation_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_activity_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
<#else>
<#stop "preparation order list is empty" >
</#if>
<#else>
<#if dispute.dispute_reception??>
"RefID": "${dispute.dispute_reception.reception_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_activity_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
</#if>
</#if>
},
"Payload": {
"Message": "${dispute.dispute_item.item_code?trim?json_string} - ${dispute.dispute_quantity}${dispute.dispute_quantity_unit}"
}
},
<#elseif dispute.dispute_item??>
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if dispute.dispute_preparation??>
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"RefID": "${dispute.dispute_preparation.preparation_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_activity_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
<#else>
<#stop "preparation order list is empty" >
</#if>
<#else>
<#if dispute.dispute_reception??>
"RefID": "${dispute.dispute_reception.reception_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_activity_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
</#if>
</#if>
},
"Payload": {
"Message": "${dispute.dispute_item.item_code?trim?json_string}"
}
},
<#elseif dispute.dispute_quantity!=0>
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if dispute.dispute_preparation??>
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"RefID": "${dispute.dispute_preparation.preparation_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_activity_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
<#else>
<#stop "preparation order list is empty" >
</#if>
<#else>
<#if dispute.dispute_reception??>
"RefID": "${dispute.dispute_reception.reception_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_activity_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
</#if>
</#if>
},
"Payload": {
"Message": "${dispute.dispute_quantity}${dispute.dispute_quantity_unit}"
}
},
</#if>
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if dispute.dispute_preparation??>
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"RefID": "${dispute.dispute_preparation.preparation_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_activity_code?replace(" ","")?json_string}${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
<#else>
<#stop "preparation order list is empty" >
</#if>
<#else>
<#if dispute.dispute_reception??>
"RefID": "${dispute.dispute_reception.reception_physical_depot_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_activity_code?replace(" ","")?json_string}${dispute.dispute_reception.reception_contractor_code?replace(" ","")?json_string}${dispute.dispute_year_number?replace(" ","")?json_string}${dispute.dispute_number?replace(" ","")?json_string}"
</#if>
</#if>
},
"Payload": {
"Message": " ${dispute.dispute_description?trim?json_string}"
}
}
]

View File

@@ -0,0 +1,15 @@
<#-- Specify table for reason code -->
<#-- Table example for reason code to claim type ID -->
<#-- <#assign TableReasonCode = { -->
<#-- "001":"ID_CLAIMTYPE_1",-->
<#-- "M1":"ID_CLAIMTYPE_2",-->
<#-- }/>-->
<#assign TableReasonCode = {
"M1" :"CAS"
}
/>

View File

@@ -14,8 +14,7 @@
<#-- exclusion of the cases of an IPG move with quantity = 0 (weight modification) -->
<#if reflexMvtStockInterface.ipg_move_quantity_in_base_lvs != 0>
<#-- IPG moves translated into Stock moves -->
<#-- IPG moves translated into Stock moves -->
<#if reflexMvtStockInterface.ipg_move_type == "130" ||
reflexMvtStockInterface.ipg_move_type == "200" ||
reflexMvtStockInterface.ipg_move_type == "210" ||
@@ -25,13 +24,19 @@
reflexMvtStockInterface.ipg_move_type == "260" ||
reflexMvtStockInterface.ipg_move_type == "290" ||
reflexMvtStockInterface.ipg_move_type == "300" ||
reflexMvtStockInterface.ipg_move_type == "350" ||
reflexMvtStockInterface.ipg_move_type == "370" ||
reflexMvtStockInterface.ipg_move_type == "400" ||
reflexMvtStockInterface.ipg_move_type == "410" ||
reflexMvtStockInterface.ipg_move_type == "420"
reflexMvtStockInterface.ipg_move_type == "420" ||
reflexMvtStockInterface.ipg_move_type == "455" ||
reflexMvtStockInterface.ipg_move_type == "460" ||
reflexMvtStockInterface.ipg_move_type == "465" ||
(reflexMvtStockInterface.ipg_move_type == "520" && reflexMvtStockInterface.ipg_move_creation_program == "HFST69")
>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.StockMoved>
<#assign apiReflexPlatformID = ApiReflexPlatformID.MovementCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaIpgMove_StockMoved.ftl">
@@ -41,22 +46,17 @@
<#-- IPG moves translated into goods received (all type of receipt) -->
<#if (reflexMvtStockInterface.ipg_move_type == "100" ||
reflexMvtStockInterface.ipg_move_type == "110" ||
reflexMvtStockInterface.ipg_move_type == "120") && reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
}
]
reflexMvtStockInterface.ipg_move_type == "120") >
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
}
]
<#else>
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
<#-- Case of IPG move type volontarilly ignored-->
<#stop " Reference receipt is empty">
<#else>
<#stop>
</#if>
<#stop>
</#if>
</#if>
<#else>
@@ -67,11 +67,11 @@
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#stop "event not supported - Case D ">
<#stop >
<#break>
<#default>
<#stop "event not supported">
<#stop>
</#switch>

View File

@@ -1,7 +1,8 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
<#assign receipt_confirmation_datetime = RfxDateTimetoUTC(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_offset_rfx) />
<#assign receipt_confirmation_datetime = RfxDateTimetoUTCWithTimezone(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_rfx) />
<#assign priority_date = reflexMvtStockInterface.ipg_priority_date?datetime(rfx_date_format_default)?iso_utc />
{
"Header": {
@@ -20,18 +21,42 @@
"Goods": {
"ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}",
"LVBranchID": "${reflexMvtStockInterface.lv_code?json_string}",
"PriorityDate": "${priority_date}",
<#if (priority_date!="") && (priority_date?starts_with("00")== false) >
"PriorityDate": "${priority_date}",
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
<#-- Goods received Segmentation Keys inclusion -->
<#include "RFXtoRP_HsaIpgMove_GoodsReceived_SegmentationKeys.ftl">
},
<#if reflexMvtStockInterface.receipt_reference!="">
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#if reflexMvtStockInterface.ipg_move_type?? & reflexMvtStockInterface.ipg_move_type=="120"> <#-- if it is a transfer-type movement -->
<#if reflexMvtStockInterface.origin_order_line_reference?? && reflexMvtStockInterface.origin_order_line_reference!="">
"ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
<#else>
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="" && !reflexMvtStockInterface.receipt_reference?starts_with(reflexMvtStockInterface.original_receipt_physical_depot_code + reflexMvtStockInterface.activity_code + reflexMvtStockInterface.receipt_year_number)>
"ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#else>
"ExecutionflowID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
"OrderID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
</#if>
</#if>
<#else>
"ExecutionflowID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}",
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
"ExecutionflowID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#else>
"ExecutionflowID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
"OrderID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
</#if>
</#if>
"LineID": "${reflexMvtStockInterface.receipt_line_number}",
"ActorID": "${reflexMvtStockInterface.physical_depot_code?trim?json_string}",
<#if reflexMvtStockInterface.origin_order_line_number_reference?? && reflexMvtStockInterface.origin_order_line_number_reference!=0>
"LineID": "${reflexMvtStockInterface.origin_order_line_number_reference}",
<#else>
"LineID": "${reflexMvtStockInterface.receipt_line_number}",
</#if>
"ActorID": "${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)}",
"Quantity": {
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": ${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs}

View File

@@ -1,7 +1,12 @@
<#-- use protobuf of class HsaIpgMove to find Reflex WMS fields names -->
<#-- use protobuf of class HsaIpgMove 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)
"SegmentationKeys": [
{

View File

@@ -1,5 +1,6 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
<#assign MoveType_KV = {"130":"STOCK_MOVEMENT_TYPE_PRODUCTION",
"200":"STOCK_MOVEMENT_TYPE_FIX",
@@ -10,12 +11,18 @@
"260":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
"290":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
"300":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
"350":"STOCK_MOVEMENT_TYPE_USE_OF_GOODS",
"370":"STOCK_MOVEMENT_TYPE_USE_OF_GOODS",
"400":"STOCK_MOVEMENT_TYPE_FIX",
"410":"STOCK_MOVEMENT_TYPE_FIX",
"420":"STOCK_MOVEMENT_TYPE_REQUALIFICATION"}>
<#assign generation_date = RfxDateTimetoUTC(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_offset_rfx) />
"420":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
"455":"STOCK_MOVEMENT_TYPE_FIX",
"460":"STOCK_MOVEMENT_TYPE_FIX",
"465":"STOCK_MOVEMENT_TYPE_FIX",
"520":"STOCK_MOVEMENT_TYPE_OUTBOUND"
}>
<#assign generation_date = RfxDateTimetoUTCWithTimezone(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_rfx) />
<#assign ipg_priority_datetime = reflexMvtStockInterface.ipg_priority_date?datetime(rfx_date_format_default)?iso_utc />
[
{
"Header": {
@@ -36,7 +43,7 @@
"LVBranchID": "${reflexMvtStockInterface.lv_code?json_string}"
},
"ActorID": "${reflexMvtStockInterface.physical_depot_code?trim?json_string}",
"ActorID": "${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)}",
"Movement": {
"DateTime": {
@@ -46,7 +53,11 @@
"Author": "ReflexWMS-${reflexMvtStockInterface.ipg_move_creation_user_code?json_string}",
"ExternalMoveRef" : "${reflexMvtStockInterface.ipg_move_year_number} - ${reflexMvtStockInterface.ipg_move_number}",
"Type": "${MoveType_KV[reflexMvtStockInterface.ipg_move_type]!reflexMvtStockInterface.ipg_move_type}",
"Reason": "${reflexMvtStockInterface.miscellaneous_receipts_despatches_code?json_string}",
<#if reflexMvtStockInterface.ipg_move_type == "520" >
"Reason": " Direct Transfert ${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)} to ${RFXtoRPprefixDepot(reflexMvtStockInterface.transfer_consignee_physical_depot_code?trim?json_string)}",
<#else>
"Reason": "${reflexMvtStockInterface.miscellaneous_receipts_despatches_code?json_string}",
</#if>
"ExternalInfo" : "${reflexMvtStockInterface.stock_move_reference?json_string}",
<#if reflexMvtStockInterface.ipg_move_operation_year_number!= 0>
"OperationReference": "${reflexMvtStockInterface.ipg_move_operation_year_number} - ${reflexMvtStockInterface.ipg_move_operation_number}",
@@ -55,7 +66,7 @@
"Quantity":
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
<#if reflexMvtStockInterface.move_sign == "+">
<#if reflexMvtStockInterface.move_sign == "+" || reflexMvtStockInterface.ipg_move_quantity_in_base_lvs <= 0 >
"Value": ${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs}
<#else>
"Value": -${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs}

View File

@@ -1,5 +1,11 @@
<#-- use protobuf of class HsaIpgMove to find Reflex WMS fields names -->
<#-- use protobuf of class HsaIpgMove 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)
"SegmentationKeys": [
{
"Key": "Grade",

View File

@@ -1,7 +1,7 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
@@ -18,14 +18,10 @@
<#assign item = JsonUtil.jsonToMap(dataRfx)>
[
{
<#if item.logistical_variant_list?? >
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaItm_ItemCreated.ftl">
<#else>
<#stop "no LV for the item">
</#if>
}
]
<#break>
@@ -46,6 +42,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -40,6 +40,6 @@
]
<#break>
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -12,12 +12,12 @@
{
"LVID": "${lv.logistical_variant_code?json_string}",
"Name" : "${lv.lv_type_code?json_string}",
<#if lv.id_list??>
<#if lv.id_list?? && (lv.id_list?size == lv.id_list?filter(l ->l??)?size)>
"Codes": [
<#list lv.id_list as id>
{
"Key": "${id.logistical_variant_ID_type_code?json_string!""}",
"Value": "${id.logistical_variant_ID_code?json_string!""}"
"Key": "${(id.logistical_variant_ID_type_code!"")?json_string}",
"Value": "${(id.logistical_variant_ID_code!"")?json_string}"
}<#sep>,</#sep>
</#list>
],

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaItmLv to find Reflex Wms fields names -->
<#-- use protobuf of class HsaItmLv 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

@@ -21,13 +21,22 @@
},
<#-- Item metadata inclusion -->
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">,
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">
<#-- Item Photo URI could be added here -->
<#--"PhotoURI": " ", -->
<#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}"
</#if>
</#if>
<#-- Loop for the Logistical Variants - LV -->
<#if item.logistical_variant_list??>
<#if item.logistical_variant_list?? && (item.logistical_variant_list?size == item.logistical_variant_list?filter(l ->l??)?size)>
,
"LogisticVariants": [
<#list item.logistical_variant_list as logistical_variant>
@@ -35,12 +44,12 @@
"LVID": "${logistical_variant.logistical_variant_code?json_string}",
"Name" : "${logistical_variant.lv_type_code?json_string}",
<#if logistical_variant.id_list??>
<#if logistical_variant.id_list?? && (logistical_variant.id_list?size == logistical_variant.id_list?filter(l ->l??)?size)>
"Codes": [
<#list logistical_variant.id_list as id>
{
"Key": "${id.logistical_variant_ID_type_code?json_string!""}",
"Value": "${id.logistical_variant_ID_code?json_string!""}"
"Key": "${(id.logistical_variant_ID_type_code!"")?json_string}",
"Value": "${(id.logistical_variant_ID_code!"")?json_string}"
}<#sep>,</#sep>
</#list>
],

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaItm to find Reflex Wms fields names -->
<#-- use protobuf of class HsaItm 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

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaItm to find Reflex Wms fields names -->
<#-- use protobuf of class HsaItm 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": [ ]

89
RFXtoRP_HsaLstCarSta.ftl Normal file
View File

@@ -0,0 +1,89 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#include "ActorPrefix.ftl">
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = Update ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt_status = JsonUtil.jsonToMap(dataRfx)>
<#if !carrier_apt_status.status?? || carrier_apt_status.appointment_year_number==0>
<#stop >
</#if>
[
{
<#switch carrier_apt_status.status.carrier_status_code>
<#case "010"> <#--Carrier Expected -->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_CarrierExpected.ftl">
<#break>
<#case "020"> <#--Carrier Arrived-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierArrived>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_CarrierArrived.ftl">
<#break>
<#case "040"> <#--Unloading Started -->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl">
<#break>
<#case "050"> <#--Unloading Completed-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl">
<#break>
<#case "060"> <#--Loading Started-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_LoadingStarted.ftl">
<#break>
<#case "070"> <#--Loading Completed-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl">
<#break>
<#case "090"> <#--Carrier Departed-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierDeparted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl">
<#break>
<#default>
<#stop 'this updated appointment Status not implemented'>
</#switch>
}
]
<#break>
<#case "D">
<#-- *********************************************** Action = Delete ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt_status = JsonUtil.jsonToMap(dataRfx)>
<#stop 'Delete Appointment Status not implemented' >
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"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 !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -1,7 +1,7 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
@@ -16,8 +16,8 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) />
[
<#if preparationStatusInterface.preparation_type_code=="010" || preparationStatusInterface.preparation_type_code=="030">
<#--**Pick batch runned (200) **-->
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!="">
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationExpected>
@@ -65,17 +65,17 @@
</#if>
</#if>
<#else>
<#stop "PRO reference is empty">
<#stop >
</#if>
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#stop "event not supported (case D)">
<#stop >
<#break>
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -1,6 +1,6 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) />
<#assign preparation_status_datetime = RfxDateTimetoUTCWithTimezone(preparationStatusInterface.preparation_status_datetime,time_zone_rfx) />
[
{
@@ -8,7 +8,11 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!="">
"RefID": "${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#else>
"RefID": "O${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_year}${preparationStatusInterface.preparation_order_number}",
</#if>
"RefDate": {
"DateTime": "${preparation_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -1,13 +1,17 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) />
<#assign preparation_status_datetime = RfxDateTimetoUTCWithTimezone(preparationStatusInterface.preparation_status_datetime,time_zone_rfx) />
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!="">
"RefID": "${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#else>
"RefID": "O${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_year}${preparationStatusInterface.preparation_order_number}",
</#if>
"RefDate": {
"DateTime": "${preparation_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -1,13 +1,17 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) />
<#assign preparation_status_datetime = RfxDateTimetoUTCWithTimezone(preparationStatusInterface.preparation_status_datetime,time_zone_rfx) />
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!="">
"RefID": "${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#else>
"RefID": "O${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_year}${preparationStatusInterface.preparation_order_number}",
</#if>
"RefDate": {
"DateTime": "${preparation_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -1,13 +1,17 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) />
<#assign preparation_status_datetime = RfxDateTimetoUTCWithTimezone(preparationStatusInterface.preparation_status_datetime,time_zone_rfx) />
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!="">
"RefID": "${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#else>
"RefID": "O${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_year}${preparationStatusInterface.preparation_order_number}",
</#if>
"RefDate": {
"DateTime": "${preparation_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -1,13 +1,17 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) />
<#assign preparation_status_datetime = RfxDateTimetoUTCWithTimezone(preparationStatusInterface.preparation_status_datetime,time_zone_rfx) />
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!="">
"RefID": "${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}",
<#else>
"RefID": "O${preparationStatusInterface.physical_depot_code?trim?json_string}${preparationStatusInterface.activity_code?trim?json_string}${preparationStatusInterface.preparation_order_originator_code?trim?json_string}${preparationStatusInterface.preparation_order_year}${preparationStatusInterface.preparation_order_number}",
</#if>
"RefDate": {
"DateTime": "${preparation_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -2,6 +2,9 @@
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
@@ -17,7 +20,7 @@
<#assign actor = JsonUtil.jsonToMap(dataRfx)>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreated>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreatedv2>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaSup_ActorCreated.ftl">
@@ -41,6 +44,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -4,44 +4,41 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${actor.code?trim?json_string}"
"RefID": "${RFXtoRPprefixSupplier(actor.code?trim?json_string)}"
},
"Payload": {
"Name": "${actor.designation?json_string}",
"ManagedStock": false,
"IsCarrier": false,
<#-- ***Partner ID could be added here *** -->
<#-- "PartnerID": "${}", -->
<#--
<#include "RFXtoRP_HsaSup_ActorCreated_Metadata.ftl">,
-->
"Address":
{
<#-- if Reflex WMS address is structured -->
<#-- if HARDIS WMS address is structured -->
<#if actor.supplier_structured_address?? >
"Name": "${actor.supplier_structured_address.name_or_company?json_string}",
"StreetAddressOne" : "${actor.supplier_structured_address.street_and_PO?json_string}",
"StreetAddressTwo" : "${actor.supplier_structured_address.additionnal_data?json_string}",
"PostalCode" : "${actor.supplier_structured_address.postal_code?json_string}",
"City" : "${actor.supplier_structured_address.post_code_area_name?json_string}",
"CountryCode" : "${actor.supplier_structured_address.country_code?json_string}",
<#assign isCountryCode = JsonUtil.isCountryCode(actor.supplier_structured_address.country_code?upper_case) />
<#if isCountryCode>
"CountryCode" : "${actor.supplier_structured_address.country_code?upper_case?json_string}",
<#else>
"CountryCode" : "",
</#if>
"ProvinceCode": "${actor.supplier_structured_address.territorial_div_code?json_string}",
"State": "${actor.supplier_structured_address.country_designation?json_string}"
<#-- if Reflex WMS address is not structured -->
<#-- if HARDIS WMS address is not structured -->
<#else>
<#if actor.optional_attributes?? >
"Name": "${actor.optional_attributes.company_name?json_string}",
"StreetAddressOne" : "${actor.optional_attributes.address_1?json_string}",
"StreetAddressTwo" : "${actor.optional_attributes.address_2?json_string}",
"StreetAddressThree" : "${actor.optional_attributes.address_3?json_string}"
"StreetAddressThree" : "${actor.optional_attributes.address_3?json_string}",
"CountryCode" : ""
</#if>
</#if>
},
<#if actor.optional_attributes?? >
"Phones": ["${actor.optional_attributes.telephone?json_string}",

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaSup to find Reflex WMS fields names -->
<#-- use protobuf of class HsaSup 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

@@ -4,9 +4,8 @@
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${actor.code?trim?json_string}"
"RefID": "${RFXtoRPprefixSupplier(actor.code?trim?json_string)}"
},
"Payload": {}
}
]

55
RFXtoRP_HsrAntRec.ftl Normal file
View File

@@ -0,0 +1,55 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#-- *********************************************** Action = CREATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)>
[
{
<#--<#assign apiReflexPlatformID = ApiReflexPlatformID.OrderCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrAntRec_Created.ftl">-->
<#stop "create anticipated receipt">
}
]
<#break>
<#case "U">
<#-- *********************************************** Action = UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop "update anticipated receipt">
}
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop "delete anticipated receipt">
}
]
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,81 @@
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
[
{
<#assign creationDate = RfxDateTimetoUTCWithTimezone(dataRfx.@timestamp,time_zone_rfx) />
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"CustomFields": [
{
"Key": "anticipated_receipt_reference",
"Value": "${ancReceipt.anticipated_receipt_reference?json_string}"
},
{
"Key": "anticipated_receipt_year",
"Value": "${ancReceipt.anticipated_receipt_year?json_string}"
},
{
"Key": "anticipated_receipt_number",
"Value": "${ancReceipt.anticipated_receipt_number?json_string}"
},
{
"Key": "originator_code",
"Value": "${ancReceipt.originator_code?json_string}"
},
{
"Key": "activity_code",
"Value": "${ancReceipt.activity_code?json_string}"
},
{
"Key": "depot_code",
"Value": "${ancReceipt.physical_depot_code?json_string}"
}
],
"RefID": "${ancReceipt.anticipated_receipt_reference?json_string}"
},
"Payload": {
"ShipFrom": {
"ActorID": "${RFXtoRPprefixSupplier(ancReceipt.original_code?json_string)}"
},
"ShipTo": {
"ActorID": "${RFXtoRPprefixDepot(ancReceipt.physical_depot_code?json_string)}"
},
"CreationDateTime": {
"DateTime": "${creationDate}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"LanguageCodeISO6391":"fr",
<#-- Header Metadata inclusion -->
<#include "RFXtoRP_HsrAntRec_Created_HeaderMetadata.ftl">,
"Lines": [
<#list ancReceipt.line_list?filter(l -> l??) as line>
{
<#if line.anticipated_receipt_reference_line_no?? && line.anticipated_receipt_reference_line_no!=0>
"LineID": ${line.anticipated_receipt_reference_line_no},
<#else>
"LineID": ${line.anticipated_receipt_line_number},
</#if>
<#-- Line Metadata inclusion -->
<#include "RFXtoRP_HsrAntRec_Created_LineMetadata.ftl">,
"RequestedContent":{
"Goods":{
"ItemID":"${line.item_code?trim?json_string!"0"}",
"LVBranchID":"${line.item_lv_code?trim?json_string!"0"}",
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl">
},
"Quantity" :
{
"LVID": "${quantity_in_base_lv_RP_Cst}",
"Value": "${line.planned_quantity_in_base_lv!0}"
}
}
}<#sep>,</#sep>
</#list>
]
}
}
]

View File

@@ -0,0 +1,19 @@
<#-- use protobuf of class HsrReceiptList 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": [
{
"Key": "OrderType",
"Value": { "String" : "${order.optional_attributes.reason_code}"}
}
],
-->
"MetaData": [ ]

View File

@@ -0,0 +1,10 @@
<#-- use protobuf of class HsrReceiptList 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

@@ -0,0 +1,47 @@
<#-- use protobuf of class HsrReceiptList 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)
"SegmentationKeys": [
{
"Key": "Grade",
"Value": { "String" : "${line.grade_code}"}
},
{
"Key": "Owner",
"Value": { "String" : "${line.owner_code}"}
},
{
"Key": "BatchNumber",
<#if reflexMvtStockInterface.batch_1 == "">
"Value": { "String" : "no batch"}
<#else>
"Value": { "String" : "${line_without_detail.batch_1}"}
</#if>
},
{
"Key": "HeldForSpecificCode",
<#if line_without_detail.hold_for_specific_code == "true">
"Value": { "Bool" : "True"}
<#else>
"Value": { "Bool" : "False"}
},
{
<#assign manufacturing_date = line_without_detail.ipg_date_of_manufacture_date?datetime(rfx_date_format_default)?iso_utc />
"Key": "ManufacturingDate",
"Value": "Timestamp": {
"AuthorTimeZone": "${time_zone_rfx}",
"DateTime": "${manufacturing_date}"
}
}
]
-->
"SegmentationKeys": [ ]

144
RFXtoRP_HsrCarrierApt.ftl Normal file
View File

@@ -0,0 +1,144 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS-WMS -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#include "ActorPrefix.ftl">
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign partnerApplicationRP = partnerApplication>
<#assign aDateTime = .now>
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt = JsonUtil.jsonToMap(dataRfx)>
<#switch cloudEventMsg.action>
<#case "C">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceBookAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingForceBookAppointment.ftl">
}
]
<#break>
<#case "U">
<#-- *********************************************** Action = Update ********************-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.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")>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingCancelAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingCancelAppointment.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="100"> <#--Carrier Arrived-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierArrived>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierArrived.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="210"> <#--Unloading Started -->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_UnloadingStarted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="290"><#--Unloading Completed-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_UnloadingCompleted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="310"><#--Loading Started-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_LoadingStarted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="390"><#--Loading Completed-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_LoadingCompleted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="500"><#--Carrier Departed-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierDeparted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierDeparted.ftl">
}
]
<#else>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingWMSUpdateAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingWMSUpdateAppointment.ftl">
}
]
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
]
<#break>
<#case "D">
<#-- *********************************************** Action = Delete ******************** -->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingCancelAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingCancelAppointment.ftl">
}
]
<#break>
<#default>
<#stop >
</#switch>

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

@@ -0,0 +1,60 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
{
"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_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}"
}
]
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,9 @@
<#-- A décommenter si besoin de les utiliser-->
<#-- Uncomment if you need to use them-->
<#--{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentMetaDataUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdatedToConfigure.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-->
<#-- "MetaData": [
{
"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

@@ -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

@@ -0,0 +1,180 @@
[
<#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" >
</#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>
<#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}",
<#else>
"OrderID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
</#if>
"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,161 @@
[
{
<#assign update_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
"Header":{
"ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
},
"ID":{
"RefDate": {
"DateTime": "${update_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.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": {
<#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>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
"TimeZone":"${time_zone_rfx}",
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
"Unloading" :
{
"Projects" : [
{
"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}",
<#else>
"OrderID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
</#if>
"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}"
}]
},
"Reason": "",
<#else>
<#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,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"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_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"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_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,3 @@
"CarrierInformation": [
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"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_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"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_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

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

View File

@@ -0,0 +1,6 @@
"SegmentationSelections": [
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"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}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
<#else>
"RefID": "${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!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"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}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
<#else>
"RefID": "${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!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -1,7 +1,7 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
@@ -17,7 +17,7 @@
<#assign depot = JsonUtil.jsonToMap(dataRfx)>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreated>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorCreatedv2>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrDepot_ActorCreated.ftl">
@@ -41,6 +41,6 @@
<#default>
<#stop "event not supported">
<#stop >
</#switch>

View File

@@ -1,50 +1,52 @@
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${depot.physical_depot_code?trim?json_string}"
"RefID": "${RFXtoRPprefixDepot(depot.physical_depot_code?trim?json_string)}"
},
"Payload": {
"Name": "${depot.physical_depot_designation?json_string}",
"ManagedStock": true,
"IsCarrier": false,
<#-- ***Partner ID could be added here *** -->
<#-- "PartnerID": "${}", -->
<#--
<#include "RFXtoRP_HsrDepot_ActorCreated_Metadata.ftl">,
-->
"Address":
{
<#-- if Reflex WMS address is structured -->
<#-- if HARDIS WMS address is structured -->
<#if depot.physical_depot_structured_address?? >
"Name": "${depot.physical_depot_structured_address.name_or_company?json_string}",
"StreetAddressOne" : "${depot.physical_depot_structured_address.street_and_PO?json_string}",
"StreetAddressTwo" : "${depot.physical_depot_structured_address.additionnal_data?json_string}",
"PostalCode" : "${depot.physical_depot_structured_address.postal_code?json_string}",
"City" : "${depot.physical_depot_structured_address.post_code_area_name?json_string}",
"CountryCode" : "${depot.physical_depot_structured_address.country_code?json_string}",
<#assign isCountryCode = JsonUtil.isCountryCode(depot.physical_depot_structured_address.country_code?upper_case) />
<#if isCountryCode >
"CountryCode" : "${depot.physical_depot_structured_address.country_code?upper_case?json_string}",
<#else>
"CountryCode" : "",
</#if>
"ProvinceCode": "${depot.physical_depot_structured_address.territorial_div_code?json_string}",
"State": "${depot.physical_depot_structured_address.country_designation?json_string}"
<#-- if Reflex WMS address is not structured -->
<#-- if HARDIS WMS address is not structured -->
<#else>
<#if depot.physical_depot_address??>
"Name": "${depot.physical_depot_address.company_name?json_string}",
"StreetAddressOne" : "${depot.physical_depot_address.address_1?json_string}",
"StreetAddressTwo" : "${depot.physical_depot_address.address_2?json_string}",
"StreetAddressThree" : "${depot.physical_depot_address.address_3?json_string}"
"StreetAddressThree" : "${depot.physical_depot_address.address_3?json_string}",
"CountryCode" : ""
</#if>
</#if>
},
"Phones": ["${depot.physical_depot_address.telephone?json_string}",
"${depot.physical_depot_address.other_number?json_string}"
],
"Typology": "TYPOLOGY_UNKNOWN"
<#if depot.physical_depot_address??>
"Phones": ["${depot.physical_depot_address.telephone?json_string}",
"${depot.physical_depot_address.other_number?json_string}"
],
</#if>
"Typology": "TYPOLOGY_WAREHOUSE"
}
}
]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsrDepot to find Reflex WMS fields names -->
<#-- use protobuf of class HsrDepot 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

@@ -1,12 +1,14 @@
<#include "ReflexUtils.ftl">
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${depot.physical_depot_code?trim?json_string}"
"RefID": "${RFXtoRPprefixDepot(depot.physical_depot_code?trim?json_string)}"
},
"Payload": {}
}
]

40
RFXtoRP_HsrLoadInfo.ftl Normal file
View File

@@ -0,0 +1,40 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#stop>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign depot = JsonUtil.jsonToMap(dataRfx)>
[
{
}
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE *************************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign depot = JsonUtil.jsonToMap(dataRfx)>
[
{
}
]
<#break>
<#default>
<#stop >
</#switch>

32
RFXtoRP_HsrPackBranch.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign packBranch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Branch">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign packBranch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Branch">
<#break>
<#default>
<#stop >
</#switch>

32
RFXtoRP_HsrPackOrder.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign packOrder = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Order">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign packOrder = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Order">
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -1,11 +1,12 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#include "ReflexUtils.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#include "RFX_PartnerAPP_Settings.ftl">
<#assign aDateTime = .now>
@@ -16,78 +17,98 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)>
<#if preparationOrder.total_lv_validated !=0>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
}
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="">
,
<#if preparationOrder.total_lv_validated?? && preparationOrder.total_lv_validated !=0>
<#if preparationOrder.preparation_type_code=="010" || preparationOrder.preparation_type_code=="030">
<#if preparationOrder.preparation_line_lst??>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCarrierUpdated>
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_CarrierUpdated.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.OrderCarrierUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl">
}
</#if>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign HUadded_packing_datetime = RfxDateTimetoUTC(preparation_line.confirmation_datetime,time_zone_offset_rfx) />
<#if despatched_ipg.consignment_unit_id!="">
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl">
}
</#if>
<#if despatched_ipg.carton_number != "000000000000000000" && despatched_ipg.carton_number!=despatched_ipg.hd_number >
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitHUsAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitHUsAdded.ftl">
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
},
<#include "RFXtoRP_HsrPrepa_ExecutionflowMetadataUpdated.ftl">
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
}
</#if>
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="">
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCarrierUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_CarrierUpdated.ftl">
}
</#if>
<#assign refIDHmap ={}>
<#assign hd_numberHmap ={}>
<#assign hd_numberHmapHUadded ={}>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? ) as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign HUadded_packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
<#if (!hd_numberHmap[despatched_ipg.hd_number]?? || !hd_numberHmap[despatched_ipg.carton_number]??) && (trackingNumberSource==2 || trackingNumberSource==3 || (despatched_ipg.consignment_unit_id!="" && trackingNumberSource==1))>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl">
}
</#if>
<#if despatched_ipg.carton_number != "000000000000000000" && despatched_ipg.carton_number!=despatched_ipg.hd_number >
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitHUsAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitHUsAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
}
<#if !hd_numberHmapHUadded[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 )>
<#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl">
}
</#if>
</#if>
</#list>
</#list>
</#list>
]
<#assign refIDHmap ={}>
]
<#else>
<#-- No line-->
<#stop>
</#if>
<#else>
<#-- Preparation Type not supported-->
<#stop>
</#if>
<#else>
<#stop "no confirmed quantity for the preparation - preparation closed">
<#-- no confirmed quantity for the preparation - preparation closed-->
<#stop>
</#if>
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#stop "event not supported (Case D)">
<#stop>
<#break>
<#default>
<#stop "event not supported">
<#stop>
</#switch>

View File

@@ -1,26 +1,38 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
<#list preparationOrder.preparation_line_lst?filter(l ->l.preparation_order_originator_reference!="") as preparation_line>
<#assign OrderOriginReference = preparation_line.preparation_order_originator_reference?trim?json_string>
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID":{
"RefID": "${OrderOriginReference}"
},
"Payload":{
"Carrier": {
"ActorID":"${preparationOrder.load_data.carrier_code?trim?json_string}"
<#assign refIDHmap_local ={}>
<#list preparationOrder.preparation_line_lst as preparation_line>
<#if preparation_line.preparation_order_originator_reference?? && preparation_line.preparation_order_originator_reference!="">
<#assign OrderOriginReference = "${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.preparation_order_originator_reference?trim?json_string}">
<#else>
<#assign OrderOriginReference = "O${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.pro_year}${preparation_line.pro_number}">
</#if>
<#if !refIDHmap_local[OrderOriginReference]?? >
<#if refIDHmap_local?size != 0 >
,
</#if>
<#assign refIDHmap_local +={OrderOriginReference,OrderOriginReference}>
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID":{
"RefID": "${OrderOriginReference}"
},
"Payload":{
"Carrier": {
"ActorID": "${RFXtoRPprefixCarrier(preparationOrder.load_data.carrier_code?trim?json_string)}"
}
<#-- Add transport grade code
<#if preparationOrder.transport_grade_code!="">
,
"CarrierService":"${preparationOrder.transport_grade_code?trim?json_string}"
</#if> -->
}
<#-- Add transport grade code
<#if preparationOrder.transport_grade_code!="">
,
"CarrierService":"${preparationOrder.transport_grade_code?trim?json_string}"
</#if> -->
}
}
<#sep>,</#sep>
</#list>
}
</#if>
</#list>
<#assign refIDHmap_local ={}>
]

View File

@@ -0,0 +1,27 @@
<#--
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID":{
"RefID": "${Your_Object_ID}"
},
"Payload":{
"MetaData": [
{
"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

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

View File

@@ -1,9 +1,10 @@
<#-- use protobuf of class HsrPrepa to find Reflex WMS fields names -->
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
<#--
"MetaData" :[
<#-- 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": [ ]

Some files were not shown because too many files have changed in this diff Show More