Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }