Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method UpdateTypeIndex ( 
 | 
  String stockingpointid 
 | 
) 
 | 
{ 
 | 
  Description: 'Update stocking point TypeIndex and linked instances.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Update stocking point TypeIndex and linked instances only if the new ID is not the same as the old ID 
 | 
    if( stockingpointid <> this.ID() ) 
 | 
    { 
 | 
      // Update type index of all related StockingPointInPeriod 
 | 
      traverse( this, StockingPointInPeriod, spip ) 
 | 
      { 
 | 
        spip.UpdateTypeIndex( stockingpointid, spip.Start(), spip.End() ); 
 | 
      } 
 | 
     
 | 
      // Update type index of all related ProductInStockingPoint_MP 
 | 
      traverse( this, ProductInStockingPoint_MP, pisp ) 
 | 
      { 
 | 
        pisp.UpdateTypeIndex( pisp.ProductID(), stockingpointid ); 
 | 
      } 
 | 
     
 | 
      // Update foreign key of all related StockingPointCost 
 | 
      traverse( this, StockingPointCost, spcost ) 
 | 
      { 
 | 
        spcost.UpdateForeignKey( stockingpointid ); 
 | 
      } 
 | 
     
 | 
      // Update type index of all related StockingPointInLane 
 | 
      traverse( this, StockingPointInLane, spilane ) 
 | 
      { 
 | 
        spilane.UpdateTypeIndex( stockingpointid, spilane.OriginLaneID(), spilane.DestinationLaneID(), true ); 
 | 
      } 
 | 
     
 | 
      // Update type index of all related StockingPointCapacity 
 | 
      traverse( this, StockingPointCapacity, spcapacity ) 
 | 
      { 
 | 
        spcapacity.UpdateTypeIndex( stockingpointid, spcapacity.Start() ); 
 | 
      } 
 | 
     
 | 
      // Update foreign key of all related StockingPointAccount 
 | 
      traverse( this, StockingPointAccount, spaccount ) 
 | 
      { 
 | 
        spaccount.UpdateForeignKey( stockingpointid ); 
 | 
      } 
 | 
     
 | 
      // Update type index of all related StockingPointUnit 
 | 
      traverse( this, StockingPointUnit, spunit ) 
 | 
      { 
 | 
        spunit.UpdateTypeIndex( stockingpointid, spunit.UnitID(), spunit.IsInput() ); 
 | 
      } 
 | 
       
 | 
      // Update foreign key of all related InventoryValueAndCost 
 | 
      traverse( this, InventoryValueAndCost, ivc ) 
 | 
      { 
 | 
        ivc.UpdateForeignKey( ivc.ProductID(), stockingpointid ); 
 | 
      } 
 | 
       
 | 
      // Update type index of all related PISPSpecification 
 | 
      traverse( this, PISPSpecification, pspec ) 
 | 
      { 
 | 
        pspec.UpdateTypeIndex( pspec.ProductID(), stockingpointid ); 
 | 
      } 
 | 
       
 | 
      // Update EntityID of subsets for StockingPoint_MP 
 | 
      traverse( this, SubsetEntityInOptimizerPuzzleBase, subsets ) 
 | 
      { 
 | 
        subsets.UpdateTypeIndex( subsets.OptimizerPuzzleName(), stockingpointid, subsets.EntityType() ); 
 | 
      }  
 | 
       
 | 
      // Update type index of this StockingPoint_MP 
 | 
      this.IsManuallyConfigured( true ); 
 | 
      StockingPoint_MP::ChangeKeyStockingPointTypeIndex( this, stockingpointid ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |