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
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method UpdateShiftPattern ( 
 |    String unitname, 
 |    String shiftpatternname, 
 |    String date 
 |  ) 
 |  { 
 |    TextBody: 
 |    [* 
 |      // Update UnitAvailability for the selected Unit 
 |      // Select Unit according to the passed in unitname 
 |      unit := select(  this, MacroPlan.Unit, u, u.Name() = unitname ); 
 |       
 |      // Execute the following logic only if Unit is found 
 |      if ( not isnull( unit ) ) 
 |      { 
 |        // Select ShiftPattern according to the passed in shiftpatternname 
 |        shiftpattern := select( this, MacroPlan.ShiftPattern, sp, sp.Name() = shiftpatternname ); 
 |         
 |        // Create custom StringToDate converter and covert the passed in date String into Date datatype 
 |        converter := StringToDate::StandardConverter(); 
 |        converter.SetCustomConversion(); 
 |        converter.CustomFormatString( "dd-MMM-yyyy" ); 
 |        newdate := converter.Convert( date ); 
 |         
 |        // Select the Unit's UnitAvailability that starts at newdate 
 |        ua := select( unit, UnitAvailability, ua, true , ua.Start().Date() = newdate  ); 
 |        uas := construct( UnitAvailabilitys ); 
 |        uas.Add( ua ); 
 |         
 |        // Update the selected UnitAvailability 
 |        UnitAvailability::Update( uas, 
 |                                  unit, 
 |                                  ua.Start(), 
 |                                  false, 
 |                                  ua.TimeUnit(), 
 |                                  ua.Maintenance(), 
 |                                  false, 
 |                                  ua.Efficiency(), 
 |                                  false, 
 |                                  ua.Allocation(), 
 |                                  false, 
 |                                  shiftpattern, 
 |                                  false, 
 |                                  ua.MaximumLoadPercentage(), 
 |                                  false, 
 |                                  ua.NrOfUnitsOpen(), 
 |                                  false, 
 |                                  ua.MinimumLoadThreshold() 
 |                                ); 
 |      } 
 |    *] 
 |  } 
 |  
  |