Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Archive (
|
const MacroPlan macroPlan,
|
Archive archive
|
)
|
{
|
TextBody:
|
[*
|
// Akari Oct-23-2024 (created)
|
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,packagingPlanCell.PackagingPlanColumn().StartDate() >= macroPlan.StartOfPlanning().Date() ){
|
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() );
|
}
|
*]
|
}
|