From d355aa5676ec5bd1faab0c573ac9ce2590f57c20 Mon Sep 17 00:00:00 2001 From: Laurie Montant Date: Wed, 26 Nov 2025 11:58:44 +0100 Subject: [PATCH 1/5] RDV --- RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl index 677fd91..d9b8359 100644 --- a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl +++ b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl @@ -15,6 +15,7 @@ "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", + "Emails": ["francis.reat@hardis-group.com","laurie.montant@hardis-group.com"], <#-- à changer --> <#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?size == carrier_apt.physical_receipt_list?filter(l ->l??)?size)> "Commissions": [ <#list carrier_apt.physical_receipt_list as physical_receipt> @@ -31,6 +32,8 @@ }<#sep>, ] + <#else> + "Reason": "no commission", <#-- à changer --> } From d7c78145ea2ec04a2ae4810354933e5be4b560be Mon Sep 17 00:00:00 2001 From: Laurie Montant Date: Wed, 26 Nov 2025 14:43:05 +0100 Subject: [PATCH 2/5] RDV --- ...rCarrierApt_SiteForceUpdateAppointment.ftl | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl index d9b8359..4e75dba 100644 --- a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl +++ b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl @@ -35,6 +35,28 @@ <#else> "Reason": "no commission", <#-- à changer --> + "Slots": [{ + <#-- calcul de de la durée en fonction des start et end time--> + "DurationInSeconds": "${duration}", + <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" > + <#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")> + <#stop "planned_unloading_start_datetime field of appointmend is not initialized" > + + + "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" > + + "StartDateTime": "${carrier_apt.planned_load_start_datetime}" + <#else> + <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> + <#stop "Not managed"> + + + + }] } ] \ No newline at end of file From b2ca7897ebec7a1b8833e960b6aeb2251bcf05c8 Mon Sep 17 00:00:00 2001 From: Laurie Montant Date: Wed, 26 Nov 2025 15:33:10 +0100 Subject: [PATCH 3/5] RDV --- ...rCarrierApt_SiteForceUpdateAppointment.ftl | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl index 4e75dba..b527d1d 100644 --- a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl +++ b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl @@ -14,6 +14,34 @@ "AppointmentID": "${carrier_apt.physical_depot?json_string}${carrier_apt.year_number}${carrier_apt.appointment_number}", + <#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" > + + <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING> + <#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) /> + <#if (duration <= 0)> + <#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" > + + <#else> + <#if 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" > + + <#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" > + + <#else> + <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> + <#stop "Not managed"> + <#else> + <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN> + <#assign duration = 0 /> <#-- à confirmer --> + + + "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "Emails": ["francis.reat@hardis-group.com","laurie.montant@hardis-group.com"], <#-- à changer --> <#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?size == carrier_apt.physical_receipt_list?filter(l ->l??)?size)> From 135862972ddfac17925048c26ebd17dabc7f782c Mon Sep 17 00:00:00 2001 From: Laurie Montant Date: Wed, 26 Nov 2025 15:39:33 +0100 Subject: [PATCH 4/5] RDV --- RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl index b527d1d..bde8c56 100644 --- a/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl +++ b/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl @@ -59,7 +59,7 @@ ] }<#sep>, - ] + ], <#else> "Reason": "no commission", <#-- à changer --> From df3df0e93373de90f7b036c3f8aad6023704683c Mon Sep 17 00:00:00 2001 From: Laurie Montant Date: Wed, 26 Nov 2025 17:35:20 +0100 Subject: [PATCH 5/5] RDV --- RFXtoRP_HsaLstCarSta.ftl | 30 ++++++++++++++++----- RFXtoRP_HsaLstCarSta_CarrierArrived.ftl | 13 ++++----- RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl | 11 ++++---- RFXtoRP_HsaLstCarSta_CarrierExpected.ftl | 11 ++++---- RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl | 22 +++++++++++++++ RFXtoRP_HsaLstCarSta_LoadingStarted.ftl | 22 +++++++++++++++ RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl | 11 ++++---- RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl | 11 ++++---- 8 files changed, 99 insertions(+), 32 deletions(-) create mode 100644 RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl create mode 100644 RFXtoRP_HsaLstCarSta_LoadingStarted.ftl diff --git a/RFXtoRP_HsaLstCarSta.ftl b/RFXtoRP_HsaLstCarSta.ftl index 87c97eb..c1bbfbc 100644 --- a/RFXtoRP_HsaLstCarSta.ftl +++ b/RFXtoRP_HsaLstCarSta.ftl @@ -22,29 +22,47 @@ [ { <#switch carrier_apt_status.status.carrier_status_code> - <#case "010"> <#-- Transporteur attendu --> + <#case "010"> <#-- Carrier Expected --> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected> <#-- à revoir --> "apiReflexPlatformID" : "${apiReflexPlatformID}", "datas" : <#include "RFXtoRP_HsaLstCarSta_CarrierExpected.ftl"> <#break> - <#case "020"> <#-- Transporteur arrivé sur site--> + <#case "020"> <#-- Carrier Arrived--> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierArrived> <#-- à revoir --> "apiReflexPlatformID" : "${apiReflexPlatformID}", "datas" : <#include "RFXtoRP_HsaLstCarSta_CarrierArrived.ftl"> <#break> - <#case "040"> <#-- Déchargement commencé --> + <#case "040"> <#-- Unloading Started --> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingStarted> <#-- à revoir --> "apiReflexPlatformID" : "${apiReflexPlatformID}", "datas" : <#include "RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl"> <#break> - <#case "050"> <#-- Déchargement terminé--> - <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingStarted> <#-- à revoir --> + <#case "050"> <#-- Unloading Completed--> + <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingCompleted> <#-- à revoir --> "apiReflexPlatformID" : "${apiReflexPlatformID}", "datas" : - <#include "RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl"> + <#include "RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl"> + <#break> + <#case "060"> <#-- Loading Started--> + <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingStarted> <#-- à revoir --> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsaLstCarSta_LoadingStarted.ftl"> + <#break> + <#case "070"> <#-- Loading Completed--> + <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingCompleted> <#-- à revoir --> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl"> + <#break> + <#case "090"> <#-- Carrier Departed--> + <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierDeparted> <#-- à revoir --> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl"> <#break> <#default> diff --git a/RFXtoRP_HsaLstCarSta_CarrierArrived.ftl b/RFXtoRP_HsaLstCarSta_CarrierArrived.ftl index 6426fbe..256ab68 100644 --- a/RFXtoRP_HsaLstCarSta_CarrierArrived.ftl +++ b/RFXtoRP_HsaLstCarSta_CarrierArrived.ftl @@ -5,14 +5,15 @@ "ProjectID": "${projectRP}" }, "ID": { - <#if (!carrier_apt_status.appointment_reference?? || carrier_apt_status.appointment_reference == "")> - <#stop "appointment_reference is not valid or empty" > - - "RefID": "${carrier_apt_status.appointment_reference?trim?json_string}", - "RefDate": { + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + + "RefDate": { "DateTime": "${ref_datetime}", "AuthorTimeZone": "${time_zone_rfx}" - } + } }, "Payload":{ "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}" diff --git a/RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl b/RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl index 6426fbe..c39c0c3 100644 --- a/RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl +++ b/RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl @@ -5,14 +5,15 @@ "ProjectID": "${projectRP}" }, "ID": { - <#if (!carrier_apt_status.appointment_reference?? || carrier_apt_status.appointment_reference == "")> - <#stop "appointment_reference is not valid or empty" > - - "RefID": "${carrier_apt_status.appointment_reference?trim?json_string}", + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + "RefDate": { "DateTime": "${ref_datetime}", "AuthorTimeZone": "${time_zone_rfx}" - } + } }, "Payload":{ "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}" diff --git a/RFXtoRP_HsaLstCarSta_CarrierExpected.ftl b/RFXtoRP_HsaLstCarSta_CarrierExpected.ftl index 6426fbe..c39c0c3 100644 --- a/RFXtoRP_HsaLstCarSta_CarrierExpected.ftl +++ b/RFXtoRP_HsaLstCarSta_CarrierExpected.ftl @@ -5,14 +5,15 @@ "ProjectID": "${projectRP}" }, "ID": { - <#if (!carrier_apt_status.appointment_reference?? || carrier_apt_status.appointment_reference == "")> - <#stop "appointment_reference is not valid or empty" > - - "RefID": "${carrier_apt_status.appointment_reference?trim?json_string}", + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + "RefDate": { "DateTime": "${ref_datetime}", "AuthorTimeZone": "${time_zone_rfx}" - } + } }, "Payload":{ "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}" diff --git a/RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl b/RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl new file mode 100644 index 0000000..c39c0c3 --- /dev/null +++ b/RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl @@ -0,0 +1,22 @@ +[ + <#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) /> + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + + "RefDate": { + "DateTime": "${ref_datetime}", + "AuthorTimeZone": "${time_zone_rfx}" + } + }, + "Payload":{ + "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}" + } + } +] \ No newline at end of file diff --git a/RFXtoRP_HsaLstCarSta_LoadingStarted.ftl b/RFXtoRP_HsaLstCarSta_LoadingStarted.ftl new file mode 100644 index 0000000..c39c0c3 --- /dev/null +++ b/RFXtoRP_HsaLstCarSta_LoadingStarted.ftl @@ -0,0 +1,22 @@ +[ + <#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) /> + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + + "RefDate": { + "DateTime": "${ref_datetime}", + "AuthorTimeZone": "${time_zone_rfx}" + } + }, + "Payload":{ + "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}" + } + } +] \ No newline at end of file diff --git a/RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl b/RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl index 6426fbe..c39c0c3 100644 --- a/RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl +++ b/RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl @@ -5,14 +5,15 @@ "ProjectID": "${projectRP}" }, "ID": { - <#if (!carrier_apt_status.appointment_reference?? || carrier_apt_status.appointment_reference == "")> - <#stop "appointment_reference is not valid or empty" > - - "RefID": "${carrier_apt_status.appointment_reference?trim?json_string}", + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + "RefDate": { "DateTime": "${ref_datetime}", "AuthorTimeZone": "${time_zone_rfx}" - } + } }, "Payload":{ "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}" diff --git a/RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl b/RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl index 07b6b85..c39c0c3 100644 --- a/RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl +++ b/RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl @@ -5,14 +5,15 @@ "ProjectID": "${projectRP}" }, "ID": { - <#if (!carrier_apt_status.appointment_reference?? || carrier_apt_status.appointment_reference == "")> - <#stop "appointment_reference is not valid or empty" > - - "RefID": "${carrier_apt_status.appointment_reference?trim?json_string}", + <#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !=""> + "RefID": "${carrier_apt_status.appointment_reference?json_string}", + <#else> + "RefID": "${carrier_apt_status.physical_depot?json_string}${carrier_apt_status.appointment_year_number?json_string}${carrier_apt_status.appointment_number?json_string}", + "RefDate": { "DateTime": "${ref_datetime}", "AuthorTimeZone": "${time_zone_rfx}" - } + } }, "Payload":{ "ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"