You've already forked reflex-wms-connector
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c63e4ff5c8 | |||
| 457cfc85c2 | |||
| 6809b32410 | |||
| 37a5e64e83 | |||
| 2f31833bc3 | |||
| cff0f18d8a | |||
| 22b78b4ffe | |||
| 25bf3110e9 | |||
| 0a32ead29a | |||
| 46a9dc8996 | |||
| 1eb262c91c | |||
| 2588fda3a8 | |||
| d060d3eb10 | |||
| 28e99e9a2b | |||
| 78b0b467a3 | |||
| eca09f2e9e | |||
| cfb8e2ab5a | |||
| d1512d4269 | |||
| 264f9131d0 | |||
| fd9f248619 | |||
| 0fff71b759 | |||
| 196ab387ac | |||
| 5cafa068a7 |
@@ -14,8 +14,7 @@
|
||||
<#-- exclusion of the cases of an IPG move with quantity = 0 (weight modification) -->
|
||||
|
||||
<#if reflexMvtStockInterface.ipg_move_quantity_in_base_lvs != 0>
|
||||
|
||||
<#-- IPG moves translated into Stock moves -->
|
||||
<#-- IPG moves translated into Stock moves -->
|
||||
<#if reflexMvtStockInterface.ipg_move_type == "130" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "200" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "210" ||
|
||||
@@ -41,22 +40,22 @@
|
||||
<#-- 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") && reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
|
||||
}
|
||||
]
|
||||
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>
|
||||
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
|
||||
<#-- Case of IPG move type volontarilly ignored-->
|
||||
<#stop " Reference receipt is empty">
|
||||
<#else>
|
||||
<#stop>
|
||||
</#if>
|
||||
<#stop>
|
||||
</#if>
|
||||
</#if>
|
||||
<#else>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<#-- input : message RFX -->
|
||||
<#-- project : projectId in ReflexPlatform -->
|
||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
||||
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
<#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!="">
|
||||
,
|
||||
{
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
[
|
||||
<#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_line2>
|
||||
<#list preparation_line2.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000") as despatched_ipg2>
|
||||
<#assign dispatched3_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 preparation_line3.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000") as despatched_ipg3>
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${despatched_ipg2.carton_number}",
|
||||
"RefID": "${despatched_ipg3.carton_number}",
|
||||
"RefDate": {
|
||||
"DateTime": "${dispatched_datetime}",
|
||||
"DateTime": "${dispatched3_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": { }
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
<#if preparation_line2.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000")?size!=0 >
|
||||
<#if preparation_line3.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000")?size!=0 >
|
||||
<#sep>,</#sep>
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
|
||||
[
|
||||
<#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 packing_datetime = RfxDateTimetoUTC(preparation_line.confirmation_datetime,time_zone_offset_rfx) />
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefDate": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${packing_datetime}"
|
||||
},
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
"RefID": "${despatched_ipg.carton_number}"
|
||||
<#else>
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
[
|
||||
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefDate": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${HUadded_packing_datetime}"
|
||||
},
|
||||
"RefID": "${despatched_ipg.hd_number}"
|
||||
},
|
||||
|
||||
|
||||
@@ -16,16 +16,18 @@
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
|
||||
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
|
||||
<#-- check preparation type code (internal order and reservation are ignored) -->
|
||||
<#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030">
|
||||
<#-- Only if preparation order not confirmed -->
|
||||
<#if preparation_order.preparation_order_confirmed == "false" >
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#stop "preparation order already confirmed">
|
||||
</#if>
|
||||
@@ -36,7 +38,7 @@
|
||||
<#else>
|
||||
<#stop "PRO reference is empty">
|
||||
</#if>
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
<#break>
|
||||
@@ -46,18 +48,16 @@
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
|
||||
{
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl">
|
||||
}
|
||||
}
|
||||
<#else>
|
||||
<#stop "PRO reference is empty">
|
||||
</#if>
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
<#include "RPtoRFX_PrepOrder_DefaultHeaderData.ftl">
|
||||
<#-- Valeurs par défaut Adresse -->
|
||||
<#-- Default values -->
|
||||
<#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}"},
|
||||
@@ -9,15 +23,15 @@
|
||||
"physical_depot_code": "${executionflow.ShipFrom.ActorID}",
|
||||
"originator_code": "${originator_code}"
|
||||
},
|
||||
"payload" :
|
||||
"payload" :
|
||||
{
|
||||
"originator_reference": "${executionflow.OrderID}",
|
||||
"preparation_type_code": "${preparation_type_code}",
|
||||
"end_consignee_code": "${executionflow.ShipTo.ActorID!""}",
|
||||
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
|
||||
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}",
|
||||
"end_consignee_code": "${actorID}",
|
||||
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
|
||||
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}",
|
||||
<#else>
|
||||
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(.now?iso_utc?string,time_zone_rfx)}",
|
||||
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(.now?iso_utc?string,time_zone_rfx)}",
|
||||
</#if>
|
||||
"requested_delivery_date_type": "${requested_delivery_date_type}",
|
||||
"consolidated_delivery": "${consolidated_delivery_flag}",
|
||||
@@ -31,52 +45,62 @@
|
||||
"apt_with_intermediate": "false",
|
||||
"load_grouping": "${load_grouping}"
|
||||
},
|
||||
<#if executionflow.ShipTo.ActorID == "">
|
||||
"address": {
|
||||
<#if actorID == defaultactor >
|
||||
"address": {
|
||||
"type_code": "${typecode}",
|
||||
"title_code" : "${titlecode}",
|
||||
"contact_type_code" : "${contacttypecode}",
|
||||
"address_type_code" : "${adresstypecode}",
|
||||
"first_name": "${executionflow.ShipTo.Contact.FirstName!""?json_string}",
|
||||
"last_name" :"${executionflow.ShipTo.Contact.Lastname!""?json_string}",
|
||||
"mail_address": "${executionflow.ShipTo.Actor.Emails[0]!""}",
|
||||
"mobile_phone_number": "${executionflow.ShipTo.Actor.Phones[0]!""}",
|
||||
"last_name" :"${executionflow.ShipTo.Contact.LastName!""?json_string}",
|
||||
"name_or_company_name" : "${executionflow.ShipTo.Contact.FirstName!""?json_string} ${executionflow.ShipTo.Contact.LastName!""?json_string}",
|
||||
<#if executionflow.ShipTo.Contact.Emails?? && executionflow.ShipTo.Contact.Emails[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}",
|
||||
"additional_address_data_1": "${executionflow.ShipTo.Actor.Address.StreetAddressTwo!""?json_string}",
|
||||
"additional_address_data_2": "${executionflow.ShipTo.Actor.Address.StreetAddressThree!""?json_string}",
|
||||
"postal_code": "${executionflow.ShipTo.Actor.Address.PostalCode!""}",
|
||||
"post_code_area_name" : "${executionflow.ShipTo.Actor.Address.City!""}",
|
||||
"iso_country_code": "${executionflow.ShipTo.Actor.Address.CountryCode!""}"
|
||||
},
|
||||
},
|
||||
</#if>
|
||||
<#if executionflow.Lines??>
|
||||
"line_list": [
|
||||
<#list executionflow.Lines as line>
|
||||
<#-- ******* line MetaData and Segmentationkeys to maps ******** -->
|
||||
<#if line.MetaData??>
|
||||
<#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") />
|
||||
</#if>
|
||||
<#if line.RequestedContent.Goods.SegmentationKeys??>
|
||||
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
|
||||
</#if>
|
||||
<#include "RPtoRFX_PrepOrder_DefaultLineData.ftl">
|
||||
{
|
||||
"originator_reference_line_number": ${line.LineID?number},
|
||||
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
|
||||
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
||||
"base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||
"owner_code_to_prepare" :"${owner_code_to_prepare}",
|
||||
"grade_code_to_prepare" :"${grade_code_to_prepare}",
|
||||
"input_order_data": "false",
|
||||
"batch_1": "${batch_1}",
|
||||
"base_lv_quantity": "true",
|
||||
"any_lv": "false"
|
||||
<#--
|
||||
"stock_reservation": "false",
|
||||
"forced_priority_date_min_lead_time": "false",
|
||||
"temp_substitution_possible": "false",
|
||||
"substitution_possible": "false"
|
||||
-->
|
||||
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
</#if>
|
||||
]
|
||||
<#if executionflow.Lines??>
|
||||
"line_list": [
|
||||
<#list executionflow.Lines as line>
|
||||
<#-- ******* line MetaData and Segmentationkeys to maps ******** -->
|
||||
<#if line.MetaData??>
|
||||
<#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") />
|
||||
</#if>
|
||||
<#if line.RequestedContent.Goods.SegmentationKeys??>
|
||||
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
|
||||
</#if>
|
||||
<#include "RPtoRFX_PrepOrder_DefaultLineData.ftl">
|
||||
{
|
||||
"originator_reference_line_number": ${line.LineID?number},
|
||||
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
|
||||
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
||||
"base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||
"owner_code_to_prepare" :"${owner_code_to_prepare}",
|
||||
"grade_code_to_prepare" :"${grade_code_to_prepare}",
|
||||
"input_order_data": "false",
|
||||
"batch_1": "${batch_1}",
|
||||
"base_lv_quantity": "true",
|
||||
"any_lv": "false"
|
||||
<#--
|
||||
"stock_reservation": "false",
|
||||
"forced_priority_date_min_lead_time": "false",
|
||||
"temp_substitution_possible": "false",
|
||||
"substitution_possible": "false"
|
||||
-->
|
||||
|
||||
}
|
||||
<#sep>,</#sep>
|
||||
</#list>
|
||||
</#if>
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<#-- Note : you can use Order Header Metadata, using the define map : Header_MetaData_Map -->
|
||||
|
||||
<#-- How to use MD Header map
|
||||
Example :
|
||||
Example :
|
||||
<#assign pick_sequence_code = Header_MetaData_Map["OrderType"].String!""/>
|
||||
|
||||
If your MD is :
|
||||
@@ -23,8 +23,22 @@
|
||||
<#assign protected_flag ="false"/>
|
||||
<#assign automatic_generation_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>-->
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user