reflex-wms-connector/RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl
2025-11-18 10:41:35 +01:00

85 lines
4.0 KiB
Java

[
{
"Header":{
"ProjectID": "${projectRP}"
},
"ActorID": "${RPtoRFXprefixDepot("DPF")}",
"AppointmentID": "${carrier_apt.appointment_reference?json_string}",
"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_end_datetime?starts_with("00")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#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) />
<#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_end_datetime?starts_with("00")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#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) />
<#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>
"AppointmentType": "${appointmentType}",
"Emails": ["francis.reat@hardis-group.com","laurie.montant@hardis-group.com"], <#-- à changer -->
"SegmentationSelections" : [
{
"SegmentationID" : "secteur",<#-- à changer -->
"SegmentationValueID" : "n1-mh0plpq3-6n1x56plog4"<#-- à 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>
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
"ProjectID": "${projectRP}",
"Quantities": [
{
"UnitID": "PAL", <#-- à changer -->
"Value": 1 <#-- à changer -->
}
]
}<#sep>,</#sep>
</#list>
]
<#else>
"ProjectID": "${projectRP}",
"Reason": "no commission", <#-- à changer -->
</#if>
<#if carrier_apt.planned_carrier?? && carrier_apt.planned_carrier!="">
"CarrierName": "${carrier_apt.planned_carrier}",
</#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) />
<#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>
}]
}
]