Пример #1
0
        /// <summary>
        /// 运行-->结束
        /// </summary>
        /// <param name="GroupBuyingSysNo"></param>
        public static void SetFinish(ProductGroupBuyingEntity groupBuyingItem)
        {
            //必须是Running
            if (groupBuyingItem.Status != "A")
            {
                throw new BusinessException("the current status not allow such opertion");
            }
            else
            {
                //设置阶梯价格
                SetStepPrice(groupBuyingItem);
            }

            groupBuyingItem = GroupBuyingDA.GetGroupBuyingItemBySysno(groupBuyingItem.SysNo);

            groupBuyingItem.Status = "F";

            decimal gbCurentPrice = 0;

            List <ProductGroupBuying_SnapShotPriceEntity> snapShotList = GroupBuyingDA.GetSnapShotPriceList(groupBuyingItem.SysNo);

            using (TransactionScope ts = new TransactionScope())
            {
                foreach (ProductGroupBuying_SnapShotPriceEntity snapShot in snapShotList)
                {
                    ProductPriceInfoEntity itemPrice = GroupBuyingDA.LoadItemPrice(snapShot.ProductSysNo);

                    gbCurentPrice = itemPrice.CurrentPrice;

                    itemPrice.BasicPrice   = snapShot.SnapshotBasicPrice;
                    itemPrice.CurrentPrice = snapShot.SnapShotCurrentPrice;
                    itemPrice.CashRebate   = snapShot.SnapShotCashRebate;
                    itemPrice.Point        = snapShot.SnapShotPoint;
                    itemPrice.MaxPerOrder  = snapShot.SnapShotMaxPerOrder;


                    //GroupBuyingDA.UpdateItemPrice(itemPrice);
                    GroupBuyingDA.UpdateItemPrice(itemPrice, groupBuyingItem, groupBuyingItem.InDate, "IPPSystemAdmin", DateTime.Now, "团购调价就绪-->运行", "JobConsole", "GroupBuying");

                    GroupBuyingDA.UpdateProductEx(snapShot.ProductSysNo, string.Empty);


                    //验证一个规则内差价是否小于0
                    if (snapShot != null && snapShot.ProductSysNo != 0)
                    {
                        CheckSaleRule(snapShot.ProductSysNo);
                    }

                    //decimal offset = 0;
                    //decimal point = (itemPrice.Point - 0) / 10m;
                    //offset = itemPrice.CurrentPrice - gbCurentPrice - point;

                    //类型PriceLogType:记录为“限时促销调价”;
                    //申请时间CreateDate:dbo.ProductGroupBuying .CreateTime;
                    //生效时间UpdateDate: EndTime;
                    //申请人CreateUser:dbo.ProductGroupBuying.Createusersysno对应的username;
                    //审核人UpdateUser:dbo.ProductGroupBuying.Audituser;
                    //商品原价OldPrice:GroupBuyingCurrentPrice;
                    //调后价格NewPrice:SnapShotCurrentPrice;
                    //调整幅度offset:调后价格减去商品原价;
                    //返现金额CashRebate:SnapShotCashRebate;


                    //2011-12-1 删除-该功能移入SP Rik.K.Li
                    //GroupBuyingDA.InsertGroupBuyingProductPricechangeLog(itemPrice.ProductSysNo.ToString(),
                    //                                                 snapShot.SnapShotCurrentPrice.ToString(),
                    //                                                 gbCurentPrice.ToString(),
                    //                                                 offset.ToString(),
                    //                                                 itemPrice.UnitCost,
                    //                                                 snapShot.SnapShotCashRebate,
                    //                                                 snapShot.SnapShotPoint,
                    //                                                 groupBuyingItem.InUser,
                    //                                                 groupBuyingItem.InDate,
                    //                                                 groupBuyingItem.AuditUser,
                    //                                                 groupBuyingItem.EndDate,
                    //                                                 "团购调价运行-->结束",
                    //                                                 "JobConsole",
                    //                                                 "GroupBuying");
                }


                if (groupBuyingItem.SuccessDate != null)
                {
                    groupBuyingItem.DealPrice = gbCurentPrice;
                }
                else
                {
                    groupBuyingItem.DealPrice = 0;
                }

                GroupBuyingDA.UpdateProductGroupBuyingFinish(groupBuyingItem);
                SyncGroupBuyingStatus(groupBuyingItem);


                ts.Complete();
            }
        }