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;
| *]
| }
|
|