public JsonResult Check(string UserName, int approveID, int status, string memo) { using (TransactionScope sc = new TransactionScope()) { try { int TotalStep = db.T_ReissueConfig.ToList().Count; T_ReissueApprove approve = db.T_ReissueApprove.Find(approveID); string name = approve.ApproveName; T_Reissue model = db.T_Reissue.Find(approve.Pid); approve.ApproveName = UserName; approve.ApproveStatus = status; approve.ApproveTime = DateTime.Now; approve.Memo = memo; model.Status = status; db.SaveChanges(); if (status == 2)//不同意 { model.Step = model.Step + 1; db.SaveChanges(); } else//同意 { int type = db.T_ReissueReson.SingleOrDefault(s => s.Reson.Equals(model.ReissueReson)).Type; int LastStep = db.T_ReissueConfig.OrderByDescending(s => s.Step).FirstOrDefault(s => s.Reson == type).Step; if (LastStep > model.Step)//判断是否存在下一级 { //获得下一级审核部门 string nextapproveType = db.T_ReissueConfig.OrderBy(s => s.Step).FirstOrDefault(s => s.Reson == type && s.Step > model.Step).ApproveType; T_ReissueApprove newApprove = new T_ReissueApprove(); newApprove.ApproveStatus = -1; newApprove.ApproveName = nextapproveType; newApprove.ApproveTime = null; newApprove.Pid = approve.Pid; db.T_ReissueApprove.Add(newApprove); db.SaveChanges(); model.Status = 0; model.Step = model.Step + 1; db.SaveChanges(); } if (name.Equals("售后主管") || name.Equals("呼吸机主管"))//售后主管审核后直接加入补发货 { //T_OrderList order = db.T_OrderList.Find(model.OrderId); //List<T_Reissue> reissue = db.T_Reissue.Where(s => s.OrderCode.Equals(model.OrderCode) && s.IsDelete == 0).ToList(); ////判断是否为第一次补发 //if (reissue.Count() == 1) //{ // order.ReissueStatus = 2; //} //List<T_ReissueDetail> reiDetails = db.T_ReissueDetail.Where(s => s.ReissueId == model.ID).ToList(); //foreach (var item in reiDetails) //{ // T_OrderDetail Orderdetail = db.T_OrderDetail.FirstOrDefault(s => s.oid.Equals(order.code) && s.item_code.Equals(item.ProductCode)); // if (Orderdetail != null) // { // Orderdetail.ReissueStatus = 1; // Orderdetail.ReissueQty += item.Num; // } //} db.SaveChanges(); #region 加入快递赔付 if (model.ReissueReson.Equals("快递破损")) { GY gy = new GY(); string cmd = ""; cmd = "{" + "\"appkey\":\"171736\"," + "\"method\":\"gy.erp.trade.get\"," + "\"page_no\":1," + "\"page_size\":10," + "\"platform_code\":\"" + model.OrderCode + "\"," + "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"" + "}"; string sign = gy.Sign(cmd); cmd = cmd.Replace("}", ",\"sign\":\"" + sign + "\"}"); string ret = gy.DoPost("http://api.guanyierp.com/rest/erp_open", cmd); JsonData jsonData = null; jsonData = JsonMapper.ToObject(ret); if (jsonData.Count == 6 || jsonData["orders"].Count == 0) { cmd = "{" + "\"appkey\":\"171736\"," + "\"method\":\"gy.erp.trade.history.get\"," + "\"page_no\":1," + "\"page_size\":10," + "\"platform_code\":\"" + model.OrderCode + "\"," + "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"" + "}"; sign = gy.Sign(cmd); cmd = cmd.Replace("}", ",\"sign\":\"" + sign + "\"}"); ret = gy.DoPost("http://api.guanyierp.com/rest/erp_open", cmd); jsonData = null; jsonData = JsonMapper.ToObject(ret); if (jsonData.Count == 6 || jsonData["orders"].Count == 0) { return(Json(new { State = "Faile", Message = "订单号不存在" })); } } JsonData jsonOrders = jsonData["orders"][0]; var deliver = jsonOrders["deliverys"][0]; //快递单号 string mail_no = isNULL(deliver["mail_no"]).ToString(); //订单金额 string amount = isNULL(jsonOrders["amount"]).ToString(); //快递名称 string express_name = isNULL(jsonOrders["express_name"]).ToString(); T_ExpressIndemnity Inde = new T_ExpressIndemnity { PostUserName = model.PostUser, Date = DateTime.Now, OrderNum = model.OrderCode, wangwang = model.VipCode, ShopName = model.StoreName, RetreatExpressNum = mail_no, State = "0", OrderMoney = Convert.ToDouble(amount), Type = "破损", Second = "0", CurrentApproveName = "快递组", IsDelete = 0, ExpressName = express_name, IndemnityMoney = 0 }; db.T_ExpressIndemnity.Add(Inde); db.SaveChanges(); List <T_ReissuePic> picList = db.T_ReissuePic.Where(s => s.ReissueId == model.ID).ToList(); foreach (var item in picList) { T_ExpressIndemnityPic expressPic = new T_ExpressIndemnityPic { EID = Inde.ID, PicURL = item.Url }; db.T_ExpressIndemnityPic.Add(expressPic); } db.SaveChanges(); } else if (model.ReissueReson.Equals("丢件")) { GY gy = new GY(); string cmd = ""; cmd = "{" + "\"appkey\":\"171736\"," + "\"method\":\"gy.erp.trade.get\"," + "\"page_no\":1," + "\"page_size\":10," + "\"platform_code\":\"" + model.OrderCode + "\"," + "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"" + "}"; string sign = gy.Sign(cmd); cmd = cmd.Replace("}", ",\"sign\":\"" + sign + "\"}"); string ret = gy.DoPost("http://api.guanyierp.com/rest/erp_open", cmd); JsonData jsonData = null; jsonData = JsonMapper.ToObject(ret); if (jsonData.Count == 6 || jsonData["orders"].Count == 0) { cmd = "{" + "\"appkey\":\"171736\"," + "\"method\":\"gy.erp.trade.history.get\"," + "\"page_no\":1," + "\"page_size\":10," + "\"platform_code\":\"" + model.OrderCode + "\"," + "\"sessionkey\":\"f5885504d9c84d1d8146200a4841f4b7\"" + "}"; sign = gy.Sign(cmd); cmd = cmd.Replace("}", ",\"sign\":\"" + sign + "\"}"); ret = gy.DoPost("http://api.guanyierp.com/rest/erp_open", cmd); jsonData = null; jsonData = JsonMapper.ToObject(ret); if (jsonData.Count == 6 || jsonData["orders"].Count == 0) { return(Json(new { State = "Faile", Message = "订单号不存在" })); } } JsonData jsonOrders = jsonData["orders"][0]; var deliver = jsonOrders["deliverys"][0]; //快递单号 string mail_no = isNULL(deliver["mail_no"]).ToString(); //订单金额 string amount = isNULL(jsonOrders["amount"]).ToString(); //快递名称 string express_name = isNULL(jsonOrders["express_name"]).ToString(); T_ExpressIndemnity Inde = new T_ExpressIndemnity { PostUserName = model.PostUser, Date = DateTime.Now, OrderNum = model.OrderCode, wangwang = model.VipCode, ShopName = model.StoreName, RetreatExpressNum = mail_no, State = "0", OrderMoney = Convert.ToDouble(amount), Type = "丢件", Second = "0", CurrentApproveName = "快递组", IsDelete = 0, ExpressName = express_name, IndemnityMoney = 0 }; db.T_ExpressIndemnity.Add(Inde); db.SaveChanges(); } #endregion if (PostGy(model) != "True") { return(Json(new { State = "Faile", Message = "上传管易错误,请联系管理员" }, JsonRequestBehavior.AllowGet)); } } } db.SaveChanges(); List <T_ModularNotaudited> ModularNotaudited = db.T_ModularNotaudited.Where(a => a.ModularName == "补发货未审核").ToList(); if (ModularNotaudited.Count > 0) { foreach (var item in ModularNotaudited) { db.T_ModularNotaudited.Remove(item); } db.SaveChanges(); } string RetreatAppRoveSql = "select isnull(ApproveUser,ApproveName) as PendingAuditName,COUNT(*) as NotauditedNumber from T_ReissueApprove where Pid in ( select ID from T_Reissue where IsDelete=0 ) and ApproveStatus=-1 and ApproveTime is null GROUP BY ApproveName,ApproveUser "; List <Modular> RetreatAppRoveQuery = db.Database.SqlQuery <Modular>(RetreatAppRoveSql).ToList(); string Nickname = Server.UrlDecode(Request.Cookies["Nickname"].Value); for (int e = 0; e < RetreatAppRoveQuery.Count; e++) { string PendingAuditName = RetreatAppRoveQuery[e].PendingAuditName; T_ModularNotaudited NotauditedModel = db.T_ModularNotaudited.SingleOrDefault(a => a.ModularName == "补发货未审核" && a.PendingAuditName == PendingAuditName); if (NotauditedModel != null) { NotauditedModel.NotauditedNumber = RetreatAppRoveQuery[e].NotauditedNumber; db.Entry <T_ModularNotaudited>(NotauditedModel).State = System.Data.EntityState.Modified; } else { T_ModularNotaudited ModularNotauditedModel = new T_ModularNotaudited(); ModularNotauditedModel.ModularName = "补发货未审核"; ModularNotauditedModel.NotauditedNumber = RetreatAppRoveQuery[e].NotauditedNumber; ModularNotauditedModel.PendingAuditName = RetreatAppRoveQuery[e].PendingAuditName; ModularNotauditedModel.ToupdateDate = DateTime.Now; ModularNotauditedModel.ToupdateName = Nickname; db.T_ModularNotaudited.Add(ModularNotauditedModel); } db.SaveChanges(); } sc.Complete(); return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { State = "Faile", Message = ex.Message }, JsonRequestBehavior.AllowGet)); } } }
//详情页面数据加载 public JsonResult GetDetail(int ID, string UserName) { T_User MOD_User = db.T_User.FirstOrDefault(a => a.Nickname == UserName); //真名 string name = MOD_User.Name; string result = ""; //主表 T_Reissue mod = db.T_Reissue.Find(ID); mainItem list = new mainItem(); list.ID = mod.ID; list.OrderCode = mod.OrderCode; list.NewOrderCode = mod.NewOrderCode; list.VipName = mod.VipName; list.StoreCode = mod.StoreCode; list.StoreName = mod.StoreName; list.WarhouseName = mod.WarhouseName; list.ExpressName = mod.ExpressName; list.OrderType = mod.OrderType; list.SingleTime = mod.SingleTime; list.ReceivingName = mod.ReceivingName; list.PostalCode = mod.PostalCode; list.Phone = mod.Phone; list.TelPhone = mod.TelPhone; list.VipCode = mod.VipCode; list.Address = mod.Address; list.SalesRemark = mod.SalesRemark; list.BuyRemark = mod.BuyRemark; list.Status = int.Parse(mod.Status.ToString()); list.BusinessName = mod.BusinessName; list.AddressMessage = mod.AddressMessage; list.CreatDate = DateTime.Parse(mod.CreatDate.ToString()); list.PostUser = mod.PostUser; list.SystemRemark = mod.SystemRemark; list.DraftName = mod.DraftName; list.Cost = decimal.Parse(mod.Cost.ToString()); list.ReissueReson = mod.ReissueReson; string modJson = JsonConvert.SerializeObject(list, Lib.Comm.setTimeFormat()); //详情 IQueryable <T_ReissueDetail> mod_Detail = db.T_ReissueDetail.Where(a => a.ReissueId == ID); string modDetail = JsonConvert.SerializeObject(mod_Detail, Lib.Comm.setTimeFormat()); //审核记录 IQueryable <T_ReissueApprove> mod_Approve = db.T_ReissueApprove.Where(a => a.Pid == ID); string approve = JsonConvert.SerializeObject(mod_Approve, Lib.Comm.setTimeFormat()); T_Reissue lossreport = db.T_Reissue.Find(ID); //用于判断是不是 财务主管 int nextMan = 0; int Step = db.T_ReissueApprove.ToList().Count; if (mod.Step != Step - 1) { nextMan = 1; } //用于判断是不是我审核 0不是 1是 int myCheck = 0; // T_ExchangeCenterApprove MyApprove = db.T_ExchangeCenterApprove.FirstOrDefault(a => a.Pid == ID && (a.ApproveName == UserName || a.ApproveUser == UserName) && a.ApproveTime == null); string sql = "select * from T_ReissueApprove where Pid='" + ID + "' and ApproveTime is null and (ApproveUser='******' or ApproveName='" + UserName + "' or ApproveName in (select GroupName from T_ReissueGroup where GroupUser in ('" + UserName + "')) )"; List <T_ReissueApprove> MyApprove = db.Database.SqlQuery <T_ReissueApprove>(sql).ToList(); if (MyApprove.Count > 0) { myCheck = 1; } //审核人 List <SelectListItem> getCheckMan = new List <SelectListItem>(); var approveusers = db.T_ExpenseApproveConfig.FirstOrDefault(a => a.Step == mod.Step + 1); if (approveusers != null) { //如果是动态获取当前部门主管 if (approveusers.ApproveUser.Equals("部门主管")) { List <SelectListItem> items = new List <SelectListItem>(); items.Add(new SelectListItem { Text = "请选择", Value = "9999" }); getCheckMan = items; } //如果还有其他的审核组或者动态绑定的数据 再增加else //如果是固定的某些人 else { string[] array = approveusers.ApproveUser.Split(','); List <SelectListItem> items = new List <SelectListItem>(); foreach (var item in array) { T_User user = db.T_User.FirstOrDefault(a => a.Nickname.Equals(item)); if (user != null) { items.Add(new SelectListItem { Text = user.Nickname, Value = user.ID.ToString() }); } } getCheckMan = items; } } else { getCheckMan = null; } string CheckManJson = JsonConvert.SerializeObject(getCheckMan, Lib.Comm.setTimeFormat()); //未审核记录ID T_ReissueApprove Approve = db.T_ReissueApprove.FirstOrDefault(s => !s.ApproveTime.HasValue && s.Pid == ID); if (Approve == null) { Approve = db.T_ReissueApprove.FirstOrDefault(s => s.ApproveTime.HasValue && s.Pid == ID); } result += "{\"Main\":[" + modJson + "],\"Detail\":" + modDetail + ",\"Approve\":" + approve + ",\"Step\":" + nextMan + ",\"approveId\":" + Approve.ID + ",\"myCheck\":" + myCheck + ",\"CheckList\":" + CheckManJson + "}"; return(Json(result, JsonRequestBehavior.AllowGet)); }