hongji.li
2023-11-03 aefafd2142478d4fb07d6b8b45c3047e247389e0
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
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' }
}