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,transferPlanCell.TransferPlanColumn().ColumnDate() >= macroPlan.StartOfPlanning().Date() ){
|
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() );
|
|
}
|
*]
|
}
|