//更新申请,含明细 public ActionResult Update(string json) { var rdto = new ResultMessages(); rdto.Message = ""; JavaScriptSerializer jss = new JavaScriptSerializer(); ReqPerchaseMain obj = jss.Deserialize<ReqPerchaseMain>(json); obj.ReqDate = DateTime.Now; try { ReqPerchaseMain oriObj = ctx.ReqPerchaseMains.Single(r => r.FormNo == obj.FormNo); oriObj.ReqDate = obj.ReqDate; oriObj.Cost = obj.Cost; oriObj.Cause = obj.Cause; oriObj.StatusId = obj.StatusId; foreach (var v in obj.ReqPerchaseSubs) { ReqPerchaseSub reqSub = null; if (v.Id > 0) { reqSub = oriObj.ReqPerchaseSubs.Single(r => r.Id == v.Id); } else { reqSub = new ReqPerchaseSub(); reqSub.FormNo = oriObj.FormNo; oriObj.ReqPerchaseSubs.Add(reqSub); } reqSub.GoodsName = v.GoodsName; reqSub.Model = v.Model; reqSub.Specification = v.Specification; reqSub.PerPrice = v.PerPrice; reqSub.Unit = v.Unit; reqSub.Number = v.Number; } //更新时删除之前的签核数据 var list = from r in ctx.SignFlows where r.FormNo == obj.FormNo select r; ctx.SignFlows.DeleteAllOnSubmit(list); ctx.SubmitChanges(); rdto.Message = "更新成功"; rdto.Result = true; } catch (Exception ex) { rdto.Message = "更新失败"; rdto.Result = false; } if (obj.StatusId == 1)//写签核流程 { try { FlowSet fs = new FlowSet(); EmpBasicInfo ebi = Session["ebi"] as EmpBasicInfo; fs.SetSignFlow(obj.FormNo, ebi); rdto.Message = "更新且提交成功"; } catch (Exception ex) { rdto.Message = "表单已保存,但提交签核失败"; rdto.Result = false; } } return Json(rdto); }
partial void InsertReqPerchaseSub(ReqPerchaseSub instance);
partial void DeleteReqPerchaseSub(ReqPerchaseSub instance);
private void detach_ReqPerchaseSubs(ReqPerchaseSub entity) { this.SendPropertyChanging(); entity.ReqPerchaseMain = null; }
partial void UpdateReqPerchaseSub(ReqPerchaseSub instance);