/// <summary> /// Phê duyệt hồ sơ , chỉ có quyền giám đốc là có /// </summary> /// <param name="maHoSo"></param> /// <returns></returns> public ActionResult PheDuyet(string maHoSo) { if (String.IsNullOrEmpty(maHoSo)) return Json(new { msg = "Không tìm thấy mã hồ sơ" }); var user = S4T_HaTinhBase.GetUserSession(); if (user == null) { return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); } else { // Kiểm tra quyền phê duyệt hồ sơ var per = CheckPermission(user); if (!per.isSuccess) return Content("Bạn không có quyền thực hiện chức năng này"); var objHoSo = db.TD_HoSoDuAn.FirstOrDefault(o => o.MaHoSo == maHoSo); if (objHoSo == null) return Json(new { msg = "Không tìm thấy mã hồ sơ" }); else { try { var objLuongCVCuoi = db.sp_GetMaxLuongCongViecByMaHoSo(maHoSo).FirstOrDefault(); var luongCha_ID = objLuongCVCuoi.LuongCha_ID; var sttMax = objLuongCVCuoi.STT; var objLuongCV = new TD_LuongCongViec { Cap_ID = STTCapXuLy.DaPheDuyet, LuongCha_ID = luongCha_ID, MaHoSo = maHoSo, NgayGui = DateTime.Now, NgayHenTra = DateTime.Now, NguoiGui = user.UserName, NguoiNhan = user.UserName, NoiDung = "Đã phê duyệt", STT = sttMax + 1, TrangThai = TrangThai.HoatDong }; db.TD_LuongCongViec.Add(objLuongCV); db.SaveChanges(); return Json(new { ok = "ok" }); } catch (DbEntityValidationException ex) { var exc = new ExceptionViewer(); exc.GetError(ex); return Json(new { msg = "Có lỗi trong quá trình xử lý" }); } } } }
public ActionResult Forward(string maHoSo, string prefix, string ngayHenTra) { ViewBag.HideMenu = true; if (string.IsNullOrEmpty(maHoSo)) return Content("Không tìm thấy mã hồ sơ"); var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return Content("Phiên đăng nhập đã hết. Mời bạn đăng nhập lại!"); // Kiểm tra người xử lý cuối có phải người gửi var objLuongCVCuoi = db.sp_GetMaxLuongCongViecByMaHoSo(maHoSo).FirstOrDefault(); if (objLuongCVCuoi == null) return Content("Không tìm thấy luồng công việc"); if (objLuongCVCuoi.NguoiNhan != user.UserName) return Content("Bạn không phải người xử lý cuối của hồ sơ"); var obj = new TD_LuongCongViec { LuongCha_ID = objLuongCVCuoi.LuongCongViec_ID, MaHoSo = maHoSo, Prefix = prefix }; if (prefix == "Reply") { obj.NguoiNhan = objLuongCVCuoi.NguoiGui; obj.Cap_ID = STTCapXuLy.PhanHoi; } GetViewBag_Forward(prefix, user); ViewBag.NgayHenTra = ngayHenTra; // Lấy luồng công việc cha obj.LuongCha_ID = objLuongCVCuoi.LuongCha_ID == null ? obj.LuongCongViec_ID : obj.LuongCha_ID; obj.STT = objLuongCVCuoi.STT + 1; return View(obj); }
public ActionResult Forward(TD_LuongCongViec obj) { if (String.IsNullOrEmpty(obj.MaHoSo)) return Content("Không tìm thấy mã hồ sơ"); var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); obj.NguoiGui = user.UserName; obj.NgayGui = DateTime.Now; obj.NgayHenTra = DateTime.Now; if (ModelState.IsValid) { using (var dbContextTransaction = db.Database.BeginTransaction()) { try { // Kiểm tra có tồn tại người nhận var isNguoiNhan = db.AspNetUsers.Any(o => o.UserName.ToUpper() == obj.NguoiNhan.Trim().ToUpper()); if (!isNguoiNhan) { ModelState.AddModelError("NguoiNhan", "Không tồn tại người nhận " + obj.NguoiNhan + " trong hệ thống"); GetViewBag_Forward(obj.Prefix, user); ViewBag.HideMenu = true; return View(obj); } #region Cập nhật trạng thái hồ sơ cho luồng công việc var objCap = GetCapXuLy(obj.NguoiNhan); obj.Cap_ID = objCap == null ? STTCapXuLy.XinYKien : objCap.ThuTu.Value; // Trạng thái "Xin ý kiến" nếu không tìm thấy người trong phòng ban xử lý #endregion Cập nhật trạng thái hồ sơ cho luồng công việc #region Tạo luồng công việc obj.TrangThai = TrangThai.HoatDong; db.TD_LuongCongViec.Add(obj); db.SaveChanges(); #endregion Tạo luồng công việc #region Lưu file đính kèm theo luồng chuyển vào db if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file.ContentLength > 0) { var maxSize = 16384 * 1024; // in Byte // Kiểm tra giới hạn dung lượng file upload cho phép if (file.ContentLength > maxSize) { ModelState.AddModelError("", "Dung lượng file vượt quá dung lượng cho phép tải lên"); ViewBag.HideMenu = true; return View(obj); } var pathSource = ConfigurationManager.AppSettings["FolderUploadPath"]; if (string.IsNullOrEmpty(pathSource)) return Content("Không tìm thấy đường dẫn file"); // Lưu đường dẫn file theo mã hồ sơ var duongDan = pathSource + "/TD_LuongCongViec_FileDinhKem/" + obj.MaHoSo; if (!Directory.Exists(duongDan)) Directory.CreateDirectory(duongDan); var fileName = obj.MaHoSo + "_" + obj.LuongCongViec_ID + "_" + obj.STT + "_" + User.Identity.GetUserId() + "_" + Path.GetFileName(file.FileName); // Lưu file vào thư mục tạm của hệ thống var path = Path.Combine(duongDan, fileName); file.SaveAs(path); #region Lưu đường dẫn, thông tin file vào db var objFile = new TD_LuongCongViec_FileDinhKem(); objFile.LuongCongViec_ID = obj.LuongCongViec_ID; objFile.MaHoSo = obj.MaHoSo; objFile.TenFile = fileName; objFile.TenHienThi = Path.GetFileName(file.FileName); objFile.DuongDan = path; objFile.TrangThai = TrangThai.HoatDong; objFile.STT = 1; db.TD_LuongCongViec_FileDinhKem.Add(objFile); db.SaveChanges(); #endregion Lưu đường dẫn, thông tin file vào db } } #endregion Lưu file đính kèm theo luồng chuyển vào db // redirect back to the index action to show the form once again ViewBag.Status = "status=\"OK\";"; dbContextTransaction.Commit(); } catch (DbEntityValidationException ex) { ViewBag.Status = "status=\"ERROR\";"; dbContextTransaction.Rollback(); var exc = new ExceptionViewer(); exc.GetError(ex); } } } GetViewBag_Forward(obj.Prefix, user); ViewBag.HideMenu = true; return View(obj); }
//[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); }