Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method New ( 
 | 
  FormInventoryCosts formInventoryCosts, 
 | 
  structured[ProductInStockingPoint_MP] pisp, 
 | 
  Account_MP account 
 | 
) id:Method_DialogCreateEditInventoryCost_New 
 | 
{ 
 | 
  #keys: '[145730.0.2100900206]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Create new inventory costs for one or more PISPs 
 | 
    if( isnull( account ) ) 
 | 
    { 
 | 
      if( DataHolderSelectedAccounts.Data().Size() > 0 ) 
 | 
      { 
 | 
        account := DataHolderSelectedAccounts.Data().Element( 0 ); 
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        account := MacroPlan.GetDefaultAccount( Form.GetCostType() ); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    if( pisp.Size() = 0 ) 
 | 
    { 
 | 
      // Select one pisp & populate into dialog 
 | 
      filteredpisp := select( DataHolderPISP.Data(), Elements, e, e.IsLeaf() ); 
 | 
      pisp.Add( filteredpisp ); 
 | 
    } 
 | 
     
 | 
    // Create shadow obj & set default value when creating new cost 
 | 
    firstPisp := pisp.First(); 
 | 
    obj := firstPisp.Product_MP().InventoryValueAndCost( relshadow, 
 | 
                                                         ID := MacroPlan.IDHolder().GetInventoryValueAndHoldingCostID(), 
 | 
                                                         ProductID := firstPisp.ProductID(), 
 | 
                                                         StockingPointID := firstPisp.StockingPointID(), 
 | 
                                                         AccountName := account.Name(), 
 | 
                                                         Account_MP := account, 
 | 
                                                         CostDriver := account.DefaultCostDriver(), 
 | 
                                                         Cost := account.DefaultCost(), 
 | 
                                                         StockingPoint_MP := firstPisp.StockingPoint_MP(), 
 | 
                                                         LengthOfTime := account.DefaultLengthOfTime(), 
 | 
                                                         TimeUnit := account.DefaultTimeUnit(), 
 | 
                                                         Start := MacroPlan.StartOfPlanning().Date() ); 
 | 
                             
 | 
    DataHolderDialogData.Data( &obj ); 
 | 
    DataHolderPISPs.Data( pisp.Copy() ); 
 | 
    DataHolderForm.Data( formInventoryCosts ); // Form that opens the dialog, to select the newly created object in list 
 | 
     
 | 
    this.Initialize(); 
 | 
  *] 
 | 
} 
 |