From 6d142248b91d0842ef42e7b15937a5074198ad46 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 25 十月 2024 18:34:30 +0800
Subject: [PATCH] 存档与下发前端界面部分

---
 _Main/BL/Relations/Relation_OfflinePlanArchiveVersion_InterfaceDataset_InterfaceDataset_Offline.qbl                                            |   23 
 _Main/BL/Relations/Relation_OfflinePlanArchiveRow_Cell_OfflinePlanArchiveCell_Row.qbl                                                          |   23 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_StartDate.qbl                                                                          |    7 
 _Main/BL/Type_OfflinePlanArchiveVersion/_ROOT_Type_OfflinePlanArchiveVersion.qbl                                                               |   10 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonCustomerDemandPP#603.def |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchive.def                                              |   24 +
 _Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultAllUnit.qbl                                                                     |   10 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageArchivePublish.def                                        |   17 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Method_OnOK.def                                                               |   63 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlShiftPlan.def                                                    |   33 +
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlPackagePlan.def                                                  |   33 +
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/_ROOT_Type_OfflinePlanArchiveSearch.qbl                                                          |   10 
 _Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl                                                                           |   38 +
 _Main/BL/Relations/Relation_OfflinePlanArchiveRow_Version_OfflinePlanArchiveVersion_Row.qbl                                                    |   23 
 _Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl                                                                              |   65 ++
 _Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Value.qbl                                                                             |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/Method_Initialize.qbl                                                                               |   14 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Unit.qbl                                                                            |    6 
 _Main/BL/Type_OfflinePlanArchiveVersion/Attribute_Name.qbl                                                                                     |    8 
 _Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Version_OfflinePlanArchiveVersion_Column.qbl                                              |   23 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/_ROOT_Type_OfflinePlanArchiveRow.qbl                                                                |   10 
 _Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_Name.qbl                                                                                  |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_InventoryWeight.qbl                                                                      |    8 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Quantity.qbl                                                                             |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl                                                                           |    8 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Product.qbl                                                                         |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductionLine.qbl                                                                     |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlContent.def                                                      |   23 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductID.qbl                                                                             |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/_ROOT_Type_OfflinePlanArchiveCell.qbl                                                              |   10 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Unit.qbl                                                                               |    8 
 _Main/BL/Relations/Relation_OfflinePlanArchiveSearch_InterfaceDataset_InterfaceDataset_OfflineP.qbl                                            |   23 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnName.qbl                                                                         |    7 
 _Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl                                                                                      |   20 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def                                               |   22 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl                                                                        |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlInventoryPlan.def                                                |   33 +
 _Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Cell_OfflinePlanArchiveCell_Column.qbl                                                    |   23 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductionLine.qbl                                                                        |    7 
 _Main/BL/Type_OfflinePlanArchiveVersion/Attribute_IsShow.qbl                                                                                   |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_RowNr.qbl                                                                              |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Shift.qbl                                                                             |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlCustomDemand.def                                                 |   33 +
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnOk_OnClick.def                                         |   15 
 _Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GenerateData.qbl                                                                          |   62 ++
 _Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_ID.qbl                                                                                    |    6 
 _Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl                                                                         |   16 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_EndDate.qbl                                                                            |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnIndex.qbl                                                                        |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_Type.qbl                                                                                  |   15 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAssembleOnlinePlan.def                                           |   33 +
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_ProductionLine.qbl                                                                     |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlOfflinePlan.def                                                  |   33 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchive_ButtonArchive_OnClick.def            |   18 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlAll_cbAll_OnChanged.def                                           |   34 +
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl                                                                        |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_EndDate.qbl                                                                            |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/Method_InitializeCell.qbl                                                                           |   12 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def                                      |    1 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPublish.def                                              |   24 +
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAll.def                                                          |   33 +
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/_ROOT_Component_DialogReportArchiveConfirm.def                                |   23 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_Type.qbl                                                                               |    6 
 _Main/BL/Type_OfflinePlanArchiveVersion/Attribute_ID.qbl                                                                                       |    8 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/_ROOT_Type_OfflinePlanArchiveColumn.qbl                                                          |   10 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductID.qbl                                                                          |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Value.qbl                                                                                |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_ProductionLine.qbl                                                                  |    6 
 _Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultName.qbl                                                                        |   10 
 _Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_RowNr.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnTransferPlan.def                                                  |   33 +
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Product.qbl                                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlTRCDemand.def                                                    |   33 +
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl                                                                           |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_StartDate.qbl                                                                          |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnCancel_OnClick.def                                     |   15 
 _Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_ColumnName.qbl                                                                      |    6 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_ProductionSerialNumber.qbl                                                               |    7 
 _Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Shift.qbl                                                                                |    8 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def                                        |   35 +
 _Main/BL/Type_OfflinePlanArchiveVersionCell/StaticMethod_Download.qbl                                                                          |   47 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonAssemblyOnlinePl#545.def |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlActions.def                                                      |   40 +
 83 files changed, 1,376 insertions(+), 28 deletions(-)

