From e3230655411dda675ce50a2daf54fd5cffacb883 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期四, 21 十一月 2024 18:23:12 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev

---
 _Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl                                                                       |   62 ++--
 _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def                                              |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_ListInterfaceShippingData.def                                 |   42 ++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuShippingData_OnClick.def   |   16 +
 _Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl                                                                     |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listContextMenuInterfaceShippingData.def                      |   10 
 _Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl                                                                 |    3 
 _Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl                                                                           |    4 
 _Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl                                                                 |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def                                         |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelTimeUnit.def                                              |    1 
 _Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl                                                                  |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def |    8 
 _Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl                                                                     |   62 ++--
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def                                     |    1 
 _Main/BL/Type_InterfaceDataset/StaticMethod_PushPlanInventoryData.qbl                                                                   |    2 
 _Main/BL/Type_OfflinePlanArchiveVersion/Method_Generate.qbl                                                                             |   10 
 _Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl                                                                    |    6 
 _Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl                                                                       |   62 ++--
 _Main/UI/MacroPlannerWebApp/Views/Interface_shippping_data_view.vw                                                                      |  101 ++++++
 _Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetColumnByTimeUnit.qbl                                                                  |    2 
 _Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_InitiateSearch.qbl                                                               |    4 
 _Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl                                                                             |   44 +-
 _Main/BL/Type_LockPeriod/Method_Enable.qbl                                                                                              |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonMS64_OnClick.def                            |   21 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def                                        |   94 ------
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation#653.def                                    |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelSAP.def                                              |   34 ++
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged#150.def  |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit#720.def                                            |    1 
 _Main/BL/Type_CustomerDemandIDS/Method_GetColumnByTimeUnit.qbl                                                                          |    2 
 _Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_InitiateSearch.qbl                                                                 |    4 
 _Main/Sys/Repr/Global/NewOfflinePlanCell.qrp                                                                                            |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def                                            |    2 
 _Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl                                                                                     |   46 +-
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def    |    8 
 _Main/BL/Type_InventoryPlanArchiveVersion/Method_Generate.qbl                                                                           |   47 +-
 _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def      |    8 
 /dev/null                                                                                                                               |   23 -
 _Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl                                                                      |    2 
 _Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl                                                                               |   62 ++--
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listActionBarPageInterfaceShippingData.def                    |   10 
 _Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl                                                                         |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/_ROOT_Component_FormInterfaceShippingData.def                           |   17 +
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl                                                                   |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonPIR_OnClick.def                             |    8 
 _Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl                                                                    |    4 
 _Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl                                                                |    2 
 48 files changed, 506 insertions(+), 370 deletions(-)

diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
index feef4a0..9621261 100644
--- a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
@@ -37,7 +37,7 @@
     pir                    := owner.AOnlineAndMOfflinePlanPIR( relnew, ZPPPSCode := OS::GenerateGUIDAsString(), Werk := AOnlineAndMOfflinePlanPIR::GetWerk( werk ), Version := version, StartDate := startdate, EndDate := enddate );
     loginfo.AOnlineAndMOfflinePlanPIR( relinsert, pir );
     traverse( owner, AssemblyOnlinePlanVersion, verison, not verison.IsShow() ){
-      traverse( verison, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() >= startdate and column.StartDate() <= enddate ){
+      traverse( verison, Column, column, column.StartDate() >= startdate and column.StartDate() <= enddate ){//column.TimeUnit() = Translations::MP_GlobalParameters_Day() and 
         traverse( column, Cell, cell, ( werk = 'All' or cell.Row().Unit().FindString( werk, 0 ) > -1 ) ){
           quantityrow      := cell.Row();
           rowwerk          := ifexpr( quantityrow.ProductionLine().FindString( "CC", 0 ) > -1, AOnlineAndMOfflinePlanPIR::GetWerk( FinancialProductionReport::GetDefaultCCUnit() ), AOnlineAndMOfflinePlanPIR::GetWerk( FinancialProductionReport::GetDefaultDLUnit() ) );
@@ -51,7 +51,7 @@
     }
     
     traverse( owner, OfflinePlanArchiveVersion, table, not table.IsShow() ){
-      traverse( table, Column, column, column.StartDate() >= startdate and column.StartDate() <= enddate ){
+      traverse( table, Column, column, column.StartDate() >= startdate and column.StartDate() <= enddate ){//column.TimeUnit() = Translations::MP_GlobalParameters_Day() and 
         traverse( column, Cell, cell, ( werk = 'All' or cell.Row().Unit().FindString( werk, 0 ) > -1 )
                   and ( cell.Row().ProductionLine() <> 'DL_MOMO' or cell.Row().ProductionLine() <> 'CC_MOMO' ) ){
           row              := cell.Row();
@@ -68,7 +68,7 @@
       }
     }
     traverse( productids, Elements, e ){
-      for( date        := startdate.StartOfWeek(); date <= enddate; date := ( date + Duration::Days( 1 ) ).Date() ){
+      for( date        := startdate.StartOfYear(); date <= enddate; date := ( date + Duration::Days( 1 ) ).Date() ){
         if( not exists( pir, PIRData, pirdata, pirdata.Product() = e and pirdata.PlanningDate() = date ) ){
           if( werk = 'All' ){
             pir.PIRData( relnew, Product := e, PlanningDate := date, PlanningQty := 0, Werk := '8200' );
diff --git a/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_TimeUnit.qbl b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_TimeUnit.qbl
deleted file mode 100644
index 64a3f83..0000000
--- a/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1184120146][415136.0.1184120145][415136.0.1184120147]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
index f2d8561..d087705 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
@@ -29,7 +29,7 @@
                                                                  , Last                      := true
                                                                   );
     traverse( interfaceDataset, AssemblyOnlinePlanVersion, verison, not verison.IsShow() ){
-      traverse( verison, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
+      traverse( verison, Column, column ){//, column.TimeUnit() = Translations::MP_GlobalParameters_Day()
         traverse( column, Cell, cell ){
           row              := cell.Row();
           if( ( iscc and row.Unit() = FinancialProductionReport::GetDefaultCCUnit() ) or ( isdl and row.Unit() = FinancialProductionReport::GetDefaultDLUnit() ) ){
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl
index 56fd503..d453edb 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl
@@ -10,28 +10,28 @@
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
     info( '-----------Search start-------' );
-    table                   := selectobject( this,InterfaceDataset.AssemblyOnlinePlanVersion, report, not report.IsShow() );
-    //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
-    aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.TimeUnit() = search.TimeUnit() and aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );
-    this.Clear( aopcolumns );
-    traverse( table, Row, row, ( units.Size() = 0 or units.Find( row.ProductionLine() ) > -1 ) and ( products.Size() = 0 or products.Find( row.Name() ) > -1 )  ){
-      
-      showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Unit() = search.Unit() );
-      if( isnull( showrow ) ){
-        showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), ProductionLine := row.ProductionLine(), Type := row.Type(), Unit := search.Unit() );
-      }
-      traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
-        column              := selectobject( this, Column, column, column.ColumnName() = cell.Column().ColumnName() );
-        if( not isnull( column ) ){
-          showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
-          if( isnull( showcell ) ){
-            showcell        := column.Cell( relnew, Quantity := 0 );
-            showrow.Cell( relinsert, showcell );
-          }
-          showcell.Quantity( cell.Quantity() + showcell.Quantity() );
-        }
-      }
-    }
+    //table                   := selectobject( this,InterfaceDataset.AssemblyOnlinePlanVersion, report, not report.IsShow() );
+    ////娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
+    //aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.TimeUnit() = search.TimeUnit() and aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );
+    //this.Clear( aopcolumns );
+    //traverse( table, Row, row, ( units.Size() = 0 or units.Find( row.ProductionLine() ) > -1 ) and ( products.Size() = 0 or products.Find( row.Name() ) > -1 )  ){
+    //  
+    //  showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Unit() = search.Unit() );
+    //  if( isnull( showrow ) ){
+    //    showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), ProductionLine := row.ProductionLine(), Type := row.Type(), Unit := search.Unit() );
+    //  }
+    //  traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
+    //    column              := selectobject( this, Column, column, column.ColumnName() = cell.Column().ColumnName() );
+    //    if( not isnull( column ) ){
+    //      showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
+    //      if( isnull( showcell ) ){
+    //        showcell        := column.Cell( relnew, Quantity := 0 );
+    //        showrow.Cell( relinsert, showcell );
+    //      }
+    //      showcell.Quantity( cell.Quantity() + showcell.Quantity() );
+    //    }
+    //  }
+    //}
     info( '-----------Search end-------' );
   *]
 }
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl
index de6c29b..cd5c268 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl
@@ -8,40 +8,40 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
-    timeunit              := guard( this.InterfaceDataset().AssemblyOnlinePlanVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
-    weekstart             := periods.Element( 0 );
-    
-    monthstart            := periods.Element( 0 );
+    //timeunit              := guard( this.InterfaceDataset().AssemblyOnlinePlanVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
+    //weekstart             := periods.Element( 0 );
+    //
+    //monthstart            := periods.Element( 0 );
     traverse( periods, Elements, periodtime ){
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
         periodname        := periodtime.Format( "M2/D2/Y" );
         
-        this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
-        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
-        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
-          weekstart       := periodtime;
-        }
-        if( periodtime = weekstart ){
-          weekperiodname  := weekstart.Format( "M2/D2/Y" );
-          this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
-          
-        }
-        weekstart         := periodtime.StartOfNextWeek();
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
-        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
-          monthstart      := periodtime;
-        }
-        if( periodtime = monthstart ){
-          monthperiodname := monthstart.Format( "M2/D2/Y" );
-          enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
-          this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
-          
-        }
-        monthstart        := periodtime.StartOfNextMonth();
-      }
+        this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime );//, TimeUnit := Translations::MP_GlobalParameters_Day()
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
+    //    weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
+    //    if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
+    //      weekstart       := periodtime;
+    //    }
+    //    if( periodtime = weekstart ){
+    //      weekperiodname  := weekstart.Format( "M2/D2/Y" );
+    //      this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
+    //      
+    //    }
+    //    weekstart         := periodtime.StartOfNextWeek();
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
+    //    if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
+    //      monthstart      := periodtime;
+    //    }
+    //    if( periodtime = monthstart ){
+    //      monthperiodname := monthstart.Format( "M2/D2/Y" );
+    //      enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
+    //      this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
+    //      
+    //    }
+    //    monthstart        := periodtime.StartOfNextMonth();
+    //  }
     }
   *]
 }
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetColumnByTimeUnit.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetColumnByTimeUnit.qbl
index 1b4a90e..d4403d5 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetColumnByTimeUnit.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetColumnByTimeUnit.qbl
@@ -9,7 +9,7 @@
   [*
     // 鐢勫叞楦� Aug-7-2024 (created)
     
-    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
+    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period );// and column.TimeUnit() = unit
     
     return column;
   *]
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl
index 59cd18e..ea0a1a8 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl
@@ -10,12 +10,11 @@
     allunit                   := FinancialProductionReport::GetDefaultAllUnit();
     search                    := owner.AssemblyOnlinePlanVersionSearch();
     if( isnull( owner.AssemblyOnlinePlanVersionSearch() ) ){
-      search                  := owner.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+      search                  := owner.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
     }else{
       search                  := owner.AssemblyOnlinePlanVersionSearch();
       search.Product( allunit );
       search.ProductionLine( allunit );
-      search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
       search.Unit( allunit );
       search.StartDate( Date::MinDate() );
       search.EndDate( Date::MaxDate() );
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl
index aebe9c1..4f1ee1c 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl
@@ -11,7 +11,7 @@
     interface.AssemblyOnlinePlanVersion( relflush );
     allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
     name                   := AssemblyOnlinePlanVersion::GetDefaultName();//search                 := 
-    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
     table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
     if( isnull( table ) ){
       table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
@@ -20,7 +20,7 @@
     if( isnull( showtable ) ){
       showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
     }
-    aopcolumns             := selectuniquevalues(  macroPlan, NewAssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.StartDate() ), aopcolumn.StartDate() );
+    aopcolumns             := selectuniquevalues(  macroPlan, NewAssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.StartDate() = aopcolumn.StartDate() ), aopcolumn.StartDate() );//, column.TimeUnit() = Translations::MP_GlobalParameters_Day()
     if( aopcolumns.Size() > 0 ){
       table.GenerateColumn( aopcolumns, false );
     }
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionSearch/Attribute_TimeUnit.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionSearch/Attribute_TimeUnit.qbl
deleted file mode 100644
index dcece4b..0000000
--- a/_Main/BL/Type_AssemblyOnlinePlanVersionSearch/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1184120200][415136.0.1184120199][415136.0.1184120201]'
-  Description: '鏃ユ湡绫诲瀷'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionSearch/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionSearch/DefaultValue_TimeUnit.qbl
deleted file mode 100644
index e29979e..0000000
--- a/_Main/BL/Type_AssemblyOnlinePlanVersionSearch/DefaultValue_TimeUnit.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: TimeUnit
-}
diff --git a/_Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl b/_Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl
index 454d677..7efecf8 100644
--- a/_Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl
+++ b/_Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl
@@ -9,29 +9,29 @@
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
     info( '-----------Search start-------' );
