예제 #1
0
        private void btnEditCountDown_Click(object sender, EventArgs e)
        {
            bool          openMultStore = SettingsManager.GetMasterSettings().OpenMultStore;
            CountDownInfo countDownInfo = PromoteHelper.GetCountDownInfo(this.countDownId, 0);

            if (countDownInfo == null)
            {
                this.ShowMsg("限时购不存在", false, "CountDowns.aspx");
            }
            else
            {
                if (countDownInfo.StartDate > DateTime.Now && this.productId > 0)
                {
                    countDownInfo.ProductId = this.productId;
                }
                List <CountDownSkuInfo> list = new List <CountDownSkuInfo>();
                for (int i = 0; i < this.rptProductSkus.Items.Count; i++)
                {
                    RepeaterItem repeaterItem = this.rptProductSkus.Items[i];
                    HiddenField  hiddenField  = repeaterItem.FindControl("hfSkuId") as HiddenField;
                    TextBox      textBox      = repeaterItem.FindControl("txtActivityStock") as TextBox;
                    TextBox      textBox2     = repeaterItem.FindControl("txtActivitySalePrice") as TextBox;
                    if (textBox2.Text.Trim().ToDecimal(0) == decimal.Zero)
                    {
                        this.ShowMsg("请完整填写商品规格", false);
                        return;
                    }
                    CountDownSkuInfo item = new CountDownSkuInfo
                    {
                        SalePrice   = textBox2.Text.Trim().ToDecimal(0),
                        TotalCount  = textBox.Text.Trim().ToInt(0),
                        SkuId       = hiddenField.Value,
                        CountDownId = countDownInfo.CountDownId,
                        BoughtCount = new CountDownDao().GetCountDownOrderCount(this.countDownId, hiddenField.Value, -1)
                    };
                    list.Add(item);
                }
                if (this.rptProductSkus.Items.Count == 0)
                {
                    if (this.txtPrice.Text.Trim().ToDecimal(0) == decimal.Zero)
                    {
                        this.ShowMsg("请填写限时抢购价格", false);
                        return;
                    }
                    if (this.txtTotalCount.Text.Trim().ToInt(0) == 0)
                    {
                        this.ShowMsg("请填写活动库存", false);
                        return;
                    }
                }
                if (!this.CPStartTime.SelectedDate.HasValue)
                {
                    this.ShowMsg(Formatter.FormatErrorMessage("请填写活动开始时间"), false);
                }
                else
                {
                    if (countDownInfo.StartDate > DateTime.Now)
                    {
                        countDownInfo.StartDate = this.CPStartTime.SelectedDate.Value;
                    }
                    if (!this.CPEndDate.SelectedDate.HasValue)
                    {
                        this.ShowMsg(Formatter.FormatErrorMessage("请填写活动结束时间"), false);
                    }
                    else
                    {
                        countDownInfo.EndDate = this.CPEndDate.SelectedDate.Value;
                        if (countDownInfo.StartDate >= countDownInfo.EndDate)
                        {
                            this.ShowMsg(Formatter.FormatErrorMessage("活动结束时间要大于活动开始时间"), false);
                        }
                        else if (countDownInfo.EndDate <= DateTime.Now)
                        {
                            this.ShowMsg(Formatter.FormatErrorMessage("活动结束时间要大于当前系统时间"), false);
                        }
                        else if (PromoteHelper.ProductCountDownExist(countDownInfo.ProductId, countDownInfo.StartDate, this.countDownId, countDownInfo.EndDate))
                        {
                            this.ShowMsg("已经存在此商品的限时抢购活动", false);
                        }
                        else if (this.txtMaxCount.Text.Trim().ToInt(0) == 0)
                        {
                            this.ShowMsg("请填写每人限购数量", false);
                        }
                        else
                        {
                            countDownInfo.MaxCount = this.txtMaxCount.Text.ToInt(0);
                            int num = 0;
                            num = ((this.rptProductSkus.Items.Count == 0) ? this.txtTotalCount.Text.Trim().ToInt(0) : list.Sum((CountDownSkuInfo c) => c.TotalCount));
                            if (!openMultStore && countDownInfo.MaxCount > num && list.Count == 0)
                            {
                                this.ShowMsg(Formatter.FormatErrorMessage("每人限购数量不能大于活动库存"), false);
                            }
                            else if (!openMultStore && list.Count > 0 && countDownInfo.MaxCount > (from c in list
                                                                                                   where c.TotalCount > 0
                                                                                                   select c).Min((CountDownSkuInfo c) => c.TotalCount))
                            {
                                this.ShowMsg(Formatter.FormatErrorMessage("每人限购数量不能大于规格的最小活动库存"), false);
                            }
                            else
                            {
                                countDownInfo.Content      = Globals.HtmlEncode(this.txtContent.Text);
                                countDownInfo.ShareTitle   = Globals.HtmlEncode(this.txtShareTitle.Text);
                                countDownInfo.ShareDetails = Globals.HtmlEncode(this.txtShareDetails.Text);
                                countDownInfo.ShareIcon    = Globals.SaveFile("countDown", this.hidUploadLogo.Value, "/Storage/master/", true, false, "");
                                IList <int> list2 = null;
                                Dictionary <int, IList <int> > dictionary = default(Dictionary <int, IList <int> >);
                                ProductInfo productDetails = ProductHelper.GetProductDetails(countDownInfo.ProductId, out dictionary, out list2);
                                if (productDetails != null)
                                {
                                    if (!openMultStore && productDetails.Stock < countDownInfo.MaxCount)
                                    {
                                        this.ShowMsg("库存小于每人限购数量", false);
                                        return;
                                    }
                                    if (!openMultStore && productDetails.Stock < num)
                                    {
                                        this.ShowMsg("库存小于活动库存", false);
                                        return;
                                    }
                                    if (list.Count > 0)
                                    {
                                        foreach (KeyValuePair <string, SKUItem> sku in productDetails.Skus)
                                        {
                                            CountDownSkuInfo countDownSkuInfo = (from s in list
                                                                                 where s.SkuId == sku.Value.SkuId
                                                                                 select s).FirstOrDefault();
                                            if (countDownSkuInfo == null)
                                            {
                                                this.ShowMsg("规格不存在,请重新刷新页面", false);
                                                return;
                                            }
                                            if (!openMultStore && countDownSkuInfo.TotalCount > sku.Value.Stock)
                                            {
                                                this.ShowMsg("商品规格库存不足", false);
                                                return;
                                            }
                                        }
                                    }
                                }
                                if (list.Count == 0)
                                {
                                    DataTable skusByProductId = ProductHelper.GetSkusByProductId((this.productId > 0) ? this.productId : countDownInfo.ProductId);
                                    if (skusByProductId.Rows.Count > 0)
                                    {
                                        DataRow          dataRow = skusByProductId.Rows[0];
                                        CountDownSkuInfo item2   = new CountDownSkuInfo
                                        {
                                            SalePrice   = this.txtPrice.Text.Trim().ToDecimal(0),
                                            TotalCount  = num,
                                            SkuId       = dataRow["SkuId"].ToNullString(),
                                            CountDownId = countDownInfo.CountDownId,
                                            BoughtCount = new CountDownDao().GetCountDownOrderCount(this.countDownId, dataRow["SkuId"].ToNullString(), -1)
                                        };
                                        list.Add(item2);
                                    }
                                }
                                if (openMultStore)
                                {
                                    if (string.IsNullOrEmpty(this.hidStoreIds.Value))
                                    {
                                        this.ShowMsg("请选择门店范围", false);
                                        return;
                                    }
                                    countDownInfo.StoreType = 2;
                                    countDownInfo.StoreIds  = this.hidStoreIds.Value;
                                }
                                else
                                {
                                    countDownInfo.StoreIds  = "";
                                    countDownInfo.StoreType = 0;
                                }
                                PromoteHelper.EditCountDown(countDownInfo, list);
                                if (countDownInfo.StartDate < DateTime.Now && countDownInfo.EndDate > DateTime.Now)
                                {
                                    this.ShowMsg("编辑限时抢购活动成功", true, "countdowns.aspx");
                                }
                                else
                                {
                                    this.ShowMsg("编辑限时抢购活动成功", true, "countdowns.aspx?State=1");
                                }
                            }
                        }
                    }
                }
            }
        }