diff --git a/_Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Cell_OfflinePlanArchiveCell_Column.qbl b/_Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Cell_OfflinePlanArchiveCell_Column.qbl
new file mode 100644
index 0000000..6299eac
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Cell_OfflinePlanArchiveCell_Column.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanArchiveColumn_Cell_OfflinePlanArchiveCell_Column
+{
+  #keys: '1[415136.0.1246981202]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Cell
+  {
+    #keys: '3[415136.0.1246981204][415136.0.1246981203][415136.0.1246981205]'
+    Cardinality: '1toN'
+    ObjectDefinition: OfflinePlanArchiveColumn
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Column
+  {
+    #keys: '3[415136.0.1246981207][415136.0.1246981206][415136.0.1246981208]'
+    Cardinality: '0to1'
+    ObjectDefinition: OfflinePlanArchiveCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Version_OfflinePlanArchiveVersion_Column.qbl b/_Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Version_OfflinePlanArchiveVersion_Column.qbl
new file mode 100644
index 0000000..b208e31
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanArchiveColumn_Version_OfflinePlanArchiveVersion_Column.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanArchiveColumn_Version_OfflinePlanArchiveVersion_Column
+{
+  #keys: '1[415136.0.1246981186]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Version
+  {
+    #keys: '3[415136.0.1246981188][415136.0.1246981187][415136.0.1246981189]'
+    Cardinality: '0to1'
+    ObjectDefinition: OfflinePlanArchiveColumn
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Column
+  {
+    #keys: '3[415136.0.1246981191][415136.0.1246981190][415136.0.1246981192]'
+    Cardinality: '1toN'
+    ObjectDefinition: OfflinePlanArchiveVersion
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanArchiveRow_Cell_OfflinePlanArchiveCell_Row.qbl b/_Main/BL/Relations/Relation_OfflinePlanArchiveRow_Cell_OfflinePlanArchiveCell_Row.qbl
new file mode 100644
index 0000000..3a4ca4c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanArchiveRow_Cell_OfflinePlanArchiveCell_Row.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanArchiveRow_Cell_OfflinePlanArchiveCell_Row
+{
+  #keys: '1[415136.0.1246981151]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Cell
+  {
+    #keys: '3[415136.0.1246981153][415136.0.1246981152][415136.0.1246981154]'
+    Cardinality: '1toN'
+    ObjectDefinition: OfflinePlanArchiveRow
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide Row
+  {
+    #keys: '3[415136.0.1246981156][415136.0.1246981155][415136.0.1246981157]'
+    Cardinality: '0to1'
+    ObjectDefinition: OfflinePlanArchiveCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanArchiveRow_Version_OfflinePlanArchiveVersion_Row.qbl b/_Main/BL/Relations/Relation_OfflinePlanArchiveRow_Version_OfflinePlanArchiveVersion_Row.qbl
new file mode 100644
index 0000000..39c9ce3
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanArchiveRow_Version_OfflinePlanArchiveVersion_Row.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanArchiveRow_Version_OfflinePlanArchiveVersion_Row
+{
+  #keys: '1[415136.0.1246981164]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Version
+  {
+    #keys: '3[415136.0.1246981166][415136.0.1246981165][415136.0.1246981167]'
+    Cardinality: '0to1'
+    ObjectDefinition: OfflinePlanArchiveRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Row
+  {
+    #keys: '3[415136.0.1246981169][415136.0.1246981168][415136.0.1246981170]'
+    Cardinality: '1toN'
+    ObjectDefinition: OfflinePlanArchiveVersion
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanArchiveSearch_InterfaceDataset_InterfaceDataset_OfflineP.qbl b/_Main/BL/Relations/Relation_OfflinePlanArchiveSearch_InterfaceDataset_InterfaceDataset_OfflineP.qbl
new file mode 100644
index 0000000..19d2b7b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanArchiveSearch_InterfaceDataset_InterfaceDataset_OfflineP.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanArchiveSearch_InterfaceDataset_InterfaceDataset_OfflinePlanArchiveSearch
+{
+  #keys: '1[415136.0.1246981138]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1246981140][415136.0.1246981139][415136.0.1246981141]'
+    Cardinality: '0to1'
+    ObjectDefinition: OfflinePlanArchiveSearch
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide OfflinePlanArchiveSearch
+  {
+    #keys: '3[415136.0.1246981143][415136.0.1246981142][415136.0.1246981144]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanArchiveVersion_InterfaceDataset_InterfaceDataset_Offline.qbl b/_Main/BL/Relations/Relation_OfflinePlanArchiveVersion_InterfaceDataset_InterfaceDataset_Offline.qbl
new file mode 100644
index 0000000..0d52f5d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanArchiveVersion_InterfaceDataset_InterfaceDataset_Offline.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanArchiveVersion_InterfaceDataset_InterfaceDataset_OfflinePlanArchiveVersion
+{
+  #keys: '1[415136.0.1246981125]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1246981127][415136.0.1246981126][415136.0.1246981128]'
+    Cardinality: '0to1'
+    ObjectDefinition: OfflinePlanArchiveVersion
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide OfflinePlanArchiveVersion
+  {
+    #keys: '3[415136.0.1246981130][415136.0.1246981129][415136.0.1246981131]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_ID.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_ID.qbl
new file mode 100644
index 0000000..3e4cdb9
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[415136.0.1246981009][415136.0.1246981008][415136.0.1246981010]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_IsShow.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_IsShow.qbl
new file mode 100644
index 0000000..9d3bc21
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_IsShow.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsShow
+{
+  #keys: '3[415136.0.1246981012][415136.0.1246981011][415136.0.1246981013]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_Name.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_Name.qbl
new file mode 100644
index 0000000..c5fa937
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.1246981015][415136.0.1246981014][415136.0.1246981016]'
+  Description: '鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_ID.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_ID.qbl
new file mode 100644
index 0000000..049abc0
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_ID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ID
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_Name.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl
new file mode 100644
index 0000000..1a0e80f
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+#parent: #root
+Method GenerateColumn (
+  Dates periods,
+  String timeunit,
+  Date starttime,
+  Date endtime
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-25-2024 (created) 
+    mindate               := min( periods, Elements, period, period );
+    maxdate               := max( periods, Elements, period, period );
+    //鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴
+    if( starttime < mindate and endtime > maxdate ){
+      if( starttime < mindate ){
+        starttime             := mindate;
+      }
+      if( endtime > maxdate ){
+        endtime               := maxdate;
+      }
+      if( timeunit = Translations::MP_GlobalParameters_Day() ){
+        for( start := starttime; start <= endtime; start := start.DateTime().StartOfNextDay().Date() ){
+          periodname          := start.Format( "M2/D2/Y" );
+          if( not exists( this, Column, column, column.StartDate() = start ) ){
+            this.Column( relnew, ColumnName := periodname, StartDate := start, EndDate := start, TimeUnit := Translations::MP_GlobalParameters_Day() );
+          }
+        }
+      }else if( timeunit = Translations::MP_GlobalParameters_Week() ){
+    //    weekstartstr          := ' KW';
+        for( start := starttime; start <= endtime; start := start.StartOfNextWeek() ){
+          weekend             := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();//.Concat( weekstartstr.Concat( weekend.Week().Format( 'N(LPad0(2))' ) ) )
+          
+          this.Column( relnew, ColumnName := weekend.Format( "M2/D2/Y" ), StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
+        }
+      }else if( timeunit = Translations::MP_GlobalParameters_Month() ){
+        for( start := starttime; start <= endtime; start := start.StartOfNextMonth() ){
+          monthend            := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date();//.Concat( ' ' ).Concat( monthend.Format( "MM", us_locale ).Concat( '/').Concat( [String]monthend.Month() ).Concat( '鏈�' ) )
+    //      us_locale := Locale::Construct( 'en_us' );
+          this.Column( relnew, ColumnName := monthend.Format( "M2/D2/Y" ), StartDate := start, EndDate := monthend, TimeUnit := Translations::MP_GlobalParameters_Month() );
+        }
+      }
+    }
+    //weekstart             := periods.Element( 0 );
+    //monthstart            := periods.Element( 0 );
+    //traverse( periods, Elements, periodtime ){
+    //  periodname          := periodtime.Format( "M2/D2/Y" );
+    //  
+    //  this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
+    //  
+    //  if( periodtime = weekstart ){
+    //    weekperiodname    := weekstart.Format( "M2/D2/Y" );
+    //    this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
+    //    weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
+    //  }
+    //  if( periodtime = monthstart ){
+    //    monthperiodname   := monthstart.Format( "M2/D2/Y" );
+    //    enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
+    //    this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
+    //    monthstart        := monthstart.StartOfNextMonth();
+    //  }
+    //}
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
new file mode 100644
index 0000000..65e8e9e
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetColumnByTimeUnit (
+  String unit,
+  Date period
+) as OfflinePlanArchiveColumn
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-7-2024 (created) 
+    
+    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
+    
+    return column;
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl
new file mode 100644
index 0000000..ccbf580
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetRow (
+  const AssemblyOnlinePlanRow aoprow
+) as OfflinePlanArchiveRow
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Oct-11-2024 (created)
+    row := selectobject( this, Row, row, row.ProductID() = aoprow.ProductID() and row.ProductionLine() = aoprow.ProductionLine() and row.Type() = aoprow.Type() );
+    
+    if( isnull( row ) ){
+      row := this.Row( relnew, ProductID := aoprow.ProductID(), ProductionLine := aoprow.ProductionLine(), Type := aoprow.Type() );
+      //鍒濆鍖栧崟鍏冩牸
+      row.InitializeCell();
+    }
+    
+    return row;
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GenerateData.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GenerateData.qbl
new file mode 100644
index 0000000..0cbe54d
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GenerateData.qbl
@@ -0,0 +1,62 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateData (
+  InterfaceDataset interface,
+  RecycleBin recycle,
+  const Archive archive
+)
+{
+  Description: '鐢熸垚鍙互涓嬪彂鐨勫鎴烽渶姹傦紙PPA+IDS锛夋暟鎹�'
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-20-2024 (created)
+    interface.CustomerDemandIDS( relflush );
+    interface.CustomerDemandIDSSearch( relflush );
+    allunit               := CustomerDemandIDS::GetDefaultAllUnit();
+    interface.CustomerDemandIDSSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit );
+    idstable              := interface.CustomerDemandIDS( relnew, ID := '瀹㈡埛闇�姹�', Name := '瀹㈡埛闇�姹�' );
+    binaryValue           := TemplateManager::GetIDSFullTable( archive, Date::ActualDate().Year() );
+    source                := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" );
+    source.ReadStructure();
+    Transaction::Transaction().Propagate( attribute( GeneralExcelImportAndExportDataColumn, ColumnIndex ) );
+    cnv2 := StringToDate::StandardConverter();
+    cnv2.SetCustomConversion();
+    cnv2.CustomFormatString( "yyyy/MM/dd" );
+    idsdates              := selectuniquevalues( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() > 2, cnv2.Convert( column.Name() ) );
+    ppadates              := selectuniquevalues( interface, InterfaceForecast, forecast, forecast.Origin() = 'PPA', forecast.Date() );
+    //ppadates              := construct( Dates );
+    //traverse( macroplan, SalesDemand.astype( Forecast ), forecast, forecast.Origin() = 'PPA' ){
+    //  ppadates            := ppadates.Union( selectuniquevalues( forecast, PlanningSalesDemandInPeriod, salesdemand, salesdemand.StartDate() ) );
+    //}
+    periods               := idsdates.Union( ppadates );
+    periods               := selectuniquevalues( periods, Elements, e, e );
+    idstable.GenerateColumn( periods.Sort() );
+    traverse( recycle, GeneralExcelImportAndExportDataSource.GeneralExcelImportAndExportDataTable, table ){
+      traverse( table, GeneralExcelImportAndExportDataRow, row ){
+        productcell       := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 );
+        factorycell       := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 );
+        idsrow            := idstable.GetRowByUnit( productcell.Value(), factorycell.Value() );
+        traverse( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 2 ){
+          period          := cnv2.Convert( cell.GeneralExcelImportAndExportDataColumn().Name() );
+          daycolumn       := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), period );
+          weekcolumn      := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), period );
+          monthcolumn     := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), period );
+          idsrow.SetCellValue( daycolumn, [Number]cell.Value() );
+          idsrow.SetCellValue( weekcolumn, [Number]cell.Value() );
+          idsrow.SetCellValue( monthcolumn, [Number]cell.Value() );
+        }
+      }
+    }
+    traverse( interface, InterfaceForecast, forecast, forecast.Origin() = 'PPA' ){
+      idsrow              := idstable.GetRowByUnit( forecast.PartNumber(), forecast.Factory() );
+      daycolumn           := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), forecast.Date() );
+      weekcolumn          := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), forecast.Date() );
+      monthcolumn         := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), forecast.Date() );
+      idsrow.SetCellValue( daycolumn, [Number]forecast.Quantity() );
+      idsrow.SetCellValue( weekcolumn, [Number]forecast.Quantity() );
+      idsrow.SetCellValue( monthcolumn, [Number]forecast.Quantity() );
+    }
+    
+    source.Delete();
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultAllUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultAllUnit.qbl
new file mode 100644
index 0000000..e912c3f
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultAllUnit.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultAllUnit () const declarative as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-25-2024 (created)
+    return '<All>';
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultName.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultName.qbl
new file mode 100644
index 0000000..0193933
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GetDefaultName.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultName () const declarative as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-25-2024 (created)
+    return '瑁呴厤涓婄嚎璁″垝鍏ㄩ噺琛�';
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
new file mode 100644
index 0000000..a22c383
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RefreshData (
+  InterfaceDataset interface,
+  const MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    //鏍规嵁褰撳墠鐗堟湰鐨勮閰嶄笂绾胯鍒�
+    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
+    name                   := AssemblyOnlinePlanVersion::GetDefaultName();
+    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+    table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
+    if( isnull( table ) ){
+      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
+    }
+    showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
+    if( isnull( table ) ){
+      showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
+    }
+    aopcolumns             := selectuniquevalues(  macroPlan, AssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.ColumnDate() ), aopcolumn.ColumnDate() );
+    table.GenerateColumn( aopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
+    traverse( macroPlan, AssemblyOnlinePlanRow, aoprow ){
+      row                  := table.GetRow( aoprow );
+      traverse( aoprow, AssemblyOnlinePlanCell, aopcell ){
+        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcell.AssemblyOnlinePlanColumn().ColumnDate() );
+        cell               := selectobject( row, Cell, cell, cell.Column() = column );
+        cell.InventoryWeight( aopcell.InventoryWeight() );
+        cell.ProductionSerialNumber( aopcell.ProductionSerialNumber() );
+        cell.Quantity( aopcell.Quantity() );
+        cell.Shift( aopcell.Shift() );
+        cell.Value( aopcell.Value() );
+      }
+    }
+    //showtable.Generate( search, products );
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/_ROOT_Type_OfflinePlanArchiveVersion.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/_ROOT_Type_OfflinePlanArchiveVersion.qbl
new file mode 100644
index 0000000..7ef25de
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/_ROOT_Type_OfflinePlanArchiveVersion.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OfflinePlanArchiveVersion
+{
+  #keys: '5[415136.0.1246981006][415136.0.1246981004][0.0.0][415136.0.1246981005][415136.0.1246981007]'
+  BaseType: Object
+  Description: '涓嬬嚎璁″垝瀛樻。鍏ㄨ〃鏁版嵁'
+  StructuredName: 'OfflinePlanArchiveVersions'
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_InventoryWeight.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_InventoryWeight.qbl
new file mode 100644
index 0000000..5e99125
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_InventoryWeight.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InventoryWeight
+{
+  #keys: '3[415136.0.1246981072][415136.0.1246981071][415136.0.1246981073]'
+  Description: '鍓╀綑搴撳瓨 - 鏈�灏忓簱瀛�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_ProductionSerialNumber.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_ProductionSerialNumber.qbl
new file mode 100644
index 0000000..8a313c1
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_ProductionSerialNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionSerialNumber
+{
+  #keys: '3[415136.0.1246981075][415136.0.1246981074][415136.0.1246981076]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Quantity.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Quantity.qbl
new file mode 100644
index 0000000..1671fb7
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[415136.0.1246981078][415136.0.1246981077][415136.0.1246981079]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Shift.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Shift.qbl
new file mode 100644
index 0000000..952b0c4
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Shift.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Shift
+{
+  #keys: '3[415136.0.1246981081][415136.0.1246981080][415136.0.1246981082]'
+  Description: '鐝'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Value.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Value.qbl
new file mode 100644
index 0000000..e3e7d91
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+  #keys: '3[415136.0.1246981084][415136.0.1246981083][415136.0.1246981085]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Shift.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Shift.qbl
new file mode 100644
index 0000000..b925fd8
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Shift.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Shift
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Value.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Value.qbl
new file mode 100644
index 0000000..913414b
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/DefaultValue_Value.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Value
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/StaticMethod_Download.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/StaticMethod_Download.qbl
new file mode 100644
index 0000000..3fc9100
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/StaticMethod_Download.qbl
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Download (
+  MacroPlan macroPlan
+) as BinaryValue
+{
+  TextBody:
+  [*
+    xmlDOMI      := XMLDOMImplementation::Create();
+    xmlDOM       := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name></table>' );
+    
+    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+    
+    opcs := selectsortedset( macroPlan, AssemblyOnlinePlanColumn, tempOPC, true, tempOPC.ColumnDate() );
+    oprs := selectsortedset( macroPlan, AssemblyOnlinePlanRow, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
+    traverse ( opcs, Elements, opc ) {
+      column := xmlDOM.CreateElement( "column" );
+      name   := xmlDOM.CreateElement( "name" );
+      type   := xmlDOM.CreateElement( "type" );
+      name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "", opc.ColumnDate().Format( "Y/M2/D2" ) ) );
+      type.TextContent( "String" );
+      column.AppendChild( name );
+      column.AppendChild( type );
+      
+      traverse ( oprs, Elements, opr ) {
+        c    := select( opc, AssemblyOnlinePlanCell, tempOPC, tempOPC.AssemblyOnlinePlanRow() = opr );
+        cell := xmlDOM.CreateElement( "cell" );
+        cell.SetAttribute( "value", guard( c.Value(), "" ) );
+        column.AppendChild( cell );
+      }
+      
+      tableElement.AppendChild( column );
+    }
+    
+    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
+    
+    //info( xmlString );
+    
+    tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
+    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+    tableGroupHandle.Add( tableHandle );
+    
+    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+    
+    return binaryData.AsBinaryValue();
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionCell/_ROOT_Type_OfflinePlanArchiveCell.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionCell/_ROOT_Type_OfflinePlanArchiveCell.qbl
new file mode 100644
index 0000000..886f298
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionCell/_ROOT_Type_OfflinePlanArchiveCell.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OfflinePlanArchiveCell
+{
+  #keys: '5[415136.0.1246981069][415136.0.1246981067][0.0.0][415136.0.1246981068][415136.0.1246981070]'
+  BaseType: Object
+  Description: '涓嬬嚎璁″垝瀛樻。鍗曞厓鏍�'
+  StructuredName: 'OfflinePlanArchiveCells'
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnIndex.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnIndex.qbl
new file mode 100644
index 0000000..71aec33
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnIndex
+{
+  #keys: '3[415136.0.1246981095][415136.0.1246981094][415136.0.1246981096]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnName.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnName.qbl
new file mode 100644
index 0000000..c47d8d8
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_ColumnName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnName
+{
+  #keys: '3[415136.0.1246981098][415136.0.1246981097][415136.0.1246981099]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_EndDate.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_EndDate.qbl
new file mode 100644
index 0000000..ea46699
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[415136.0.1246981101][415136.0.1246981100][415136.0.1246981102]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_StartDate.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_StartDate.qbl
new file mode 100644
index 0000000..106bded
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[415136.0.1246981104][415136.0.1246981103][415136.0.1246981105]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl
new file mode 100644
index 0000000..84402f6
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TimeUnit
+{
+  #keys: '3[415136.0.1246981107][415136.0.1246981106][415136.0.1246981108]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_ColumnName.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_ColumnName.qbl
new file mode 100644
index 0000000..2ba9476
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_ColumnName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ColumnName
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl
new file mode 100644
index 0000000..e29979e
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: TimeUnit
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/_ROOT_Type_OfflinePlanArchiveColumn.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/_ROOT_Type_OfflinePlanArchiveColumn.qbl
new file mode 100644
index 0000000..056574b
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/_ROOT_Type_OfflinePlanArchiveColumn.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OfflinePlanArchiveColumn
+{
+  #keys: '5[415136.0.1246981092][415136.0.1246981090][0.0.0][415136.0.1246981091][415136.0.1246981093]'
+  BaseType: Object
+  Description: '涓嬬嚎璁″垝瀛樻。鍒�'
+  StructuredName: 'OfflinePlanArchiveColumns'
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductID.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductID.qbl
new file mode 100644
index 0000000..dd573ba
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[415136.0.1246981052][415136.0.1246981051][415136.0.1246981053]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductionLine.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductionLine.qbl
new file mode 100644
index 0000000..5adcad1
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_ProductionLine.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionLine
+{
+  #keys: '3[415136.0.1246981055][415136.0.1246981054][415136.0.1246981056]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_RowNr.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..56df88f
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+  #keys: '3[415136.0.1246981058][415136.0.1246981057][415136.0.1246981059]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_Type.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_Type.qbl
new file mode 100644
index 0000000..a3390d7
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_Type.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Type
+{
+  #keys: '3[415136.0.1246981061][415136.0.1246981060][415136.0.1246981062]'
+  Description:
+  [*
+    浜х嚎鍚嶈    锛�0
+    Quantity琛岋細1
+    Order琛�     锛�2
+    鍚堣琛�        锛�3
+    鐝琛�        锛�4
+  *]
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductID.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductID.qbl
new file mode 100644
index 0000000..98649b2
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ProductID
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductionLine.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductionLine.qbl
new file mode 100644
index 0000000..c59ec43
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_ProductionLine.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ProductionLine
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_RowNr.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_RowNr.qbl
new file mode 100644
index 0000000..a05f652
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_RowNr.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: RowNr
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_Type.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_Type.qbl
new file mode 100644
index 0000000..fd112e9
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_Type.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Type
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/Method_Initialize.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Method_Initialize.qbl
new file mode 100644
index 0000000..48c82a9
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Method_Initialize.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method Initialize (
+  OfflinePlanArchiveColumn column
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-24-2024 (created)
+    cell := this.Cell( relnew, InventoryWeight := 0, ProductionSerialNumber := 0, Quantity := 0, Shift := '', Value := '' );
+    
+    column.Cell( relinsert, cell );
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/Method_InitializeCell.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Method_InitializeCell.qbl
new file mode 100644
index 0000000..f6358da
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/Method_InitializeCell.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+Method InitializeCell
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-28-2024 (created) 
+    traverse( this.Version(), Column, column ){
+      this.Initialize( column );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionRow/_ROOT_Type_OfflinePlanArchiveRow.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionRow/_ROOT_Type_OfflinePlanArchiveRow.qbl
new file mode 100644
index 0000000..c9df160
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionRow/_ROOT_Type_OfflinePlanArchiveRow.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OfflinePlanArchiveRow
+{
+  #keys: '5[415136.0.1246981049][415136.0.1246981047][0.0.0][415136.0.1246981048][415136.0.1246981050]'
+  BaseType: Object
+  Description: '涓嬬嚎璁″垝瀛樻。琛�'
+  StructuredName: 'OfflinePlanArchiveRows'
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_EndDate.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_EndDate.qbl
new file mode 100644
index 0000000..444e6a4
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[415136.0.1246981026][415136.0.1246981025][415136.0.1246981027]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Product.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Product.qbl
new file mode 100644
index 0000000..227bb6d
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Product.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[415136.0.1246981029][415136.0.1246981028][415136.0.1246981030]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_ProductionLine.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_ProductionLine.qbl
new file mode 100644
index 0000000..70c20e8
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_ProductionLine.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionLine
+{
+  #keys: '3[415136.0.1246981032][415136.0.1246981031][415136.0.1246981033]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_StartDate.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_StartDate.qbl
new file mode 100644
index 0000000..91d69e4
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[415136.0.1246981035][415136.0.1246981034][415136.0.1246981036]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl
new file mode 100644
index 0000000..f22ea83
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TimeUnit
+{
+  #keys: '3[415136.0.1246981038][415136.0.1246981037][415136.0.1246981039]'
+  Description: '鏃ユ湡绫诲瀷'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Unit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Unit.qbl
new file mode 100644
index 0000000..aca2931
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_Unit.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Unit
+{
+  #keys: '3[415136.0.1246981041][415136.0.1246981040][415136.0.1246981042]'
+  Description: '浜х嚎'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Product.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Product.qbl
new file mode 100644
index 0000000..6e10c8e
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Product.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Product
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_ProductionLine.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_ProductionLine.qbl
new file mode 100644
index 0000000..c59ec43
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_ProductionLine.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ProductionLine
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl
new file mode 100644
index 0000000..e29979e
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: TimeUnit
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Unit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Unit.qbl
new file mode 100644
index 0000000..7e60e2c
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_Unit.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Unit
+}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/_ROOT_Type_OfflinePlanArchiveSearch.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/_ROOT_Type_OfflinePlanArchiveSearch.qbl
new file mode 100644
index 0000000..d7640c1
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/_ROOT_Type_OfflinePlanArchiveSearch.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OfflinePlanArchiveSearch
+{
+  #keys: '5[415136.0.1246981023][415136.0.1246981021][0.0.0][415136.0.1246981022][415136.0.1246981024]'
+  BaseType: Object
+  Description: '涓嬬嚎璁″垝瀛樻。鏌ヨ绫�'
+  StructuredName: 'OfflinePlanArchiveSearchs'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchive.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchive.def
new file mode 100644
index 0000000..a3c7d14
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchive.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component ActionBarGroupArchive
+{
+  #keys: '[415136.0.1248981101]'
+  BaseType: 'WebActionBarGroup'
+  Children:
+  [
+    Component ButtonArchive
+    {
+      #keys: '[415136.0.1248981186]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'INBOX_INTO'
+        Label: '纭瀛樻。'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def
new file mode 100644
index 0000000..5d56dca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+Component ActionBarGroupArchiveReport
+{
+  #keys: '[415136.0.1248981306]'
+  BaseType: 'WebActionBarGroup'
+  Children:
+  [
+    Component ButtonCustomerDemandPPAIDS id:ButtonCustomerDemandPPAIDS_844
+    {
+      #keys: '[415136.0.1248981343]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'FLAG_AMBER'
+        Label: '瀹㈡埛闇�姹�(PPA + IDS)'
+        Taborder: 0
+      ]
+    }
+    Component ButtonAssemblyOnlinePlanVersion id:ButtonAssemblyOnlinePlanVersion_858
+    {
+      #keys: '[415136.0.1248981366]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'Document'
+        Label: '瑁呴厤涓婄嚎璁″垝'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPublish.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPublish.def
new file mode 100644
index 0000000..3e6d328
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPublish.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component ActionBarGroupPublish
+{
+  #keys: '[415136.0.1248981225]'
+  BaseType: 'WebActionBarGroup'
+  Children:
+  [
+    Component ButtonPublish
+    {
+      #keys: '[415136.0.1248981274]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'INBOX_OUT'
+        Label: '鍙戝竷璁″垝'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
index 159f17e..6e2063a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
@@ -150,28 +150,6 @@
         Taborder: 11
       ]
     }
-    Component ButtonCustomerDemandPPAIDS
-    {
-      #keys: '[415136.0.1123430252]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'FLAG_AMBER'
-        Label: '瀹㈡埛闇�姹�(PPA + IDS)'
-        Taborder: 12
-      ]
-    }
-    Component ButtonAssemblyOnlinePlanVersion
-    {
-      #keys: '[415136.0.1201203922]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'Document'
-        Label: 'Assembly online plan version'
-        Taborder: 13
-      ]
-    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageArchivePublish.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageArchivePublish.def
new file mode 100644
index 0000000..998426c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageArchivePublish.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+Component ActionBarPageArchivePublish
+{
+  #keys: '[415136.0.1248981100]'
+  BaseType: 'WebActionBarPage'
+  Children:
+  [
+    #child: ActionBarGroupArchiveReport
+    #child: ActionBarGroupArchive
+    #child: ActionBarGroupPublish
+  ]
+  Properties:
+  [
+    Taborder: 24
+    Title: 'Archive & publish'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAssemblyOnlinePlanVersion_O.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonAssemblyOnlinePl\043545.def"
similarity index 68%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAssemblyOnlinePlanVersion_O.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonAssemblyOnlinePl\043545.def"
index d296f26..fe4676d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAssemblyOnlinePlanVersion_O.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonAssemblyOnlinePl\043545.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: ActionBarGroupReport/ButtonAssemblyOnlinePlanVersion
-Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonAssemblyOnlinePlanVersion_OnClick
+#parent: ActionBarGroupArchiveReport/ButtonAssemblyOnlinePlanVersion_858
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonAssemblyOnlinePlanVersion_OnClick_545
 {
-  #keys: '[415136.0.1201203950]'
+  #keys: '[415136.0.1248981365]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonCustomerDemandPPAIDS_OnClic.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonCustomerDemandPP\043603.def"
similarity index 69%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonCustomerDemandPPAIDS_OnClic.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonCustomerDemandPP\043603.def"
index a51a615..59ab9d6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonCustomerDemandPPAIDS_OnClic.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonCustomerDemandPP\043603.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: ActionBarGroupReport/ButtonCustomerDemandPPAIDS
-Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonCustomerDemandPPAIDS_OnClick
+#parent: ActionBarGroupArchiveReport/ButtonCustomerDemandPPAIDS_844
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonCustomerDemandPPAIDS_OnClick_603
 {
-  #keys: '[415136.0.1123430434]'
+  #keys: '[415136.0.1248981342]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchive_ButtonArchive_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchive_ButtonArchive_OnClick.def
new file mode 100644
index 0000000..2eea6d3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchive_ButtonArchive_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupArchive/ButtonArchive
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupArchive_ButtonArchive_OnClick
+{
+  #keys: '[415136.0.1248982719]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogReportArchiveConfirm );
+      
+      ApplicationMacroPlanner.ShowFormModal( dlg );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
index ae398df..25b159e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -20,6 +20,7 @@
         #child: abpAlgorithmPostProcessing
         #child: ActionBarPagePlan
         #child: ActionBarPageReport
+        #child: ActionBarPageArchivePublish
       ]
     }
     Component dhBinaryDataPR id:dhBinaryDataPR_688
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnTransferPlan.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnTransferPlan.def
new file mode 100644
index 0000000..728f440
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnTransferPlan.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnTransferPlan
+{
+  #keys: '[415136.0.1248982334]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblTransferPlan
+    {
+      #keys: '[415136.0.1248982395]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '璋冩嫧璁″垝'
+        Taborder: 0
+      ]
+    }
+    Component cbTransferPlan
+    {
+      #keys: '[415136.0.1248982408]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 6
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlActions.def
new file mode 100644
index 0000000..4f7cd9d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[415136.0.1249021374]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[415136.0.1249021378]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[415136.0.1249021380]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAll.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAll.def
new file mode 100644
index 0000000..0a9f4e3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAll.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlAll
+{
+  #keys: '[415136.0.1248982528]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblAll
+    {
+      #keys: '[415136.0.1248982547]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: 'All'
+        Taborder: 0
+      ]
+    }
+    Component cbAll
+    {
+      #keys: '[415136.0.1248982560]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 8
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAssembleOnlinePlan.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAssembleOnlinePlan.def
new file mode 100644
index 0000000..49f279e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlAssembleOnlinePlan.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlAssembleOnlinePlan
+{
+  #keys: '[415136.0.1248982105]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblAssembleOnlinePlan
+    {
+      #keys: '[415136.0.1248982137]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '瑁呴厤涓婄嚎璁″垝'
+        Taborder: 0
+      ]
+    }
+    Component cbAssembleOnlinePlan
+    {
+      #keys: '[415136.0.1248982156]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlContent.def
new file mode 100644
index 0000000..dfde792
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlContent.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[415136.0.1249021372]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: pnlCustomDemand
+    #child: pnlOfflinePlan
+    #child: pnlShiftPlan
+    #child: pnlAssembleOnlinePlan
+    #child: pnlInventoryPlan
+    #child: pnlTRCDemand
+    #child: pnTransferPlan
+    #child: pnlPackagePlan
+    #child: pnlAll
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlCustomDemand.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlCustomDemand.def
new file mode 100644
index 0000000..540f15f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlCustomDemand.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlCustomDemand
+{
+  #keys: '[415136.0.1249021457]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblCustomDemand
+    {
+      #keys: '[415136.0.1249021484]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鍏ㄥ勾鏃ュ害闇�姹�'
+        Taborder: 0
+      ]
+    }
+    Component cbCustomDemand
+    {
+      #keys: '[415136.0.1249021506]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlInventoryPlan.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlInventoryPlan.def
new file mode 100644
index 0000000..2e222c0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlInventoryPlan.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlInventoryPlan
+{
+  #keys: '[415136.0.1248982197]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblInventoryPlan
+    {
+      #keys: '[415136.0.1248982216]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '璁″垝搴撳瓨'
+        Taborder: 0
+      ]
+    }
+    Component cbInventoryPlan
+    {
+      #keys: '[415136.0.1248982234]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlOfflinePlan.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlOfflinePlan.def
new file mode 100644
index 0000000..d3146f5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlOfflinePlan.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlOfflinePlan
+{
+  #keys: '[415136.0.1248981964]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblOfflinePlan
+    {
+      #keys: '[415136.0.1248981983]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '涓嬬嚎璁″垝'
+        Taborder: 0
+      ]
+    }
+    Component cbOfflinePlan
+    {
+      #keys: '[415136.0.1248982001]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlPackagePlan.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlPackagePlan.def
new file mode 100644
index 0000000..c35d26d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlPackagePlan.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlPackagePlan
+{
+  #keys: '[415136.0.1248982458]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblPackagePlan
+    {
+      #keys: '[415136.0.1248982482]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鍖呰璁″垝'
+        Taborder: 0
+      ]
+    }
+    Component cbPackagePlan
+    {
+      #keys: '[415136.0.1248982495]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 7
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlShiftPlan.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlShiftPlan.def
new file mode 100644
index 0000000..7146e4a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlShiftPlan.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlShiftPlan
+{
+  #keys: '[415136.0.1248982028]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblShiftPlan
+    {
+      #keys: '[415136.0.1248982053]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鐝璁″垝'
+        Taborder: 0
+      ]
+    }
+    Component cbShiftPlan
+    {
+      #keys: '[415136.0.1248982071]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlTRCDemand.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlTRCDemand.def
new file mode 100644
index 0000000..1137482
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Component_pnlTRCDemand.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlTRCDemand
+{
+  #keys: '[415136.0.1248982267]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblTRCDemand
+    {
+      #keys: '[415136.0.1248982287]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: 'TRC闇�姹�'
+        Taborder: 0
+      ]
+    }
+    Component cbTRCDemand
+    {
+      #keys: '[415136.0.1248982300]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 5
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Method_OnOK.def
new file mode 100644
index 0000000..0a4ead9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Method_OnOK.def
@@ -0,0 +1,63 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogReportArchiveConfirm_OnOK
+{
+  #keys: '[415136.0.1248982978]'
+  Body:
+  [*
+    this.ApplyChanges();
+    info( '------------------',cbCustomDemand.Checked() 
+        ,cbOfflinePlan.Checked() 
+        ,cbShiftPlan.Checked() 
+        ,cbAssembleOnlinePlan.Checked() 
+        ,cbInventoryPlan.Checked() 
+        ,cbTRCDemand.Checked() 
+        ,cbTransferPlan.Checked() 
+        ,cbPackagePlan.Checked() );
+      showlabel := '鏄惁瀛樻。';
+    if( cbCustomDemand.Checked() 
+        or cbOfflinePlan.Checked() 
+        or cbShiftPlan.Checked() 
+        or cbAssembleOnlinePlan.Checked() 
+        or cbInventoryPlan.Checked() 
+        or cbTRCDemand.Checked() 
+        or cbTransferPlan.Checked() 
+        or cbPackagePlan.Checked() ){
+      showlabel := '鏄惁瀛樻。';
+      plannames := construct( Strings );
+      if( cbCustomDemand.Checked() ){
+        plannames.Add( lblCustomDemand.Label() );
+      }
+      if( cbOfflinePlan.Checked() ){
+        plannames.Add( lblOfflinePlan.Label() );
+      }
+      if( cbShiftPlan.Checked() ){
+        plannames.Add( lblShiftPlan.Label() );
+      }
+      if( cbAssembleOnlinePlan.Checked() ){
+        plannames.Add( lblAssembleOnlinePlan.Label() );
+      }
+      if( cbInventoryPlan.Checked() ){
+        plannames.Add( lblInventoryPlan.Label() );
+      }
+      if( cbTRCDemand.Checked() ){
+        plannames.Add( lblTRCDemand.Label() );
+      }
+      if( cbTransferPlan.Checked() ){
+        plannames.Add( lblTransferPlan.Label() );
+      }
+      if( cbPackagePlan.Checked()){
+        plannames.Add( lblPackagePlan.Label() );
+      }
+      showlabel := showlabel.Concat( plannames.Concatenate( "銆�" ) ).Concat( '锛�' );
+      info( '*****************************' );
+      if( WebMessageBox::Question( this, showlabel, 'OK|Cancel' ) = 0 ){
+      }
+    }else{
+      info( '************###########*****************' );
+      WebMessageBox::Information( this, '鏈�夋嫨浠讳綍璁″垝杩涜瀛樻。' )
+    }
+    
+    this.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..e14066e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[415136.0.1249021384]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..133d6e9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[415136.0.1249021383]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.OnOK()
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlAll_cbAll_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlAll_cbAll_OnChanged.def
new file mode 100644
index 0000000..8a34bfd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlAll_cbAll_OnChanged.def
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+#parent: pnlAll/cbAll
+Response OnChanged () id:Response_pnlAll_cbAll_OnChanged
+{
+  #keys: '[415136.0.1248982870]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      if( this.Checked() ){
+        cbCustomDemand.Checked( true );
+        cbOfflinePlan.Checked( true );
+        cbShiftPlan.Checked( true );
+        cbAssembleOnlinePlan.Checked( true );
+        cbInventoryPlan.Checked( true );
+        cbTRCDemand.Checked( true );
+        cbTransferPlan.Checked( true );
+        cbPackagePlan.Checked( true );
+      }else{
+        cbCustomDemand.Checked( false );
+        cbOfflinePlan.Checked( false );
+        cbShiftPlan.Checked( false );
+        cbAssembleOnlinePlan.Checked( false );
+        cbInventoryPlan.Checked( false );
+        cbTRCDemand.Checked( false );
+        cbTransferPlan.Checked( false );
+        cbPackagePlan.Checked( false );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/_ROOT_Component_DialogReportArchiveConfirm.def b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/_ROOT_Component_DialogReportArchiveConfirm.def
new file mode 100644
index 0000000..9921c6e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/_ROOT_Component_DialogReportArchiveConfirm.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogReportArchiveConfirm
+{
+  #keys: '[415136.0.1249021370]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Image: 'INBOX_INTO'
+    Padding: 'false'
+    Title: '纭瀛樻。'
+  ]
+}

--
Gitblit v1.9.3