From a746b44994e729613737baa922796383027fc54c Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期四, 14 十一月 2024 16:59:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl                                                  |    2 
 _Main/BL/Type_Test/StaticMethod_TestMacroPlan.qbl                                                                        |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_cbAll_OnChanged.def                              |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAllCC.def                                           |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def                |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlanCC.def                                     |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan.def                                       |    8 
 _Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl                                                  |   44 ++--
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pRibbonUp.def                                       |   17 -
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlanCC.def                            |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand.def                                    |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def                                |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bExportTemplate_OnClick.def     |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbon.def                                    |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbonUp#88.def                               |   27 -
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl                                                           |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def                                    |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def                                         |    9 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAllCC_cbAllCC_OnChanged.def                          |   28 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct#661.def                                  |   18 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan.def                              |    8 
 _Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl                                                             |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_94_dhXMLDataListener_OnDataChanged.def       |    2 
 _Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl                                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def                       |   11 
 _Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def                                         |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentDL.def                                       |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def                                    |   14 -
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def                                                  |   77 +++++--
 _Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl                                                          |   29 +-
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pExport_dhXMLDataListener_OnDataChanged#141.def |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan.def                                     |    8 
 _Main/BL/Type_LocalCell_ScheduleSummary#859/StaticMethod_AsyncExport.qbl                                                 |    2 
 _Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl                                                         |    5 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def         |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def            |    2 
 _Main/BL/Type_LocalColumn/Function_CalcDisplayDate.qbl                                                                   |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll.def                                             |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentCC.def                                       |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bImportOutput_OnClick.def       |    4 
 /dev/null                                                                                                                |   17 -
 _Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl                                                       |   28 +-
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemandCC.def                                  |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlanCC.def                                   |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan.def                                   |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport#94.def                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def                            |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlanCC.def                                 |   12 
 48 files changed, 325 insertions(+), 239 deletions(-)