-    table                   := selectobject( this,InterfaceDataset.CustomerDemandIDS, report, not report.IsShow() );
-    //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
-    idscolumns              := selectuniquevalues(  table, Column, idscolumn, idscolumn.TimeUnit() = search.TimeUnit() and idscolumn.StartDate() >= search.StartDate() and idscolumn.StartDate() <= search.EndDate(), idscolumn.StartDate() );
-    this.Clear( idscolumns );
-    traverse( table, Row, row, ( search.Unit() = FinancialProductionReport::GetDefaultAllUnit() or row.Factory() = search.Unit() ) 
-              and ( products.Size() = 0 or products.Find( row.Name() ) > -1 ) ){
-      
-      showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Factory() = search.Unit() );
-      if( isnull( showrow ) ){
-        showrow             := this.Row( relnew, Name := row.Name(), Factory := search.Unit() );
-      }
-      traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
-        column              := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
-        if( not isnull( column ) ){
-          showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
-          if( isnull( showcell ) ){
-            showcell        := column.Cell( relnew, Value := '' );
-            showrow.Cell( relinsert, showcell );
-          }
-          showcell.Value( [String]( [Number]cell.Value() + [Number]showcell.Value() ) );
-        }
-      }
-    }
+    //table                   := selectobject( this,InterfaceDataset.CustomerDemandIDS, report, not report.IsShow() );
+    ////娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
+    //idscolumns              := selectuniquevalues(  table, Column, idscolumn, idscolumn.TimeUnit() = search.TimeUnit() and idscolumn.StartDate() >= search.StartDate() and idscolumn.StartDate() <= search.EndDate(), idscolumn.StartDate() );
+    //this.Clear( idscolumns );
+    //traverse( table, Row, row, ( search.Unit() = FinancialProductionReport::GetDefaultAllUnit() or row.Factory() = search.Unit() ) 
+    //          and ( products.Size() = 0 or products.Find( row.Name() ) > -1 ) ){
+    //  
+    //  showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Factory() = search.Unit() );
+    //  if( isnull( showrow ) ){
+    //    showrow             := this.Row( relnew, Name := row.Name(), Factory := search.Unit() );
+    //  }
+    //  traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
+    //    column              := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
+    //    if( not isnull( column ) ){
+    //      showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
+    //      if( isnull( showcell ) ){
+    //        showcell        := column.Cell( relnew, Value := '' );
+    //        showrow.Cell( relinsert, showcell );
+    //      }
+    //      showcell.Value( [String]( [Number]cell.Value() + [Number]showcell.Value() ) );
+    //    }
+    //  }
+    //}
     info( '-----------Search end-------' );
   *]
 }
diff --git a/_Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl b/_Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl
index b9691a7..d13f894 100644
--- a/_Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl
@@ -8,40 +8,40 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
-    timeunit              := guard( this.InterfaceDataset().CustomerDemandIDSSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
-    weekstart             := periods.Element( 0 );
-    
-    monthstart            := periods.Element( 0 );
+    //timeunit              := guard( this.InterfaceDataset().CustomerDemandIDSSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
+    //weekstart             := periods.Element( 0 );
+    //
+    //monthstart            := periods.Element( 0 );
     traverse( periods, Elements, periodtime ){
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
         periodname        := periodtime.Format( "M2/D2/Y" );
         
-        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
-        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
-        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
-          weekstart       := periodtime;
-        }
-        if( periodtime = weekstart ){
-          weekperiodname  := weekstart.Format( "M2/D2/Y" );
-          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
-          
-        }
-        weekstart         := periodtime.StartOfNextWeek();
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
-        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
-          monthstart        := periodtime;
-        }
-        if( periodtime = monthstart ){
-          monthperiodname   := monthstart.Format( "M2/D2/Y" );
-          enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
-          this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
-          
-        }
-        monthstart        := periodtime.StartOfNextMonth();
-      }
+        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime );//, TimeUnit := Translations::MP_GlobalParameters_Day()
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
+    //    weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
+    //    if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
+    //      weekstart       := periodtime;
+    //    }
+    //    if( periodtime = weekstart ){
+    //      weekperiodname  := weekstart.Format( "M2/D2/Y" );
+    //      this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
+    //      
+    //    }
+    //    weekstart         := periodtime.StartOfNextWeek();
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
+    //    if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
+    //      monthstart        := periodtime;
+    //    }
+    //    if( periodtime = monthstart ){
+    //      monthperiodname   := monthstart.Format( "M2/D2/Y" );
+    //      enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
+    //      this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
+    //      
+    //    }
+    //    monthstart        := periodtime.StartOfNextMonth();
+    //  }
     }
   *]
 }
diff --git a/_Main/BL/Type_CustomerDemandIDS/Method_GetColumnByTimeUnit.qbl b/_Main/BL/Type_CustomerDemandIDS/Method_GetColumnByTimeUnit.qbl
index 7bac4fd..1e5383b 100644
--- a/_Main/BL/Type_CustomerDemandIDS/Method_GetColumnByTimeUnit.qbl
+++ b/_Main/BL/Type_CustomerDemandIDS/Method_GetColumnByTimeUnit.qbl
@@ -10,7 +10,7 @@
     // 鐢勫叞楦� Aug-7-2024 (created)
     //periodname := period.Format( "M2/D2/Y" );
     
-    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
+    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period );// and column.TimeUnit() = unit
     
     return column;
   *]
