public ActionResult UpdateTinhTrangDuAn(TD_HoSoDuAn tD_HoSoDuAn) { var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); // Kiểm tra quyền truy cập và cập nhật var per = CheckPermission(user); if (!per.isEdit) return Content("Bạn không có quyền thực hiện chức năng này"); var obj = db.TD_HoSoDuAn.FirstOrDefault(o => o.HoSoDuAn_ID == tD_HoSoDuAn.HoSoDuAn_ID); if (ModelState.IsValid) { using (var dbContextTransaction = db.Database.BeginTransaction()) { try { // Mapping obj in db obj.TinhTrangThucHien = tD_HoSoDuAn.TinhTrangThucHien; obj.str2 = tD_HoSoDuAn.str2; obj.str3 = tD_HoSoDuAn.str3; db.Entry(obj).State = EntityState.Modified; db.SaveChanges(); dbContextTransaction.Commit(); return RedirectToAction("TinhTrangDuAn"); } catch (DbEntityValidationException ex) { dbContextTransaction.Rollback(); var exc = new ExceptionViewer(); exc.GetError(ex); } } } GetViewBag(ViewReport.Edit); GetModelStateError(ViewData); return View(tD_HoSoDuAn); }
//[ValidateAntiForgeryToken] //public ActionResult UpdateThongTinChung(TD_HoSoDuAn tD_HoSoDuAn, List<TD_FileHoSoDinhKem> listFile, HttpPostedFileBase upload_0, HttpPostedFileBase upload_1, HttpPostedFileBase upload_2) public ActionResult UpdateThongTinChung(TD_HoSoDuAn tD_HoSoDuAn, List<TD_FileHoSoDinhKem> listFile, List<HttpPostedFileBase> listFileUp) { var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); // Kiểm tra quyền truy cập và cập nhật var per = CheckPermission(user); if (!per.isEdit) return Content("Bạn không có quyền thực hiện chức năng này"); var obj = db.TD_HoSoDuAn.FirstOrDefault(o => o.HoSoDuAn_ID == tD_HoSoDuAn.HoSoDuAn_ID); ModelState.Remove("TenDuAn"); if (ModelState.IsValid) { using (TransactionScope scope = new TransactionScope()) { try { // Mapping obj in db obj.str1 = tD_HoSoDuAn.str1; obj.NhaThau = tD_HoSoDuAn.NhaThau; obj.MucTieu = obj.MucTieu; obj.QuyMo = tD_HoSoDuAn.QuyMo; obj.DiaDiem = tD_HoSoDuAn.DiaDiem; obj.NguonVon = tD_HoSoDuAn.NguonVon; obj.HinhThucQuanLy_ID = tD_HoSoDuAn.HinhThucQuanLy_ID; obj.HinhThucQuanLyKhac = tD_HoSoDuAn.HinhThucQuanLyKhac; obj.int1 = tD_HoSoDuAn.int1; obj.int2 = tD_HoSoDuAn.int2; obj.QuyTrinhQuanLy = tD_HoSoDuAn.QuyTrinhQuanLy; obj.NhomDuAn_ID = tD_HoSoDuAn.NhomDuAn_ID; obj.LoaiDuAn_ID = tD_HoSoDuAn.LoaiDuAn_ID; obj.TinhChatDuAn_ID = tD_HoSoDuAn.TinhChatDuAn_ID; obj.TinhTrangThucHien = tD_HoSoDuAn.TinhTrangThucHien; obj.TongMucDauTu = tD_HoSoDuAn.TongMucDauTu; obj.ChiPhiXayLap = tD_HoSoDuAn.ChiPhiXayLap; obj.ChiPhiThietBi = tD_HoSoDuAn.ChiPhiThietBi; obj.ChiPhiQuanLy = tD_HoSoDuAn.ChiPhiQuanLy; obj.ChiPhiTuVan = tD_HoSoDuAn.ChiPhiTuVan; obj.ChiPhiKhac = tD_HoSoDuAn.ChiPhiKhac; obj.ChiPhiDuPhong = tD_HoSoDuAn.ChiPhiDuPhong; obj.NganSachTrungUong = tD_HoSoDuAn.NganSachTrungUong; obj.NganSachTinh = tD_HoSoDuAn.NganSachTinh; obj.NganSachDonVi = tD_HoSoDuAn.NganSachDonVi; obj.NguonKhac = tD_HoSoDuAn.NguonKhac; obj.HangMucTrienKhai = tD_HoSoDuAn.HangMucTrienKhai; obj.ThoiGianHoanThanh = tD_HoSoDuAn.ThoiGianHoanThanh; obj.SanPhamHangMuc = tD_HoSoDuAn.SanPhamHangMuc; obj.KinhPhiThucHienHangMuc = tD_HoSoDuAn.KinhPhiThucHienHangMuc; obj.KetQuaDauTu = tD_HoSoDuAn.KetQuaDauTu; db.Entry(obj).State = EntityState.Modified; db.SaveChanges(); // Lưu file vào hệ thống List<TD_FileHoSoDinhKem> list = (List<TD_FileHoSoDinhKem>)TempData["TD_FileHoSoDinhKem_" + user.Id]; if (list.Any()) { TempData["TD_FileHoSoDinhKem_" + user.Id] = list; string duongDanVatLy = pathSource + "/TD_HoSoDuAn"; string phuLucHoSoKhac = ConfigurationManager.AppSettings["PhuLucHoSoKhac"]; int intPhuLucHoSoKhac = string.IsNullOrEmpty(phuLucHoSoKhac) ? 0 : Convert.ToInt32(phuLucHoSoKhac); if (!Directory.Exists(duongDanVatLy)) Directory.CreateDirectory(duongDanVatLy); var listFileInDb = db.TD_FileHoSoDinhKem.Where(o => o.TrangThai == TrangThai.HoatDong && o.MaHoSo == obj.MaHoSo && o.VanBan_ID == intPhuLucHoSoKhac); for (var i = 0; i < list.Count; i++) { // Insert if (list[i].FileHoSoDinhKem_ID == 0) { string path = Path.Combine(duongDanVatLy, list[i].TenFile); // To copy a file to another location and // overwrite the destination file if it already exists. System.IO.File.Copy(list[i].DuongDan, path, true); // đổi đường dẫn file list[i].DuongDan = path; // Lưu obj file vào db db.TD_FileHoSoDinhKem.Add(list[i]); db.SaveChanges(); } //Update else { } } } // Lưu các file quyết định phê duyệt (nếu có đính kèm) if(Request.Files.Count > 0) { if (string.IsNullOrEmpty(pathSource)) return Content("Không tìm thấy đường dẫn file"); //var duongDan = pathSource + "/TD_HoSoDuAn/NewUpload/" + User.Identity.GetUserId(); //if (!Directory.Exists(duongDan)) // Directory.CreateDirectory(duongDan); var duongDanVatLy = pathSource + "/TD_HoSoDuAn"; if (!Directory.Exists(duongDanVatLy)) Directory.CreateDirectory(duongDanVatLy); var indexFile = 0; var stt = db.TD_FileHoSoDinhKem.Where(o => o.TrangThai == TrangThai.HoatDong && o.MaHoSo == tD_HoSoDuAn.MaHoSo).Max(o => o.STT); if (stt == null || stt == 0) stt = 1; for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; if (file.ContentLength > 0) { // Tạo tên file lưu trên hệ thống var fileName = tD_HoSoDuAn.HoSoDuAn_ID + "_" + tD_HoSoDuAn.LoaiDuAn_ID + "_" + Guid.NewGuid().ToString() + "_" + Path.GetFileName(file.FileName); // Lưu file lên hệ thống var path = Path.Combine(duongDanVatLy, fileName); file.SaveAs(path); // Tạo object TD_FileHoSoDinhKem var objFileDinhKem = new TD_FileHoSoDinhKem { DuongDan = path, SoKyHieu = listFile[indexFile].SoKyHieu, MaHoSo = tD_HoSoDuAn.MaHoSo, STT = stt, TenFile = fileName, TenHienThi = Path.GetFileName(file.FileName), TrichYeu = listFile[indexFile].TrichYeu, VanBan_ID = listFile[indexFile].VanBan_ID, TrangThai = TrangThai.HoatDong }; // Lưu thông tin file vào db db.TD_FileHoSoDinhKem.Add(objFileDinhKem); stt++; // Cộng số thứ tự file thêm 1 nếu đã lưu 1 file thành công } indexFile++; } } db.SaveChanges(); scope.Complete(); // Xóa file đã đính kèm trước đó đi trong thư mục if (Directory.Exists(pathSource + "/TD_HoSoDuAn/Upload/" + User.Identity.GetUserId())) { string[] filesPath = Directory.GetFiles(pathSource + "/TD_HoSoDuAn/Upload/" + User.Identity.GetUserId()); if (filesPath.Length > 0) { foreach (string item in filesPath) { if (!string.IsNullOrEmpty(item)) System.IO.File.Delete(item); } } } return RedirectToAction("ThongTinChung"); } catch (DbEntityValidationException ex) { scope.Dispose(); var exc = new ExceptionViewer(); exc.GetError(ex); } } } GetModelStateError(ViewData); ViewBag.TenDuAn = obj.TenDuAn; ViewBag.ChuDauTu = obj.ChuDauTu; var listVBQuyetDinh = db.View_Loai_Nhom_VanBan.Where(o => o.TrangThai == TrangThai.HoatDong && o.MaNhomVanBan == "QuyetDinhPheDuyet"); ViewBag.ListVBQuyetDinh = listVBQuyetDinh.Any() ? listVBQuyetDinh.ToList() : new List<View_Loai_Nhom_VanBan>(); var _listFile = db.TD_FileHoSoDinhKem.Where(o => o.TrangThai == TrangThai.HoatDong && o.MaHoSo == tD_HoSoDuAn.MaHoSo); if (_listFile.Any()) tD_HoSoDuAn.ListFile = _listFile.ToList(); else tD_HoSoDuAn.ListFile = new List<TD_FileHoSoDinhKem>(); GetViewBag(ViewReport.Edit); return View(tD_HoSoDuAn); }
//[ValidateAntiForgeryToken] public ActionResult Create(TD_HoSoDuAn tD_HoSoDuAn, List<TD_FileHoSoDinhKem> listFile) { var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); // Kiểm tra quyền truy cập và cập nhật var per = CheckPermission(user); if (!per.isEdit) return Content("Bạn không có quyền thực hiện chức năng này"); ModelState.Remove("MaHoSo"); ModelState.Remove("TuNgay"); ModelState.Remove("DenNgay"); tD_HoSoDuAn.TuNgay = DateTime.Now; tD_HoSoDuAn.DenNgay = DateTime.Now; if (ModelState.IsValid) { using (var dbContextTransaction = db.Database.BeginTransaction()) { try { // Lưu tạm để tạo số biên nhận db.TD_HoSoDuAn.Add(tD_HoSoDuAn); db.SaveChanges(); // update lại số biên nhận var maHoSo = DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM") + tD_HoSoDuAn.LoaiDuAn_ID + tD_HoSoDuAn.HoSoDuAn_ID; tD_HoSoDuAn.MaHoSo = maHoSo; db.Entry(tD_HoSoDuAn).State = EntityState.Modified; // Tạo luồng công việc đầu tiên là tạo mới var objLuongCV = new TD_LuongCongViec { Cap_ID = STTCapXuLy.CapNhatHoSo, MaHoSo = maHoSo, NgayGui = DateTime.Now, NgayHenTra = DateTime.Now, NguoiGui = user.UserName, NguoiNhan = user.UserName, NoiDung = "Tạo mới", STT = 1, TrangThai = TrangThai.HoatDong }; db.TD_LuongCongViec.Add(objLuongCV); // lưu file từ thư mục tạm vào thư mục chính if (Request.Files.Count == 0) { //return Content("Không có file"); } else { var pathSource = ConfigurationManager.AppSettings["FolderUploadPath"]; if (string.IsNullOrEmpty(pathSource)) return Content("Không tìm thấy đường dẫn file"); //var duongDan = pathSource + "/TD_HoSoDuAn/NewUpload/" + User.Identity.GetUserId(); //if (!Directory.Exists(duongDan)) // Directory.CreateDirectory(duongDan); var duongDanVatLy = pathSource + "/TD_HoSoDuAn"; if (!Directory.Exists(duongDanVatLy)) Directory.CreateDirectory(duongDanVatLy); var indexFile = 0; var stt = 1; for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; if (file.ContentLength > 0) { // Tạo tên file lưu trên hệ thống var fileName = tD_HoSoDuAn.HoSoDuAn_ID + "_" + tD_HoSoDuAn.LoaiDuAn_ID + "_" + Guid.NewGuid().ToString() + "_" + Path.GetFileName(file.FileName); // Lưu file lên hệ thống var path = Path.Combine(duongDanVatLy, fileName); file.SaveAs(path); // Tạo object TD_FileHoSoDinhKem var objFileDinhKem = new TD_FileHoSoDinhKem { DuongDan = path, SoKyHieu = listFile[indexFile].SoKyHieu, MaHoSo = maHoSo, STT = stt, TenFile = fileName, TenHienThi = Path.GetFileName(file.FileName), TrichYeu = listFile[indexFile].TrichYeu, VanBan_ID = listFile[indexFile].VanBan_ID, TrangThai = TrangThai.HoatDong }; // Lưu thông tin file vào db db.TD_FileHoSoDinhKem.Add(objFileDinhKem); stt++; // Cộng số thứ tự file thêm 1 nếu đã lưu 1 file thành công } indexFile++; } } db.SaveChanges(); dbContextTransaction.Commit(); return RedirectToAction("Index"); } catch (DbEntityValidationException ex) { dbContextTransaction.Rollback(); var exc = new ExceptionViewer(); exc.GetError(ex); } } } tD_HoSoDuAn.ListFile = listFile; GetViewBag(ViewReport.Create); GetModelStateError(ViewData); return View(tD_HoSoDuAn); }
//[ValidateAntiForgeryToken] public ActionResult Edit(TD_HoSoDuAn tD_HoSoDuAn, List<TD_FileHoSoDinhKem> listFile) { var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); // Kiểm tra quyền truy cập và cập nhật var per = CheckPermission(user); if (!per.isEdit) return Content("Bạn không có quyền thực hiện chức năng này"); if (ModelState.IsValid) { using (var dbContextTransaction = db.Database.BeginTransaction()) { try { db.Entry(tD_HoSoDuAn).State = EntityState.Modified; tD_HoSoDuAn.TuNgay = DateTime.Now; tD_HoSoDuAn.DenNgay = DateTime.Now; //db.SaveChanges(); // Lưu file vào hệ thống //if (Request.Files.Count > 0) if (listFile.Any()) { var pathSource = ConfigurationManager.AppSettings["FolderUploadPath"]; if (string.IsNullOrEmpty(pathSource)) return Content("Không tìm thấy đường dẫn file"); var maxSTT = db.TD_FileHoSoDinhKem.Where(o => o.TrangThai == TrangThai.HoatDong && o.MaHoSo == tD_HoSoDuAn.MaHoSo).Max(o => o.STT); var duongDanVatLy = pathSource + "/TD_HoSoDuAn"; if (!Directory.Exists(duongDanVatLy)) Directory.CreateDirectory(duongDanVatLy); var listFileInDb = db.TD_FileHoSoDinhKem.Where(o => o.TrangThai == TrangThai.HoatDong && o.MaHoSo == tD_HoSoDuAn.MaHoSo); var count = Request.Files.Count; for (var i = 0; i < listFile.Count; i++) { var id = listFile[i].FileHoSoDinhKem_ID; // File chưa được lưu trong database if (id <= 0 || id == null) { // Nếu có file thì sẽ tạo mới if (count > 0) { var file = Request.Files["file_" + i]; if (file != null) { // Tạo tên file lưu trên hệ thống var fileName = tD_HoSoDuAn.HoSoDuAn_ID + "_" + tD_HoSoDuAn.LoaiDuAn_ID + "_" + Guid.NewGuid().ToString() + "_" + Path.GetFileName(file.FileName); // Tạo đường dẫn vật lý cho file var path = Path.Combine(duongDanVatLy, fileName); // Tạo object TD_FileHoSoDinhKem var objFileDinhKem = new TD_FileHoSoDinhKem { DuongDan = path, GhiChu = listFile[i].GhiChu, MaHoSo = tD_HoSoDuAn.MaHoSo, VanBan_ID = listFile[i].VanBan_ID, TenFile = fileName, TenHienThi = Path.GetFileName(file.FileName), TenVanBan = listFile[i].TenVanBan, TrangThai = TrangThai.HoatDong }; // Lưu thông tin file vào db db.TD_FileHoSoDinhKem.Add(objFileDinhKem); //db.SaveChanges(); // Lưu file lên hệ thống file.SaveAs(path); } } else { // Không có file thì ko làm gì } } // Có file đã được lưu trong database else { var objFileOld = listFileInDb.FirstOrDefault(o => o.FileHoSoDinhKem_ID == id); if (objFileOld != null) { // Không up file khác lên thay thì cập nhật lại thông tin Tên văn bản, Ghi chú if (count == 0) { objFileOld.TenVanBan = !string.IsNullOrEmpty(listFile[i].TenVanBan) ? listFile[i].TenVanBan.Trim() : ""; objFileOld.GhiChu = !string.IsNullOrEmpty(listFile[i].GhiChu) ? listFile[i].GhiChu.Trim() : ""; db.Entry(objFileOld).State = EntityState.Modified; } else { var file = Request.Files["file_" + i]; // Up file khác lên thay thế file cũ if (file != null) { // Tạo tên file lưu trên hệ thống var fileName = tD_HoSoDuAn.HoSoDuAn_ID + "_" + tD_HoSoDuAn.LoaiDuAn_ID + "_" + Guid.NewGuid().ToString() + "_" + Path.GetFileName(file.FileName); // Tạo đường dẫn vật lý cho file var path = Path.Combine(duongDanVatLy, fileName); // Tạo object TD_FileHoSoDinhKem var objFileDinhKem = new TD_FileHoSoDinhKem { DuongDan = path, GhiChu = listFile[i].GhiChu, MaHoSo = tD_HoSoDuAn.MaHoSo, //STT = stt, TenFile = fileName, TenHienThi = Path.GetFileName(file.FileName), TenVanBan = listFile[i].TenVanBan, TrangThai = TrangThai.HoatDong }; // Nếu đổi file khác thì đổi trạng thái của file cũ, và tạo 1 object mới if (listFile[i].FileHoSoDinhKem_ID != -1) { //var id = listFile[i].FileHoSoDinhKem_ID; //var objFileOld = db.TD_FileHoSoDinhKem.FirstOrDefault(o => o.FileHoSoDinhKem_ID == id); objFileOld.TrangThai = TrangThai.KhongHoatDong; db.Entry(objFileOld).State = EntityState.Modified; //db.SaveChanges(); objFileDinhKem.STT = objFileOld.STT; } // Nếu lưu thêm file lên hệ thống else { maxSTT++; objFileDinhKem.STT = maxSTT; } // Lưu thông tin file vào db db.TD_FileHoSoDinhKem.Add(objFileDinhKem); //db.SaveChanges(); // Lưu file lên hệ thống file.SaveAs(path); } // Không up file khác lên thay thì cập nhật lại thông tin Tên văn bản, Ghi chú else { objFileOld.TenVanBan = !string.IsNullOrEmpty(listFile[i].TenVanBan) ? listFile[i].TenVanBan.Trim() : ""; objFileOld.GhiChu = !string.IsNullOrEmpty(listFile[i].GhiChu) ? listFile[i].GhiChu.Trim() : ""; db.Entry(objFileOld).State = EntityState.Modified; } } } else { // Không tìm thấy file trong database } } } } db.SaveChanges(); dbContextTransaction.Commit(); return RedirectToAction("Index"); //return Json(new { ok = "ok" }); //return View(); } catch (DbEntityValidationException ex) { dbContextTransaction.Rollback(); var exc = new ExceptionViewer(); exc.GetError(ex); } } } GetViewBag(ViewReport.Edit); GetModelStateError(ViewData); return View(tD_HoSoDuAn); }
// GET: TD_HoSoDuAn/Create public ActionResult Create() { var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); // Kiểm tra quyền truy cập và cập nhật var per = CheckPermission(user); if (!per.isEdit) return Content("Bạn không có quyền thực hiện chức năng này"); var obj = new TD_HoSoDuAn(); obj.ListFile = new List<TD_FileHoSoDinhKem>(); // Số ngày giải quyết var objLoaiDuAn = db.Dm_LoaiDuAn.FirstOrDefault(); if (objLoaiDuAn != null) { obj.SoNgayGiaiQuyet = objLoaiDuAn.SoNgayGiaiQuyet; obj.NgayTra = DateTime.Now.AddDays(obj.SoNgayGiaiQuyet).Date; } obj.ListFile = new List<TD_FileHoSoDinhKem>(); var objVanBanMacDinh = db.TD_CauHinh.FirstOrDefault(o => o.MaCauHinh == "VanBanMacDinhTiepNhanHoSo"); if (objVanBanMacDinh != null) { String[] vanBanID = objVanBanMacDinh.NoiDung.Split(','); foreach (string vbId in vanBanID) { try { int iVanBanID = int.Parse(vbId); var objVanBan = db.VanBan.FirstOrDefault(o => o.VanBan_ID == iVanBanID); obj.ListFile.Add(new TD_FileHoSoDinhKem { TrichYeu = objVanBan.TenVanBan, VanBan_ID = objVanBan.VanBan_ID }); } catch (Exception) { } } } // Lấy tên file văn bản và ghi chú đc cấu hình sẵn //var listLoaiDuAn = MvcApplication.ListLoaiDuAn(); //if (listLoaiDuAn != null) //{ // var duAn_ID = listLoaiDuAn.FirstOrDefault().LoaiDuAn_ID; // var listLoaiFile = db.Ht_FileHoSo_LoaiDuAn.Where(o => o.LoaiDuAn_ID == duAn_ID); // if (listLoaiFile != null) // { // foreach (var item in listLoaiFile) // { // obj.ListFile.Add(new TD_FileHoSoDinhKem // { // TenVanBan = item.TenFile, // GhiChu = item.GhiChu // }); // } // } //} //Lấy số file cấu hình max var objMaxFileCauHinh = db.TD_CauHinh.FirstOrDefault(o => o.MaCauHinh == "MaxFileThamDinh"); if (objMaxFileCauHinh != null) ViewBag.MaxFileThamDinh = Convert.ToInt32(objMaxFileCauHinh.NoiDung); GetViewBag(ViewReport.Create); return View(obj); }