Quintiq file version 2.0
#parent: #root
Method New (
  structured[SalesSegment_MP] salesSegmentsSelected,
  structured[Product_MP] products
) id:Method_DialogCreateEditFulfillmentRestriction_New
{
  #keys: '[135040.0.183105624]'
  Body:
  [*
    // Create a new fulfillment restriction
    // Select an owner
    // Get a default sales segment so we can relshadow fulfillment restriction and bind to dialog
    product   := null( Product_MP );
    owner     := null( SalesSegment_MP );
    
    if ( products.Size() >0 )
    {
      product := minselect( products, Elements, p, p.Child( relsize ) =0, p.DisplayIndex() );  
    }
    
    //get default SS
    if( salesSegmentsSelected.Size() > 0 )
    {
      
      //get a default leaf sales segment from the selected sales segment
      owner   := select(  salesSegmentsSelected, Elements.AllChildren.AsChildren, ss, ss.Child( relsize ) =0 );
    }
    else
    {
      
      owner   := FulfillmentRestriction::GetDefaultOwner( MacroPlan, product );
    }
    
    
    obj       := owner.FulfillmentRestriction( relshadow,
                                               ProductID := guard( product.ID(), "" ),
                                               SalesSegmentName := "",
                                               StartDate := Date::MinDate(),
                                               EndDate := Date::MaxDate(),
                                               Product_MP := product
                                              );
    
    DataHolderDialogData.Data( &obj );
    
    Form.SetDefaultValue( salesSegmentsSelected );
    
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
