private static bool CheckGroupReadToRun(ProductGroupBuyingEntity groupBuyingItem, bool isAbandon) { //如果团购类型为抽奖(6),则不需下列操作 if (groupBuyingItem.GroupBuyingTypeSysNo == 6) { return(true); } //读取原价 decimal originalPrice = GroupBuyingDA.GetOriginalPrice(groupBuyingItem.ProductSysNo, groupBuyingItem.IsByGroup); decimal groupBuyingPrice = 0; List <ProductGroupBuying_PriceEntity> gbPriceList = GroupBuyingDA.GetProductGroupBuying_PriceList(groupBuyingItem); bool result = true; foreach (ProductGroupBuying_PriceEntity gbPrice in gbPriceList) { if (originalPrice <= gbPrice.GroupBuyingPrice) { groupBuyingPrice = gbPrice.GroupBuyingPrice; result = false; } } //Check不通过需要发送邮件 if (!result) { string mailtype = ""; if (isAbandon) { mailtype = "已被系统自动作废"; SetAbandon(groupBuyingItem); } else { mailtype = "一小时后将被系统自动作废,请修改团购信息"; } string mailTo = GroupBuyingDA.GetUserEmailByUserName(groupBuyingItem.InUser); string mailSubject = string.Format("团购商品{0}Item# " + groupBuyingItem.ProductID, mailtype); StringBuilder mailInfo = new StringBuilder(); mailInfo.AppendLine("Hi 创建人、PMCC:"); mailInfo.AppendLine(string.Format(" 商品" + groupBuyingItem.ProductID + "的团购价" + groupBuyingPrice.ToString("0.00") + "大于等于了原价" + originalPrice.ToString("0.00") + ",{0}。", mailtype)); mailInfo.AppendLine("该邮件由系统自动发出,请勿回复!"); mailInfo.AppendLine("其中" + groupBuyingPrice.ToString("0.00") + "为团购价;" + originalPrice.ToString("0.00") + "为原价;"); GroupBuyingDA.SendMailAbandonGroupBuyingInfo(mailTo, mailInfo.ToString(), mailSubject); } return(result); }
/// <summary> /// 就绪-->运行 /// </summary> /// <param name="groupBuyingItem"></param> /// <returns></returns> private static bool SetRunning(ProductGroupBuyingEntity groupBuyingItem) { if (groupBuyingItem.Status != "P") { throw new BusinessException("不是就绪状态"); } using (TransactionScope ts = new TransactionScope()) { List <ProductPriceInfoEntity> priceInfoList = GroupBuyingDA.GetProductPriceInfoList(groupBuyingItem.ProductSysNo, groupBuyingItem.IsByGroup); groupBuyingItem.Status = "A"; if (groupBuyingItem.GroupBuyingTypeSysNo != 6) { #region 如果团购类型为抽奖(6),则不需下列操作 ProductGroupBuying_PriceEntity gbPrice = GroupBuyingDA.GetProductGroupBuying_PriceList(groupBuyingItem).OrderBy(e => e.SellCount).ToList()[0]; //设置原价 groupBuyingItem.OriginalPrice = GroupBuyingDA.GetOriginalPrice(groupBuyingItem.ProductSysNo, groupBuyingItem.IsByGroup); //设置团购为原始价格并记录团购最低阶价格 foreach (ProductPriceInfoEntity priceinfo in priceInfoList) { ProductGroupBuying_SnapShotPriceEntity snapShotPrice = new ProductGroupBuying_SnapShotPriceEntity(); snapShotPrice.SnapShotCashRebate = priceinfo.CashRebate; snapShotPrice.SnapShotCurrentPrice = priceinfo.CurrentPrice; snapShotPrice.SnapShotMaxPerOrder = priceinfo.MaxPerOrder; snapShotPrice.SnapShotPoint = priceinfo.Point; snapShotPrice.ProductSysNo = priceinfo.ProductSysNo; snapShotPrice.ProductGroupBuyingSysNo = groupBuyingItem.SysNo; snapShotPrice.SnapshotBasicPrice = priceinfo.BasicPrice; //插入快照价格 GroupBuyingDA.CreateSnapShotPrice(snapShotPrice); ProductPriceInfoEntity itemPrice = new ProductPriceInfoEntity(); itemPrice = GroupBuyingDA.LoadItemPrice(priceinfo.ProductSysNo); itemPrice.CashRebate = 0; itemPrice.BasicPrice = groupBuyingItem.OriginalPrice; itemPrice.CurrentPrice = gbPrice.GroupBuyingPrice; itemPrice.Point = 0; groupBuyingItem.BasicPrice = itemPrice.BasicPrice; //判断MaxPerOrder是否输入 if (groupBuyingItem.MaxPerOrder > 0) { itemPrice.MaxPerOrder = groupBuyingItem.MaxPerOrder; } //修改价格 //GroupBuyingDA.UpdateItemPrice(itemPrice); GroupBuyingDA.UpdateItemPrice(itemPrice, groupBuyingItem, groupBuyingItem.InDate, "IPPSystemAdmin", DateTime.Now, "团购调价就绪-->运行", "JobConsole", "GroupBuying"); //修改商品信息促销类型为团购“GB” GroupBuyingDA.UpdateProductEx(itemPrice.ProductSysNo, "GB"); //验证一个规则内差价是否小于0 if (groupBuyingItem.ProductSysNo != 0) { CheckSaleRule(groupBuyingItem.ProductSysNo); } //类型PriceLogType:记录为“限时促销调价”; //申请时间CreateDate:dbo.ProductGroupBuying .InDate; //生效时间UpdateDate:dbo.ProductGroupBuying .BeginDate; //申请人CreateUser:InUser; //审核人UpdateUser:dbo.ProductGroupBuying.Audituser; //商品原价OldPrice:SnapShotCurrentPrice; //调后价格NewPrice:GroupBuyingCurrentPrice; //调整幅度offset:调后价格减去商品原价减去积分 //返现金额CashRebate:GroupBuyingCashRebate; //积分Point: GroupBuyingPoint //2011-12-1 删除-该功能移入SP Rik.K.Li //decimal offset = 0; //decimal point = (0 - snapShotPrice.SnapShotPoint) / 10m; //offset = itemPrice.CurrentPrice - snapShotPrice.SnapShotCurrentPrice - point; //string userName = groupBuyingItem.InUser; //GroupBuyingDA.InsertGroupBuyingProductPricechangeLog(itemPrice.ProductSysNo.ToString(), // gbPrice.GroupBuyingPrice.ToString(), // snapShotPrice.SnapShotCurrentPrice.ToString(), // offset.ToString(), // itemPrice.UnitCost, // 0, // 0, // groupBuyingItem.InUser, // groupBuyingItem.InDate, // groupBuyingItem.AuditUser, // groupBuyingItem.BeginDate, // "团购调价就绪-->运行", // "JobConsole", // "GroupBuying"); } #endregion } GroupBuyingDA.UpdateProductGroupBuyingRun(groupBuyingItem); groupBuyingItem.Reasons = ""; SyncGroupBuyingStatus(groupBuyingItem); ts.Complete(); } return(true); }