diff --git a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl
index 2de24a2..7c524e6 100644
--- a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl
@@ -11,11 +11,11 @@
   TextBody:
   [*
     // 鐢勫叞楦� Aug-20-2024 (created)
-    interface.CustomerDemandIDS( relflush );
+    //interface.CustomerDemandIDS( relflush );
     //interface.CustomerDemandIDSSearch( relflush );
     info( '-------------------------Start---------------------');
     allunit               := CustomerDemandIDS::GetDefaultAllUnit();
-    search                := interface.CustomerDemandIDSSearch( relnew, Product := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit );
+    search                := interface.CustomerDemandIDSSearch( relnew, Product := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), Unit := allunit );
     name                  := '瀹㈡埛闇�姹�';
     idstable              := selectobject( interface, CustomerDemandIDS, idstable, idstable.ID() = name );
     if( isnull( idstable ) ){
diff --git a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl
index fe25074..1f2b9d9 100644
--- a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl
+++ b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl
@@ -10,11 +10,10 @@
     allunit                   := FinancialProductionReport::GetDefaultAllUnit();
     search                    := owner.CustomerDemandIDSSearch();
     if( isnull( search ) ){
-      search                  := owner.CustomerDemandIDSSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+      search                  := owner.CustomerDemandIDSSearch( relnew, Product := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
     }else{
       search                  := owner.CustomerDemandIDSSearch();
       search.Product( allunit );
-      search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
       search.Unit( allunit );
       search.StartDate( Date::MinDate() );
       search.EndDate( Date::MaxDate() );
diff --git a/_Main/BL/Type_CustomerDemandIDSColumn/Attribute_TimeUnit.qbl b/_Main/BL/Type_CustomerDemandIDSColumn/Attribute_TimeUnit.qbl
deleted file mode 100644
index 3bb5b8e..0000000
--- a/_Main/BL/Type_CustomerDemandIDSColumn/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1116640005][415136.0.1116640004][415136.0.1116640006]'
-  Description: '鏃堕棿鍗曚綅'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_CustomerDemandIDSSearch/Attribute_TimeUnit.qbl b/_Main/BL/Type_CustomerDemandIDSSearch/Attribute_TimeUnit.qbl
deleted file mode 100644
index faf0bf4..0000000
--- a/_Main/BL/Type_CustomerDemandIDSSearch/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1123301847][415136.0.1123301846][415136.0.1123301848]'
-  Description: '鏃ユ湡绫诲瀷'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_CustomerDemandIDSSearch/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_CustomerDemandIDSSearch/DefaultValue_TimeUnit.qbl
deleted file mode 100644
index e29979e..0000000
--- a/_Main/BL/Type_CustomerDemandIDSSearch/DefaultValue_TimeUnit.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: TimeUnit
-}
diff --git a/_Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl b/_Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl
index bbb615e..72ccf58 100644
--- a/_Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl
+++ b/_Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl
@@ -17,7 +17,7 @@
     jsonarray     := JSON::Array();
     
     traverse ( table, Row, r ){
-      traverse ( table, Column, c, c.TimeUnit() = Translations::MP_GlobalParameters_Day() ) {
+      traverse ( table, Column, c ) {//, c.TimeUnit() = Translations::MP_GlobalParameters_Day()
         cell := select( r, Cell, tempC, tempC.Column() = c );
         
         if ( not isnull( cell ) ) {
diff --git a/_Main/BL/Type_InterfaceDataset/StaticMethod_PushPlanInventoryData.qbl b/_Main/BL/Type_InterfaceDataset/StaticMethod_PushPlanInventoryData.qbl
index 324c585..86b3f3d 100644
--- a/_Main/BL/Type_InterfaceDataset/StaticMethod_PushPlanInventoryData.qbl
+++ b/_Main/BL/Type_InterfaceDataset/StaticMethod_PushPlanInventoryData.qbl
@@ -17,7 +17,7 @@
     jsonarray     := JSON::Array();
     
     traverse ( table, Row, r ){
-      traverse ( table, Column, c, c.TimeUnit() = Translations::MP_GlobalParameters_Day() ) {
+      traverse ( table, Column, c ) {//, c.TimeUnit() = Translations::MP_GlobalParameters_Day()
         cell := select( r, Cell, tempC, tempC.Column() = c );
         
         if ( not isnull( cell ) ) {
diff --git a/_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_TimeUnit.qbl b/_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_TimeUnit.qbl
deleted file mode 100644
index 4b0f996..0000000
--- a/_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1275930121][415136.0.1275930120][415136.0.1275930122]'
-  Description: '鏃ユ湡绫诲瀷'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_InventoryPlanArchiveColumn/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_InventoryPlanArchiveColumn/DefaultValue_TimeUnit.qbl
deleted file mode 100644
index e29979e..0000000
--- a/_Main/BL/Type_InventoryPlanArchiveColumn/DefaultValue_TimeUnit.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: TimeUnit
-}
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersion/Method_Generate.qbl b/_Main/BL/Type_InventoryPlanArchiveVersion/Method_Generate.qbl
index 5bcf2f4..bc03ff4 100644
--- a/_Main/BL/Type_InventoryPlanArchiveVersion/Method_Generate.qbl
+++ b/_Main/BL/Type_InventoryPlanArchiveVersion/Method_Generate.qbl
@@ -10,29 +10,30 @@
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
     info( '-----------Search start-------' );
-    table                   := selectobject( this,InterfaceDataset.InventoryPlanArchiveVersion, report, not report.IsShow() );
-    //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
-    aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.TimeUnit() = search.TimeUnit() and aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );
-    this.Clear( aopcolumns );
-    traverse( table, Row, row, ( units.Size() = 0 or units.Find( row.Unit() ) > -1 ) and ( products.Size() = 0 or products.Find( row.Name() ) > -1 ) ){
-      
-      showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Unit() = search.Unit() );
-      if( isnull( showrow ) ){
-        showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), Unit := search.Unit() );
-      }
-      traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
-        column              := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
-        if( not isnull( column ) ){
-          showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
-          if( isnull( showcell ) ){
-            showcell        := showrow.Cell( relnew, PlanQuantity := 0, ActualQuantity := 0 );
-            column.Cell( relinsert, showcell );
-          }
-          showcell.PlanQuantity( cell.PlanQuantity() + showcell.PlanQuantity() );
-          showcell.ActualQuantity( cell.ActualQuantity() + showcell.ActualQuantity() );
-        }
-      }
-    }
+    //table                   := selectobject( this,InterfaceDataset.InventoryPlanArchiveVersion, report, not report.IsShow() );
+    ////娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
+    //search.TimeUnit( Translations::MP_GlobalParameters_Day() );
+    //aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.TimeUnit() = search.TimeUnit() and aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );
+    //this.Clear( aopcolumns );
+    //traverse( table, Row, row, ( units.Size() = 0 or units.Find( row.Unit() ) > -1 ) and ( products.Size() = 0 or products.Find( row.Name() ) > -1 ) ){
+    //  
+    //  showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Unit() = search.Unit() );
+    //  if( isnull( showrow ) ){
+    //    showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), Unit := search.Unit() );
+    //  }
+    //  traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
+    //    column              := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
+    //    if( not isnull( column ) ){
+    //      showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
+    //      if( isnull( showcell ) ){
+    //        showcell        := showrow.Cell( relnew, PlanQuantity := 0, ActualQuantity := 0 );
+    //        column.Cell( relinsert, showcell );
+    //      }
+    //      showcell.PlanQuantity( cell.PlanQuantity() + showcell.PlanQuantity() );
+    //      showcell.ActualQuantity( cell.ActualQuantity() + showcell.ActualQuantity() );
+    //    }
+    //  }
+    //}
     info( '-----------Search end-------' );
   *]
 }
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl b/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl
index e4b553d..3f55b03 100644
--- a/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl
@@ -9,40 +9,40 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
-    timeunit              := guard( this.InterfaceDataset().InventoryPlanArchiveVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
-    weekstart             := periods.Element( 0 );
-    
-    monthstart            := periods.Element( 0 );
+    //timeunit              := guard( this.InterfaceDataset().InventoryPlanArchiveVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
+    //weekstart             := periods.Element( 0 );
+    //
+    //monthstart            := periods.Element( 0 );
     traverse( periods, Elements, periodtime ){
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
         periodname        := periodtime.Format( "M2/D2/Y" );
         
-        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
-        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
-        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
-          weekstart       := periodtime;
-        }
-        if( periodtime = weekstart ){
-          weekperiodname  := weekstart.Format( "M2/D2/Y" );
-          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
-          
-        }
-        weekstart         := periodtime.StartOfNextWeek();
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
-        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
-          monthstart      := periodtime;
-        }
-        if( periodtime = monthstart ){
-          monthperiodname := monthstart.Format( "M2/D2/Y" );
-          enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
-          this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
-          
-        }
-        monthstart        := periodtime.StartOfNextMonth();
-      }
+        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime );//, TimeUnit := Translations::MP_GlobalParameters_Day()
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
+    //    weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
+    //    if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
+    //      weekstart       := periodtime;
+    //    }
+    //    if( periodtime = weekstart ){
+    //      weekperiodname  := weekstart.Format( "M2/D2/Y" );
+    //      this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
+    //      
+    //    }
+    //    weekstart         := periodtime.StartOfNextWeek();
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
+    //    if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
+    //      monthstart      := periodtime;
+    //    }
+    //    if( periodtime = monthstart ){
+    //      monthperiodname := monthstart.Format( "M2/D2/Y" );
+    //      enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
+    //      this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
+    //      
+    //    }
+    //    monthstart        := periodtime.StartOfNextMonth();
+    //  }
     }
   *]
 }
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl b/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
index b4886eb..9717944 100644
--- a/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
+++ b/_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
@@ -10,7 +10,7 @@
     // 鐢勫叞楦� Aug-7-2024 (created)
     //periodname := period.Format( "M2/D2/Y" );
     
