/// <summary> /// 计算订单能使用多少惠源币 /// </summary> /// <param name="cart">购物车对象</param> /// <param name="customerModel">客户实体</param> /// <returns>惠源币数量</returns> /// <remarks>2014-1-3 黄波 创建</remarks> public int SettleAccountsUseExperienceCoinQuantity(Hyt.Model.CrShoppingCart cart, CrCustomer customerModel) { var allowMaxExperienceCoin = 0; try { //判断顾客是否能使用惠源币 if (customerModel.IsExperienceCoinFixed == 1) { return(0); } var level = Hyt.DataAccess.CRM.ICrCustomerDao.Instance.GetCustomerLevel(customerModel.LevelSysNo); if (level.CanPayForProduct == 1)//惠源币可用于支付货款 { var productPaymentUseExperienceCoin = (int)Math.Floor(((decimal)(cart.SettlementAmount - (cart.FreightAmount - cart.FreightDiscountAmount)) * level.ProductPaymentPercentage / 100)); allowMaxExperienceCoin += Math.Min(productPaymentUseExperienceCoin, level.ProductPaymentUpperLimit); } if (level.CanPayForService == 1)//惠源币可用于支付服务 { var servicePaymentUseExperienceCoin = (int)Math.Floor(((decimal)(cart.FreightAmount - cart.FreightDiscountAmount) * level.ServicePaymentPercentage / 100)); allowMaxExperienceCoin += Math.Min(servicePaymentUseExperienceCoin, level.ServicePaymentUpperLimit); } } catch (Exception ex) { Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, ex.Message, ex); } return(allowMaxExperienceCoin); }
/// <summary> /// 计算订单能使用多少惠源币 /// </summary> /// <param name="cart">购物车对象</param> /// <param name="customerSysNo">客户编号</param> /// <returns>惠源币数量</returns> /// <remarks>2014-1-3 黄波 创建</remarks> public int SettleAccountsUseExperienceCoinQuantity(Hyt.Model.CrShoppingCart cart, int customerSysNo) { var customerModel = Hyt.DataAccess.CRM.ICrCustomerDao.Instance.GetCrCustomerItem(customerSysNo); return(SettleAccountsUseExperienceCoinQuantity(cart, customerModel)); }
/// <summary> /// 验证等级惠源币支付比例是否有效 /// </summary> /// <param name="cart">购物车对象</param> /// <param name="customerModel">客户实体</param> /// <param name="experienceCoin">惠源币</param> /// <returns>是否有效</returns> /// <remarks>2014-1-3 黄波 创建</remarks> public bool ExperienceCoinScaleIsValid(Hyt.Model.CrShoppingCart cart, CrCustomer customerModel, int experienceCoin) { return(experienceCoin <= SettleAccountsUseExperienceCoinQuantity(cart, customerModel)); }