From d3c703272a0387212b3a758c9df2430fcc5b7816 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 14 八月 2024 16:23:37 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg

---
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pContent.def                                                      |   14 +
 _Main/BL/Type_DL_EngineRackRow/Attribute_Generation.qbl                                                                                   |    7 
 _Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl                                                                               |   11 +
 _Main/BL/Type_DL_EngineRackCell/Attribute_DLStorageFeesForRentedWarehouses.qbl                                                            |    8 
 _Main/BL/Type_DL_EngineRackCell/Attribute_CleaningCost.qbl                                                                                |    8 
 _Main/BL/Relations/Relation_DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRa.qbl                                       |   23 ++
 _Main/BL/Type_DL_EngineRackCell/Attribute_DLRentalWarehouseStorageFees.qbl                                                                |    8 
 _Main/BL/Type_DL_EngineRackRow/DefaultValue_MLB_MQB.qbl                                                                                   |    6 
 _Main/BL/Relations/Relation_DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn.qbl                                               |   23 ++
 _Main/BL/Type_DL_EngineRackRow/Attribute_Name.qbl                                                                                         |    7 
 _Main/BL/Type_DL_EngineRackCell/Attribute_DLExternalRentalWarehouseTransportationCosts.qbl                                                |    8 
 _Main/BL/Type_DL_EngineRackCell/Attribute_CCRentalWarehouseStorageFees.qbl                                                                |    8 
 _Main/BL/Relations/Relation_DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow.qbl                                                     |   23 ++
 _Main/BL/Type_DL_EngineRackRow/DefaultValue_Name.qbl                                                                                      |    6 
 _Main/BL/Type_DL_EngineRackRow/Function_CalcName.qbl                                                                                      |   13 +
 _Main/BL/Type_DL_EngineRackCell/Attribute_TotalCost.qbl                                                                                   |    8 
 _Main/BL/Relations/Relation_DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackR.qbl                                       |   23 ++
 _Main/BL/Type_DL_EngineRackCell/Attribute_CCStorageFeesForRentedWarehouses.qbl                                                            |    8 
 _Main/BL/Type_DL_EngineRackCell/Attribute_CCShortDistanceTransportationCosts.qbl                                                          |    8 
 _Main/BL/Type_DL_EngineRackRow/DefaultValue_Generation.qbl                                                                                |    6 
 _Main/BL/Type_DL_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl                                                                |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixeditorContextMenu687.def                                    |   10 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick.def |   16 +
 _Main/BL/Type_DL_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl                                                                        |    8 
 _Main/UI/MacroPlannerWebApp/Views/DLEngineRackReport.vw                                                                                   |   89 ++++++++
 _Main/BL/Type_DL_EngineRackColumn/_ROOT_Type_DL_EngineRackColumn.qbl                                                                      |    9 
 _Main/BL/Type_DL_EngineRackCell/_ROOT_Type_DL_EngineRackCell.qbl                                                                          |    9 
 _Main/BL/Type_DL_EngineRackRow/_ROOT_Type_DL_EngineRackRow.qbl                                                                            |    9 
 _Main/BL/Type_DL_EngineRackCell/Attribute_DLOutboundExpensesForRentedWarehouses.qbl                                                       |    8 
 _Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl                                                                               |   36 +++
 _Main/BL/Type_DL_EngineRackColumn/Attribute_StartDate.qbl                                                                                 |    7 
 _Main/BL/Type_DL_EngineRackRow/Attribute_MLB_MQB.qbl                                                                                      |    7 
 _Main/BL/Type_DL_EngineRackCell/Attribute_CCLineHaulCost.qbl                                                                              |    8 
 _Main/BL/Type_DL_EngineRackCell/Attribute_CCOutboundExpensesForRentedWarehouses.qbl                                                       |    8 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def                                          |   15 +
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pHeader.def                                                       |   26 ++
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Response_pHeader_bRefresh_OnClick.def                                       |   20 +
 _Main/BL/Type_DL_EngineRackCell/Attribute_EstimatedTotalCost.qbl                                                                          |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_MatrixEditor392.def                                               |   98 ++++++++
 _Main/BL/Type_DL_EngineRackCell/Attribute_Coefficient.qbl                                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/_ROOT_Component_FormDL_EngineRackReport.def                                 |   13 +
 _Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixEditorActionBarPage191.def                                  |   10 
 42 files changed, 654 insertions(+), 2 deletions(-)

