Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Comparison ( 
 | 
  RecycleBin recycleBin 
 | 
) as LocalTable 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // rislai Jul-17-2024 (created) 
 | 
    macroPlan := this.MacroPlan(); 
 | 
    table := recycleBin.LocalTable( relnew,Name := ""); 
 | 
     
 | 
    localColumns := construct( LocalColumns ); 
 | 
    localColumnIndexTree := NamedValueTree::Create(); 
 | 
    traverse( this,OfflinePlanColumn,column,column.ColumnDate() >=  macroPlan.StartOfPlanning().Date()){ 
 | 
      localColumn := table.LocalColumn( relnew,CustomDate := column.ColumnDate()); 
 | 
      localColumnHandle := localColumnIndexTree.GetHandle( column.ColumnDate().AsQUILL() ); 
 | 
      localColumns.Add( localColumn ); 
 | 
      localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 ); 
 | 
    } 
 | 
    traverse( this,OfflinePlanRow,row,row.Type() = "1" ){ 
 | 
      productID := row.ProductID(); 
 | 
       
 | 
      localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),CustomName := productID ); 
 | 
      traverse( row,OfflinePlanCell,cell,cell.OfflinePlanColumn().ColumnDate() >= macroPlan.StartOfPlanning().Date() ){ 
 | 
        localColumnHandle := localColumnIndexTree.GetHandle( cell.OfflinePlanColumn().ColumnDate().AsQUILL() ); 
 | 
        localColumnIndex := guard( localColumnIndexTree.Root().Child( localColumnHandle ),null( NamedValue )); 
 | 
        if( not isnull( localColumnIndex )){ 
 | 
          localColumn := localColumns.Element( localColumnIndex.GetValueAsNumber() ); 
 | 
          localCell := localRow.LocalCell( relnew,LocalCell_DemandComparison ,LocalColumn := localColumn, 
 | 
                                           BaseVersion := cell.Quantity(),CompareVersion := 0.0); 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
    return table; 
 | 
  *] 
 | 
} 
 |