Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Archive ( 
 | 
  const MacroPlan macroPlan, 
 | 
  Archive archive 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Akari Oct-23-2024 (created) 
 | 
    //packagingPlanCells := selectset( macroPlan,PackagingPlanRow.PackagingPlanCell,cell,true ); 
 | 
    //packagingPlanCellIndexTree := NamedValueTree::Create(); 
 | 
    //for( i := 0; i < packagingPlanCells.Size(); i++ ){ 
 | 
    //  packagingPlanCell := packagingPlanCells.Element( i ); 
 | 
    //  packagingPlanRow := packagingPlanCell.PackagingPlanRow(); 
 | 
    //  packagingPlanColumn := packagingPlanCell.PackagingPlanColumn(); 
 | 
    //   
 | 
    //  packagingPlanRowKey := packagingPlanRow.Category() + packagingPlanRow.Factory() + packagingPlanRow.ProductID() + packagingPlanRow.StockingPointID(); 
 | 
    //  packagingPlanColumnKey := packagingPlanColumn.StartDate().AsQUILL(); 
 | 
    //  packagingPlanCellKey := packagingPlanRowKey + packagingPlanColumnKey; 
 | 
    //  packagingPlanCellHandle := packagingPlanCellIndexTree.GetHandle( packagingPlanCellKey ); 
 | 
    //   
 | 
    //  packagingPlanCellIndexTree.Root().AddChild( packagingPlanCellHandle,i ); 
 | 
    //} 
 | 
     
 | 
    archivePackagingPlanCells := selectset( archive,ArchivePackagingPlanRow.ArchivePackagingPlanCell,cell,true ); 
 | 
    archivePackagingPlanCellIndexTree := NamedValueTree::Create(); 
 | 
    for( i := 0; i < archivePackagingPlanCells.Size(); i++ ){ 
 | 
      archivePackagingPlanCell := archivePackagingPlanCells.Element( i ); 
 | 
      archivePackagingPlanRow := archivePackagingPlanCell.ArchivePackagingPlanRow(); 
 | 
      archivePackagingPlanColumn := archivePackagingPlanCell.ArchivePackagingPlanColumn(); 
 | 
       
 | 
      archivePackagingPlanRowKey := archivePackagingPlanRow.Category() + archivePackagingPlanRow.Factory() + archivePackagingPlanRow.ProductID() + archivePackagingPlanRow.StockingPointID(); 
 | 
      archivePackagingPlanColumnKey := archivePackagingPlanColumn.StartDate().AsQUILL(); 
 | 
      archivePackagingPlanCellKey := archivePackagingPlanRowKey + archivePackagingPlanColumnKey; 
 | 
      archivePackagingPlanCellHandle := archivePackagingPlanCellIndexTree.GetHandle( archivePackagingPlanCellKey ); 
 | 
       
 | 
      archivePackagingPlanCellIndexTree.Root().AddChild( archivePackagingPlanCellHandle,i ); 
 | 
    } 
 | 
     
 | 
    archivePackagingPlanRows := selectset( archive,ArchivePackagingPlanRow,row,true ); 
 | 
    archivePackagingPlanRowIndexTree := NamedValueTree::Create(); 
 | 
    for( i := 0; i < archivePackagingPlanRows.Size(); i++ ){ 
 | 
      archivePackagingPlanRow := archivePackagingPlanRows.Element( i ); 
 | 
      archivePackagingPlanRowKey := archivePackagingPlanRow.Category() + archivePackagingPlanRow.Factory() + archivePackagingPlanRow.ProductID() + archivePackagingPlanRow.StockingPointID(); 
 | 
      archivePackagingPlanRowHandle := archivePackagingPlanRowIndexTree.GetHandle( archivePackagingPlanRowKey ); 
 | 
      archivePackagingPlanRowIndexTree.Root().AddChild( archivePackagingPlanRowHandle,i ); 
 | 
    } 
 | 
     
 | 
    archivePackagingPlanColumns := selectset( archive,ArchivePackagingPlanColumn,row,true ); 
 | 
    archivePackagingPlanColumnIndexTree := NamedValueTree::Create(); 
 | 
    for( i := 0; i < archivePackagingPlanColumns.Size(); i++ ){ 
 | 
      archivePackagingPlanColumn := archivePackagingPlanColumns.Element( i ); 
 | 
      archivePackagingPlanColumnKey := archivePackagingPlanColumn.StartDate().AsQUILL(); 
 | 
      archivePackagingPlanColumnHandle := archivePackagingPlanColumnIndexTree.GetHandle( archivePackagingPlanColumnKey ); 
 | 
      archivePackagingPlanColumnIndexTree.Root().AddChild( archivePackagingPlanColumnHandle,i ); 
 | 
    } 
 | 
     
 | 
    traverse( macroPlan,PackagingPlanRow.PackagingPlanCell,packagingPlanCell ){ 
 | 
      packagingPlanRow := packagingPlanCell.PackagingPlanRow(); 
 | 
      packagingPlanColumn := packagingPlanCell.PackagingPlanColumn(); 
 | 
      packagingPlanRowKey := packagingPlanRow.Category() + packagingPlanRow.Factory() + packagingPlanRow.ProductID() + packagingPlanRow.StockingPointID(); 
 | 
      packagingPlanColumnKey := packagingPlanColumn.StartDate().AsQUILL(); 
 | 
      packagingPlanCellKey := packagingPlanRowKey + packagingPlanColumnKey; 
 | 
       
 | 
      archivePackagingPlanCell := null( ArchivePackagingPlanCell ); 
 | 
      archivePackagingPlanCellHandle := archivePackagingPlanCellIndexTree.GetHandle( packagingPlanCellKey ); 
 | 
      archivePackagingPlanCellIndex := guard( archivePackagingPlanCellIndexTree.Root().Child( archivePackagingPlanCellHandle ),null( NamedValue ) ); 
 | 
      if( isnull( archivePackagingPlanCellIndex )){ 
 | 
        archivePackagingPlanRow := null( ArchivePackagingPlanRow ); 
 | 
        archivePackagingPlanRowHandle := archivePackagingPlanRowIndexTree.GetHandle( packagingPlanRowKey ); 
 | 
        archivePackagingPlanRowIndex := guard( archivePackagingPlanRowIndexTree.Root().Child( archivePackagingPlanRowHandle ),null( NamedValue )); 
 | 
        if( isnull( archivePackagingPlanRowIndex )){ 
 | 
          archivePackagingPlanRow := archive.ArchivePackagingPlanRow( relnew,Category := packagingPlanRow.Category(),Factory := packagingPlanRow.Factory(),ProductID := packagingPlanRow.ProductID(),StockingPointID := packagingPlanRow.StockingPointID() ); 
 | 
          archivePackagingPlanRows.Add( archivePackagingPlanRow ); 
 | 
          archivePackagingPlanRowIndexTree.Root().AddChild( archivePackagingPlanRowHandle,archivePackagingPlanRows.Size() - 1 ); 
 | 
        }else{ 
 | 
          archivePackagingPlanRow := archivePackagingPlanRows.Element( archivePackagingPlanRowIndex.GetValueAsNumber() );  
 | 
        } 
 | 
         
 | 
        archivePackagingPlanColumn := null( ArchivePackagingPlanColumn ); 
 | 
        archivePackagingPlanColumnHandle := archivePackagingPlanColumnIndexTree.GetHandle( packagingPlanColumnKey ); 
 | 
        archivePackagingPlanColumnIndex := guard( archivePackagingPlanColumnIndexTree.Root().Child( archivePackagingPlanColumnHandle ),null( NamedValue )); 
 | 
        if( isnull( archivePackagingPlanColumnIndex )){ 
 | 
          archivePackagingPlanColumn := archive.ArchivePackagingPlanColumn( relnew,StartDate := packagingPlanColumn.StartDate() ); 
 | 
          archivePackagingPlanColumns.Add( archivePackagingPlanColumn ); 
 | 
          archivePackagingPlanColumnIndexTree.Root().AddChild( archivePackagingPlanColumnHandle,archivePackagingPlanColumns.Size() - 1 ); 
 | 
        }else{ 
 | 
          archivePackagingPlanColumn := archivePackagingPlanColumns.Element( archivePackagingPlanColumnIndex.GetValueAsNumber() );  
 | 
        } 
 | 
         
 | 
        archivePackagingPlanCell := archivePackagingPlanRow.ArchivePackagingPlanCell( relnew,ArchivePackagingPlanColumn := archivePackagingPlanColumn ); 
 | 
        archivePackagingPlanCells.Add( archivePackagingPlanCell ); 
 | 
        archivePackagingPlanCellIndexTree.Root().AddChild( archivePackagingPlanCellHandle,archivePackagingPlanCells.Size() - 1 ); 
 | 
      }else{ 
 | 
        archivePackagingPlanCell := archivePackagingPlanCells.Element( archivePackagingPlanCellIndex.GetValueAsNumber()); 
 | 
      } 
 | 
       
 | 
      archivePackagingPlanCell.CC_PackagingInventory( packagingPlanCell.CC_PackagingInventory() ); 
 | 
      archivePackagingPlanCell.CC_UnpackagedInventory( packagingPlanCell.CC_UnpackagedInventory() ); 
 | 
      archivePackagingPlanCell.EndingInventory( packagingPlanCell.EndingInventory() ); 
 | 
      archivePackagingPlanCell.InitialPackagingInventory( packagingPlanCell.InitialPackagingInventory() ); 
 | 
      archivePackagingPlanCell.NetDemand( packagingPlanCell.NetDemand() ); 
 | 
      archivePackagingPlanCell.NewSupply( packagingPlanCell.NewSupply() ); 
 | 
      archivePackagingPlanCell.Out( packagingPlanCell.Out() ); 
 | 
      archivePackagingPlanCell.Package( packagingPlanCell.Package() ); 
 | 
      archivePackagingPlanCell.PackagingInventory( packagingPlanCell.PackagingInventory() ); 
 | 
      archivePackagingPlanCell.TransferIn( packagingPlanCell.TransferIn() ); 
 | 
      archivePackagingPlanCell.UnpackagedInventory( packagingPlanCell.UnpackagedInventory() ); 
 | 
      archivePackagingPlanCell.Unpacking( packagingPlanCell.Unpacking() ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |