Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method EditProduct ( 
 | 
  structured[Product_MP] selection, 
 | 
  internal[GUIComponent] parent 
 | 
) as Number id:Method_DialogCreateEditProduct_EditProduct 
 | 
{ 
 | 
  #keys: '[11660.0.54834891]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Edit product 
 | 
    isbatchedit := selection.Size() > 1; 
 | 
    data := shadow( selection.Element( 0 ) ); 
 | 
    Dialog.Data( data ); 
 | 
     
 | 
    this.SetCheckBoxVisibility( isbatchedit ); 
 | 
     
 | 
    // Enable/disable components 
 | 
    this.EnableDisableComponents( isbatchedit ); 
 | 
     
 | 
    // Set default values 
 | 
    DataHolderParentProduct.Data( data.Parent() ); 
 | 
     
 | 
    DataHolderEditingProduct.Data( selection.Copy() ); 
 | 
     
 | 
    if ( not isnull( data.Parent() ) ) 
 | 
    { 
 | 
      CheckBoxHasParentProduct.Checked( true ); 
 | 
    } 
 | 
     
 | 
    result := this.DoModal( parent ); 
 | 
     
 | 
    if ( result > 0 ) 
 | 
    { 
 | 
      //In case the checkbox was checked but was diabled because of checking plan after optimization 
 | 
      Dialog.Data().IsExcludedFromOptimization( CheckBoxIsExcludedFromOptimization.Checked() ); 
 | 
      Dialog.Data().IsPlannedAfterOptimization( CheckBoxIsPlannedAfterOptimization.Checked() ); 
 | 
     
 | 
      if( not isbatchedit ) 
 | 
      { 
 | 
        selection.Element( 0 ).UpdateTypeIndex( EditorID.Text() ); // Read-only, apply changes to shadow is not taking place for read-only attribute when editing. 
 | 
        data.Commit(); 
 | 
      } 
 | 
     
 | 
      else //for batch edit, use Update method instead 
 | 
      { 
 | 
        parentproduct := ifexpr( CheckBoxHasParentProduct.Checked(), SelectionParentProduct.Data(), null( Product_MP ) ); 
 | 
     
 | 
        Product_MP::Update( selection, 
 | 
                            parentproduct, 
 | 
                            SelectionUnitOfMeasurement.BoundValue(), 
 | 
                            CheckBoxIsByProduct.Checked(), 
 | 
                            DataHolderView.Data(), 
 | 
                            CheckBoxBatchEditUnitOfMeasurement.Checked(), 
 | 
                            CheckBoxBatchEditParent.Checked(), 
 | 
                            CheckBoxBatchEditByProduct.Checked(), 
 | 
                            CheckBoxBatchEditNotes.Checked(), 
 | 
                            EditorNotes.Text(), 
 | 
                            CheckBoxBatchEditHasShelfLife.Checked(), 
 | 
                            CheckBoxHasShelfLife.Checked(), 
 | 
                            ApplicationLibMacroPlanner.FormatStringToReal( EditorShelfLife.Text() ), 
 | 
                            CheckBoxBatchEditHasMaturationDays.Checked(), 
 | 
                            CheckBoxHasMaturationDays.Checked(), 
 | 
                            ApplicationLibMacroPlanner.FormatStringToReal( EditorMaturationDays.Text() ), 
 | 
                            CheckBoxBatchEditIsExcludedFromOptimization.Checked(), 
 | 
                            CheckBoxIsExcludedFromOptimization.Checked(), 
 | 
                            CheckBoxIsPlannedAfterOptimization.Checked(),  
 | 
                            CheckBoxBatchEditIsExcludedFromFulfillmentKPI.Checked(),  
 | 
                            ifexpr( CheckBoxIsExcludedFromFulfillmentKPI.Enabled(),  
 | 
                                    CheckBoxIsExcludedFromFulfillmentKPI.Checked(),  
 | 
                                    data.IsExcludedFromFulfillmentKPI() ) ); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    return result; 
 | 
  *] 
 | 
} 
 |