lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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
Quintiq file version 2.0
#parent: #root
MethodOverride GetStaffingBaseCostForShiftPattern (
  const AccountAssignment accountassignment,
  const AccountCost accountcost,
  const ShiftPattern shiftpattern
) const declarative as Real
{
  TextBody:
  [*
    // This method partially duplicates UnitPeriodTime::GetStaffingBaseCost
    // because we can't execute the code in a remote method.
    // Changes in this method might need to be added to the other one as well.
    value := 0.0;
    
    if( isnull( accountcost ) )
    {
      accountcost := this.GetUnitCost( accountassignment );
    }
    
    if( isnull( shiftpattern ) )
    {
      shiftpattern := this.ShiftPattern();
    }
    
    if( not isnull( accountcost )
        and accountcost.Start() <= this.StartDate() )
    {
      value := accountcost.Cost()
                * guard( this.CurrencyInPeriod().Rate(), 1.0 )
                * guard( this.GetTotalAvailableCapacity( shiftpattern ), 1.0 );
    }
    
    return value;
  *]
}