Exemplo n.º 1
0
        private static bool ManageApprovedAppraisal(Model.DTO.Appraisal.Appraisal appraisal, int taskId, Model.DTO.Core.Employee manager, out string message)
        {
            bool boo_success = false;
            message = string.Empty;
            List<Model.DTO.Core.Task.Task> lst_completed_tasks = new List<Model.DTO.Core.Task.Task>();
            List<Model.DTO.Core.Task.Task> lst_new_tasks = new List<Model.DTO.Core.Task.Task>();
            List<System.Net.Mail.MailMessage> lst_email_messages;

            appraisal.AddTrail(CreateAppraisalTrail(appraisal, manager,
                                    appraisal.Status.Id == Model.PMSConstants.STATUS_ID_PENDING_LEVEL_1_APPROVAL ? new Model.DTO.Master.Action() { Id = PMS.Model.PMSConstants.ACTION_ID_APPRAISAL_APPROVED_LEVEL_1 } : new Model.DTO.Master.Action() { Id = PMS.Model.PMSConstants.ACTION_ID_APPRAISAL_APPROVED_LEVEL_2 }));

            if (appraisal.Status.Id == Model.PMSConstants.STATUS_ID_PENDING_LEVEL_1_APPROVAL)
            {
                lst_email_messages = GenerateEmailMessageForApprovedAppraisal(appraisal, 1);

                appraisal.Status = new Model.DTO.Master.Status() { Id = Model.PMSConstants.STATUS_ID_PENDING_LEVEL_2_APPROVAL };
                StringBuilder sb_task_name = new StringBuilder("Pending Level 2 Manager Approval For ");
                sb_task_name.Append(appraisal.Employee.PreferredName);
                sb_task_name.Append("'s Appraisal.");

                string str_task_address = null;
                if (appraisal.Stage.Id == Model.PMSConstants.STAGE_ID_GOAL_SETTING) { str_task_address = "/Stage1Approval/KeyPerformanceIndicators"; }
                if (appraisal.Stage.Id == Model.PMSConstants.STAGE_ID_PROGRESS_REVIEW) { str_task_address = "/Stage2Approval/KeyPerformanceIndicators"; }

                lst_new_tasks.Add(CreateNewTaskForAppraisal(appraisal.Id,
                        Model.PMSConstants.STATUS_CORE_ID_OPEN,
                        sb_task_name.ToString(),
                        str_task_address,
                        Model.Mappers.CoreMapper.MapApproverDTOToOwnerDTO(appraisal.GetApproverByLevel(2))));
            }
            else
            {
                lst_email_messages = GenerateEmailMessageForApprovedAppraisal(appraisal, 2);
                appraisal.Status = new Model.DTO.Master.Status() { Id = Model.PMSConstants.STATUS_ID_APPROVED };
            }

            lst_completed_tasks.Add(new Model.DTO.Core.Task.Task() { Id = taskId, Status = new Model.DTO.Core.Master.Status() { Id = Model.PMSConstants.STATUS_CORE_ID_COMPLETED } });

            if (Model.PMSModel.UpdateAppraisalAndTask(appraisal, lst_completed_tasks, lst_new_tasks, out message))
            {
                boo_success = true;
                SendEmailNotification(lst_email_messages);
            }
            else
            {
                boo_success = false;
            }
            return boo_success;
        }
Exemplo n.º 2
0
        private static System.Net.Mail.MailMessage GenerateEmailMessageToEmployeeForApprovedAppraisal(Model.DTO.Appraisal.Appraisal appraisal, int approvalLevel)
        {
            StringBuilder sb_subject = new StringBuilder("Your appraisal is approved by your level ");
            sb_subject.Append(approvalLevel);
            sb_subject.Append(" manager.");

            System.Net.Mail.MailMessage obj_email_message = new System.Net.Mail.MailMessage()
            {
                Subject = sb_subject.ToString(),
                From = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["emailsenderaddress"], ConfigurationManager.AppSettings["emailsendername"]),
                IsBodyHtml = true
            };

            StringBuilder sb_body = new StringBuilder();
            sb_body.Append("<p>Dear ");
            sb_body.Append(appraisal.Employee.PreferredName);
            sb_body.Append(", </p>");
            if (approvalLevel == 1)
            {
                sb_body.Append("<p>Your Level 1 Manager has concurred with your goals.</p>");
            }
            else
            {
                sb_body.Append("<p>Your Level 2 Manager has approved your ");
                sb_body.Append(appraisal.Stage.Name.ToLower());
                sb_body.Append(" document and you may view them at <a style='font-style:italic;' href='");
                sb_body.Append(ConfigurationManager.AppSettings["pmsweburl"]);
                sb_body.Append("'>eHR Portal</a>. Your ");
                sb_body.Append(appraisal.Stage.Name);
                sb_body.Append(" Phase is now completed.</p>");
            }

            sb_body.Append("<br />");
            sb_body.Append("<p><span style='font-style:italic; font-size:small;'>This is a computer generated email. Please do not reply.</span></p>");

            obj_email_message.Body = sb_body.ToString();
            if (appraisal.Employee.OfficeEmailAddress != null && Lib.Utility.Common.IsValidEmail(appraisal.Employee.OfficeEmailAddress))
                obj_email_message.To.Add(appraisal.Employee.OfficeEmailAddress);

            if (approvalLevel == 2 && appraisal.GetApproverByLevel(1).OfficeEmailAddress!=null)
            {
                obj_email_message.CC.Add(appraisal.GetApproverByLevel(1).OfficeEmailAddress);
            }

            return obj_email_message;
        }
