Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 4
0
        /// <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();
            }
        }