public JsonResult Save(string ICPricePolicyJson, string ICPricePolicyEntryListJson, string DeleteEntryList) { try { ICPRICEPOLICYMODEL model = JSONhelper.ConvertToObject <ICPRICEPOLICYMODEL>(ICPricePolicyJson); List <ICPRICEPOLICYENTRYMODEL> list = JSONhelper.ConvertToObject <List <ICPRICEPOLICYENTRYMODEL> >(ICPricePolicyEntryListJson); object result = ICPRICEPOLICYBLL.Instance.Save(model, list, DeleteEntryList); return(JsonResultHelper.ToSuccess("", result)); } catch (Exception ex) { return(JsonResultHelper.ToFailed("保存失败!" + ex.Message)); } }
/// <summary> /// 保存 /// </summary> /// <param name="model"></param> /// <param name="list"></param> /// <param name="deleteEntryList"></param> /// <returns></returns> public object Save(ICPRICEPOLICYMODEL model, IEnumerable <ICPRICEPOLICYENTRYMODEL> list, string deleteEntryList) { string FID = null; #region 效性检测 //检测价格政策编号是否重复! ICPRICEPOLICYMODEL temp = ICPRICEPOLICYDAL.Instance.GetWhere(new { FBILLNO = model.FBILLNO }).FirstOrDefault(); if (temp != null && temp.FID != model.FID) { return(new { Status = -1, Message = "价格政策的编号重复!" }); } //同一个品牌、厂家账户下不允许存在相同的优先级 var listTemp = ICPRICEPOLICYDAL.Instance.GetWhere(new { FBRANDID = model.FBRANDID, FCLIENTID = model.FCLIENTID, FPRIORITY = model.FPRIORITY }).ToList(); foreach (var item in listTemp) { if (item != null && item.FID != model.FID) { return(new { Status = -1, Message = "同一个品牌、厂家账户下不允许存在相同的优先级!" }); } } //检测价格政策明细商品是否重复:同一个品牌 + 厂家账号 + 优先级的价格政策下,不允许存在重复商品 foreach (var item in list.GroupBy(l => new { id = l.FITEMID })) { if (item.Count() > 1) { return(new { Status = -1, Message = "价格政策明细的商品重复!" }); } } //日期 if (model.FBEGDATE > model.FENDDATE) { return(new { Status = -1, Message = "起始日期不能大于截止日期!" }); } //检测要删除价格政策明细是否在使用 //请购计划价格明细 var ICPRPOLICYLIST = ICPRPOLICYBLL.Instance.GetFPOLICYIDListByUse(deleteEntryList).ToList(); //采购订单价格明细 //var ICPOBILLENTRYLIST = ICPOBILLENTRYBLL.Instance.GetFPOLICYIDListByUse(deleteEntryList).ToList(); if (ICPRPOLICYLIST.Count > 0) { return(new { Status = -2, Message = string.Join(",", ICPRPOLICYLIST.Select(l => l)) }); } //采购订单价格明细 //var ICPOBILLENTRYLIST = ICPOBILLENTRYBLL.Instance.GetFPOLICYIDListByUse(deleteEntryList).ToList(); //if (ICPRPOLICYLIST.Count > 0) //{ // return ""; //} #endregion //首先保存价格政策 if (model.FID.IsNullOrEmpty()) { model.FBILLDATE = DateTime.Now; model.FCHECKSTATUS = Constant.ICPricePolicyStatus.待审核.ToInt(); var dicModel = SYS_SUBDICSDAL.Instance.Get(model.FPOLICYTYPE); if (dicModel != null) { model.FPRIORITY = string.Format("{0}{1}", dicModel.FNUMBER, DateTime.Now.ToString("yyyyMMdd")).ToDecimal(); } FID = ICPRICEPOLICYDAL.Instance.Insert(model); if (!FID.IsGuid()) { return(new { Status = -1, Message = "保存价格政策失败!" }); } } else { int result = ICPRICEPOLICYDAL.Instance.UpdateWhatWhere(new { FBRANDID = model.FBRANDID, FCLIENTID = model.FCLIENTID, FCLIENTACCOUNT = model.FCLIENTACCOUNT, FBILLNO = model.FBILLNO, FNAME = model.FNAME, FPOLICYTYPE = model.FPOLICYTYPE, //FPRIORITY = model.FPRIORITY, FPROJECTID = model.FPROJECTID, FBEGDATE = model.FBEGDATE, FENDDATE = model.FENDDATE, //FSTATUS = Constant.ICPricePolicyStatus.草稿.ToInt(), FREMARK = model.FREMARK }, new { FID = model.FID, }); if (result > 0) { FID = model.FID; } else { return(new { Status = -1, Message = "保存价格政策失败!" }); } } //其次保存价格政策明细 foreach (var item in list) { item.FQTYREST = item.FQTYLIMIT; if (!ICPRICEPOLICYENTRYBLL.Instance.Save(item, FID).IsGuid()) { return(new { Status = -1, Message = "保存价格政策明细失败!" }); } } //最后删除需要删除的价格政策明细 ICPRICEPOLICYENTRYBLL.Instance.BatchDelete(deleteEntryList); return(new { Status = 0, Message = "保存成功!" });; }