Quintiq file version 2.0
#parent: #root
Method OnOK () derived id:Method_DialogCreateEditForecast_OnOK
{
  #keys: '[136682.1.803177914]'
  BaseType => //DialogCreateEditSalesDemand/Method_DialogCreateEditSalesDemand_OnOK
  Body:
  [*
    Form.ApplyChanges();
    this.SetAttributeAfterApplyData();
    
    data := DataHolderDialogData.Data();
    selection := DataHolderSalesDemands.Data().Copy();
    isbatchedit := selection.Size() >1; 
    
    
    if( isnull( data.WrappedInstance() ) )
    {
      data.ID( MacroPlan.IDHolder().GetSalesDemandID( "User_", "" ) );
      Forecast::Create( data.ID(),
                           DropDownListProduct.Data(),
                           DropDownListStockingPoint.Data(),
                           data.StartDate(),
                           data.EndDate(),
                           data.Quantity(),
                           data.Price(),
                           data.Priority(),
                           data.SalesSegment_MP(),
                           data.Currency_MP(),
                           data.UnitOfMeasure_MP(),
                           false,
                           true,
                           data.DemandUncertaintyPercentage(),
                           data.IsExcludedFromFulfillmentKPI(),
                           false 
                           );
    }
    
    else
    {
      quantity := ApplicationMacroPlanner.FormatStringToReal( EditFieldQuantityUom.Text(), 0.0 );
      forecasts := selectset( selection, Elements.astype( Forecast ), forecast, true );
      Forecast::Update( forecasts,
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DropDownListProduct ),
                         DropDownListProduct.Data(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DropDownListStockingPoint ),
                         DropDownListStockingPoint.Data(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DateSelectorStart ),
                         data.StartDate(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DateSelectorEnd ),
                         data.EndDate(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( EditFieldQuantityUom ),
                         quantity,
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( EditFieldPrice ),
                         data.Price(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DropDownListPriority ) or ApplicationMacroPlanner.IsActionLinkEnabledEdit( CheckBoxIsExcludedFromFulfillmentKPI ),
                         data.Priority(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( EditFieldDemandUncertaintyPercentage ),
                         data.DemandUncertaintyPercentage(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DropDownListSalesSegment ),
                         data.SalesSegment_MP(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DropDownListCurrency ),
                         data.Currency_MP(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( DropDownListUnitOfMeasurement ),
                         data.UnitOfMeasure_MP(),
                         not isbatchedit or ApplicationMacroPlanner.IsActionLinkEnabledEdit( CheckBoxIsExcludedFromFulfillmentKPI ),
                         ifexpr( CheckBoxIsExcludedFromFulfillmentKPI.Enabled(), 
                                 CheckBoxIsExcludedFromFulfillmentKPI.Checked(),
                                 data.IsExcludedFromFulfillmentKPIUser() ),
                         true );
      
    
    }
    Form.Close();
  *]
}
