Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetTotalAvailableCapacity ( 
 | 
  const ShiftPattern shiftpattern 
 | 
) const declarative as Real 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    value := 1.0; 
 | 
     
 | 
    planningup := ifexpr( this.IsPlanning(), 
 | 
                          this,                                             // Case 1: planning UnitPeriod: aggregate values from associated period tasks  
 | 
                          this.PlanningUP().astype( UnitPeriodTimeBase ) ); // Case 2: base, non planning UnitPeriod: disaggregate value from planning UnitPeriod 
 | 
     
 | 
    if( not isnull( planningup ) ) 
 | 
    { 
 | 
       value := planningup.GetBaseAvailableCapacity( shiftpattern ).HoursAsReal() * planningup.MaximumLoadPercentage() / 100; 
 | 
    } 
 | 
     
 | 
    return value; 
 | 
  *] 
 | 
} 
 |