Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method UpdateTypeIndex ( 
 | 
  String name 
 | 
) 
 | 
{ 
 | 
  Description: 'Update sales segment TypeIndex.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Execute the logic below only if the new name is not the same as the old name 
 | 
    if( name <> this.Name() ) 
 | 
    { 
 | 
      // Update foreign key of this SalesSegment_MPs' children SalesSegment_MPs 
 | 
      traverse( this, Child, c ) 
 | 
      { 
 | 
        c.UpdateForeignKey( name ); 
 | 
      } 
 | 
       
 | 
      // Update type index of this SalesSegment_MPs' FulfillmentRestrictions 
 | 
      traverse( this, FulfillmentRestriction, fr ) 
 | 
      { 
 | 
        fr.UpdateTypeIndex( name, fr.ProductID(), fr.StartDate() ); 
 | 
      } 
 | 
     
 | 
      // Update foreign key of this SalesSegment_MPs' SalesDemands 
 | 
      traverse( this, SalesDemand, sdemand ) 
 | 
      { 
 | 
        sdemand.UpdateForeignKey( sdemand.ProductID(), 
 | 
                                  sdemand.StockingPointID(), 
 | 
                                  name, 
 | 
                                  sdemand.PriorityName(), 
 | 
                                  sdemand.CurrencyID(), 
 | 
                                  sdemand.UnitOfMeasureName() ); 
 | 
      } 
 | 
       
 | 
      // Update type index of this SalesSegment_MPs' PostponementSpecification 
 | 
      if( not isnull( this.PostponementSpecification() ) ) 
 | 
      { 
 | 
        this.PostponementSpecification().UpdateTypeIndex( name ); 
 | 
      } 
 | 
       
 | 
      // Update foreign key of this SalesSegment_MPs' SalesLevel 
 | 
      traverse( this, ServiceLevelBase, sl )  
 | 
      { 
 | 
        sl.UpdateForeignKey( sl.ProductID(), sl.StockingPointID(), name );  
 | 
      } 
 | 
       
 | 
      // Update type index of this SalesSegment_MP 
 | 
      SalesSegment_MP::ChangeKeySalesSegmentTypeIndex( this, name ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |