Merge branch 'release/2.0' into 'main-2.0'

Release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!213
This commit is contained in:
Cedric RODIER 2025-12-23 14:40:06 +00:00
commit d92fa3e2df
17 changed files with 177 additions and 112 deletions

View File

@ -19,8 +19,8 @@
<#-- *********************************************** Action = Update ******************** --> <#-- *********************************************** Action = Update ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt_status = JsonUtil.jsonToMap(dataRfx)> <#assign carrier_apt_status = JsonUtil.jsonToMap(dataRfx)>
<#if !carrier_apt_status.status??> <#if !carrier_apt_status.status?? || carrier_apt_status.appointment_year_number==0>
<#stop 'the updated appointment Status not initialized'> <#stop >
</#if> </#if>
[ [
{ {

View File

@ -24,12 +24,6 @@
"datas" : "datas" :
<#include "RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl"> <#include "RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl">
}, },
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentCarrierExpected.ftl">
},
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
@ -120,7 +114,7 @@
} }
] ]
<#else> <#else>
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0)> <#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.SiteWMSUpdateAppointment> <#assign apiReflexPlatformID = ApiReflexPlatformID.SiteWMSUpdateAppointment>

View File

@ -1,26 +0,0 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
"RefID": "${carrier_apt.appointment_reference?json_string}${carrier_apt.physical_depot?json_string}${carrier_apt.year_number}${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.physical_depot?json_string}${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

@ -8,7 +8,7 @@
"AppointmentID": "${carrier_apt.appointment_reference?json_string}", "AppointmentID": "${carrier_apt.appointment_reference?json_string}",
<#else> <#else>
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}${carrier_apt.physical_depot?json_string}${carrier_apt.year_number}${carrier_apt.appointment_number}", "AppointmentID": "${carrier_apt.physical_depot?json_string}${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> <#else>
"AppointmentID": "${carrier_apt.physical_depot?json_string}${carrier_apt.year_number}${carrier_apt.appointment_number}", "AppointmentID": "${carrier_apt.physical_depot?json_string}${carrier_apt.year_number}${carrier_apt.appointment_number}",
</#if> </#if>
@ -35,10 +35,17 @@
</#if> </#if>
<#else> <#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#stop "Not managed"> <#if carrier_apt.planned_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> <#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN> <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 /> <#-- à confirmer --> <#assign duration = 0 />
</#if> </#if>
</#if> </#if>
</#if> </#if>
@ -93,12 +100,16 @@
<#include "RFXtoRP_HsrCarrierApt_Quantities.ftl"> <#include "RFXtoRP_HsrCarrierApt_Quantities.ftl">
} }
], ],
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "LOAD AND UNLOADING / ${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_designation?? && carrier_apt.appointment_designation!=""> <#if carrier_apt.appointment_designation?? && carrier_apt.appointment_designation!="">
"Reason": "${carrier_apt.appointment_designation?json_string}", "Reason": "${carrier_apt.appointment_designation?json_string}",
<#else> <#else>
"Reason": "No commission", "Reason": "No commission",
</#if> </#if>
</#if> </#if>
</#if>
"Slots": [{ "Slots": [{
<#-- calcul de de la durée en fonction des start et end time--> <#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}", "DurationInSeconds": "${duration}",
@ -106,7 +117,6 @@
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")> <#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" > <#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if> </#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}" "StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else> <#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
@ -115,7 +125,12 @@
</#if> </#if>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}" "StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else> <#else>
<#stop "Not managed"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
</#if>
</#if> </#if>
</#if> </#if>
}] }]

View File

