| 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(); | 
|   *] | 
| } |