Quintiq file version 2.0
#parent: #root
Method GetIsUniqueCost () derived id:Method_DialogCreateEditInventoryValueAndCost_GetIsUniqueCost
{
  #keys: '[113694.2.555296993]'
  BaseType => //DialogCreateEditAccountCost/Method_DialogCreateEditAccountCost_GetIsUniqueCost
  Body:
  [*
    // Check if the cost is unique
    data := Dialog.Data();
    /* This dialog can be open up from different place, but there is only one place we want to check the
       shadow unique cost, which is open from DialogCreateEditInventoryValueAndCosts */   
    shadowowner := guard( Dialog.Parent().astype( DialogCreateEditPISPSpecification ).Data(),
                          null( shadow[Product_MP] ) );
    
    sp := guard( DataHolderStockingPoint.Data(), 
                 null( StockingPoint_MP ) );
    
    isvalid := not exists( shadowowner, InventoryValueAndCost, cost,
                           cost <> data,
                           cost.AccountName() = SelectionAccount.BoundValue()
                           and cost.StockingPoint_MP() = sp
                           and cost.CostDriver() = StringSelectionCostDriver.BoundValue()
                           and cost.Start() = GUIDateTimeSelectorStart.DateTime().Date() );
    
    return isvalid;
  *]
}
