Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Function CalcBaseAvailableCapacity 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    The following is to get available time based on shift pattern. StartOfWeek will first set by GlobalParameter.FirstWeekDay. 
 | 
    E.g. a unit periods has the periods of 3 months, on the second week second day of the unit periods, we have i=15, this will resulted in 15 mod 7 = 1 and we'll get shift day 1. 
 | 
    Then unavailable time and shift capacity will be calculated to get available time for the day. Available time will then be multiplied by numberofunit to get Base available capacity 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Determined by the used shift pattern, the efficiency rate, maintenance considering its maintenance factor, allocation, max load percentage and calendar elements. 
 | 
     
 | 
    value := Duration::Zero(); 
 | 
     
 | 
    if( this.IsPlanning() or this.IsBase() ) 
 | 
    { 
 | 
      value := this.GetBaseAvailableCapacity( this.ShiftPattern() ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      value := sum( this.GetChildrenOfPeriodDimension(), Elements.astype( UnitPeriodTimeBase ), e, e.BaseAvailableCapacity() ); 
 | 
    } 
 | 
     
 | 
    this.BaseAvailableCapacity( value ); 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |