Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogCreateEditProduct_OnOK #extension
{
  Body:
  [*
    // onOK for ProductDialog
    // When the user clicks ok,       
    // we either create or edit the data
    this.ApplyChanges();
    this.SetAttributeAfterApplyData();
    
    data := DataHolderDialogData.Data();
    
    if( isnull( data.WrappedInstance() ) ) // New
    {
      // When create product, parent relation must be null (as server method has logic to detect parent change using this relation)
      data.Parent( relflush );
      data.Commit();
      DataHolderForm.Data().ListProduct().SelectByKey( data.WrappedInstance().Key() );
    } 
    else
    { 
      supplyChainView := select( MacroPlan, ViewBase.astype( SupplyChainView ), scv, true );  //TODO!! handling of current SupplyChainView
      
      Product_MP::Update(  DataHolderDialogDatas.Data()
                          ,CheckBoxBatchEditParent.Checked()
                          ,CheckBoxBatchEditUOM.Checked()
                          ,CheckBoxBatchEditShelfLife.Checked()
                          ,CheckBoxBatchEditMaturation.Checked() 
                          ,CheckBoxBatchEditByProduct.Checked()
                          ,CheckBoxBatchEditExcludeFromOptimizer.Checked()
                          ,CheckboxBatchEditExcludeFromFulfillmentKPI.Checked()
                          ,CheckBoxBatchEditNote.Checked()
                          ,EditFieldID.Text()
                          ,EditFieldName.Text()
                          ,guard( selParentProduct.Data(), null(  Product_MP ) )
                          ,guard( DropDownListUOM.Data(), null( UnitOfMeasure_MP ) )
                          ,EditFieldGeneration.Text()
                          ,EditFieldMQBMLB.Text()
                          ,EditFieldPower.Text()
                          ,data.HasShelfLife()
                          ,data.ShelfLife()
                          ,data.HasMaturation()
                          ,data.MaturationDays()  
                          ,data.IsByProduct()
                          ,data.IsExcludedFromOptimization()
                          ,data.IsPlannedAfterOptimization()
                          ,ifexpr( CheckboxIsExcludedFromFulfillmentKPI.Enabled(), 
                                   data.IsDerivedExcludeFromFulfillmentKPI(), 
                                   data.IsExcludedFromFulfillmentKPI() )
                          ,data.Notes()
                          ,supplyChainView );
    }
    
    this.Close();
  *]
}
