From 62fe2c7c32b5c04115cb12eec90b6b613fd63ccf Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期日, 04 八月 2024 17:38:08 +0800
Subject: [PATCH] 物流成本参数维护

---
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mEdit_OnClick.def                         |   25 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnCancel_OnClick.def                            |   15 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_OnOK.def                                                      |   17 
 _Main/BL/Type_LogisticsCostMachining/Attribute_PackagingCapacity.qbl                                                                           |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mNew_OnClick.def                          |   23 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def                                                |   21 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnOk_OnClick.def                                |   15 
 _Main/BL/Type_LogisticsCostEngine/Attribute_MLB_MQB.qbl                                                                                        |    8 
 _Main/BL/Type_LogisticsCostMaterialRack/Attribute_Factory.qbl                                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlContent.def                                          |   69 +
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mNew_OnClick.def                                |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnCancel_OnClick.def                         |   15 
 _Main/BL/Type_LogisticsCostTransport/Attribute_Destination.qbl                                                                                 |    8 
 _Main/BL/Type_LogisticsCostMachining/Attribute_WarehousingPrice.qbl                                                                            |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlActions.def                                          |   40 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/_ROOT_Component_FormLogisticsCostEngine.def                                      |   16 
 _Main/BL/Type_LogisticsCostMachining/_ROOT_Type_LogisticsCostMachining.qbl                                                                     |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_ListLogisticsCostTransport.def                                      |   59 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnOk_OnClick.def                          |   15 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_ListLogisticsCostMachining.def                                      |   59 +
 _Main/BL/Type_LogisticsCostMachining/Attribute_StoragePrice.qbl                                                                                |    8 
 _Main/BL/Type_LogisticsCostMachining/Attribute_UnpackingPrice.qbl                                                                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/_ROOT_Component_FormLogisticsCostMaterialRack.def                          |   16 
 _Main/BL/Type_LogisticsCostTransport/Attribute_LoadingCapacity.qbl                                                                             |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlActions.def                                          |   40 
 _Main/BL/Relations/Relation_LogisticsCostTransport_MacroPlan_MacroPlan_LogisticsCostTransport.qbl                                              |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_New.def                                                 |   14 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mNew_OnClick.def                          |   23 
 _Main/BL/Type_LogisticsCostEngine/Attribute_Generation.qbl                                                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlContent.def                                       |   69 +
 _Main/BL/Type_LogisticsCostMachining/Attribute_Factory.qbl                                                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listActionBarPageLogisticsCostTransport.def                         |   10 
 _Main/BL/Type_LogisticsCostMachining/Attribute_PackagePrice.qbl                                                                                |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listContextMenuLogisticsCostTransport.def                           |   47 +
 _Main/BL/Type_LogisticsCostEngine/Attribute_WarehousingPrice.qbl                                                                               |    8 
 _Main/BL/Type_LogisticsCostEngine/_ROOT_Type_LogisticsCostEngine.qbl                                                                           |   10 
 _Main/BL/Type_LogisticsCostMachining/Attribute_WoodenCratePrice.qbl                                                                            |    8 
 _Main/BL/Type_LogisticsCostMaterialRack/Attribute_CleanPrice.qbl                                                                               |    8 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_mLogisticsCostParameterSetting_OnC.def |   16 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_New.def                                                    |   14 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mDelete_OnClick.def                       |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_OnOK.def                                                   |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mDelete_OnClick.def                 |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_Edit.def                                                      |   16 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_OnOK.def                                                |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listActionBarPageLogisticsCostEngine.def                               |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listActionBarPageLogisticsCostMaterialRack.def                   |   10 
 _Main/BL/Type_LogisticsCostMachining/Attribute_Product.qbl                                                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listActionBarPageLogisticsCostMachining.def                         |   10 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/_ROOT_Component_DialogCreateEditLogisticsCostTransport.def        |   31 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listContextMenuLogisticsCostEngine.def                                 |   47 +
 _Main/BL/Type_LogisticsCostMachining/Attribute_MachiningType.qbl                                                                               |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_Edit.def                                                   |   16 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mEdit_OnClick.def                         |   25 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlContent.def                                          |  124 ++
 _var/_Main/ProjSettings/EditorTC/Views/班次时间分析_[413988.0.1367211460].vw                                                                         |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mDelete_OnClick.def                       |   19 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/_ROOT_Component_FormLogisticsCostMachining.def                                |   16 
 _Main/BL/Type_LogisticsCostEngine/Attribute_Factory.qbl                                                                                        |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnCancel_OnClick.def                      |   15 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/_ROOT_Component_DialogCreateEditLogisticsCostEngine.def              |   31 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnCancel_OnClick.def                         |   15 
 _Main/BL/Type_LogisticsCostTransport/_ROOT_Type_LogisticsCostTransport.qbl                                                                     |   10 
 _Main/BL/Relations/Relation_LogisticsCostEngine_MacroPlan_MacroPlan_LogisticsCostEngine.qbl                                                    |   23 
 _Main/BL/Type_LogisticsCostEngine/Attribute_PackagingCapacity.qbl                                                                              |    8 
 _Main/BL/Type_LogisticsCostTransport/Attribute_TransportPrice.qbl                                                                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/_ROOT_Component_DialogCreateEditLogisticsCostMaterialRack.def  |   31 
 _Main/BL/Type_LogisticsCostMaterialRack/_ROOT_Type_LogisticsCostMaterialRack.qbl                                                               |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/_ROOT_Component_FormLogisticsCostTransport.def                                |   16 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnOk_OnClick.def                             |   15 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mEdit_OnClick.def                               |   25 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mEdit_OnClick.def                   |   25 
 _Main/BL/Type_LogisticsCostTransport/Attribute_Product.qbl                                                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_ListLogisticsCostMaterialRack.def                                |   59 +
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mDelete_OnClick.def                             |   23 
 _Main/BL/Type_LogisticsCostMachining/Attribute_BufferPaperPrice.qbl                                                                            |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listContextMenuLogisticsCostMaterialRack.def                     |   47 +
 _Main/BL/Type_LogisticsCostTransport/Attribute_Origin.qbl                                                                                      |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mNew_OnClick.def                    |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_Edit.def                                                   |   16 
 _Main/BL/Type_LogisticsCostMaterialRack/Attribute_OutboundPrice.qbl                                                                            |    8 
 _Main/BL/Type_LogisticsCostEngine/Attribute_OutboundPrice.qbl                                                                                  |    8 
 _Main/BL/Type_LogisticsCostMaterialRack/Attribute_WarehousingPrice.qbl                                                                         |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlContent.def                                             |  102 ++
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listContextMenuLogisticsCostMachining.def                           |   47 +
 _Main/BL/Type_LogisticsCostMaterialRack/Attribute_StoragePrice.qbl                                                                             |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_OnOK.def                                                   |   17 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_New.def                                                    |   14 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlActions.def                                       |   40 
 _Main/BL/Type_LogisticsCostEngine/Attribute_StoragePrice.qbl                                                                                   |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlActions.def                                             |   40 
 _Main/BL/Relations/Relation_LogisticsCostMaterialRack_MacroPlan_MacroPlan_LogisticsCostMaterial.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_ListLogisticsCostEngine.def                                            |   59 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_New.def                                                       |   14 
 _Main/BL/Type_LogisticsCostMachining/Attribute_OutboundPrice.qbl                                                                               |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_Edit.def                                                |   16 
 _Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw                                                                             |  421 +++++++++
 _Main/BL/Type_LogisticsCostEngine/Attribute_Product.qbl                                                                                        |    8 
 _Main/BL/Relations/Relation_LogisticsCostMachining_MacroPlan_MacroPlan_LogisticsCostMachining.qbl                                              |   23 
 _Main/BL/Type_LogisticsCostEngine/Attribute_OtherPrice.qbl                                                                                     |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/_ROOT_Component_DialogCreateEditLogisticsCostMachining.def        |   31 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnOk_OnClick.def                             |   15 
 102 files changed, 2,592 insertions(+), 1 deletions(-)

