| 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; | 
|   *] | 
| } |