| 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
 | | Quintiq file version 2.0 |  | #parent: #root |  | StaticMethod CreateKPIValueInPeriod ( |  |   Boolean createsales, |  |   Boolean createinventoryholding, |  |   Boolean createfixed, |  |   Boolean createstaffing, |  |   Boolean createnrofunits, |  |   Boolean createtime, |  |   Boolean createvolume, |  |   KPIValue kpivalue, |  |   DateTime start, |  |   DateTime end, |  |   Real sales, |  |   Real inventoryholding, |  |   Real fixed, |  |   Real staffing, |  |   Real nrofunits, |  |   Real time, |  |   Real volume, |  |   Account_MP account, |  |   String kpiname, |  |   output KPIValueInPeriods periods |  | ) |  | { |  |   Description: 'Create kpi value in period' |  |   TextBody: |  |   [* |  |     // Check if KPIValueInPeriod for cost driver sales should be created |  |     if( createsales ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, sales, Translations::MP_AccountAssignmentCostDriverSales() ); |  |       periods.Add( kvip ); |  |     } |  |     // Check if KPIValueInPeriod for cost driver inventory holding should be created |  |     if( createinventoryholding ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, inventoryholding, Translations::MP_AccountAssignmentCostDriverInventoryHolding() ); |  |       periods.Add( kvip ); |  |     } |  |     // Check if KPIValueInPeriod for cost driver fixed should be created |  |     if( createfixed ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, fixed, Translations::MP_AccountAssignmentCostDriverFixed() ); |  |       periods.Add( kvip ); |  |     } |  |     // Check if KPIValueInPeriod for cost driver staffing should be created |  |     if( createstaffing ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, staffing, Translations::MP_AccountAssignmentCostDriverStaffing() ); |  |       periods.Add( kvip ); |  |     } |  |     // Check if KPIValueInPeriod for cost driver number of units should be created |  |     if( createnrofunits ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, nrofunits, Translations::MP_AccountAssignmentCostDriverNrOfUnits() ); |  |       periods.Add( kvip ); |  |     } |  |     // Check if KPIValueInPeriod for cost driver time should be created |  |     if( createtime ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, time, Translations::MP_AccountAssignmentCostDriverTime() ); |  |       periods.Add( kvip ); |  |     } |  |     // Check if KPIValueInPeriod for cost driver volume should be created |  |     if( createvolume ) |  |     { |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, volume, Translations::MP_AccountAssignmentCostDriverVolume() ); |  |       periods.Add( kvip ); |  |     } |  |     // KPIs with children |  |     if( account.Child( relsize ) > 0 ) |  |     { |  |       value := sum( periods, Elements, p, |  |                     p.KPIValue().KPI().astype( Account ).Parent() = kpivalue.KPI().astype( Account ), |  |                     p.Value() ); |  |      |  |       kvip := KPIValueInPeriod::Create( kpivalue, start, end, value, kpiname ); |  |       periods.Add( kvip ); |  |     } |  |   *] |  | } | 
 |