Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Archive ( 
 | 
  const MacroPlan macroPlan, 
 | 
  Archive archive 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Akari Oct-23-2024 (created) 
 | 
    archiveTransferPlanCells := selectset( archive,ArchiveTransferPlanRow.ArchiveTransferPlanCell,cell,true ); 
 | 
    archiveTransferPlanCellIndexTree := NamedValueTree::Create(); 
 | 
    for( i := 0; i < archiveTransferPlanCells.Size(); i++ ){ 
 | 
      archiveTransferPlanCell := archiveTransferPlanCells.Element( i ); 
 | 
      archiveTransferPlanRow := archiveTransferPlanCell.ArchiveTransferPlanRow(); 
 | 
      archiveTransferPlanColumn := archiveTransferPlanCell.ArchiveTransferPlanColumn(); 
 | 
       
 | 
      archiveTransferPlanRowKey := archiveTransferPlanRow.Category() + archiveTransferPlanRow.ProductID() + archiveTransferPlanRow.SourceStockpoingPointID() + archiveTransferPlanRow.TargetStockpoingPointID() ; 
 | 
      archiveTransferPlanColumnKey := archiveTransferPlanColumn.ColumnDate().AsQUILL(); 
 | 
      archiveTransferPlanCellKey := archiveTransferPlanRowKey + archiveTransferPlanColumnKey; 
 | 
      archiveTransferPlanCellHandle := archiveTransferPlanCellIndexTree.GetHandle( archiveTransferPlanCellKey ); 
 | 
       
 | 
      archiveTransferPlanCellIndexTree.Root().AddChild( archiveTransferPlanCellHandle,i ); 
 | 
    } 
 | 
     
 | 
    archiveTransferPlanRows := selectset( archive,ArchiveTransferPlanRow,row,true ); 
 | 
    archiveTransferPlanRowIndexTree := NamedValueTree::Create(); 
 | 
    for( i := 0; i < archiveTransferPlanRows.Size(); i++ ){ 
 | 
      archiveTransferPlanRow := archiveTransferPlanRows.Element( i ); 
 | 
      archiveTransferPlanRowKey := archiveTransferPlanRow.Category() + archiveTransferPlanRow.ProductID() + archiveTransferPlanRow.SourceStockpoingPointID() + archiveTransferPlanRow.TargetStockpoingPointID() ; 
 | 
      archiveTransferPlanRowHandle := archiveTransferPlanRowIndexTree.GetHandle( archiveTransferPlanRowKey ); 
 | 
      archiveTransferPlanRowIndexTree.Root().AddChild( archiveTransferPlanRowHandle,i ); 
 | 
    } 
 | 
     
 | 
    archiveTransferPlanColumns := selectset( archive,ArchiveTransferPlanColumn,row,true ); 
 | 
    archiveTransferPlanColumnIndexTree := NamedValueTree::Create(); 
 | 
    for( i := 0; i < archiveTransferPlanColumns.Size(); i++ ){ 
 | 
      archiveTransferPlanColumn := archiveTransferPlanColumns.Element( i ); 
 | 
      archiveTransferPlanColumnKey := archiveTransferPlanColumn.ColumnDate().AsQUILL(); 
 | 
      archiveTransferPlanColumnHandle := archiveTransferPlanColumnIndexTree.GetHandle( archiveTransferPlanColumnKey ); 
 | 
      archiveTransferPlanColumnIndexTree.Root().AddChild( archiveTransferPlanColumnHandle,i ); 
 | 
    } 
 | 
     
 | 
    traverse( macroPlan,TransferPlanRow.TransferPlanCell,transferPlanCell ){ 
 | 
      transferPlanRow := transferPlanCell.TransferPlanRow(); 
 | 
      transferPlanColumn := transferPlanCell.TransferPlanColumn(); 
 | 
      transferPlanRowKey := transferPlanRow.Category() + transferPlanRow.ProductID() + transferPlanRow.SourceStockpoingPointID() + transferPlanRow.TargetStockpoingPointID(); 
 | 
      transferPlanColumnKey := transferPlanColumn.ColumnDate().AsQUILL(); 
 | 
      transferPlanCellKey := transferPlanRowKey + transferPlanColumnKey; 
 | 
       
 | 
      archiveTransferPlanCell := null( ArchiveTransferPlanCell ); 
 | 
      archiveTransferPlanCellHandle := archiveTransferPlanCellIndexTree.GetHandle( transferPlanCellKey ); 
 | 
      archiveTransferPlanCellIndex := guard( archiveTransferPlanCellIndexTree.Root().Child( archiveTransferPlanCellHandle ),null( NamedValue ) ); 
 | 
      if( isnull( archiveTransferPlanCellIndex )){ 
 | 
        archiveTransferPlanRow := null( ArchiveTransferPlanRow ); 
 | 
        archiveTransferPlanRowHandle := archiveTransferPlanRowIndexTree.GetHandle( transferPlanRowKey ); 
 | 
        archiveTransferPlanRowIndex := guard( archiveTransferPlanRowIndexTree.Root().Child( archiveTransferPlanRowHandle ),null( NamedValue )); 
 | 
        if( isnull( archiveTransferPlanRowIndex )){ 
 | 
          archiveTransferPlanRow := archive.ArchiveTransferPlanRow( relnew,Category := transferPlanRow.Category(),ProductID := transferPlanRow.ProductID(),RowNr := transferPlanRow.RowNr(),SourceStockpoingPointID := transferPlanRow.SourceStockpoingPointID(),TargetStockpoingPointID := transferPlanRow.TargetStockpoingPointID() ); 
 | 
          archiveTransferPlanRows.Add( archiveTransferPlanRow ); 
 | 
          archiveTransferPlanRowIndexTree.Root().AddChild( archiveTransferPlanRowHandle,archiveTransferPlanRows.Size() - 1 ); 
 | 
        }else{ 
 | 
          archiveTransferPlanRow := archiveTransferPlanRows.Element( archiveTransferPlanRowIndex.GetValueAsNumber() );  
 | 
        } 
 | 
         
 | 
        archiveTransferPlanColumn := null( ArchiveTransferPlanColumn ); 
 | 
        archiveTransferPlanColumnHandle := archiveTransferPlanColumnIndexTree.GetHandle( transferPlanColumnKey ); 
 | 
        archiveTransferPlanColumnIndex := guard( archiveTransferPlanColumnIndexTree.Root().Child( archiveTransferPlanColumnHandle ),null( NamedValue )); 
 | 
        if( isnull( archiveTransferPlanColumnIndex )){ 
 | 
          archiveTransferPlanColumn := archive.ArchiveTransferPlanColumn( relnew,ColumnDate := transferPlanColumn.ColumnDate(),ColumnIndex := transferPlanColumn.ColumnIndex() ); 
 | 
          archiveTransferPlanColumns.Add( archiveTransferPlanColumn ); 
 | 
          archiveTransferPlanColumnIndexTree.Root().AddChild( archiveTransferPlanColumnHandle,archiveTransferPlanColumns.Size() - 1 ); 
 | 
        }else{ 
 | 
          archiveTransferPlanColumn := archiveTransferPlanColumns.Element( archiveTransferPlanColumnIndex.GetValueAsNumber() );  
 | 
        } 
 | 
         
 | 
        archiveTransferPlanCell := archiveTransferPlanRow.ArchiveTransferPlanCell( relnew,ArchiveTransferPlanColumn := archiveTransferPlanColumn ); 
 | 
        archiveTransferPlanCells.Add( archiveTransferPlanCell ); 
 | 
        archiveTransferPlanCellIndexTree.Root().AddChild( archiveTransferPlanCellHandle,archiveTransferPlanCells.Size() - 1 ); 
 | 
      }else{ 
 | 
        archiveTransferPlanCell := archiveTransferPlanCells.Element( archiveTransferPlanCellIndex.GetValueAsNumber()); 
 | 
      } 
 | 
       
 | 
      archiveTransferPlanCell.Value( transferPlanCell.Value() ); 
 | 
     
 | 
    } 
 | 
  *] 
 | 
} 
 |