yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
DeclarativeOwningNMRelation CalcPeriodTaskLaneLeg
{
  #keys: '1[110880.9.909830572]'
  Expression:
  [*
    // soh yee Jun-16-2015 (created)
    
    ups := construct( UnitPeriods );
    
    if( this.HasValidDeparture() and this.HasValidArrival() )
    {
      // Time base transportation: Consume capacity from departing period to arriving period.
      // Quantity base transportation: Consume only the capacity in departing period.
      unitperiodend := ifexpr( this.IsTimeBaseTransportation(), 
                               this.ArrivalUnitPeriod().Period_MP(),
                               this.DepartureUnitPeriod().Period_MP() );                           
                  
      ups := selectset( this, LaneLeg.AsProcess_MP.PlanningUnitPeriod, up,
                        up.Period_MP().IsInPeriod( this.DepartureUnitPeriod().Period_MP(), unitperiodend ) );
    }
    
    return &ups;
  *]
  HelperRelation: UnitPeriod
  InstantiationType: PeriodTaskLaneLeg
  Relation: PeriodTaskLaneLeg
}