decimal CalculateOrderOptionPrice(OrderLookupItemInfo item)
 {
     if (item.CalculateMode.Value == 2)
     {
         return((this.GetCartTotalPrice() * decimal.Parse(item.AppendMoney.ToString())) / 100M);
     }
     return(decimal.Parse(item.AppendMoney.ToString()));
 }
Beispiel #2
0
        /// <summary>
        /// 订单选项
        /// </summary>
        /// <param name="context"></param>
        void ProcessorOrderOption(HttpContext context)
        {
            StringBuilder builder = new StringBuilder();

            if (!string.IsNullOrEmpty(context.Request.Params["LookupItemId"]))
            {
                int     lookupItemId = int.Parse(context.Request["LookupItemId"], NumberStyles.None);
                decimal num2         = decimal.Parse(context.Request["carTotal"]);
                builder.Append("{");
                builder.Append("\"Status\":\"OK\",");
                OrderLookupItemInfo orderLookupItem = ShoppingProcessor.GetOrderLookupItem(lookupItemId, string.Empty);
                if (orderLookupItem != null)
                {
                    builder.AppendFormat("\"Name\":\"{0}\",", orderLookupItem.Name);
                    decimal money = 0M;
                    if (orderLookupItem.AppendMoney.HasValue)
                    {
                        if (decimal.Parse(orderLookupItem.CalculateMode.ToString()) == 2M)
                        {
                            money = (num2 * orderLookupItem.AppendMoney.Value) / 100M;
                        }
                        else
                        {
                            money = orderLookupItem.AppendMoney.Value;
                        }
                    }
                    builder.AppendFormat("\"AppendMoney\":\"{0}\",", Globals.FormatMoney(money));
                    builder.AppendFormat("\"AppendMoney_v\":\"{0}\",", money);
                    builder.AppendFormat("\"IsUserInputRequired\":\"{0}\",", orderLookupItem.IsUserInputRequired ? "true" : "false");
                    if (string.IsNullOrEmpty(orderLookupItem.UserInputTitle))
                    {
                        builder.AppendFormat("\"UserInputTitle\":\"\",", new object[0]);
                    }
                    else
                    {
                        builder.AppendFormat("\"UserInputTitle\":\"" + orderLookupItem.UserInputTitle.Replace("\"", "").Replace(@"\/", "/") + "\",", new object[0]);
                    }
                    if (string.IsNullOrEmpty(orderLookupItem.UserInputContent))
                    {
                        builder.Append("\"UserInputContent\":\"\"");
                    }
                    else
                    {
                        builder.Append("\"UserInputContent\":\"" + orderLookupItem.UserInputContent.Replace("\"", "").Replace(@"\/", "/") + "\"");
                    }
                }
                builder.Append("}");
            }
            context.Response.ContentType = "text/plain";
            context.Response.Write(builder);
        }
        private void btnCreate_Click(object sender, EventArgs e)
        {
            decimal num;

            if ((radlCalculateMode.SelectedValue == 1) && (string.IsNullOrEmpty(txtAppendMoney.Text) || !decimal.TryParse(txtAppendMoney.Text.Trim(), out num)))
            {
                ShowMsg("附加金额不能为空,只能为非负数字,大小限制在1000万以内", false);
            }
            else
            {
                decimal num2;
                if ((radlCalculateMode.SelectedValue == 2) && (string.IsNullOrEmpty(txtPercentage.Text) || !decimal.TryParse(txtPercentage.Text.Trim(), out num2)))
                {
                    ShowMsg("购物车金额百分比不能为空,只能为非负数字,大小限制在100以内", false);
                }
                else
                {
                    OrderLookupItemInfo lookupItem = GetLookupItem();
                    if (lookupItem.IsUserInputRequired && string.IsNullOrEmpty(lookupItem.UserInputTitle))
                    {
                        ShowMsg("用户填写信息的标题不能为空", false);
                    }
                    else
                    {
                        ValidationResults results = Hishop.Components.Validation.Validation.Validate <OrderLookupItemInfo>(lookupItem, new string[] { "ValOrderLookupItemInfo" });
                        string            msg     = string.Empty;
                        if (!results.IsValid)
                        {
                            foreach (ValidationResult result in (IEnumerable <ValidationResult>)results)
                            {
                                msg = msg + Formatter.FormatErrorMessage(result.Message);
                            }
                            ShowMsg(msg, false);
                        }
                        else if (!OrderHelper.CreateOrderLookupItem(lookupItem))
                        {
                            ShowMsg("未知错误", false);
                        }
                        else
                        {
                            BindData();
                            ShowMsg("可选内容添加成功", true);
                        }
                    }
                }
            }
        }
        private OrderLookupItemInfo GetLookupItem()
        {
            OrderLookupItemInfo info = new OrderLookupItemInfo();

            info.Name           = txtName.Text.Trim();
            info.CalculateMode  = new int?(radlCalculateMode.SelectedValue);
            info.UserInputTitle = txtUserInputTitle.Text.Trim();
            if (!((radlCalculateMode.SelectedValue != 1) || string.IsNullOrEmpty(txtAppendMoney.Text.Trim())))
            {
                info.AppendMoney = new decimal?(decimal.Parse(txtAppendMoney.Text.Trim()));
            }
            if (!((radlCalculateMode.SelectedValue != 2) || string.IsNullOrEmpty(txtPercentage.Text.Trim())))
            {
                info.AppendMoney = new decimal?(decimal.Parse(txtPercentage.Text.Trim()));
            }
            info.Remark = txtRemark.Text.Trim();
            info.IsUserInputRequired = radlUserInput.SelectedValue;
            info.LookupListId        = lookupListId;
            return(info);
        }
 private void grdOrderLookupItems_DataBound(object sender, EventArgs e)
 {
     for (int i = 0; i < grdOrderLookupItems.Rows.Count; i++)
     {
         GridViewRow         row             = grdOrderLookupItems.Rows[i];
         Label               label           = (Label)row.FindControl("lblPercentageAppendMoney");
         Label               label2          = (FormatedMoneyLabel)row.FindControl("lblAppendMoney");
         int                 lookupItemId    = (int)grdOrderLookupItems.DataKeys[i].Value;
         OrderLookupItemInfo orderLookupItem = OrderHelper.GetOrderLookupItem(lookupItemId);
         if (orderLookupItem.CalculateMode == 2)
         {
             label.Text     = orderLookupItem.AppendMoney.Value.ToString("F", CultureInfo.InvariantCulture) + "%";
             label.Visible  = true;
             label2.Visible = false;
         }
         else
         {
             label.Visible  = false;
             label2.Visible = true;
         }
     }
 }
Beispiel #6
0
 public static bool UpdateOrderLookupItem(OrderLookupItemInfo orderLookupItem)
 {
     Globals.EntityCoding(orderLookupItem, true);
     return(SalesProvider.Instance().UpdateOrderLookupItem(orderLookupItem));
 }
Beispiel #7
0
 public abstract bool AddOrderLookupItem(OrderLookupItemInfo orderLookupItem);
Beispiel #8
0
 public abstract bool UpdateOrderLookupItem(OrderLookupItemInfo orderLookupItem);