Quintiq file version 2.0
|
#parent: #root
|
Method CleanUpTransportAvailability
|
{
|
TextBody:
|
[*
|
// Clean up transport availability
|
// Get a sorted set of all transport availabilities of this unit
|
sortedtas := selectsortedset( this, TransportAvailability, ta,
|
true,
|
ta.Start() );
|
|
head := null( TransportAvailability );
|
|
// Traverse the sorted set of transport availabilities
|
traverse( sortedtas, Elements, ta )
|
{
|
// Check if there's any transport availability is selected, if there's none, set the current transport availability as selected
|
if( isnull( head ) )
|
{
|
head := ta;
|
}
|
|
// Get the index of the selected transport availability in the sorted set
|
headpos := sortedtas.Find( head );
|
// Get the next transport availability after the selected transport availability in the sorted set
|
nextta := guard( sortedtas.Element( headpos + 1 ), null( TransportAvailability ) );
|
|
// Check if there's any next transport availability
|
if( not isnull( nextta ) )
|
{
|
// Check if the next transport availability has the same data as the selected one
|
// If the data is the same, remove the next transport availability from the sorted set and dataset
|
if( head.HasSameData( nextta ) )
|
{
|
sortedtas.Remove( nextta );
|
nextta.Delete();
|
}
|
// Else, set the next transport availability as the selected one
|
else
|
{
|
head := nextta;
|
}
|
}
|
}
|
*]
|
}
|