admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
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
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdateForUnitPeriod (
  UnitPeriod unitperiod,
  Boolean isbatchedit,
  Boolean isbatcheditpercentage,
  Real actualutilizationpercentage,
  Boolean isbatcheditquantity,
  Real actualtotalavailablequantity,
  Boolean isbatcheditduration,
  Duration actualtotalavailableduration,
  Boolean isbatcheditdescription,
  String description
)
{
  Description: 'Update the unit period ActualUtilizationPercentage or ActualTotalAvailableCapacity'
  TextBody:
  [*
    actual := unitperiod.ActualUnitPeriod();
    hasactual := not isnull( actual );
    
    // If multiple ActualUnitPeriods are selected for batch editing
    if( isbatchedit )
    {
      // If ActualUtilizationPercentage is not selected to be batch editted
      if( not isbatcheditpercentage )
      {
        actualutilizationpercentage := 0.0;
    
        if( hasactual )
        {
          actualutilizationpercentage := actual.ActualUtilizationPercentage();
        }
      }
      
      // If ActualTotalAvailableQuantity is not selected to be batch editted
      if( not isbatcheditquantity )
      {
        actualtotalavailablequantity := 0.0;
    
        if( hasactual )
        {
          actualtotalavailablequantity := actual.ActualTotalAvailableQuantity();
        }
      }
      
      // If ActualTotalAvailableDuration is not selected to be batch editted
      if( not isbatcheditduration )
      {
        actualtotalavailableduration := Duration::Zero();
    
        if( hasactual )
        {
          actualtotalavailableduration := actual.ActualTotalAvailableDuration();
        }
      }
      
      // If Description is not selected to be batch editted
      if( not isbatcheditdescription )
      {
        description := '';
    
        if( hasactual )
        {
          description := actual.Description();
        }
      }
    }
    
    // If ActualUnitPeriod already exists, then update the values
    if( hasactual )
    {
      actual.Update( actualutilizationpercentage,
                     actualtotalavailablequantity,
                     actualtotalavailableduration,
                     description,
                     false );
    
    }
    // Else, create new ActualUnitPeriod
    else
    {
      ActualUnitPeriod::Create( unitperiod,
                                actualutilizationpercentage,
                                actualtotalavailablequantity,
                                actualtotalavailableduration,
                                description );
    }
  *]
}