/// <summary> /// Kiểm tra quyền báo cáo tình hình thực hiện ý kiến chỉ đạo /// </summary> /// <param name="requestID"></param> /// <returns></returns> public static bool CheckReportPermission(long requestID) { //Nếu là tài khoản admin thì được báo cáo tình hình thực hiện tất cả những YKCD của đơn vị if (CommonSessions.Role == UserRole.Administrator) { return(true); } var request = RequestServices.GetById(requestID); if (request == null) { return(false); } //Nếu đây là ý kiến chỉ đạo của UBND tỉnh if (request.IsAgencyRequest) { //Lãnh đạo đơn vị, lãnh đạo VP, chuyên viên VP, quản trị hệ thống có quyền báo cáo trực tiếp if (CommonSessions.Role == UserRole.LanhDaoDonVi || CommonSessions.Role == UserRole.LanhDaoVP || CommonSessions.Role == UserRole.ChuyenVienVP || CommonSessions.Role == UserRole.Administrator) { return(true); } } //Nếu tài khoản đang đăng nhập là tài khoản cá nhân if (CommonSessions.UserID > 0) { //Người nhập YKCD, người theo dõi, người yêu cầu, người thực hiện có quyền báo cáo if (request.CreatedBy == CommonSessions.UserID || request.Trackings.Any(t => t.UserID == CommonSessions.UserID) || request.Performs.Any(p => p.UserID == CommonSessions.UserID) || request.RequesterID == CommonSessions.UserID) { return(true); } } //Nếu tài khoản đang đăng nhập là tài khoản đơn vị if (CommonSessions.DepartmentID > 0) { //Những đưn vị được phân công thực hiện có quyền báo cáo if (PerformServices.GetList(requestID).Any(item => item.DepartmentID == CommonSessions.DepartmentID)) { return(true); } } return(false); }
/// <summary> /// Hiển thị danh sách đơn vị (cá nhân) thực hiện ý kiến chỉ đạo /// </summary> /// <param name="requestID">Mã ý kiến chỉ đạo</param> /// <returns></returns> public static string ShowPerformObjects(long requestID) { var request = RequestServices.GetById(requestID); if (request == null) { return(string.Empty); } string result = string.Empty; var performs = request.Performs; //Nếu tài khoản đăng nhập có quyền xác nhận hoàn thành, hiển thị đối tượng thực hiện và link xác nhận hoàn thành if (request.CoQuyenXacNhan) { foreach (var perform in performs) { if (perform.DepartmentID > 0 && perform.Department != null) { result += $"{perform.Department?.DepartmentName} (<a href=\"#\" data-toggle=\"modal\" data-target=\".my-modal-lg\" data-link=\"{Redirector.GetLink("SubAgency/XacNhanHoanThanh.aspx", "id", perform.PerformID)}\">{perform.StatusString}</a>)<br/>"; } else if (perform.UserID > 0 && perform.User != null) { result += $"{perform.User?.FullName} (<a href=\"#\" data-toggle=\"modal\" data-target=\".my-modal-lg\" data-link=\"{Redirector.GetLink("SubAgency/XacNhanHoanThanh.aspx", "id", perform.PerformID)}\">{perform.StatusString}</a>)<br/>"; } } } //Nếu tài khoản đăng nhập không có quyền xác nhận hoàn thành, hiển thị thông tin đối tượng thực hiện else { foreach (var item in performs) { if (item.DepartmentID > 0 && item.Department != null) { result += $"{item.Department.DepartmentName} ({item.StatusString})<br/>"; } else if (item.UserID > 0 && item.User != null) { result += $"{item.User.FullName} ({item.StatusString})<br/>"; } } } return(result); }
/// <summary> /// /// </summary> /// <param name="requestID"></param> /// <param name="documentId"></param> /// <returns></returns> public static bool CheckUpdatePermission(long requestID = 0, long documentId = 0) { var request = RequestServices.GetById(requestID); var document = DocumentServices.GetById(documentId); //Nếu đây là văn bản của UB tỉnh, thì ko được cập nhật if (document != null && document.AgencyDocumentID > 0) { return(false); } //Nếu đây là ykcd của UB tỉnh, thì ko được cập nhật nếu chưa giao việc if (request != null && request.IsAgencyRequest && !request.IsAssignPerform) { return(false); } //Nếu là tài khoản admin thì được cập nhật tất cả những YKCD nội bộ đơn vị if (CommonSessions.Role == UserRole.Administrator) { return(true); } if (requestID > 0 && request != null) { if (CommonSessions.UserID > 0 && (request.CreatedBy == CommonSessions.UserID || request.RequesterID == CommonSessions.UserID || request.Trackings.Any(t => t.UserID == CommonSessions.UserID))) { return(true); } } else if (documentId > 0 && document != null) { if ((document.AgencyDocumentID <= 0 || document.AgencyDocumentID == null) && CommonSessions.UserID > 0 && (document.CreatedBy == CommonSessions.UserID || document.SignerID == CommonSessions.UserID || document.WriterID == CommonSessions.UserID)) { return(true); } } return(false); }
public static void Update(long performId, int status, DateTime performOnDate, bool isNeedConfirm) { var perform = PerformServices.GetById(performId); if (perform != null) { perform.Status = status; if (status == 2 && perform.IsFinishedConfirm == true && isNeedConfirm) { perform.Status = 3; perform.FinishedOnDate = performOnDate; } else if (status == 2 && (!isNeedConfirm || !perform.IsFinishedConfirm)) { perform.Status = 2; perform.FinishedOnDate = performOnDate; } PerformServices.Update(perform); } RequestServices.CapNhatTrangThaiYKCD(perform.RequestID); }
public static void Create(Report report, List <int> performIds, object fileContent, string fileName, string uploadFolder, bool isStaffReport = false, bool isSendToAgency = false, bool isSendFromAgency = false) { if (!string.IsNullOrEmpty(report.ReportContent)) { Create(report); ReportFileServices.CreateReportFile(report, fileContent, fileName, uploadFolder); } Request request = RequestServices.GetById(report.RequestID); if (request.IsAgencyRequest) { if (request.Performs.Count > 0) { if (isSendFromAgency) { if (request.Status == 2) { foreach (var perform in request.Performs) { PerformServices.Update(performId: perform.PerformID, status: report.Status, performOnDate: report.PerformOnDate, isNeedConfirm: false); } } } else if (isStaffReport) { if (performIds != null) { foreach (var performId in performIds) { PerformServices.Update(performId: performId, status: report.Status, performOnDate: report.PerformOnDate, isNeedConfirm: false); } report.Status = RequestServices.CapNhatTrangThaiYKCD(request.RequestID); } } else { PerformServices.Update(performId: performIds.FirstOrDefault(), status: report.Status, performOnDate: report.PerformOnDate, isNeedConfirm: true); report.Status = RequestServices.CapNhatTrangThaiYKCD(request.RequestID); } if (isSendToAgency) { if (report.Status == 3) { report.Status = 2; } AgencyServiceHelper.ReceiveReport(ConfigurationManager.AppSettings["Agency_Service"], report); } } else { if (!isSendFromAgency) { request.Status = report.Status; if (request.Status == 2) { request.FinishedOnDate = report.PerformOnDate; } RequestServices.Update(request); if (isSendToAgency) { if (report.Status == 3) { report.Status = 2; } AgencyServiceHelper.ReceiveReport(ConfigurationManager.AppSettings["Agency_Service"], report); } } } } else if (isStaffReport) { foreach (var performId in performIds) { PerformServices.Update(performId: performId, status: report.Status, performOnDate: report.PerformOnDate, isNeedConfirm: false); } } else { PerformServices.Update(performId: performIds.FirstOrDefault(), status: report.Status, performOnDate: report.PerformOnDate, isNeedConfirm: true); } }