| 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() ); | 
|     } | 
|   *] | 
| } |