Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GetIsValidNonFrozenTrip ( 
 | 
  LaneLeg laneleg, 
 | 
  Period_MP arrivalperiod 
 | 
) declarative as Boolean 
 | 
{ 
 | 
  Description: 'Check if the trip is departing or arriving within the validity of the laneleg and would not be frozen' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // FrozenPeriod moves to Unit level 
 | 
    // change to validate whether departureperiod & arrivalperiod is frozen, from the perspective of Unit 
 | 
     
 | 
    arrival := Trip::GetTripArrivalDate( arrivalperiod, laneleg ).Date();      
 | 
    departure := arrival - laneleg.LeadTime();                    
 | 
    isvalid := Trip::GetIsValidTrip( laneleg, departure.Date(), arrival ); 
 | 
     
 | 
    if( isvalid ) 
 | 
    { 
 | 
      departureperiod := select( laneleg.MacroPlan(), PlanningPeriod, planningperiod, 
 | 
                                 planningperiod.Start() <= departure 
 | 
                                 and planningperiod.End() > departure ); 
 | 
     
 | 
      unit := laneleg.Lane().Unit(); 
 | 
       
 | 
      isvalid := not( isnull( departureperiod ) 
 | 
                      or isnull( arrivalperiod ) 
 | 
                      or departureperiod.IsHistorical() 
 | 
                      or arrivalperiod.IsHistorical() 
 | 
                      or Unit::GetIsPeriodFrozen( unit, departureperiod ) 
 | 
                      or Unit::GetIsPeriodFrozen( unit, arrivalperiod ) ); 
 | 
    } 
 | 
     
 | 
    return isvalid 
 | 
  *] 
 | 
} 
 |