[ { "Header":{ "ProjectID": "${projectRP}" }, "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", <#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true"> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> "AppointmentID": "${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> "AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo --> <#else> <#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!=""> "AppointmentID": "${carrier_apt.appointment_reference?json_string}", <#else> "AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", "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" > <#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"> <#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" > <#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" > <#else> <#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN> <#assign duration = 0 /> "AppointmentType": "${appointmentType}", "Emails": ["${carrier_apt.creation_user_email?json_string}"], "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}" } ], <#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)> "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}", "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}", <#include "RFXtoRP_HsrCarrierApt_Quantities.ftl"> }<#sep>, ], <#else> "Commissions": [ { "ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}", "ProjectID": "${projectRP}", <#include "RFXtoRP_HsrCarrierApt_Quantities.ftl"> } ], <#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}", "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"> <#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> <#stop "Appointment type not supported" > }] } ]