/// <summary>
        /// Duyệt báo cáo thành công
        /// </summary>
        /// <param name="id">ID của báo cáo</param>
        /// <param name="lichNhap_ID">ID của lịch nhập liệu</param>
        public ActionResult ConfirmReport(int id, int lichNhap_ID)
        {
            var user = S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });
            var per = S4T_HaTinhBase.CheckPermissionAdmin(LoaiBaoCao.UngDungCNTT);
            if (per != PermissionType.Write) return Content(ExceptionViewer.GetMessage("UPDATE_NOT_PERMISSION"));

            try
            {
                CongThongTinDienTu congThongTinDienTu = db.CongThongTinDienTu.Find(id);
                if (congThongTinDienTu == null)
                {
                    return HttpNotFound();
                }

                #region Update congThongTinDienTu
                congThongTinDienTu.Success = (byte)TrangThaiNhapLieu.PheDuyet;
                congThongTinDienTu.TruongNhapLai = string.Empty;
                db.Entry(congThongTinDienTu).State = EntityState.Modified;
                #endregion

                #region Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                Ht_LichNhapLieu objLichNhapLieu = db.Ht_LichNhapLieu.Find(lichNhap_ID);
                objLichNhapLieu.ChucNang_ID = (byte)TrangThaiNhapLieu.PheDuyet;
                db.Entry(objLichNhapLieu).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                return Json(new { ok = "ok" });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
        public async Task<ActionResult> Edit(CongThongTinDienTu congThongTinDienTu)
        {
            var user = S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });
            var per = S4T_HaTinhBase.CheckPermission(Request.RequestContext.RouteData.GetRequiredString("controller"));
            if (per != PermissionType.Write) return Content(ExceptionViewer.GetMessage("UPDATE_NOT_PERMISSION"));

            if (ModelState.IsValid)
            {
                var mess = CheckReportStatus(user, TrangThaiNhapLieu.Sua);
                if (String.IsNullOrEmpty(mess))
                {
                    try
                    {
                        using (var context = new S4T_HaTinhEntities())
                        {
                            congThongTinDienTu.Success = (byte)TrangThaiNhapLieu.DaGui;
                            //haTangNhanLucCNTT.TruongNhapLai = string.Empty; // Xóa hết các yêu cầu nhập lại dữ liệu
                            context.Entry(congThongTinDienTu).State = EntityState.Modified;
                            await context.SaveChangesAsync();
                        }

                        // Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                        var objLichNhap = db.Ht_LichNhapLieu.FirstOrDefault(o => o.TrangThai == TrangThai.HoatDong
                                                                          && o.DonVi_ID == congThongTinDienTu.DonVi_ID
                                                                              && o.PhanHe_ID == objChucNang.PhanHeChucNang_ID
                                                                              && o.ChucNang_ID != TrangThaiNhapLieu.PheDuyet);
                        objLichNhap.ChucNang_ID = TrangThaiNhapLieu.DaGui;
                        db.Entry(objLichNhap).State = EntityState.Modified;
                        await db.SaveChangesAsync();

                        return RedirectToAction("Index");
                    }
                    catch (Exception ex)
                    {
                        var exv = new ExceptionViewer(ex);
                        return Json(new { 
                            //msg = exv.GetErrorMessage(ex.Message) 
                            msg = exv.GetErrorMessage("Có lỗi dữ liệu xảy ra") 
                        });
                    }
                }

                return Content(mess);
            }

            GetViewBag(user.DonVi_ID);
            return View(congThongTinDienTu);
        }
        /// <summary>
        /// Yêu cầu đơn vị nhập lại số liệu với các trường bị đánh dấu sai
        /// </summary>
        /// <param name="id">ID của báo cáo</param>
        /// <param name="lichNhap_ID">ID của lịch nhập liệu</param>
        /// <param name="truongNhapLai">mã của các trường dữ liệu cần nhập lại</param>
        /// <param name="tuNgay">ngày bắt đầu nhập</param>
        /// <param name="denNgay">ngày kết thúc nhập</param>
        public ActionResult NhapLaiRequest(int id, int lichNhap_ID, string truongNhapLai, string tuNgay, string denNgay)
        {
            var user = S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });
            var per = S4T_HaTinhBase.CheckPermissionAdmin(LoaiBaoCao.UngDungCNTT);
            if (per != PermissionType.Write) return Content(ExceptionViewer.GetMessage("UPDATE_NOT_PERMISSION"));

            try
            {
                CongThongTinDienTu congThongTinDienTu = db.CongThongTinDienTu.Find(id);
                if (congThongTinDienTu == null)
                {
                    return HttpNotFound();
                }

                #region Kiểm tra thời gian nhập liệu
                DateTime _tuNgay;
                DateTime _denNgay;
                var msg = string.Empty;
                if (!DateTime.TryParseExact(tuNgay, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out _tuNgay))
                    msg = "'Từ ngày' nhập sai định dạng";
                if (!DateTime.TryParseExact(denNgay, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out _denNgay))
                    msg = "'Đến ngày' nhập sai định dạng";

                if (_tuNgay.Date < DateTime.Now.Date)
                    msg = "Thời gian 'Từ ngày' không được nhỏ hơn thời gian hiện tại";
                if (_denNgay.Date < _tuNgay.Date)
                    msg = "Thời gian 'Đến ngày' không được nhỏ hơn thời gian 'Từ ngày'";

                if (!string.IsNullOrEmpty(msg))
                {
                    GetViewBag(congThongTinDienTu.DonVi_ID); // Get ViewBag
                    ViewBag.LichNhap_ID = lichNhap_ID;
                    return Json(new { msg = msg });
                }
                #endregion Kiểm tra thời gian nhập liệu

                #region Update congThongTinDienTu
                congThongTinDienTu.TruongNhapLai = truongNhapLai;
                congThongTinDienTu.Success = (byte)TrangThaiNhapLieu.Sua;
                db.Entry(congThongTinDienTu).State = EntityState.Modified;
                #endregion

                #region Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                Ht_LichNhapLieu objLichNhapLieu = db.Ht_LichNhapLieu.Find(lichNhap_ID);
                objLichNhapLieu.ChucNang_ID = (byte)TrangThaiNhapLieu.Sua;
                if (!string.IsNullOrEmpty(tuNgay))
                    objLichNhapLieu.TuNgay = DateTime.ParseExact(tuNgay, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                if (!string.IsNullOrEmpty(denNgay))
                    objLichNhapLieu.DenNgay = DateTime.ParseExact(denNgay, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                db.Entry(objLichNhapLieu).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                return Json(new { ok = "ok" });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
        public async Task<ActionResult> Create(HaTangKyThuatCNTT_Huyen haTangKyThuatCNTT_Huyen)
        {
            var user = S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });
            var per = S4T_HaTinhBase.CheckPermission(Request.RequestContext.RouteData.GetRequiredString("controller"));
            if (per != PermissionType.Write) return Content(ExceptionViewer.GetMessage("UPDATE_NOT_PERMISSION"));

            try
            {
                if (ModelState.IsValid)
                {
                    var mess = CheckReportStatus(user, TrangThaiNhapLieu.ThemMoi);
                    if (String.IsNullOrEmpty(mess))
                    {
                        var objLichNhap = db.Ht_LichNhapLieu.FirstOrDefault(o => o.TrangThai == TrangThai.HoatDong
                                                                          && o.DonVi_ID == haTangKyThuatCNTT_Huyen.DonVi_ID
                                                                              && o.PhanHe_ID == objChucNang.PhanHeChucNang_ID
                                                                              && o.ChucNang_ID != TrangThaiNhapLieu.PheDuyet);

                        // Đổi trạng thái nhập liệu
                        haTangKyThuatCNTT_Huyen.Success = (byte)TrangThaiNhapLieu.DaGui;
                        haTangKyThuatCNTT_Huyen.LichNhap_ID = objLichNhap.LichNhap_ID; // Add LichNhap_ID vào báo cáo
                        db.HaTangKyThuatCNTT_Huyen.Add(haTangKyThuatCNTT_Huyen);

                        // Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                        //objLichNhap.BaoCao_ID = haTangKyThuatCNTT.HaTangKyThuatCNTT_ID;
                        objLichNhap.ChucNang_ID = TrangThaiNhapLieu.DaGui;
                        db.Entry(objLichNhap).State = EntityState.Modified;
                        await db.SaveChangesAsync();

                        return RedirectToAction("Index");
                    }

                    return Content(mess);
                }

                GetViewBag(user.DonVi_ID);
                return View(haTangKyThuatCNTT_Huyen);
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
        /// <summary>
        /// Lọc danh sách các báo cáo theo đơn vị
        /// </summary>
        /// <param name="donVi_ID">Mã đơn vị</param>
        public ActionResult GetReportByDonVi(int donVi_ID, int? phanHe_ID, int? trangThaiNhapLieu)
        {
            if (S4T_HaTinhBase.GetUserSession() == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });
            var per = S4T_HaTinhBase.CheckPermission(Request.RequestContext.RouteData.GetRequiredString("controller"));
            if (per == PermissionType.Deny) return Content(ExceptionViewer.GetMessage("VIEW_NOT_PERMISSION"));

            try
            {
                var listLichNhap = db.Ht_LichNhapLieu.Where(o => o.TrangThai == TrangThai.HoatDong && o.DonVi_ID == donVi_ID);
                var listPhanHeChucNang = db.Ht_PhanHeChucNang.Where(o => o.TrangThai == TrangThai.HoatDong && o.PhanHe_ID == PhanHe.QuanLyThongTin).ToList();
                var objPhanHe = new Ht_PhanHeChucNang();

                if (trangThaiNhapLieu != null)
                    listLichNhap = listLichNhap.Where(o => o.ChucNang_ID == trangThaiNhapLieu);
                if (phanHe_ID != null)
                {
                    objPhanHe = listPhanHeChucNang.FirstOrDefault(o => o.PhanHeChucNang_ID == phanHe_ID);
                    listLichNhap = listLichNhap.Where(o => o.PhanHe_ID == phanHe_ID);
                }

                if (listLichNhap.Any())
                {
                    var sb = new StringBuilder();
                    foreach (var item in listLichNhap)
                    {
                        if(phanHe_ID == null)
                            objPhanHe = listPhanHeChucNang.FirstOrDefault(o => o.PhanHeChucNang_ID == item.PhanHe_ID);

                        var objDanhMuc = MvcApplication.ListTrangThaiNhapLieu().FirstOrDefault(o => o.DanhMuc_ID == item.ChucNang_ID);
                        sb.Append("<tr>");
                        sb.AppendFormat("<td>{0}</td>", objPhanHe == null ? "" : objPhanHe.TenChucNang);
                        sb.AppendFormat("<td>{0}</td>", item.TuNgay.ToShortDateString());
                        sb.AppendFormat("<td>{0}</td>", item.DenNgay.ToShortDateString());
                        sb.AppendFormat("<td>{0}</td>", objDanhMuc == null ? "" : objDanhMuc.TenDanhMuc);

                        // Trạng thái: Chờ duyệt
                        if (item.ChucNang_ID == TrangThaiNhapLieu.DaGui)
                        {
                            // Duyệt báo cáo
                            sb.AppendFormat("<td><a href='/{0}/Check?donVi_ID={1}&lichNhap_ID={2}'>Kiểm tra</a></td>", objPhanHe.ControllerName, item.DonVi_ID, item.LichNhap_ID);
                        }
                        else if (item.ChucNang_ID == TrangThaiNhapLieu.PheDuyet || item.ChucNang_ID == TrangThaiNhapLieu.Sua)
                        {
                            // Xem báo cáo
                            sb.AppendFormat("<td><a href='/{0}/Details?donVi_ID={1}&lichNhap_ID={2}'>Xem</a></td>", objPhanHe.ControllerName, item.DonVi_ID, item.LichNhap_ID);
                        }
                        else
                            sb.Append("<td></td>");
                        sb.Append("</tr>");
                    }
                    return Json(new { danhSach = sb.ToString() });
                }
                else
                {
                    return Json(new { danhSach = "Không có dữ liệu" });
                }
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
        public ActionResult NhapLaiRequest(int id, int lichNhap_ID, string truongNhapLai, string tuNgay, string denNgay)
        {
            try
            {
                TinhHinhSXDN tinhHinhSXDN = db.TinhHinhSXDN.Find(id);
                if (tinhHinhSXDN == null)
                {
                    return HttpNotFound();
                }

                #region Update tinhHinhSXDN
                tinhHinhSXDN.TruongNhapLai = truongNhapLai;
                tinhHinhSXDN.Success = (byte)TrangThaiNhapLieu.Sua;
                db.Entry(tinhHinhSXDN).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                #region Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                Ht_LichNhapLieu objLichNhapLieu = db.Ht_LichNhapLieu.Find(lichNhap_ID);
                objLichNhapLieu.ChucNang_ID = (byte)TrangThaiNhapLieu.Sua;
                if (!string.IsNullOrEmpty(tuNgay))
                    objLichNhapLieu.TuNgay = DateTime.ParseExact(tuNgay, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                if (!string.IsNullOrEmpty(denNgay))
                    objLichNhapLieu.DenNgay = DateTime.ParseExact(denNgay, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                db.Entry(objLichNhapLieu).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                return Json(new { ok = "ok" });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
        public ActionResult ConfirmReport(int id, int lichNhap_ID)
        {
            try
            {
                TinhHinhSXDN tinhHinhSXDN = db.TinhHinhSXDN.Find(id);
                if (tinhHinhSXDN == null)
                {
                    return HttpNotFound();
                }

                #region Update tinhHinhSXDN
                tinhHinhSXDN.Success = (byte)TrangThaiNhapLieu.PheDuyet;
                tinhHinhSXDN.TruongNhapLai = string.Empty;
                db.Entry(tinhHinhSXDN).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                #region Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                Ht_LichNhapLieu objLichNhapLieu = db.Ht_LichNhapLieu.Find(lichNhap_ID);
                objLichNhapLieu.ChucNang_ID = (byte)TrangThaiNhapLieu.PheDuyet;
                db.Entry(objLichNhapLieu).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                return Json(new { ok = "ok" });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
Пример #8
0
        /// <summary>
        /// Lấy danh sách đơn vị cấp 2 theo Nhóm đơn vị và đơn vị cấp trên
        /// </summary>
        /// <param name="ddlNhomDonVi">ID của nhóm đơn vị</param>
        /// <param name="ddlDonViCap1">ID của đơn vị cấp trên - nếu ko chọn thì sẽ hiển thị cả DV cấp 1 và 2</param>
        public ActionResult NhomDonVi_OnChange(Nullable<int> ddlDonViCap1)
        {
            try
            {
                var list = (IEnumerable<Dm_DonVi>) db.Dm_DonVi;
                //if(ddlNhomDonVi != null)
                //    list = list.Where(o =>o.TrangThai == TrangThai.HoatDong &&  o.NhomDonVi_ID == ddlNhomDonVi);
                if (ddlDonViCap1 != null)
                    list = list.Where(o => o.TrangThai == TrangThai.HoatDong && o.DonViCap1_ID == ddlDonViCap1);

                var objDonViCap1 = db.Dm_DonVi.FirstOrDefault(o => o.DonVi_ID == ddlDonViCap1);
                var str = new StringBuilder().AppendFormat("<option value='{0}'>{1}</option>",objDonViCap1.DonVi_ID, objDonViCap1.TenDonVi);
                if (list.Any())
                {
                    foreach (var item in list)
                    {
                        str.AppendFormat("<option value='{0}'>{1}</option>", item.DonVi_ID, item.TenDonVi);
                    }
                }
                return Json(new { danhSach = str.ToString() });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
Пример #9
0
        /// <summary>
        /// Lấy danh sách đơn vị cấp 2 theo Nhóm đơn vị và đơn vị cấp trên
        /// </summary>
        /// <param name="ddlNhomDonVi">ID của nhóm đơn vị</param>
        /// <param name="ddlDonViCap1">ID của đơn vị cấp trên - nếu ko chọn thì sẽ hiển thị cả DV cấp 1 và 2</param>
        public ActionResult DonVi_OnChange(Nullable<int> donVi_ID)
        {
            try
            {
                var objDonVi = MvcApplication.ListDonVi.FirstOrDefault(o => o.DonVi_ID == donVi_ID);
                if (objDonVi != null)
                {
                    if (objDonVi.NhomDonVi_ID == DonVi.NhomDonViCapHuyen)
                    {
                        var configRoleUser = ConfigurationManager.AppSettings["RoleUserCapHuyen"];
                        if (String.IsNullOrEmpty(configRoleUser))
                            return Json(new { msg = "Không tìm thấy mã người dùng cấp Huyện" });

                        var objRole = db.AspNetRoles.FirstOrDefault(o => o.Id == configRoleUser);

                        if (objRole != null)
                            return Json(new { RoleName = objRole.TenHienThi, Role_ID = configRoleUser });
                    }
                    else
                    {
                        var configRoleUser = ConfigurationManager.AppSettings["RoleUserCapSo"];
                        if (String.IsNullOrEmpty(configRoleUser))
                            return Json(new { msg = "Không tìm thấy mã người dùng cấp Tỉnh" });

                        var objRole = db.AspNetRoles.FirstOrDefault(o => o.Id == configRoleUser);

                        if (objRole != null)
                            return Json(new { RoleName = objRole.TenHienThi, Role_ID = configRoleUser });
                    }

                    return Json(new { msg = "Không tìm thấy mã vai trò người dùng" });
                }

                return Json(new { msg = "Không tìm thấy mã đơn vị" });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }
Пример #10
0
 public ActionResult LoaiVanBan_OnChange(int loaiVanBan, string view)
 {
     try
     {
         StringBuilder str = new StringBuilder();
         if(view == "Index")
         {
             str.AppendFormat("<option value=''>Tất cả</option>");
         }
         var list = db.NhomVanBan.Where(o => o.LoaiVanBan_ID == loaiVanBan);
         if (list.Any())
         {
             foreach (var item in list)
             {
                 str.AppendFormat("<option value='{0}'>{1}</option>", item.NhomVanBan_ID, item.TenNhomVanBan);
             }
         }
         return Json(new { danhSach = str.ToString() });
     }
     catch (Exception ex)
     {
         var exv = new ExceptionViewer(ex);
         return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
     }
 }
 /// <summary>
 /// Lấy danh sách đơn vị cấp trên theo Nhóm đơn vị
 /// </summary>
 /// <param name="nhomDonVi_ID">ID của nhóm đơn vị</param>
 public ActionResult NhomDonVi_OnChange(int nhomDonVi_ID)
 {
     try
     {
         var list = db.Dm_DonVi.Where(o => o.NhomDonVi_ID == nhomDonVi_ID);
         var str = new StringBuilder();
         if (list.Any())
         {
             foreach (var item in list)
             {
                 str.AppendFormat("<option value='{0}' >{1}</option>", item.DonVi_ID, item.TenDonVi);
             }
         }
         return Json(new { danhSach = str.ToString() });
     }
     catch (Exception ex)
     {
         var exv = new ExceptionViewer(ex);
         return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
     }
 }
        /// <summary>
        /// Load danh sách file đính kèm trong báo cáo
        /// </summary>
        /// <param name="id">mã của báo cáo</param>
        public ActionResult LoadListFile(int? id)
        {
            var user = S4T_HaTinhBase.GetUserSession();
            if (user == null) if (user == null) return RedirectToAction("Login", "Account");
            var per = S4T_HaTinhBase.CheckPermission(Request.RequestContext.RouteData.GetRequiredString("controller"));
            if (per == PermissionType.Deny)
            {
                // Kiểm tra thêm quyền là Thẩm định báo cáo ?
                per = S4T_HaTinhBase.CheckPermissionAdmin(LoaiBaoCao.ChinhSach);
                if (per == PermissionType.Deny) return Content(ExceptionViewer.GetMessage("VIEW_NOT_PERMISSION"));
            }

            var listReport = MvcApplication.ListReportMTCS();
            var str = new StringBuilder();
            var showInfoFile = string.Empty;
            try
            {
                if (listReport.Any())
                {
                    var list = new List<Ht_FileDinhKem>();

                    // Load lại list file đã đính kèm lên thư mục tạm của hệ thống
                    if (TempData[objChucNang.ControllerName + "_" + User.Identity.GetUserId()] != null)
                        list = (List<Ht_FileDinhKem>)TempData[objChucNang.ControllerName + "_" + User.Identity.GetUserId()];
                    else
                        // Load list file đã đc lưu vào hệ thống (View: Edit, Details)
                        list = db.Ht_FileDinhKem.Where(o => o.BaoCao_ID == id && o.PhanHeChucNang_ID == objChucNang.PhanHeChucNang_ID).ToList();

                    TempData[objChucNang.ControllerName + "_" + User.Identity.GetUserId()] = list;

                    // Hiển thị 2 cột ẩn
                    showInfoFile = list.Any() ? "Show" : ""; 

                    foreach (var item in listReport)
                    {
                        str.Append("<tr>");
                        str.AppendFormat("<td> {0} </td>", item.TenDanhMuc);
                        var objFile = list.FirstOrDefault(o => o.LoaiVanBan_ID == item.DanhMuc_ID);
                        if (objFile != null)
                        {
                            str.AppendFormat("<td>{0}</td>",objFile.SoVanBan);
                            str.AppendFormat("<td><a href='/HT_FileDinhKem/Download?tenFile={0}&chucNang_ID={1}'>{2}</a></td>", objFile.TenFile, objFile.PhanHeChucNang_ID, objFile.TenHienThi);

                            /* Lưu nhiều file
                            str.Append("<td><ul style='list-style:none;display: table-cell'");
                            foreach (var file in list.Where(o => o.LoaiVanBan_ID == item.DanhMuc_ID))
                            {
                                str.AppendFormat("<li><a href='/HT_FileDinhKem/Download?tenFile={0}&chucNang_ID={1}'>{2}</a></li>", file.TenFile, file.PhanHeChucNang_ID, file.TenHienThi);
                            }
                            str.Append("</ul></td>");
                            */
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(showInfoFile))
                            {
                                str.Append("<td></td>");
                                str.Append("<td></td>");
                            }
                        }
                        str.AppendFormat("<td><a href='javascript:void(0);' class='opendialog' onclick='OpenDialog({0});' loaivanban='{0}'>Chọn file</a></td>", @item.DanhMuc_ID);
                        str.Append("</tr>");
                    }
                }

                return Json(new { danhSachFile = str.ToString(), ShowInfoFile = showInfoFile });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(ex.Message) });
            }             
        }
        //[MultipleButton(Name = "action", Argument = "Create")]
        public async Task<ActionResult> Create(ToChucChinhSachCNTT toChucChinhSachCNTT)
        {
            var user = S4T_HaTinhBase.GetUserSession();
            if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery });
            var per = S4T_HaTinhBase.CheckPermission(Request.RequestContext.RouteData.GetRequiredString("controller"));
            if (per != PermissionType.Write) return Content(ExceptionViewer.GetMessage("UPDATE_NOT_PERMISSION"));

            if (ModelState.IsValid)
            {
                var mess = CheckReportStatus(user, TrangThaiNhapLieu.ThemMoi);
                if (String.IsNullOrEmpty(mess))
                {
                    try
                    {
                        var objLichNhap = db.Ht_LichNhapLieu.FirstOrDefault(o => o.DonVi_ID == toChucChinhSachCNTT.DonVi_ID
                                                                          && o.PhanHe_ID == objChucNang.PhanHeChucNang_ID
                                                                          && o.ChucNang_ID != TrangThaiNhapLieu.PheDuyet);

                        // Đổi trạng thái nhập liệu
                        toChucChinhSachCNTT.Success = (byte)TrangThaiNhapLieu.DaGui;
                        toChucChinhSachCNTT.LichNhap_ID = objLichNhap.LichNhap_ID; // Add LichNhap_ID vào báo cáo
                        db.ToChucChinhSachCNTT.Add(toChucChinhSachCNTT);
                        await db.SaveChangesAsync();

                        // Lưu file vào thư mục dữ liệu chính
                        if (TempData[objChucNang.ControllerName + "_" + User.Identity.GetUserId()] != null)
                        {
                            var listObjFile = (List<Ht_FileDinhKem>)TempData[objChucNang.ControllerName + "_" + User.Identity.GetUserId()];

                            var pathSource = ConfigurationManager.AppSettings["FolderUploadPath"];
                            if (string.IsNullOrEmpty(pathSource)) return JavaScript("Không tìm thấy đường dẫn file");

                            var duongDan = pathSource + "/ToChucChinhSachCNTT/NewUpload/" + User.Identity.GetUserId();
                            var duongDanVatLy = pathSource + "/ToChucChinhSachCNTT";
                            string[] filesPath = System.IO.Directory.GetFiles(duongDan);

                            if (filesPath.Any())
                            {
                                foreach (var item in listObjFile)
                                {
                                    item.BaoCao_ID = toChucChinhSachCNTT.ToChucChinhSachCNTT_ID;
                                    item.PhanHeChucNang_ID = objChucNang.PhanHeChucNang_ID;
                                    item.DonVi_ID = toChucChinhSachCNTT.DonVi_ID;
                                    item.HieuLuc = TrangThai.HoatDong;

                                    var fileName = toChucChinhSachCNTT.ToChucChinhSachCNTT_ID + "_" + item.LoaiVanBan_ID + "_" + User.Identity.GetUserId() + "_" +  item.TenHienThi;
                                    var pathFile = duongDanVatLy + "/" + fileName;

                                    //copy file vào thư mục chính
                                    System.IO.File.Copy(item.DuongDan, pathFile, true);

                                    item.DuongDan = pathFile;
                                    item.TenFile = fileName;
                                    item.TrangThai = TrangThai.HoatDong;
                                    db.Ht_FileDinhKem.Add(item);
                                }
                            }
                            //await db.SaveChangesAsync();
                        }
                        else
                        {
                            //return JavaScript("Không tìm thấy file");
                        }

                        // Đổi trạng thái nhập liệu trong bảng lịch nhập liệu
                        objLichNhap.ChucNang_ID = TrangThaiNhapLieu.DaGui;
                        db.Entry(objLichNhap).State = EntityState.Modified;
                        await db.SaveChangesAsync();

                        // Xóa dữ liệu trong thư mục tạm
                        DeleteTempUploadFile();
                        return RedirectToAction("Index");
                    }
                    catch (Exception ex)
                    {
                        var exv = new ExceptionViewer(ex);
                        return Json(new { msg = exv.GetErrorMessage(ex.Message) });
                    }                 
                }

                return Content(mess);
            }

            return View(toChucChinhSachCNTT);
        }
        /// <summary>
        /// Lấy danh sách Trực thuộc - View Create, Edit (hoặc ds đơn vị - View Index) theo Nhóm đơn vị
        /// </summary>
        /// <param name="nhomDonVi_ID">ID của nhóm đơn vị</param>
        /// <param name="view">Tên view cần hiển thị</param>
        public ActionResult ChangeListChucNang(string roleId)
        {
            try
            {
                var str = new StringBuilder();
                var listChucNangExists = db.Ht_Role_PhanHe_ChucNang.Where(o => o.RoleId == roleId).Select(o => o.PhanHeChucNang_ID);
                var listChucNangNotExits = db.Ht_PhanHeChucNang.Where(o => o.TrangThai == TrangThai.HoatDong && !listChucNangExists.Contains(o.PhanHeChucNang_ID)).OrderBy(o => o.TenChucNang);

                if (listChucNangNotExits.Any())
                {
                    str.Append("<select id='ListChucNang' name='ListChucNang' style='width: 300px;' multiple=''>");

                    foreach (var item in listChucNangNotExits)
                    {
                        str.AppendFormat("<option value='{0}'>{1}</option>", item.PhanHeChucNang_ID, item.TenChucNang);
                    }

                    str.Append("</select>");
                }

                return Json(new { danhSach = str.ToString() });
            }
            catch (Exception ex)
            {
                var exv = new ExceptionViewer(ex);
                return Json(new { msg = exv.GetErrorMessage(exv.sMessege) });
            }
        }