From 9c210e5dfacbd0a593f6a5ac7c73a3388c702f5d Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 05 七月 2024 17:29:06 +0800
Subject: [PATCH] 财务周报报表

---
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_OnCreated.def                                                         |   16 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialWeeklyReport_OnCli.def |   16 +
 _Main/BL/Relations/Relation_FinancialWeeklyColumn_FinancialWeeklyCell_FinancialWeeklyCell_Finan.qbl                                            |   26 +
 _Main/BL/Type_FinancialWeeklyReport/Attribute_IsShow.qbl                                                                                       |    7 
 _Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyColumn_FinancialWeeklyColumn_F.qbl                                            |   26 +
 _Main/BL/Type_FinancialWeeklyColumn/Attribute_Index.qbl                                                                                        |    7 
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultName.qbl                                                                            |   10 
 _Main/BL/Type_FinancialWeeklyRow/_ROOT_Type_FinancialWeeklyRow.qbl                                                                             |   10 
 _Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl                                                                      |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_PanelHeader_ButtonExport_OnClick.def                                  |   18 +
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl                                                                                |  173 ++++++++++
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_Download.qbl                                                                                  |   65 ++++
 _Main/BL/Type_FinancialWeeklyRow/Attribute_RowNr.qbl                                                                                           |    7 
 _Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl                                                                      |    1 
 _Main/BL/Type_FinancialWeeklyColumn/DefaultValue_Name.qbl                                                                                      |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixEditorActionBarPageTable.def                                   |   10 
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl                                                                          |   11 
 _Main/BL/Type_FinancialWeeklyCell/_ROOT_Type_FinancialWeeklyCell.qbl                                                                           |   10 
 _Main/BL/Type_FinancialWeeklyReport/Method_GenerateColumn.qbl                                                                                  |   20 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def                                               |   11 
 _Main/BL/Type_FinancialWeeklyCell/Attribute_Value.qbl                                                                                          |    7 
 _Main/BL/Type_FinancialWeeklyRow/DefaultValue_Name.qbl                                                                                         |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixeditorContextMenuTable.def                                     |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_MatrixEditorTable.def                                                |   97 ++++++
 _Main/BL/Relations/Relation_FinancialWeeklyReport_MacroPlan_MacroPlan_FinancialWeeklyReport.qbl                                                |   23 +
 _Main/BL/Type_FinancialWeeklyReport/DefaultValue_ID.qbl                                                                                        |    6 
 _Main/BL/Type_FinancialWeeklyRow/Attribute_Name.qbl                                                                                            |    7 
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultAllUnit.qbl                                                                         |   10 
 _Main/BL/Type_FinancialWeeklyColumn/Attribute_Name.qbl                                                                                         |    7 
 _Main/BL/Type_FinancialWeeklyColumn/Attribute_Period.qbl                                                                                       |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelTable.def                                                       |   14 
 _Main/BL/Type_FinancialWeeklyColumn/_ROOT_Type_FinancialWeeklyColumn.qbl                                                                       |   10 
 _Main/BL/Type_FinancialWeeklyReport/_ROOT_Type_FinancialWeeklyReport.qbl                                                                       |   10 
 _Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl                                                                         |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/_ROOT_Component_FormFinancialWeeklyReport.def                                  |   18 +
 _Main/BL/Type_FinancialProductionCell/Function_CalcPlanValue.qbl                                                                               |   13 
 _Main/BL/Type_FinancialWeeklyCell/DefaultValue_Value.qbl                                                                                       |    6 
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl                                                                          |   11 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def                                                      |   25 +
 _Main/BL/Type_FinancialWeeklyReport/Attribute_Name.qbl                                                                                         |    8 
 _Main/UI/MacroPlannerWebApp/Views/Financial_weekly_report_view.vw                                                                              |   92 +++++
 _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelCategory.def                                                   |    1 
 _Main/BL/Relations/Relation_FinancialWeeklyRow_FinancialWeeklyCell_FinancialWeeklyCell_Financia.qbl                                            |   23 +
 _Main/BL/Type_FinancialWeeklyReport/DefaultValue_Name.qbl                                                                                      |    6 
 _Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyRow_FinancialWeeklyRow_Financi.qbl                                            |   23 +
 _Main/BL/Type_FinancialWeeklyReport/Attribute_ID.qbl                                                                                           |    8 
 _Main/BL/Type_FinancialProductionCell/Attribute_PlanValue.qbl                                                                                  |    8 
 _Main/BL/Type_FinancialWeeklyColumn/Function_CalcIndex.qbl                                                                                     |   13 
 _Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl                                                                         |    4 
 49 files changed, 923 insertions(+), 5 deletions(-)

