From 7e778ef1beff527e71cc2db99c914ce2330f1edd Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期四, 14 十一月 2024 11:44:12 +0800
Subject: [PATCH] 删除一些不必要的代码,添加发布存档数据功能(全年计划报表和计划汇总报表)

---
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl                                       |    2 
 _Main/BL/Type_Test/StaticMethod_TestMacroPlan.qbl                                                             |    4 --
 _Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def                                       |    5 ++
 _Main/BL/Type_LocalCell_ScheduleSummary#859/StaticMethod_AsyncExport.qbl                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pRibbonUp.def                            |   17 +-------
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def |    2 
 _Main/BL/Type_LocalColumn/Function_CalcDisplayDate.qbl                                                        |    4 +-
 /dev/null                                                                                                     |   17 --------
 _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                         |    2 
 _Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl                                                  |    2 
 _Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl                                      |    2 -
 14 files changed, 25 insertions(+), 65 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_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_DialogPublishPlan/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
index e0d5650..9969228 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
@@ -14,9 +14,13 @@
       }
       if( cbOfflinePlan.Checked() ){
         plannames.Add( lblOfflinePlan.Label() );
+        
+        ArchiveCell_AnnualPlanReport::Create( MacroPlan,Archive );
       }
       if( cbShiftPlan.Checked() ){
         plannames.Add( lblShiftPlan.Label() );
+        
+        ArchiveCell_ScheduleSummary::Create( MacroPlan,Archive );
       }
       if( cbAssembleOnlinePlan.Checked() ){
         plannames.Add( lblAssembleOnlinePlan.Label() );
@@ -36,6 +40,7 @@
                                                 , currentuser );
       }
     
+    
     this.Close();
   *]
 }
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_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..3d3f8b4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_pExport.def
@@ -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_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