@ -35,13 +35,22 @@
</#if> </#if>
<#else> <#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#stop "Not managed"> <#if carrier_apt.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> <#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN> <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 /> <#-- à confirmer --> <#assign duration = 0 /> <#-- à confirmer -->
</#if> </#if>
</#if> </#if>
</#if> </#if>
</#if>
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"CustomFields": [ "CustomFields": [
{ {

View File

@ -35,7 +35,14 @@
</#if> </#if>
<#else> <#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#stop "Not managed"> <#if carrier_apt.planned_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> <#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN> <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 /> <#-- à confirmer --> <#assign duration = 0 /> <#-- à confirmer -->
@ -58,7 +65,10 @@
"StartDateTime": "${carrier_apt.planned_load_start_datetime}" "StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else> <#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true"> <#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#stop "Not managed"> <#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
</#if> </#if>
</#if> </#if>
</#if> </#if>

View File

@ -27,14 +27,13 @@
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl"> <#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
}, },
<#include "RFXtoRP_HsrPrepa_ExecutionflowMetadataUpdated.ftl">
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched> <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl"> <#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
} }
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!=""> <#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="">
, ,
{ {

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

@ -27,6 +27,7 @@
<#case "CommissionsUpdated"> <#case "CommissionsUpdated">
<#assign appointment = eventRP.data /> <#assign appointment = eventRP.data />
[ [
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.value?? && l.value?has_content) as commission>
<#if eventRP.appointmentCustomFields?has_content> <#if eventRP.appointmentCustomFields?has_content>
{ {
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_number> <#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_number>
@ -42,6 +43,8 @@
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByRef.ftl"> <#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByRef.ftl">
} }
</#if> </#if>
<#sep>,</#sep>
</#list>
] ]
<#break> <#break>
<#-- *********************************************** Action = SlotUpdated ******************** --> <#-- *********************************************** Action = SlotUpdated ******************** -->

View File

@ -12,14 +12,24 @@
<#case "APPOINTMENT_TYPE_LOADING"> <#case "APPOINTMENT_TYPE_LOADING">
"unloading_appointment" : "false", "unloading_appointment" : "false",
"load_appointment" : "true", "load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break> <#break>
<#case "APPOINTMENT_TYPE_UNLOADING"> <#case "APPOINTMENT_TYPE_UNLOADING">
"unloading_appointment" : "true", "unloading_appointment" : "true",
"load_appointment" : "false", "load_appointment" : "false",
"planned_unloading_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}", <#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break> <#break>
<#default> <#default>
<#stop "appointment.AppointmentType not implemented" > <#stop "appointment.AppointmentType not implemented" >

View File

@ -12,20 +12,17 @@
<#if appointment.Commissions??> <#if appointment.Commissions??>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_UNLOADING"> <#if appointment.AppointmentType == "APPOINTMENT_TYPE_UNLOADING">
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.value?? && l.value?has_content) as custom>
{ {
"receipt_activity": "${custom.value.activity_code?json_string}", "receipt_activity": "${commission.value.activity_code?json_string}",
"originator_code": "${custom.value.originator_code?json_string}", "originator_code": "${commission.value.originator_code?json_string}",
"physical_receipt_reference": "${custom.value.reference?json_string}", "physical_receipt_reference": "${commission.value.reference?json_string}",
"receipt_year": "${custom.value.order_year?json_string}", "receipt_year": "${commission.value.order_year?json_string}",
"receipt_number": "${custom.value.order_number?json_string}" "receipt_number": "${commission.value.order_number?json_string}"
} }
<#sep>,</#sep>
</#list>
] ]
<#else> <#else>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING"> <#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING">
"appointment_designation":"LOADING" "appointment_designation":"${appointment.Reason!""?json_string}"
</#if> </#if>
</#if> </#if>
</#if> </#if>

View File

@ -11,20 +11,17 @@
<#if appointment.Commissions??> <#if appointment.Commissions??>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_UNLOADING"> <#if appointment.AppointmentType == "APPOINTMENT_TYPE_UNLOADING">
"physical_receipt_list": [ "physical_receipt_list": [
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.value?? && l.value?has_content) as custom>
{ {
"receipt_activity": "${custom.value.activity_code?json_string}", "receipt_activity": "${commission.value.activity_code?json_string}",
"originator_code": "${custom.value.originator_code?json_string}", "originator_code": "${commission.value.originator_code?json_string}",
"physical_receipt_reference": "${custom.value.reference?json_string}", "physical_receipt_reference": "${commission.value.reference?json_string}",
"receipt_year": "${custom.value.order_year?json_string}", "receipt_year": "${commission.value.order_year?json_string}",
"receipt_number": "${custom.value.order_number?json_string}" "receipt_number": "${commission.value.order_number?json_string}"
} }
<#sep>,</#sep>
</#list>
] ]
<#else> <#else>
<#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING"> <#if appointment.AppointmentType == "APPOINTMENT_TYPE_LOADING">
"appointment_designation":"LOADING" "appointment_designation":"${appointment.Reason!""?json_string}"
</#if> </#if>
</#if> </#if>
</#if> </#if>

View File

@ -13,14 +13,24 @@
<#case "APPOINTMENT_TYPE_LOADING"> <#case "APPOINTMENT_TYPE_LOADING">
"unloading_appointment" : "false", "unloading_appointment" : "false",
"load_appointment" : "true", "load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break> <#break>
<#case "APPOINTMENT_TYPE_UNLOADING"> <#case "APPOINTMENT_TYPE_UNLOADING">
"unloading_appointment" : "true", "unloading_appointment" : "true",
"load_appointment" : "false", "load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break> <#break>
<#default> <#default>
<#stop "appointment.AppointmentType not implemented" > <#stop "appointment.AppointmentType not implemented" >

View File

@ -12,14 +12,24 @@
<#case "APPOINTMENT_TYPE_LOADING"> <#case "APPOINTMENT_TYPE_LOADING">
"unloading_appointment" : "false", "unloading_appointment" : "false",
"load_appointment" : "true", "load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break> <#break>
<#case "APPOINTMENT_TYPE_UNLOADING"> <#case "APPOINTMENT_TYPE_UNLOADING">
"unloading_appointment" : "true", "unloading_appointment" : "true",
"load_appointment" : "false", "load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}", "planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break> <#break>
<#default> <#default>
<#stop "appointment.AppointmentType not implemented" > <#stop "appointment.AppointmentType not implemented" >

View File

@ -1 +1 @@
2.0.15+1 2.0.15+2