陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
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;
  *]
}