diff --git a/_Main/BL/Relations/Relation_FinancialWeeklyColumn_FinancialWeeklyCell_FinancialWeeklyCell_Finan.qbl b/_Main/BL/Relations/Relation_FinancialWeeklyColumn_FinancialWeeklyCell_FinancialWeeklyCell_Finan.qbl
new file mode 100644
index 0000000..d1549b6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialWeeklyColumn_FinancialWeeklyCell_FinancialWeeklyCell_Finan.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialWeeklyColumn_FinancialWeeklyCell_FinancialWeeklyCell_FinancialWeeklyColumn
+{
+  #keys: '1[415136.0.880724166]'
+  ProceduralSequenceRelationStrategy
+  {
+    #keys: '13[0.0.0][415136.0.880724185][415136.0.880724179][415136.0.880724186][415136.0.880724180][415136.0.880724187][415136.0.880724181][415136.0.880724188][415136.0.880724182][415136.0.880724189][415136.0.880724183][415136.0.880724190][415136.0.880724184]'
+    SequenceElementSuffix: 'CellInColumn'
+    SequenceSuffix: 'CellInColumn'
+  }
+  RelationSide.LeftSide FinancialWeeklyCell
+  {
+    #keys: '3[415136.0.880724168][415136.0.880724167][415136.0.880724169]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialWeeklyColumn
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialWeeklyColumn
+  {
+    #keys: '3[415136.0.880724171][415136.0.880724170][415136.0.880724172]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialWeeklyCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyColumn_FinancialWeeklyColumn_F.qbl b/_Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyColumn_FinancialWeeklyColumn_F.qbl
new file mode 100644
index 0000000..60e95e6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyColumn_FinancialWeeklyColumn_F.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialWeeklyReport_FinancialWeeklyColumn_FinancialWeeklyColumn_FinancialWeeklyReport
+{
+  #keys: '1[415136.0.880724207]'
+  ProceduralSequenceRelationStrategy
+  {
+    #keys: '13[0.0.0][415136.0.880724228][415136.0.880724222][415136.0.880724229][415136.0.880724223][415136.0.880724230][415136.0.880724224][415136.0.880724231][415136.0.880724225][415136.0.880724232][415136.0.880724226][415136.0.880724233][415136.0.880724227]'
+    SequenceElementSuffix: 'Column'
+    SequenceSuffix: 'Column'
+  }
+  RelationSide.LeftSide FinancialWeeklyColumn
+  {
+    #keys: '3[415136.0.880724209][415136.0.880724208][415136.0.880724210]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialWeeklyReport
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialWeeklyReport
+  {
+    #keys: '3[415136.0.880724212][415136.0.880724211][415136.0.880724213]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialWeeklyColumn
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyRow_FinancialWeeklyRow_Financi.qbl b/_Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyRow_FinancialWeeklyRow_Financi.qbl
new file mode 100644
index 0000000..1e7eb8b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialWeeklyReport_FinancialWeeklyRow_FinancialWeeklyRow_Financi.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialWeeklyReport_FinancialWeeklyRow_FinancialWeeklyRow_FinancialWeeklyReport
+{
+  #keys: '1[415136.0.880724123]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide FinancialWeeklyRow
+  {
+    #keys: '3[415136.0.880724125][415136.0.880724124][415136.0.880724126]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialWeeklyReport
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialWeeklyReport
+  {
+    #keys: '3[415136.0.880724128][415136.0.880724127][415136.0.880724129]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialWeeklyRow
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialWeeklyReport_MacroPlan_MacroPlan_FinancialWeeklyReport.qbl b/_Main/BL/Relations/Relation_FinancialWeeklyReport_MacroPlan_MacroPlan_FinancialWeeklyReport.qbl
new file mode 100644
index 0000000..443896d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialWeeklyReport_MacroPlan_MacroPlan_FinancialWeeklyReport.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialWeeklyReport_MacroPlan_MacroPlan_FinancialWeeklyReport
+{
+  #keys: '1[415136.0.880700289]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[415136.0.880700291][415136.0.880700290][415136.0.880700292]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialWeeklyReport
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide FinancialWeeklyReport
+  {
+    #keys: '3[415136.0.880700294][415136.0.880700293][415136.0.880700295]'
+    Cardinality: '0to1'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialWeeklyRow_FinancialWeeklyCell_FinancialWeeklyCell_Financia.qbl b/_Main/BL/Relations/Relation_FinancialWeeklyRow_FinancialWeeklyCell_FinancialWeeklyCell_Financia.qbl
new file mode 100644
index 0000000..8992c88
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialWeeklyRow_FinancialWeeklyCell_FinancialWeeklyCell_Financia.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialWeeklyRow_FinancialWeeklyCell_FinancialWeeklyCell_FinancialWeeklyRow
+{
+  #keys: '1[415136.0.880700305]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide FinancialWeeklyCell
+  {
+    #keys: '3[415136.0.880700307][415136.0.880700306][415136.0.880700308]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialWeeklyRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide FinancialWeeklyRow
+  {
+    #keys: '3[415136.0.880700310][415136.0.880700309][415136.0.880700311]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialWeeklyCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Type_FinancialProductionCell/Attribute_PlanValue.qbl b/_Main/BL/Type_FinancialProductionCell/Attribute_PlanValue.qbl
new file mode 100644
index 0000000..87d0ca7
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionCell/Attribute_PlanValue.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlanValue
+{
+  #keys: '3[415136.0.880970239][415136.0.880970238][415136.0.880970240]'
+  Description: '璁″垝鍊�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_FinancialProductionCell/Function_CalcPlanValue.qbl b/_Main/BL/Type_FinancialProductionCell/Function_CalcPlanValue.qbl
new file mode 100644
index 0000000..b51c61d
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionCell/Function_CalcPlanValue.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcPlanValue
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jul-5-2024 (created)
+    
+    value := ifexpr( this.FinancialProductionColumn().FinancialProductionReport().FinancialProductionSource().MacroPlan().StartOfPlanning().StartOfMonth().Date() <= this.FinancialProductionColumn().Period(), [Real]this.Value(), 0 );
+    
+    this.PlanValue( value );
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl b/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl
index e469589..77d1f16 100644
--- a/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl
+++ b/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -6,5 +6,6 @@
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
     return '闀挎槬';
+    //return 'Assembly Plant (France)';
   *]
 }
diff --git a/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl b/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl
index 71132d4..4759121 100644
--- a/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl
+++ b/_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -6,5 +6,6 @@
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
     return '澶ц繛';
+    //return 'Assembly Plant (Spain)';
   *]
 }
diff --git a/_Main/BL/Type_FinancialWeeklyCell/Attribute_Value.qbl b/_Main/BL/Type_FinancialWeeklyCell/Attribute_Value.qbl
new file mode 100644
index 0000000..d0100df
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyCell/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+  #keys: '3[415136.0.880700281][415136.0.880700280][415136.0.880700282]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialWeeklyCell/DefaultValue_Value.qbl b/_Main/BL/Type_FinancialWeeklyCell/DefaultValue_Value.qbl
new file mode 100644
index 0000000..913414b
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyCell/DefaultValue_Value.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Value
+}
diff --git a/_Main/BL/Type_FinancialWeeklyCell/_ROOT_Type_FinancialWeeklyCell.qbl b/_Main/BL/Type_FinancialWeeklyCell/_ROOT_Type_FinancialWeeklyCell.qbl
new file mode 100644
index 0000000..dcfd66f
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyCell/_ROOT_Type_FinancialWeeklyCell.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialWeeklyCell
+{
+  #keys: '5[415136.0.880700278][415136.0.880700276][0.0.0][415136.0.880700277][415136.0.880700279]'
+  BaseType: Object
+  Description: '璐㈠姟鍛ㄦ姤鎶ヨ〃鍗曞厓鏍�'
+  StructuredName: 'FinancialWeeklyCells'
+}
diff --git a/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Index.qbl b/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Index.qbl
new file mode 100644
index 0000000..e9d1d66
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Index.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Index
+{
+  #keys: '3[415136.0.880700264][415136.0.880700263][415136.0.880700265]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Name.qbl b/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Name.qbl
new file mode 100644
index 0000000..8d33fbb
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.880700267][415136.0.880700266][415136.0.880700268]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Period.qbl b/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Period.qbl
new file mode 100644
index 0000000..89fbd65
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyColumn/Attribute_Period.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Period
+{
+  #keys: '3[415136.0.880700270][415136.0.880700269][415136.0.880700271]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_FinancialWeeklyColumn/DefaultValue_Name.qbl b/_Main/BL/Type_FinancialWeeklyColumn/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyColumn/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_FinancialWeeklyColumn/Function_CalcIndex.qbl b/_Main/BL/Type_FinancialWeeklyColumn/Function_CalcIndex.qbl
new file mode 100644
index 0000000..9adb565
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyColumn/Function_CalcIndex.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcIndex
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-21-2024 (created)1
+    
+    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 );
+    
+    this.Index( value );
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyColumn/_ROOT_Type_FinancialWeeklyColumn.qbl b/_Main/BL/Type_FinancialWeeklyColumn/_ROOT_Type_FinancialWeeklyColumn.qbl
new file mode 100644
index 0000000..d58efd7
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyColumn/_ROOT_Type_FinancialWeeklyColumn.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialWeeklyColumn
+{
+  #keys: '5[415136.0.880700261][415136.0.880700259][0.0.0][415136.0.880700260][415136.0.880700262]'
+  BaseType: Object
+  Description: '璐㈠姟鍛ㄦ姤鍒�'
+  StructuredName: 'FinancialWeeklyColumns'
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/Attribute_ID.qbl b/_Main/BL/Type_FinancialWeeklyReport/Attribute_ID.qbl
new file mode 100644
index 0000000..1615973
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[415136.0.880700226][415136.0.880700225][415136.0.880700227]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/Attribute_IsShow.qbl b/_Main/BL/Type_FinancialWeeklyReport/Attribute_IsShow.qbl
new file mode 100644
index 0000000..91c8574
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/Attribute_IsShow.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsShow
+{
+  #keys: '3[415136.0.880700229][415136.0.880700228][415136.0.880700230]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/Attribute_Name.qbl b/_Main/BL/Type_FinancialWeeklyReport/Attribute_Name.qbl
new file mode 100644
index 0000000..f308987
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.880700232][415136.0.880700231][415136.0.880700233]'
+  Description: '鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/DefaultValue_ID.qbl b/_Main/BL/Type_FinancialWeeklyReport/DefaultValue_ID.qbl
new file mode 100644
index 0000000..049abc0
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/DefaultValue_ID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ID
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/DefaultValue_Name.qbl b/_Main/BL/Type_FinancialWeeklyReport/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/Method_GenerateColumn.qbl b/_Main/BL/Type_FinancialWeeklyReport/Method_GenerateColumn.qbl
new file mode 100644
index 0000000..3e3dbae
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/Method_GenerateColumn.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method GenerateColumn (
+  MacroPlan owner
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-25-2024 (created)
+    startofplanning           := owner.StartOfPlanning();
+    startofyear               := startofplanning.StartOfYear();
+    startofnextyear           := startofplanning.StartOfNextYear();
+    
+    for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
+      periodtime := start.Date();
+      periodname := periodtime.Format( "M2/D2/Y" );
+      this.FinancialWeeklyColumn( relnew, Name := periodname, Period := periodtime );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Download.qbl
new file mode 100644
index 0000000..1814b15
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Download.qbl
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Download (
+  MacroPlan macroPlan
+) as BinaryValue
+{
+  Description: '涓嬭浇璐㈠姟鎶ヨ〃鏁版嵁'
+  TextBody:
+  [*
+    
+    table := macroPlan.FinancialWeeklyReport();
+    
+    xmlDOMI := XMLDOMImplementation::Create();
+    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
+    
+    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+    //琛屽悕
+    rowcolumnelement := xmlDOM.CreateElement( "column" );
+    rownameelement   := xmlDOM.CreateElement( "name" );
+    rowtypeelement   := xmlDOM.CreateElement( "type" );
+    rownameelement.TextContent( '' );
+    rowtypeelement.TextContent( "String" );
+    rowcolumnelement.AppendChild( rownameelement );
+    rowcolumnelement.AppendChild( rowtypeelement );
+    
+    tableElement.AppendChild( rowcolumnelement ); 
+    traverse ( table, FinancialWeeklyColumn, column ) {
+      columnelement := xmlDOM.CreateElement( "column" );
+      nameelement   := xmlDOM.CreateElement( "name" );
+      typeelement   := xmlDOM.CreateElement( "type" );
+      nameelement.TextContent( column.Name() );
+      typeelement.TextContent( "String" );
+      columnelement.AppendChild( nameelement );
+      columnelement.AppendChild( typeelement );
+      
+      cells := selectsortedset( column, FinancialWeeklyCell, cell, cell.FinancialWeeklyRow().RowNr() );
+    
+      traverse ( cells, Elements, c ) {
+        if( column.Index() = 0 ){
+          row := c.FinancialWeeklyRow();
+          //琛屽悕
+          rowcellElement := xmlDOM.CreateElement( "cell" );
+          rowcellElement.SetAttribute( "value", row.Name() );
+          rowcolumnelement.AppendChild( rowcellElement );
+        }
+        cellElement := xmlDOM.CreateElement( "cell" );
+        cellElement.SetAttribute( "value", c.Value() ); 
+        columnelement.AppendChild( cellElement );
+      }
+      tableElement.AppendChild( columnelement );  
+    }
+    
+    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM );
+    
+    //info( xmlString );
+    
+    tableGroupHandle := TableGroupHandle::Create( FinancialWeeklyReport::GetDefaultName() );
+    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+    tableGroupHandle.Add( tableHandle );
+    
+    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+    
+    return binaryData.AsBinaryValue();
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultAllUnit.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultAllUnit.qbl
new file mode 100644
index 0000000..518f4c6
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultAllUnit.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultAllUnit () const as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-28-2024 (created)
+    return '<All>';
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl
new file mode 100644
index 0000000..739a84b
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -0,0 +1,11 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultCCUnit () const as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-28-2024 (created)
+    return '闀挎槬';
+    //return 'Assembly Plant (France)';
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl
new file mode 100644
index 0000000..d544c74
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -0,0 +1,11 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultDLUnit () const as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-28-2024 (created)
+    return '澶ц繛';
+    //return 'Assembly Plant (Spain)';
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultName.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultName.qbl
new file mode 100644
index 0000000..9b7d1de
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultName.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultName () const as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-25-2024 (created)
+    return 'Financial weekly';
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
new file mode 100644
index 0000000..dcd3b98
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -0,0 +1,173 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Initialize (
+  MacroPlan owner
+)
+{
+  Description: '鍒濆鍖�'
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jul-4-2024 (created)
+    owner.FinancialWeeklyReport( relflush );
+    ccunit                    := FinancialWeeklyReport::GetDefaultCCUnit();
+    dlunit                    := FinancialWeeklyReport::GetDefaultDLUnit();
+    allunit                   := FinancialWeeklyReport::GetDefaultAllUnit();
+    defaultname               := FinancialWeeklyReport::GetDefaultName();
+    startofplanning           := owner.StartOfPlanning();
+    
+    table                     := owner.FinancialWeeklyReport( relnew, ID := defaultname, Name := defaultname );
+    //浜ч噺鎶ヨ〃
+    productiontable           := selectobject( owner, FinancialProductionSource.FinancialProductionReport, report, not report.IsImport() and not report.IsShow() );
+    //閿�閲忔姤琛�
+    salestable                := selectobject( owner, FinancialSalesSource.FinancialSalesReport, report, not report.IsImport() and not report.IsShow() );
+    
+    table.GenerateColumn( owner );
+    totalproduction           := table.FinancialWeeklyRow( relnew, Name := '鎬讳骇閲�', RowNr := 1 );
+    dlproduction              := table.FinancialWeeklyRow( relnew, Name := 'DL浜ч噺', RowNr := 2 );
+    ccproduction              := table.FinancialWeeklyRow( relnew, Name := 'CC浜ч噺', RowNr := 3 );
+    totalsales                := table.FinancialWeeklyRow( relnew, Name := '鎬婚攢閲�', RowNr := 4 );
+    dlsales                   := table.FinancialWeeklyRow( relnew, Name := 'DL閿�閲�', RowNr := 5 );
+    ccsales                   := table.FinancialWeeklyRow( relnew, Name := 'CC閿�閲�', RowNr := 6 );
+    //SUM
+    totalpvaluesum            := [Real]0;
+    dlpvaluesum               := [Real]0;
+    ccpvaluesum               := [Real]0;
+    totalsvaluesum            := [Real]0;
+    dlsvaluesum               := [Real]0;
+    ccsvaluesum               := [Real]0;
+    //绱閲�
+    totalpvaluecumulant       := [Real]0;
+    dlpvaluecumulant          := [Real]0;
+    ccpvaluecumulant          := [Real]0;
+    totalsvaluecumulant       := [Real]0;
+    dlsvaluecumulant          := [Real]0;
+    ccsvaluecumulant          := [Real]0;
+    
+    traverse( table, FinancialWeeklyColumn, column ){
+      productioncolumn      := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() );
+      salescolumn           := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() );
+      
+      //浜ч噺姹囨��
+      totalpvalue           := [Real]0;
+      dlpvalue              := [Real]0;
+      ccpvalue              := [Real]0;
+      traverse( productioncolumn, FinancialProductionCell, cell, [Real]cell.Value() > 0 ){
+        unit                := cell.FinancialProductionRow().Unit();
+        
+        if( unit = allunit ){
+          totalpvalue       := totalpvalue + [Real]cell.Value();
+          if( column.Period() = startofplanning.StartOfMonth().Date() ){
+            totalpvaluecumulant := totalpvaluecumulant - cell.PlanValue();
+          }
+        }else if( unit = dlunit ){
+          dlpvalue          := dlpvalue + [Real]cell.Value();
+          if( column.Period() = startofplanning.StartOfMonth().Date() ){
+            dlpvaluecumulant := dlpvaluecumulant - cell.PlanValue();
+          }
+        }else if( unit = ccunit ){
+          ccpvalue          := ccpvalue + [Real]cell.Value();
+          if( column.Period() = startofplanning.StartOfMonth().Date() ){
+            ccpvaluecumulant := ccpvaluecumulant - cell.PlanValue();
+          }
+        }
+      }
+      totalpcell            := column.FinancialWeeklyCell( relnew, Value := [String]totalpvalue );
+      totalproduction.FinancialWeeklyCell( relinsert, totalpcell );
+      dlpcell               := column.FinancialWeeklyCell( relnew, Value := [String]dlpvalue );
+      dlproduction.FinancialWeeklyCell( relinsert, dlpcell );
+      ccpcell               := column.FinancialWeeklyCell( relnew, Value := [String]ccpvalue );
+      ccproduction.FinancialWeeklyCell( relinsert, ccpcell );
+      
+      //閿�閲忔眹鎬�
+      totalsvalue           := [Real]0;
+      dlsvalue              := [Real]0;
+      ccsvalue              := [Real]0;
+      traverse( salescolumn, FinancialSalesCell, cell, [Real]cell.Value() > 0 ){
+        unit                := cell.FinancialSalesRow().Unit();
+        if( unit = allunit ){
+          totalsvalue       := totalsvalue + [Real]cell.Value();
+        }else if( unit = dlunit ){
+          dlsvalue          := dlsvalue + [Real]cell.Value();
+        }else if( unit = ccunit ){
+          ccsvalue          := ccsvalue + [Real]cell.Value();
+        }
+      }
+      totalscell            := column.FinancialWeeklyCell( relnew, Value := [String]totalsvalue );
+      totalsales.FinancialWeeklyCell( relinsert, totalscell );
+      dlscell               := column.FinancialWeeklyCell( relnew, Value := [String]dlsvalue );
+      dlsales.FinancialWeeklyCell( relinsert, dlscell );
+      ccscell               := column.FinancialWeeklyCell( relnew, Value := [String]ccsvalue );
+      ccsales.FinancialWeeklyCell( relinsert, ccscell );
+      
+      if( column.Period() < startofplanning.StartOfMonth().Date() ){
+        totalpvaluecumulant := totalpvaluecumulant + totalpvalue;
+        dlpvaluecumulant    := dlpvaluecumulant + dlpvalue;
+        ccpvaluecumulant    := ccpvaluecumulant + ccpvalue;
+        totalsvaluecumulant := totalsvaluecumulant + totalsvalue;
+        dlsvaluecumulant    := dlsvaluecumulant + dlsvalue;
+        ccsvaluecumulant    := ccsvaluecumulant + ccsvalue;
+      }
+      totalpvaluesum        := totalpvaluesum + totalpvalue;
+      dlpvaluesum           := dlpvaluesum + dlpvalue;
+      ccpvaluesum           := ccpvaluesum + ccpvalue;
+      totalsvaluesum        := totalsvaluesum + totalsvalue;
+      dlsvaluesum           := dlsvaluesum + dlsvalue;
+      ccsvaluesum           := ccsvaluesum + ccsvalue;
+    }
+    sumcolumn                 := table.FinancialWeeklyColumn( relnew, Name := 'SUM' );
+    cumulantcolumn            := table.FinancialWeeklyColumn( relnew, Name := '绱閲�' );
+    proportioncolumn          := table.FinancialWeeklyColumn( relnew, Name := '鍗犳瘮' );
+    //SUM
+    totalpcellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluesum );
+    totalproduction.FinancialWeeklyCell( relinsert, totalpcellsum );
+    dlpcellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluesum );
+    dlproduction.FinancialWeeklyCell( relinsert, dlpcellsum );
+    ccpcellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluesum );
+    ccproduction.FinancialWeeklyCell( relinsert, ccpcellsum );
+    totalscellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluesum );
+    totalsales.FinancialWeeklyCell( relinsert, totalscellsum );
+    dlscellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluesum );
+    dlsales.FinancialWeeklyCell( relinsert, dlscellsum );
+    ccscellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluesum );
+    ccsales.FinancialWeeklyCell( relinsert, ccscellsum );
+    //绱閲�
+    totalpcellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant );
+    totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant );
+    dlpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant );
+    dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant );
+    ccpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant );
+    ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant );
+    totalscellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant );
+    totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant );
+    dlscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant );
+    dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant );
+    ccscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant );
+    ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant );
+    //鍗犳瘮
+    totalpvalueproportion   := guard( ( totalpvaluecumulant / totalpvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    totalpcellproportion    := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalpvalueproportion );
+    totalproduction.FinancialWeeklyCell( relinsert, totalpcellproportion );
+    
+    dlpvalueproportion      := guard( ( dlpvaluecumulant / dlpvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    dlpcellproportion       := proportioncolumn.FinancialWeeklyCell( relnew, Value := dlpvalueproportion );
+    dlproduction.FinancialWeeklyCell( relinsert, dlpcellproportion );
+    
+    ccpvalueproportion      := guard( ( ccpvaluecumulant / ccpvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    ccpcellproportion       := proportioncolumn.FinancialWeeklyCell( relnew, Value := ccpvalueproportion );
+    ccproduction.FinancialWeeklyCell( relinsert, ccpcellproportion );
+    
+    totalsvalueproportion   := guard( ( totalsvaluecumulant / totalsvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    totalscellproportion    := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalsvalueproportion );
+    totalsales.FinancialWeeklyCell( relinsert, totalscellproportion );
+    
+    dlsvalueproportion      := guard( ( dlsvaluecumulant / dlsvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    dlscellproportion       := proportioncolumn.FinancialWeeklyCell( relnew, Value := dlsvalueproportion );
+    dlsales.FinancialWeeklyCell( relinsert, dlscellproportion );
+    
+    ccsvalueproportion      := guard( ( ccsvaluecumulant / ccsvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    ccscellproportion       := proportioncolumn.FinancialWeeklyCell( relnew, Value := ccsvalueproportion );
+    ccsales.FinancialWeeklyCell( relinsert, ccscellproportion );
+    
+    info( sumcolumn.FinancialWeeklyCell( relsize ), cumulantcolumn.FinancialWeeklyCell( relsize ), proportioncolumn.FinancialWeeklyCell( relsize ) );
+  *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/_ROOT_Type_FinancialWeeklyReport.qbl b/_Main/BL/Type_FinancialWeeklyReport/_ROOT_Type_FinancialWeeklyReport.qbl
new file mode 100644
index 0000000..0d8d278
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyReport/_ROOT_Type_FinancialWeeklyReport.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialWeeklyReport
+{
+  #keys: '5[415136.0.880700223][415136.0.880700221][0.0.0][415136.0.880700222][415136.0.880700224]'
+  BaseType: Object
+  Description: '璐㈠姟鍛ㄦ姤鎶ヨ〃'
+  StructuredName: 'FinancialWeeklyReports'
+}
diff --git a/_Main/BL/Type_FinancialWeeklyRow/Attribute_Name.qbl b/_Main/BL/Type_FinancialWeeklyRow/Attribute_Name.qbl
new file mode 100644
index 0000000..f048b61
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyRow/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.880700246][415136.0.880700245][415136.0.880700247]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialWeeklyRow/Attribute_RowNr.qbl b/_Main/BL/Type_FinancialWeeklyRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..1c9317f
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+  #keys: '3[415136.0.880700249][415136.0.880700248][415136.0.880700250]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_FinancialWeeklyRow/DefaultValue_Name.qbl b/_Main/BL/Type_FinancialWeeklyRow/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyRow/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_FinancialWeeklyRow/_ROOT_Type_FinancialWeeklyRow.qbl b/_Main/BL/Type_FinancialWeeklyRow/_ROOT_Type_FinancialWeeklyRow.qbl
new file mode 100644
index 0000000..e68f59a
--- /dev/null
+++ b/_Main/BL/Type_FinancialWeeklyRow/_ROOT_Type_FinancialWeeklyRow.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialWeeklyRow
+{
+  #keys: '5[415136.0.880700240][415136.0.880700238][0.0.0][415136.0.880700239][415136.0.880700241]'
+  BaseType: Object
+  Description: '璐㈠姟鍛ㄦ姤琛�'
+  StructuredName: 'FinancialWeeklyRows'
+}
diff --git a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl
index 8379d63..739a84b 100644
--- a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl
+++ b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,7 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-28-2024 (created)
-    //return '闀挎槬';
-    return 'Assembly Plant (France)';
+    return '闀挎槬';
+    //return 'Assembly Plant (France)';
   *]
 }
diff --git a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl
index 6bc2a6f..d544c74 100644
--- a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl
+++ b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,7 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-28-2024 (created)
-    //return '澶ц繛';
-    return 'Assembly Plant (Spain)';
+    return '澶ц繛';
+    //return 'Assembly Plant (Spain)';
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
index 68f5a8f..ab55c75 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
@@ -38,6 +38,17 @@
         Taborder: 2
       ]
     }
+    Component ButtonFinancialWeeklyReport
+    {
+      #keys: '[415136.0.882254645]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'DOCUMENT_DIRTY'
+        Label: 'Financial weekly report'
+        Taborder: 3
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialWeeklyReport_OnCli.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialWeeklyReport_OnCli.def
new file mode 100644
index 0000000..980aac3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialWeeklyReport_OnCli.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupReport/ButtonFinancialWeeklyReport
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialWeeklyReport_OnClick
+{
+  #keys: '[415136.0.882254805]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "Financial_weekly_report_view", true);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_MatrixEditorTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_MatrixEditorTable.def
new file mode 100644
index 0000000..4b02630
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_MatrixEditorTable.def
@@ -0,0 +1,97 @@
+Quintiq file version 2.0
+Component MatrixEditorTable
+{
+  #keys: '[415136.0.881011903]'
+  BaseType: 'WebMatrixEditor'
+  Children:
+  [
+    Component MatrixEditorCellTable
+    {
+      #keys: '[415136.0.881011904]'
+      BaseType: 'WebMatrixEditorCell'
+      Children:
+      [
+        Component DataExtractorTable
+        {
+          #keys: '[415136.0.881011905]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'FinancialWeeklyReport.FinancialWeeklyColumn.FinancialWeeklyCell'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Attributes: 'Value'
+        Column: 'FinancialWeeklyColumn'
+        Row: 'FinancialWeeklyRow'
+        Taborder: 0
+      ]
+    }
+    Component MatrixEditorRowsTable
+    {
+      #keys: '[415136.0.881011908]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractorRow
+        {
+          #keys: '[415136.0.881011909]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'FinancialWeeklyReport.FinancialWeeklyRow'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'Name'
+        SortCriteria: 'RowNr'
+        Taborder: 1
+      ]
+    }
+    Component MatrixEditorColumnsTable
+    {
+      #keys: '[415136.0.881011912]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractorColumn
+        {
+          #keys: '[415136.0.881011913]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'FinancialWeeklyReport.FinancialWeeklyColumn'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'Name'
+        SortCriteria: 'Index'
+        Taborder: 2
+      ]
+    }
+    #child: matrixEditorActionBarPageTable
+    #child: matrixeditorContextMenuTable
+  ]
+  Properties:
+  [
+    Columns: 'MatrixEditorColumnsTable'
+    ContextMenu: 'matrixeditorContextMenuTable'
+    Rows: 'MatrixEditorRowsTable'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def
new file mode 100644
index 0000000..8d20e9e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component PanelHeader
+{
+  #keys: '[415136.0.881011755]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonExport
+    {
+      #keys: '[415136.0.881011811]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'EXPORT1'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelTable.def
new file mode 100644
index 0000000..410f2fd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelTable.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelTable
+{
+  #keys: '[415136.0.881011874]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: MatrixEditorTable
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixEditorActionBarPageTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixEditorActionBarPageTable.def
new file mode 100644
index 0000000..4e80537
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixEditorActionBarPageTable.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageTable
+{
+  #keys: '[415136.0.881011916]'
+  BaseType: 'matrixEditorActionBarPage'
+  Properties:
+  [
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixeditorContextMenuTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixeditorContextMenuTable.def
new file mode 100644
index 0000000..d8d4084
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_matrixeditorContextMenuTable.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuTable
+{
+  #keys: '[415136.0.881011919]'
+  BaseType: 'matrixeditorContextMenu'
+  Properties:
+  [
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_OnCreated.def
new file mode 100644
index 0000000..3cf4d42
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Response OnCreated () id:Response_FormFinancialWeeklyReport_OnCreated
+{
+  #keys: '[415136.0.882110991]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      FinancialWeeklyReport::Initialize( MacroPlan );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_PanelHeader_ButtonExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_PanelHeader_ButtonExport_OnClick.def
new file mode 100644
index 0000000..d0c2cab
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_PanelHeader_ButtonExport_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelHeader/ButtonExport
+Response OnClick () id:Response_PanelHeader_ButtonExport_OnClick
+{
+  #keys: '[415136.0.882111199]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      binaryValue := FinancialWeeklyReport::Download( MacroPlan );
+      
+      Application.Download( FinancialWeeklyReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/_ROOT_Component_FormFinancialWeeklyReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/_ROOT_Component_FormFinancialWeeklyReport.def
new file mode 100644
index 0000000..af4455d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/_ROOT_Component_FormFinancialWeeklyReport.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormFinancialWeeklyReport
+{
+  #keys: '[415136.0.881011703]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelHeader
+    #child: PanelTable
+  ]
+  Properties:
+  [
+    Image: 'DOCUMENT_DIRTY'
+    Title: 'Financial weekly report'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelCategory.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelCategory.def
index 1c06644..fe8fadd 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelCategory.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelCategory.def
@@ -11,7 +11,6 @@
       BaseType: 'WebRadioButtonGroup'
       Properties:
       [
-        BoundValue: 'Day'
         ButtonLabels: 'Day;Week;Month'
         ButtonValues: 'Day;Week;Month'
         Orientation: 'horizontal'
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Financial_weekly_report_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Financial_weekly_report_view.vw
new file mode 100644
index 0000000..64db5a0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Financial_weekly_report_view.vw
@@ -0,0 +1,92 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormFinancialWeeklyReport
+      {
+        title: 'QMacroPlanner::FormFinancialWeeklyReport'
+        shown: true
+        componentID: 'QMacroPlanner::FormFinancialWeeklyReport'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 15
+          columnPosition: 1
+          columnSpan: 13
+        }
+        components
+        {
+          FormFinancialWeeklyReport_PanelHeader
+          {
+            sizeRatio: 1
+          }
+          FormFinancialWeeklyReport_PanelTable
+          {
+            sizeRatio: 1
+          }
+          FormFinancialWeeklyReport_MatrixEditorTable
+          {
+            gridColor: '#c4c4c4'
+            totalHeaderWidth: 67
+            attributeHeaderWidthRatio: 0.6
+            nameHeaderWidthRatio: 0.4
+            columnWidth: 100
+            horizontalGrid: true
+            verticalGrid: true
+            backendState
+            {
+              componentId: 'QMacroPlanner::FormFinancialWeeklyReport.MatrixEditorTable'
+              state
+              {
+                cells
+                {
+                  attributes
+                  {
+                    attribute_Value
+                    {
+                      type: 'MatrixEditorWebApiCellDataModelInterest'
+                      index: 0
+                      rowsubtotal: ''
+                      columnsubtotal: ''
+                      attribute: 'Value'
+                    }
+                  }
+                }
+                columns
+                {
+                  sorting
+                  {
+                    criteria: "datamember:'Index'"
+                  }
+                }
+                rows
+                {
+                  sorting
+                  {
+                    criteria: "datamember:'RowNr'"
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: ''
+    group: ''
+    index: 19
+    image: 'DOCUMENT_DIRTY'
+    description: ''
+  }
+  formatversion: 2
+  id: 'Financial_weekly_report_view'
+  name: 'Financial weekly report view'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3