Exemplo n.º 3
0
        private static List<System.Net.Mail.MailMessage> GenerateEmailMessageForApprovedAppraisal(Model.DTO.Appraisal.Appraisal appraisal, int approvalLevel)
        {
            Model.DTO.Appraisal.Stage obj_appraisal_current_stage = appraisal.AppraisalStages.Where(rec => rec.StageId == appraisal.Stage.Id).Single();
            List<System.Net.Mail.MailMessage> lst_messages = new List<System.Net.Mail.MailMessage>();

            System.Net.Mail.MailMessage temp = new System.Net.Mail.MailMessage();
            if (approvalLevel == 1)
            {
                temp = GenerateEmailMessageToEmployeeForApprovedAppraisal(appraisal, approvalLevel);
                if(temp!=null)
                    lst_messages.Add(temp);
                StringBuilder sb_subject = new StringBuilder("Approval required for ");
                sb_subject.Append(appraisal.Employee.PreferredName);
                sb_subject.Append("'s performance appraisal.");

                System.Net.Mail.MailMessage obj_email_message = new System.Net.Mail.MailMessage()
                {
                    Subject = sb_subject.ToString(),
                    From = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["emailsenderaddress"], ConfigurationManager.AppSettings["emailsendername"]),
                    IsBodyHtml = true
                };

                StringBuilder sb_body = new StringBuilder();
                sb_body.Append("<p>Dear ");
                sb_body.Append(appraisal.GetApproverByLevel(2).PreferredName);
                sb_body.Append(", </p>");
                sb_body.Append("<p>");
                sb_body.Append(appraisal.GetApproverByLevel(1).PreferredName);
                sb_body.Append(", has reviewed and approved the ");
                sb_body.Append(appraisal.Stage.Name.ToLower());
                sb_body.Append(" document for ");
                sb_body.Append(appraisal.Employee.PreferredName);
                sb_body.Append(" and it is now ready for your approval via <a style='font-style:italic;' href='");
                sb_body.Append(ConfigurationManager.AppSettings["pmsweburl"]);
                sb_body.Append("'>eHR Portal</a>.</p>");
                sb_body.Append("<p>Please note that the submission deadline for Level 2 Manager's approval is <u>");
                sb_body.Append(Convert.ToDateTime(obj_appraisal_current_stage.Level2ApprovalDeadline).ToString("dd/MM/yyyy"));
                sb_body.Append("</u>. Upon approval, the ");
                sb_body.Append(appraisal.Stage.Name);
                sb_body.Append(" Phase will be completed and will be submitted to HR.</p>");
                sb_body.Append("<br />");
                sb_body.Append("<p><span style='font-style:italic; font-size:small;'>This is a computer generated email. Please do not reply.</span></p>");

                obj_email_message.Body = sb_body.ToString();
                if (appraisal.GetApproverByLevel(2).OfficeEmailAddress != null && Lib.Utility.Common.IsValidEmail(appraisal.GetApproverByLevel(2).OfficeEmailAddress))
                    obj_email_message.To.Add(appraisal.GetApproverByLevel(2).OfficeEmailAddress);
                lst_messages.Add(obj_email_message);
            }

            if (approvalLevel == 2)
            {
                temp = GenerateEmailMessageToEmployeeForApprovedAppraisal(appraisal, approvalLevel);
                if (temp != null)
                    lst_messages.Add(temp);
            }

            return lst_messages;
        }
