Compare commits

..

1 Commits

Author SHA1 Message Date
201e58ed16 Release 1.3.0+1 2024-03-11 17:12:46 +01:00
19 changed files with 248 additions and 325 deletions

View File

@@ -27,9 +27,7 @@
<#assign priority_date = stock.priority_date?datetime(rfx_date_format_default)?iso_utc /> <#assign priority_date = stock.priority_date?datetime(rfx_date_format_default)?iso_utc />
<#if (stock.priority_date!="") && (stock.priority_date?starts_with("00")== false) > <#if (stock.priority_date!="") && (stock.priority_date?starts_with("00")== false) >
"PriorityDate" : "${priority_date}", "PriorityDate" : "${priority_date}",
<#else> </#if>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
<#-- Segmentation keys inclusion --> <#-- Segmentation keys inclusion -->
<#include "RFXtoRP_HfDtlStockLs_StockSnapshotted_SegmentationKeys.ftl"> <#include "RFXtoRP_HfDtlStockLs_StockSnapshotted_SegmentationKeys.ftl">

View File

@@ -12,51 +12,49 @@
<#assign reflexMvtStockInterface = JsonUtil.jsonToMap(dataRfx)> <#assign reflexMvtStockInterface = JsonUtil.jsonToMap(dataRfx)>
<#-- exclusion of the cases of an IPG move with quantity = 0 (weight modification) --> <#-- exclusion of the cases of an IPG move with quantity = 0 (weight modification) -->
<#if reflexMvtStockInterface.ipg_move_quantity_in_base_lvs != 0> <#if reflexMvtStockInterface.ipg_move_quantity_in_base_lvs != 0>
<#-- IPG moves translated into Stock moves -->
<#if reflexMvtStockInterface.ipg_move_type == "130" || <#-- IPG moves translated into Stock moves -->
reflexMvtStockInterface.ipg_move_type == "200" || <#if reflexMvtStockInterface.ipg_move_type == "130" ||
reflexMvtStockInterface.ipg_move_type == "210" || reflexMvtStockInterface.ipg_move_type == "200" ||
reflexMvtStockInterface.ipg_move_type == "220" || reflexMvtStockInterface.ipg_move_type == "210" ||
reflexMvtStockInterface.ipg_move_type == "230" || reflexMvtStockInterface.ipg_move_type == "220" ||
reflexMvtStockInterface.ipg_move_type == "240" || reflexMvtStockInterface.ipg_move_type == "230" ||
reflexMvtStockInterface.ipg_move_type == "260" || reflexMvtStockInterface.ipg_move_type == "240" ||
reflexMvtStockInterface.ipg_move_type == "290" || reflexMvtStockInterface.ipg_move_type == "260" ||
reflexMvtStockInterface.ipg_move_type == "300" || reflexMvtStockInterface.ipg_move_type == "290" ||
reflexMvtStockInterface.ipg_move_type == "400" || reflexMvtStockInterface.ipg_move_type == "300" ||
reflexMvtStockInterface.ipg_move_type == "410" || reflexMvtStockInterface.ipg_move_type == "400" ||
reflexMvtStockInterface.ipg_move_type == "420" reflexMvtStockInterface.ipg_move_type == "410" ||
reflexMvtStockInterface.ipg_move_type == "420"
>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.StockMoved>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaIpgMove_StockMoved.ftl">
}
]
<#else>
<#-- IPG moves translated into goods received (all type of receipt) -->
<#if reflexMvtStockInterface.ipg_move_type == "100" ||
reflexMvtStockInterface.ipg_move_type == "110" ||
reflexMvtStockInterface.ipg_move_type == "120"
> >
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.StockMoved> <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsaIpgMove_StockMoved.ftl"> <#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
} }
] ]
<#else> <#else>
<#-- IPG moves translated into goods received (all type of receipt) --> <#-- Case of IPG move type volontarilly ignored-->
<#if (reflexMvtStockInterface.ipg_move_type == "100" || <#stop>
reflexMvtStockInterface.ipg_move_type == "110" || </#if>
reflexMvtStockInterface.ipg_move_type == "120") >
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
}
]
<#else>
<#-- Case of IPG move type volontarilly ignored-->
<#stop " Reference receipt is empty">
</#if>
<#else>
<#stop>
</#if>
</#if> </#if>
<#else> <#else>
<#-- cases of an IPG move with quantity = 0 (weight modification)--> <#-- cases of an IPG move with quantity = 0 (weight modification)-->