-    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
+    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period );// and column.TimeUnit() = unit
     
     return column;
   *]
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl b/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
index bd4c18b..bf2b441 100644
--- a/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
@@ -8,13 +8,13 @@
   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() );
+    search                 := interfaceDataset.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
     table                  := selectobject( interfaceDataset, InventoryPlanArchiveVersion, version, not version.IsShow() );
     if( isnull( table ) ){
       table                := interfaceDataset.InventoryPlanArchiveVersion( relnew, ID := name, Name := name );
@@ -24,7 +24,7 @@
       showtable               := interfaceDataset.InventoryPlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
     }
     periods                := selectuniquevalues(  macroPlan, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day()
-                                                   and not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = period.StartDate() ), period.StartDate() );
+                                                   and not exists( table, Column, column, column.StartDate() = period.StartDate() ), period.StartDate() );//column.TimeUnit() = Translations::MP_GlobalParameters_Day() and 
     if( periods.Size() > 0 ){
       table.GenerateColumn( periods, false );
     }
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_InitiateSearch.qbl
index 2e90a8c..dcbf95d 100644
--- a/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_InitiateSearch.qbl
+++ b/_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_InitiateSearch.qbl
@@ -10,11 +10,11 @@
     allunit                   := FinancialProductionReport::GetDefaultAllUnit();
     search                    := owner.InventoryPlanArchiveVersionSearch();
     if( isnull( owner.InventoryPlanArchiveVersionSearch() ) ){
-      search                  := owner.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+      search                  := owner.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
     }else{
       search                  := owner.InventoryPlanArchiveVersionSearch();
       search.Product( allunit );
-      search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
+    //  search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
       search.Unit( allunit );
       search.StartDate( Date::MinDate() );
       search.EndDate( Date::MaxDate() );
diff --git a/_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_TimeUnit.qbl b/_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_TimeUnit.qbl
deleted file mode 100644
index b41ce64..0000000
--- a/_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1275901459][415136.0.1275901458][415136.0.1275901460]'
-  Description: '鏃ユ湡绫诲瀷'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_LockPeriod/Method_Enable.qbl b/_Main/BL/Type_LockPeriod/Method_Enable.qbl
index e8e9bf5..c7b6975 100644
--- a/_Main/BL/Type_LockPeriod/Method_Enable.qbl
+++ b/_Main/BL/Type_LockPeriod/Method_Enable.qbl
@@ -10,7 +10,7 @@
     offlinePlanRow := select( offlinePlanTable,Row,row,row.ProductID() = this.ProductInStockingPoint_MP().ProductID() and row.StockingPointID() = this.ProductInStockingPoint_MP().StockingPointID() );
     
     if( not this.IsEnable() and not isnull( offlinePlanRow )){
-      offlinePlanCells := selectset( offlinePlanRow, Cell,cell,cell.Column().TimeUnit() = "Day" );
+      offlinePlanCells := selectset( offlinePlanRow, Cell,cell, true );//,cell.Column().TimeUnit() = "Day"
       offlinePlanCellIndexTree := NamedValueTree::Create();
       for( i := 0; i< offlinePlanCells.Size(); i++ ){
         offlinePlanCell := offlinePlanCells.Element( i );
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_Generate.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_Generate.qbl
index e97dc5c..0d1a11e 100644
--- a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_Generate.qbl
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_Generate.qbl
@@ -12,7 +12,7 @@
     info( '-----------Search start-------' );
     table                   := selectobject( this,InterfaceDataset.OfflinePlanArchiveVersion, report, not report.IsShow() );
     //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
-    aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.TimeUnit() = search.TimeUnit() and aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );
+    aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );//aopcolumn.TimeUnit() = search.TimeUnit() and 
     this.Clear( aopcolumns );
     traverse( table, Row, row, ( units.Size() = 0 or units.Find( row.ProductionLine() ) > -1 ) and ( products.Size() = 0 or products.Find( row.Name() ) > -1 ) ){
       
@@ -21,9 +21,7 @@
         showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), Unit := search.Unit() );
       }
       traverse( this, Column, column ){
-        cells               := selectset( row, Cell, cell, cell.Column().TimeUnit() = Translations::MP_GlobalParameters_Day() 
-                                          and cell.Column().StartDate() >= column.StartDate()
-                                          and cell.Column().StartDate() <= column.EndDate() );
+        cells               := selectset( row, Cell, cell, cell.Column().StartDate() >= column.StartDate() and cell.Column().StartDate() <= column.EndDate() );//cell.Column().TimeUnit() = Translations::MP_GlobalParameters_Day() and 
         
     //  traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
     //    column              := selectobject( this, Column, column, column.ColumnName() = cell.Column().ColumnName() );
@@ -37,10 +35,10 @@
           actqty            := sum( cells, Elements, cell, cell.ActualProductionQty() );
           showcell.Quantity( qty + showcell.Quantity() );
           showcell.ActualProductionQty( actqty + showcell.ActualProductionQty() );
-          if( search.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
+    //      if( search.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
             showcell.Order( cells.Element( 0 ).Order() );
             showcell.OrderNr( cells.Element( 0 ).OrderNr() );
-          }
+    //      }
         }
       }
     }
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl
index 593691d..5c3bc84 100644
--- a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl
@@ -9,40 +9,40 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
-    timeunit              := guard( this.InterfaceDataset().OfflinePlanArchiveSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
-    weekstart             := periods.Element( 0 );
-    
-    monthstart            := periods.Element( 0 );
+    //timeunit              := guard( this.InterfaceDataset().OfflinePlanArchiveSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
+    //weekstart             := periods.Element( 0 );
+    //
+    //monthstart            := periods.Element( 0 );
     traverse( periods, Elements, periodtime ){
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
         periodname        := periodtime.Format( "M2/D2/Y" );
         
-        this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
-        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
-        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
-          weekstart       := periodtime;
-        }
-        if( periodtime = weekstart ){
-          weekperiodname  := weekstart.Format( "M2/D2/Y" );
-          this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
-          
-        }
-        weekstart         := periodtime.StartOfNextWeek();
-      }
-      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
-        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
-          monthstart      := periodtime;
-        }
-        if( periodtime = monthstart ){
-          monthperiodname := monthstart.Format( "M2/D2/Y" );
-          enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
-          this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
-          
-        }
-        monthstart        := periodtime.StartOfNextMonth();
-      }
+        this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime );//, TimeUnit := Translations::MP_GlobalParameters_Day()
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
+    //    weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
+    //    if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
+    //      weekstart       := periodtime;
+    //    }
+    //    if( periodtime = weekstart ){
+    //      weekperiodname  := weekstart.Format( "M2/D2/Y" );
+    //      this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
+    //      
+    //    }
+    //    weekstart         := periodtime.StartOfNextWeek();
+    //  }
+    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
+    //    if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
+    //      monthstart      := periodtime;
+    //    }
+    //    if( periodtime = monthstart ){
+    //      monthperiodname := monthstart.Format( "M2/D2/Y" );
+    //      enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
+    //      this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
+    //      
+    //    }
+    //    monthstart        := periodtime.StartOfNextMonth();
+    //  }
     }
   *]
 }
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
index 65e8e9e..c2bfff1 100644
--- a/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
@@ -9,7 +9,7 @@
   [*
     // 鐢勫叞楦� Aug-7-2024 (created) 
     
-    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
+    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period );// and column.TimeUnit() = unit
     
     return column;
   *]
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_InitiateSearch.qbl
index d94362d..638518f 100644
--- a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_InitiateSearch.qbl
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_InitiateSearch.qbl
@@ -10,12 +10,12 @@
     allunit                   := FinancialProductionReport::GetDefaultAllUnit();
     search                    := owner.OfflinePlanArchiveSearch();
     if( isnull( owner.OfflinePlanArchiveSearch() ) ){
-      search                  := owner.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+      search                  := owner.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
     }else{
       search                  := owner.OfflinePlanArchiveSearch();
       search.Product( allunit );
       search.ProductionLine( allunit );
-      search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
+    //  search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
       search.Unit( allunit );
       search.StartDate( Date::MinDate() );
       search.EndDate( Date::MaxDate() );
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
index 3a803ad..7c5d964 100644
--- a/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
+++ b/_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -11,7 +11,7 @@
     //鏍规嵁褰撳墠鐗堟湰鐨勪笅绾胯鍒�
     allunit                := OfflinePlanArchiveVersion::GetDefaultAllUnit();
     name                   := OfflinePlanArchiveVersion::GetDefaultName();
-    search                 := interface.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+    search                 := interface.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
     table                  := selectobject( interface, OfflinePlanArchiveVersion, version, not version.IsShow() );
     if( isnull( table ) ){
       table                := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name );
@@ -20,7 +20,7 @@
     if( isnull( showtable ) ){
       showtable               := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
     }
-    nopcolumns             := selectuniquevalues(  macroPlan, NewOfflinePlanTable.NewOfflinePlanColumn, nopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcolumn.StartDate() ), nopcolumn.StartDate() );
+    nopcolumns             := selectuniquevalues(  macroPlan, NewOfflinePlanTable.NewOfflinePlanColumn, nopcolumn, not exists( table, Column, column, column.StartDate() = nopcolumn.StartDate() ), nopcolumn.StartDate() );//column.TimeUnit() = Translations::MP_GlobalParameters_Day() and 
     if( nopcolumns.Size() > 0 ){
       table.GenerateColumn( nopcolumns, false );
     }
