lazhen
2024-11-06 20bac026b51b5d6572a6107ef09397288bbc6dd8
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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() );
    }
  *]
}