Quintiq file version 2.0
#parent: #root
Method CreateCost (
  structured[Account_MP] accounts,
  LaneLeg laneleg
) id:Method_DialogCreateEditLaneLeg_CreateCost
{
  #keys: '[110880.4.1540402728]'
  Body:
  [*
    // Create shadow lane leg cost
    
    traverse( accounts, Elements.AccountAssignment.astype( UnitAccount ), ua,
              AccountAssignment::IsForProcess( ua.CostDriver() ) and ua.Unit() = laneleg.Lane().Unit() )
    {
      if( not exists( Dialog.Data(), LaneLegCost, cost, cost.UnitAccount() = ua ) )
      {
        account := ua.Account_MP();
        Dialog.Data().LaneLegCost( relnew,
                                   ID := MacroPlan.IDHolder().GetLaneLegCostID(),
                                   Start := MacroPlan.Start().Date(),
                                   TimeUnit := account.DefaultTimeUnit(),
                                   LengthOfTime := account.DefaultLengthOfTime(),
                                   Cost := account.DefaultCost(),
                                   UnitAccount := ua,             // Need when deleting shadow cost
                                   AccountAssignment := ua );     // Need when editing cost
      }
    }
  *]
}