@@ -38,7 +38,7 @@
       row                  := table.GetRow( noprow );
       if( not isnull( row ) ){
         traverse( noprow, NewOfflinePlanCell, nopcell ){
-          column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcell.NewOfflinePlanColumn().StartDate() );
+          column             := selectobject( table, Column, column, column.StartDate() = nopcell.NewOfflinePlanColumn().StartDate() );//column.TimeUnit() = Translations::MP_GlobalParameters_Day() and 
           cell               := selectobject( row, Cell, cell, cell.Column() = column );
           actproductionKey   := noprow.ProductID() + column.StartDate().AsQUILL();
           actproductionhandle:= actproductiontree.GetHandle( actproductionKey );
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl
deleted file mode 100644
index 84402f6..0000000
--- a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1246981107][415136.0.1246981106][415136.0.1246981108]'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl
deleted file mode 100644
index e29979e..0000000
--- a/_Main/BL/Type_OfflinePlanArchiveVersionColumn/DefaultValue_TimeUnit.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: TimeUnit
-}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl
deleted file mode 100644
index f22ea83..0000000
--- a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/Attribute_TimeUnit.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute TimeUnit
-{
-  #keys: '3[415136.0.1246981038][415136.0.1246981037][415136.0.1246981039]'
-  Description: '鏃ユ湡绫诲瀷'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl
deleted file mode 100644
index e29979e..0000000
--- a/_Main/BL/Type_OfflinePlanArchiveVersionSearch/DefaultValue_TimeUnit.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  TargetAttribute: TimeUnit
-}
diff --git a/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp b/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
index 5dda34e..35f26fa 100644
--- a/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
+++ b/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
@@ -20,14 +20,6 @@
         DefaultBackgroundColor: false
         InheritConversion: false
       }
-      DataRepresentation.Conditional
-      {
-        BackgroundColor: 'Red'
-        ConditionBody: 'object.Quantity() < 0.0'
-        ConversionBody: ''
-        DefaultBackgroundColor: false
-        InheritConversion: false
-      }
     ]
   }
   AttributeRepresentation ShiftPatternEnd
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def
index 6807e36..b2d24bd 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def
@@ -38,101 +38,15 @@
         Title: 'Finished engine inventory'
       ]
     }
