//设置产品的价格和+折扣<成本价格和 变为待审核状态 //提供一个接口供商品价格管理模块来调用,传入商品ID或者sysno, //然后检查商品对应捆绑规则是否有低于成本价的情况,有的就将其变为待审核(status=1)! /// <summary> /// 检查条件:如果(1)Combo当前是有效状态(2)价格和+折扣和 小于 成本价格和 ,价格检查不通过 /// /// </summary> /// <param name="entity"></param> /// <returns></returns> public virtual bool CheckPriceIsPass(OptionalAccessoriesInfo entity) { bool result = true; decimal totalPrice = 0.00m; decimal totalDiscount = 0.00m; decimal totalCost = 0.00m; if (entity.Items != null && entity.Items.Count > 0) { foreach (OptionalAccessoriesItem item in entity.Items) { ProductInfo product = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value); totalPrice += Math.Round(product.ProductPriceInfo.CurrentPrice.Value * item.Quantity.Value, 2); totalDiscount += Math.Round(item.Discount.Value * item.Quantity.Value, 2); totalCost += Math.Round(product.ProductPriceInfo.UnitCost * item.Quantity.Value, 2); } if (totalPrice + totalDiscount < totalCost) { return(false); } } return(result); }
//private OptionalAccessoriesPromotionEngine _oaPromotionEngine = ObjectFactory<OptionalAccessoriesPromotionEngine>.Instance; #region 维护类行为 /// <summary> /// 加载OptionalAccessories所有信息 /// </summary> /// <param name="sysNo"></param> /// <returns></returns> public virtual OptionalAccessoriesInfo Load(int?sysNo) { OptionalAccessoriesInfo info = _da.Load(sysNo.Value); if (info == null) { //throw new BizException("随心配不存在!"); throw new BizException(ResouceManager.GetMessageString("MKT.Promotion.Combo", "OptionalAccessories_NotExsistOptionalAccessories")); } #region 获取待审核规则的商品毛利Check信息,供页面显示 if (info.Status == ComboStatus.WaitingAudit) { info.DisplayApproveMsg = new List <string>(); foreach (var item in info.Items) { if (CheckMarginIsPass(item)) { //info.DisplayApproveMsg.Add(string.Format("{0} 商品折扣价毛利低于PMCC毛利标准", item.ProductID)); info.DisplayApproveMsg.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "OptionalAccessories_DiscountLowerPMCC"), item.ProductID)); } } } #endregion string userfullname = ObjectFactory <ICommonBizInteract> .Instance.GetUserFullName(ServiceContext.Current.UserSysNo.ToString(), true); info.InUser = userfullname; return(info); }
/// <summary> /// 更新保存时需要检查状态变化 /// </summary> /// <param name="entity"></param> /// <returns></returns> protected virtual List <string> CheckValidateWhenChangeStatus(OptionalAccessoriesInfo entity) { List <string> errList = new List <string>(); if (entity.TargetStatus.Value == ComboStatus.Active) { //if (!CheckPriceIsPass(entity)) //{ // //errList.Add("差价大于成本(销售价格和 + 总折扣 < 成本价格和),请先提交审核!"); // errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ExamineFirstWhenPriceDiffrenceIsHigher")); //} foreach (OptionalAccessoriesItem item in entity.Items) { item.OptionalAccessoriesSysNo = entity.SysNo; if (CheckMarginIsPass(item)) { // errList.Add(string.Format("商品{0}毛利率小于最低毛利率,请提交审核!", item.ProductID)); errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ExamineFirstWhenRateOfMarginIsHigher"), item.ProductID)); } } if (entity.Items.Find(f => f.IsMasterItemB.HasValue && f.IsMasterItemB.Value) == null) { //throw new BizException("套餐必须有一个主商品!"); throw new BizException(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_MustOneMainGoods")); } } return(errList); }
/// <summary> /// 调用Combo更新状态 /// </summary> /// <param name="sysNo"></param> /// <param name="targetStatus"></param> public virtual void ApproveOptionalAccessories(int?sysNo, ComboStatus targetStatus) { //Check审核人与创建人不能相同 if (sysNo == null) { //throw new BizException("更新失败,参数有误!"); throw new BizException(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ArgsError")); } OptionalAccessoriesInfo oldEntity = _da.Load(sysNo.Value); //if (oldEntity.Status == ComboStatus.WaitingAudit && oldEntity.CreateUserSysNo == ServiceContext.Current.UserSysNo) //{ // throw new BizException(string.Format("{0} 创建人与审核人不能相同", oldEntity.Name)); //} TransactionScopeFactory.TransactionAction(() => { ObjectFactory <ComboProcessor> .Instance.UpdateStatus(sysNo, targetStatus); //更新PromotionEngine配置中活动的状态 //_oaPromotionEngine.UpdateActivityStatus(sysNo.Value, targetStatus); ExternalDomainBroker.CreateOperationLog( String.Format("{0}{1}SysNo:{2}| 状态:{3}", DateTime.Now.ToString(), "审核状态", sysNo , targetStatus == ComboStatus.Active ? "有效" : targetStatus == ComboStatus.Deactive ? "无效" : "待审核") , BizEntity.Common.BizLogType.OptionalAccessories_Approve , sysNo.Value, "8601");//[Mark][Alan.X.Luo 硬编码] }); }
/// <summary> /// 创建、更新,数据验证 /// </summary> /// <param name="entity"></param> /// <returns></returns> protected virtual List <string> CheckBasicIsPass(OptionalAccessoriesInfo entity) { List <string> errList = new List <string>(); StringBuilder builder = new StringBuilder(); if (string.IsNullOrEmpty(entity.Name.Content)) { //errList.Add("规则名不能为空!"); errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_RuleNameIsNotNull")); } if (entity.Name.Content.Trim().Length < 0 || entity.Name.Content.Trim().Length > 500) { // errList.Add("规则描述长度不能超过500个字符!"); errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "OptionalAccessories_LessCharLength")); } if (entity.Priority < 0 || entity.Priority > 9999) { //errList.Add("优先级只能在0-9999范围之内的整数!"); errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_MustInRange")); } if (entity.Items == null || entity.Items.Count < 2) { //errList.Add("请至少添加2个商品!"); errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_MoreThanTwoProduct")); } return(errList); }
private OptionalAccessoriesVM EtoV(OptionalAccessoriesInfo entity) { OptionalAccessoriesVM viewmodel = entity.Convert <OptionalAccessoriesInfo, OptionalAccessoriesVM>((en, vm) => { vm.Name = en.Name.Content; foreach (var item in vm.Items) { entity.Items.ForEach(i => { if (i.SysNo == item.SysNo) { //Format折扣 var dpdTmp = i.Discount == null ? 0m : i.Discount.Value; item.Discount = dpdTmp.ToString("0"); //Format折扣比例 dpdTmp = i.DiscountPercent == null ? 0m : (i.DiscountPercent.Value <= 1 ? i.DiscountPercent.Value * 100 : i.DiscountPercent.Value); item.DiscountPercent = dpdTmp.ToString("0"); } }); } }); return(viewmodel); }
public void Load(int sysNo, EventHandler <RestClientEventArgs <OptionalAccessoriesVM> > callback) { string relativeUrl = string.Format("/MKTService/OptionalAccessories/{0}", sysNo); restClient.Query <OptionalAccessoriesInfo>(relativeUrl, (obj, args) => { if (args.FaultsHandle()) { return; } //var vm = args.Result.Convert<OptionalAccessoriesInfo, OptionalAccessoriesVM>(); //vm.Name = args.Result.Name.Content; //RestClientEventArgs<OptionalAccessoriesVM> e = new RestClientEventArgs<OptionalAccessoriesVM>(vm, this.viewPage); //callback(obj, e); OptionalAccessoriesInfo entity = args.Result; OptionalAccessoriesVM _viewModel = null; if (entity == null) { _viewModel = new OptionalAccessoriesVM(); } else { _viewModel = EtoV(entity); } callback(obj, new RestClientEventArgs <OptionalAccessoriesVM>(_viewModel, this.viewPage)); }); }
/// <summary> /// 加载OptionalAccessories所有信息 /// </summary> /// <param name="sysNo"></param> /// <returns></returns> public virtual OptionalAccessoriesInfo Load(int sysNo) { OptionalAccessoriesInfo info = null; DataCommand cmd = DataCommandManager.GetDataCommand("LoadOptionalAccessoriesInfo"); cmd.SetParameterValue("@SysNo", sysNo); DataSet ds = cmd.ExecuteDataSet(); DataTable dtMaster = ds.Tables[0]; DataTable dtItem = ds.Tables[1]; if (dtMaster == null || dtMaster.Rows.Count == 0) { return(null); } info = DataMapper.GetEntity <OptionalAccessoriesInfo>(dtMaster.Rows[0], (row, entity) => { entity.Name = new BizEntity.LanguageContent(row["SaleRuleName"].ToString().Trim()); entity.TargetStatus = entity.Status; entity.IsShowName = row["IsShow"].ToString().Trim().ToUpper() == "Y" ? true : false; }); info.Items = DataMapper.GetEntityList <OptionalAccessoriesItem, List <OptionalAccessoriesItem> >(dtItem.Rows, (row, entity) => { entity.IsMasterItemB = row["IsMasterItem"] == null ? false : (row["IsMasterItem"].ToString() == "1" ? true : false); }); return(info); }
/// <summary> /// 加载OptionalAccessories所有信息 /// </summary> /// <param name="sysNo"></param> /// <returns></returns> public OptionalAccessoriesInfo Load(int?sysNo) { OptionalAccessoriesInfo info = _processor.Load(sysNo); if (info != null && info.Items != null && info.Items.Count > 0) { foreach (OptionalAccessoriesItem item in info.Items) { ProductInfo product = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value); VendorBasicInfo vendor = new VendorBasicInfo(); if (product != null && product.Merchant != null) { vendor = ExternalDomainBroker.GetVendorBasicInfoBySysNo(product.Merchant.SysNo.Value); } item.MerchantName = vendor != null && !string.IsNullOrEmpty(vendor.VendorID) ? (vendor.VendorType == VendorType.IPP ? ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_NeweggMerchant") : product.Merchant.MerchantName) : ""; item.MerchantSysNo = product.Merchant != null ? product.Merchant.MerchantID : null; item.ProductID = product.ProductID; item.ProductName = product.ProductName; item.ProductPoint = product.ProductPriceInfo.Point; item.ProductCurrentPrice = product.ProductPriceInfo.CurrentPrice; item.ProductUnitCost = product.ProductPriceInfo.UnitCost; } } return(info); }
/// <summary> /// 发送邮件通知PM Combo的因商品调价,状态已改 /// </summary> /// <param name="combo"></param> protected virtual void SendMail(OptionalAccessoriesInfo oa) { UserInfo user = ExternalDomainBroker.GetUserInfoBySysNo(oa.CreateUserSysNo.Value); KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("ComboSysNo", oa.SysNo.Value.ToString()); keyValueVariables.Add("ComboName", oa.Name.Content); keyValueVariables.Add("PMUser", user.UserDisplayName); EmailHelper.SendEmailByTemplate(user.EmailAddress, "MKT_Combo_ChangeStatusForChangeProductPrice", keyValueVariables, true); }
public virtual void UpdateMaster(OptionalAccessoriesInfo info) { DataCommand cmd = DataCommandManager.GetDataCommand("UpdateCombo"); cmd.SetParameterValue("@SysNo", info.SysNo); cmd.SetParameterValue("@SaleRuleName", info.Name.Content); cmd.SetParameterValue("@Status", info.TargetStatus); cmd.SetParameterValue("@IsShow", info.IsShowName.Value ? "Y" : "N"); cmd.SetParameterValue("@Priority", info.Priority); cmd.SetParameterValue("@SaleRuleType", info.SaleRuleType); cmd.SetParameterValue("@Reason", "");//销售规则管理加了该字段,用的同一个sql文,所以默认该字段为null cmd.ExecuteNonQuery(); }
public void CheckOptionalAccessoriesItemIsPass(OptionalAccessoriesVM model, EventHandler <RestClientEventArgs <List <string> > > callback) { string relativeUrl = "/MKTService/OptionalAccessories/CheckOptionalAccessoriesItemIsPass"; OptionalAccessoriesInfo msg = model.ConvertVM <OptionalAccessoriesVM, OptionalAccessoriesInfo>(); msg.CompanyCode = CPApplication.Current.CompanyCode; restClient.Create <List <string> >(relativeUrl, msg, (obj, args) => { if (args.FaultsHandle()) { return; } callback(obj, args); }); }
public void Update(OptionalAccessoriesVM model, EventHandler <RestClientEventArgs <OptionalAccessoriesVM> > callback) { string relativeUrl = "/MKTService/OptionalAccessories/Update"; OptionalAccessoriesInfo msg = model.ConvertVM <OptionalAccessoriesVM, OptionalAccessoriesInfo>(); msg.Name.Content = model.Name; restClient.Update <OptionalAccessoriesInfo>(relativeUrl, msg, (obj, args) => { if (args.FaultsHandle()) { return; } var vm = args.Result.Convert <OptionalAccessoriesInfo, OptionalAccessoriesVM>(); RestClientEventArgs <OptionalAccessoriesVM> e = new RestClientEventArgs <OptionalAccessoriesVM>(vm, this.viewPage); callback(obj, e); }); }
public void Create(OptionalAccessoriesVM model, EventHandler <RestClientEventArgs <int?> > callback) { string relativeUrl = "/MKTService/OptionalAccessories/Create"; OptionalAccessoriesInfo msg = model.ConvertVM <OptionalAccessoriesVM, OptionalAccessoriesInfo>(); msg.Name.Content = model.Name; msg.CompanyCode = CPApplication.Current.CompanyCode; restClient.Create <int?>(relativeUrl, msg, (obj, args) => { if (args.FaultsHandle()) { return; } model.SysNo = args.Result; callback(obj, args); }); }
/// <summary> /// 更新OptionalAccessories Master,包含:更新主信息,更新状态: /// 无效->有效,无效->待审核,有效->无效,有效->待审核,待审核->无效,待审核->有效 /// 其中无效->有效需要Check RequiredSaleRule4UpdateValidate /// </summary> /// <param name="info"></param> public virtual void UpdateOptionalAccessories(OptionalAccessoriesInfo info) { List <string> errorList = CheckBasicIsPass(info); if (errorList.Count > 0) { throw new BizException(errorList.Join("\r\n")); } errorList = CheckOptionalAccessoriesItemIsPass(info, false); if (errorList.Count > 0) { throw new BizException(errorList.Join("\r\n")); } errorList = CheckValidateWhenChangeStatus(info); if (errorList.Count > 0) { throw new BizException(errorList.Join("\r\n")); } TransactionScopeFactory.TransactionAction(() => { _da.UpdateMaster(info); _da.DeleteOptionalAccessoriesAllItem(info.SysNo.Value); foreach (OptionalAccessoriesItem item in info.Items) { item.OptionalAccessoriesSysNo = info.SysNo; _da.AddOptionalAccessoriesItem(item); } //将数据保存到PromotionEngine配置库中 //_oaPromotionEngine.SaveActivity(info); ExternalDomainBroker.CreateOperationLog( String.Format("{0}{1}SysNo:{2}| 规则描述:{3}| 优先级:{4} | 状态:{5}", DateTime.Now.ToString(), "更新随心配" , info.SysNo, info.Name, info.Priority , info.Status == ComboStatus.Active ? "有效" : info.Status == ComboStatus.Deactive ? "无效" : "待审核") , BizEntity.Common.BizLogType.OptionalAccessories_Update , info.SysNo.Value, info.CompanyCode); }); ExternalDomainBroker.CreateOperationLog(BizLogType.OptionalAccessories_Update.ToEnumDesc(), BizLogType.OptionalAccessories_Update, info.SysNo.Value, info.CompanyCode); }
public virtual int CreateMaster(OptionalAccessoriesInfo info) { DataCommand cmd = DataCommandManager.GetDataCommand("CreateCombo"); cmd.SetParameterValue("@SaleRuleName", info.Name.Content); cmd.SetParameterValue("@SaleRuleType", info.SaleRuleType); cmd.SetParameterValue("@CreateUserSysNo", ServiceContext.Current.UserSysNo); cmd.SetParameterValue("@Status", info.Status); cmd.SetParameterValue("@IsShow", info.IsShowName.Value ? "Y" : "N"); cmd.SetParameterValue("@Priority", info.Priority); cmd.SetParameterValue("@CompanyCode", info.CompanyCode); cmd.SetParameterValue("@ReferenceSysNo", info.ReferenceSysNo ?? 0); cmd.SetParameterValue("@ReferenceType", info.ReferenceType ?? 3); cmd.SetParameterValue("@Reason", ""); //销售规则管理加了该字段,用的同一个sql文,所以默认该字段为null cmd.ExecuteNonQuery(); info.SysNo = (int)cmd.GetParameterValue("@SysNo"); return(info.SysNo.Value); }
/// <summary> /// 检查Combo中商品是否是同一个Merchant,主要用于批量创建 /// </summary> /// <param name="entity"></param> /// <returns></returns> protected virtual bool CheckItemMerchantIsSame(OptionalAccessoriesInfo info) { bool result = true; if (info.Items != null && info.Items.Count > 0) { var grouplist = from p in info.Items group p by p.MerchantSysNo into g select new { g.Key, num = g.Count() }; if (grouplist.Count() > 1) { result = false; } else { result = true; } } return(result); }
/// <summary> /// 创建OptionalAccessories /// </summary> /// <param name="info"></param> /// <returns></returns> public virtual int?CreateOptionalAccessories(OptionalAccessoriesInfo info) { List <string> errorList = CheckBasicIsPass(info); if (errorList.Count > 0) { throw new BizException(errorList.Join("\r\n")); } errorList = CheckOptionalAccessoriesItemIsPass(info, false); if (errorList.Count > 0) { throw new BizException(errorList.Join("\r\n")); } if (info.Status == null) { info.Status = ComboStatus.Deactive; } TransactionScopeFactory.TransactionAction(() => { info.SysNo = _da.CreateMaster(info); foreach (OptionalAccessoriesItem item in info.Items) { item.OptionalAccessoriesSysNo = info.SysNo; _da.AddOptionalAccessoriesItem(item); } //将数据保存到PromotionEngine配置库中 //_oaPromotionEngine.SaveActivity(info); }); ExternalDomainBroker.CreateOperationLog(BizLogType.OptionalAccessories_Create.ToEnumDesc(), BizLogType.OptionalAccessories_Create, info.SysNo.Value, info.CompanyCode); return(info.SysNo); }
public int?CreateOptionalAccessories(OptionalAccessoriesInfo info) { return(ObjectFactory <OptionalAccessoriesAppService> .Instance.CreateOptionalAccessories(info)); }
public void UpdateOptionalAccessories(OptionalAccessoriesInfo info) { ObjectFactory <OptionalAccessoriesAppService> .Instance.UpdateOptionalAccessories(info); }
public List <string> CheckOptionalAccessoriesItemIsPass(OptionalAccessoriesInfo info) { return(ObjectFactory <OptionalAccessoriesAppService> .Instance.CheckOptionalAccessoriesItemIsPass(info)); }
/// <summary> /// 对OptionalAccessories Item进行检查,本方法对添加OptionalAccessoriesItem时也有用 /// </summary> /// <param name="info"></param> /// <returns></returns> public virtual List <string> CheckOptionalAccessoriesItemIsPass(OptionalAccessoriesInfo info, bool isCreate) { List <string> errList = new List <string>(); if (!isCreate && info.Items.Count > 1 && info.Items.FindAll(f => f.IsMasterItemB.Value).Count < 1) { //errList.Add("一个随心配中必须有至少1个主商品!"); errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "OptionalAccessories_LeastOneMasterProduct")); return(errList); } if (!isCreate && info.Items.Count > 1 && info.Items.FindAll(f => !f.IsMasterItemB.Value).Count < 1) { errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "OptionalAccessories_LeastOneSubProduct")); return(errList); } var grouplist = from p in info.Items group p by p.ProductSysNo into g select new { g.Key, num = g.Count() }; var maxcount = (from p in grouplist select p.num).Max(); if (maxcount > 1) { // errList.Add("捆绑商品中存在重复的商品!"); errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_HasSameProductInCombo")); return(errList); } //每个商品的价格check foreach (OptionalAccessoriesItem item in info.Items) { ProductInfo product = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value); if (item.Discount > 0) { //errList.Add(string.Format("商品{0}折扣只能为小于等于0的整数!", product.ProductID)); errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_DisCountMustIntLessZero"), product.ProductID)); } if (!item.Quantity.HasValue || item.Quantity.Value <= 0) { //errList.Add(string.Format("商品{0}数量必须为大于0的整数!", product.ProductID)); errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_QuntityMustIntAndThanZero"), product.ProductID)); } if (item.IsMasterItemB.Value && !isCreate) { List <OptionalAccessoriesItem> itemListTmp = _da.GetOptionalAccessoriesItemListByProductSysNo(item.ProductSysNo.Value, item.SysNo == null ? 0 : item.SysNo.Value) .Where(o => o.IsMasterItemB.Value).ToList(); itemListTmp.RemoveAll(obj => obj.OptionalAccessoriesSysNo == info.SysNo); if (itemListTmp.Count() > 0) { //商品已存在于其他随心配规则的主商品中 errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "OptionalAccessories_HaveSameMasterProduct"), item.ProductID)); } } item.MerchantName = product.Merchant != null ? product.Merchant.MerchantName : ""; item.MerchantSysNo = product.Merchant != null ? product.Merchant.MerchantID : null; #region 折扣后价格比较,会员价,批发价,限时抢购当前价 //if (product.ProductPriceInfo.ProductWholeSalePriceInfo != null // && product.ProductPriceInfo.ProductWholeSalePriceInfo.Count > 0) //{ // ProductWholeSalePriceInfo P1 = product.ProductPriceInfo.ProductWholeSalePriceInfo.FirstOrDefault(f => f.Level == WholeSaleLevelType.L1); // if (P1 != null && P1.Price > discountPrice) // { // //errList.Add(string.Format("商品{0}捆绑销售折扣价格小于团购价1!", product.ProductID)); // errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ComboPriceLessWholeSalePrice1"), product.ProductID)); // } // ProductWholeSalePriceInfo P2 = product.ProductPriceInfo.ProductWholeSalePriceInfo.FirstOrDefault(f => f.Level == WholeSaleLevelType.L2); // if (P2 != null && P2.Price > discountPrice) // { // //errList.Add(string.Format("商品{0}捆绑销售折扣价格小于团购价2!", product.ProductID)); // errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ComboPriceLessWholeSalePrice2"), product.ProductID)); // } // ProductWholeSalePriceInfo P3 = product.ProductPriceInfo.ProductWholeSalePriceInfo.FirstOrDefault(f => f.Level == WholeSaleLevelType.L3); // if (P3 != null && P3.Price > discountPrice) // { // //errList.Add(string.Format("商品{0}捆绑销售折扣价格小于团购价3!", product.ProductID)); // errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ComboPriceLessWholeSalePrice3"), product.ProductID)); // } //} //List<CountdownInfo> countDownList = ObjectFactory<CountdownProcessor>.Instance.GetCountDownByProductSysNo(item.ProductSysNo.Value); //if (countDownList != null && countDownList.Count > 0) //{ // CountdownInfo countdown = countDownList.Find(f => f.Status == CountdownStatus.Running || f.Status == CountdownStatus.Ready); // if (countdown != null) // { // if (countdown.CountDownCurrentPrice.HasValue && countdown.CountDownCurrentPrice.Value > discountPrice) // { // //errList.Add(string.Format("商品{0}捆绑销售折扣价格小于就绪或运行中的限时抢购的最低价!", product.ProductID)); // errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ComboPriceLessThanRunning"),product.ProductID)); // } // } //} //if (product.ProductPriceInfo.ProductRankPrice != null && product.ProductPriceInfo.ProductRankPrice.Count > 0) //{ // decimal? rankPrice = (from p in product.ProductPriceInfo.ProductRankPrice // select p.RankPrice).Min(); // if (rankPrice != null && rankPrice > discountPrice) // { // // errList.Add(string.Format("商品{0}捆绑销售折扣价格小于会员价!", product.ProductID)); // errList.Add(string.Format(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_ComboPriceLessThanVIP"),product.ProductID)); // } //} #endregion } //if (!CheckItemMerchantIsSame(info)) //{ // //errList.Add("捆绑商品中存在供应商不同!"); // errList.Add(ResouceManager.GetMessageString("MKT.Promotion.Combo", "Combo_DifferentSupplierInCombo")); // return errList; //} return(errList); }
/// <summary> /// 对OptionalAccessories Item进行检查,本方法对添加时也有用 /// </summary> /// <param name="info"></param> /// <returns></returns> public List <string> CheckOptionalAccessoriesItemIsPass(OptionalAccessoriesInfo info) { return(_processor.CheckOptionalAccessoriesItemIsPass(info, true)); }
/// <summary> /// 更新Combo Master,包含:更新主信息,更新状态: /// 无效->有效,无效->待审核,有效->无效,有效->待审核,待审核->无效,待审核->有效 /// 其中无效->有效需要Check RequiredSaleRule4UpdateValidate /// </summary> /// <param name="info"></param> public void UpdateOptionalAccessories(OptionalAccessoriesInfo info) { _processor.UpdateOptionalAccessories(info); }
/// <summary> /// 创建OptionalAccessories Master /// </summary> /// <param name="info"></param> /// <returns></returns> public int?CreateOptionalAccessories(OptionalAccessoriesInfo info) { return(_processor.CreateOptionalAccessories(info)); }