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