diff --git a/RFXtoRP_HsrAntRec.ftl b/RFXtoRP_HsrAntRec.ftl index e0555d0..c04b66a 100644 --- a/RFXtoRP_HsrAntRec.ftl +++ b/RFXtoRP_HsrAntRec.ftl @@ -17,9 +17,12 @@ <#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)> [ { - <#stop "creation anticipated receipt"> - } - ] + <#assign apiReflexPlatformID = ApiReflexPlatformID.OrderCreated> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsrAntRec_Created.ftl"> + } + ] <#break> <#case "U"> <#-- *********************************************** Action = UPDATE ******************** --> @@ -29,7 +32,7 @@ { <#stop "update anticipated receipt"> } - ] + ] <#break> <#case "D"> diff --git a/RFXtoRP_HsrAntRec_Created.ftl b/RFXtoRP_HsrAntRec_Created.ftl new file mode 100644 index 0000000..9ed2a18 --- /dev/null +++ b/RFXtoRP_HsrAntRec_Created.ftl @@ -0,0 +1,80 @@ +<#include "ReflexUtils.ftl"> +<#include "HfRpConfig.ftl"> +<#include "ActorPrefix.ftl"> +[ + { + <#assign creationDate = RfxDateTimetoUTCWithTimezone(dataRfx.time,time_zone_rfx) /> + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + "CustomFields": [ + { + "Key": "anticipated_receipt_reference", + "Value": "${ancReceipt.anticipated_receipt_reference?json_string}" + }, + { + "Key": "anticipated_receipt_year", + "Value": "${ancReceipt.anticipated_receipt_year?json_string}" + }, + { + "Key": "anticipated_receipt_number", + "Value": "${ancReceipt.anticipated_receipt_number?json_string}" + }, + { + "Key": "originator_code", + "Value": "${ancReceipt.originator_code?json_string}" + }, + { + "Key": "activity_code", + "Value": "${ancReceipt.activity_code?json_string}" + }, + { + "Key": "depot_code", + "Value": "${ancReceipt.depot_code?json_string}" + } + ], + "RefID": "${ancReceipt.anticipated_receipt_reference?json_string}" + }, + "Payload": { + "ShipFrom": { + "ActorID": "${RFXtoRPprefixSupplier(ancReceipt.original_code?json_string)}" + }, + "ShipTo": { + "ActorID": "${RFXtoRPprefixDepot(ancReceipt.depot_code?json_string)}" + }, + "CreationDateTime": { + "DateTime": "${creationDate}", + "AuthorTimeZone": "${time_zone_rfx}" + }, + <#-- Header Metadata inclusion --> + <#include "RFXtoRP_HsrAntRec_Created_HeaderMetadata.ftl">, + "Lines": [ + <#list ancReceipt.line_list?filter(l -> l??) as line> + { + <#if line.anticipated_receipt_reference_line_no?? && line.anticipated_receipt_reference_line_no!=""> + "LineID": ${line.anticipated_receipt_reference_line_no}, + <#else> + "LineID": ${line.anticipated_receipt_line_number}, + + <#-- Line Metadata inclusion --> + <#include "RFXtoRP_HsrAntRec_Created_LineMetadata.ftl">, + "RequestedContent":{ + "Goods":{ + "ItemID":"${line.item_code?trim?json_string!"0"}", + "LVBranchID":"${line.item_lv_code?trim?json_string!"0"}", + <#-- Segmentation Keys inclusion --> + <#include "RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl"> + }, + "Quantity" : + { + "LVID": "${quantity_in_base_lv_RP_Cst}", + "Value": "${line.planned_quantity_in_base_lv!0}" + } + } + }<#sep>, + + ] + } +} +] diff --git a/RFXtoRP_HsrAntRec_Created_HeaderMetadata.ftl b/RFXtoRP_HsrAntRec_Created_HeaderMetadata.ftl new file mode 100644 index 0000000..40f44a9 --- /dev/null +++ b/RFXtoRP_HsrAntRec_Created_HeaderMetadata.ftl @@ -0,0 +1,19 @@ +<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names --> + +<#-- +<#-- Best practices: + If the SK is of type: + - string: add ?json_string (e.g. "${stock.batch_1?json_string}") + - boolean: possible values: true and false + - datetime: expected format: 2025-10-30T10:12:10.000Z + - decimal number: the separator is a point (e.g. 10.5) +"MetaData": [ + { + "Key": "OrderType", + "Value": { "String" : "${order.optional_attributes.reason_code}"} + } + ], +--> + + +"MetaData": [ ] \ No newline at end of file diff --git a/RFXtoRP_HsrAntRec_Created_LineMetadata.ftl b/RFXtoRP_HsrAntRec_Created_LineMetadata.ftl new file mode 100644 index 0000000..b920b69 --- /dev/null +++ b/RFXtoRP_HsrAntRec_Created_LineMetadata.ftl @@ -0,0 +1,10 @@ +<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names --> + +<#-- Best practices: + If the SK is of type: + - string: add ?json_string (e.g. "${stock.batch_1?json_string}") + - boolean: possible values: true and false + - datetime: expected format: 2025-10-30T10:12:10.000Z + - decimal number: the separator is a point (e.g. 10.5)--> + +"MetaData": [ ] \ No newline at end of file diff --git a/RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl b/RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl new file mode 100644 index 0000000..de24f8b --- /dev/null +++ b/RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl @@ -0,0 +1,47 @@ +<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names --> + +<#-- +<#-- Best practices: + If the SK is of type: + - string: add ?json_string (e.g. "${stock.batch_1?json_string}") + - boolean: possible values: true and false + - datetime: expected format: 2025-10-30T10:12:10.000Z + - decimal number: the separator is a point (e.g. 10.5) +"SegmentationKeys": [ + { + "Key": "Grade", + "Value": { "String" : "${line.grade_code}"} + }, + { + "Key": "Owner", + "Value": { "String" : "${line.owner_code}"} + }, + { + "Key": "BatchNumber", + <#if reflexMvtStockInterface.batch_1 == ""> + "Value": { "String" : "no batch"} + <#else> + "Value": { "String" : "${line_without_detail.batch_1}"} + + }, + { + "Key": "HeldForSpecificCode", + <#if line_without_detail.hold_for_specific_code == "true"> + "Value": { "Bool" : "True"} + <#else> + "Value": { "Bool" : "False"} + }, + + { + <#assign manufacturing_date = line_without_detail.ipg_date_of_manufacture_date?datetime(rfx_date_format_default)?iso_utc /> + "Key": "ManufacturingDate", + "Value": "Timestamp": { + "AuthorTimeZone": "${time_zone_rfx}", + "DateTime": "${manufacturing_date}" + } + } + + ] + +--> +"SegmentationKeys": [ ] \ No newline at end of file