Quintiq file version 2.0
#parent: #root
Method NewInventorySpecification (
  internal[GUIComponent] parent,
  ProductInStockingPointInPeriod pispip
) as InventorySpecification id:Method_DialogCreateEditInventorySpecification_NewInventorySpecification
{
  #keys: '[105706.0.1322690604]'
  Body:
  [*
    // New inventory specification
    
    Dialog.ShowHideComponentForBatchEdit( false, true );
    
    stockingpoint := guard( pispip.ProductInStockingPoint_MP().StockingPoint_MP(), null( StockingPoint_MP ) );
    owner := guard( pispip.ProductInStockingPoint_MP().Product_MP(), InventorySpecification::GetDefaultOwner( MacroPlan, stockingpoint ) );
    
    // Start
    pispipstart := guard( pispip.Start().Date(), MacroPlan.StartOfPlanning().Date() );
    data := owner.InventorySpecification( relshadow, StockingPointID := stockingpoint.ID(), ProductID := owner.ID(), Start := pispipstart );
    data.StockingPoint_MP( relset, stockingpoint );
    
    Dialog.Data( data );
    Dialog.SetDefaultValue( pispip );
    
    result := Dialog.DoModal( parent );
    newobj := null( InventorySpecification );
    
    if( result > 0 )
    {
      newobj := InventorySpecification::Create( data.Product_MP(),
                                                data.StockingPoint_MP(),
                                                data.Start(),
                                                false,
                                                0.0,
                                                0.0,
                                                data.HasMinLevelInDays(),
                                                data.MinLevelInDays(),
                                                data.MinLevelInQuantity(),
                                                data.HasMaxLevel(),
                                                data.HasMaxLevelInDays(),
                                                data.MaxLevelInDays(),
                                                data.MaxLevelInQuantity(),
                                                false,
                                                false );
    }
    
    return newobj;
  *]
}
