lazhen
2024-10-29 4419b51e5cfed824ca592ae5cba7654994ee005d
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -7,30 +7,33 @@
{
  TextBody:
  [*
    //根据当前版本的装配上线计划
    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
    name                   := AssemblyOnlinePlanVersion::GetDefaultName();
    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
    //根据当前版本的下线计划
    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() );
    table                  := selectobject( interface, OfflinePlanArchiveVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
      table                := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name );
    }
    showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    showtable              := selectobject( interface, OfflinePlanArchiveVersion, version, version.IsShow() );
    if( isnull( table ) ){
      showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
      showtable               := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
    }
    aopcolumns             := selectuniquevalues(  macroPlan, AssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.ColumnDate() ), aopcolumn.ColumnDate() );
    table.GenerateColumn( aopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
    traverse( macroPlan, AssemblyOnlinePlanRow, aoprow ){
      row                  := table.GetRow( aoprow );
      traverse( aoprow, AssemblyOnlinePlanCell, aopcell ){
        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcell.AssemblyOnlinePlanColumn().ColumnDate() );
        cell               := selectobject( row, Cell, cell, cell.Column() = column );
        cell.InventoryWeight( aopcell.InventoryWeight() );
        cell.ProductionSerialNumber( aopcell.ProductionSerialNumber() );
        cell.Quantity( aopcell.Quantity() );
        cell.Shift( aopcell.Shift() );
        cell.Value( aopcell.Value() );
    nopcolumns             := selectuniquevalues(  macroPlan, NewOfflinePlanTable.NewOfflinePlanColumn, nopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcolumn.StartDate() ), nopcolumn.StartDate() );
    table.GenerateColumn( nopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
    traverse( macroPlan, NewOfflinePlanTable, noptable ){
      traverse( noptable, NewOfflinePlanRow, noprow ){
        row                  := table.GetRow( noprow );
        traverse( noprow, NewOfflinePlanCell, nopcell ){
          column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcell.NewOfflinePlanColumn().StartDate() );
          cell               := selectobject( row, Cell, cell, cell.Column() = column );
          cell.InventoryWeight( nopcell.InventoryWeight() );
    //      cell.ProductionSerialNumber( nopcell.ProductionSerialNumber() );
          cell.Quantity( nopcell.Quantity() );
    //      cell.Shift( nopcell.Shift() );
    //      cell.Value( nopcell.Value() );
        }
      }
    }
    //showtable.Generate( search, products );