Ejemplo n.º 1
0
 /// <summary>
 /// 设置审核人和审核时间
 /// </summary>
 /// <param name="productPriceRequest"></param>
 private void SetAuditUser(ProductPriceRequestInfo productPriceRequest)
 {
     if (productPriceRequest.AuditType == ProductPriceRequestAuditType.Audit)
     {
         //有初审
         productPriceRequest.AuditTime = DateTime.Now;
         productPriceRequest.AuditUser = new UserInfo {
             SysNo = ServiceContext.Current.UserSysNo
         };
         //有终审
         productPriceRequest.FinalAuditTime = DateTime.Now;
         productPriceRequest.FinalAuditUser = new UserInfo {
             SysNo = ServiceContext.Current.UserSysNo
         };
     }
     else if (productPriceRequest.RequestStatus == ProductPriceRequestStatus.Origin)
     {
         productPriceRequest.AuditTime = DateTime.Now;
         productPriceRequest.AuditUser = new UserInfo {
             SysNo = ServiceContext.Current.UserSysNo
         };
     }
     else if (productPriceRequest.RequestStatus == ProductPriceRequestStatus.NeedSeniorApprove)
     {
         productPriceRequest.FinalAuditTime = DateTime.Now;
         productPriceRequest.FinalAuditUser = new UserInfo {
             SysNo = ServiceContext.Current.UserSysNo
         };
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 检查商品价格变动单据编号
 /// </summary>
 /// <param name="productPriceRequest"></param>
 public static void CheckProductPriceReques(ProductPriceRequestInfo productPriceRequest)
 {
     if (productPriceRequest == null)
     {
         throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestIsNull"));
     }
 }
Ejemplo n.º 3
0
        public void CancelAuditProductPriceRequest(ProductInfo productInfo)
        {
            var product = _productDA.GetProductInfoBySysNo(productInfo.SysNo);

            if (product.ProductPriceRequest.SysNo.HasValue &&
                product.ProductPriceRequest.RequestStatus == ProductPriceRequestStatus.Origin)
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    ProductPriceRequestInfo productPriceRequestInfo = _productPriceRequestBP.GetProductPriceRequestInfoBySysNo(product.ProductPriceRequest.SysNo.Value);
                    _productPriceRequestBP.CancelAuditProductPriceRequest(productPriceRequestInfo,
                                                                          ProductPriceRequestStatus.Canceled);
                    //申请取消之后发送消息
                    EventPublisher.Publish <ECCentral.Service.EventMessage.IM.CanceledUpdateProductPriceRequestMessage>(new ECCentral.Service.EventMessage.IM.CanceledUpdateProductPriceRequestMessage()
                    {
                        CancelUserSysNo = ServiceContext.Current.UserSysNo,
                        ProductSysNo    = product.SysNo,
                        RequestSysNo    = product.ProductPriceRequest.SysNo.Value
                    });

                    scope.Complete();
                }
            }
            else
            {
                throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "CancelAuditProductPriceRequestResult"));
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 检查审核人
 /// </summary>
 /// <param name="productPriceRequest"></param>
 /// <param name="productID"></param>
 public static void CheckProductPriceRequestCreateSysNo(ProductPriceRequestInfo productPriceRequest, string productID)
 {
     CheckProductPriceReques(productPriceRequest);
     if (productPriceRequest.CreateUser == null ||
         productPriceRequest.CreateUser.SysNo == null ||
         productPriceRequest.CreateUser.SysNo <= 0)
     {
         var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                        "ExistProductPriceRequestForCreateSysNo");
         throw new BizException(String.Format(errorStr, productID));
     }
     //if (productPriceRequest.CreateUser.SysNo == ServiceContext.Current.UserSysNo)
     //{
     //    var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
     //                                                 "ProductPriceRequestForCreateSysNoIsInvalid");
     //    throw new BizException(String.Format(errorStr, productID));
     //}
     //if (productPriceRequest.RequestStatus == ProductPriceRequestStatus.NeedSeniorApprove)
     //{
     //    if (productPriceRequest.AuditUser.SysNo == ServiceContext.Current.UserSysNo)
     //    {
     //        var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
     //                                               "ProductPriceRequestForCreateSysNoIsInvalid");
     //        throw new BizException(String.Format(errorStr, productID));
     //    }
     //}
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 得到随心配的商品在团购里的毛利率
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public string GetProductPromotionMarginByGroupBuying(GroupBuyingInfo info)
        {
            ProductInfo             productInfo = ExternalDomainBroker.GetProductInfo(info.ProductSysNo.Value);
            ProductPriceRequestInfo priceMsg    = new ProductPriceRequestInfo()
            {
                CurrentPrice = info.PriceRankList.OrderBy(s => s.DiscountValue).First().DiscountValue,//最低阶梯价格
                UnitCost     = productInfo.ProductPriceInfo.UnitCost,
                Point        = info.GroupBuyingPoint,
                Category     = productInfo.ProductBasicInfo.ProductCategoryInfo
            };
            string        returnMsgStr = string.Empty;
            StringBuilder checkMsg     = new StringBuilder();
            List <ProductPromotionMarginInfo> marginList = ObjectFactory <IIMBizInteract> .Instance.GetProductPromotionMargin(
                priceMsg, info.ProductSysNo.Value, "", 0m, ref returnMsgStr);

            marginList = marginList.Where(ppm => ppm.PromotionType == PromotionType.OptionalAccessories).ToList();

            foreach (var mgInfo in marginList)
            {
                //checkMsg.Append(string.Format("此商品的最低阶梯价格在在随心配{0}中毛利率{1}%\r", mgInfo.ReferenceSysNo
                //    , (Decimal.Round(mgInfo.Margin, 4) * 100m).ToString("0.00")));
                checkMsg.Append(string.Format(ResouceManager.GetMessageString("MKT.Promotion.GroupBuying", "GroupBuying_LowestGrossMagin"), mgInfo.ReferenceSysNo
                                              , (Decimal.Round(mgInfo.Margin, 4) * 100m).ToString("0.00")));
            }
            return(checkMsg.ToString());
        }
