haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
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 );
    }
  *]
}