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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  StaticMethod Create ( 
 |    String id, 
 |    MacroPlan owner, 
 |    String name, 
 |    Unit parent, 
 |    String capacitytype, 
 |    Group group, 
 |    UnitOfMeasure_MP unitofmeasure, 
 |    Currency_MP currency, 
 |    SupplyChainView view, 
 |    Boolean isvisible, 
 |    Number gridx, 
 |    Number gridy, 
 |    Date startdate, 
 |    Date enddate, 
 |    Duration campaigntypeduration, 
 |    Boolean isplannedinfinite, 
 |    Real minimumquantity, 
 |    Boolean hasmaximumquantity, 
 |    Real maximumquantity, 
 |    Real lotsize, 
 |    String usericonname, 
 |    String textcolor, 
 |    String namedisplaybehavior, 
 |    String createstockingpointtype, 
 |    String quantitytoprocess, 
 |    String giscountrycode, 
 |    String giscity, 
 |    String gispostalcode, 
 |    String notes, 
 |    Boolean hascapacitysmoothing, 
 |    Boolean issmoothcapacityoverallperiods, 
 |    Number usercapacitysmoothinglength, 
 |    Real capacitysmoothingpercentagedelta, 
 |    Boolean isoverlapcapacitysmoothing, 
 |    Boolean isincludedinsupplyspec, 
 |    Boolean issupplier, 
 |    Boolean hasuserfrozenfutureduration, 
 |    Duration userfrozenfutureduration, 
 |    Boolean useshiftoptimization, 
 |    Boolean isfromdb 
 |  ) as Unit 
 |  { 
 |    Description: 'Create a unit base on its type' 
 |    TextBody: 
 |    [* 
 |      // Create a unit 
 |      unit := owner.Unit( relnew, ID := id ); 
 |       
 |      // Update the attributes of the newly created unit 
 |      unit.Update( id, name, parent, 
 |                   capacitytype, 
 |                   group, unitofmeasure, currency, 
 |                   startdate, enddate, campaigntypeduration, 
 |                   isplannedinfinite, 
 |                   minimumquantity, hasmaximumquantity, maximumquantity, lotsize, 
 |                   usericonname, 
 |                   quantitytoprocess, 
 |                   giscountrycode, giscity, gispostalcode, 
 |                   notes, 
 |                   hascapacitysmoothing, 
 |                   issmoothcapacityoverallperiods, 
 |                   usercapacitysmoothinglength, 
 |                   capacitysmoothingpercentagedelta, 
 |                   isoverlapcapacitysmoothing, 
 |                   isincludedinsupplyspec, 
 |                   issupplier, 
 |                   hasuserfrozenfutureduration, 
 |                   userfrozenfutureduration, 
 |                   useshiftoptimization, 
 |                   isfromdb ); 
 |       
 |      // SynchronizeAfterCreation should have created a default unit node, update it 
 |      unitnode := select( unit, UnitNode, n, n.SupplyChainView() = view ) 
 |      if( not isnull( unitnode ) ) 
 |      { 
 |        unitnode.Update( gridx, gridy, isvisible, namedisplaybehavior, textcolor, '' ); 
 |      } 
 |       
 |      // Creating default stocking points depending on what's the createstockingpointtype is 
 |      if( createstockingpointtype = Translations::MP_Designer_DialogCreateUnitWizard_DefaultStockingPoint_Combined() ) 
 |      { 
 |        unit.CreateDefaultInputOutputStockingPoint( view, gridx + 3, gridy, unit.Name(), false, true, isfromdb ); 
 |      } 
 |       
 |      if( createstockingpointtype = Translations::MP_Designer_DialogCreateUnitWizard_DefaultStockingPoint_Input() 
 |          or createstockingpointtype = Translations::MP_Designer_DialogCreateUnitWizard_DefaultStockingPoint_Separate() ) 
 |      { 
 |        unit.CreateDefaultInputOutputStockingPoint( view, gridx - 3, gridy, 'Input SP for ' + unit.Name(), true, false, isfromdb ); 
 |      } 
 |       
 |      if( createstockingpointtype = Translations::MP_Designer_DialogCreateUnitWizard_DefaultStockingPoint_Output() 
 |          or createstockingpointtype = Translations::MP_Designer_DialogCreateUnitWizard_DefaultStockingPoint_Separate() ) 
 |      { 
 |        unit.CreateDefaultInputOutputStockingPoint( view, gridx + 3, gridy, 'Output SP for ' + unit.Name(), false, false, isfromdb ); 
 |      } 
 |       
 |      // Set all parents 
 |      unit.SetAllParent(); 
 |       
 |      return unit; 
 |    *] 
 |  } 
 |  
  |