Ejemplo n.º 6
0
            /// <summary>
            /// 检查商品价格变动单据审核单据
            /// </summary>
            /// <param name="productPriceRequest"></param>
            /// <param name="status"></param>
            /// <param name="productID"></param>
            /// <returns></returns>
            public static void CheckModifyStatusPermission(ProductPriceRequestInfo productPriceRequest, ProductPriceRequestStatus?status, ref string productID)
            {
                CheckProductPriceReques(productPriceRequest);
                if (productPriceRequest.AuditType == null)
                {
                    throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestTypeIsNull"));
                }
                if (productPriceRequest.AuditType == ProductPriceRequestAuditType.Audit ||
                    (productPriceRequest.AuditType == ProductPriceRequestAuditType.SeniorAudit &&
                     productPriceRequest.RequestStatus == ProductPriceRequestStatus.Origin))
                {
                    if (!productPriceRequest.HasPrimaryAuditPricePermission)
                    {
                        var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                       "TLAuditPermission");
                        throw new BizException(String.Format(errorStr, productID));
                    }
                }

                if (productPriceRequest.AuditType == ProductPriceRequestAuditType.SeniorAudit &&
                    productPriceRequest.RequestStatus == ProductPriceRequestStatus.NeedSeniorApprove)
                {
                    if (!productPriceRequest.HasAdvancedAuditPricePermission)
                    {
                        var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                       "PMDAuditPermission");
                        throw new BizException(String.Format(errorStr, productID));
                    }
                }
            }
Ejemplo n.º 7
0
        public void InsertProductPriceRequest(int productSysNo, ProductPriceRequestInfo productPriceRequestInfo)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("InsertProductPriceRequest");

            cmd.SetParameterValue("@ProductSysNo", productSysNo);
            cmd.SetParameterValue("@BasicPrice", productPriceRequestInfo.BasicPrice);
            cmd.SetParameterValue("@CurrentPrice", productPriceRequestInfo.CurrentPrice);
            cmd.SetParameterValue("@CashRebate", productPriceRequestInfo.CashRebate);
            cmd.SetParameterValue("@Point", productPriceRequestInfo.Point);
            cmd.SetParameterValue("@Status", ProductPriceRequestStatus.Origin);
            cmd.SetParameterValue("@Type", productPriceRequestInfo.AuditType);
            cmd.SetParameterValue("@IsWholeSale", productPriceRequestInfo.ProductWholeSalePriceInfo.Any() ? 1 : 0);


            for (int i = 0; i < Enum.GetValues(typeof(WholeSaleLevelType)).Cast <WholeSaleLevelType>().Count(); i++)
            {
                if (productPriceRequestInfo.ProductWholeSalePriceInfo.Count > i)
                {
                    cmd.SetParameterValue("@Q" + (i + 1), productPriceRequestInfo.ProductWholeSalePriceInfo[i].Qty);
                    cmd.SetParameterValue("@P" + (i + 1), productPriceRequestInfo.ProductWholeSalePriceInfo[i].Price);
                }
                else
                {
                    cmd.SetParameterValue("@Q" + (i + 1), null);
                    cmd.SetParameterValue("@P" + (i + 1), null);
                }
            }
            cmd.SetParameterValue("@IsUseAlipayVipPrice", productPriceRequestInfo.IsUseAlipayVipPrice);
            cmd.SetParameterValue("@AlipayVipPrice", productPriceRequestInfo.AlipayVipPrice);
            cmd.SetParameterValue("@PMMemo", productPriceRequestInfo.PMMemo);
            cmd.SetParameterValue("@CreateUserSysNo", productPriceRequestInfo.CreateUser.SysNo);
            cmd.ExecuteNonQuery();
            productPriceRequestInfo.SysNo = (int)cmd.GetParameterValue("@SysNo");
            InsertRequestRankPrice(productSysNo, productPriceRequestInfo);
        }
Ejemplo n.º 8
0
        private void DoubleCheckProductPrice(ProductPriceRequestInfo requestInfo)
        {
            if (requestInfo == null)
            {
                throw new ArgumentNullException("requestInfo");
            }
            if (requestInfo.BasicPrice < IMConst.ProductPriceZero)
            {
                throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "ProductBasicPriceIsNull"));
            }

            if (requestInfo.CashRebate < IMConst.ProductPriceZero)
            {
                throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "ProductCashRebateIsNull"));
            }

            if (requestInfo.Point < IMConst.ProductPriceZero)
            {
                throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "ProducPointIsNull"));
            }

            //if (requestInfo.CurrentPrice.HasValue && (requestInfo.CurrentPrice < 0m || requestInfo.CurrentPrice > Math.Floor(requestInfo.CurrentPrice.Value)))
            //{
            //    throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "ProducCurrentPriceIsNull"));
            //}

            if (!(requestInfo.CurrentPrice.HasValue && requestInfo.CurrentPrice.Value > IMConst.ProductPriceZero))
            {
                throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "ProducCurrentPriceLargerThranZero"));
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 批量审核通过
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="callback"></param>
        public virtual void AuditProductPriceRequest(ProductPriceRequestInfo entity, EventHandler <RestClientEventArgs <dynamic> > callback)
        {
            var source = new List <ProductPriceRequestInfo> {
                entity
            };

            _restClient.Update(UPdateRelativeUrl, source, callback);
        }