Exemplo n.º 4
0
        private static System.Net.Mail.MailMessage GenerateEmailMessageForRejectedAppraisal(Model.DTO.Appraisal.Appraisal appraisal, int approvalLevel)
        {
            StringBuilder sb_subject = new StringBuilder("Your appraisal is rejected by your level ");
            sb_subject.Append(approvalLevel);
            sb_subject.Append(" manager.");

            System.Net.Mail.MailMessage obj_email_message = new System.Net.Mail.MailMessage()
            {
                Subject = sb_subject.ToString(),
                From = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["emailsenderaddress"], ConfigurationManager.AppSettings["emailsendername"]),
                IsBodyHtml = true
            };

            StringBuilder sb_body = new StringBuilder();
            sb_body.Append("<p>Dear ");
            sb_body.Append(appraisal.Employee.PreferredName);
            sb_body.Append(", </p>");
            sb_body.Append("<p>Your Level ");
            sb_body.Append(approvalLevel);
            sb_body.Append(" Manager has reviewed your ");
            sb_body.Append(appraisal.Stage.Name.ToLower());
            sb_body.Append(" document and has returned to you for your further inputs via the <a style='font-style:italic;' href='");
            sb_body.Append(ConfigurationManager.AppSettings["pmsweburl"]);
            sb_body.Append("'>eHR Portal</a>.</p>");

            if (approvalLevel == 1)
            {
                Model.DTO.Appraisal.Stage obj_appraisal_current_stage = appraisal.AppraisalStages.Where(rec => rec.StageId == appraisal.Stage.Id).Single();
                sb_body.Append("<p>Please note that the submission deadline for Employees' KPIs for Managers' review is <u>");
                sb_body.Append(Convert.ToDateTime(obj_appraisal_current_stage.SubmissionDeadline).ToString("dd/MM/yyyy"));
                sb_body.Append("</u>.</p>");
            }

            if (approvalLevel == 2)
            {
                sb_body.Append("<p>Please submit your revised ");
                sb_body.Append(appraisal.Stage.Name.ToLower());
                sb_body.Append(" document for your Level 1 Manager's review urgently.</p>");
            }

            sb_body.Append("<br />");
            sb_body.Append("<p><span style='font-style:italic; font-size:small;'>This is a computer generated email. Please do not reply.</span></p>");

            obj_email_message.Body = sb_body.ToString();
            obj_email_message.To.Add(appraisal.Employee.OfficeEmailAddress);

            if (approvalLevel == 2)
            {
                obj_email_message.CC.Add(appraisal.GetApproverByLevel(approvalLevel).OfficeEmailAddress);
            }
            return obj_email_message;
        }
Exemplo n.º 5
0
        private static System.Net.Mail.MailMessage GenerateEmailMessageForAppraisalSubmission(Model.DTO.Appraisal.Appraisal appraisal)
        {
            Model.DTO.Appraisal.Stage obj_appraisal_current_stage = appraisal.AppraisalStages.Where(rec => rec.StageId == appraisal.Stage.Id).Single();
            StringBuilder sb_subject = new StringBuilder("Approval required for ");
            sb_subject.Append(appraisal.Employee.PreferredName);
            sb_subject.Append("'s performance appraisal.");

            System.Net.Mail.MailMessage obj_email_message = new System.Net.Mail.MailMessage()
            {
                Subject = sb_subject.ToString(),
                From = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["emailsenderaddress"], ConfigurationManager.AppSettings["emailsendername"]),
                IsBodyHtml = true
            };

            StringBuilder sb_body = new StringBuilder();
            sb_body.Append("<p>Dear ");
            sb_body.Append(appraisal.GetApproverByLevel(1).PreferredName);
            sb_body.Append(", </p>");
            sb_body.Append("<p>The ");
            sb_body.Append(appraisal.Stage.Name.ToLower());
            sb_body.Append(" document of ");
            sb_body.Append(appraisal.Employee.PreferredName);
            sb_body.Append(" is now ready for your review and approval via the <a style='font-style:italic;' href='");
            sb_body.Append(ConfigurationManager.AppSettings["pmsweburl"]);
            sb_body.Append("'>eHR Portal</a>.</p>");
            sb_body.Append("<p>Please note that the submission date for Level 1 Managers' approval is <u>");
            sb_body.Append(Convert.ToDateTime(obj_appraisal_current_stage.Level1ApprovalDeadline).ToString("dd/MM/yyyy"));
            sb_body.Append("</u>.</p><br />");
            sb_body.Append("<p><span style='font-style:italic; font-size:small;'>This is a computer generated email. Please do not reply.</span></p>");

            obj_email_message.Body = sb_body.ToString();
            obj_email_message.To.Add(appraisal.GetApproverByLevel(1).OfficeEmailAddress);
            return obj_email_message;
        }