Quintiq file version 2.0
#parent: #root
Method EditStockingPoint (
  internal[GUIComponent] parent,
  StockingPoint_MP selection,
  StockingPointNode stockingPointNode
) as Number id:Method_DialogCreateEditStockingPoint_EditStockingPoint
{
  #keys: '[11660.0.15276981]'
  Body:
  [*
    // Edit stocking point
    
    data := shadow( selection );
    
    Dialog.Data( data );
    
    Dialog.SetImage();
    
    // Set belongs to checkbox
    CheckBoxBelongsTo.Checked( not isnull( selection.Unit() ) );
    
    // Check the start and end checkbox if the date is defined.
    CheckBoxHasStart.Checked( Dialog.Data().Start().IsFinite() );
    CheckBoxHasEnd.Checked( Dialog.Data().End().IsFinite() );
    
    if( not isnull( stockingPointNode ) )
    {
      DataHolderStockingPointNode.Data( stockingPointNode );
    }
    
    Dialog.SetUI();
    
    result := this.DoModal( parent );
    
    if ( result > 0 )
    {
      unitid := '';
      if( CheckBoxBelongsTo.Checked() )
      {
        unitid := guard( SelectionBelongsTo.Data().ID(), '' );
      }
      data.UnitID( unitid );
    
      // The validity of the stocking point.
      if( CheckBoxHasStart.Checked() )
      {
        data.Start( GUIDateTimeSelectorStart.DateTime().Date() );
      }
    
      if( CheckBoxHasEnd.Checked() )
      {
        data.End( GUIDateTimeSelectorEnd.DateTime().Date() );
      }
    
      if( isnull( stockingPointNode ) )
      {
        stockingPointNode := select ( selection, StockingPointNode, spn, spn.SupplyChainView() = DataHolderView.Data(), true );
      }
      else
      {
        selection.UpdateTypeIndex( EditorID.Text() );      // Read-only, apply changes to shadow is not taking place for read-only attribute when editing.
        data.Commit();
      }
    }
    
    return result;
  *]
}
