admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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() );
    
    }
  *]
}