diff --git a/_Main/BL/Relations/Relation_DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRa.qbl b/_Main/BL/Relations/Relation_DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRa.qbl
new file mode 100644
index 0000000..70cfdb4
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRa.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackColumn
+{
+  #keys: '1[413988.0.1488132644]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide DL_EngineRackCell
+  {
+    #keys: '3[413988.0.1488132646][413988.0.1488132645][413988.0.1488132647]'
+    Cardinality: '1toN'
+    ObjectDefinition: DL_EngineRackColumn
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide DL_EngineRackColumn
+  {
+    #keys: '3[413988.0.1488132649][413988.0.1488132648][413988.0.1488132650]'
+    Cardinality: '0to1'
+    ObjectDefinition: DL_EngineRackCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn.qbl b/_Main/BL/Relations/Relation_DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn.qbl
new file mode 100644
index 0000000..5c1eeeb
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn
+{
+  #keys: '1[413988.0.1488132631]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[413988.0.1488132633][413988.0.1488132632][413988.0.1488132634]'
+    Cardinality: '0to1'
+    ObjectDefinition: DL_EngineRackColumn
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide DL_EngineRackColumn
+  {
+    #keys: '3[413988.0.1488132636][413988.0.1488132635][413988.0.1488132637]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackR.qbl b/_Main/BL/Relations/Relation_DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackR.qbl
new file mode 100644
index 0000000..a652d99
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackR.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackRow
+{
+  #keys: '1[413988.0.1488132614]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide DL_EngineRackCell
+  {
+    #keys: '3[413988.0.1488132616][413988.0.1488132615][413988.0.1488132617]'
+    Cardinality: '1toN'
+    ObjectDefinition: DL_EngineRackRow
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide DL_EngineRackRow
+  {
+    #keys: '3[413988.0.1488132619][413988.0.1488132618][413988.0.1488132620]'
+    Cardinality: '0to1'
+    ObjectDefinition: DL_EngineRackCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow.qbl b/_Main/BL/Relations/Relation_DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow.qbl
new file mode 100644
index 0000000..1265f1a
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow
+{
+  #keys: '1[413988.0.1488132601]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[413988.0.1488132603][413988.0.1488132602][413988.0.1488132604]'
+    Cardinality: '0to1'
+    ObjectDefinition: DL_EngineRackRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide DL_EngineRackRow
+  {
+    #keys: '3[413988.0.1488132606][413988.0.1488132605][413988.0.1488132607]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl b/_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl
index 51d54a2..87bff90 100644
--- a/_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl
+++ b/_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl
@@ -21,5 +21,16 @@
       macroPlan.CC_EngineRackColumn( relnew, StartDate := indexDate );
       indexDate := indexDate.StartOfNextMonth();
     }
+    
+    // 鍒涘缓鍗曞厓鏍�
+    traverse ( macroPlan, CC_EngineRackRow, ccerr ) {
+      traverse ( macroPlan, CC_EngineRackColumn, ccerc ) {
+        cell := ccerr.CC_EngineRackCell( relnew );
+        
+        // 澶栫搴撳叆搴撹垂鐢紙鍙戝姩鏈洪攢閲� / 鍖呰瀹归噺[鍚戜笂鍙栨暣] * 鏂欐灦鍏ュ簱鍗曚环锛�
+        
+        // 澶栫搴撳嚭搴撹垂鐢紙鍙戝姩鏈轰骇閲� / 鍖呰瀹归噺[鍚戜笂鍙栨暣] * 鏂欐灦鍑哄簱鍗曚环锛�
+      }
+    }
   *]
 }
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_CCLineHaulCost.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCLineHaulCost.qbl
new file mode 100644
index 0000000..f9d737d
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCLineHaulCost.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CCLineHaulCost
+{
+  #keys: '3[413988.0.1488160127][413988.0.1488160126][413988.0.1488160128]'
+  Description: 'CC闀块�旇繍杈撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_CCOutboundExpensesForRentedWarehouses.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCOutboundExpensesForRentedWarehouses.qbl
new file mode 100644
index 0000000..aea2366
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCOutboundExpensesForRentedWarehouses.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CCOutboundExpensesForRentedWarehouses
+{
+  #keys: '3[413988.0.1488160088][413988.0.1488160087][413988.0.1488160089]'
+  Description: 'CC澶栫搴撳嚭搴撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_CCRentalWarehouseStorageFees.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCRentalWarehouseStorageFees.qbl
new file mode 100644
index 0000000..21aceda
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCRentalWarehouseStorageFees.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CCRentalWarehouseStorageFees
+{
+  #keys: '3[413988.0.1488160085][413988.0.1488160084][413988.0.1488160086]'
+  Description: 'CC澶栫搴撲粨鍌ㄨ垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_CCShortDistanceTransportationCosts.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCShortDistanceTransportationCosts.qbl
new file mode 100644
index 0000000..4b0d7c2
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCShortDistanceTransportationCosts.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CCShortDistanceTransportationCosts
+{
+  #keys: '3[413988.0.1488160140][413988.0.1488160139][413988.0.1488160141]'
+  Description: 'CC鐭�旇繍杈撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_CCStorageFeesForRentedWarehouses.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCStorageFeesForRentedWarehouses.qbl
new file mode 100644
index 0000000..0030285
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_CCStorageFeesForRentedWarehouses.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CCStorageFeesForRentedWarehouses
+{
+  #keys: '3[413988.0.1488160082][413988.0.1488160081][413988.0.1488160083]'
+  Description: 'CC澶栫搴撳叆搴撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_CleaningCost.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_CleaningCost.qbl
new file mode 100644
index 0000000..65b1569
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_CleaningCost.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CleaningCost
+{
+  #keys: '3[413988.0.1488160070][413988.0.1488160069][413988.0.1488160071]'
+  Description: '娓呮礂璐圭敤'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_Coefficient.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_Coefficient.qbl
new file mode 100644
index 0000000..033b1b7
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_Coefficient.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Coefficient
+{
+  #keys: '3[413988.0.1488160076][413988.0.1488160075][413988.0.1488160077]'
+  Description: '绯绘暟'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_DLExternalRentalWarehouseTransportationCosts.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLExternalRentalWarehouseTransportationCosts.qbl
new file mode 100644
index 0000000..8d194a3
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLExternalRentalWarehouseTransportationCosts.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DLExternalRentalWarehouseTransportationCosts
+{
+  #keys: '3[413988.0.1488160120][413988.0.1488160119][413988.0.1488160121]'
+  Description: 'DL澶栫搴撹繍杈撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_DLOutboundExpensesForRentedWarehouses.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLOutboundExpensesForRentedWarehouses.qbl
new file mode 100644
index 0000000..d28179a
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLOutboundExpensesForRentedWarehouses.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DLOutboundExpensesForRentedWarehouses
+{
+  #keys: '3[413988.0.1488160107][413988.0.1488160106][413988.0.1488160108]'
+  Description: 'DL澶栫搴撳嚭搴撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_DLRentalWarehouseStorageFees.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLRentalWarehouseStorageFees.qbl
new file mode 100644
index 0000000..52465fe
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLRentalWarehouseStorageFees.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DLRentalWarehouseStorageFees
+{
+  #keys: '3[413988.0.1488160104][413988.0.1488160103][413988.0.1488160105]'
+  Description: '澶栫搴撲粨鍌ㄨ垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_DLStorageFeesForRentedWarehouses.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLStorageFeesForRentedWarehouses.qbl
new file mode 100644
index 0000000..b9c4bed
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_DLStorageFeesForRentedWarehouses.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DLStorageFeesForRentedWarehouses
+{
+  #keys: '3[413988.0.1488160101][413988.0.1488160100][413988.0.1488160102]'
+  Description: 'DL澶栫搴撳叆搴撹垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_EstimatedTotalCost.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_EstimatedTotalCost.qbl
new file mode 100644
index 0000000..b4eae80
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_EstimatedTotalCost.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EstimatedTotalCost
+{
+  #keys: '3[413988.0.1488160067][413988.0.1488160066][413988.0.1488160068]'
+  Description: '棰勮鎬昏垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl
new file mode 100644
index 0000000..dc2670d
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute NumberOfEmptyShelves
+{
+  #keys: '3[413988.0.1488160059][413988.0.1488160058][413988.0.1488160060]'
+  Description: '绌烘枡鏋舵暟閲�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_TotalCost.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_TotalCost.qbl
new file mode 100644
index 0000000..13b7227
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_TotalCost.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TotalCost
+{
+  #keys: '3[413988.0.1488160073][413988.0.1488160072][413988.0.1488160074]'
+  Description: '鎬昏垂鐢�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl b/_Main/BL/Type_DL_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl
new file mode 100644
index 0000000..6ce47f1
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TotalQuantityOfMaterialRacks
+{
+  #keys: '3[413988.0.1488160063][413988.0.1488160062][413988.0.1488160064]'
+  Description: '鏂欐灦鎬绘暟閲�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl b/_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl
new file mode 100644
index 0000000..3c495c1
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateData (
+  MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    macroPlan.DL_EngineRackRow( relflush );
+    macroPlan.DL_EngineRackColumn( relflush );
+    
+    // 鍒涘缓琛孍VO5 MLB, EVO5 MQB, GEN3 MLB, GEN3 MQB
+    macroPlan.DL_EngineRackRow( relnew, Generation := "EVO5", MLB_MQB := "MLB" );
+    macroPlan.DL_EngineRackRow( relnew, Generation := "EVO5", MLB_MQB := "MQB" );
+    macroPlan.DL_EngineRackRow( relnew, Generation := "GEN3", MLB_MQB := "MLB" );
+    macroPlan.DL_EngineRackRow( relnew, Generation := "GEN3", MLB_MQB := "MQB" );
+    
+    // 鍒涘缓鍒�
+    indexDate := macroPlan.StartOfPlanning().Date().StartOfMonth();
+    for ( i := 0; i < 12; i++ ) {
+      macroPlan.DL_EngineRackColumn( relnew, StartDate := indexDate );
+      indexDate := indexDate.StartOfNextMonth();
+    }
+    
+    // 鍒涘缓鍗曞厓鏍�
+    traverse ( macroPlan, DL_EngineRackRow, dlerr ) {
+      traverse ( macroPlan, DL_EngineRackColumn, dlerc ) {
+        cell := dlerr.DL_EngineRackCell( relnew );
+        
+        // 澶栫搴撳叆搴撹垂鐢紙鍙戝姩鏈洪攢閲� / 鍖呰瀹归噺[鍚戜笂鍙栨暣] * 鏂欐灦鍏ュ簱鍗曚环锛�
+        
+        // 澶栫搴撳嚭搴撹垂鐢紙鍙戝姩鏈轰骇閲� / 鍖呰瀹归噺[鍚戜笂鍙栨暣] * 鏂欐灦鍑哄簱鍗曚环锛�
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_DL_EngineRackCell/_ROOT_Type_DL_EngineRackCell.qbl b/_Main/BL/Type_DL_EngineRackCell/_ROOT_Type_DL_EngineRackCell.qbl
new file mode 100644
index 0000000..b4b91cb
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackCell/_ROOT_Type_DL_EngineRackCell.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type DL_EngineRackCell
+{
+  #keys: '5[413988.0.1488132575][413988.0.1488132573][0.0.0][413988.0.1488132574][413988.0.1488132576]'
+  BaseType: Object
+  StructuredName: 'DL_EngineRackCells'
+}
diff --git a/_Main/BL/Type_DL_EngineRackColumn/Attribute_StartDate.qbl b/_Main/BL/Type_DL_EngineRackColumn/Attribute_StartDate.qbl
new file mode 100644
index 0000000..361c13f
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackColumn/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[413988.0.1488132628][413988.0.1488132627][413988.0.1488132629]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_DL_EngineRackColumn/_ROOT_Type_DL_EngineRackColumn.qbl b/_Main/BL/Type_DL_EngineRackColumn/_ROOT_Type_DL_EngineRackColumn.qbl
new file mode 100644
index 0000000..0dffeed
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackColumn/_ROOT_Type_DL_EngineRackColumn.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type DL_EngineRackColumn
+{
+  #keys: '5[413988.0.1488132585][413988.0.1488132583][0.0.0][413988.0.1488132584][413988.0.1488132586]'
+  BaseType: Object
+  StructuredName: 'DL_EngineRackColumns'
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/Attribute_Generation.qbl b/_Main/BL/Type_DL_EngineRackRow/Attribute_Generation.qbl
new file mode 100644
index 0000000..4d1931e
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/Attribute_Generation.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Generation
+{
+  #keys: '3[413988.0.1488132589][413988.0.1488132588][413988.0.1488132590]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/Attribute_MLB_MQB.qbl b/_Main/BL/Type_DL_EngineRackRow/Attribute_MLB_MQB.qbl
new file mode 100644
index 0000000..a676182
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/Attribute_MLB_MQB.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MLB_MQB
+{
+  #keys: '3[413988.0.1488132595][413988.0.1488132594][413988.0.1488132596]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/Attribute_Name.qbl b/_Main/BL/Type_DL_EngineRackRow/Attribute_Name.qbl
new file mode 100644
index 0000000..19a00a9
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[413988.0.1488132592][413988.0.1488132591][413988.0.1488132593]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/DefaultValue_Generation.qbl b/_Main/BL/Type_DL_EngineRackRow/DefaultValue_Generation.qbl
new file mode 100644
index 0000000..9e5b51e
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/DefaultValue_Generation.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Generation
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/DefaultValue_MLB_MQB.qbl b/_Main/BL/Type_DL_EngineRackRow/DefaultValue_MLB_MQB.qbl
new file mode 100644
index 0000000..b629d82
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/DefaultValue_MLB_MQB.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: MLB_MQB
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/DefaultValue_Name.qbl b/_Main/BL/Type_DL_EngineRackRow/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/Function_CalcName.qbl b/_Main/BL/Type_DL_EngineRackRow/Function_CalcName.qbl
new file mode 100644
index 0000000..cc3f7b8
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/Function_CalcName.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcName
+{
+  TextBody:
+  [*
+    // lihongji Aug-12-2024 (created)
+    
+    value := this.Generation() + " " + this.MLB_MQB();
+    
+    this.Name( value );
+  *]
+}
diff --git a/_Main/BL/Type_DL_EngineRackRow/_ROOT_Type_DL_EngineRackRow.qbl b/_Main/BL/Type_DL_EngineRackRow/_ROOT_Type_DL_EngineRackRow.qbl
new file mode 100644
index 0000000..9fb52b5
--- /dev/null
+++ b/_Main/BL/Type_DL_EngineRackRow/_ROOT_Type_DL_EngineRackRow.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type DL_EngineRackRow
+{
+  #keys: '5[413988.0.1488132580][413988.0.1488132578][0.0.0][413988.0.1488132579][413988.0.1488132581]'
+  BaseType: Object
+  StructuredName: 'DL_EngineRackRows'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
index 1b8cfac..25803c6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
@@ -98,7 +98,7 @@
       Properties:
       [
         Image: 'LOCATION_PIN'
-        Label: 'Machine logistics cost report'
+        Label: '鏈哄姞鐗╂祦鎴愭湰鎶ヨ〃'
         Taborder: 7
       ]
     }
@@ -146,6 +146,17 @@
         Taborder: 10
       ]
     }
+    Component bDL_EngineRackReport
+    {
+      #keys: '[413988.0.1488511896]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'EARTH_LOCATION'
+        Label: '澶ц繛鍙戝姩鏈烘枡鏋舵姤琛�'
+        Taborder: 11
+      ]
+    }
     Component ButtonEngineLogisticsCostReport
     {
       #keys: '[415136.0.989557433]'
@@ -158,7 +169,7 @@
       [
         Image: 'MONEY2'
         Label: '鍙戝姩鏈虹墿娴佹垚鏈姤琛�'
-        Taborder: 11
+        Taborder: 12
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick.def
new file mode 100644
index 0000000..470ceb9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupReport/bDL_EngineRackReport
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick
+{
+  #keys: '[413988.0.1488512018]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "DLEngineRackReport", true);
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_MatrixEditor392.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_MatrixEditor392.def
new file mode 100644
index 0000000..e80f1a7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_MatrixEditor392.def
@@ -0,0 +1,98 @@
+Quintiq file version 2.0
+Component MatrixEditor392
+{
+  #keys: '[413988.0.1489707423]'
+  BaseType: 'WebMatrixEditor'
+  Children:
+  [
+    Component MatrixEditorCell613
+    {
+      #keys: '[413988.0.1489707424]'
+      BaseType: 'WebMatrixEditorCell'
+      Children:
+      [
+        Component DataExtractor134
+        {
+          #keys: '[413988.0.1489707425]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'DL_EngineRackRow.DL_EngineRackCell'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Attributes: 'TotalQuantityOfMaterialRacks;NumberOfEmptyShelves;CCStorageFeesForRentedWarehouses;CCOutboundExpensesForRentedWarehouses;CCRentalWarehouseStorageFees;CCLineHaulCost;CCShortDistanceTransportationCosts;DLStorageFeesForRentedWarehouses;DLOutboundExpensesForRentedWarehouses;DLExternalRentalWarehouseTransportationCosts;DLRentalWarehouseStorageFees;CleaningCost;EstimatedTotalCost;Coefficient;TotalCost'
+        Column: 'DL_EngineRackColumn'
+        Row: 'DL_EngineRackRow'
+        Taborder: 0
+      ]
+    }
+    Component MatrixEditorRows494
+    {
+      #keys: '[413988.0.1489707428]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractor670
+        {
+          #keys: '[413988.0.1489707429]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'DL_EngineRackRow'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'Name'
+        SortCriteria: 'Name'
+        Taborder: 1
+      ]
+    }
+    Component MatrixEditorColumns989
+    {
+      #keys: '[413988.0.1489707432]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractor963
+        {
+          #keys: '[413988.0.1489707433]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'DL_EngineRackColumn'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'StartDate'
+        SortCriteria: 'StartDate'
+        Taborder: 2
+      ]
+    }
+    #child: matrixEditorActionBarPage191
+    #child: matrixeditorContextMenu687
+  ]
+  Properties:
+  [
+    AllowMultipleAttributes: true
+    Columns: 'MatrixEditorColumns989'
+    ContextMenu: 'matrixeditorContextMenu687'
+    Rows: 'MatrixEditorRows494'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixEditorActionBarPage191.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixEditorActionBarPage191.def
new file mode 100644
index 0000000..850426c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixEditorActionBarPage191.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPage191
+{
+  #keys: '[413988.0.1489707436]'
+  BaseType: 'matrixEditorActionBarPage'
+  Properties:
+  [
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixeditorContextMenu687.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixeditorContextMenu687.def
new file mode 100644
index 0000000..70b409c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixeditorContextMenu687.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenu687
+{
+  #keys: '[413988.0.1489707439]'
+  BaseType: 'matrixeditorContextMenu'
+  Properties:
+  [
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pContent.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pContent.def
new file mode 100644
index 0000000..d978a52
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pContent.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component pContent
+{
+  #keys: '[413988.0.1488511835]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: MatrixEditor392
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pHeader.def
new file mode 100644
index 0000000..d9d33b0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pHeader.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component pHeader
+{
+  #keys: '[413988.0.1488511824]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component bRefresh
+    {
+      #keys: '[413988.0.1488540773]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'REFRESH'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Border: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Response_pHeader_bRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Response_pHeader_bRefresh_OnClick.def
new file mode 100644
index 0000000..198ae43
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Response_pHeader_bRefresh_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: pHeader/bRefresh
+Response OnClick () id:Response_pHeader_bRefresh_OnClick
+{
+  #keys: '[413988.0.1488531173]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      DL_EngineRackCell::CreateData( MacroPlan );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/_ROOT_Component_FormDL_EngineRackReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/_ROOT_Component_FormDL_EngineRackReport.def
new file mode 100644
index 0000000..23cd4e6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/_ROOT_Component_FormDL_EngineRackReport.def
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormDL_EngineRackReport
+{
+  #keys: '[413988.0.1488511807]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pHeader
+    #child: pContent
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/DLEngineRackReport.vw b/_Main/UI/MacroPlannerWebApp/Views/DLEngineRackReport.vw
new file mode 100644
index 0000000..12f5037
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/DLEngineRackReport.vw
@@ -0,0 +1,89 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormDL_EngineRackReport
+      {
+        title: 'QMacroPlanner::FormDL_EngineRackReport'
+        shown: true
+        componentID: 'QMacroPlanner::FormDL_EngineRackReport'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 14
+          columnPosition: 1
+          columnSpan: 12
+        }
+        components
+        {
+          FormDL_EngineRackReport_pHeader
+          {
+            sizeRatio: 1
+          }
+          FormDL_EngineRackReport_pContent
+          {
+            sizeRatio: 1
+          }
+        }
+      }
+      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: 'DOCUMENT_MUSIC'
+    description: ''
+  }
+  formatversion: 2
+  id: 'DLEngineRackReport'
+  name: 'DLEngineRackReport'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3