/// <summary> /// Initializes the view. /// </summary> /// <param name="form">The Edit Sales Order Item form.</param> /// <param name="args">The <see cref="System.EventArgs"/> instance containing the event data.</param> public static void OnFormLoadStep(IEditSalesOrderItem form, EventArgs args) { ISalesOrderItem salesOrderItem = form.CurrentEntity as ISalesOrderItem; IWebDialogService dialogService = form.Services.Get <IWebDialogService>(); if (dialogService != null && dialogService.DialogParameters.ContainsKey("CustomProductSalesOrder")) { ISalesOrder salesOrder = dialogService.DialogParameters["CustomProductSalesOrder"] as ISalesOrder; salesOrderItem.SalesOrder = salesOrder; salesOrderItem.Quantity = 1; salesOrderItem.CalculatedPrice = 0; salesOrderItem.Discount = 0; salesOrderItem.ExtendedPrice = 0; salesOrderItem.Price = 0; dialogService.DialogParameters.Remove("CustomProductSalesOrder"); } if (salesOrderItem.SalesOrder.IsMultiCurrencyEnabled()) { form.curMCCalcPrice.ExchangeRate = salesOrderItem.SalesOrder.ExchangeRate.GetValueOrDefault(1); form.curMCCalcPrice.CurrentCode = salesOrderItem.SalesOrder.CurrencyCode; form.curMCCalcPrice.ExchangeRateType = Sage.Platform.Controls.ExchangeRateTypeEnum.EntityRate; form.curMCCalcPrice.Text = salesOrderItem.CalculatedPrice.ToString(); } else { form.ctrlstMCPrice.Visible = false; } if (salesOrderItem.Product == null) // AdHocProduct { salesOrderItem.LineType = "FreeText"; // Use as literal; represents adhoc product. form.ctrlstLineNumber.Visible = false; form.ctrlstPriceLevel.Visible = false; form.curPrice.IsReadOnly = false; form.txtSKU.IsReadOnly = false; form.pklFamily.IsReadOnly = false; form.txtDescription.IsReadOnly = false; form.txtProductName.IsReadOnly = false; } bool closed = (salesOrderItem.SalesOrder.Status.ToUpper().Equals(form.GetResource("SalesOrderStatus_Closed").ToString().ToUpper())); form.txtDescription.Enabled = !closed; form.txtSKU.Enabled = !closed; form.pklFamily.Enabled = !closed; form.txtDiscount.Enabled = !closed; form.curCalculatedPrice.Enabled = !closed; form.curMCCalcPrice.Enabled = !closed; form.numQuantity.Enabled = !closed; form.btnOK.Visible = !closed; form.btnCancel.Caption = form.GetResource("Closed_Caption").ToString(); }
/// <summary> /// Updates the sales order products price based on a change of the multi currency pricing value. /// The updated is based on the value changed divided by the exchange rate. This event is only /// called when multi-currency is enabled. /// </summary> /// <param name="form">the instance of the EditSalesOrderItem dialog</param> /// <param name="args">empty</param> public static void curMCCalcPrice_OnChangeStep(IEditSalesOrderItem form, EventArgs args) { ISalesOrderItem salesOrderItem = form.CurrentEntity as ISalesOrderItem; if (salesOrderItem != null) { double exchangeRate = salesOrderItem.SalesOrder.ExchangeRate.HasValue ? salesOrderItem.SalesOrder.ExchangeRate.Value : 1; form.curMCCalcPrice.CurrentCode = salesOrderItem.SalesOrder.CurrencyCode; string price = String.IsNullOrEmpty(form.curMCCalcPrice.Text) ? "0" : form.curMCCalcPrice.Text; salesOrderItem.CalculatedPrice = (decimal?) (Convert.ToDouble(price)/exchangeRate); salesOrderItem.CalculateCalcPrice(); } }
/// <summary> /// Initializes the view. /// </summary> /// <param name="form">The Edit Sales Order Item form.</param> /// <param name="args">The <see cref="System.EventArgs"/> instance containing the event data.</param> public static void OnFormLoadStep(IEditSalesOrderItem form, EventArgs args) { ISalesOrderItem salesOrderItem = form.CurrentEntity as ISalesOrderItem; IWebDialogService dialogService = form.Services.Get<IWebDialogService>(); if (dialogService != null && dialogService.DialogParameters.ContainsKey("CustomProductSalesOrder")) { ISalesOrder salesOrder = dialogService.DialogParameters["CustomProductSalesOrder"] as ISalesOrder; salesOrderItem.SalesOrder = salesOrder; salesOrderItem.Quantity = 1; salesOrderItem.CalculatedPrice = 0; salesOrderItem.Discount = 0; salesOrderItem.ExtendedPrice = 0; salesOrderItem.Price = 0; dialogService.DialogParameters.Remove("CustomProductSalesOrder"); } if (salesOrderItem.SalesOrder.IsMultiCurrencyEnabled()) { form.curMCCalcPrice.ExchangeRate = salesOrderItem.SalesOrder.ExchangeRate.GetValueOrDefault(1); form.curMCCalcPrice.CurrentCode = salesOrderItem.SalesOrder.CurrencyCode; form.curMCCalcPrice.ExchangeRateType = Sage.Platform.Controls.ExchangeRateTypeEnum.EntityRate; form.curMCCalcPrice.Text = salesOrderItem.CalculatedPrice.ToString(); } else { form.ctrlstMCPrice.Visible = false; } if (salesOrderItem.Product == null) // AdHocProduct { salesOrderItem.LineType = "FreeText"; // Use as literal; represents adhoc product. form.ctrlstLineNumber.Visible = false; form.ctrlstPriceLevel.Visible = false; form.curPrice.IsReadOnly = false; form.txtSKU.IsReadOnly = false; form.pklFamily.IsReadOnly = false; form.txtDescription.IsReadOnly = false; form.txtProductName.IsReadOnly = false; } bool closed = (salesOrderItem.SalesOrder.Status.ToUpper().Equals(form.GetResource("SalesOrderStatus_Closed").ToString().ToUpper())); form.txtDescription.Enabled = !closed; form.txtSKU.Enabled = !closed; form.pklFamily.Enabled = !closed; form.txtDiscount.Enabled = !closed; form.curCalculatedPrice.Enabled = !closed; form.curMCCalcPrice.Enabled = !closed; form.numQuantity.Enabled = !closed; form.btnOK.Visible = !closed; form.btnCancel.Caption = form.GetResource("Closed_Caption").ToString(); }
/// <summary> /// Updates the sales order products price based on a change of the multi currency pricing value. /// The updated is based on the value changed divided by the exchange rate. This event is only /// called when multi-currency is enabled. /// </summary> /// <param name="form">the instance of the EditSalesOrderItem dialog</param> /// <param name="args">empty</param> public static void curMCCalcPrice_OnChangeStep(IEditSalesOrderItem form, EventArgs args) { ISalesOrderItem salesOrderItem = form.CurrentEntity as ISalesOrderItem; if (salesOrderItem != null) { double exchangeRate = salesOrderItem.SalesOrder.ExchangeRate.HasValue ? salesOrderItem.SalesOrder.ExchangeRate.Value : 1; form.curMCCalcPrice.CurrentCode = salesOrderItem.SalesOrder.CurrencyCode; string price = String.IsNullOrEmpty(form.curMCCalcPrice.Text) ? "0" : form.curMCCalcPrice.Text; salesOrderItem.CalculatedPrice = (decimal?)(Convert.ToDouble(price) / exchangeRate); salesOrderItem.CalculateCalcPrice(); } }