hongji.li
2023-11-07 192c736b8ac4b2d84cb823ac71f17e507948a5e8
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
Quintiq file version 2.0
#parent: #root
Method SetDefaultValue (
  UnitPeriodTime unitperiodtime
) id:Method_DialogCreateEditUnitAvailability_SetDefaultValue
{
  #keys: '[136682.1.1068361498]'
  Body:
  [*
    // Set the default value for the fields in the dialog
    
    data := DataHolderDialogData.Data();
    
    start := MacroPlan.Start();
    timeunit := MacroPlan.StartOfPlanningPeriod().TimeUnit();
    maintenance := Duration::Zero();
    efficiency := 1.0;
    allocation := 1.0;
    shiftpattern := MacroPlan.DefaultShiftPattern();
    maxloadpercentage := MacroPlan.GlobalParameters_MP().DefaultMaxLoadPercentage();
    nrofunitopen := 1;
    minloadthreshold := 0.0;
    
    if( not isnull( unitperiodtime ) )
    {
      // To inherit the value from last unit availability while creating a new unit availability
      unitavailability := unitperiodtime.UnitAvailability();
      start := unitperiodtime.Start();
    
      if( not isnull( unitavailability ) )
      {
        timeunit := unitavailability.TimeUnit();
        maintenance := unitavailability.Maintenance();
        efficiency := unitavailability.Efficiency();
        allocation := unitavailability.Allocation();
        shiftpattern := unitavailability.ShiftPattern();
        maxloadpercentage := unitavailability.MaximumLoadPercentage();
        nrofunitopen := unitavailability.NrOfUnitsOpen();
        minloadthreshold := unitavailability.MinimumLoadThreshold();
      }
      else
      {
        timeunit := unitperiodtime.Period_MP().TimeUnit();
        maintenance := unitperiodtime.Maintenance();
        efficiency := unitperiodtime.Efficiency();
        allocation := unitperiodtime.Allocation();
        shiftpattern := unitperiodtime.ShiftPattern();
        maxloadpercentage := unitperiodtime.MaximumLoadPercentage();
        nrofunitopen := unitperiodtime.NrOfOpen();
        minloadthreshold := unitperiodtime.MinimumLoadThreshold();
      }
    }
    
    // Assigning value to Read-Only attribute will result in runtime error.
    if( isnull( data.WrappedInstance() ) )
    {
      data.Start( start );
    }
    
    data.TimeUnit( timeunit );
    data.Maintenance( maintenance );
    
    data.Efficiency( efficiency );
    data.Allocation( allocation );
    
    data.ShiftPattern( relset, shiftpattern );
    data.MaximumLoadPercentage( maxloadpercentage );
    
    data.NrOfUnitsOpen( nrofunitopen );
    
    data.MinimumLoadThreshold( minloadthreshold );
  *]
}