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
| Quintiq file version 2.0
| #parent: #root
| Method UpdateUnitPeriod (
| MacroPlan macroplan,
| UnitPeriod unitperiod,
| Boolean updatecapacity,
| Real maxload,
| Real efficiency,
| Number nrofunit,
| Duration maintenance,
| Real mincapacity,
| Real maxcapacity
| )
| {
| Description: 'Update maxload percetange for unitcapacity or unitavailability'
| TextBody:
| [*
| if ( updatecapacity )
| {
| if( unitperiod.istype( UnitPeriodTime ) )
| {
| upt := unitperiod.astype( UnitPeriodTime );
| shiftpattern := select( macroplan, ShiftPattern, sf, sf.Name()='24x7' ); //always use 24x7,keep it simple for capacity calculation
| UnitAvailability::CreateOrUpdateForUnitPeriodTime( upt, true, upt.Period_MP().TimeUnit(),
| maintenance, true, efficiency, false, 1.0,
| true, shiftpattern, true, maxload,
| true, nrofunit, false,
| false, 0.0 );
|
| }
| else if ( unitperiod.istype( UnitPeriodQuantity ) )
| {
| upt := unitperiod.astype( UnitPeriodQuantity );
| UnitCapacity::CreateOrUpdateForUnitPeriodQuantity( upt, true, upt.Period_MP().TimeUnit(),
| mincapacity, maxcapacity, true,
| maxload, true, nrofunit, false );
|
| }
| }
| *]
| InterfaceProperties { Accessibility: 'Module' }
| }
|
|