View File

@@ -24,11 +24,7 @@
"Payload": { "Payload": {
"Goods": { "Goods": {
"ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}", "ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}",
<#if (reflexMvtStockInterface.ipg_priority_date!="") && (reflexMvtStockInterface.ipg_priority_date?starts_with("00")== false) > "PriorityDate": "${ipg_priority_datetime}",
"PriorityDate": "${ipg_priority_datetime}",
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
<#-- Segmentation keys inclusions --> <#-- Segmentation keys inclusions -->
<#include "RFXtoRP_HsaIpgMove_StockMoved_SegmentationKeys.ftl">, <#include "RFXtoRP_HsaIpgMove_StockMoved_SegmentationKeys.ftl">,

View File

@@ -17,55 +17,51 @@
<#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) /> <#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) />
[ [
<#--**Pick batch runned (200) **--> <#--**Pick batch runned (200) **-->
<#if preparationStatusInterface.preparation_order_originator_reference?? && preparationStatusInterface.preparation_order_originator_reference!=""> <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" >
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" > {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaProStatus_PreparationExpected.ftl">
}
<#else>
<#-- ** Collection started (300) and Preparation in progress (400)** -->
<#if preparationStatusInterface.preparation_status_type == "100" && (preparationStatusInterface.preparation_status_code == "300" || preparationStatusInterface.preparation_status_code == "400") >
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationExpected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsaProStatus_PreparationExpected.ftl"> <#include "RFXtoRP_HsaProStatus_PreparationStarted.ftl">
} }
<#else> <#else>
<#-- ** Collection started (300) and Preparation in progress (400)** --> <#-- ****Preparation dispatched (600)** -->
<#if preparationStatusInterface.preparation_status_type == "100" && (preparationStatusInterface.preparation_status_code == "300" || preparationStatusInterface.preparation_status_code == "400") > <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "600" >
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationStarted> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsaProStatus_PreparationStarted.ftl"> <#include "RFXtoRP_HsaProStatus_PreparationCompleted.ftl">
} },
<#else> {
<#-- ****Preparation dispatched (600)** --> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowTransportStarted>
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "600" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsaProStatus_PreparationCompleted.ftl"> <#include "RFXtoRP_HsaProStatus_TransportStarted.ftl">
}, }
<#else>
<#-- ****Preparation cancelled (650)**** -->
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "650" >
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowTransportStarted> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsaProStatus_TransportStarted.ftl"> <#include "RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl">
} }
<#else> <#else>
<#-- ****Preparation cancelled (650)**** --> <#stop>
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "650" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl">
}
<#else>
<#stop>
</#if>
</#if> </#if>
</#if> </#if>
</#if> </#if>
<#else>
<#stop "PRO reference is empty">
</#if> </#if>
] ]
<#break> <#break>

View File

@@ -2,7 +2,7 @@
<#-- input : message RFX --> <#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform --> <#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform -->
<#include "ReflexUtils.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project> <#assign projectRP = project>
<#assign organisationRP = organisation> <#assign organisationRP = organisation>
@@ -16,72 +16,75 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)> <#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)>
<#if preparationOrder.total_lv_validated !=0> <#if preparationOrder.total_lv_validated !=0>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared> <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl"> <#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.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!="" >
, ,
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCarrierUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCarrierUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_CarrierUpdated.ftl"> <#include "RFXtoRP_HsrPrepa_CarrierUpdated.ftl">
}, },
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.OrderCarrierUpdated> <#assign apiReflexPlatformID = ApiReflexPlatformID.OrderCarrierUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl"> <#include "RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl">
} }
</#if> </#if>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#if despatched_ipg.consignment_unit_id!="">
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl">
}
</#if>
<#if despatched_ipg.carton_number != "000000000000000000" && despatched_ipg.carton_number!=despatched_ipg.hd_number >
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitHUsAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitHUsAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
}
</#if>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign HUadded_packing_datetime = RfxDateTimetoUTC(preparation_line.confirmation_datetime,time_zone_offset_rfx) />
<#if despatched_ipg.consignment_unit_id!="">
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl">
}
</#if>
<#if despatched_ipg.carton_number != "000000000000000000" && despatched_ipg.carton_number!=despatched_ipg.hd_number >
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitHUsAdded>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitHUsAdded.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
}
</#if>
</#list>
</#list> </#list>
] <#-- <#sep>,</#sep> -->
<#else> </#list>
<#stop "no confirmed quantity for the preparation - preparation closed">
</#if>
]
<#else>
<#stop "no confirmed quantity for the preparation - preparation closed">
</#if>
<#break> <#break>
<#case "D"> <#case "D">
<#-- *********************************************** Action = DELETE ******************** --> <#-- *********************************************** Action = DELETE ******************** -->

