public ActionResult DeleteConfirmed(int id) { /*Step1:删除预留字段*/ var item = (from cr in db.ContractReserves where cr.Number == id select new ContractViewModel { Id = cr.Id }).ToList(); foreach (var temp in item) { ContractReserve cr = db.ContractReserves.Find(temp.Id); db.ContractReserves.Remove(cr); } db.SaveChanges(); /*Step2:删除固定字段*/ Contract contract = db.Contracts.Find(id); FileInfo file = new FileInfo(Server.MapPath("/files/" + contract.ContractAttachmentName)); //指定文件路径 if (file.Exists) //判断文件是否存在 { file.Attributes = FileAttributes.Normal; //将文件属性设置为普通,比方说只读文件设置为普通 file.Delete(); //删除文件 } db.Contracts.Remove(contract); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit(ContractViewModel contract, HttpPostedFileBase file) { if (ModelState.IsValid) { if (file != null) { //先原删除文件 FileInfo file1 = new FileInfo(Server.MapPath("/files/" + contract.ContractAttachmentName)); //指定文件路径 if (file1.Exists) //判断文件是否存在 { file1.Attributes = FileAttributes.Normal; //将文件属性设置为普通,比方说只读文件设置为普通 file1.Delete(); //删除文件 } //增加新文件 string miniType = file.ContentType; Stream fileStream = file.InputStream; string path = AppDomain.CurrentDomain.BaseDirectory + "files\\"; string filename = Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(path, filename)); contract.ContractAttachmentType = miniType; contract.ContractAttachmentName = filename; contract.ContractAttachmentUrl = Path.Combine(path, filename); Contract c = db.Contracts.Find(contract.Id); c.ContractAttachmentName = contract.ContractAttachmentName; c.ContractAttachmentType = contract.ContractAttachmentType; c.ContractAttachmentUrl = contract.ContractAttachmentUrl; c.SignDate = contract.SignDate; c.DueDate = contract.DueDate; c.Amount = contract.Amount; c.ContractObject = contract.ContractObject; c.ChangePerson = base.Name; c.ChangeTime = DateTime.Now; /*查找预留字段(value)*/ var fieldValueList = (from cr in db.ContractReserves join rf in db.ReserveFields on cr.FieldId equals rf.Id where cr.Number == contract.Id && rf.Status == true select new ContractViewModel { Id = cr.Id, Description = rf.Description, Value = cr.Value }).ToList(); /*给预留字段赋值*/ foreach (var temp in fieldValueList) { ContractReserve cr = db.ContractReserves.Find(temp.Id); cr.Value = Request[temp.Description]; db.SaveChanges(); } //db.Entry(contract).State = EntityState.Modified; db.SaveChanges(); } else { /*查找预留字段(value)*/ var fieldValueList = (from cr in db.ContractReserves join rf in db.ReserveFields on cr.FieldId equals rf.Id where cr.Number == contract.Id && rf.Status == true select new ContractViewModel { Id = cr.Id, Description = rf.Description, Value = cr.Value }).ToList(); /*给预留字段赋值*/ foreach (var temp in fieldValueList) { ContractReserve cr = db.ContractReserves.Find(temp.Id); cr.Value = Request[temp.Description]; db.SaveChanges(); } Contract c = db.Contracts.Find(contract.Id); //c.ContractAttachmentName = contract.ContractAttachmentName; c.ContractNumber = contract.ContractNumber; c.ChangePerson = base.Name; c.ChangeTime = DateTime.Now; c.SignDate = contract.SignDate; c.DueDate = contract.DueDate; c.Amount = contract.Amount; c.ContractObject = contract.ContractObject; c.Remark = contract.Remark; db.SaveChanges(); } return(RedirectToAction("Index")); } /*查找表预留字段*/ var fieldList = (from cr in db.ContractReserves join rf in db.ReserveFields on cr.FieldId equals rf.Id where cr.Number == contract.Id && rf.Status == true select new ContractViewModel { Id = cr.Id, Description = rf.Description, Value = cr.Value }).ToList(); ViewBag.fieldList = fieldList; return(View(contract)); }
public ActionResult Create(Contract contract1, HttpPostedFileBase file) { if (ModelState.IsValid) { if (HasFiles.HasFile(file)) { string miniType = file.ContentType; Stream fileStream = file.InputStream; string path = AppDomain.CurrentDomain.BaseDirectory + "files\\"; string filename = Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(path, filename)); contract1.ContractAttachmentType = miniType; contract1.ContractAttachmentName = filename; contract1.ContractAttachmentUrl = Path.Combine(path, filename); } contract1.RecordTime = DateTime.Now; contract1.RecordPerson = base.Name; byte status = AuditApplicationContract(contract1); //需要对原表做出的修改 contract1.AuditStatus = status; db.Contracts.Add(contract1);//存储到数据库 db.SaveChanges(); //没有找到该单据的审批模板 if (status == 7) { ViewBag.alertMessage = true; ContractViewModel contract = new ContractViewModel(); contract.BillTypeNumber = contract1.BillTypeNumber; contract.BillNumber = contract1.BillNumber; contract.Department = Request["Department"]; contract.ContractNumber = contract1.ContractNumber; contract.SecondParty = contract1.SecondParty; contract.SignDate = contract1.SignDate; contract.DueDate = contract1.DueDate; contract.Amount = contract1.Amount; contract.ContractObject = contract1.ContractObject; contract.Remark = contract1.Remark; ViewBag.company = this.CompanyFullName; var fieldList1 = (from p in db.ReserveFields join q in db.TableNameContrasts on p.TableNameId equals q.Id where q.TableName == "Contracts" && p.Status == true select p).ToList(); ViewBag.fieldList = fieldList1; return(View(contract)); } var fieldList = (from p in db.ReserveFields join q in db.TableNameContrasts on p.TableNameId equals q.Id where q.TableName == "Contracts" && p.Status == true select p).ToList(); ViewBag.fieldList = fieldList; /*遍历,保存员工基本信息预留字段*/ foreach (var temp in fieldList) { ContractReserve cr = new ContractReserve(); cr.Number = contract1.Id; cr.FieldId = temp.Id; cr.Value = Request[temp.FieldName]; /*占位,为了在Index中显示整齐的格式*/ if (cr.Value == null) { cr.Value = " "; } db.ContractReserves.Add(cr); db.SaveChanges(); } return(RedirectToAction("Index")); } else { ViewBag.company = this.CompanyFullName; var fieldList = (from p in db.ReserveFields join q in db.TableNameContrasts on p.TableNameId equals q.Id where q.TableName == "Contracts" && p.Status == true select p).ToList(); ViewBag.fieldList = fieldList; ContractViewModel contract = new ContractViewModel(); contract.BillTypeNumber = contract1.BillTypeNumber; contract.BillNumber = contract1.BillNumber; contract.Department = Request["Department"]; contract.ContractNumber = contract1.ContractNumber; contract.SecondParty = contract1.SecondParty; contract.SignDate = contract1.SignDate; contract.DueDate = contract1.DueDate; contract.Amount = contract1.Amount; contract.ContractObject = contract1.ContractObject; contract.Remark = contract1.Remark; //contract.AuditPerson = contract1.AuditPerson; //contract.AuditStatusName = contract1.AuditStatusName; //contract.AuditStatus = contract1.AuditStatus; return(View(contract)); } }