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 
 | 
} 
 |