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
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method CreateUpdateLocationHierarchy (String setId_i, String id_i, String parentID_i,  
 |    String name_i, String auxString_i, String description_i,  
 |    Date validityStart_i, Date validityEnd_i, String defaultCurrency_i,  
 |    Boolean isPlannedInfinite_i, String groupName_i, Boolean useGroupIcon_i,  
 |    String unitID_i, String unitOfMeasureID_i) as LibDMC_LocationHierarchy 
 |  { 
 |    Description: 
 |    [* 
 |      Logic to check if a location exists before creating/updating it 
 |      1) We handle checking logic here as it minimizes the risk of forgetting to check if an instance exists before creating it 
 |      2) Instance exists checking is not done in static create as it violates model metrics 
 |    *] 
 |    TextBody: 
 |    [* 
 |      location := LibDMC_LocationHierarchy::FindLocation( setId_i, id_i ); 
 |       
 |      if( isnull( location ) ) 
 |      { 
 |        location := LibDMC_LocationHierarchy::Create( this, 
 |                                                      setId_i, 
 |                                                      id_i ); 
 |      } 
 |       
 |      location.Update( parentID_i, 
 |                       name_i, 
 |                       auxString_i, 
 |                       description_i, 
 |                       validityStart_i, 
 |                       validityEnd_i, 
 |                       defaultCurrency_i, 
 |                       isPlannedInfinite_i, 
 |                       groupName_i, 
 |                       useGroupIcon_i, 
 |                       unitID_i, 
 |                       unitOfMeasureID_i ); 
 |       
 |      return location; 
 |    *] 
 |  } 
 |  
  |