Ejemplo n.º 10
0
        private void CalcProductPrice(ProductPriceRequestInfo requestInfo)
        {
            if (requestInfo == null)
            {
                return;
            }
            if (requestInfo.SysNo == null)
            {
                return;
            }
            CalcMargin(requestInfo);
            CalcMarginAmount(requestInfo);
            var productSysNo = GetProductSysNoByAuditProductPriceSysNo(requestInfo.SysNo.Value);
            var source       = ExternalDomainBroker.GetProductPromotionDiscountInfoList(productSysNo);

            requestInfo.NewMargin                = requestInfo.Margin;
            requestInfo.OldPrice.NewMargin       = requestInfo.OldPrice.Margin;
            requestInfo.NewMarginAmount          = requestInfo.MarginAmount;
            requestInfo.OldPrice.NewMarginAmount = requestInfo.OldPrice.NewMarginAmount;
            if (source == null || source.Count == 0)
            {
                return;
            }
            var targetSource = source.Where(e => PromotionTypeList.Contains(e.PromotionType)).ToList();

            if (targetSource.Count == 0)
            {
                return;
            }
            var targetSources =
                (from p in targetSource
                 group p by p.PromotionType into g
                 let maxPrice = g.Max(p => p.Discount)
                                select g.Where(p => p.Discount == maxPrice).First()).ToList();

            var amount = targetSources.Sum(p => p.Discount);

            amount = requestInfo.CurrentPrice ?? 0 - amount;
            var oldAmount = requestInfo.OldPrice.CurrentPrice ?? 0 - amount;
            var margin    = ObjectFactory <ProductPriceProcessor> .Instance.GetMargin(amount, requestInfo.Point ?? 0, requestInfo.UnitCost);

            var oldMargin = ObjectFactory <ProductPriceProcessor> .Instance.GetMargin(oldAmount, requestInfo.OldPrice.Point ?? 0, requestInfo.OldPrice.UnitCost);

            var marginAmount = ObjectFactory <ProductPriceProcessor> .Instance.GetMarginAmount(amount, requestInfo.Point ?? 0, requestInfo.UnitCost);

            var oldMarginAmount = ObjectFactory <ProductPriceProcessor> .Instance.GetMarginAmount(oldAmount, requestInfo.OldPrice.Point ?? 0, requestInfo.OldPrice.UnitCost);

            margin                            = Math.Round(margin, 4);
            oldMargin                         = Math.Round(oldMargin, 4);
            marginAmount                      = Math.Round(marginAmount, 4);
            oldMarginAmount                   = Math.Round(oldMarginAmount, 4);
            requestInfo.NewMargin             = margin;
            requestInfo.OldPrice.NewMargin    = oldMargin;
            requestInfo.MarginAmount          = marginAmount;
            requestInfo.OldPrice.MarginAmount = oldMarginAmount;
        }
Ejemplo n.º 11
0
 public List <ProductPromotionMarginInfo> GetProductPromotionMargin(ProductPriceRequestInfo productPriceReqInfo,
                                                                    int productSysNo,
                                                                    string priceName,
                                                                    decimal discount,
                                                                    ref string productMarginReturnMsg)
 {
     //Check各类型(PromotionType)折扣的最大值
     //若不符合毛利率规则,则返回折扣率对象
     return(ObjectFactory <ProductPriceProcessor> .Instance.CheckMargin(
                productPriceReqInfo, productSysNo, priceName, discount, ref productMarginReturnMsg));
 }
Ejemplo n.º 12
0
        public void UpdateProductPriceRequestStatus(int productPriceRequestSysNo, ProductPriceRequestStatus status)
        {
            var productPriceRequest = new ProductPriceRequestInfo
            {
                RequestStatus = status,
                SysNo         =
                    productPriceRequestSysNo
            };

            UpdateProductPriceRequestStatus(productPriceRequest);
        }
Ejemplo n.º 13
0
 private void Save(ProductPriceRequestInfo entity)
 {
     _facade = new ProductPriceRequestFacade();
     _facade.AuditProductPriceRequest(entity, (obj, args) =>
     {
         if (args.FaultsHandle())
         {
             return;
         }
         CPApplication.Current.CurrentPage.Context.Window.Alert("操作成功");
         CloseDialog(DialogResultType.OK);
     });
 }
Ejemplo n.º 14
0
 private void InsertRequestRankPrice(int productSysNo, ProductPriceRequestInfo productPriceRequestInfo)
 {
     foreach (var rankPrice in productPriceRequestInfo.ProductRankPrice.Where(rankPrice => rankPrice.RankPrice.HasValue && rankPrice.Status.HasValue))
     {
         DataCommand cmd = DataCommandManager.GetDataCommand("InsertRequestRankPrice");
         cmd.SetParameterValue("@PriceRequestSysNo", productPriceRequestInfo.SysNo);
         cmd.SetParameterValue("@ProductSysNo", productSysNo);
         cmd.SetParameterValue("@CustomerRank", rankPrice.Rank);
         cmd.SetParameterValue("@RankPrice", rankPrice.RankPrice);
         cmd.SetParameterValue("@Status", rankPrice.Status);
         cmd.SetParameterValue("@Type", productPriceRequestInfo.AuditType);
         cmd.ExecuteNonQuery();
     }
 }
