| Quintiq file version 2.0 | 
| #parent: #root | 
| Method EditInventorySpecificationFromListPISPIP ( | 
|   internal[GUIComponent] parent, | 
|   structured[ProductInStockingPointInPeriod] selection | 
| ) id:Method_DialogCreateEditInventorySpecification_EditInventorySpecificationFromListPISPIP | 
| { | 
|   #keys: '[105706.1.245085157]' | 
|   Body: | 
|   [* | 
|     // Edit the inventory specification of the selection pispip from periods list | 
|     pispip := selection.Element( 0 ); | 
|     isbatchedit := selection.Size() > 1; | 
|     Dialog.ShowHideComponentForBatchEdit( isbatchedit, false ); | 
|      | 
|     // Need this for excluding itself in pre-condition primary keys checking. | 
|     data := shadow( pispip.InventorySpecification() ); | 
|      | 
|     // In case selection.Element( 0 ) doesn't bind to any inventory specification, calling SetDefaultValue method will return null error. | 
|     // Check start in case of editing from PISPIP later than the existing IS, the Start date will be off if we pass in existing IS | 
|     if( isnull( data ) | 
|         or data.Start() <> pispip.Start().Date() ) | 
|     { | 
|       pisp := pispip.ProductInStockingPoint_MP(); | 
|       data := pisp.Product_MP().InventorySpecification( relshadow, ProductID := pisp.ProductID(), StockingPointID := pisp.StockingPointID(), Start := pispip.Start().Date() ); | 
|       data.StockingPoint_MP( relset, pisp.StockingPoint_MP() ); | 
|     } | 
|      | 
|     Dialog.Data( data ); | 
|      | 
|     // Need this so that when the pispip doesn't not have a inventory specification, the fields in this Dialog will not be blank. | 
|     Dialog.SetDefaultValue( selection.Element( 0 ) ); | 
|      | 
|     result := this.DoModal( parent ); | 
|      | 
|     if ( result > 0 ) | 
|     { | 
|       InventorySpecification::CreateOrUpdateForProductInStockingPointInPeriods( selection, | 
|                                                                                 false, | 
|                                                                                 false, | 
|                                                                                 0.0, | 
|                                                                                 0.0, | 
|                                                                                 not isbatchedit or CheckBoxBatchEditMinLevel.Checked(), | 
|                                                                                 data.HasMinLevelInDays(), | 
|                                                                                 data.MinLevelInDays(), | 
|                                                                                 data.MinLevelInQuantity(), | 
|                                                                                 not isbatchedit or CheckBoxBatchEditMaxLevel.Checked(), | 
|                                                                                 data.HasMaxLevel(), | 
|                                                                                 data.HasMaxLevelInDays(), | 
|                                                                                 data.MaxLevelInDays(), | 
|                                                                                 data.MaxLevelInQuantity(), | 
|                                                                                 false ); | 
|      | 
|     } | 
|   *] | 
| } |