Quintiq file version 2.0
|
#parent: #root
|
Method SynchronizeLaneLeg (
|
Lane originallane
|
)
|
{
|
Description: 'Ensures the newly copied lanelegs have the same attributes as the original.'
|
TextBody:
|
[*
|
// MKO2 Aug-9-2016 (created)
|
idholder := this.Unit().MacroPlan().IDHolder();
|
|
traverse( originallane, LaneLeg, originallaneleg )
|
{
|
// select the lane legs on the newly copied lane
|
newlaneleg := select( this, LaneLeg, ll,
|
ll.DestinationStockingPointID() = originallaneleg.DestinationStockingPointID()
|
and ll.OriginStockingPointID() = originallaneleg.OriginStockingPointID() );
|
|
// update lane leg with original attributes
|
if( not isnull( newlaneleg ) )
|
{
|
newlaneleg.Update( newlaneleg.Lane(),
|
originallaneleg.AsOriginStockingPointLeg(),
|
originallaneleg.AsDestinationStockingPointLeg(),
|
originallaneleg.IsEnabled(),
|
originallaneleg.Start(),
|
originallaneleg.End(),
|
originallaneleg.HasUserLeadTime(),
|
originallaneleg.LeadTime(),
|
originallaneleg.HasStandardDeviationLeadTimeLaneLeg(),
|
originallaneleg.StandardDeviationLeadTimeLaneLeg(),
|
originallaneleg.CO2Emission() );
|
|
// duplicate costs on new lane leg
|
traverse( originallaneleg, LaneLegCost, cost )
|
{
|
accountassignment := select( this.Unit(), UnitAccount, ua,
|
ua.Account_MP() = cost.AccountAssignment().Account_MP()
|
and ua.CostDriver() = cost.AccountAssignment().CostDriver() );
|
|
if( not isnull( accountassignment ) )
|
{
|
LaneLegCost::Create( idholder.GetLaneLegCostID(),
|
newlaneleg,
|
accountassignment.Account_MP(),
|
accountassignment.CostDriver(),
|
cost.Start(),
|
cost.TimeUnit(),
|
cost.LengthOfTime(),
|
cost.Cost(),
|
false );
|
}
|
}
|
}
|
}
|
*]
|
}
|