diff --git a/_Main/BL/Relations/Relation_LogisticsCostEngine_MacroPlan_MacroPlan_LogisticsCostEngine.qbl b/_Main/BL/Relations/Relation_LogisticsCostEngine_MacroPlan_MacroPlan_LogisticsCostEngine.qbl
new file mode 100644
index 0000000..72d43fb
--- /dev/null
+++ b/_Main/BL/Relations/Relation_LogisticsCostEngine_MacroPlan_MacroPlan_LogisticsCostEngine.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation LogisticsCostEngine_MacroPlan_MacroPlan_LogisticsCostEngine
+{
+  #keys: '1[413988.0.1448874691]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[413988.0.1448874693][413988.0.1448874692][413988.0.1448874694]'
+    Cardinality: '0to1'
+    ObjectDefinition: LogisticsCostEngine
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide LogisticsCostEngine
+  {
+    #keys: '3[413988.0.1448874696][413988.0.1448874695][413988.0.1448874697]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_LogisticsCostMachining_MacroPlan_MacroPlan_LogisticsCostMachining.qbl b/_Main/BL/Relations/Relation_LogisticsCostMachining_MacroPlan_MacroPlan_LogisticsCostMachining.qbl
new file mode 100644
index 0000000..553718d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_LogisticsCostMachining_MacroPlan_MacroPlan_LogisticsCostMachining.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation LogisticsCostMachining_MacroPlan_MacroPlan_LogisticsCostMachining
+{
+  #keys: '1[413988.0.1448874704]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[413988.0.1448874706][413988.0.1448874705][413988.0.1448874707]'
+    Cardinality: '0to1'
+    ObjectDefinition: LogisticsCostMachining
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide LogisticsCostMachining
+  {
+    #keys: '3[413988.0.1448874709][413988.0.1448874708][413988.0.1448874710]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_LogisticsCostMaterialRack_MacroPlan_MacroPlan_LogisticsCostMaterial.qbl b/_Main/BL/Relations/Relation_LogisticsCostMaterialRack_MacroPlan_MacroPlan_LogisticsCostMaterial.qbl
new file mode 100644
index 0000000..7ece72d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_LogisticsCostMaterialRack_MacroPlan_MacroPlan_LogisticsCostMaterial.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation LogisticsCostMaterialRack_MacroPlan_MacroPlan_LogisticsCostMaterialRack
+{
+  #keys: '1[413988.0.1448874717]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[413988.0.1448874719][413988.0.1448874718][413988.0.1448874720]'
+    Cardinality: '0to1'
+    ObjectDefinition: LogisticsCostMaterialRack
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide LogisticsCostMaterialRack
+  {
+    #keys: '3[413988.0.1448874722][413988.0.1448874721][413988.0.1448874723]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_LogisticsCostTransport_MacroPlan_MacroPlan_LogisticsCostTransport.qbl b/_Main/BL/Relations/Relation_LogisticsCostTransport_MacroPlan_MacroPlan_LogisticsCostTransport.qbl
new file mode 100644
index 0000000..7a22834
--- /dev/null
+++ b/_Main/BL/Relations/Relation_LogisticsCostTransport_MacroPlan_MacroPlan_LogisticsCostTransport.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation LogisticsCostTransport_MacroPlan_MacroPlan_LogisticsCostTransport
+{
+  #keys: '1[413988.0.1448874730]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[413988.0.1448874732][413988.0.1448874731][413988.0.1448874733]'
+    Cardinality: '0to1'
+    ObjectDefinition: LogisticsCostTransport
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide LogisticsCostTransport
+  {
+    #keys: '3[413988.0.1448874735][413988.0.1448874734][413988.0.1448874736]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_Factory.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_Factory.qbl
new file mode 100644
index 0000000..27d0b2b
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_Factory.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Factory
+{
+  #keys: '3[413988.0.1448874746][413988.0.1448874745][413988.0.1448874747]'
+  Description: '宸ュ巶'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_Generation.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_Generation.qbl
new file mode 100644
index 0000000..635b5a6
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_Generation.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Generation
+{
+  #keys: '3[413988.0.1448874756][413988.0.1448874755][413988.0.1448874757]'
+  Description: 'Generation'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_MLB_MQB.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_MLB_MQB.qbl
new file mode 100644
index 0000000..0f34c12
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_MLB_MQB.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MLB_MQB
+{
+  #keys: '3[413988.0.1448874769][413988.0.1448874768][413988.0.1448874770]'
+  Description: 'MLB/MQB'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_OtherPrice.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_OtherPrice.qbl
new file mode 100644
index 0000000..bf87824
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_OtherPrice.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OtherPrice
+{
+  #keys: '3[413988.0.1448874835][413988.0.1448874834][413988.0.1448874836]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_OutboundPrice.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_OutboundPrice.qbl
new file mode 100644
index 0000000..69db0eb
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_OutboundPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OutboundPrice
+{
+  #keys: '3[413988.0.1448874815][413988.0.1448874814][413988.0.1448874816]'
+  Description: '鍑哄簱鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_PackagingCapacity.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_PackagingCapacity.qbl
new file mode 100644
index 0000000..0cd6871
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_PackagingCapacity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PackagingCapacity
+{
+  #keys: '3[413988.0.1448874789][413988.0.1448874788][413988.0.1448874790]'
+  Description: '鍖呰瀹归噺'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_Product.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_Product.qbl
new file mode 100644
index 0000000..40aa148
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[413988.0.1448874779][413988.0.1448874778][413988.0.1448874780]'
+  Description: '浜у搧'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_StoragePrice.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_StoragePrice.qbl
new file mode 100644
index 0000000..e360b88
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_StoragePrice.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StoragePrice
+{
+  #keys: '3[413988.0.1448874825][413988.0.1448874824][413988.0.1448874826]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/Attribute_WarehousingPrice.qbl b/_Main/BL/Type_LogisticsCostEngine/Attribute_WarehousingPrice.qbl
new file mode 100644
index 0000000..c920fd0
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/Attribute_WarehousingPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WarehousingPrice
+{
+  #keys: '3[413988.0.1448874802][413988.0.1448874801][413988.0.1448874803]'
+  Description: '鍏ュ簱鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostEngine/_ROOT_Type_LogisticsCostEngine.qbl b/_Main/BL/Type_LogisticsCostEngine/_ROOT_Type_LogisticsCostEngine.qbl
new file mode 100644
index 0000000..04cdb57
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostEngine/_ROOT_Type_LogisticsCostEngine.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type LogisticsCostEngine
+{
+  #keys: '5[413988.0.1448874661][413988.0.1448874659][0.0.0][413988.0.1448874660][413988.0.1448874662]'
+  BaseType: Object
+  Description: '鍙戝姩鏈烘垚鏈�'
+  StructuredName: 'LogisticsCostEngines'
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_BufferPaperPrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_BufferPaperPrice.qbl
new file mode 100644
index 0000000..97a0b9e
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_BufferPaperPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BufferPaperPrice
+{
+  #keys: '3[413988.0.1448874918][413988.0.1448874917][413988.0.1448874919]'
+  Description: '缂撳啿绾稿崟浠�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_Factory.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_Factory.qbl
new file mode 100644
index 0000000..9a666a6
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_Factory.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Factory
+{
+  #keys: '3[413988.0.1448874845][413988.0.1448874844][413988.0.1448874846]'
+  Description: '宸ュ巶'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_MachiningType.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_MachiningType.qbl
new file mode 100644
index 0000000..e292145
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_MachiningType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MachiningType
+{
+  #keys: '3[413988.0.1448874911][413988.0.1448874910][413988.0.1448874912]'
+  Description: '鏈哄姞澶х被'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_OutboundPrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_OutboundPrice.qbl
new file mode 100644
index 0000000..6194eec
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_OutboundPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OutboundPrice
+{
+  #keys: '3[413988.0.1448874944][413988.0.1448874943][413988.0.1448874945]'
+  Description: '鍑哄簱鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_PackagePrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_PackagePrice.qbl
new file mode 100644
index 0000000..a0032d9
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_PackagePrice.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PackagePrice
+{
+  #keys: '3[413988.0.1448874881][413988.0.1448874880][413988.0.1448874882]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_PackagingCapacity.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_PackagingCapacity.qbl
new file mode 100644
index 0000000..331a566
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_PackagingCapacity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PackagingCapacity
+{
+  #keys: '3[413988.0.1448874858][413988.0.1448874857][413988.0.1448874859]'
+  Description: '鍖呰瀹归噺'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_Product.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_Product.qbl
new file mode 100644
index 0000000..3c1bc9e
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[413988.0.1448874871][413988.0.1448874870][413988.0.1448874872]'
+  Description: '浜у搧'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_StoragePrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_StoragePrice.qbl
new file mode 100644
index 0000000..66aee3b
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_StoragePrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StoragePrice
+{
+  #keys: '3[413988.0.1448874957][413988.0.1448874956][413988.0.1448874958]'
+  Description: '浠撳偍鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_UnpackingPrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_UnpackingPrice.qbl
new file mode 100644
index 0000000..f62c22a
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_UnpackingPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnpackingPrice
+{
+  #keys: '3[413988.0.1448874891][413988.0.1448874890][413988.0.1448874892]'
+  Description: '鎷嗗寘鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_WarehousingPrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_WarehousingPrice.qbl
new file mode 100644
index 0000000..05a31b7
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_WarehousingPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WarehousingPrice
+{
+  #keys: '3[413988.0.1448874934][413988.0.1448874933][413988.0.1448874935]'
+  Description: '鍏ュ簱鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/Attribute_WoodenCratePrice.qbl b/_Main/BL/Type_LogisticsCostMachining/Attribute_WoodenCratePrice.qbl
new file mode 100644
index 0000000..6581293
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/Attribute_WoodenCratePrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WoodenCratePrice
+{
+  #keys: '3[413988.0.1448874901][413988.0.1448874900][413988.0.1448874902]'
+  Description: '鏈ㄧ鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMachining/_ROOT_Type_LogisticsCostMachining.qbl b/_Main/BL/Type_LogisticsCostMachining/_ROOT_Type_LogisticsCostMachining.qbl
new file mode 100644
index 0000000..b2a3bf5
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMachining/_ROOT_Type_LogisticsCostMachining.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type LogisticsCostMachining
+{
+  #keys: '5[413988.0.1448874671][413988.0.1448874669][0.0.0][413988.0.1448874670][413988.0.1448874672]'
+  BaseType: Object
+  Description: '鏈哄姞鎴愭湰'
+  StructuredName: 'LogisticsCostMachinings'
+}
diff --git a/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_CleanPrice.qbl b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_CleanPrice.qbl
new file mode 100644
index 0000000..253081a
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_CleanPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CleanPrice
+{
+  #keys: '3[413988.0.1448875010][413988.0.1448875009][413988.0.1448875011]'
+  Description: '娓呮礂鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_Factory.qbl b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_Factory.qbl
new file mode 100644
index 0000000..85a53c7
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_Factory.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Factory
+{
+  #keys: '3[413988.0.1448874967][413988.0.1448874966][413988.0.1448874968]'
+  Description: '宸ュ巶'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_OutboundPrice.qbl b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_OutboundPrice.qbl
new file mode 100644
index 0000000..53c108d
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_OutboundPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OutboundPrice
+{
+  #keys: '3[413988.0.1448874987][413988.0.1448874986][413988.0.1448874988]'
+  Description: '鍑哄簱鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_StoragePrice.qbl b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_StoragePrice.qbl
new file mode 100644
index 0000000..49ffdc3
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_StoragePrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StoragePrice
+{
+  #keys: '3[413988.0.1448874997][413988.0.1448874996][413988.0.1448874998]'
+  Description: '浠撳偍鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_WarehousingPrice.qbl b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_WarehousingPrice.qbl
new file mode 100644
index 0000000..4a19599
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMaterialRack/Attribute_WarehousingPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WarehousingPrice
+{
+  #keys: '3[413988.0.1448874977][413988.0.1448874976][413988.0.1448874978]'
+  Description: '鍏ュ簱鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostMaterialRack/_ROOT_Type_LogisticsCostMaterialRack.qbl b/_Main/BL/Type_LogisticsCostMaterialRack/_ROOT_Type_LogisticsCostMaterialRack.qbl
new file mode 100644
index 0000000..4a7eef0
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostMaterialRack/_ROOT_Type_LogisticsCostMaterialRack.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type LogisticsCostMaterialRack
+{
+  #keys: '5[413988.0.1448874676][413988.0.1448874674][0.0.0][413988.0.1448874675][413988.0.1448874677]'
+  BaseType: Object
+  Description: '鏂欐灦'
+  StructuredName: 'LogisticsCostMaterialRacks'
+}
diff --git a/_Main/BL/Type_LogisticsCostTransport/Attribute_Destination.qbl b/_Main/BL/Type_LogisticsCostTransport/Attribute_Destination.qbl
new file mode 100644
index 0000000..c4e4557
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostTransport/Attribute_Destination.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Destination
+{
+  #keys: '3[413988.0.1448875040][413988.0.1448875039][413988.0.1448875041]'
+  Description: '鐩殑鍦�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostTransport/Attribute_LoadingCapacity.qbl b/_Main/BL/Type_LogisticsCostTransport/Attribute_LoadingCapacity.qbl
new file mode 100644
index 0000000..9f6da40
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostTransport/Attribute_LoadingCapacity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LoadingCapacity
+{
+  #keys: '3[413988.0.1448875053][413988.0.1448875052][413988.0.1448875054]'
+  Description: '瑁呰浇瀹归噺'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostTransport/Attribute_Origin.qbl b/_Main/BL/Type_LogisticsCostTransport/Attribute_Origin.qbl
new file mode 100644
index 0000000..f992d5c
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostTransport/Attribute_Origin.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Origin
+{
+  #keys: '3[413988.0.1448875030][413988.0.1448875029][413988.0.1448875031]'
+  Description: '璧峰鍦�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostTransport/Attribute_Product.qbl b/_Main/BL/Type_LogisticsCostTransport/Attribute_Product.qbl
new file mode 100644
index 0000000..1675bda
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostTransport/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[413988.0.1448875020][413988.0.1448875019][413988.0.1448875021]'
+  Description: '浜у搧'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_LogisticsCostTransport/Attribute_TransportPrice.qbl b/_Main/BL/Type_LogisticsCostTransport/Attribute_TransportPrice.qbl
new file mode 100644
index 0000000..d599fce
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostTransport/Attribute_TransportPrice.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TransportPrice
+{
+  #keys: '3[413988.0.1448875063][413988.0.1448875062][413988.0.1448875064]'
+  Description: '杩愯緭鍗曚环'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_LogisticsCostTransport/_ROOT_Type_LogisticsCostTransport.qbl b/_Main/BL/Type_LogisticsCostTransport/_ROOT_Type_LogisticsCostTransport.qbl
new file mode 100644
index 0000000..1f64127
--- /dev/null
+++ b/_Main/BL/Type_LogisticsCostTransport/_ROOT_Type_LogisticsCostTransport.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type LogisticsCostTransport
+{
+  #keys: '5[413988.0.1448874666][413988.0.1448874664][0.0.0][413988.0.1448874665][413988.0.1448874667]'
+  BaseType: Object
+  Description: '杩愯緭鎴愭湰'
+  StructuredName: 'LogisticsCostTransports'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def
index bcde51c..e7a2111 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def
@@ -14,5 +14,26 @@
         Title: 'Labor cost'
       ]
     }
+    Component mPeparator1
+    {
+      #keys: '[413988.0.1450102980]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Separator: true
+        Taborder: 7
+      ]
+    }
+    Component mLogisticsCostParameterSetting
+    {
+      #keys: '[413988.0.1450102999]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'PLASMA-TV'
+        Taborder: 8
+        Title: 'Logistics cost parameter setting'
+      ]
+    }
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_mLogisticsCostParameterSetting_OnC.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_mLogisticsCostParameterSetting_OnC.def
new file mode 100644
index 0000000..6134066
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_mLogisticsCostParameterSetting_OnC.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ContextMenuFinances/mLogisticsCostParameterSetting
+Response OnClick () id:Response_MacroPlanner_ContextMenuFinances_mLogisticsCostParameterSetting_OnClick
+{
+  #keys: '[413988.0.1450160801]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "LogisticsCostParameterSetting", true );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlActions.def
new file mode 100644
index 0000000..54f2492
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[413988.0.1457399476]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[413988.0.1457399480]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[413988.0.1457399482]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlContent.def
new file mode 100644
index 0000000..a5cade2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlContent.def
@@ -0,0 +1,102 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[413988.0.1457399474]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efFactory id:efFactory_245
+    {
+      #keys: '[413988.0.1457133347]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Factory'
+        Label: '宸ュ巶'
+        Taborder: 0
+      ]
+    }
+    Component efGeneration
+    {
+      #keys: '[413988.0.1457133350]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Generation'
+        Label: 'Generation'
+        Taborder: 1
+      ]
+    }
+    Component efMLB_MQB
+    {
+      #keys: '[413988.0.1457133352]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.MLB_MQB'
+        Label: 'MLB/MQB'
+        Taborder: 2
+      ]
+    }
+    Component npPackagingCapacity id:npPackagingCapacity_758
+    {
+      #keys: '[413988.0.1457544780]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.PackagingCapacity'
+        Label: '鍖呰瀹归噺 (PCS/鎵�)'
+        Taborder: 3
+      ]
+    }
+    Component npWarehousingPrice
+    {
+      #keys: '[413988.0.1457544783]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.WarehousingPrice'
+        Label: '鍏ュ簱鍗曚环 (RMB/鎵�)'
+        Taborder: 4
+      ]
+    }
+    Component npOutboundPrice
+    {
+      #keys: '[413988.0.1457544785]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.OutboundPrice'
+        Label: '鍑哄簱鍗曚环 (RMB/鎵�)'
+        Taborder: 5
+      ]
+    }
+    Component npStoragePrice
+    {
+      #keys: '[413988.0.1457544787]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.StoragePrice'
+        Label: '浠撳偍鍗曚环 (RMB/鎵�)'
+        Taborder: 6
+      ]
+    }
+    Component npOtherPrice
+    {
+      #keys: '[413988.0.1457544789]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.OtherPrice'
+        Label: '鍏朵粬鍗曚环 (RMB/鎵�)'
+        Taborder: 7
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_Edit.def
new file mode 100644
index 0000000..32f0c6e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_Edit.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  LogisticsCostEngine selection
+) id:Method_DialogCreateEditLogisticsCostEngine_Edit
+{
+  #keys: '[413988.0.1457659262]'
+  Body:
+  [*
+    data := shadow( selection );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_New.def
new file mode 100644
index 0000000..876b061
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_New.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method New () id:Method_DialogCreateEditLogisticsCostEngine_New
+{
+  #keys: '[413988.0.1457659264]'
+  Body:
+  [*
+    data := MacroPlan.LogisticsCostEngine( relshadow );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_OnOK.def
new file mode 100644
index 0000000..5749cae
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Method_OnOK.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditLogisticsCostEngine_OnOK
+{
+  #keys: '[413988.0.1457659265]'
+  Body:
+  [*
+    // On ok
+    Form.ApplyChanges();
+    
+    data := DataHolderDialogData.Data();
+    
+    data.Commit();
+    
+    Form.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..47a5069
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[413988.0.1457399486]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..c9a3dd2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[413988.0.1457399485]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.OnOK();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/_ROOT_Component_DialogCreateEditLogisticsCostEngine.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/_ROOT_Component_DialogCreateEditLogisticsCostEngine.def
new file mode 100644
index 0000000..0ec4c59
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/_ROOT_Component_DialogCreateEditLogisticsCostEngine.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditLogisticsCostEngine
+{
+  #keys: '[413988.0.1457399472]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component DataHolderDialogData
+    {
+      #keys: '[413988.0.1457133417]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'shadow[LogisticsCostEngine]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlActions.def
new file mode 100644
index 0000000..1fa8c57
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[413988.0.1455890670]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[413988.0.1455890674]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[413988.0.1455890676]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlContent.def
new file mode 100644
index 0000000..65628ad
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlContent.def
@@ -0,0 +1,124 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[413988.0.1455890668]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efFactory
+    {
+      #keys: '[413988.0.1457092631]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Factory'
+        Label: '宸ュ巶'
+        Taborder: 0
+      ]
+    }
+    Component efProduct
+    {
+      #keys: '[413988.0.1457092665]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Product'
+        Label: '浜у搧'
+        Taborder: 1
+      ]
+    }
+    Component npPackagePrice
+    {
+      #keys: '[413988.0.1457167071]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.PackagePrice'
+        Label: '鍖呰鍗曚环 (RMB/PCS)'
+        Taborder: 3
+      ]
+    }
+    Component npPackagingCapacity
+    {
+      #keys: '[413988.0.1457167105]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.PackagingCapacity'
+        Label: '鍖呰瀹归噺 (PCS/鎵�)'
+        Taborder: 2
+      ]
+    }
+    Component npUnpackingPrice
+    {
+      #keys: '[413988.0.1456921336]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.UnpackingPrice'
+        Label: '鎷嗗寘鍗曚环 (RMB/PCS)'
+        Taborder: 4
+      ]
+    }
+    Component npWoodenCratePrice
+    {
+      #keys: '[413988.0.1456921338]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.WoodenCratePrice'
+        Label: '鏈ㄧ鍗曚环 (RMB/鎵�)'
+        Taborder: 5
+      ]
+    }
+    Component npBufferPaperPrice
+    {
+      #keys: '[413988.0.1456921340]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.BufferPaperPrice'
+        Label: '缂撳啿绾稿崟浠� (RMB/PCS)'
+        Taborder: 6
+      ]
+    }
+    Component npWarehousingPrice
+    {
+      #keys: '[413988.0.1456921342]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.WarehousingPrice'
+        Label: '鍏ュ簱鍗曚环 (RMB/鎵�)'
+        Taborder: 7
+      ]
+    }
+    Component npOutboundPrice
+    {
+      #keys: '[413988.0.1456921344]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.OutboundPrice'
+        Label: '鍑哄簱鍗曚环 (RMB/PCS)'
+        Taborder: 8
+      ]
+    }
+    Component npStoragePrice
+    {
+      #keys: '[413988.0.1456921346]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.StoragePrice'
+        Label: '浠撳偍鍗曚环 (RMB/PCS)'
+        Taborder: 9
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_Edit.def
new file mode 100644
index 0000000..0e0b279
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_Edit.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  LogisticsCostMachining selection
+) id:Method_DialogCreateEditLogisticsCostMachining_Edit
+{
+  #keys: '[413988.0.1457056684]'
+  Body:
+  [*
+    data := shadow( selection );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_New.def
new file mode 100644
index 0000000..93ac57e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_New.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method New () id:Method_DialogCreateEditLogisticsCostMachining_New
+{
+  #keys: '[413988.0.1457056686]'
+  Body:
+  [*
+    data := MacroPlan.LogisticsCostMachining( relshadow );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_OnOK.def
new file mode 100644
index 0000000..d7ec8c8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Method_OnOK.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditLogisticsCostMachining_OnOK
+{
+  #keys: '[413988.0.1457056687]'
+  Body:
+  [*
+    // On ok
+    Form.ApplyChanges();
+    
+    data := DataHolderDialogData.Data();
+    
+    data.Commit();
+    
+    Form.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..a39e4ae
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[413988.0.1455890680]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..4b5c130
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[413988.0.1455890679]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.OnOK();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/_ROOT_Component_DialogCreateEditLogisticsCostMachining.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/_ROOT_Component_DialogCreateEditLogisticsCostMachining.def
new file mode 100644
index 0000000..91caa7e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/_ROOT_Component_DialogCreateEditLogisticsCostMachining.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditLogisticsCostMachining
+{
+  #keys: '[413988.0.1455890666]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component DataHolderDialogData id:DataHolderDialogData_549
+    {
+      #keys: '[413988.0.1457026707]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'shadow[LogisticsCostMachining]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlActions.def
new file mode 100644
index 0000000..9d86430
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[413988.0.1458029436]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[413988.0.1458029440]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[413988.0.1458029442]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlContent.def
new file mode 100644
index 0000000..3ff05c2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlContent.def
@@ -0,0 +1,69 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[413988.0.1458029434]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efFactory
+    {
+      #keys: '[413988.0.1456914946]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Factory'
+        Label: '宸ュ巶'
+        Taborder: 0
+      ]
+    }
+    Component npWarehousingPrice
+    {
+      #keys: '[413988.0.1455874538]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.WarehousingPrice'
+        Label: '鍏ュ簱鍗曚环 (RMB/涓�)'
+        Taborder: 1
+      ]
+    }
+    Component npOutboundPrice
+    {
+      #keys: '[413988.0.1458060456]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.OutboundPrice'
+        Label: '鍑哄簱鍗曚环 (RMB/涓�)'
+        Taborder: 2
+      ]
+    }
+    Component npStoragePrice
+    {
+      #keys: '[413988.0.1458211058]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.StoragePrice'
+        Label: '浠撳偍鍗曚环 (RMB/涓�)'
+        Taborder: 3
+      ]
+    }
+    Component npCleanPrice
+    {
+      #keys: '[413988.0.1458211060]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.CleanPrice'
+        Label: '娓呮礂鍗曚环 (RMB/涓�)'
+        Taborder: 4
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_Edit.def
new file mode 100644
index 0000000..a585326
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_Edit.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  LogisticsCostMaterialRack selection
+) id:Method_DialogCreateEditLogisticsCostMaterialRack_Edit
+{
+  #keys: '[413988.0.1458029536]'
+  Body:
+  [*
+    data := shadow( selection );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_New.def
new file mode 100644
index 0000000..0a3827f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_New.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method New () id:Method_DialogCreateEditLogisticsCostMaterialRack_New
+{
+  #keys: '[413988.0.1458029538]'
+  Body:
+  [*
+    data := MacroPlan.LogisticsCostMaterialRack( relshadow );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_OnOK.def
new file mode 100644
index 0000000..c64a971
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Method_OnOK.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditLogisticsCostMaterialRack_OnOK
+{
+  #keys: '[413988.0.1458029539]'
+  Body:
+  [*
+    // On ok
+    Form.ApplyChanges();
+    
+    data := DataHolderDialogData.Data();
+    
+    data.Commit();
+    
+    Form.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..c2a7d6c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[413988.0.1458029446]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..6498db8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[413988.0.1458029445]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.OnOK();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/_ROOT_Component_DialogCreateEditLogisticsCostMaterialRack.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/_ROOT_Component_DialogCreateEditLogisticsCostMaterialRack.def
new file mode 100644
index 0000000..362e610
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/_ROOT_Component_DialogCreateEditLogisticsCostMaterialRack.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditLogisticsCostMaterialRack
+{
+  #keys: '[413988.0.1458029432]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component DataHolderDialogData
+    {
+      #keys: '[413988.0.1458029513]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'shadow[LogisticsCostMaterialRack]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlActions.def
new file mode 100644
index 0000000..b914fac
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[413988.0.1458321377]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[413988.0.1458321381]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[413988.0.1458321383]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlContent.def
new file mode 100644
index 0000000..49bac54
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlContent.def
@@ -0,0 +1,69 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[413988.0.1458321375]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efProduct
+    {
+      #keys: '[413988.0.1456999440]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Product'
+        Label: '浜у搧'
+        Taborder: 0
+      ]
+    }
+    Component efOrigin
+    {
+      #keys: '[413988.0.1458251274]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Origin'
+        Label: '璧峰鍦�'
+        Taborder: 1
+      ]
+    }
+    Component efDestination
+    {
+      #keys: '[413988.0.1458549250]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.Destination'
+        Label: '鐩殑鍦�'
+        Taborder: 2
+      ]
+    }
+    Component npLoadingCapacity
+    {
+      #keys: '[413988.0.1456916992]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.LoadingCapacity'
+        Label: '瑁呰浇瀹归噺'
+        Taborder: 3
+      ]
+    }
+    Component npTransportPrice
+    {
+      #keys: '[413988.0.1457199586]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.TransportPrice'
+        Label: '杩愯緭鍗曚綅 (RMB/杞�)'
+        Taborder: 4
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_Edit.def
new file mode 100644
index 0000000..347a4e2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_Edit.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  LogisticsCostTransport selection
+) id:Method_DialogCreateEditLogisticsCostTransport_Edit
+{
+  #keys: '[413988.0.1458212170]'
+  Body:
+  [*
+    data := shadow( selection );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_New.def
new file mode 100644
index 0000000..7d5bd13
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_New.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method New () id:Method_DialogCreateEditLogisticsCostTransport_New
+{
+  #keys: '[413988.0.1458212172]'
+  Body:
+  [*
+    data := MacroPlan.LogisticsCostTransport( relshadow );
+    
+    DataHolderDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_OnOK.def
new file mode 100644
index 0000000..edb17b1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Method_OnOK.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditLogisticsCostTransport_OnOK
+{
+  #keys: '[413988.0.1458212173]'
+  Body:
+  [*
+    // On ok
+    Form.ApplyChanges();
+    
+    data := DataHolderDialogData.Data();
+    
+    data.Commit();
+    
+    Form.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..c1ebea7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[413988.0.1458321387]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..d8f6c37
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[413988.0.1458321386]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.OnOK();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/_ROOT_Component_DialogCreateEditLogisticsCostTransport.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/_ROOT_Component_DialogCreateEditLogisticsCostTransport.def
new file mode 100644
index 0000000..c93d731
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/_ROOT_Component_DialogCreateEditLogisticsCostTransport.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditLogisticsCostTransport
+{
+  #keys: '[413988.0.1458321373]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component DataHolderDialogData id:DataHolderDialogData_865
+    {
+      #keys: '[413988.0.1458412765]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'shadow[LogisticsCostTransport]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_ListLogisticsCostEngine.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_ListLogisticsCostEngine.def
new file mode 100644
index 0000000..4bbc5b8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_ListLogisticsCostEngine.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListLogisticsCostEngine
+{
+  #keys: '[413988.0.1451376777]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorLogisticsCostEngine
+    {
+      #keys: '[413988.0.1451376778]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'LogisticsCostEngine'
+      ]
+    }
+    #child: listActionBarPageLogisticsCostEngine
+    Component DataSetLevelLogisticsCostEngine
+    {
+      #keys: '[413988.0.1451376783]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuLogisticsCostEngine
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Generation","title":"Generation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Generation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MLB_MQB","title":"MLB/MQB","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MLB_MQB"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product","title":"浜у搧","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Product"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Factory","title":"宸ュ巶","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Factory"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PackagingCapacity","title":"鍖呰瀹归噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PackagingCapacity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehousingPrice","title":"鍏ュ簱鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehousingPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OutboundPrice","title":"鍑哄簱鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OutboundPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StoragePrice","title":"浠撳偍鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StoragePrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OtherPrice","title":"鍏朵粬鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OtherPrice"}}]'
+        ContextMenu: 'listContextMenuLogisticsCostEngine'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListLogisticsCostEngine_WebMenu_OnClick
+    {
+      #keys: '[413988.0.1457686856]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[3479.0.56588064]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listActionBarPageLogisticsCostEngine.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listActionBarPageLogisticsCostEngine.def
new file mode 100644
index 0000000..7bfa805
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listActionBarPageLogisticsCostEngine.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageLogisticsCostEngine
+{
+  #keys: '[413988.0.1451376780]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listContextMenuLogisticsCostEngine.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listContextMenuLogisticsCostEngine.def
new file mode 100644
index 0000000..70af557
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Component_listContextMenuLogisticsCostEngine.def
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+Component listContextMenuLogisticsCostEngine
+{
+  #keys: '[413988.0.1451376785]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component mNew id:mNew_623
+    {
+      #keys: '[413988.0.1456924633]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'ADD2'
+        Taborder: 3
+        Title: 'New'
+      ]
+    }
+    Component mEdit id:mEdit_442
+    {
+      #keys: '[413988.0.1457912792]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        BindOnDoubleClick: true
+        Image: 'NOTEBOOK_EDIT'
+        Taborder: 4
+        Title: 'Edit'
+      ]
+    }
+    Component mDelete id:mDelete_162
+    {
+      #keys: '[413988.0.1457826670]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'DELETE'
+        Taborder: 5
+        Title: 'Delete'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mDelete_OnClick.def
new file mode 100644
index 0000000..e61c48c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mDelete_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostEngine
+Response OnClick (
+  structured[LogisticsCostEngine] selection
+) id:Response_ListLogisticsCostEngine_mDelete_OnClick
+{
+  #keys: '[413988.0.1457990311]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostEngine/Responsedef_ListLogisticsCostEngine_WebMenu_OnClick
+  Initiator: 'mDelete'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      MacroPlan::DeleteObjects( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mEdit_OnClick.def
new file mode 100644
index 0000000..1e2ee81
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mEdit_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostEngine
+Response OnClick (
+  LogisticsCostEngine selection
+) id:Response_ListLogisticsCostEngine_mEdit_OnClick
+{
+  #keys: '[413988.0.1457990004]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostEngine/Responsedef_ListLogisticsCostEngine_WebMenu_OnClick
+  Initiator: 'mEdit'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostEngine );
+      
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mNew_OnClick.def
new file mode 100644
index 0000000..ee66276
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/Response_ListLogisticsCostEngine_mNew_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostEngine
+Response OnClick () id:Response_ListLogisticsCostEngine_mNew_OnClick
+{
+  #keys: '[413988.0.1457864436]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostEngine/Responsedef_ListLogisticsCostEngine_WebMenu_OnClick
+  Initiator: 'mNew'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostEngine );
+      
+      dlg.New();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/_ROOT_Component_FormLogisticsCostEngine.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/_ROOT_Component_FormLogisticsCostEngine.def
new file mode 100644
index 0000000..352f023
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostEngine/_ROOT_Component_FormLogisticsCostEngine.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormLogisticsCostEngine
+{
+  #keys: '[413988.0.1450150744]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListLogisticsCostEngine
+  ]
+  Properties:
+  [
+    Title: '鍙戝姩鏈烘垚鏈弬鏁拌〃'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_ListLogisticsCostMachining.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_ListLogisticsCostMachining.def
new file mode 100644
index 0000000..0d53cc6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_ListLogisticsCostMachining.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListLogisticsCostMachining
+{
+  #keys: '[413988.0.1455420475]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorLogisticsCostMachining
+    {
+      #keys: '[413988.0.1455420476]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'LogisticsCostMachining'
+      ]
+    }
+    #child: listActionBarPageLogisticsCostMachining
+    Component DataSetLevelLogisticsCostMachining
+    {
+      #keys: '[413988.0.1455420481]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuLogisticsCostMachining
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product","title":"浜у搧","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Product"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Factory","title":"宸ュ巶","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Factory"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PackagingCapacity","title":"鍖呰瀹归噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PackagingCapacity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehousingPrice","title":"鍏ュ簱鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehousingPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OutboundPrice","title":"鍑哄簱鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OutboundPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PackagePrice","title":"鍖呰鍗曚环(RMB/pcs)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PackagePrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnpackingPrice","title":"鎷嗗寘鍗曚环(RMB/pcs)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnpackingPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BufferPaperPrice","title":"缂撳啿绾稿崟浠�(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BufferPaperPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StoragePrice","title":"浠撳偍鍗曚环(RMB/鎵�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StoragePrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WoodenCratePrice","title":"鏈ㄧ鍗曚环","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WoodenCratePrice"}}]'
+        ContextMenu: 'listContextMenuLogisticsCostMachining'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListLogisticsCostMachining_WebMenu_OnClick
+    {
+      #keys: '[413988.0.1456922138]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[3479.0.23606621]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listActionBarPageLogisticsCostMachining.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listActionBarPageLogisticsCostMachining.def
new file mode 100644
index 0000000..cac9021
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listActionBarPageLogisticsCostMachining.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageLogisticsCostMachining
+{
+  #keys: '[413988.0.1455420478]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listContextMenuLogisticsCostMachining.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listContextMenuLogisticsCostMachining.def
new file mode 100644
index 0000000..03dd60f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Component_listContextMenuLogisticsCostMachining.def
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+Component listContextMenuLogisticsCostMachining
+{
+  #keys: '[413988.0.1455420483]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component mNew
+    {
+      #keys: '[413988.0.1456921903]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'ADD2'
+        Taborder: 3
+        Title: 'New'
+      ]
+    }
+    Component mEdit
+    {
+      #keys: '[413988.0.1456921916]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        BindOnDoubleClick: true
+        Image: 'NOTEBOOK_EDIT'
+        Taborder: 4
+        Title: 'Edit'
+      ]
+    }
+    Component mDelete
+    {
+      #keys: '[413988.0.1456921959]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'DELETE'
+        Taborder: 5
+        Title: 'Delete'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mDelete_OnClick.def
new file mode 100644
index 0000000..9e0dd87
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mDelete_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostMachining
+Response OnClick (
+  structured[LogisticsCostMachining] selection
+) id:Response_ListLogisticsCostMachining_mDelete_OnClick
+{
+  #keys: '[413988.0.1457263650]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostMachining/Responsedef_ListLogisticsCostMachining_WebMenu_OnClick
+  Initiator: 'mDelete'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      MacroPlan::DeleteObjects( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mEdit_OnClick.def
new file mode 100644
index 0000000..f428d2c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mEdit_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostMachining
+Response OnClick (
+  LogisticsCostMachining selection
+) id:Response_ListLogisticsCostMachining_mEdit_OnClick
+{
+  #keys: '[413988.0.1457263549]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostMachining/Responsedef_ListLogisticsCostMachining_WebMenu_OnClick
+  Initiator: 'mEdit'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostMachining );
+      
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mNew_OnClick.def
new file mode 100644
index 0000000..883b05f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/Response_ListLogisticsCostMachining_mNew_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostMachining
+Response OnClick () id:Response_ListLogisticsCostMachining_mNew_OnClick
+{
+  #keys: '[413988.0.1456922157]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostMachining/Responsedef_ListLogisticsCostMachining_WebMenu_OnClick
+  Initiator: 'mNew'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostMachining );
+      
+      dlg.New();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/_ROOT_Component_FormLogisticsCostMachining.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/_ROOT_Component_FormLogisticsCostMachining.def
new file mode 100644
index 0000000..ba21c5b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMachining/_ROOT_Component_FormLogisticsCostMachining.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormLogisticsCostMachining
+{
+  #keys: '[413988.0.1455420446]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListLogisticsCostMachining
+  ]
+  Properties:
+  [
+    Title: '鏈哄姞鎴愭湰鍙傛暟琛�'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_ListLogisticsCostMaterialRack.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_ListLogisticsCostMaterialRack.def
new file mode 100644
index 0000000..dd7f17a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_ListLogisticsCostMaterialRack.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListLogisticsCostMaterialRack
+{
+  #keys: '[413988.0.1455669274]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorLogisticsCostMaterialRack
+    {
+      #keys: '[413988.0.1455669275]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'LogisticsCostMaterialRack'
+      ]
+    }
+    #child: listActionBarPageLogisticsCostMaterialRack
+    Component DataSetLevelLogisticsCostMaterialRack
+    {
+      #keys: '[413988.0.1455669280]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuLogisticsCostMaterialRack
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Factory","title":"宸ュ巶","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Factory"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehousingPrice","title":"鍏ュ簱鍗曚环(RMB/涓�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehousingPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OutboundPrice","title":"鍑哄簱鍗曚环(RMB/涓�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OutboundPrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StoragePrice","title":"浠撳偍鍗曚环(RMB/涓�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StoragePrice"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CleanPrice","title":"娓呮礂鍗曚环(RMB/涓�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CleanPrice"}}]'
+        ContextMenu: 'listContextMenuLogisticsCostMaterialRack'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListLogisticsCostMaterialRack_WebMenu_OnClick
+    {
+      #keys: '[413988.0.1458320890]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[3479.0.90269040]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listActionBarPageLogisticsCostMaterialRack.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listActionBarPageLogisticsCostMaterialRack.def
new file mode 100644
index 0000000..a6cf014
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listActionBarPageLogisticsCostMaterialRack.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageLogisticsCostMaterialRack
+{
+  #keys: '[413988.0.1455669277]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listContextMenuLogisticsCostMaterialRack.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listContextMenuLogisticsCostMaterialRack.def
new file mode 100644
index 0000000..7b3c547
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Component_listContextMenuLogisticsCostMaterialRack.def
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+Component listContextMenuLogisticsCostMaterialRack
+{
+  #keys: '[413988.0.1455669282]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component mNew id:mNew_523
+    {
+      #keys: '[413988.0.1458320844]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'ADD2'
+        Taborder: 3
+        Title: 'New'
+      ]
+    }
+    Component mEdit id:mEdit_916
+    {
+      #keys: '[413988.0.1458320862]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        BindOnDoubleClick: true
+        Image: 'NOTEBOOK_EDIT'
+        Taborder: 4
+        Title: 'Edit'
+      ]
+    }
+    Component mDelete id:mDelete_94
+    {
+      #keys: '[413988.0.1458320879]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'DELETE'
+        Taborder: 5
+        Title: 'Delete'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mDelete_OnClick.def
new file mode 100644
index 0000000..a283302
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mDelete_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostMaterialRack
+Response OnClick (
+  structured[LogisticsCostMaterialRack] selection
+) id:Response_ListLogisticsCostMaterialRack_mDelete_OnClick
+{
+  #keys: '[413988.0.1456916010]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostMaterialRack/Responsedef_ListLogisticsCostMaterialRack_WebMenu_OnClick
+  Initiator: 'mDelete'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      MacroPlan::DeleteObjects( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mEdit_OnClick.def
new file mode 100644
index 0000000..09877e0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mEdit_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostMaterialRack
+Response OnClick (
+  LogisticsCostMaterialRack selection
+) id:Response_ListLogisticsCostMaterialRack_mEdit_OnClick
+{
+  #keys: '[413988.0.1457723884]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostMaterialRack/Responsedef_ListLogisticsCostMaterialRack_WebMenu_OnClick
+  Initiator: 'mEdit'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostMaterialRack );
+      
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mNew_OnClick.def
new file mode 100644
index 0000000..de7dc21
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/Response_ListLogisticsCostMaterialRack_mNew_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostMaterialRack
+Response OnClick () id:Response_ListLogisticsCostMaterialRack_mNew_OnClick
+{
+  #keys: '[413988.0.1458364444]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostMaterialRack/Responsedef_ListLogisticsCostMaterialRack_WebMenu_OnClick
+  Initiator: 'mNew'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostMaterialRack );
+      
+      dlg.New();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/_ROOT_Component_FormLogisticsCostMaterialRack.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/_ROOT_Component_FormLogisticsCostMaterialRack.def
new file mode 100644
index 0000000..09d9dc7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostMaterialRack/_ROOT_Component_FormLogisticsCostMaterialRack.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormLogisticsCostMaterialRack
+{
+  #keys: '[413988.0.1455669244]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListLogisticsCostMaterialRack
+  ]
+  Properties:
+  [
+    Title: '鏂欐灦鎴愭湰鍙傛暟琛�'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_ListLogisticsCostTransport.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_ListLogisticsCostTransport.def
new file mode 100644
index 0000000..e0c134d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_ListLogisticsCostTransport.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListLogisticsCostTransport
+{
+  #keys: '[413988.0.1455606365]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorLogisticsCostTransport
+    {
+      #keys: '[413988.0.1455606366]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'LogisticsCostTransport'
+      ]
+    }
+    #child: listActionBarPageLogisticsCostTransport
+    Component DataSetLevelLogisticsCostTransport
+    {
+      #keys: '[413988.0.1455606371]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuLogisticsCostTransport
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product","title":"浜у搧","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Product"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Origin","title":"璧峰鍦�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Origin"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Destination","title":"鐩殑鍦�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Destination"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LoadingCapacity","title":"瑁呰浇瀹归噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LoadingCapacity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"TransportPrice","title":"杩愯緭鍗曚环(RMB/杞�)","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"TransportPrice"}}]'
+        ContextMenu: 'listContextMenuLogisticsCostTransport'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListLogisticsCostTransport_WebMenu_OnClick
+    {
+      #keys: '[413988.0.1458805532]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[3479.0.119091669]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listActionBarPageLogisticsCostTransport.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listActionBarPageLogisticsCostTransport.def
new file mode 100644
index 0000000..92776e0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listActionBarPageLogisticsCostTransport.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageLogisticsCostTransport
+{
+  #keys: '[413988.0.1455606368]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listContextMenuLogisticsCostTransport.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listContextMenuLogisticsCostTransport.def
new file mode 100644
index 0000000..05a3837
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Component_listContextMenuLogisticsCostTransport.def
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+Component listContextMenuLogisticsCostTransport
+{
+  #keys: '[413988.0.1455606373]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component mNew
+    {
+      #keys: '[413988.0.1458761055]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'ADD2'
+        Taborder: 3
+        Title: 'New'
+      ]
+    }
+    Component mEdit
+    {
+      #keys: '[413988.0.1458761073]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        BindOnDoubleClick: true
+        Image: 'NOTEBOOK_EDIT'
+        Taborder: 4
+        Title: 'Edit'
+      ]
+    }
+    Component mDelete
+    {
+      #keys: '[413988.0.1458761090]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'DELETE'
+        Taborder: 5
+        Title: 'Delete'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mDelete_OnClick.def
new file mode 100644
index 0000000..1f45eb1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mDelete_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostTransport
+Response OnClick (
+  structured[LogisticsCostTransport] selection
+) id:Response_ListLogisticsCostTransport_mDelete_OnClick
+{
+  #keys: '[413988.0.1458761154]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostTransport/Responsedef_ListLogisticsCostTransport_WebMenu_OnClick
+  Initiator: 'mDelete'
+  QuillAction
+  {
+    Body:
+    [*
+      MacroPlan::DeleteObjects( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mEdit_OnClick.def
new file mode 100644
index 0000000..0dee166
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mEdit_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostTransport
+Response OnClick (
+  LogisticsCostTransport selection
+) id:Response_ListLogisticsCostTransport_mEdit_OnClick
+{
+  #keys: '[413988.0.1457199599]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostTransport/Responsedef_ListLogisticsCostTransport_WebMenu_OnClick
+  Initiator: 'mEdit'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostTransport );
+      
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mNew_OnClick.def
new file mode 100644
index 0000000..cc5d5d8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/Response_ListLogisticsCostTransport_mNew_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListLogisticsCostTransport
+Response OnClick () id:Response_ListLogisticsCostTransport_mNew_OnClick
+{
+  #keys: '[413988.0.1458805550]'
+  CanBindMultiple: false
+  DefinitionID => /ListLogisticsCostTransport/Responsedef_ListLogisticsCostTransport_WebMenu_OnClick
+  Initiator: 'mNew'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditLogisticsCostTransport );
+      
+      dlg.New();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/_ROOT_Component_FormLogisticsCostTransport.def b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/_ROOT_Component_FormLogisticsCostTransport.def
new file mode 100644
index 0000000..f68ca89
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLogisticsCostTransport/_ROOT_Component_FormLogisticsCostTransport.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormLogisticsCostTransport
+{
+  #keys: '[413988.0.1455606336]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListLogisticsCostTransport
+  ]
+  Properties:
+  [
+    Title: '杩愯緭鎴愭湰鍙傛暟琛�'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw b/_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw
new file mode 100644
index 0000000..e12a02c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw
@@ -0,0 +1,421 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormLogisticsCostEngine
+      {
+        title: 'QMacroPlanner::FormLogisticsCostEngine'
+        shown: true
+        componentID: 'QMacroPlanner::FormLogisticsCostEngine'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 7
+          columnPosition: 1
+          columnSpan: 8
+        }
+        components
+        {
+          FormLogisticsCostEngine_ListLogisticsCostEngine
+          {
+          }
+          FormLogisticsCostEngine_DataSetLevelLogisticsCostEngine
+          {
+            groupDepth: -1
+            column_Generation
+            {
+              columnId: 'Generation'
+              dataPath: 'Generation'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 86
+            }
+            column_MLB_MQB
+            {
+              columnId: 'MLB_MQB'
+              dataPath: 'MLB_MQB'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 82
+            }
+            column_Product
+            {
+              columnId: 'Product'
+              dataPath: 'Product'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 63
+            }
+            column_Factory
+            {
+              columnId: 'Factory'
+              dataPath: 'Factory'
+              dataType: 'string'
+              index: 3
+              subtotals: ''
+              width: 60
+            }
+            column_PackagingCapacity
+            {
+              columnId: 'PackagingCapacity'
+              dataPath: 'PackagingCapacity'
+              dataType: 'number'
+              index: 4
+              subtotals: ''
+              width: 86
+            }
+            column_WarehousingPrice
+            {
+              columnId: 'WarehousingPrice'
+              dataPath: 'WarehousingPrice'
+              dataType: 'number'
+              index: 5
+              subtotals: ''
+              width: 126
+            }
+            column_OutboundPrice
+            {
+              columnId: 'OutboundPrice'
+              dataPath: 'OutboundPrice'
+              dataType: 'number'
+              index: 6
+              subtotals: ''
+              width: 126
+            }
+            column_StoragePrice
+            {
+              columnId: 'StoragePrice'
+              dataPath: 'StoragePrice'
+              dataType: 'number'
+              index: 7
+              subtotals: ''
+              width: 124
+            }
+            column_OtherPrice
+            {
+              columnId: 'OtherPrice'
+              dataPath: 'OtherPrice'
+              dataType: 'number'
+              index: 8
+              subtotals: ''
+              width: 127
+            }
+          }
+        }
+      }
+      form_FormLogisticsCostTransport
+      {
+        title: 'QMacroPlanner::FormLogisticsCostTransport'
+        shown: true
+        componentID: 'QMacroPlanner::FormLogisticsCostTransport'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 7
+          columnPosition: 9
+          columnSpan: 4
+        }
+        components
+        {
+          FormLogisticsCostTransport_ListLogisticsCostTransport
+          {
+          }
+          FormLogisticsCostTransport_DataSetLevelLogisticsCostTransport
+          {
+            groupDepth: -1
+            column_Product
+            {
+              columnId: 'Product'
+              dataPath: 'Product'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 52
+            }
+            column_Origin
+            {
+              columnId: 'Origin'
+              dataPath: 'Origin'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 66
+            }
+            column_Destination
+            {
+              columnId: 'Destination'
+              dataPath: 'Destination'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 67
+            }
+            column_LoadingCapacity
+            {
+              columnId: 'LoadingCapacity'
+              dataPath: 'LoadingCapacity'
+              dataType: 'number'
+              index: 3
+              subtotals: ''
+              width: 81
+            }
+            column_TransportPrice
+            {
+              columnId: 'TransportPrice'
+              dataPath: 'TransportPrice'
+              dataType: 'number'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_FormLogisticsCostMaterialRack
+      {
+        title: 'QMacroPlanner::FormLogisticsCostMaterialRack'
+        shown: true
+        componentID: 'QMacroPlanner::FormLogisticsCostMaterialRack'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 8
+          rowSpan: 7
+          columnPosition: 9
+          columnSpan: 4
+        }
+        components
+        {
+          FormLogisticsCostMaterialRack_ListLogisticsCostMaterialRack
+          {
+          }
+          FormLogisticsCostMaterialRack_DataSetLevelLogisticsCostMaterialRack
+          {
+            groupDepth: -1
+            column_Factory
+            {
+              columnId: 'Factory'
+              dataPath: 'Factory'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 51
+            }
+            column_WarehousingPrice
+            {
+              columnId: 'WarehousingPrice'
+              dataPath: 'WarehousingPrice'
+              dataType: 'number'
+              index: 1
+              subtotals: ''
+              width: 123
+            }
+            column_OutboundPrice
+            {
+              columnId: 'OutboundPrice'
+              dataPath: 'OutboundPrice'
+              dataType: 'number'
+              index: 2
+              subtotals: ''
+              width: 124
+            }
+            column_StoragePrice
+            {
+              columnId: 'StoragePrice'
+              dataPath: 'StoragePrice'
+              dataType: 'number'
+              index: 3
+              subtotals: ''
+              width: 126
+            }
+            column_CleanPrice
+            {
+              columnId: 'CleanPrice'
+              dataPath: 'CleanPrice'
+              dataType: 'number'
+              index: 4
+              subtotals: ''
+              width: 128
+            }
+          }
+        }
+      }
+      form_FormLogisticsCostMachining
+      {
+        title: 'QMacroPlanner::FormLogisticsCostMachining'
+        shown: true
+        componentID: 'QMacroPlanner::FormLogisticsCostMachining'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 8
+          rowSpan: 7
+          columnPosition: 1
+          columnSpan: 8
+        }
+        components
+        {
+          FormLogisticsCostMachining_ListLogisticsCostMachining
+          {
+          }
+          FormLogisticsCostMachining_DataSetLevelLogisticsCostMachining
+          {
+            groupDepth: -1
+            column_Product
+            {
+              columnId: 'Product'
+              dataPath: 'Product'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 51
+            }
+            column_Factory
+            {
+              columnId: 'Factory'
+              dataPath: 'Factory'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 54
+            }
+            column_PackagingCapacity
+            {
+              columnId: 'PackagingCapacity'
+              dataPath: 'PackagingCapacity'
+              dataType: 'number'
+              index: 2
+              subtotals: ''
+              width: 73
+            }
+            column_WarehousingPrice
+            {
+              columnId: 'WarehousingPrice'
+              dataPath: 'WarehousingPrice'
+              dataType: 'number'
+              index: 3
+              subtotals: ''
+              width: 126
+            }
+            column_OutboundPrice
+            {
+              columnId: 'OutboundPrice'
+              dataPath: 'OutboundPrice'
+              dataType: 'number'
+              index: 4
+              subtotals: ''
+              width: 130
+            }
+            column_PackagePrice
+            {
+              columnId: 'PackagePrice'
+              dataPath: 'PackagePrice'
+              dataType: 'number'
+              index: 5
+              subtotals: ''
+              width: 131
+            }
+            column_UnpackingPrice
+            {
+              columnId: 'UnpackingPrice'
+              dataPath: 'UnpackingPrice'
+              dataType: 'number'
+              index: 6
+              subtotals: ''
+              width: 133
+            }
+            column_BufferPaperPrice
+            {
+              columnId: 'BufferPaperPrice'
+              dataPath: 'BufferPaperPrice'
+              dataType: 'number'
+              index: 7
+              subtotals: ''
+              width: 135
+            }
+            column_StoragePrice
+            {
+              columnId: 'StoragePrice'
+              dataPath: 'StoragePrice'
+              dataType: 'number'
+              index: 8
+              subtotals: ''
+              width: 126
+            }
+            column_WoodenCratePrice
+            {
+              columnId: 'WoodenCratePrice'
+              dataPath: 'WoodenCratePrice'
+              dataType: 'number'
+              index: 9
+              subtotals: ''
+              width: 79
+            }
+          }
+        }
+      }
+      form_FormGeneralSettings
+      {
+        title: 'General Settings'
+        shown: true
+        componentID: 'FormGeneralSettings'
+        layout
+        {
+          mode: 'dockright'
+          index: 0
+        }
+        components
+        {
+          FormGeneralSettings_PanelContent
+          {
+            sizeRatio: 1
+          }
+          FormGeneralSettings_PanelGeneralParameter
+          {
+            sizeRatio: 1
+          }
+          FormGeneralSettings_PanelLeadTimeDependent
+          {
+            sizeRatio: 1
+          }
+          FormGeneralSettings_PanelShelfLife
+          {
+            sizeRatio: 1
+          }
+          FormGeneralSettings_PanelSustainability
+          {
+            sizeRatio: 1
+          }
+          FormGeneralSettings_PanelForecastNetting
+          {
+            sizeRatio: 1
+          }
+          FormGeneralSettings_PanelActions
+          {
+            sizeRatio: 1
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: ''
+    group: ''
+    index: 0
+    image: 'BEAR'
+    description: ''
+  }
+  formatversion: 2
+  id: 'LogisticsCostParameterSetting'
+  name: 'LogisticsCostParameterSetting'
+  isglobal: false
+  isroot: true
+}
diff --git "a/_var/_Main/ProjSettings/EditorTC/Views/\347\217\255\346\254\241\346\227\266\351\227\264\345\210\206\346\236\220_\133413988.0.1367211460\135.vw" "b/_var/_Main/ProjSettings/EditorTC/Views/\347\217\255\346\254\241\346\227\266\351\227\264\345\210\206\346\236\220_\133413988.0.1367211460\135.vw"
index 372d6ab..7991f60 100644
--- "a/_var/_Main/ProjSettings/EditorTC/Views/\347\217\255\346\254\241\346\227\266\351\227\264\345\210\206\346\236\220_\133413988.0.1367211460\135.vw"
+++ "b/_var/_Main/ProjSettings/EditorTC/Views/\347\217\255\346\254\241\346\227\266\351\227\264\345\210\206\346\236\220_\133413988.0.1367211460\135.vw"
@@ -17,7 +17,7 @@
   CREATIONUSER 'quintiq/lihongji'
   UPDATEDATETIME '2024-07-16T11:47:37'
   UPDATEUSER 'quintiq/lihongji'
-  LASTACCESSDATE '2024-07-26'
+  LASTACCESSDATE '2024-08-04'
   VIEWSCOPE 0
 }
 AUTHORIZATIONS

--
Gitblit v1.9.3