yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
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 );
    }
  *]
}