View File

@@ -1,14 +1,13 @@
<#include "HfRpConfig.ftl"> <#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl"> <#include "ReflexUtils.ftl">
[ [
<#list preparationOrder.preparation_line_lst?filter(l ->l.preparation_order_originator_reference!="") as preparation_line>
<#assign OrderOriginReference = preparation_line.preparation_order_originator_reference?trim?json_string>
{ {
"Header": { "Header": {
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID":{ "ID":{
"RefID": "${OrderOriginReference}" "RefID": "${preparationOrder.preparation_line_lst[0].preparation_order_originator_reference?trim?json_string}"
}, },
"Payload":{ "Payload":{
"Carrier": { "Carrier": {
@@ -21,6 +20,4 @@
</#if> --> </#if> -->
} }
} }
<#sep>,</#sep>
</#list>
] ]

View File

@@ -1,25 +1,23 @@
<#include "HfRpConfig.ftl"> <#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl"> <#include "ReflexUtils.ftl">
[ [
<#assign dispatched3_datetime = RfxDateTimetoUTC(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_offset_rfx) /> <#assign dispatched_datetime = RfxDateTimetoUTC(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_offset_rfx) />
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line3> <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line>
<#list preparation_line3.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000") as despatched_ipg3> <#list preparation_line.despatched_ipg_list as despatched_ipg>
{ {
"Header": { "Header": {
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"RefID": "${despatched_ipg3.carton_number}", "RefID": "${despatched_ipg.carton_number}",
"RefDate": { "RefDate": {
"DateTime": "${dispatched3_datetime}", "DateTime": "${dispatched_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"
} }
}, },
"Payload": { } "Payload": { }
}<#sep>,</#sep> }<#sep>,</#sep>
</#list> </#list>
<#if preparation_line3.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000")?size!=0 >
<#sep>,</#sep> <#sep>,</#sep>
</#if>
</#list> </#list>
] ]

View File

@@ -2,7 +2,7 @@
<#include "ReflexUtils.ftl"> <#include "ReflexUtils.ftl">
[ [
<#assign dispatched_datetime = RfxDateTimetoUTC(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_offset_rfx) /> <#assign dispatched_datetime = RfxDateTimetoUTC(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_offset_rfx) />
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line> <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg> <#list preparation_line.despatched_ipg_list as despatched_ipg>
{ {
"Header": { "Header": {

View File

@@ -1,17 +1,13 @@
<#include "HfRpConfig.ftl"> <#include "HfRpConfig.ftl">
[ [
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line> <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg> <#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign packing_datetime = RfxDateTimetoUTC(preparation_line.confirmation_datetime,time_zone_offset_rfx) />
{ {
"Header": { "Header": {
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"RefDate": {
"AuthorTimeZone": "${time_zone_rfx}",
"DateTime": "${packing_datetime}"
},
<#if despatched_ipg.carton_number != "000000000000000000"> <#if despatched_ipg.carton_number != "000000000000000000">
"RefID": "${despatched_ipg.carton_number}" "RefID": "${despatched_ipg.carton_number}"
<#else> <#else>

View File

@@ -1,15 +1,12 @@
<#include "HfRpConfig.ftl"> <#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl"> <#include "ReflexUtils.ftl">
[ [
{ {
"Header": { "Header": {
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"RefDate": {
"AuthorTimeZone": "${time_zone_rfx}",
"DateTime": "${HUadded_packing_datetime}"
},
"RefID": "${despatched_ipg.hd_number}" "RefID": "${despatched_ipg.hd_number}"
}, },

View File

@@ -1,14 +1,13 @@
<#include "HfRpConfig.ftl"> <#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl"> <#include "ReflexUtils.ftl">
[ [
<#list preparationOrder.preparation_line_lst?filter(l ->l.preparation_order_originator_reference!="") as preparation_line>
<#assign OrderOriginReference = preparation_line.preparation_order_originator_reference?trim?json_string>
{ {
"Header": { "Header": {
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID":{ "ID":{
"RefID": "${OrderOriginReference}" "RefID": "${preparationOrder.preparation_line_lst[0].preparation_order_originator_reference?trim?json_string}"
}, },
"Payload":{ "Payload":{
"Carrier": { "Carrier": {
@@ -16,6 +15,4 @@
} }
} }
} }
<#sep>,</#sep>
</#list>
] ]

View File

@@ -16,18 +16,16 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)> <#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
[ [
{
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!=""> <#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
<#-- check preparation type code (internal order and reservation are ignored) --> <#-- check preparation type code (internal order and reservation are ignored) -->
<#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030"> <#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030">
<#-- Only if preparation order not confirmed --> <#-- Only if preparation order not confirmed -->
<#if preparation_order.preparation_order_confirmed == "false" > <#if preparation_order.preparation_order_confirmed == "false" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl"> <#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl">
}
<#else> <#else>
<#stop "preparation order already confirmed"> <#stop "preparation order already confirmed">
</#if> </#if>
@@ -38,7 +36,7 @@
<#else> <#else>
<#stop "PRO reference is empty"> <#stop "PRO reference is empty">
</#if> </#if>
}
] ]
<#break> <#break>
@@ -48,16 +46,12 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)> <#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
[ [
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!=""> {
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl"> <#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl">
} }
<#else>
<#stop "PRO reference is empty">
</#if>
] ]
<#break> <#break>

View File

@@ -45,34 +45,31 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)> <#assign receipt = JsonUtil.jsonToMap(dataRfx)>
[ [
<#if receipt.receipt_reference?? && receipt.receipt_reference!=""> <#if receipt.receipt_confirmed == "true" >
<#if receipt.receipt_confirmed == "true" > {
{ <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted> "apiReflexPlatformID" : "${apiReflexPlatformID}",
"apiReflexPlatformID" : "${apiReflexPlatformID}", "datas" :
"datas" : <#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl"> }
}
<#else>
<#if receipt.receipt_type = "030">
<#stop "ignored message because receipt type = transfert">
<#else>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
}
</#if>
</#if>
<#else> <#else>
<#stop "Receipt reference is empty"> <#if receipt.receipt_type = "030">
<#stop "ignored message because receipt type = transfert">
<#else>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
}
</#if>
</#if> </#if>
] ]
<#break> <#break>
@@ -82,17 +79,14 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)> <#assign receipt = JsonUtil.jsonToMap(dataRfx)>
[ [
<#if receipt.receipt_reference?? && receipt.receipt_reference!=""> {
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl"> <#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
}
<#else> }
<#stop "Receipt reference is empty">
</#if>
] ]
<#break> <#break>

View File

@@ -2,8 +2,6 @@
<#-- input : message RFX --> <#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform --> <#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform -->
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign eventRP = JsonUtil.jsonToMap(input)> <#assign eventRP = JsonUtil.jsonToMap(input)>
<#assign projectRP = project> <#assign projectRP = project>

View File

@@ -1,18 +1,7 @@
<#include "RPtoRFX_PrepOrder_DefaultHeaderData.ftl"> <#include "RPtoRFX_PrepOrder_DefaultHeaderData.ftl">
<#-- Valeurs par défaut Adresse -->
<#-- Default values --> <#assign aDateTime = .now>
<#assign typecode ="010">
<#assign titlecode ="1">
<#assign contacttypecode ="010">
<#assign adresstypecode ="010">
<#-- Si vous utilisez des acteurs non référencés, il faudra créer un destinataire "VIZ" dans Reflex WMS pour utiliser cette fonctionnalité -->
<#-- If you are using unreferenced actors, you will need to create a "VIZ" consignee in Reflex WMS to use this feature -->
<#assign defaultactor ="VIZ">
<#if executionflow.ShipTo.ActorID?? && executionflow.ShipTo.ActorID!="">
<#assign actorID = executionflow.ShipTo.ActorID >
<#else>
<#assign actorID = defaultactor >
</#if>
{ {
"id" : {"refid" : "${executionflow.OrderID}"}, "id" : {"refid" : "${executionflow.OrderID}"},
@@ -27,11 +16,11 @@
{ {
"originator_reference": "${executionflow.OrderID}", "originator_reference": "${executionflow.OrderID}",
"preparation_type_code": "${preparation_type_code}", "preparation_type_code": "${preparation_type_code}",
"end_consignee_code": "${actorID}", "end_consignee_code": "${executionflow.ShipTo.ActorID!""}",
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??> <#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}", "requested_delivery_start_datetime": "${executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime}",
<#else> <#else>
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(.now?iso_utc?string,time_zone_rfx)}", "requested_delivery_start_datetime": "${aDateTime?iso_utc}",
</#if> </#if>
"requested_delivery_date_type": "${requested_delivery_date_type}", "requested_delivery_date_type": "${requested_delivery_date_type}",
"consolidated_delivery": "${consolidated_delivery_flag}", "consolidated_delivery": "${consolidated_delivery_flag}",
@@ -45,62 +34,52 @@
"apt_with_intermediate": "false", "apt_with_intermediate": "false",
"load_grouping": "${load_grouping}" "load_grouping": "${load_grouping}"
}, },
<#if actorID == defaultactor > <#if executionflow.ShipTo.ActorID == "">
"address": { "address": {
"type_code": "${typecode}",
"title_code" : "${titlecode}",
"contact_type_code" : "${contacttypecode}",
"address_type_code" : "${adresstypecode}",
"first_name": "${executionflow.ShipTo.Contact.FirstName!""?json_string}", "first_name": "${executionflow.ShipTo.Contact.FirstName!""?json_string}",
"last_name" :"${executionflow.ShipTo.Contact.LastName!""?json_string}", "last_name" :"${executionflow.ShipTo.Contact.Lastname!""?json_string}",
"name_or_company_name" : "${executionflow.ShipTo.Contact.FirstName!""?json_string} ${executionflow.ShipTo.Contact.LastName!""?json_string}", "mail_address": "${executionflow.ShipTo.Actor.Emails[0]!""}",
<#if executionflow.ShipTo.Contact.Emails?? && executionflow.ShipTo.Contact.Emails[0]!=""> "mobile_phone_number": "${executionflow.ShipTo.Actor.Phones[0]!""}",
"mail_address": "${executionflow.ShipTo.Contact.Emails[0]}",
</#if>
<#if executionflow.ShipTo.Contact.Phones?? && executionflow.ShipTo.Contact.Phones[0]!="">
"mobile_phone_number": "${executionflow.ShipTo.Contact.Phones[0]}",
</#if>
"street_and_number_and_po_box": "${executionflow.ShipTo.Actor.Address.StreetAddressOne!""?json_string}", "street_and_number_and_po_box": "${executionflow.ShipTo.Actor.Address.StreetAddressOne!""?json_string}",
"additional_address_data_1": "${executionflow.ShipTo.Actor.Address.StreetAddressTwo!""?json_string}", "additional_address_data_1": "${executionflow.ShipTo.Actor.Address.StreetAddressTwo!""?json_string}",
"additional_address_data_2": "${executionflow.ShipTo.Actor.Address.StreetAddressThree!""?json_string}", "additional_address_data_2": "${executionflow.ShipTo.Actor.Address.StreetAddressThree!""?json_string}",
"postal_code": "${executionflow.ShipTo.Actor.Address.PostalCode!""}", "postal_code": "${executionflow.ShipTo.Actor.Address.PostalCode!""}",
"post_code_area_name" : "${executionflow.ShipTo.Actor.Address.City!""}",
"iso_country_code": "${executionflow.ShipTo.Actor.Address.CountryCode!""}" "iso_country_code": "${executionflow.ShipTo.Actor.Address.CountryCode!""}"
}, },
</#if> </#if>
<#if executionflow.Lines??> <#if executionflow.Lines??>
"line_list": [ "line_list": [
<#list executionflow.Lines as line> <#list executionflow.Lines as line>
<#-- ******* line MetaData and Segmentationkeys to maps ******** --> <#-- ******* line MetaData and Segmentationkeys to maps ******** -->
<#if line.MetaData??> <#if line.MetaData??>
<#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") /> <#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") />
</#if> </#if>
<#if line.RequestedContent.Goods.SegmentationKeys??> <#if line.RequestedContent.Goods.SegmentationKeys??>
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") /> <#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
</#if> </#if>
<#include "RPtoRFX_PrepOrder_DefaultLineData.ftl"> <#include "RPtoRFX_PrepOrder_DefaultLineData.ftl">
{ {
"originator_reference_line_number": ${line.LineID?number}, "originator_reference_line_number": ${line.LineID?number},
"item_code": "${line.RequestedContent.Goods.ItemID!""}", "item_code": "${line.RequestedContent.Goods.ItemID!""}",
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}", "item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
"base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0}, "base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
"owner_code_to_prepare" :"${owner_code_to_prepare}", "owner_code_to_prepare" :"${owner_code_to_prepare}",
"grade_code_to_prepare" :"${grade_code_to_prepare}", "grade_code_to_prepare" :"${grade_code_to_prepare}",
"input_order_data": "false", "input_order_data": "false",
"batch_1": "${batch_1}", "batch_1": "${batch_1}",
"base_lv_quantity": "true", "base_lv_quantity": "true",
"any_lv": "false" "any_lv": "false"
<#-- <#--
"stock_reservation": "false", "stock_reservation": "false",
"forced_priority_date_min_lead_time": "false", "forced_priority_date_min_lead_time": "false",
"temp_substitution_possible": "false", "temp_substitution_possible": "false",
"substitution_possible": "false" "substitution_possible": "false"
--> -->
} }<#sep>,</#sep>
<#sep>,</#sep> </#list>
</#list>
</#if> </#if>
] ]
} }
} }

View File

@@ -23,22 +23,8 @@
<#assign protected_flag ="false"/> <#assign protected_flag ="false"/>
<#assign automatic_generation_flag ="false"/> <#assign automatic_generation_flag ="false"/>
<#assign apt_with_end_consignee_flag="false"/> <#assign apt_with_end_consignee_flag="false"/>
<#assign load_grouping = "DEFAUT"/>
<#-- A supprimer si utilisation de la table de correspondance-->
<#--To be deleted if using the correspondence table-->
<#assign load_grouping = "default">
<#-- Table de correspondance Transporteur/Code regroupement chargement,
affectation à un chargement si paramétrage regroupement chargement+plan de base distribution-->
<#--Carrier / Load Grouping Code Correspondence Table,
Assigning to a load if you set up Load Grouping+Distribution Master Plan-->
<#-- Example -->
<#--<#if executionflow.Carrier.ActorID == "TEST" >
<#assign load_grouping = "TEST">
<#else>
<#assign load_grouping = "default">
</#if>-->

View File

@@ -1,5 +1,5 @@
<#include "RPtoRFX_Receipt_DefaultHeaderData.ftl"> <#include "RPtoRFX_Receipt_DefaultHeaderData.ftl">
<#assign aDateTime = .now>
{ {
"id" : {"refid" : "${executionflow.OrderID}"}, "id" : {"refid" : "${executionflow.OrderID}"},
"route" : "rest/public/v1/activities/{activity_code}/physical_depots/{physical_depot_code}/originators/{originator_code}/receipts", "route" : "rest/public/v1/activities/{activity_code}/physical_depots/{physical_depot_code}/originators/{originator_code}/receipts",
@@ -19,9 +19,9 @@
"carrier_code" : "${executionflow.Carrier.ActorID!""}", "carrier_code" : "${executionflow.Carrier.ActorID!""}",
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??> <#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
"receipt_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}", "receipt_datetime": "${executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime}",
<#else> <#else>
"receipt_datetime": "${DateTimeUTCtoRfxLocale(.now?iso_utc?string,time_zone_rfx)}", "receipt_datetime": "${aDateTime?iso_utc}",
</#if> </#if>
"carrier_appointment_made": "false", "carrier_appointment_made": "false",
"receipt_in_cross_docking": "false", "receipt_in_cross_docking": "false",

View File

@@ -5,10 +5,6 @@
<#return ((rfxdatetime + offset)?datetime.iso?iso_utc)> <#return ((rfxdatetime + offset)?datetime.iso?iso_utc)>
</#function> </#function>
<#function DateTimeUTCtoRfxLocale dateutc locale >
<#return dateutc?datetime.iso?iso_nz(locale)>
</#function>
<#-- --------------------------------------------------------------------------------------- --> <#-- --------------------------------------------------------------------------------------- -->
<#-- Split email reflex into json array string --> <#-- Split email reflex into json array string -->
<#-- Example : splitemail "john.doe@hardis-group.com,; name@hardis-group.com" --> <#-- Example : splitemail "john.doe@hardis-group.com,; name@hardis-group.com" -->

View File

@@ -1 +1 @@
1.2.15+8 1.3.0+1