Ejemplo n.º 15
0
        private void SetSendEmailAddress(int productsysno, ProductPriceRequestInfo entity)
        {
            ProductLineInfo plentity = ObjectFactory <IProductLineDA> .Instance.GetPMByProductSysNo(productsysno);

            if (plentity != null)
            {
                entity.PMUserEmailAddress = ObjectFactory <IProductManagerDA> .Instance.GetProductManagerInfoByUserSysNo(plentity.PMUserSysNo).UserInfo.EmailAddress;

                entity.BackupPMUserEmailAddress = GetBackupPMUserEmailAddress(plentity.BackupPMSysNoList);
                entity.CreateUserEmailAddress   = ObjectFactory <IProductManagerDA> .Instance.GetProductManagerInfoByUserSysNo(entity.CreateUser.SysNo.Value).UserInfo.EmailAddress;

                entity.CurrentUserEmailAddress = ObjectFactory <IProductManagerDA> .Instance.GetProductManagerInfoByUserSysNo(ServiceContext.Current.UserSysNo).UserInfo.EmailAddress;
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 计算毛利
        /// </summary>
        /// <param name="requestInfo"></param>
        private void CalcMarginAmount(ProductPriceRequestInfo requestInfo)
        {
            var margin = ObjectFactory <ProductPriceProcessor> .Instance.GetMarginAmount(requestInfo.CurrentPrice ?? 0, requestInfo.Point ?? 0, requestInfo.UnitCost);

            margin = Math.Round(margin, 4);
            requestInfo.MarginAmount = margin;
            if (requestInfo.OldPrice != null)
            {
                margin = ObjectFactory <ProductPriceProcessor> .Instance.GetMarginAmount(requestInfo.OldPrice.CurrentPrice ?? 0, requestInfo.OldPrice.Point ?? 0, requestInfo.OldPrice.UnitCost);

                margin = Math.Round(margin, 4);
                requestInfo.OldPrice.MarginAmount = margin;
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 根据PriceRequestSysNo获取商品价格变动信息
        /// </summary>
        /// <param name="productPriceRequest"></param>
        /// <returns></returns>
        private void UpdateProductPriceByRequestInfoSysNo(ProductPriceRequestInfo productPriceRequest)
        {
            if (productPriceRequest == null || productPriceRequest.SysNo == null || productPriceRequest.SysNo <= 0)
            {
                return;
            }
            InitProductPriceRequestInfo(productPriceRequest);
            var productSysNo = GetProductSysNoBySysNo(productPriceRequest.SysNo.Value);
            var productPrice = new ProductPriceInfo();

            EntityCopy.CopyProperties(productPriceRequest, productPrice);
            productPrice.ProductWholeSalePriceInfo = productPriceRequest.ProductWholeSalePriceInfo;
            productPrice.ProductRankPrice          = productPriceRequest.ProductRankPrice;
            var productPriceDA = ObjectFactory <IProductPriceDA> .Instance;

            productPriceDA.UpdateProductPrice(productSysNo, productPrice);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 初始化价格申请表数据
        /// </summary>
        /// <param name="productPriceRequest"></param>
        private void InitProductPriceRequestInfo(ProductPriceRequestInfo productPriceRequest)
        {
            if (productPriceRequest.BasicPrice < 0)
            {
                productPriceRequest.BasicPrice = productPriceRequest.OldPrice.BasicPrice;
            }
            if (productPriceRequest.CurrentPrice == null || productPriceRequest.CurrentPrice < 0)
            {
                productPriceRequest.CurrentPrice = productPriceRequest.OldPrice.CurrentPrice;
            }
            if (productPriceRequest.CashRebate == null || productPriceRequest.CashRebate < 0)
            {
                productPriceRequest.CashRebate = productPriceRequest.OldPrice.CashRebate;
            }
            if (productPriceRequest.Point == null || productPriceRequest.Point < 0)
            {
                productPriceRequest.Point = productPriceRequest.OldPrice.Point;
            }

            //productPriceRequest.Point = productPriceRequest.OldPrice.Point;

            productPriceRequest.IsExistRankPrice = productPriceRequest.ProductRankPrice != null && productPriceRequest.ProductRankPrice.Any(p => p.RankPrice > 0)?0:1;
            if (productPriceRequest.ProductWholeSalePriceInfo == null || productPriceRequest.ProductWholeSalePriceInfo.Count == 0)
            {
                productPriceRequest.IsWholeSale = 0;
            }
            else
            {
                productPriceRequest.ProductWholeSalePriceInfo.ForEach(v =>
                {
                    var entity = productPriceRequest.OldPrice
                                 .ProductWholeSalePriceInfo
                                 .Where(k => k.Level == v.Level).FirstOrDefault();
                    if (v.Qty != null && v.Qty < 0)
                    {
                        v.Qty = entity != null ? entity.Qty : null;
                    }
                    if (v.Price != null && v.Price < 0)
                    {
                        v.Price = entity != null ? entity.Price : null;
                    }
                });
                productPriceRequest.IsWholeSale = productPriceRequest.ProductWholeSalePriceInfo.Any(k => k.Price > 0)?1:0;
            }
        }
Ejemplo n.º 19
0
        private ProductPriceRequestInfo GetProductPriceRequestInfo(ProductPriceRequestStatus status)
        {
            if (_vm == null)
            {
                return(new ProductPriceRequestInfo());
            }
            var entity = new ProductPriceRequestInfo
            {
                SysNo         = SysNo,
                RequestStatus = status,
                TLMemo        = _vm.TLMemo,
                PMDMemo       = _vm.PMDMemo,
                HasAdvancedAuditPricePermission = _vm.HasAdvancedAuditPricePermission,
                HasPrimaryAuditPricePermission  = _vm.HasPrimaryAuditPricePermission
            };

            return(entity);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Check毛利率提交审核
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public virtual bool CheckMarginIsPass(OptionalAccessoriesItem item)
        {
            string returnMsgStr = string.Empty;
            var    productInfo  = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value);
            ProductPriceRequestInfo priceMsg = new ProductPriceRequestInfo()
            {
                CurrentPrice = productInfo.ProductPriceInfo.CurrentPrice,
                UnitCost     = productInfo.ProductPriceInfo.UnitCost,
                Point        = productInfo.ProductPriceInfo.Point,
                Category     = productInfo.ProductBasicInfo.ProductCategoryInfo
            };
            var _discount = this.GetOptionalAccessoriesDiscountByItem(item);
            List <ProductPromotionMarginInfo> marginList = ObjectFactory <IIMBizInteract> .Instance.GetProductPromotionMargin(
                priceMsg, item.ProductSysNo.Value, "", _discount, ref returnMsgStr);

            //return marginList != null && marginList.Where(m => m.PromotionType == PromotionType.OptionalAccessories).Count() > 0;
            return(!string.IsNullOrEmpty(returnMsgStr));
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 更新商品价格审核申请状态
        /// </summary>
        /// <param name="productPriceRequest"></param>
        public void UpdateProductPriceRequestStatus(ProductPriceRequestInfo productPriceRequest)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("UpdateProductPriceRequestStatus");

            cmd.SetParameterValue("@ProductPriceRequestSysNo", productPriceRequest.SysNo);
            cmd.SetParameterValue("@ProductPriceRequestStatus", productPriceRequest.RequestStatus != null ? productPriceRequest.RequestStatus.Value : 0);
            cmd.SetParameterValue("@PMDMemo", productPriceRequest.PMDMemo);
            cmd.SetParameterValue("@TLMemo", productPriceRequest.TLMemo);
            cmd.SetParameterValue("@AuditUserSysNo", productPriceRequest.AuditUser == null ? null : productPriceRequest.AuditUser.SysNo);
            cmd.SetParameterValue("@FinalAuditUserSysNo", productPriceRequest.FinalAuditUser == null ? null : productPriceRequest.FinalAuditUser.SysNo);
            cmd.ExecuteNonQuery();
            if (productPriceRequest.RequestStatus == ProductPriceRequestStatus.Approved)
            {
                if (productPriceRequest.SysNo != null)
                {
                    UpdateProductPriceByRequestInfoSysNo(productPriceRequest);
                }
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 如果没有修改Request,则赋原值
        /// </summary>
        private void ProcessNoRequestPrice(ProductPriceRequestInfo requestInfo, ProductPriceInfo priceInfo)
        {
            if (!requestInfo.CurrentPrice.HasValue)
            {
                requestInfo.CurrentPrice = priceInfo.CurrentPrice;
            }
            if (!requestInfo.CashRebate.HasValue)
            {
                requestInfo.CashRebate = priceInfo.CashRebate;
            }
            if (!requestInfo.Point.HasValue)
            {
                requestInfo.Point = priceInfo.Point;
            }

            requestInfo.UnitCost = priceInfo.UnitCost;

            requestInfo.ProductRankPrice.Where(rankPrice => !rankPrice.RankPrice.HasValue).ForEach(
                rankPrice =>
                rankPrice.RankPrice =
                    priceInfo.ProductRankPrice.First(p => p.Rank == rankPrice.Rank).RankPrice);

            requestInfo.ProductWholeSalePriceInfo.ForEach(
                delegate(ProductWholeSalePriceInfo volumePrice)
            {
                var f = priceInfo.ProductWholeSalePriceInfo.FirstOrDefault(
                    p => p.Level == volumePrice.Level);
                int?qty       = f != null ? f.Qty : default(int?);
                decimal?price = f != null ? f.Price : default(decimal?);

                volumePrice.Qty = volumePrice.Qty.HasValue
                                          ? volumePrice.Qty.Value
                                          : qty;

                volumePrice.Price = volumePrice.Price.HasValue
                                            ? volumePrice.Price
                                            : price;
            });
            if (!requestInfo.AlipayVipPrice.HasValue)
            {
                requestInfo.AlipayVipPrice = priceInfo.AlipayVipPrice;
            }
        }
Ejemplo n.º 23
0
 //[SendEmailAttribute(SendEmailType.CancelPriceRequest)]
 public void CancelAuditProductPriceRequest(ProductPriceRequestInfo productPriceRequestInfo, ProductPriceRequestStatus status)
 {
     _productPriceRequestDA.UpdateProductPriceRequestStatus(productPriceRequestInfo.SysNo.Value, status);
     //SetSendEmailAddress(_productPriceRequestDA.GetProductSysNoBySysNo(productPriceRequestInfo.SysNo.Value), productPriceRequestInfo);
 }
Ejemplo n.º 24
0
 //private bool SendPriceRequestEmail(int requestSysNo, int productSysNo, EmailType emailType, string companyCode, string reasons)
 //{
 //    //try
 //    //{
 //    //    EmailHelper.SendEmailByTemplate(customer.BasicInfo.Email, "MKT_ProductReviewMailContent", replaceVariables, false);
 //    //}
 //    //catch (Exception ex)
 //    //{
 //    //    TxtFileLogger logger = LoggerManager.GetLogger("EmailNotify.log");
 //    //    logger.WriteLog(ex);
 //    //    return false;
 //    //}
 //    return true;
 //}
 //[SendEmailAttribute(SendEmailType.CreatePriceRequest)]
 public void InsertProductPriceRequest(int productSysNo, ProductPriceRequestInfo productPriceRequestInfo)
 {
     _productPriceRequestDA.InsertProductPriceRequest(productSysNo, productPriceRequestInfo);
     //SetSendEmailAddress(productSysNo, productPriceRequestInfo);
 }
Ejemplo n.º 25
0
        //[SendEmailAttribute(SendEmailType.ApprovePriceRequest)]
        public void AuditProductPriceRequest(ProductPriceRequestInfo productPriceRequest)
        {
            CheckProductPriceRequestProcessor.CheckProductPriceReques(productPriceRequest);
            CheckProductPriceRequestProcessor.CheckProductPriceRequestSysNo(productPriceRequest.SysNo);
            CheckProductPriceRequestProcessor.CheckProductPriceRequestStatus(productPriceRequest.RequestStatus);
            var status  = productPriceRequest.RequestStatus;
            var tlMemo  = productPriceRequest.TLMemo ?? "";
            var pmdMemo = productPriceRequest.PMDMemo ?? "";
            var hasAdvancedAuditPricePermission = productPriceRequest.HasAdvancedAuditPricePermission;
            var hasPrimaryAuditPricePermission  = productPriceRequest.HasPrimaryAuditPricePermission;
            var isOnePass = productPriceRequest.IsOnePass;

            if (productPriceRequest.SysNo != null)
            {
                productPriceRequest = _productPriceRequestDA.GetProductPriceRequestInfoBySysNo(productPriceRequest.SysNo.Value);
            }
            productPriceRequest.TLMemo  = tlMemo;
            productPriceRequest.PMDMemo = pmdMemo;
            productPriceRequest.HasAdvancedAuditPricePermission = hasAdvancedAuditPricePermission;
            productPriceRequest.HasPrimaryAuditPricePermission  = hasPrimaryAuditPricePermission;
            var productID = "";
            int proSysNo  = 0;

            CheckProductPriceRequestProcessor.CheckProductPriceRequestStatus(productPriceRequest, status, ref productID, ref proSysNo);
            if (!isOnePass)
            {
                CheckProductPriceRequestProcessor.CheckModifyStatusPermission(productPriceRequest, status, ref productID);
            }
            CheckProductPriceRequestProcessor.CheckProductPriceRequestCreateSysNo(productPriceRequest, productID);
            SetAuditUser(productPriceRequest);
            using (var tran = new TransactionScope())
            {
                productPriceRequest.RequestStatus = status;
                _productPriceRequestDA.UpdateProductPriceRequestStatus(productPriceRequest);
                #region Check当前商品调价后所在销售规则中差价
                ExternalDomainBroker.CheckComboPriceAndSetStatus(proSysNo);
                #endregion

                //状态更新成功之后发送消息
                switch (productPriceRequest.RequestStatus)
                {
                //审核通过
                case ProductPriceRequestStatus.Approved:
                    EventPublisher.Publish <ECCentral.Service.EventMessage.IM.ProductPriceAuditMessage>(new ECCentral.Service.EventMessage.IM.ProductPriceAuditMessage()
                    {
                        AuditUserSysNo = ServiceContext.Current.UserSysNo,
                        RequestSysNo   = productPriceRequest != null && productPriceRequest.SysNo.HasValue ? productPriceRequest.SysNo.Value : 0
                    });
                    break;

                //审核拒绝
                case ProductPriceRequestStatus.Deny:
                    EventPublisher.Publish <ECCentral.Service.EventMessage.IM.ProductPriceRejectMessage>(new ECCentral.Service.EventMessage.IM.ProductPriceRejectMessage()
                    {
                        RejectUserSysNo = ServiceContext.Current.UserSysNo,
                        RequestSysNo    = productPriceRequest != null && productPriceRequest.SysNo.HasValue ? productPriceRequest.SysNo.Value : 0
                    });
                    break;
                }

                tran.Complete();
            }
            //SetSendEmailAddress(proSysNo, productPriceRequest);
        }
Ejemplo n.º 26
0
            /// <summary>
            /// 检查商品价格变动单据审核单据
            /// </summary>
            /// <param name="productPriceRequest"></param>
            /// <param name="status"></param>
            /// <param name="productID"></param>
            /// <returns></returns>
            public static void CheckProductPriceRequestStatus(ProductPriceRequestInfo productPriceRequest, ProductPriceRequestStatus?status, ref string productID, ref int proSysNo)
            {
                CheckProductPriceReques(productPriceRequest);
                if (productPriceRequest.AuditType == null)
                {
                    throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestTypeIsNull"));
                }
                var productPriceRequestDA = ObjectFactory <IProductPriceRequestDA> .Instance;

                if (productPriceRequest.SysNo == null)
                {
                    return;
                }
                var productSysNo = productPriceRequestDA.GetProductSysNoBySysNo(productPriceRequest.SysNo.Value);

                proSysNo = productSysNo;
                if (productSysNo <= 0)
                {
                    throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductSysNoIsNull"));
                }
                var productDA = ObjectFactory <IProductDA> .Instance;
                var product   = productDA.GetProductInfoBySysNo(productSysNo);

                productID = product.ProductID;
                if (product == null || String.IsNullOrEmpty(product.ProductID))
                {
                    throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductIsNull"));
                }
                if (productPriceRequest.RequestStatus == null)
                {
                    throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestStatusIsNull"));
                }
                if (!PendingList.Contains(productPriceRequest.RequestStatus.Value))
                {
                    var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                   "AuditProductPriceRequestForPending");
                    throw new BizException(String.Format(errorStr, product.ProductID));
                }
                if (status != null && productPriceRequest.AuditType.Value == ProductPriceRequestAuditType.SeniorAudit &&
                    productPriceRequest.RequestStatus.Value == ProductPriceRequestStatus.NeedSeniorApprove &&
                    status.Value == ProductPriceRequestStatus.Origin)
                {
                    var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                   "AuditProductPriceRequestForPending");
                    throw new BizException(String.Format(errorStr, product.ProductID));
                }
                if (status != null && productPriceRequest.AuditType.Value == ProductPriceRequestAuditType.Audit &&
                    status.Value == ProductPriceRequestStatus.NeedSeniorApprove)
                {
                    var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                   "TLAuditProductPriceRequest");
                    throw new BizException(String.Format(errorStr, product.ProductID));
                }
                if (productPriceRequest.AuditType.Value == ProductPriceRequestAuditType.SeniorAudit)
                {
                    if (String.IsNullOrEmpty(productPriceRequest.TLMemo.Trim()) &&
                        productPriceRequest.RequestStatus.Value == ProductPriceRequestStatus.Origin)
                    {
                        var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                       "TLMemoInvalid");
                        throw new BizException(String.Format(errorStr, product.ProductID));
                    }
                    if (String.IsNullOrEmpty(productPriceRequest.PMDMemo.Trim()) &&
                        productPriceRequest.RequestStatus.Value == ProductPriceRequestStatus.NeedSeniorApprove)
                    {
                        var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                       "PMDMemoInvalid");
                        throw new BizException(String.Format(errorStr, product.ProductID));
                    }
                }
                var result = ExternalDomainBroker.CheckMarketIsActivity(productSysNo);

                if (result && status == ProductPriceRequestStatus.Approved)
                {
                    var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest",
                                                                   "ProductPriceRequestStatusInvalid");
                    throw new BizException(String.Format(errorStr, product.ProductID));
                }
                ExternalDomainBroker.CheckComboPriceAndSetStatus(productSysNo);
            }
Ejemplo n.º 27
0
        public string GetCCEmail(ProductPriceRequestInfo entity)
        {
            var productPriceRequestDA = ObjectFactory <IProductPriceRequestDA> .Instance;

            Product = ObjectFactory <ProductProcessor> .Instance.GetProductInfo(productPriceRequestDA.GetProductSysNoBySysNo(entity.SysNo.Value));

            string ccMail = string.Empty;

            if (Product.ProductBasicInfo.ProductType == ProductType.OpenBox)
            {
                //decimal UnitCost = AppConst.DecimalNull, CurrentPrice = AppConst.DecimalNull;
                //if (entity.UnitCost == AppConst.DecimalNull || entity.CurrentPrice == AppConst.DecimalNull)
                //{
                //    return string.Empty;
                //}

                decimal dcmUnitCost50Percent = decimal.Multiply(entity.UnitCost, 0.5M); // 平均成本的5折
                decimal dcmUnitCost70Percent = decimal.Multiply(entity.UnitCost, 0.7M); // 平均成本的7折
                decimal dcmUnitCost80Percent = decimal.Multiply(entity.UnitCost, 0.8M); //
                if (entity.CurrentPrice < dcmUnitCost50Percent)
                {
                    ccMail = ConfigurationManager.AppSettings["PMLeaderEmail"].ToString();
                    //ProductManager.GetInstance().GetPMEmailForSecondHandProductSetPrice((int)AppEnum.Privilege.PMLeader);
                }
                else if (entity.CurrentPrice >= dcmUnitCost50Percent && entity.CurrentPrice < dcmUnitCost80Percent)
                {
                    ccMail = ConfigurationManager.AppSettings["SecondHandPriceAdjust3Email"].ToString();
                    //ccMail = ProductManager.GetInstance().GetPMEmailForSecondHandProductSetPrice((int)AppEnum.Privilege.SecondHandPriceAdjust3);
                }
                else if (entity.CurrentPrice >= dcmUnitCost80Percent && entity.CurrentPrice < 2 * entity.UnitCost)
                {
                    ccMail = ConfigurationManager.AppSettings["SecondHandPriceAdjust1Email"].ToString();
                    // ccMail = ProductManager.GetInstance().GetPMEmailForSecondHandProductSetPrice((int)AppEnum.Privilege.SecondHandPriceAdjust1);
                }
                else if (entity.CurrentPrice >= 2 * entity.UnitCost)
                {
                    ccMail = ConfigurationManager.AppSettings["SecondHandPriceAdjust1Email"].ToString();
                }
                return(ccMail);
            }


            if ((entity.CurrentPrice - (decimal)(entity.Point / 10m)) > 0)
            //if (entity.UnitCost != 0)
            {
                if (entity.Margin > 0)
                {
                    if (((entity.CurrentPrice - (decimal)(entity.Point / 10m) - entity.UnitCost) / (entity.CurrentPrice - (decimal)(entity.Point / 10m))) >= entity.Margin * 0.70M &&
                        ((entity.CurrentPrice - (decimal)(entity.Point / 10m) - entity.UnitCost) / (entity.CurrentPrice - (decimal)(entity.Point / 10m))) < entity.Margin)
                    {
                        ccMail = ConfigurationManager.AppSettings["AuditProductPrice1"];
                    }
                    if (((entity.CurrentPrice - (decimal)(entity.Point / 10m) - entity.UnitCost) / (entity.CurrentPrice - (decimal)(entity.Point / 10m))) < entity.Margin * 0.70M)
                    {
                        ccMail = ConfigurationManager.AppSettings["AuditProductPrice2"];
                        //AppConfig.AuditProductPrice2;
                    }
                    if (entity.CurrentPrice >= 2 * entity.UnitCost)
                    {
                        ccMail += ";" + ConfigurationManager.AppSettings["AuditProductPrice2"];
                    }
                }
                else
                {
                    if (((entity.CurrentPrice - (decimal)(entity.Point / 10m) - entity.UnitCost) / (entity.CurrentPrice - (decimal)(entity.Point / 10m))) < entity.Margin)
                    {
                        ccMail = ConfigurationManager.AppSettings["AuditProductPrice2"];
                    }
                    //AppConfig.AuditProductPrice2;
                }
            }
            return(ccMail);
        }
Ejemplo n.º 28
0
        public override void OnSuccess(MethodExecutionEventArgs args)
        {
            int    requestsysno            = 0;
            string ptptdUser               = ConfigurationManager.AppSettings["PTPTDUser"];
            string subject                 = string.Empty;
            ProductPriceRequestInfo entity = new ProductPriceRequestInfo();

            if (EmailType == SendEmailType.ApprovePriceRequest)
            {
                object[] objs = args.GetReadOnlyArgumentArray();
                entity = objs[0] as ProductPriceRequestInfo;

                requestsysno = entity.SysNo.Value;

                if (entity.RequestStatus == ProductPriceRequestStatus.Deny)//拒绝时的邮件发送
                {
                    subject = ResouceManager.GetMessageString("IM.Product", "AuditRejected");
                }
                else
                {
                    subject = ResouceManager.GetMessageString("IM.Product", "AuditPassed");
                }
            }
            else if (EmailType == SendEmailType.CancelPriceRequest)//撤销时的邮件发送
            {
                object[] objs = args.GetReadOnlyArgumentArray();
                entity = objs[0] as ProductPriceRequestInfo;

                requestsysno = entity.SysNo.Value;

                subject = ResouceManager.GetMessageString("IM.Product", "CancelAudit");
            }
            else if (EmailType == SendEmailType.CreatePriceRequest)
            {
                object[] objs = args.GetReadOnlyArgumentArray();
                entity = objs[1] as ProductPriceRequestInfo;

                requestsysno = entity.SysNo.Value;

                subject = ResouceManager.GetMessageString("IM.Product", "RequestAudit");
            }



            ProductPriceRequestInfo requestentity = ObjectFactory <ProductPriceRequestProcessor> .Instance.GetProductPriceRequestInfoBySysNo(requestsysno);


            string toAddress = string.Format("{0};{1}", entity.PMUserEmailAddress, entity.CurrentUserEmailAddress);

            if (!string.IsNullOrEmpty(entity.BackupPMUserEmailAddress))
            {
                toAddress = string.Format("{0};{1}", toAddress, entity.BackupPMUserEmailAddress);
            }
            if (!string.IsNullOrEmpty(ptptdUser))
            {
                toAddress = string.Format("{0};{1}", toAddress, ptptdUser);
            }

            string ccmail     = GetCCEmail(requestentity);
            string updatetime = string.Empty;

            if (requestentity.LastUpdateTime.HasValue)
            {
                updatetime = requestentity.LastUpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
            }

            //参数设置
            KeyValueVariables keyValueVariables = new KeyValueVariables();

            keyValueVariables.AddKeyValue("Subject", subject);
            keyValueVariables.Add("ProductSysNo", Product.SysNo);
            keyValueVariables.Add("ProductName", Product.ProductName);
            keyValueVariables.Add("UpdateTime", updatetime);
            keyValueVariables.Add("SysNo", requestentity.SysNo);
            keyValueVariables.Add("ProductID", Product.ProductID);
            keyValueVariables.Add("BasicPrice", requestentity.OldPrice.BasicPrice);
            keyValueVariables.Add("BasicPriceNew", requestentity.BasicPrice);
            keyValueVariables.Add("UnitCost", requestentity.UnitCost);
            keyValueVariables.Add("CurrentPrice", requestentity.OldPrice.CurrentPrice);
            keyValueVariables.Add("CurrentPriceNew", requestentity.CurrentPrice);
            keyValueVariables.Add("Discount", requestentity.DiscountAmount);
            keyValueVariables.Add("CashRebate", requestentity.OldPrice.CashRebate);
            keyValueVariables.Add("CashRebateNew", requestentity.CashRebate);
            keyValueVariables.Add("Point", requestentity.OldPrice.Point);
            keyValueVariables.Add("PointNew", requestentity.Point);
            keyValueVariables.Add("ProductPayType", requestentity.OldPrice.PayType.ToString());
            keyValueVariables.Add("MaxPerOrder", requestentity.MinCountPerOrder);
            keyValueVariables.Add("MinMargin", requestentity.OldPrice.Margin);
            keyValueVariables.Add("MinMarginCurrent", requestentity.Margin);
            keyValueVariables.Add("Apply", requestentity.CreateUser.UserName);
            keyValueVariables.Add("PMMemo", requestentity.PMMemo);
            keyValueVariables.Add("TLMemo", requestentity.TLMemo);


            EmailHelper.SendEmailByTemplate(toAddress, ccmail, "", "IM_Product_ChangePrice", keyValueVariables, null, true, true);
            base.OnSuccess(args);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// Check商品本身及促销活动中毛利率,供外部访问
        /// </summary>
        /// <param name="productPriceReqInfo">价格信息,必须参数包括:CurrentPrice,Point,UnitCost,CategorySysNo</param>
        /// <param name="productSysNo">商品Sysno</param>
        /// <param name="priceName">所修改价格的名称</param>
        /// <param name="productMarginReturnMsg">返回商品本身的毛利率Check结果</param>
        /// <returns></returns>
        public List <ProductPromotionMarginInfo> CheckMargin(ProductPriceRequestInfo productPriceReqInfo,
                                                             int productSysNo,
                                                             string priceName,
                                                             decimal discount,
                                                             ref string productMarginReturnMsg)
        {
            List <ProductPromotionMarginInfo> returnList = new List <ProductPromotionMarginInfo>();
            var categoryInfo = productPriceReqInfo.Category;

            if (categoryInfo.SysNo.HasValue)
            {
                var setting = ObjectFactory <CategorySettingProcessor> .Instance.GetCategorySettingBySysNo(categoryInfo.SysNo.Value, productSysNo);

                var priceInfo = productPriceReqInfo;
                if (priceInfo.UnitCost >= 0)
                {
                    var margin = GetMargin(priceInfo.CurrentPrice.Value,
                                           priceInfo.Point.HasValue ? priceInfo.Point.Value : 0,
                                           priceInfo.UnitCost, discount);
                    if (margin < setting.PrimaryMargin && margin > setting.SeniorMargin)
                    {
                        productMarginReturnMsg = ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult1") + priceName + ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult2");
                    }
                    if (margin < setting.SeniorMargin)
                    {
                        productMarginReturnMsg = priceName + ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult3");
                        //auditType = ProductPriceRequestAuditType.SeniorAudit;
                    }

                    var productPromotionDiscountInfoList = ExternalDomainBroker.GetProductPromotionDiscountInfoList(productSysNo);

                    if (productPromotionDiscountInfoList.Any())
                    {
                        string msgTmp = string.Empty;
                        productPromotionDiscountInfoList.ForEach(promotionDiscountInfo =>
                        {
                            var promotionMargin = GetMargin(priceInfo.CurrentPrice.Value,
                                                            priceInfo.Point.HasValue ? priceInfo.Point.Value : 0, priceInfo.UnitCost, promotionDiscountInfo.Discount);
                            var enumName = EnumHelper.GetEnumDesc(promotionDiscountInfo.PromotionType);
                            var promotionMarginPercent = (promotionMargin * 100).TruncateDecimal(2) + "%";
                            if (promotionMargin < setting.PrimaryMargin)
                            {
                                msgTmp = ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult4") + priceName + ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult5") + enumName
                                         + promotionDiscountInfo.ReferenceSysNo + ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult6")
                                         + promotionMarginPercent + ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult7");
                            }
                            returnList.Add(new ProductPromotionMarginInfo()
                            {
                                PromotionType  = promotionDiscountInfo.PromotionType,
                                ReferenceSysNo = promotionDiscountInfo.ReferenceSysNo,
                                Margin         = promotionMargin,
                                ReturnMsg      = msgTmp
                            });
                        });
                    }
                }
            }
            else
            {
                throw new BizException(ResouceManager.GetMessageString("IM.ProductPrice", "CheckMarginResult8"));
            }
            return(returnList);
        }