-    Component mInterfacePlanInventoryDataPush
+    Component MenuShippingData
     {
-      #keys: '[413988.0.1495640230]'
+      #keys: '[415136.0.1330021031]'
       BaseType: 'WebMenu'
       Properties:
       [
-        Taborder: 4
-        Title: '璁″垝搴撳瓨鏁版嵁鎺ㄩ�佹帴鍙f祴璇�'
-      ]
-    }
-    Component MenuInterface367
-    {
-      #keys: '[415136.0.1024980241]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Separator: true
+        Image: 'HAND_TRUCK_BAG'
         Taborder: 3
-      ]
-    }
-    Component MenuCustomerDemandPPAIDS
-    {
-      #keys: '[415136.0.1024980263]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Description: 'Customer demand(PPA + IDS)'
-        Image: 'FLAG_AMBER'
-        Taborder: 6
-        Title: '瀹㈡埛闇�姹傦紙PPA+IDS锛�-PPPS'
-      ]
-    }
-    Component mInterfaceProductionSchedulingPlanPush
-    {
-      #keys: '[415754.0.140441770]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Taborder: 5
-        Title: '鐢熶骇鎺掔▼璁″垝鏁版嵁鎺ㄩ�佹帴鍙f祴璇�'
-      ]
-    }
-    Component MenuIAssemblyOnlinePlanPPPS
-    {
-      #keys: '[415136.0.1044250211]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'DELIVERY_AMBER'
-        Taborder: 7
-        Title: '瑁呴厤涓婄嚎璁″垝-PPPS'
-      ]
-    }
-    Component MenuIAOnlineAndMOfflinePlanPIR
-    {
-      #keys: '[415136.0.1044250378]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'DELIVERY_BLUE'
-        Taborder: 8
-        Title: '瑁呴厤涓婄嚎璁″垝+鏈哄姞涓嬬嚎璁″垝-PIR'
-      ]
-    }
-    Component MenuAOnlineAndMOfflinePlanMS64
-    {
-      #keys: '[415136.0.1044210780]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'DELIVERY_CYAN'
-        Taborder: 9
-        Title: '瑁呴厤涓婄嚎璁″垝+鏈哄姞涓嬬嚎璁″垝-MS64'
-      ]
-    }
-    Component MenuInterfaceInventoryReport
-    {
-      #keys: '[415136.0.1097611829]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'WAREHOUSE'
-        Taborder: 10
-        Title: 'Inventory report'
-      ]
-    }
-    Component mOfflinePlanInterface
-    {
-      #keys: '[413988.0.1697411489]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'WIND_ENGINE_OFFSHORE'
-        Taborder: 11
-        Title: '涓嬬嚎璁″垝'
+        Title: 'Shipping data'
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuAOnlineAndMOfflinePlanMS64_On.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuAOnlineAndMOfflinePlanMS64_On.def
deleted file mode 100644
index da07b97..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuAOnlineAndMOfflinePlanMS64_On.def
+++ /dev/null
@@ -1,21 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/MenuAOnlineAndMOfflinePlanMS64
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuAOnlineAndMOfflinePlanMS64_OnClick
-{
-  #keys: '[415136.0.1044250720]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  Precondition:
-  [*
-    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
-  *]
-  QuillAction
-  {
-    Body:
-    [*
-      dlg := construct( DialogZEDPPSMS64 );
-      dlg.New();
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuCustomerDemandPPAIDS_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuCustomerDemandPPAIDS_OnClick.def
deleted file mode 100644
index c1c6094..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuCustomerDemandPPAIDS_OnClick.def
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/MenuCustomerDemandPPAIDS
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuCustomerDemandPPAIDS_OnClick
-{
-  #keys: '[415136.0.1024980283]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  Precondition:
-  [*
-    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
-  *]
-  QuillAction
-  {
-    Body:
-    [*
-      
-      dlg := construct( DialogCustomerDemandPPAIDS );
-      dlg.Title( Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() );
-      dlg.New( Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuIAssemblyOnlinePlanPPPS_OnCli.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuIAssemblyOnlinePlanPPPS_OnCli.def
deleted file mode 100644
index 4a50618..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuIAssemblyOnlinePlanPPPS_OnCli.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/MenuIAssemblyOnlinePlanPPPS
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuIAssemblyOnlinePlanPPPS_OnClick
-{
-  #keys: '[415136.0.1044210507]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  Precondition:
-  [*
-    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
-  *]
-  QuillAction
-  {
-    Body:
-    [*
-      dlg := construct( DialogCustomerDemandPPAIDS );
-      dlg.Title( Translations::InterfaceDataset_AssemblyOnlinePlanPPPsPush_Name() );
-      dlg.New( Translations::InterfaceDataset_AssemblyOnlinePlanPPPsPush_Name() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuInterfaceInventoryReport_OnCl.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuInterfaceInventoryReport_OnCl.def
deleted file mode 100644
index 204f33a..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuInterfaceInventoryReport_OnCl.def
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/MenuInterfaceInventoryReport
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuInterfaceInventoryReport_OnClick
-{
-  #keys: '[415136.0.1097612114]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      currentuser     := QuintiqUser::CurrentUser().DisplayName();
-      InterfaceInventoryReport::GenerateData( MacroPlan, InterfaceDataset, currentuser );
-      
-      WebMessageBox::Success( "鎺ㄩ�佹垚鍔燂紒" );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuShippingData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuShippingData_OnClick.def
new file mode 100644
index 0000000..ae9c53f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuShippingData_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ContextMenuInterface/MenuShippingData
+Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuShippingData_OnClick
+{
+  #keys: '[415136.0.1329970182]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "Interface_shippping_data_view", true);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mInterfacePlanInventoryDataPush_O.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mInterfacePlanInventoryDataPush_O.def
deleted file mode 100644
index d5da9f6..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mInterfacePlanInventoryDataPush_O.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/mInterfacePlanInventoryDataPush
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_mInterfacePlanInventoryDataPush_OnClick
-{
-  #keys: '[413988.0.1495640258]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  Precondition:
-  [*
-    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
-  *]
-  QuillAction
-  {
-    Body:
-    [*
-      InterfacePlanInventoryDataPush::GenerateData( MacroPlan, InterfaceDataset, Number::Random( 0, 1 ) );
-      
-      WebMessageBox::Success( "鎺ㄩ�佹垚鍔燂紒" );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mInterfaceProductionSchedulingPla.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mInterfaceProductionSchedulingPla.def
deleted file mode 100644
index a702496..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mInterfaceProductionSchedulingPla.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/mInterfaceProductionSchedulingPlanPush
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_mInterfaceProductionSchedulingPlanPush_OnClick
-{
-  #keys: '[415754.0.141940525]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  Precondition:
-  [*
-    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
-  *]
-  QuillAction
-  {
-    Body:
-    [*
-      InterfaceProductionSchedulingPlanPush::GenerateData( MacroPlan, InterfaceDataset, Number::Random( 0, 1 ) );
-      
-      WebMessageBox::Success( "鎺ㄩ�佹垚鍔燂紒" );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mOfflinePlanInterface_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mOfflinePlanInterface_OnClick.def
deleted file mode 100644
index 0e7644b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_mOfflinePlanInterface_OnClick.def
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuInterface/mOfflinePlanInterface
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_mOfflinePlanInterface_OnClick
-{
-  #keys: '[413988.0.1697411525]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  Precondition:
-  [*
-    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
-  *]
-  QuillAction
-  {
-    Body:
-    [*
-      // 瀛樻。
-      NewOfflinePlanCell::InterfaceArchive( MacroPlan, InterfaceDataset );
-      
-      WebMessageBox::Success( Translations::A_VWED_Success() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def
index 35f8d03..cb74c79 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def
@@ -8,6 +8,7 @@
     #child: PanelPeriod_384
     #child: PanelTimeUnit
     #child: PanelOperation_653
+    #child: PanelSAP
   ]
   Properties:
   [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation\043653.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation\043653.def"
index e86d851..d5aaf2c 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation\043653.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation\043653.def"
@@ -18,6 +18,6 @@
   ]
   Properties:
   [
-    Taborder: 2
+    Taborder: 3
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelSAP.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelSAP.def
new file mode 100644
index 0000000..dde51e8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelSAP.def
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+Component PanelSAP
+{
+  #keys: '[415136.0.1330103076]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonPIR
+    {
+      #keys: '[415136.0.1330103095]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Sync PIR'
+        Taborder: 0
+      ]
+    }
+    Component ButtonMS64
+    {
+      #keys: '[415136.0.1330020744]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Sync MS64'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def
index 06beac3..7b31abb 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def
@@ -22,5 +22,6 @@
   Properties:
   [
     Taborder: 1
+    Visible: false
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonMS64_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonMS64_OnClick.def
new file mode 100644
index 0000000..7a6ab81
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonMS64_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelSAP/ButtonMS64
+Response OnClick () id:Response_PanelSAP_ButtonMS64_OnClick
+{
+  #keys: '[415136.0.1330020761]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogZEDPPSMS64 );
+      dlg.New();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuIAOnlineAndMOfflinePlanPIR_On.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonPIR_OnClick.def
similarity index 64%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuIAOnlineAndMOfflinePlanPIR_On.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonPIR_OnClick.def
index e9ee4cf..f1e8327 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuIAOnlineAndMOfflinePlanPIR_On.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelSAP_ButtonPIR_OnClick.def
@@ -1,10 +1,10 @@
 Quintiq file version 2.0
-#parent: ContextMenuInterface/MenuIAOnlineAndMOfflinePlanPIR
-Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuIAOnlineAndMOfflinePlanPIR_OnClick
+#parent: PanelSAP/ButtonPIR
+Response OnClick () id:Response_PanelSAP_ButtonPIR_OnClick
 {
-  #keys: '[415136.0.1044210948]'
+  #keys: '[415136.0.1330020515]'
   CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
     return not isnull( MacroPlan ) and not isnull( InterfaceDataset );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
index f1bdaeb..42613ea 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
@@ -10,10 +10,10 @@
     Body:
     [*
       //鍖洪棿鏀瑰彉鍚庡埛鏂版樉绀� 
-      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
-        dhSearch.Data().TimeUnit( this.BoundValue() );
-      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
-      }
+      //if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
+      //  dhSearch.Data().TimeUnit( this.BoundValue() );
+      ////  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
+      //}
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelTimeUnit.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelTimeUnit.def
index 9d50f43..d80052b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelTimeUnit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelTimeUnit.def
@@ -22,5 +22,6 @@
   Properties:
   [
     Taborder: 5
+    Visible: false
   ]
 }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged\043150.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged\043150.def"
index f5ed614..1893ff8 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged\043150.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged\043150.def"
@@ -10,10 +10,10 @@
     Body:
     [*
       //鍖洪棿鏀瑰彉鍚庡埛鏂版樉绀� 
-      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
-        dhSearch.Data().TimeUnit( this.BoundValue() );
-      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
-      }
+      //if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
+      //  dhSearch.Data().TimeUnit( this.BoundValue() );
+      ////  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
+      //}
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_ListInterfaceShippingData.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_ListInterfaceShippingData.def
new file mode 100644
index 0000000..3cabf5e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_ListInterfaceShippingData.def
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+Component ListInterfaceShippingData
+{
+  #keys: '[415136.0.1330021153]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorInterfaceShippingData
+    {
+      #keys: '[415136.0.1330021154]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'InterfaceDataset'
+        Source: 'InterfaceDataset'
+        Taborder: 0
+        Transformation: 'InterfaceLoginfo.ShippingActualData'
+      ]
+    }
+    #child: listActionBarPageInterfaceShippingData
+    Component DataSetLevelInterfaceShippingData
+    {
+      #keys: '[415136.0.1330021159]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuInterfaceShippingData
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Fac","title":"Fac","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Fac"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FourCode","title":"FourCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FourCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DDay","title":"DDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CreateTime","title":"CreateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CreateTime"}}]'
+        ContextMenu: 'listContextMenuInterfaceShippingData'
+        SortCriteria: 'desc:DDay'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listActionBarPageInterfaceShippingData.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listActionBarPageInterfaceShippingData.def
new file mode 100644
index 0000000..ea0734d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listActionBarPageInterfaceShippingData.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageInterfaceShippingData
+{
+  #keys: '[415136.0.1330021156]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listContextMenuInterfaceShippingData.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listContextMenuInterfaceShippingData.def
new file mode 100644
index 0000000..e96d713
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listContextMenuInterfaceShippingData.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuInterfaceShippingData
+{
+  #keys: '[415136.0.1330021161]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/_ROOT_Component_FormInterfaceShippingData.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/_ROOT_Component_FormInterfaceShippingData.def
new file mode 100644
index 0000000..e270b81
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/_ROOT_Component_FormInterfaceShippingData.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormInterfaceShippingData
+{
+  #keys: '[415136.0.1330021115]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListInterfaceShippingData
+  ]
+  Properties:
+  [
+    Image: 'HAND_TRUCK_BAG'
+    Title: 'Shipping data'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def
index d15670d..9c05bd4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def
@@ -22,5 +22,6 @@
   Properties:
   [
     Taborder: 1
+    Visible: false
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
index 90508a8..94e0e83 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
@@ -10,10 +10,10 @@
     Body:
     [*
       //鍖洪棿鏀瑰彉鍚庡埛鏂版樉绀� 
-      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
-        dhSearch.Data().TimeUnit( this.BoundValue() );
-      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
-      }
+      //if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
+      //  dhSearch.Data().TimeUnit( this.BoundValue() );
+      ////  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
+      //}
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def
index 8514752..92f4b4f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def
@@ -26,7 +26,7 @@
       ]
       Properties:
       [
-        Attributes: 'Quantity;ActualProductionQty'
+        Attributes: 'Order;Quantity;ActualProductionQty'
         Column: 'Column'
         Row: 'Row'
         Taborder: 0
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit\043720.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit\043720.def"
index 67dc762..ae6baf1 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit\043720.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit\043720.def"
@@ -23,5 +23,6 @@
   [
     Orientation: 'horizontal'
     Taborder: 1
+    Visible: false
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def
index a053358..2ec279a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def
@@ -10,10 +10,10 @@
     Body:
     [*
       //鍖洪棿鏀瑰彉鍚庡埛鏂版樉绀� 
-      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
-        dhSearch.Data().TimeUnit( this.BoundValue() );
-      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
-      }
+      //if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
+      //  dhSearch.Data().TimeUnit( this.BoundValue() );
+      ////  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
+      //}
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Interface_shippping_data_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Interface_shippping_data_view.vw
new file mode 100644
index 0000000..e1de7ce
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Interface_shippping_data_view.vw
@@ -0,0 +1,101 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormInterfaceShippingData
+      {
+        title: 'QMacroPlanner::FormInterfaceShippingData'
+        shown: true
+        componentID: 'QMacroPlanner::FormInterfaceShippingData'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 15
+          columnPosition: 1
+          columnSpan: 12
+        }
+        components
+        {
+          FormInterfaceShippingData_ListInterfaceShippingData
+          {
+          }
+          FormInterfaceShippingData_DataSetLevelInterfaceShippingData
+          {
+            groupDepth: -1
+            sort: 'DESC:DDay'
+            column_ID
+            {
+              columnId: 'ID'
+              dataPath: 'ID'
+              dataType: 'number'
+              index: 0
+              subtotals: ''
+              width: 150
+            }
+            column_Fac
+            {
+              columnId: 'Fac'
+              dataPath: 'Fac'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_FourCode
+            {
+              columnId: 'FourCode'
+              dataPath: 'FourCode'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_DDay
+            {
+              columnId: 'DDay'
+              dataPath: 'DDay'
+              dataType: 'date'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_Quantity
+            {
+              columnId: 'Quantity'
+              dataPath: 'Quantity'
+              dataType: 'real'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_CreateTime
+            {
+              columnId: 'CreateTime'
+              dataPath: 'CreateTime'
+              dataType: 'datetime'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: ''
+    group: ''
+    index: 32
+    image: 'HAND_TRUCK_BAG'
+    description: ''
+  }
+  formatversion: 2
+  id: 'Interface_shippping_data_view'
+  name: 'Interface shippping data view'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3