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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Quintiq file version 2.0
#parent: #root
Method UpdateTypeIndex (
  String operationid
)
{
  Description: 'Update operation TypeIndex and the linked instances.'
  TextBody:
  [*
    // Update type indices if the current Operation ID is not the same as the new ID
    if( this.ID() <> operationid )
    {
      // Update foreign key of all linked OperationInputOutput
      traverse( this, OperationInputOutput, rio )
      {
        rio.UpdateForeignKey( operationid,
                              guard( rio.ProductInStockingPoint_MP().ProductID(), '' ),
                              guard( rio.ProductInStockingPoint_MP().StockingPointID(), '' ) );
      }
    
      // Update type index of all linked PeriodTaskOperation
      traverse( this, PeriodTaskOperation, ptr )
      {
        ptr.UpdateTypeIndex( ptr.StartAsTypeIndex(), operationid );
      }
    
      // Update foreign key of all linked OperationCost
      traverse( this, OperationCost, oc )
      {
        oc.UpdateForeignKey( operationid );
      }
    
      // Update type index of all linked OperationInCampaignType
      traverse( this, OperationInCampaignType, rict )
      {
        rict.UpdateTypeIndex( operationid, rict.CampaignTypeName(), rict.UnitID() );
      }
    
      // Update foreign key of all linked FeedbackPeriodTaskOperation
      traverse( this, FeedbackPeriodTaskOperation, fptr )
      {
        fptr.UpdateForeignKey( operationid );
      }
    
      // Update type index of all linked SourceOperationLink
      traverse( this, SourceOperationLink, sol )
      {
        sol.UpdateTypeIndex( operationid, sol.DestOperationID() );
      }
    
      // Update type index of all linked DestinationOperationLink
      traverse( this, DestinationOperationLink, dol )
      {
        dol.UpdateTypeIndex( dol.SourceOperationID(), operationid );
      }
    
      // Update type index of all linked OperationBOM
      traverse( this, OperationBOM, oiopl )
      {
        oiopl.UpdateTypeIndex( operationid, oiopl.ProductID(), oiopl.StockingPointID(), oiopl.IsInput() );
      }
    
      // Update type index of all linked OperationInputGroup
      traverse( this, OperationInputGroup, oig )
      {
        oig.UpdateTypeIndex( operationid, oig.InputGroupID() );
      }
    
      // Update type index of all linked OperationInputSet
      traverse( this, OperationInputSet, ois )
      {
        ois.UpdateTypeIndex( ois.Name(), operationid );
      }
      
      // Update type index of all linked OperationInTransitionType
      traverse( this, OperationInTransitionType, oit )
      {
        oit.UpdateTypeIndex( operationid, oit.TransitionTypeName(), oit.UnitID() );
      }
      
      // Update type index of this Operation
      Operation::ChangeKeyOperationTypeIndex( this, operationid );
      this.IsManuallyConfigured( true );
    }
  *]
}