Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method UpdateTypeIndex ( 
 | 
  String id 
 | 
) 
 | 
{ 
 | 
  Description: 'Update currency TypeIndex and the linked instances' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Execute the code only if the ID is changed 
 | 
    if( this.ID() <> id ) 
 | 
    { 
 | 
      // Update CurrencyRate_MP with the new currency ID 
 | 
      traverse( this, CurrencyRate_MP, cr ) 
 | 
      { 
 | 
        cr.UpdateTypeIndex( id, cr.Start() ); 
 | 
      } 
 | 
       
 | 
      // Update SalesDemand with the new currency ID 
 | 
      traverse( this, SalesDemand, sd ) 
 | 
      { 
 | 
        sd.UpdateForeignKey( sd.ProductID(), 
 | 
                             sd.StockingPointID(), 
 | 
                             sd.SalesSegmentName(), 
 | 
                             sd.PriorityName(), 
 | 
                             id, 
 | 
                             sd.UnitOfMeasureName() );                        
 | 
      } 
 | 
     
 | 
      // Update StockingPoint_MP with the new currency ID 
 | 
      traverse( this, StockingPoint_MP, sp ) 
 | 
      { 
 | 
        sp.UpdateForeignKey( sp.UnitOfMeasureName(), id, sp.GroupName(), sp.UnitID() ); 
 | 
      } 
 | 
     
 | 
      // Update Unit with the new currency ID 
 | 
      traverse( this, Unit, unit ) 
 | 
      { 
 | 
        unit.UpdateForeignKey( id, 
 | 
                               unit.GroupName(), 
 | 
                               unit.ParentUnitID(), 
 | 
                               unit.UnitOfMeasureName() ); 
 | 
      } 
 | 
       
 | 
      // Update this Currency_MP with the new currency ID 
 | 
      this.IsManuallyConfigured( true ); 
 | 
      Currency_MP::ChangeKeyCurrencyTypeIndex( this, id ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |