reflex-wms-connector/RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl
2025-11-14 14:27:33 +01:00

70 lines
3.5 KiB
Java

[
{
<#assign appointment_reception_start_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.planned_unloading_start_datetime,time_zone_rfx) />
<#assign appointment_expedition_start_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.planned_load_start_datetime,time_zone_rfx) />
<#assign creation_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
"Header":{
"ProjectID": "${projectRP}"
},
"ActorID": "${carrier_apt.physical_depot}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_RECEPTION>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso,time_zone_rfx) />
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_EXPEDITION>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso,time_zone_rfx) />
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_BOTH>
<#assign duration = 0 /> <#-- à confirmer -->
<#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 /> <#-- à confirmer -->
</#if>
</#if>
</#if>
"ProjectID": "${projectRP}",
"TimeZone": "${time_zone_rfx}",
"AppointmentID": "${carrier_apt.appointment_reference}",
<#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>
{
"ActorID": "${carrier_apt.physical_depot}",
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
"ProjectID": "${projectRP}",
"Quantities": [
{
"UnitID": "PAL", <#-- à changer -->
"Value": 1 <#-- à changer -->
}
]
}<#sep>,</#sep>
</#list>
],
</#if>
"Slots": [{
<#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_start_datetime?datetime.iso,time_zone_rfx) />
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if duration >= 0>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
</#if>
</#if>
</#if>
</#if>
}]
}
]