From 843ca4d3d3e499d08c06eb718bef3ee92115ab9c Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期四, 21 九月 2023 23:52:10 +0800
Subject: [PATCH] 产能分配结果

---
 _Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl                                                                  |    8 +
 _Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl                                                              |    8 +
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl                                                     |   55 +++++++
 _Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl                                                             |    8 +
 _Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl                                                 |   10 +
 _Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl                                                         |    8 +
 _Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def                                              |    4 
 _Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl                                                          |    8 +
 _Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl                                                       |    8 +
 _Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl                                                                   |    8 +
 _Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl                                                            |    8 +
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def       |   10 +
 _Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def                                          |   12 +
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def                  |   41 +++++
 _Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def                            |   50 +++++++
 _Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl                                                                 |    8 +
 _Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl                                                            |    8 +
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl                                             |   25 +++
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def            |   28 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def     |   10 +
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def |   16 ++
 _Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl                              |   23 +++
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl                                                              |   28 ++++
 _Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl                                                      |    8 +
 24 files changed, 400 insertions(+), 0 deletions(-)

diff --git a/_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl b/_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl
new file mode 100644
index 0000000..278c0e9
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAllocationResults
+{
+  #keys: '1[414702.0.340560333]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.340560335][414702.0.340560334][414702.0.340560336]'
+    Cardinality: '0to1'
+    ObjectDefinition: CapacityAllocationResults
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide CapacityAllocationResults
+  {
+    #keys: '3[414702.0.340560338][414702.0.340560337][414702.0.340560339]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl
new file mode 100644
index 0000000..09c1ae9
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Division
+{
+  #keys: '3[414702.0.340560478][414702.0.340560477][414702.0.340560479]'
+  Description: '浜嬩笟閮�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl
new file mode 100644
index 0000000..ae1564e
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ModuleBase
+{
+  #keys: '3[414702.0.340560468][414702.0.340560467][414702.0.340560469]'
+  Description: '妯$粍鍩哄湴'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl
new file mode 100644
index 0000000..837fe5a
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ModuleMaterialCode
+{
+  #keys: '3[414702.0.340560429][414702.0.340560428][414702.0.340560430]'
+  Description: '妯$粍鐗╂枡缂栫爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl
new file mode 100644
index 0000000..bbaff01
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ModuleMeasurementUnit
+{
+  #keys: '3[414702.0.340560458][414702.0.340560457][414702.0.340560459]'
+  Description: '妯$粍鍗曚綅'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl
new file mode 100644
index 0000000..efcf4e6
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute NumberOfModules
+{
+  #keys: '3[414702.0.340560442][414702.0.340560441][414702.0.340560443]'
+  Description: '妯$粍鏁伴噺'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl
new file mode 100644
index 0000000..ad4630f
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute NumberOfPanels
+{
+  #keys: '3[414702.0.340560391][414702.0.340560390][414702.0.340560392]'
+  Description: '闈㈡澘鏁伴噺'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl
new file mode 100644
index 0000000..5feb094
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PanelBase
+{
+  #keys: '3[414702.0.340560371][414702.0.340560370][414702.0.340560372]'
+  Description: '闈㈡澘鍩哄湴'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl
new file mode 100644
index 0000000..883bd5c
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PanelMaterialCode
+{
+  #keys: '3[414702.0.340560381][414702.0.340560380][414702.0.340560382]'
+  Description: '闈㈡澘鐗╂枡缂栫爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl
new file mode 100644
index 0000000..d722862
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PanelMeasurementUnit
+{
+  #keys: '3[414702.0.340560404][414702.0.340560403][414702.0.340560405]'
+  Description: '闈㈡澘鍗曚綅'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl
new file mode 100644
index 0000000..3d48677
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RequirementDate
+{
+  #keys: '3[414702.0.340560506][414702.0.340560505][414702.0.340560507]'
+  Description: '闇�姹傛棩鏈�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl
new file mode 100644
index 0000000..490bfdf
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionNumber
+{
+  #keys: '3[414702.0.340560355][414702.0.340560354][414702.0.340560356]'
+  Description: '鐗堟湰鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
new file mode 100644
index 0000000..ef9782f
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateDate (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.CapacityAllocationResults( relflush );
+    
+    finaleProduct_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan );
+    
+    period_MPS := null( Period_MPs );
+    traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) {
+      period_MPS := selectsortedset( psmp, PeriodSpecificationPeriod.Period_MP, pmp, not pmp.IsHistorical(), pmp.StartDate() );
+    }
+    
+    traverse ( finaleProduct_MPs, Elements, fpmp/*, fpmp.ID() = "ProXOver 1 D2.6 A"*/ ) {
+      traverse ( fpmp, ProductInStockingPoint_MP, pisp, /*pisp.Name() = "ProXOver 1 D2.6 A in Finished Cars (France)" and*/ not pisp.IsSystem() ) {
+        traverse ( period_MPS, Elements, pmp ) {     
+          CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() );
+        }
+    //    info( pisp.Name() );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl
new file mode 100644
index 0000000..af2857c
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl
@@ -0,0 +1,55 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod IterativeGeneration (
+  GlobalOTDTable globalOTDTable,
+  ProductInStockingPoint_MP pisp,
+  Number numberOfLayers,
+  NewSupply finaleNewSupply,
+  Real finaleDependentDemand,
+  Date targetDate
+)
+{
+  TextBody:
+  [*
+    traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) {
+      traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) {
+    //    info( "鐢熸垚鐨勪骇鍝侊細", pisp.ProductID(), "    浜у搧鍦ㄥ簱瀛樼偣锛�", pisp.Name(), "    灞傛暟锛�", numberOfLayers, "    鎬荤敓浜ч噺锛�", ns.Quantity(), "    鏈�缁堜緷璧栫墿鏂欐暟閲忥細", finaleDependentDemand );
+        if ( finaleDependentDemand < 0 ) {
+          finaleDependentDemand := ns.Quantity();
+        }
+        if ( isnull( finaleNewSupply ) ) {
+          finaleNewSupply := ns;
+        }
+        if ( guard( ns.PeriodTask_MP().astype( PeriodTaskOperation ).DependentDemand( relsize ) > 0, false ) ) {
+          numberOfLayers++;
+          traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) {
+            oo := ns.ProcessOutput().astype( OperationOutput );
+            oi := dd.ProcessInput().astype( OperationInput );
+            finaleDependentDemand := finaleDependentDemand * oo.Quantity() * oi.Quantity();
+    //        info( "渚濊禆闇�姹備骇鍝両D锛�", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), "    渚濊禆鏁伴噺锛�", dd.Quantity(), "    褰撳墠鍛ㄦ湡浠诲姟Key锛�", dd.PeriodTask_MP().astype( PeriodTaskOperation ).Key() );
+            CapacityAllocationResults::IterativeGeneration( globalOTDTable, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), numberOfLayers, finaleNewSupply, finaleDependentDemand, targetDate );
+          }
+    //      info( "----------------------------------------------------" );
+        } else {
+    //      info( "鏃犱緷璧栭渶姹傦紝闇�瑕佺敓鎴愪骇鑳藉垎閰嶇粨鏋溿�傘�傘��" );
+    //      info( "======" );
+          pispPanel := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
+          pispModule := finaleNewSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
+          globalOTDTable.CapacityAllocationResults( relnew,
+                                                    PanelBase             := pispPanel.StockingPointID(),
+                                                    PanelMaterialCode     := pispPanel.ProductID(),
+                                                    NumberOfPanels        := finaleDependentDemand,
+                                                    PanelMeasurementUnit  := pispPanel.UnitOfMeasure_MP().Name(),
+                                                    ModuleMaterialCode    := pispModule.ProductID(),
+                                                    NumberOfModules       := finaleNewSupply.Quantity(),
+                                                    ModuleMeasurementUnit := pispModule.UnitOfMeasure_MP().Name(),
+                                                    ModuleBase            := pispModule.StockingPointID(),
+                                                    RequirementDate       := finaleNewSupply.Start().Date()
+                                                   );
+        }
+        finaleNewSupply := null( NewSupply );
+      }
+      numberOfLayers := 1;
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl
new file mode 100644
index 0000000..0db5a04
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ObtainTheFinalOutputProduct (
+  MacroPlan macroPlan
+) as owning Product_MPs
+{
+  TextBody:
+  [*
+    finaleProducts := construct( Product_MPs );
+    
+    traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) {
+      flag := true;
+      traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) {
+        if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) {
+          flag := false;
+        }
+      }
+      if ( flag ) {
+        finaleProducts.Add( pmp );
+      }
+    }
+    
+    return &finaleProducts;
+  *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl b/_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl
new file mode 100644
index 0000000..e6f475e
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type CapacityAllocationResults
+{
+  #keys: '5[414702.0.340560330][414702.0.340560328][0.0.0][414702.0.340560329][414702.0.340560331]'
+  BaseType: Object
+  Description: '浜ц兘鍒嗛厤缁撴灉鎶ヨ〃'
+  StructuredName: 'CapacityAllocationResultss'
+}
diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
index 20ed0bd..7aa83c9 100644
--- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
+++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -136,6 +136,8 @@
       [
         Component menuSeparator457 { #keys: '[414702.0.265704251]' BaseType: 'Menu' Properties: [ Separator: true ] }
         Component ComponentMenu666 { #keys: '[414702.0.265704260]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormBrokerExecuteLog' Text: '' ] }
+        Component menuSeparator822 { #keys: '[414702.0.340555024]' BaseType: 'Menu' Properties: [ Separator: true ] }
+        Component ComponentMenu783 { #keys: '[414702.0.340555035]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormTestButtonCollection' Text: '' ] }
       ]
       Properties:
       [
@@ -154,6 +156,8 @@
           c: menuExit
           c: menuSeparator457
           c: ComponentMenu666
+          c: menuSeparator822
+          c: ComponentMenu783
         }
       ]
     }
diff --git a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
new file mode 100644
index 0000000..7b1da32
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: Button398
+Response OnClick () id:Response_FormTestButtonCollection_Button398_OnClick
+{
+  #keys: '[414702.0.340554926]'
+  Body:
+  [*
+    CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan );
+  *]
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_GUIButtonBase_OnClick'
+}
diff --git a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def
new file mode 100644
index 0000000..53a8703
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def
@@ -0,0 +1,50 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlanner
+OrphanComponent FormTestButtonCollection
+{
+  #keys: '[414702.0.340554698]'
+  BaseType: 'Form'
+  GBLayout
+  {
+    Type: 'internal[GBLayoutDefinition]'
+    Columns:
+    [
+      GBFlow.Column { grow: 0 id: 454 parent: 0 }
+    ]
+    Elements:
+    [
+      GBElement
+      {
+        Component => Button398
+        Position { startcolumn: 454 startrow: 649 endcolumn: 454 endrow: 649 }
+      }
+    ]
+    Gaps: [ left: 5 right: 5 top: 5 bottom: 5 inner: 5 ]
+    Rows:
+    [
+      GBFlow.Row { grow: 0 id: 649 parent: 0 }
+    ]
+  }
+  Children:
+  [
+    Component Button398
+    {
+      #keys: '[414702.0.340554799]'
+      BaseType: 'Button'
+      Properties:
+      [
+        Image: 'HARDHAT'
+        Text: '鐢熸垚浜ц兘鍒嗛厤缁撴灉鏁版嵁'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Height: 209
+    Image: 'PIPETTE_TEST'
+    IncludeInView: true
+    Title: '鍔熻兘娴嬭瘯鎸夐挳'
+    Width: 535
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def
new file mode 100644
index 0000000..c07b922
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListCapacityAllocationResults
+{
+  #keys: '[414702.0.338762075]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorCapacityAllocationResults
+    {
+      #keys: '[414702.0.338762076]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'CapacityAllocationResults'
+      ]
+    }
+    #child: listActionBarPageCapacityAllocationResults
+    Component DataSetLevelCapacityAllocationResults
+    {
+      #keys: '[414702.0.338762081]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuCapacityAllocationResults
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionNumber","title":"VersionNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPanels","title":"NumberOfPanels","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPanels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfModules","title":"NumberOfModules","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfModules"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"RequirementDate","title":"RequirementDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"RequirementDate"}}]'
+        ContextMenu: 'listContextMenuCapacityAllocationResults'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def
new file mode 100644
index 0000000..5384f4a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageCapacityAllocationResults
+{
+  #keys: '[414702.0.338762078]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def
new file mode 100644
index 0000000..62d4067
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuCapacityAllocationResults
+{
+  #keys: '[414702.0.338762083]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def
new file mode 100644
index 0000000..2d97d02
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ButtonGenerateCapacityAllocationResults
+Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick
+{
+  #keys: '[414702.0.340111671]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def
new file mode 100644
index 0000000..432fdfa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormCapacityAllocationResults
+{
+  #keys: '[414702.0.338731526]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListCapacityAllocationResults
+    Component ButtonGenerateCapacityAllocationResults
+    {
+      #keys: '[414702.0.340677556]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'PROCESS'
+        Label: '鐢熸垚鏁版嵁'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Image: 'PUMPKIN_HALLOWEEN'
+    Title: '浜ц兘鍒嗛厤缁撴灉'
+  ]
+}

--
Gitblit v1.9.3