Ejemplo n.º 1
0
        private static bool ManageRejectedAppraisal(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 = new List<System.Net.Mail.MailMessage>();

            lst_email_messages.Add(GenerateEmailMessageForRejectedAppraisal(appraisal, appraisal.Status.Id == Model.PMSConstants.STATUS_ID_PENDING_LEVEL_1_APPROVAL ? 1 : 2));

            Model.DTO.Appraisal.Trail obj_trail = new Model.DTO.Appraisal.Trail()
            {
                Appraisal = appraisal,
                Stage = appraisal.Stage,
                ActionTimestamp = DateTime.Now,
                Actioner = manager,
                Action = appraisal.Status.Id == Model.PMSConstants.STATUS_ID_PENDING_LEVEL_1_APPROVAL ? new Model.DTO.Master.Action() { Id = PMS.Model.PMSConstants.ACTION_ID_APPRAISAL_REJECTED_LEVEL_1 } : new Model.DTO.Master.Action() { Id = PMS.Model.PMSConstants.ACTION_ID_APPRAISAL_REJECTED_LEVEL_2 }
            };
            appraisal.AddTrail(obj_trail);
            appraisal.Status = new Model.DTO.Master.Status() { Id = Model.PMSConstants.STATUS_ID_NEW };

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

            lst_new_tasks.Add(CreateNewTaskForAppraisal(appraisal.Id,
                            Model.PMSConstants.STATUS_CORE_ID_OPEN,
                            "Re-submission of performance appraisal.",
                            str_task_address,
                            Model.Mappers.CoreMapper.MapEmployeeDTOToOwnerDTO(appraisal.Employee)));

            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;
        }
Ejemplo n.º 2
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;
        }