diff --git a/_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl b/_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl
deleted file mode 100644
index a391b9f..0000000
--- a/_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation MP_Column_MP_Cell_MP_Cell_MP_Column
-{
-  #keys: '1[412672.1.95254848]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MP_Cell
-  {
-    #keys: '3[412672.1.95254850][412672.1.95254849][412672.1.95254851]'
-    Cardinality: '1toN'
-    ObjectDefinition: MP_Column
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide MP_Column
-  {
-    #keys: '3[412672.1.95254853][412672.1.95254852][412672.1.95254854]'
-    Cardinality: '0to1'
-    ObjectDefinition: MP_Cell
-    OwningSide: 'Reference'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl b/_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl
deleted file mode 100644
index dfbd52e..0000000
--- a/_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation MP_Row_MP_Cell_MP_Cell_MP_Row
-{
-  #keys: '1[412672.1.95254835]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MP_Cell
-  {
-    #keys: '3[412672.1.95254837][412672.1.95254836][412672.1.95254838]'
-    Cardinality: '1toN'
-    ObjectDefinition: MP_Row
-    OwningSide: 'Owned'
-  }
-  RelationSide.RightSide MP_Row
-  {
-    #keys: '3[412672.1.95254840][412672.1.95254839][412672.1.95254841]'
-    Cardinality: '0to1'
-    ObjectDefinition: MP_Cell
-    OwningSide: 'Reference'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl b/_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl
deleted file mode 100644
index b51ca1c..0000000
--- a/_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation MP_Table_MP_Column_MP_Column_MP_Table
-{
-  #keys: '1[412672.1.95254822]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MP_Column
-  {
-    #keys: '3[412672.1.95254824][412672.1.95254823][412672.1.95254825]'
-    Cardinality: '1toN'
-    ObjectDefinition: MP_Table
-    OwningSide: 'Owned'
-  }
-  RelationSide.RightSide MP_Table
-  {
-    #keys: '3[412672.1.95254827][412672.1.95254826][412672.1.95254828]'
-    Cardinality: '0to1'
-    ObjectDefinition: MP_Column
-    OwningSide: 'Reference'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl b/_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl
deleted file mode 100644
index 00df18a..0000000
--- a/_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation MP_Table_MP_Row_MP_Row_MP_Table
-{
-  #keys: '1[412672.1.95254809]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MP_Row
-  {
-    #keys: '3[412672.1.95254811][412672.1.95254810][412672.1.95254812]'
-    Cardinality: '1toN'
-    ObjectDefinition: MP_Table
-    OwningSide: 'Owned'
-  }
-  RelationSide.RightSide MP_Table
-  {
-    #keys: '3[412672.1.95254814][412672.1.95254813][412672.1.95254815]'
-    Cardinality: '0to1'
-    ObjectDefinition: MP_Row
-    OwningSide: 'Reference'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl b/_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl
deleted file mode 100644
index bc0e154..0000000
--- a/_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation MP_Table_MacroPlan_MacroPlan_MP_Table
-{
-  #keys: '1[412672.1.95254796]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[412672.1.95254798][412672.1.95254797][412672.1.95254799]'
-    Cardinality: '0to1'
-    ObjectDefinition: MP_Table
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide MP_Table
-  {
-    #keys: '3[412672.1.95254801][412672.1.95254800][412672.1.95254802]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
index 85cac89..f2d8561 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
@@ -3,6 +3,8 @@
 StaticMethod GenerateData (
   InterfaceDataset interfaceDataset,
   const MacroPlan macroplan,
+  Boolean iscc,
+  Boolean isdl,
   String executor
 )
 {
@@ -30,18 +32,20 @@
       traverse( verison, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
         traverse( column, Cell, cell ){
           row              := cell.Row();
-          cd               :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product            := row.ProductID()
-                                                                           , PlanningDate            := column.StartDate()
-                                                                           , PlanningQty             := [Number]cell.Quantity()
-                                                                           , Sequence                := cell.Order()
-                                                                           , VersionName             := macroplan.ScenarioName()
-                                                                           , InterfaceTime           := nowdate
-                                                                           , FactoryName             := row.Unit()
-                                                                          , Fac                     := ifexpr( row.Unit() = FinancialProductionReport::GetDefaultCCUnit(), 'CC', 'DL' )  
-    //                                                                       , VersionFlag             := versionflag
-                                                                           , ProductFourCode         := ifexpr( row.ProductID() = row.Name(), '', row.Name() )
-                                                                           );
-        loginfo.AssemblyOnlinePlanPPPSPush( relinsert, cd );
+          if( ( iscc and row.Unit() = FinancialProductionReport::GetDefaultCCUnit() ) or ( isdl and row.Unit() = FinancialProductionReport::GetDefaultDLUnit() ) ){
+            cd               :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product            := row.ProductID()
+                                                                             , PlanningDate            := column.StartDate()
+                                                                             , PlanningQty             := [Number]cell.Quantity()
+                                                                             , Sequence                := cell.Order()
+                                                                             , VersionName             := macroplan.ScenarioName()
+                                                                             , InterfaceTime           := nowdate
+                                                                             , FactoryName             := row.Unit()
+                                                                            , Fac                     := ifexpr( row.Unit() = FinancialProductionReport::GetDefaultCCUnit(), 'CC', 'DL' )  
+      //                                                                       , VersionFlag             := versionflag
+                                                                             , ProductFourCode         := ifexpr( row.ProductID() = row.Name(), '', row.Name() )
+                                                                             );
+            loginfo.AssemblyOnlinePlanPPPSPush( relinsert, cd );
+          }
         }
       }
     }
diff --git a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
index a9c3acf..80e6b42 100644
--- a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
@@ -3,6 +3,8 @@
 StaticMethod GenerateData (
   InterfaceDataset interfaceDataset,
   const MacroPlan macroplan,
+  Boolean iscc,
+  Boolean isdl,
   String executor
 )
 {
@@ -26,7 +28,8 @@
                                                                  , Message                   := '瀹㈡埛闇�姹傦紙PPA+IDS锛夋暟鎹帹閫�'
                                                                  , Last                      := true
                                                                   );
-    traverse( interfaceDataset, CustomerDemandIDS.Row, row ){
+    traverse( interfaceDataset, CustomerDemandIDS.Row, row, ( iscc and row.Factory() = FinancialProductionReport::GetDefaultCCUnit() )
+              or ( isdl and row.Factory() = FinancialProductionReport::GetDefaultDLUnit() ) ){
       traverse( row, Cell, cell ){
         cd                  :=interfaceDataset.CustomerDemandPPAIDS( relnew, Product           := row.Name()
                                                                      , DemandDate              := cell.Column().StartDate()
diff --git a/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl b/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
index a1bbc96..aeeb3ca 100644
--- a/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
+++ b/_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
@@ -2,11 +2,16 @@
 #parent: #root
 Method PublishPlanReportData (
   const MacroPlan macroplan,
-  Boolean iscustomdemand,
-  Boolean isofflineplan,
-  Boolean isshiftplan,
-  Boolean isassembleonlineplan,
-  Boolean isinventoryplan,
+  Boolean iscustomdemanddl,
+  Boolean iscustomdemandcc,
+  Boolean isofflineplandl,
+  Boolean isofflineplancc,
+  Boolean isshiftplandl,
+  Boolean isshiftplancc,
+  Boolean isassembleonlineplandl,
+  Boolean isassembleonlineplancc,
+  Boolean isinventoryplandl,
+  Boolean isinventoryplancc,
   String executor
 )
 {
@@ -14,20 +19,20 @@
   TextBody:
   [*
     // 鐢勫叞楦� Oct-30-2024 (created)
-    if( iscustomdemand ){//鍏ㄥ勾鏃ュ害闇�姹�/瀹㈡埛闇�姹� 
-      CustomerDemandPPAIDS::GenerateData( this, macroplan, executor );
+    if( iscustomdemanddl or iscustomdemandcc ){//鍏ㄥ勾鏃ュ害闇�姹�/瀹㈡埛闇�姹� 
+      CustomerDemandPPAIDS::GenerateData( this, macroplan, iscustomdemandcc, iscustomdemanddl, executor );
     }
-    if ( isofflineplan ) { // 鍚勪骇绾夸笅绾胯鍒�
+    if ( isofflineplandl or isofflineplancc ) { // 鍚勪骇绾夸笅绾胯鍒�
       InterfaceDataset::PushOfflinePlanData( macroplan, this, executor );
     }
-    if( isshiftplan ){//鐝璁″垝
+    if( isshiftplandl or isshiftplancc ){//鐝璁″垝
       DispatchShiftPlan::Dispatch(this, macroplan,executor );
     //  CustomerDemandIDS::GenerateData( this, recyclebin, archive );
     }
-    if( isassembleonlineplan ){//瑁呴厤涓婄嚎璁″垝
-      AssemblyOnlinePlanPPPSPush::GenerateData( this, macroplan, executor );
+    if( isassembleonlineplandl or isassembleonlineplancc ){//瑁呴厤涓婄嚎璁″垝
+      AssemblyOnlinePlanPPPSPush::GenerateData( this, macroplan, isassembleonlineplancc, isassembleonlineplandl, executor );
     }
-    if ( isinventoryplan ) { // 璁″垝搴撳瓨鏁版嵁
+    if ( isinventoryplandl or isinventoryplancc ) { // 璁″垝搴撳瓨鏁版嵁
       InterfaceDataset::PushPlanInventoryData( macroplan, this, executor );
     }
   *]
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl b/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
index b664b69..9c03d40 100644
--- a/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
@@ -8,8 +8,10 @@
   Description: '鐢熸垚璁″垝搴撳瓨瀛樻。鏁版嵁'
   TextBody:
   [*
-    //interfaceDataset.InventoryPlanArchiveVersion( relflush );
+    interfaceDataset.InventoryPlanArchiveVersion( relflush );
     info( '-------------------------Start---------------------');
+    machineproductparent   := MachiningPipelineReport::GetDefaultProductParent();
+    engineproductparent    := EnginePipelineReport::GetDefaultProductParent();
     allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
     name                   := InventoryPlanArchiveVersion::GetDefaultName();
     search                 := interfaceDataset.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
@@ -46,26 +48,28 @@
         inventoryindex      := inventoryindex + 1;
       }
     }
-    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) {
-      unit                 := ifexpr( pispmp.StockingPointID().Regex( "澶ц繛" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() );
-      inventoryrow         := table.GetRowByUnit( pispmp.Product_MP(), unit );
-      traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) {
-        startdate          := pispippl.Start().Date();
-        daycolumn          := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate );
-        weekcolumn         := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), startdate );
-        monthcolumn        := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), startdate );
-        actinventoryKey    := pispmp.ProductID() + startdate.AsQUILL();
-        actinventoryhandle := actinventorytree.GetHandle( actinventoryKey );
-        actinventoryindex  := guard( actinventorytree.Root().Child( actinventoryhandle ),null( NamedValue ));
-        
-        actinventoryqty    := 0.0;
-        if( not isnull( actinventoryindex )){
-          actinventoryqty  := inventoryqrys.Element( actinventoryindex.GetValueAsNumber() );
+    traverse( macroPlan, Product_MP, product, exists( product.GetAllParent(), Elements, e, e.ID() = machineproductparent or e.ID() = engineproductparent ) ){ 
+      traverse ( product, ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) {
+        unit                 := ifexpr( pispmp.StockingPointID().Regex( "澶ц繛" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() );
+        inventoryrow         := table.GetRowByUnit( pispmp.Product_MP(), unit );
+        traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) {
+          startdate          := pispippl.Start().Date();
+          daycolumn          := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate );
+          weekcolumn         := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), startdate );
+          monthcolumn        := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), startdate );
+          actinventoryKey    := pispmp.ProductID() + startdate.AsQUILL();
+          actinventoryhandle := actinventorytree.GetHandle( actinventoryKey );
+          actinventoryindex  := guard( actinventorytree.Root().Child( actinventoryhandle ),null( NamedValue ));
+          
+          actinventoryqty    := 0.0;
+          if( not isnull( actinventoryindex )){
+            actinventoryqty  := inventoryqrys.Element( actinventoryindex.GetValueAsNumber() );
+          }
+          inventoryrow.SetQuantity( daycolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
+          inventoryrow.SetQuantity( weekcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
+          inventoryrow.SetQuantity( monthcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
+      
         }
-        inventoryrow.SetQuantity( daycolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
-        inventoryrow.SetQuantity( weekcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
-        inventoryrow.SetQuantity( monthcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
-    
       }
     }
     
diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl
index 1c4c1eb..fbca9f3 100644
--- a/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl
+++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl
@@ -24,6 +24,6 @@
       columnstring := columnstring.Merge( cellxml);
     }
     
-    columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),MP_Cell_AnnualPlanReport::GetTableName()) );
+    columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),ArchiveCell_AnnualPlanReport::GetTableName()) );
   *]
 }
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl"
index cb0c460..55f7bed 100644
--- "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl"
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl"
@@ -27,6 +27,6 @@
       columnstring := columnstring.Merge( cellxml);
     }
     
-    columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),MP_Cell_ScheduleSummary::GetTableName()) );
+    columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),ArchiveCell_ScheduleSummary::GetTableName()) );
   *]
 }
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl
deleted file mode 100644
index c214e76..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Capacity
-{
-  #keys: '3[412672.1.95254748][412672.1.95254747][412672.1.95254749]'
-  Description: '浜ц兘'
-  ValueType: Real
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_IsFristWeekData.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_IsFristWeekData.qbl
deleted file mode 100644
index 002fadd..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_IsFristWeekData.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute IsFristWeekData
-{
-  #keys: '3[414996.1.43574725][414996.1.43574724][414996.1.43574726]'
-  ValueType: Boolean
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl
deleted file mode 100644
index 976e2a6..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Output
-{
-  #keys: '3[412672.1.95254758][412672.1.95254757][412672.1.95254759]'
-  Description: '浜у嚭'
-  ValueType: Real
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl
deleted file mode 100644
index a64ba99..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ShiftPattern
-{
-  #keys: '3[412672.1.95291524][412672.1.95291523][412672.1.95291525]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl
deleted file mode 100644
index 8f20102..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute WorkingDay
-{
-  #keys: '3[412672.1.95254735][412672.1.95254734][412672.1.95254736]'
-  Description: '宸ヤ綔鏃�'
-  ValueType: Number
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_AsyncCreateFullTable.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_AsyncCreateFullTable.qbl
deleted file mode 100644
index 074f66a..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_AsyncCreateFullTable.qbl
+++ /dev/null
@@ -1,24 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod AsyncCreateFullTable (
-  const Keys macroPlanMDSIDs,
-  RecycleBin recycleBin,
-  const Archive archive,
-  const MacroPlan owner
-)
-{
-  TextBody:
-  [*
-    // Akari Nov-11-2024 (created)
-    AsyncFlag::Running( recycleBin,MP_Cell_ScheduleSummary::GetTableName() );
-    
-    macroPlans := MDSMacroPlan::Root( macroPlanMDSIDs.Element( 0 ) );
-    for( i := 1; i< macroPlanMDSIDs.Size(); i++ ){
-      mdsid := macroPlanMDSIDs.Element( i );
-      streamMacroPlan := LocalTool::LoadMacroPlan( mdsid );
-      macroPlans.Merge( streamMacroPlan );
-    }
-    
-    macroPlans -> GroupAll() -> MP_Cell_ScheduleSummary::CreateFullTable( recycleBin,archive,owner );
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_AsyncCreateTables.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_AsyncCreateTables.qbl
deleted file mode 100644
index e3e2a83..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_AsyncCreateTables.qbl
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod AsyncCreateTables (
-  const Keys macroPlanMDSIDs
-)
-{
-  TextBody:
-  [*
-    // Akari Nov-11-2024 (created)
-    traverse( macroPlanMDSIDs,Elements,mdsid ){
-      streamMacroPlan := LocalTool::LoadMacroPlan( mdsid );
-      streamMacroPlan -> MP_Cell_ScheduleSummary::Create( );
-    }
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl
deleted file mode 100644
index 3655001..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl
+++ /dev/null
@@ -1,87 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod Create (
-  MacroPlan owner
-) as MP_Table
-{
-  TextBody:
-  [*
-      // rislai Aug-6-2024 (created)
-    traverse( owner,MP_Table,table,table.Name() = MP_Cell_ScheduleSummary::GetTableName() ){
-      table.Delete(); 
-    }
-    
-    zeroDuration := Duration::Construct( 0,0,0,0 );
-    
-    table := owner.MP_Table( relnew,Name := MP_Cell_ScheduleSummary::GetTableName());
-    
-    startDate := owner.StartOfPlanning().Date();
-    endDate := maxselect( owner,Unit.UnitPeriod.astype( UnitPeriodTime ).Period_MP,period,period.TimeUnit() = Translations::MP_GlobalParameters_Day(),period.EndDate()).EndDate();
-    
-    columns := construct( MP_Columns );
-    columnIndexTree := NamedValueTree::Create();
-    for( i := startDate;i < endDate; i := i + 1){
-      column := table.MP_Column( relnew,CustomDate := i );
-      columnHandle := columnIndexTree.GetHandle( i.AsQUILL() );
-      columns.Add( column );
-      columnIndexTree.Root().AddChild( columnHandle,columns.Size() - 1 );
-    }
-    
-    traverse( owner,Unit,unit,unit.HasCapacityTypeTime() and not unit.HasChild()){
-      // unit.AsEntity().DisplayNameForSelection()
-      row := table.MP_Row( relnew,CustomName := unit.ID(),Index := table.GetRowIndexCache() ); 
-      throughput := guard( sum( unit,Operation,operation,operation.Throughput() ) / unit.Operation( relsize ) , 0 );
-      
-      unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,
-                                        unitPeriodTime.Period_MP().StartDate() >= startDate 
-                                    and unitPeriodTime.Period_MP().EndDate() <= endDate 
-                                    and unitPeriodTime.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day());
-      traverse( unitPeriodTimes,Elements,unitPeriodTime ){
-        columnHandle := columnIndexTree.GetHandle( unitPeriodTime.Period_MP().StartDate().AsQUILL() );
-        columnIndex := guard( columnIndexTree.Root().Child( columnHandle ),null( NamedValue ));
-        if( not isnull( columnIndex )){
-          
-          // 褰揳rrowedAvailableCapacity涓嶄负0锛屽伐浣滄棩 + 1
-          arrowedAvailableCapacity := unitPeriodTime.TotalAvailableCapacity();
-          workDay := ifexpr( arrowedAvailableCapacity <> zeroDuration, 1,0 );
-          
-          if( workDay = 0 ){
-            workDay := ifexpr( unitPeriodTime.ShiftPlan().Outcome() <> "",1,0 );
-          }
-          
-          column := columns.Element( columnIndex.GetValueAsNumber() );
-          
-          dayOfWeek := column.CustomDate().DayOfWeek();
-          workHours := select( unitPeriodTime,ShiftPattern.ShiftDay,shifDay,shifDay.Day_MP().ID() = dayOfWeek );
-          capacity := 0.0;
-          
-          
-          if( not isnull( workHours )){
-            capacity := workDay * throughput * workHours.Capacity().HoursAsReal()
-          }
-          
-          isFirstWeekData := true;
-          
-          if( column.CustomDate() > startDate + 7 ){
-            isFirstWeekData := false; 
-          }
-          
-          row.MP_Cell( relnew,MP_Cell_ScheduleSummary,MP_Column := column,
-                       IsFristWeekData := isFirstWeekData,
-                       ShiftPattern := unitPeriodTime.ShiftPatternName(),
-                       WorkingDay := workDay,
-                       Capacity := capacity,
-                       Output := 0 );
-        }
-      }
-    }
-    
-    
-    traverse( table,MP_Column,column,column.MP_Cell( relsize ) = 0 ){
-      column.Delete(); 
-    }
-    
-    
-    return table;
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl
deleted file mode 100644
index d8b6913..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl
+++ /dev/null
@@ -1,156 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod CreateFullTable (
-  const MacroPlans owners,
-  RecycleBin recycleBin,
-  const Archive archive,
-  const MacroPlan owner
-) as LocalTable
-{
-  TextBody:
-  [*
-    // rislai Aug-7-2024 (created)
-    tables := selectset( owners,Elements.MP_Table,table,table.Name() = MP_Cell_ScheduleSummary::GetTableName() );
-    
-    scheduleSummaryOutputDataIndexTree := NamedValueTree::Create();
-    scheduleSummaryOutputDatas := selectset( archive,ScheduleSummaryOutputLine.ScheduleSummaryOutputData,data,
-                                             exists( tables,Elements.MP_Row,row,row.CustomName() = data.ScheduleSummaryOutputLine().LineName() ));
-    
-    for( i :=0;i < scheduleSummaryOutputDatas.Size();i++ ){
-      scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( i );
-      scheduleSummaryOutputDataKey := scheduleSummaryOutputData.ScheduleSummaryOutputLine().LineName() + scheduleSummaryOutputData.Date().AsQUILL();
-      scheduleSummaryOutputDataHandle := scheduleSummaryOutputDataIndexTree.GetHandle( scheduleSummaryOutputDataKey );
-      scheduleSummaryOutputDataIndexTree.Root().AddChild( scheduleSummaryOutputDataHandle,i );
-    }
-    
-    traverse( recycleBin,LocalTable,table,table.Name() = MP_Cell_ScheduleSummary::GetTableName() ){
-      table.Delete();
-    }
-    localTable := recycleBin.LocalTable( relnew,Name := MP_Cell_ScheduleSummary::GetTableName() );
-    
-    startDate := minselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
-    endDate := maxselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
-    
-    localColumns := construct( LocalColumns );
-    localColumnIndexTree := NamedValueTree::Create();
-    for( i := startDate.StartOfMonth(); i <= endDate.StartOfMonth(); i := i.StartOfNextMonth() ){
-       localColumn := localTable.LocalColumn( relnew,CustomDate := i );
-       localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() );
-       localColumns.Add( localColumn );
-       localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
-    }
-    
-    localRows := construct( LocalRows );
-    localRowIndexTree := NamedValueTree::Create();
-    
-    localCells := construct( LocalCell_ScheduleSummarys );
-    localCellIndexTree := NamedValueTree::Create();
-    
-    units := selectset( owner,Unit,unit,unit.HasCapacityTypeTime() and not unit.HasChild());
-    unitIndexTree := NamedValueTree::Create();
-    for( i := 0 ; i< units.Size() ; i++ ){
-      unit := units.Element( i );
-      unitHandle := unitIndexTree.GetHandle( unit.ID() );
-      unitIndexTree.Root().AddChild( unitHandle,i );
-    }
-    
-    
-    traverse( tables,Elements.MP_Row,row ){
-       rowMacroPlan := row.MP_Table().MacroPlan();
-       localRow := null( LocalRow );
-       {
-         localRowHandle := localRowIndexTree.GetHandle( row.Name() );
-         localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
-         if( isnull( localRowIndex )){
-           localRow := localTable.LocalRow( relnew,CustomName := row.Name(),Index := localTable.GetRowIndexCache() );
-           localRows.Add( localRow );
-           localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
-         }else{
-           localRow := localRows.Element( localRowIndex.GetValueAsNumber());
-         }
-       }
-       traverse( localColumns,Elements,localColumn ){
-          cells := selectset( row,MP_Cell.astype( MP_Cell_ScheduleSummary ),cell,
-                              ifexpr( rowMacroPlan = owner , true , cell.IsFristWeekData()) and
-                              cell.MP_Column().CustomDate() >= localColumn.CustomDate() and 
-                              cell.MP_Column().CustomDate() < localColumn.CustomDate().StartOfNextMonth() );
-          
-          isFuture := owner.StartOfPlanning().Date() < localColumn.CustomDate();
-          
-          output := 0.0;
-          if( isFuture ){
-            unitHandle := unitIndexTree.GetHandle( row.Name() );
-            unitIndex := guard( unitIndexTree.Root().Child( unitHandle ),null( NamedValue ));
-            if( not isnull( unitIndex )){
-              unit := units.Element( unitIndex.GetValueAsNumber() );
-              output := sum( unit,UnitPeriod.astype( UnitPeriodTime ).PeriodTask_MP.NewSupply,np,
-                             np.PeriodTask_MP().UnitPeriod().StartDate() >= localColumn.CustomDate() and 
-                             np.PeriodTask_MP().UnitPeriod().StartDate() < localColumn.CustomDate().StartOfNextMonth() and
-                             np.PeriodTask_MP().UnitPeriod().Period_MP().TimeUnit() = "Day",
-                             np.Quantity() );
-              output := sum( unit,StockingPoint_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,pispip,
-                             pispip.Period_MP().StartDate() >= localColumn.CustomDate() and
-                             pispip.Period_MP().StartDate() < localColumn.CustomDate().StartOfNextMonth() and
-                             pispip.Period_MP().TimeUnit() = "Day",
-                             pispip.NewSupplyProductionQuantity());
-            }
-          }else{
-            scheduleSummaryOutputDataKey := row.Name() + localColumn.CustomDate().AsQUILL();
-            scheduleSummaryOutputDataHandle := scheduleSummaryOutputDataIndexTree.GetHandle( scheduleSummaryOutputDataKey );
-            scheduleSummaryOutputDataIndex := guard( scheduleSummaryOutputDataIndexTree.Root().Child( scheduleSummaryOutputDataHandle ),null( NamedValue ));
-            if( not isnull( scheduleSummaryOutputDataIndex )){
-              scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( scheduleSummaryOutputDataIndex.GetValueAsNumber() );
-              output := scheduleSummaryOutputData.Output();
-            }
-          }
-          
-          workingDay := 0;
-          capacity := 0.0;
-          shiftPatterns := construct( Strings );
-          traverse( cells,Elements,cell ){
-             workingDay := workingDay + cell.WorkingDay();
-             capacity := capacity + cell.Capacity();
-             if( cell.ShiftPattern() <> "" ){
-               shiftPatterns.Add( cell.ShiftPattern() );
-             }
-          }
-          localCell := null( LocalCell_ScheduleSummary );
-          {
-            localCellHandle := localCellIndexTree.GetHandle( row.Name() + localColumn.CustomDate().AsQUILL() );
-            localCellIndex := guard( localCellIndexTree.Root().Child( localCellHandle ),null( NamedValue ));
-            if( isnull( localCellIndex )){
-              localCell := localRow.LocalCell( relnew,LocalCell_ScheduleSummary,LocalColumn := localColumn );
-              localCells.Add( localCell );
-              localCellIndexTree.Root().AddChild( localCellHandle , localCells.Size() - 1 );
-            }else{
-              localCell := localCells.Element( localCellIndex.GetValueAsNumber() ); 
-            }
-          }
-          
-          localCell.ShiftPattern( selectuniquevalues( shiftPatterns,Elements,element,element ).Concatenate( "/" ) );
-          localCell.WorkingDay( localCell.WorkingDay() + workingDay );
-          localCell.Capacity( localCell.Capacity() + capacity );
-          localCell.Output( localCell.Output() + output );
-       }
-    }
-    
-    traverse( localTable,LocalRow.LocalCell.astype( LocalCell_ScheduleSummary ),cell ){
-      cell.Capacity( cell.Capacity() / tables.Size() );
-      cell.Output( cell.Output() / tables.Size() );
-    }
-    
-    //startDate := owner.StartOfPlanning().Date() + 7;
-    //endDate := maxselect( owner,Unit.UnitPeriod.astype( UnitPeriodTime ).Period_MP,period,period.EndDate(),period.TimeUnit() = "Month" ).EndDate();
-    //columns := construct( MP_Columns );
-    //columnIndexTree := NamedValueTree::Create();
-    //for( i := startDate;i < endDate; i := i + 1){
-    //  column := table.MP_Column( relnew,CustomDate := i );
-    //  columnHandle := columnIndexTree.GetHandle( i.AsQUILL() );
-    //  columns.Add( column );
-    //  columnIndexTree.Root().AddChild( columnHandle,columns.Size() - 1 );
-    //}
-    
-    AsyncFlag::Success( recycleBin,MP_Cell_ScheduleSummary::GetTableName() );
-    return localTable;
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl
deleted file mode 100644
index e36e50c..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl
+++ /dev/null
@@ -1,36 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ExportOutputTemplate (
-  Number year
-) as BinaryValue
-{
-  Description: '瀵煎嚭浜у嚭瀵煎叆妯℃澘'
-  TextBody:
-  [*
-    // rislai Aug-6-2024 (created)
-    // Akari May-18-2024 (created)
-    // rislai Jan-19-2024 (created)
-    sheetName := "浜у嚭";
-    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?><table><name>'+ sheetName +'</name>';
-    
-    xmlTemplate := xmlTemplate + "<column><name>浜х嚎</name><type>String</type>";
-    
-    // xmlTemplate := xmlTemplate + '<cell value=" "/>';
-    xmlTemplate := xmlTemplate + "</column>";
-    
-    for( i := 1 ; i <= 12 ; i++ ){
-      xmlTemplate := xmlTemplate + "<column><name>" + Date::Construct( year,i,1 ).Format( "Y/M/D" ) + "</name><type>Number</type>";
-      // xmlTemplate := xmlTemplate + '<cell value=" "/>';
-      xmlTemplate := xmlTemplate + "</column>";
-    }
-    
-    xmlTemplate := xmlTemplate + "</table>";
-    
-    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
-    XLS::SaveTable( tableHandle, OS::TempPath() + "template.xlsx" );
-    file := OSFile::Construct();
-    file.Open( OS::TempPath() + "template.xlsx", "Read", true );
-    data := file.ReadBinary();
-    return data;
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl
deleted file mode 100644
index dbf4dd0..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetTableName () const declarative remote as owning String
-{
-  TextBody:
-  [*
-    // rislai Aug-7-2024 (created)
-    return "璁″垝姹囨�绘姤琛�";
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl
deleted file mode 100644
index fb50032..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl
+++ /dev/null
@@ -1,68 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ImportOutput (
-  Archive archive,
-  const GeneralExcelImportAndExportDataSource outputSource
-)
-{
-  Description: '浜у嚭瀵煎叆'
-  TextBody:
-  [*
-    // rislai Aug-6-2024 (created)
-    outputTable := select( outputSource,GeneralExcelImportAndExportDataTable,table,table.Name() = "浜у嚭");
-    if( isnull( outputTable )){
-      error( "瀵煎叆鐨勬枃浠朵笉姝g‘" ); 
-    }
-    
-    archive.ScheduleSummaryOutputLine( relflush );
-    
-    lines := construct( ScheduleSummaryOutputLines );
-    lineIndexTree := NamedValueTree::Create();
-    
-    traverse( archive,ScheduleSummaryOutputLine,line ){
-      lineHandle := lineIndexTree.GetHandle( line.LineName() );
-      lines.Add( line );
-      lineIndexTree.Root().AddChild( lineHandle,lines.Size() - 1 );
-    }
-    
-    traverse( outputTable,GeneralExcelImportAndExportDataRow,row ){
-      count := 0;
-      line := null( ScheduleSummaryOutputLine );
-      datas := construct( ScheduleSummaryOutputDatas );
-      dataIndexTree := NamedValueTree::Create();
-      traverse( row,GeneralExcelImportAndExportDataCell,cell ){
-        if( count = 0 ){
-          lineName := cell.Value();
-          lineHandle := lineIndexTree.GetHandle( lineName );
-          lineIndex := guard( lineIndexTree.Root().Child( lineHandle ),null( NamedValue ));
-          if( isnull( lineIndex )){
-            line := archive.ScheduleSummaryOutputLine( relnew,LineName := lineName );
-            lines.Add( line );
-            lineIndexTree.Root().AddChild( lineHandle,lines.Size() - 1 );
-          }else{
-            line := lines.Element( lineIndex.GetValueAsNumber() );
-            traverse( line,ScheduleSummaryOutputData,data ){
-              dataHandle := dataIndexTree.GetHandle( data.Date().AsQUILL() );
-              datas.Add( data );
-              dataIndexTree.Root().AddChild( dataHandle,datas.Size() - 1 );
-            }
-          }
-        }else{
-          stringsDate := cell.GeneralExcelImportAndExportDataColumn().Name().Tokenize( "/" );
-          date := guard( Date::Construct( [Number]stringsDate.Element( 0 ),[Number]stringsDate.Element( 1 ),[Number]stringsDate.Element( 2 )),Date::MinDate() );
-          dataHandle := dataIndexTree.GetHandle( date.AsQUILL() );
-          dataIndex := guard( dataIndexTree.Root().Child( dataHandle ),null( NamedValue ));
-          if( isnull( dataIndex )){
-            data := line.ScheduleSummaryOutputData( relnew,Date := date,Output := [Real]cell.Value() );
-            datas.Add( data );
-            dataIndexTree.Root().AddChild( dataHandle,datas.Size() - 1 );
-          }else{
-            data := datas.Element( dataIndex.GetValueAsNumber() );
-            data.Output( [Real]cell.Value() );
-          }
-        }
-        count ++;
-      } 
-    }
-  *]
-}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl
deleted file mode 100644
index ab38c84..0000000
--- a/_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #DomainModel
-TypeSpecialization MP_Cell_ScheduleSummary
-{
-  #keys: '2[412672.1.95254704][412672.1.95254699]'
-  Description: '璁″垝姹囨�绘姤琛�'
-  Parent: MP_Cell
-  StructuredName: 'MP_Cell_ScheduleSummarys'
-}
diff --git a/_Main/BL/Type_LocalColumn/Function_CalcWeekDate.qbl b/_Main/BL/Type_LocalColumn/Function_CalcDisplayDate.qbl
similarity index 88%
rename from _Main/BL/Type_LocalColumn/Function_CalcWeekDate.qbl
rename to _Main/BL/Type_LocalColumn/Function_CalcDisplayDate.qbl
index 81bbd7f..562ceb4 100644
--- a/_Main/BL/Type_LocalColumn/Function_CalcWeekDate.qbl
+++ b/_Main/BL/Type_LocalColumn/Function_CalcDisplayDate.qbl
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Function CalcWeekDate
+Function CalcDisplayDate
 {
   TextBody:
   [*
@@ -15,7 +15,7 @@
       us_locale := Locale::Construct( 'en_us' );
       
       date := this.CustomDate();
-      stringDate := date.Format( "Y: MM / M" + "鏈�" ,us_locale )
+      stringDate := date.Format( "MM / M" + "鏈�" ,us_locale )
       value := stringDate;
     }else{
       value := this.CustomDate().Format( "Y/M2/D2" );
diff --git a/_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl b/_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl
deleted file mode 100644
index e9217ce..0000000
--- a/_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #DomainModel
-Type MP_Cell
-{
-  #keys: '5[412672.1.95254793][412672.1.95254791][0.0.0][412672.1.95254792][412672.1.95254794]'
-  BaseType: Object
-  StructuredName: 'MP_Cells'
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl
deleted file mode 100644
index 9a529ee..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute NewSupply
-{
-  #keys: '3[412672.1.107664674][412672.1.107664673][412672.1.107664675]'
-  ValueType: Real
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl
deleted file mode 100644
index b0278c2..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod AsyncCreateFullTable (
-  const Keys macroPlanMDSIDs,
-  RecycleBin recycleBin,
-  const MacroPlan owner
-)
-{
-  TextBody:
-  [*
-    // Akari Nov-11-2024 (created)
-    AsyncFlag::Running( recycleBin,MP_Cell_AnnualPlanReport::GetTableName() );
-    
-    macroPlans := MDSMacroPlan::Root( macroPlanMDSIDs.Element( 0 ) );
-    for( i := 1; i< macroPlanMDSIDs.Size(); i++ ){
-      mdsid := macroPlanMDSIDs.Element( i );
-      streamMacroPlan := LocalTool::LoadMacroPlan( mdsid );
-      macroPlans.Merge( streamMacroPlan );
-    }
-    
-    macroPlans -> GroupAll() -> MP_Cell_AnnualPlanReport::CreateFullTable( recycleBin,owner );
-  *]
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl
deleted file mode 100644
index f354c87..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod AsyncCreateTables (
-  const Keys macroPlanMDSIDs
-)
-{
-  TextBody:
-  [*
-    // Akari Nov-11-2024 (created)
-    traverse( macroPlanMDSIDs,Elements,mdsid ){
-      streamMacroPlan := LocalTool::LoadMacroPlan( mdsid );
-      streamMacroPlan -> MP_Cell_AnnualPlanReport::Create( );
-    }
-  *]
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl
deleted file mode 100644
index 7cbb030..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl
+++ /dev/null
@@ -1,52 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod Create (
-  MacroPlan owner
-) as MP_Table
-{
-  TextBody:
-  [*
-    // rislai Aug-6-2024 (created)
-    traverse( owner,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() ){
-      table.Delete();
-    }
-    info( owner.MDSMacroPlan().Description() )
-    table := owner.MP_Table( relnew,Name := MP_Cell_AnnualPlanReport::GetTableName());
-    
-    startDate := owner.StartOfPlanning().Date();
-    endDate := startDate.StartOfNextWeek();
-    
-    columns := construct( MP_Columns );
-    columnIndexTree := NamedValueTree::Create();
-    for( i := startDate;i < endDate; i := i + 1){
-      column := table.MP_Column( relnew,CustomDate := i );
-      columnHandle := columnIndexTree.GetHandle( i.AsQUILL() );
-      columns.Add( column );
-      columnIndexTree.Root().AddChild( columnHandle,columns.Size() - 1 );
-    }
-    
-    traverse( owner,Product_MP.ProductInStockingPoint_MP,pisp_mp ){
-      // unit.AsEntity().DisplayNameForSelection()
-      pispippls := selectset( pisp_mp,ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ),pispippl,
-                                        pispippl.Period_MP().StartDate() >= startDate 
-                                    and pispippl.Period_MP().EndDate() <= endDate 
-                                    and pispippl.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day());
-      if( pispippls.Size() <> 0 ){
-        productionLine := pisp_mp.StockingPoint_MP().Unit().Name();
-        row := table.MP_Row( relnew,ProductID := pisp_mp.ProductID() ,Index := table.GetRowIndexCache() );
-        row.ProductionLine( productionLine );
-        row.CustomName( row.ProductID() + " > " + row.ProductionLine() );
-        traverse( pispippls,Elements,pispippl ){
-          columnHandle := columnIndexTree.GetHandle( pispippl.Period_MP().StartDate().AsQUILL() );
-          columnIndex := guard( columnIndexTree.Root().Child( columnHandle ),null( NamedValue ));
-          if( not isnull( columnIndex )){
-            column := columns.Element( columnIndex.GetValueAsNumber() );
-            row.MP_Cell( relnew,MP_Cell_AnnualPlanReport,MP_Column := column ,NewSupply := pispippl.NewSupplyQuantity());
-          }
-        }
-      }
-    }
-    
-    return table;
-  *]
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl
deleted file mode 100644
index f9f9e50..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl
+++ /dev/null
@@ -1,175 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod CreateFullTable (
-  const MacroPlans owners,
-  RecycleBin recycleBin,
-  const MacroPlan owner
-) as LocalTable
-{
-  TextBody:
-  [*
-    // rislai Aug-7-2024 (created)
-    tables := selectset( owners,Elements.MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName());
-    
-    traverse( recycleBin,LocalTable,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() ){
-      table.Delete();
-    }
-    localTable := recycleBin.LocalTable( relnew,Name := MP_Cell_AnnualPlanReport::GetTableName() );
-    
-    startDate := minselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
-    endDate := maxselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
-    
-    localCells := construct( LocalCell_Defaults );
-    localCellIndexTree := NamedValueTree::Create();
-    
-    localRows := construct( LocalRows );
-    localRowIndexTree := NamedValueTree::Create();
-    localColumns := construct( LocalColumns );
-    localColumnIndexTree := NamedValueTree::Create();
-    for( i := startDate; i <= endDate; i := i + 1 ){
-       localColumn := localTable.LocalColumn( relnew,CustomDate := i ,TimeUnit := "Day");
-       localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() );
-       localColumns.Add( localColumn );
-       localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
-    }
-    
-    traverse( tables,Elements.MP_Row,row ){
-       localRowHandle := localRowIndexTree.GetHandle( row.ProductID() + row.ProductionLine() );
-       localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
-       localRow := null( LocalRow );
-       if( isnull( localRowIndex )){
-    
-         localRow := localTable.LocalRow( relnew,CustomName := row.Name(),ProductID := row.ProductID(),ProductionLine := row.ProductionLine(),Index := localTable.GetRowIndexCache() );
-         localRows.Add( localRow );
-         localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
-       }else{
-         localRow := localRows.Element( localRowIndex.GetValueAsNumber() );
-       }
-      
-       traverse( row,MP_Cell.astype( MP_Cell_AnnualPlanReport ),cell ){
-         localColumnHandle := localColumnIndexTree.GetHandle( cell.MP_Column().Date().AsQUILL());
-         localColumnIndex := guard( localColumnIndexTree.Root().Child( localColumnHandle ),null( NamedValue ));
-         if( not isnull( localColumnIndex )){
-           localColumn := localColumns.Element( localColumnIndex.GetValueAsNumber() );
-           
-           localCellHandle := localCellIndexTree.GetHandle( localRow.ProductID() + localRow.ProductionLine() + localColumn.CustomDate().AsQUILL() + localColumn.TimeUnit() );
-           localCellIndex := guard( localCellIndexTree.Root().Child( localCellHandle ),null( NamedValue ));
-           if( isnull( localCellIndex )){
-             localCell := localRow.LocalCell( relnew,LocalCell_Default,LocalColumn := localColumn );
-             localCell.RealValue( cell.NewSupply() );
-             localCells.Add( localCell );
-             localCellIndexTree.Root().AddChild( localCellHandle,localCells.Size() - 1 );
-           }else{
-             localCell := localCells.Element( localCellIndex.GetValueAsNumber() );
-             localCell.RealValue( localCell.RealValue() + cell.NewSupply() );
-           }
-         }
-       }
-    }
-    
-    //owner := maxselect( owners,Elements,element,element.StartOfPlanning() );
-    traverse( owner,Product_MP.ProductInStockingPoint_MP,pisp_mp ){
-      pispippls := selectset( pisp_mp,ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ),pispippl,
-                              pispippl.Period_MP().StartDate() > endDate 
-                              and pispippl.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day());
-    
-      if( pispippls.Size() <> 0 ){
-        localRowHandle := localRowIndexTree.GetHandle( pisp_mp.ProductID() + pisp_mp.StockingPoint_MP().Unit().Name() );
-        localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
-        localRow := null( LocalRow );
-        if( isnull( localRowIndex )){
-          localRow := localTable.LocalRow( relnew,CustomName := pisp_mp.Name(),ProductID := pisp_mp.ProductID(),ProductionLine := pisp_mp.StockingPoint_MP().Unit().Name(),Index := localTable.GetRowIndexCache() );
-          localRows.Add( localRow );
-          localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
-        }else{
-          localRow := localRows.Element( localRowIndex.GetValueAsNumber() );
-        }
-        traverse( pispippls,Elements,pispippl ){
-          columnHandle := localColumnIndexTree.GetHandle( pispippl.Period_MP().StartDate().AsQUILL() );
-          columnIndex := guard( localColumnIndexTree.Root().Child( columnHandle ),null( NamedValue ));
-          column := null( LocalColumn );
-          if( not isnull( columnIndex )){
-            column := localColumns.Element( columnIndex.GetValueAsNumber() );
-          }else{
-            column := localTable.LocalColumn( relnew,CustomDate := pispippl.Period_MP().StartDate() ,TimeUnit := "Day");
-            localColumns.Add( column );
-            localColumnIndexTree.Root().AddChild( columnHandle,localColumns.Size() - 1 );
-          }
-          
-          localCellHandle := localCellIndexTree.GetHandle( localRow.ProductID() + localRow.ProductionLine() + column.CustomDate().AsQUILL() + column.TimeUnit() );
-          localCellIndex := guard( localCellIndexTree.Root().Child( localCellHandle ),null( NamedValue ));
-          if( isnull( localCellIndex )){
-            localCell := localRow.LocalCell( relnew,LocalCell_Default,LocalColumn := column );
-            localCell.RealValue( pispippl.NewSupplyQuantity() );
-            localCells.Add( localCell );
-            localCellIndexTree.Root().AddChild( localCellHandle,localCells.Size() - 1 );
-          }else{
-            localCell := localCells.Element( localCellIndex.GetValueAsNumber() );
-            localCell.RealValue( localCell.RealValue() + pispippl.NewSupplyQuantity() );
-          }
-        }
-      }
-    }
-    
-    endDate := maxselect( localColumns,Elements,column,column.CustomDate() ).CustomDate();
-    for( i := startDate.StartOfWeek(); i <= endDate.StartOfNextWeek(); i := i.StartOfNextWeek() ){
-       localColumn := localTable.LocalColumn( relnew,CustomDate := i ,TimeUnit := "Week");
-       localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() + "Week" );
-       localColumns.Add( localColumn );
-       localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
-    }
-    for( i := startDate.StartOfMonth(); i <= endDate.StartOfNextMonth(); i := i.StartOfNextMonth() ){
-       localColumn := localTable.LocalColumn( relnew,CustomDate := i ,TimeUnit := "Month");
-       localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() + "Month" );
-       localColumns.Add( localColumn );
-       localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
-    }
-    
-    traverse( localTable,LocalRow,row ){
-      traverse( localTable,LocalColumn,column,column.TimeUnit() = "Week" ){
-        value := sum( row,LocalCell.astype( LocalCell_Default ),cell,
-                      cell.LocalColumn().TimeUnit() = "Day" and 
-                      cell.LocalColumn().CustomDate() >= column.CustomDate() and 
-                      cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(),cell.RealValue());
-        localCell := row.LocalCell( relnew,LocalCell_Default,LocalColumn := column,RealValue := value );
-        
-        localCellHandle := localCellIndexTree.GetHandle( row.ProductID() + row.ProductionLine() + column.CustomDate().AsQUILL() + column.TimeUnit() );
-        localCells.Add( localCell );
-        localCellIndexTree.Root().AddChild( localCellHandle,localCells.Size() - 1 );
-      }
-      traverse( localTable,LocalColumn,column,column.TimeUnit() = "Month" ){
-        value := sum( row,LocalCell.astype( LocalCell_Default ),cell,
-                      cell.LocalColumn().TimeUnit() = "Day" and 
-                      cell.LocalColumn().CustomDate() >= column.CustomDate() and 
-                      cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(),cell.RealValue());
-        localCell := row.LocalCell( relnew,LocalCell_Default,LocalColumn := column,RealValue := value );
-        
-        localCellHandle := localCellIndexTree.GetHandle( row.ProductID() + row.ProductionLine() + column.CustomDate().AsQUILL() + column.TimeUnit() );
-        localCells.Add( localCell );
-        localCellIndexTree.Root().AddChild( localCellHandle,localCells.Size() - 1 );
-      }
-    }
-    
-    traverse( localTable,LocalColumn,column,column.LocalCell( relsize ) = 0 ){
-      column.Delete();
-    }
-    
-    traverse( localTable,LocalRow,row,row.LocalCell( relsize ) = 0 ){
-      row.Delete();
-    }
-    
-    //traverse( localTable,LocalRow,row ){
-    //  traverse( localTable,LocalColumn,column ){
-    //    localCellHandle := localCellIndexTree.GetHandle( row.ProductID() + row.StockingPointID() + column.CustomDate().AsQUILL() + column.TimeUnit() );
-    //    localCellIndex := guard( localCellIndexTree.Root().Child( localCellHandle ),null( NamedValue ));
-    //    if( isnull( localCellIndex )){
-    //      localCell := row.LocalCell( relnew,LocalCell_Default,LocalColumn := column,RealValue := 0.0 );
-    //      localCells.Add( localCell );
-    //      localCellIndexTree.Root().AddChild( localCellHandle,localCells.Size() - 1 );
-    //    }
-    //  } 
-    //}
-    AsyncFlag::Success( recycleBin,MP_Cell_AnnualPlanReport::GetTableName() );
-    return localTable;
-  *]
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl
deleted file mode 100644
index fdd18d6..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetTableName () const declarative remote as owning String
-{
-  TextBody:
-  [*
-    // rislai Aug-7-2024 (created)
-    return "鍏ㄥ勾璁″垝鎶ヨ〃";
-  *]
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl
deleted file mode 100644
index d096ec9..0000000
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #DomainModel
-TypeSpecialization MP_Cell_AnnualPlanReport
-{
-  #keys: '2[412672.1.107700065][412672.1.107700060]'
-  Description: '鍏ㄥ勾璁″垝鎶ヨ〃'
-  Parent: MP_Cell
-  StructuredName: 'MP_Cell_AnnualPlanReports'
-}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl
index bedb215..14a6613 100644
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl
+++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl
@@ -14,8 +14,6 @@
     }
     localTable := recycleBin.LocalTable( relnew,Name := ArchiveCell_AnnualPlanReport::GetTableName() );
     
-    info( "111" );
-    
     tables := selectset( archive,ArchiveTable,table,table.Name() = ArchiveCell_AnnualPlanReport::GetTableName());
     
     startDate := minselect( tables,Elements.ArchiveColumn,column,column.CustomDate() ).CustomDate();
diff --git a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl
index 8409edd..0dae889 100644
--- a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl
+++ b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl
@@ -58,7 +58,7 @@
           
           
           if( not isnull( workHours )){
-            capacity := workDay * throughput * workHours.Capacity().HoursAsReal()
+            capacity := workDay * throughput //* workHours.Capacity().HoursAsReal()
           }
           
           isFirstWeekData := true;
diff --git a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
index 2e2a00e..d0a3c05 100644
--- a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
+++ b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
@@ -10,7 +10,7 @@
   [*
     // rislai Aug-7-2024 (created)
     tables := selectset( archive,ArchiveTable,table,table.Name() = ArchiveCell_ScheduleSummary::GetTableName() );
-    info( isnull( archive ))
+    
     scheduleSummaryOutputDataIndexTree := NamedValueTree::Create();
     scheduleSummaryOutputDatas := selectset( archive,ScheduleSummaryOutputLine.ScheduleSummaryOutputData,data,
                                              exists( tables,Elements.ArchiveRow,row,row.CustomName() = data.ScheduleSummaryOutputLine().LineName() ));
diff --git a/_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl b/_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl
deleted file mode 100644
index 54a618e..0000000
--- a/_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute CustomDate
-{
-  #keys: '3[412672.1.95254881][412672.1.95254880][412672.1.95254882]'
-  ValueType: Date
-}
diff --git a/_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl b/_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl
deleted file mode 100644
index 40520aa..0000000
--- a/_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute CustomIndex
-{
-  #keys: '3[412672.1.95254872][412672.1.95254871][412672.1.95254873]'
-  ValueType: Number
-}
diff --git a/_Main/BL/Type_MP_Column/Attribute_Date.qbl b/_Main/BL/Type_MP_Column/Attribute_Date.qbl
deleted file mode 100644
index 315134a..0000000
--- a/_Main/BL/Type_MP_Column/Attribute_Date.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Date
-{
-  #keys: '3[412672.1.95254869][412672.1.95254868][412672.1.95254870]'
-  ValueType: Date
-}
diff --git a/_Main/BL/Type_MP_Column/Attribute_Index.qbl b/_Main/BL/Type_MP_Column/Attribute_Index.qbl
deleted file mode 100644
index a0ef648..0000000
--- a/_Main/BL/Type_MP_Column/Attribute_Index.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Index
-{
-  #keys: '3[412672.1.95254875][412672.1.95254874][412672.1.95254876]'
-  ValueType: Number
-}
diff --git a/_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl b/_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl
deleted file mode 100644
index 11d8db1..0000000
--- a/_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute IsAttrbuteColumn
-{
-  #keys: '3[412672.1.95254866][412672.1.95254865][412672.1.95254867]'
-  ValueType: Boolean
-}
diff --git a/_Main/BL/Type_MP_Column/Attribute_Name.qbl b/_Main/BL/Type_MP_Column/Attribute_Name.qbl
deleted file mode 100644
index 5df6cb5..0000000
--- a/_Main/BL/Type_MP_Column/Attribute_Name.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Name
-{
-  #keys: '3[412672.1.95254878][412672.1.95254877][412672.1.95254879]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl b/_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl
deleted file mode 100644
index d26aba3..0000000
--- a/_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  ISOValue: '-999'
-  TargetAttribute: CustomIndex
-}
diff --git a/_Main/BL/Type_MP_Column/DefaultValue_Name.qbl b/_Main/BL/Type_MP_Column/DefaultValue_Name.qbl
deleted file mode 100644
index 86c3d59..0000000
--- a/_Main/BL/Type_MP_Column/DefaultValue_Name.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: Name
-}
diff --git a/_Main/BL/Type_MP_Column/Function_CalcDate.qbl b/_Main/BL/Type_MP_Column/Function_CalcDate.qbl
deleted file mode 100644
index 2f59aa9..0000000
--- a/_Main/BL/Type_MP_Column/Function_CalcDate.qbl
+++ /dev/null
@@ -1,13 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Function CalcDate
-{
-  TextBody:
-  [*
-    // rislai Jun-28-2024 (created)
-    if( not this.IsAttrbuteColumn() ){
-      names := this.Name().Tokenize( "/" );
-      this.Date( ifexpr( this.CustomDate() <> Date::MinDate(),this.CustomDate(),guard( Date::Construct( [Number]names.Element( 0 ),[Number]names.Element( 1 ),[Number]names.Element( 2 )),Date::MinDate() )));
-    }
-  *]
-}
diff --git a/_Main/BL/Type_MP_Column/Function_CalcIndex.qbl b/_Main/BL/Type_MP_Column/Function_CalcIndex.qbl
deleted file mode 100644
index 2b7712e..0000000
--- a/_Main/BL/Type_MP_Column/Function_CalcIndex.qbl
+++ /dev/null
@@ -1,29 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Function CalcIndex
-{
-  TextBody:
-  [*
-    // rislai Jul-24-2024 (created)
-    year := this.Date().Year();
-    month := this.Date().Month();
-    day := this.Date().Day();
-    
-    index := [String]year;
-    if( month < 10 ){
-      index := index + "0" + [String]month; 
-    }else{
-      index := index + [String]month; 
-    }
-    if( day < 10 ){
-      index := index + "0" + [String]day; 
-    }else{
-      index := index + [String]day; 
-    }
-    
-    
-    value := ifexpr( this.CustomIndex() = -999,[Number]index,this.CustomIndex() );
-    
-    this.Index( value );
-  *]
-}
diff --git a/_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl b/_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl
deleted file mode 100644
index 57b1ea9..0000000
--- a/_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #DomainModel
-Type MP_Column
-{
-  #keys: '5[412672.1.95254788][412672.1.95254786][0.0.0][412672.1.95254787][412672.1.95254789]'
-  BaseType: Object
-  StructuredName: 'MP_Columns'
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_CustomName.qbl b/_Main/BL/Type_MP_Row/Attribute_CustomName.qbl
deleted file mode 100644
index 9c69130..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_CustomName.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute CustomName
-{
-  #keys: '3[412672.1.95254889][412672.1.95254888][412672.1.95254890]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_Index.qbl b/_Main/BL/Type_MP_Row/Attribute_Index.qbl
deleted file mode 100644
index 4590e93..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_Index.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Index
-{
-  #keys: '3[412672.1.95254892][412672.1.95254891][412672.1.95254893]'
-  ValueType: Number
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_Name.qbl b/_Main/BL/Type_MP_Row/Attribute_Name.qbl
deleted file mode 100644
index 2412123..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_Name.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Name
-{
-  #keys: '3[412672.1.95254895][412672.1.95254894][412672.1.95254896]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_ProductID.qbl b/_Main/BL/Type_MP_Row/Attribute_ProductID.qbl
deleted file mode 100644
index 1aec101..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_ProductID.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ProductID
-{
-  #keys: '3[412672.1.107684682][412672.1.107684681][412672.1.107684683]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_ProductionLine.qbl b/_Main/BL/Type_MP_Row/Attribute_ProductionLine.qbl
deleted file mode 100644
index 4b9390f..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_ProductionLine.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ProductionLine
-{
-  #keys: '3[414996.1.142908749][414996.1.142908748][414996.1.142908750]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_Remark.qbl b/_Main/BL/Type_MP_Row/Attribute_Remark.qbl
deleted file mode 100644
index 2b44249..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_Remark.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Remark
-{
-  #keys: '3[412672.1.95254886][412672.1.95254885][412672.1.95254887]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl b/_Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl
deleted file mode 100644
index d274c47..0000000
--- a/_Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute StockingPointID
-{
-  #keys: '3[412672.1.107684692][412672.1.107684691][412672.1.107684693]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl b/_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl
deleted file mode 100644
index ccf1251..0000000
--- a/_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: CustomName
-}
diff --git a/_Main/BL/Type_MP_Row/DefaultValue_Name.qbl b/_Main/BL/Type_MP_Row/DefaultValue_Name.qbl
deleted file mode 100644
index 86c3d59..0000000
--- a/_Main/BL/Type_MP_Row/DefaultValue_Name.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: Name
-}
diff --git a/_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl b/_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl
deleted file mode 100644
index b7df04c..0000000
--- a/_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: Remark
-}
diff --git a/_Main/BL/Type_MP_Row/Function_CalcName.qbl b/_Main/BL/Type_MP_Row/Function_CalcName.qbl
deleted file mode 100644
index c3cbb48..0000000
--- a/_Main/BL/Type_MP_Row/Function_CalcName.qbl
+++ /dev/null
@@ -1,13 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Function CalcName
-{
-  TextBody:
-  [*
-    // rislai Jun-22-2024 (created)
-    
-    value := ifexpr( this.CustomName() = "",[String]this.Index(),this.CustomName() );
-    
-    this.Name( value );
-  *]
-}
diff --git a/_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl b/_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl
deleted file mode 100644
index 5963ba9..0000000
--- a/_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #DomainModel
-Type MP_Row
-{
-  #keys: '5[412672.1.95254783][412672.1.95254781][0.0.0][412672.1.95254782][412672.1.95254784]'
-  BaseType: Object
-  StructuredName: 'MP_Rows'
-}
diff --git a/_Main/BL/Type_MP_Table/Attribute_CreateTime.qbl b/_Main/BL/Type_MP_Table/Attribute_CreateTime.qbl
deleted file mode 100644
index 28ea804..0000000
--- a/_Main/BL/Type_MP_Table/Attribute_CreateTime.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute CreateTime
-{
-  #keys: '3[414996.1.213444720][414996.1.213444719][414996.1.213444721]'
-  ValueType: DateTime
-}
diff --git a/_Main/BL/Type_MP_Table/Attribute_Name.qbl b/_Main/BL/Type_MP_Table/Attribute_Name.qbl
deleted file mode 100644
index 0014815..0000000
--- a/_Main/BL/Type_MP_Table/Attribute_Name.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Name
-{
-  #keys: '3[412672.1.95254900][412672.1.95254899][412672.1.95254901]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl b/_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl
deleted file mode 100644
index 521d84b..0000000
--- a/_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute RowIndexCache
-{
-  #keys: '3[412672.1.95254903][412672.1.95254902][412672.1.95254904]'
-  ValueType: Number
-}
diff --git a/_Main/BL/Type_MP_Table/DefaultValue_Name.qbl b/_Main/BL/Type_MP_Table/DefaultValue_Name.qbl
deleted file mode 100644
index 86c3d59..0000000
--- a/_Main/BL/Type_MP_Table/DefaultValue_Name.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: Name
-}
diff --git a/_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl b/_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl
deleted file mode 100644
index eccdbc7..0000000
--- a/_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl
+++ /dev/null
@@ -1,12 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method GetRowIndexCache () declarative as Number
-{
-  TextBody:
-  [*
-    // rislai Jun-20-2024 (created)
-    this.RowIndexCache( this.RowIndexCache() + 1 );
-    
-    return this.RowIndexCache();
-  *]
-}
diff --git a/_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl b/_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl
deleted file mode 100644
index f363aef..0000000
--- a/_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: #DomainModel
-Type MP_Table
-{
-  #keys: '5[412672.1.95254778][412672.1.95254776][0.0.0][412672.1.95254777][412672.1.95254779]'
-  BaseType: Object
-  OnCreate: 'this.CreateTime( DateTime::Now() );'
-  StructuredName: 'MP_Tables'
-}
diff --git a/_Main/BL/Type_Test/StaticMethod_TestMacroPlan.qbl b/_Main/BL/Type_Test/StaticMethod_TestMacroPlan.qbl
index 842eead..958f07f 100644
--- a/_Main/BL/Type_Test/StaticMethod_TestMacroPlan.qbl
+++ b/_Main/BL/Type_Test/StaticMethod_TestMacroPlan.qbl
@@ -8,9 +8,5 @@
   [*
     // Akari Nov-12-2024 (created)
     info( macroPlan.MDSMacroPlan().Description() );
-    
-    traverse( macroPlan,MP_Table,table ){
-      info( table.Name() ); 
-    }
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct\043661.def"
similarity index 68%
rename from _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def
rename to "_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct\043661.def"
index cb83f7d..7fc5e05 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct\043661.def"
@@ -1,27 +1,27 @@
 Quintiq file version 2.0
-Component pnlContent661
+Component pProduct
 {
   #keys: '[414996.1.206961946]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component ddlProductInStockingPoint
+    Component ddlProduct
     {
       #keys: '[414996.1.206961947]'
       BaseType: 'WebDropDownList'
-      Databinding: 'ProductInStockingPoint_MP'
+      Databinding: 'Product_MP'
       Children:
       [
-        Component deContent404
+        Component deProduct
         {
           #keys: '[414996.1.206961948]'
           BaseType: 'WebDataExtractor'
           Properties:
           [
-            DataType: 'StockingPoint_MP'
-            Source: 'dhSelectStockingPoint'
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
             Taborder: 0
-            Transformation: 'ProductInStockingPoint_MP'
+            Transformation: 'Product_MP'
           ]
         }
       ]
@@ -33,7 +33,7 @@
         Taborder: 0
       ]
     }
-    Component cbAllProductInStockingPoint
+    Component cbAllProduct
     {
       #keys: '[414996.1.206961949]'
       BaseType: 'WebCheckbox'
@@ -47,6 +47,6 @@
   [
     FixedSize: true
     Orientation: 'horizontal'
-    Taborder: 2
+    Taborder: 1
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def
index fabf479..5873a57 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def
@@ -12,7 +12,7 @@
       Databinding: 'StockingPoint_MP'
       Children:
       [
-        Component deContent
+        Component deStockingPoint
         {
           #keys: '[414996.1.206961944]'
           BaseType: 'WebDataExtractor'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def
index 3eaa956..9ad2d3e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def
@@ -12,21 +12,11 @@
       Properties:
       [
         Label: '閿佸畾鏈熻嚦锛�'
-        Taborder: 3
+        Taborder: 2
       ]
     }
     #child: pStockingPoint
-    #child: pnlContent661
-    Component dhSelectStockingPoint
-    {
-      #keys: '[414996.1.206961950]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'StockingPoint_MP'
-      Properties:
-      [
-        Taborder: 1
-      ]
-    }
+    #child: pProduct
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def
new file mode 100644
index 0000000..5a2ca14
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: pProduct/cbAllProduct
+Response OnChanged () id:Response_pProduct_cbAllProduct_OnChanged
+{
+  #keys: '[414996.1.206961937]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      if( this.Checked() ){
+        ddlProduct.Enabled( false,"" ); 
+      }else{
+        ddlProduct.Enabled( true,"" );
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def
similarity index 72%
rename from _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def
index 2c3001e..6aa42a8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: pnlContent661/ddlProductInStockingPoint
+#parent: pProduct/ddlProduct
 Response OnSelectionChanged (
   ProductInStockingPoint_MP selection
-) id:Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged
+) id:Response_pProduct_ddlProduct_OnSelectionChanged
 {
   #keys: '[414996.1.207063206]'
   CanBindMultiple: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def
deleted file mode 100644
index 660d3f1..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: pStockingPoint/ddlStockingPoint
-Response OnSelectionChanged (
-  StockingPoint_MP selection
-) id:Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged
-{
-  #keys: '[414996.1.206961939]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      dhSelectStockingPoint.Data( selection );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def
index 7fd1b52..ae1e8b9 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def
@@ -10,7 +10,7 @@
     Body:
     [*
       if( cbAllStockingPoint.Checked() ){
-        if( cbAllProductInStockingPoint.Checked() ){
+        if( cbAllProduct.Checked() ){
           // 閿佸畾鍏ㄩ儴浜у搧
           traverse( MacroPlan,Product_MP,product ){
             traverse( product,ProductInStockingPoint_MP,productInStockingPoint ){
@@ -19,13 +19,13 @@
           }
         }else{
           // 閿佸畾鎸囧畾浜у搧涓嬬殑鍏ㄩ儴搴撳瓨鐐�
-          product := ddlProductInStockingPoint.Data().Product_MP();
+          product := ddlProduct.Data();
           traverse( product,ProductInStockingPoint_MP,productInStockingPoint){
             LockPeriod::Create( productInStockingPoint,dsLockDate.Date() );
           }
         }
       }else{
-        if( cbAllProductInStockingPoint.Checked() ){
+        if( cbAllProduct.Checked() ){
           // 閿佸畾鎸囧畾搴撳瓨鐐逛笅鐨勫叏閮ㄤ骇鍝�
           stockingPoint := ddlStockingPoint.Data();
           traverse( stockingPoint,ProductInStockingPoint_MP,productInStockingPoint ){
@@ -33,7 +33,10 @@
           }
         }else{
           // 閿佸畾鎸囧畾搴撳瓨鐐圭殑鎸囧畾浜у搧
-          LockPeriod::Create( ddlProductInStockingPoint.Data(),dsLockDate.Date() );
+          productInStockingPoint := select( ddlProduct.Data(),ProductInStockingPoint_MP,pisp,pisp.StockingPoint_MP() = ddlStockingPoint.Data() );
+          if( not isnull( productInStockingPoint )){
+            LockPeriod::Create( productInStockingPoint,dsLockDate.Date() );
+          }
         } 
       }
       Form.Close();
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def
deleted file mode 100644
index b0901ff..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def
+++ /dev/null
@@ -1,20 +0,0 @@
-Quintiq file version 2.0
-#parent: pnlContent661/cbAllProductInStockingPoint
-Response OnChanged () id:Response_pnlContent661_cbAllProductInStockingPoint_OnChanged
-{
-  #keys: '[414996.1.206961937]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      if( this.Checked() ){
-        ddlProductInStockingPoint.Enabled( false,"" ); 
-      }else{
-        ddlProductInStockingPoint.Enabled( true,"" );
-      }
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
index e76af1c..b395887 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
@@ -11,10 +11,10 @@
     currentuser  := QuintiqUser::CurrentUser().DisplayName();
     isactive     := ifexpr( rbgVersionFlag.BoundValue() = "true", true, false );
     if( efInterfacename.Text() = Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() ){//瀹㈡埛闇�姹�
-      CustomerDemandPPAIDS::GenerateData( InterfaceDataset, MacroPlan, currentuser );
+    //  CustomerDemandPPAIDS::GenerateData( InterfaceDataset, MacroPlan, currentuser );
     }
     if( efInterfacename.Text() = Translations::InterfaceDataset_AssemblyOnlinePlanPPPsPush_Name()){//瑁呴厤涓婄嚎
-      AssemblyOnlinePlanPPPSPush::GenerateData( InterfaceDataset, MacroPlan, currentuser );
+    //  AssemblyOnlinePlanPPPSPush::GenerateData( InterfaceDataset, MacroPlan, currentuser );
     }
     
     WebMessageBox::Success( "鎺ㄩ�佹垚鍔燂紒" );
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll\043720.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll.def
similarity index 73%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll\043720.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll.def
index 38e1838..4177c3c 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll\043720.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlAll id:pnlAll_720
+Component pnlAll
 {
-  #keys: '[415136.0.1255982465]'
+  #keys: '[415136.0.1302693096]'
   BaseType: 'WebPanel'
   Children:
   [
     Component lblAll
     {
-      #keys: '[415136.0.1255982466]'
+      #keys: '[415136.0.1302693097]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component cbAll
     {
-      #keys: '[415136.0.1255982467]'
+      #keys: '[415136.0.1302693098]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll\043720.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAllCC.def
similarity index 66%
copy from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll\043720.def"
copy to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAllCC.def
index 38e1838..b18a006 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll\043720.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAllCC.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlAll id:pnlAll_720
+Component pnlAllCC
 {
-  #keys: '[415136.0.1255982465]'
+  #keys: '[415136.0.1303133156]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component lblAll
+    Component lblAllCC
     {
-      #keys: '[415136.0.1255982466]'
+      #keys: '[415136.0.1303133157]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component cbAll
+    Component cbAllCC
     {
-      #keys: '[415136.0.1255982467]'
+      #keys: '[415136.0.1303133158]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan\043679.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan.def
similarity index 72%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan\043679.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan.def
index 738092a..30de5f2 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan\043679.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlAssembleOnlinePlan id:pnlAssembleOnlinePlan_679
+Component pnlAssembleOnlinePlan
 {
-  #keys: '[415136.0.1255982426]'
+  #keys: '[415136.0.1302693049]'
   BaseType: 'WebPanel'
   Children:
   [
     Component lblAssembleOnlinePlan
     {
-      #keys: '[415136.0.1255982427]'
+      #keys: '[415136.0.1302693050]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component cbAssembleOnlinePlan
     {
-      #keys: '[415136.0.1255982428]'
+      #keys: '[415136.0.1302693051]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan\043679.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlanCC.def
similarity index 60%
copy from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan\043679.def"
copy to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlanCC.def
index 738092a..86cb94d 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan\043679.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlanCC.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlAssembleOnlinePlan id:pnlAssembleOnlinePlan_679
+Component pnlAssembleOnlinePlanCC
 {
-  #keys: '[415136.0.1255982426]'
+  #keys: '[415136.0.1303133150]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component lblAssembleOnlinePlan
+    Component lblAssembleOnlinePlanCC
     {
-      #keys: '[415136.0.1255982427]'
+      #keys: '[415136.0.1303133151]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component cbAssembleOnlinePlan
+    Component cbAssembleOnlinePlanCC
     {
-      #keys: '[415136.0.1255982428]'
+      #keys: '[415136.0.1303133152]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def
index ab5e221..f73928e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def
@@ -5,15 +5,12 @@
   BaseType: 'WebPanel'
   Children:
   [
-    #child: pnlCustomDemand_462
-    #child: pnlOfflinePlan_520
-    #child: pnlAssembleOnlinePlan_679
-    #child: pnlInventoryPlan_119
-    #child: pnlAll_720
-    #child: pnlShiftPlan_780
+    #child: pnlContentDL
+    #child: pnlContentCC
   ]
   Properties:
   [
+    Orientation: 'tab'
     Padding: 'true'
     Taborder: 0
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentCC.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentCC.def
new file mode 100644
index 0000000..e26ea92
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentCC.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+Component pnlContentCC
+{
+  #keys: '[415136.0.1303133140]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: pnlCustomDemandCC
+    #child: pnlOfflinePlanCC
+    #child: pnlShiftPlanCC
+    #child: pnlAssembleOnlinePlanCC
+    #child: pnlInventoryPlanCC
+    #child: pnlAllCC
+  ]
+  Properties:
+  [
+    Taborder: 1
+    Title: '闀挎槬宸ュ巶'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentDL.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentDL.def
new file mode 100644
index 0000000..e4136d0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContentDL.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+Component pnlContentDL
+{
+  #keys: '[415136.0.1302530440]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: pnlCustomDemand
+    #child: pnlOfflinePlan
+    #child: pnlShiftPlan
+    #child: pnlAssembleOnlinePlan
+    #child: pnlInventoryPlan
+    #child: pnlAll
+  ]
+  Properties:
+  [
+    Taborder: 0
+    Title: '澶ц繛宸ュ巶'
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand\043462.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand.def
similarity index 72%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand\043462.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand.def
index 4255081..dcfc7e3 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand\043462.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlCustomDemand id:pnlCustomDemand_462
+Component pnlCustomDemand
 {
-  #keys: '[415136.0.1255981813]'
+  #keys: '[415136.0.1302692983]'
   BaseType: 'WebPanel'
   Children:
   [
     Component lblCustomDemand
     {
-      #keys: '[415136.0.1255981814]'
+      #keys: '[415136.0.1302692984]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component cbCustomDemand
     {
-      #keys: '[415136.0.1255981815]'
+      #keys: '[415136.0.1302692985]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand\043462.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemandCC.def
similarity index 62%
copy from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand\043462.def"
copy to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemandCC.def
index 4255081..99f61ba 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand\043462.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemandCC.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlCustomDemand id:pnlCustomDemand_462
+Component pnlCustomDemandCC
 {
-  #keys: '[415136.0.1255981813]'
+  #keys: '[415136.0.1303133141]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component lblCustomDemand
+    Component lblCustomDemandCC
     {
-      #keys: '[415136.0.1255981814]'
+      #keys: '[415136.0.1303133142]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component cbCustomDemand
+    Component cbCustomDemandCC
     {
-      #keys: '[415136.0.1255981815]'
+      #keys: '[415136.0.1303133143]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan\043119.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan.def
similarity index 72%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan\043119.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan.def
index fde59fb..35d3866 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan\043119.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlInventoryPlan id:pnlInventoryPlan_119
+Component pnlInventoryPlan
 {
-  #keys: '[415136.0.1255982447]'
+  #keys: '[415136.0.1302693071]'
   BaseType: 'WebPanel'
   Children:
   [
     Component lblInventoryPlan
     {
-      #keys: '[415136.0.1255982448]'
+      #keys: '[415136.0.1302693072]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component cbInventoryPlan
     {
-      #keys: '[415136.0.1255982449]'
+      #keys: '[415136.0.1302693073]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan\043119.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlanCC.def
similarity index 62%
copy from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan\043119.def"
copy to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlanCC.def
index fde59fb..0ae8b90 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan\043119.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlanCC.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlInventoryPlan id:pnlInventoryPlan_119
+Component pnlInventoryPlanCC
 {
-  #keys: '[415136.0.1255982447]'
+  #keys: '[415136.0.1303133153]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component lblInventoryPlan
+    Component lblInventoryPlanCC
     {
-      #keys: '[415136.0.1255982448]'
+      #keys: '[415136.0.1303133154]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component cbInventoryPlan
+    Component cbInventoryPlanCC
     {
-      #keys: '[415136.0.1255982449]'
+      #keys: '[415136.0.1303133155]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan\043520.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan.def
similarity index 72%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan\043520.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan.def
index c14d76e..fd102cf 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan\043520.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlOfflinePlan id:pnlOfflinePlan_520
+Component pnlOfflinePlan
 {
-  #keys: '[415136.0.1255981829]'
+  #keys: '[415136.0.1302693005]'
   BaseType: 'WebPanel'
   Children:
   [
     Component lblOfflinePlan
     {
-      #keys: '[415136.0.1255981830]'
+      #keys: '[415136.0.1302693006]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component cbOfflinePlan
     {
-      #keys: '[415136.0.1255981831]'
+      #keys: '[415136.0.1302693007]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan\043520.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlanCC.def
similarity index 62%
copy from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan\043520.def"
copy to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlanCC.def
index c14d76e..0f7da5f 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan\043520.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlanCC.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlOfflinePlan id:pnlOfflinePlan_520
+Component pnlOfflinePlanCC
 {
-  #keys: '[415136.0.1255981829]'
+  #keys: '[415136.0.1303133144]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component lblOfflinePlan
+    Component lblOfflinePlanCC
     {
-      #keys: '[415136.0.1255981830]'
+      #keys: '[415136.0.1303133145]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component cbOfflinePlan
+    Component cbOfflinePlanCC
     {
-      #keys: '[415136.0.1255981831]'
+      #keys: '[415136.0.1303133146]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan\043780.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan.def
similarity index 73%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan\043780.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan.def
index ff7f552..c145222 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan\043780.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlShiftPlan id:pnlShiftPlan_780
+Component pnlShiftPlan
 {
-  #keys: '[415136.0.1255982410]'
+  #keys: '[415136.0.1302693027]'
   BaseType: 'WebPanel'
   Children:
   [
     Component lblShiftPlan
     {
-      #keys: '[415136.0.1255982411]'
+      #keys: '[415136.0.1302693028]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component cbShiftPlan
     {
-      #keys: '[415136.0.1255982412]'
+      #keys: '[415136.0.1302693029]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan\043780.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlanCC.def
similarity index 63%
copy from "_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan\043780.def"
copy to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlanCC.def
index ff7f552..54a20a0 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan\043780.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlanCC.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pnlShiftPlan id:pnlShiftPlan_780
+Component pnlShiftPlanCC
 {
-  #keys: '[415136.0.1255982410]'
+  #keys: '[415136.0.1303133147]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component lblShiftPlan
+    Component lblShiftPlanCC
     {
-      #keys: '[415136.0.1255982411]'
+      #keys: '[415136.0.1303133148]'
       BaseType: 'WebLabel'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component cbShiftPlan
+    Component cbShiftPlanCC
     {
-      #keys: '[415136.0.1255982412]'
+      #keys: '[415136.0.1303133149]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
index e0d5650..40d6323 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
@@ -7,34 +7,67 @@
   [*
     this.ApplyChanges();
     
-      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() );
-      }
+    showlabel       := '鏄惁鍙戦��';
+    dlplannames     := construct( Strings );
+    ccplannames     := construct( Strings );
+    if( cbCustomDemand.Checked() ){
+      dlplannames.Add( lblCustomDemand.Label() );
+    }
+    if( cbCustomDemandCC.Checked() ){
+      ccplannames.Add( lblCustomDemandCC.Label() );
+    }
+    if( cbOfflinePlan.Checked() ){
+      dlplannames.Add( lblOfflinePlan.Label() );
+      ArchiveCell_ScheduleSummary::Create( MacroPlan,Archive );
+    }
+    if( cbOfflinePlanCC.Checked() ){
+      ccplannames.Add( lblOfflinePlanCC.Label() );
+      ArchiveCell_ScheduleSummary::Create( MacroPlan,Archive );
+    }
+    if( cbShiftPlan.Checked() ){
+      dlplannames.Add( lblShiftPlan.Label() );
+      ArchiveCell_ScheduleSummary::Create( MacroPlan,Archive );
+    }
+    if( cbShiftPlanCC.Checked() ){
+      ccplannames.Add( lblShiftPlanCC.Label() );
+      ArchiveCell_ScheduleSummary::Create( MacroPlan,Archive );
+    }
+    if( cbAssembleOnlinePlan.Checked() ){
+      dlplannames.Add( lblAssembleOnlinePlan.Label() );
+    }
+    if( cbAssembleOnlinePlanCC.Checked() ){
+      ccplannames.Add( lblAssembleOnlinePlanCC.Label() );
+    }
+    if( cbInventoryPlan.Checked() ){
+      dlplannames.Add( lblInventoryPlan.Label() );
+    }
+    if( cbInventoryPlanCC.Checked() ){
+      ccplannames.Add( lblInventoryPlanCC.Label() );
+    }
     
-      showlabel := showlabel.Concat( plannames.Concatenate( "銆�" ) ).Concat( '锛�' );
-    currentuser  := QuintiqUser::CurrentUser().DisplayName();
-      if( WebMessageBox::Question( this, showlabel, 'OK|Cancel' ) = 0 ){
-        InterfaceDataset.PublishPlanReportData( MacroPlan, cbCustomDemand.Checked()
+    dlshowname      := '澶ц繛宸ュ巶鐨�';
+    if( dlplannames.Size() > 0 ){
+      showlabel     := showlabel.Concat( dlshowname.Concat( dlplannames.Concatenate( "銆�" ) ) ).Concat( "锛�");
+    }
+    ccshowname      := '闀挎槬宸ュ巶鐨�';
+    if( ccplannames.Size() > 0 ){
+      showlabel     := showlabel.Concat( ccshowname.Concat( ccplannames.Concatenate( "銆�" ) ) ).Concat( "锛�");
+    }
+    showlabel       := showlabel.Concat( '銆�' );
+    currentuser     := QuintiqUser::CurrentUser().DisplayName();
+    if( WebMessageBox::Question( this, showlabel, 'OK|Cancel' ) = 0 ){
+      InterfaceDataset.PublishPlanReportData( MacroPlan, cbCustomDemand.Checked()
+                                              , cbCustomDemandCC.Checked()
                                               , cbOfflinePlan.Checked()
+                                              , cbOfflinePlanCC.Checked()
                                               , cbShiftPlan.Checked()
+                                              , cbShiftPlanCC.Checked()
                                               , cbAssembleOnlinePlan.Checked()
+                                              , cbAssembleOnlinePlanCC.Checked()
                                               , cbInventoryPlan.Checked()
+                                              , cbInventoryPlanCC.Checked()
                                                 , currentuser );
-      }
+    }
     
     this.Close();
   *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def
index 18496fa..3a13905 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def
@@ -6,7 +6,11 @@
   DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
-    return not ( not cbCustomDemand.Checked() and not cbOfflinePlan.Checked() and not cbShiftPlan.Checked() and not cbAssembleOnlinePlan.Checked() and not cbInventoryPlan.Checked() );
+    return not ( not cbCustomDemand.Checked() and not cbCustomDemandCC.Checked()
+                  and not cbOfflinePlan.Checked() and not cbOfflinePlanCC.Checked()
+                  and not cbShiftPlan.Checked() and not cbShiftPlanCC.Checked()
+                  and not cbAssembleOnlinePlan.Checked() and not cbAssembleOnlinePlanCC.Checked()
+                  and not cbInventoryPlan.Checked() and not cbInventoryPlanCC.Checked() );
   *]
   QuillAction
   {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAllCC_cbAllCC_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAllCC_cbAllCC_OnChanged.def
new file mode 100644
index 0000000..4fbf347
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAllCC_cbAllCC_OnChanged.def
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: pnlAllCC/cbAllCC
+Response OnChanged () id:Response_pnlAllCC_cbAllCC_OnChanged
+{
+  #keys: '[415136.0.1303133139]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      if( this.Checked() ){
+        cbCustomDemandCC.Checked( true );
+        cbOfflinePlanCC.Checked( true );
+        cbShiftPlanCC.Checked( true );
+        cbAssembleOnlinePlanCC.Checked( true );
+        cbInventoryPlanCC.Checked( true );
+      }else{
+        cbCustomDemandCC.Checked( false );
+        cbOfflinePlanCC.Checked( false );
+        cbShiftPlanCC.Checked( false );
+        cbAssembleOnlinePlanCC.Checked( false );
+        cbInventoryPlanCC.Checked( false );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_720_cbAll_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_cbAll_OnChanged.def
similarity index 84%
rename from _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_720_cbAll_OnChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_cbAll_OnChanged.def
index 6b953b1..ae7a4ec 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_720_cbAll_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_cbAll_OnChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: pnlAll_720/cbAll
-Response OnChanged () id:Response_pnlAll_720_cbAll_OnChanged
+#parent: pnlAll/cbAll
+Response OnChanged () id:Response_pnlAll_cbAll_OnChanged
 {
-  #keys: '[415136.0.1255982464]'
+  #keys: '[415136.0.1302693095]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
   QuillAction
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\04394.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\04394.def"
index cad0150..015a766 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\04394.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\04394.def"
@@ -29,7 +29,7 @@
           Properties:
           [
             DataType: 'RecycleBin'
-            FixedFilter: 'object.Name() = MP_Cell_AnnualPlanReport::GetTableName()'
+            FixedFilter: 'object.Name() = ArchiveCell_AnnualPlanReport::GetTableName()'
             Source: 'RecycleBin'
             Taborder: 0
             Transformation: 'ExportXMLManager'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pRibbonUp.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pRibbonUp.def
index a6fd06a..c4a5e86 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pRibbonUp.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pRibbonUp.def
@@ -5,17 +5,6 @@
   BaseType: 'WebPanel'
   Children:
   [
-    Component bCreateBaseData
-    {
-      #keys: '[414996.1.230731110]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'C_CLAMP'
-        Label: 'Create base data'
-        Taborder: 0
-      ]
-    }
     Component bCreateFullTable
     {
       #keys: '[414996.1.230731111]'
@@ -24,7 +13,7 @@
       [
         Image: 'C_CLAMP'
         Label: 'Create full table'
-        Taborder: 1
+        Taborder: 0
       ]
     }
     Component rbgTimeUnit
@@ -37,7 +26,7 @@
         ButtonLabels: 'Day;Week;Month'
         ButtonValues: 'Day;Week;Month'
         Orientation: 'horizontal'
-        Taborder: 2
+        Taborder: 1
       ]
     }
     Component dhTimeUnit
@@ -47,7 +36,7 @@
       Databinding: 'String*'
       Properties:
       [
-        Taborder: 3
+        Taborder: 2
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_94_dhXMLDataListener_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_94_dhXMLDataListener_OnDataChanged.def
index 0fc59da..5123d2a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_94_dhXMLDataListener_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_94_dhXMLDataListener_OnDataChanged.def
@@ -11,7 +11,7 @@
     [*
       if( not isnull( this.Data() )){
         binaryValue := dhXMLDataListener.Data( ).Export();
-        Application.Download( MP_Cell_AnnualPlanReport::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
+        Application.Download( ArchiveCell_AnnualPlanReport::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
         dhXMLDataListener.Data( ).Delete();
       }
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pRibbonUp_bCreateBaseData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pRibbonUp_bCreateBaseData_OnClick.def
deleted file mode 100644
index 0e880c4..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pRibbonUp_bCreateBaseData_OnClick.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: pRibbonUp/bCreateBaseData
-Response OnClick () id:Response_pRibbonUp_bCreateBaseData_OnClick
-{
-  #keys: '[414996.1.230731041]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebButton_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      macroPlanMDSIDs := ApplicationMacroPlanner.GetMacroPlanMDSIDsByName( "璁″垝姹囨��" );
-      
-      ArchiveCell_AnnualPlanReport::AsyncCreateTables( macroPlanMDSIDs,Archive );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def
index d817212..ab29ac8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def
@@ -29,7 +29,7 @@
           Properties:
           [
             DataType: 'RecycleBin'
-            FixedFilter: 'object.Name() = MP_Cell_ScheduleSummary::GetTableName()'
+            FixedFilter: 'object.Name() = ArchiveCell_ScheduleSummary::GetTableName()'
             Source: 'RecycleBin'
             Taborder: 0
             Transformation: 'ExportXMLManager'
@@ -44,6 +44,6 @@
   ]
   Properties:
   [
-    Taborder: 10
+    Taborder: 9
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbon.def
similarity index 90%
rename from _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbon.def
index 194a7ce..ceb4752 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbon.def
@@ -1,5 +1,5 @@
 Quintiq file version 2.0
-Component PanelRibbon
+Component pRibbon
 {
   #keys: '[412672.1.94122014]'
   BaseType: 'WebPanel'
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbonUp\04388.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbonUp\04388.def"
index 8b88861..967dabd 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbonUp\04388.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pRibbonUp\04388.def"
@@ -14,7 +14,7 @@
         Checked: true
         Description: '鐝'
         Label: '鐝'
-        Taborder: 2
+        Taborder: 1
       ]
     }
     Component cbWorkday
@@ -26,7 +26,7 @@
         Checked: true
         Description: '宸ヤ綔鏃�'
         Label: '宸ヤ綔鏃�'
-        Taborder: 3
+        Taborder: 2
       ]
     }
     Component cbCapacity
@@ -38,7 +38,7 @@
         Checked: true
         Description: '浜ц兘'
         Label: '浜ц兘'
-        Taborder: 4
+        Taborder: 3
       ]
     }
     Component cbOutput
@@ -50,7 +50,7 @@
         Checked: true
         Description: '浜ч噺'
         Label: '浜ч噺'
-        Taborder: 5
+        Taborder: 4
       ]
     }
     Component dsStartDate id:dsStartDate_438
@@ -60,7 +60,7 @@
       Properties:
       [
         Label: 'Start Date'
-        Taborder: 6
+        Taborder: 5
       ]
     }
     Component dhStartDate id:dhStartDate_891
@@ -70,7 +70,7 @@
       Databinding: 'Date*'
       Properties:
       [
-        Taborder: 7
+        Taborder: 6
       ]
     }
     Component dsEndDate id:dsEndDate_963
@@ -81,7 +81,7 @@
       [
         Date: 9999-12-31
         Label: 'End Date'
-        Taborder: 8
+        Taborder: 7
       ]
     }
     Component dhEndDate id:dhEndDate_384
@@ -91,7 +91,7 @@
       Databinding: 'Date*'
       Properties:
       [
-        Taborder: 9
+        Taborder: 8
       ]
     }
     Component bCreateFullTable
@@ -102,17 +102,6 @@
       [
         Image: 'C_CLAMP'
         Label: 'Create full table'
-        Taborder: 1
-      ]
-    }
-    Component bCreateBaseData
-    {
-      #keys: '[414996.1.104721297]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'C_CLAMP'
-        Label: 'Create base data'
         Taborder: 0
       ]
     }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pExport_dhXMLDataListener_OnDataChanged\043141.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pExport_dhXMLDataListener_OnDataChanged\043141.def"
index 3bf8450..c91451f 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pExport_dhXMLDataListener_OnDataChanged\043141.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pExport_dhXMLDataListener_OnDataChanged\043141.def"
@@ -11,7 +11,7 @@
     [*
       if( not isnull( this.Data() )){
         binaryValue := dhXMLDataListener.Data( ).Export();
-        Application.Download( MP_Cell_ScheduleSummary::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
+        Application.Download( ArchiveCell_ScheduleSummary::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
         dhXMLDataListener.Data( ).Delete();
       }
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bExportTemplate_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bExportTemplate_OnClick.def
index 3ccd7f9..7ac8992 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bExportTemplate_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bExportTemplate_OnClick.def
@@ -9,7 +9,7 @@
   {
     Body:
     [*
-      data := MP_Cell_ScheduleSummary::ExportOutputTemplate( Date::ActualDate().Year() );
+      data := ArchiveCell_ScheduleSummary::ExportOutputTemplate( Date::ActualDate().Year() );
       
       Application.Download( "浜у嚭瀵煎叆妯℃澘.xlsx",data.AsBinaryData() );
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bImportOutput_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bImportOutput_OnClick.def
index 6aa27cf..324cfd2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bImportOutput_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonDown_478_bImportOutput_OnClick.def
@@ -27,7 +27,7 @@
           generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
           generalExcelImportAndExportDataSource.ReadStructure();
           
-          MP_Cell_ScheduleSummary::ImportOutput( Archive,generalExcelImportAndExportDataSource);
+          ArchiveCell_ScheduleSummary::ImportOutput( Archive,generalExcelImportAndExportDataSource);
           
           // 鍚庣画鍒犻櫎
           generalExcelImportAndExportDataSource.Delete();
@@ -39,7 +39,7 @@
       }
       
       macroPlans := ApplicationMacroPlanner.GetLoadedMacroPlans();
-      table := MP_Cell_ScheduleSummary::CreateFullTable( macroPlans,RecycleBin ,Archive, MacroPlan );
+      table := ArchiveCell_ScheduleSummary::CreateFullTable( Archive ,RecycleBin, MacroPlan );
       
       dhScheduleSummaryTable.Data( table );
     *]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonUp_88_bCreateBaseData_OnClick\04388.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonUp_88_bCreateBaseData_OnClick\04388.def"
deleted file mode 100644
index d1c7481..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_pRibbonUp_88_bCreateBaseData_OnClick\04388.def"
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: pRibbonUp_88/bCreateBaseData
-Response OnClick () id:Response_pRibbonUp_88_bCreateBaseData_OnClick_88
-{
-  #keys: '[414996.1.104721296]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebButton_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      macroPlanMDSIDs := ApplicationMacroPlanner.GetMacroPlanMDSIDsByName( "璁″垝姹囨��" );
-      ArchiveCell_ScheduleSummary::AsyncCreateTables( macroPlanMDSIDs,Archive );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def
index 90f122a..79722f5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def
@@ -7,7 +7,7 @@
   BaseType: 'WebForm'
   Children:
   [
-    #child: PanelRibbon
+    #child: pRibbon
     #child: pScheduleSummary
   ]
   Properties:

--
Gitblit v1.9.3