Esempio n. 1
0
        public string GetSeniorManagementTeamMemberId()
        {
            string str_id = null;

            if (!Lib.Utility.Common.IsNullOrEmptyList(Appraisal.Reviewers))
            {
                Model.DTO.Appraisal.Reviewer obj_reviewer = Appraisal.Reviewers.Where(rec => rec.SMT == true).SingleOrDefault();

                if (obj_reviewer != null)
                {
                    str_id = Convert.ToString(obj_reviewer.EmployeeId);
                }
            }
            return(str_id);
        }
Esempio n. 2
0
        public string GetSeniorManagementTeamMemberName()
        {
            string str_name = null;

            if (!Lib.Utility.Common.IsNullOrEmptyList(Appraisal.Reviewers))
            {
                Model.DTO.Appraisal.Reviewer obj_reviewer = Appraisal.Reviewers.Where(rec => rec.SMT == true).SingleOrDefault();

                if (obj_reviewer != null)
                {
                    str_name = obj_reviewer.PreferredName;
                }
            }
            return(str_name);
        }
Esempio n. 3
0
        public JsonResult SaveProfile(string reviewers, int apprid)
        {
            string message = string.Empty;
            List <Model.DTO.Appraisal.Reviewer> lst_reviewers = null;

            Model.DTO.Appraisal.Appraisal obj_appraisal = Model.PMSModel.GetAppraisalById(apprid);
            if (!string.IsNullOrEmpty(reviewers))
            {
                string[] reviewarray = reviewers.Split('|');

                if (!Lib.Utility.Common.IsNullOrEmptyList(reviewarray))
                {
                    List <string> lst_temp = new List <string>();
                    lst_reviewers = new List <Model.DTO.Appraisal.Reviewer>();
                    foreach (string str_reviewer in reviewarray)
                    {
                        if (Lib.Utility.Common.IsNullOrEmptyList(lst_temp.Where(rec => rec.Equals(str_reviewer))))
                        {
                            lst_temp.Add(str_reviewer);
                        }
                    }

                    foreach (string str_reviewer_id in lst_temp)
                    {
                        // 1. add GetEmployeeById in model
                        // 2. add MapEmployeeDTOToReviewerDTO in pmsmapper

                        Model.DTO.Appraisal.Reviewer obj_reviewer = Model.Mappers.PMSMapper.MapEmployeeDTOToReviewerDTO(Model.PMSModel.GetEmployeeById(Convert.ToInt32(str_reviewer_id)));
                        obj_reviewer.Appraisal = new Model.DTO.Appraisal.Appraisal()
                        {
                            Id = apprid
                        };
                        obj_reviewer.SMT = false;

                        lst_reviewers.Add(obj_reviewer);
                    }
                }
            }
            if (!Business.AppraisalManager.ManageChangeReviewerMember(obj_appraisal, lst_reviewers, out message))
            {
                return(Json(message));
            }

            return(Json(message));
        }
Esempio n. 4
0
        public JsonResult SaveProfileSMT(string smt, int appraisalId)
        {
            string message = string.Empty;

            Model.DTO.Appraisal.Reviewer obj_reviewer = null;

            if (!string.IsNullOrEmpty(smt))
            {
                Model.DTO.Appraisal.Appraisal obj_appraisal = Model.PMSModel.GetAppraisalById(appraisalId);
                obj_reviewer           = Model.Mappers.PMSMapper.MapEmployeeDTOToReviewerDTO(Model.PMSModel.GetEmployeeById(Convert.ToInt32(smt)));
                obj_reviewer.Appraisal = new Model.DTO.Appraisal.Appraisal()
                {
                    Id = appraisalId
                };
                obj_reviewer.SMT = true;

                if (!Business.AppraisalManager.ManageChangeSMTMember(obj_appraisal, obj_reviewer, out message))
                {
                    return(Json(message));
                }
            }
            return(Json(message));
        }
Esempio n. 5
0
        public static List<Model.DTO.Appraisal.Appraisal> CreateAppraisalsForUpdateCycle(List<Model.DTO.Core.Employee> participants, List<Model.DTO.Cycle.Stage> stages, Model.DTO.Core.Security.User user)
        {
            List<Model.DTO.Appraisal.Appraisal> lst_appraisals = null;
            if (!Lib.Utility.Common.IsNullOrEmptyList(participants))
            {
                lst_appraisals = new List<Model.DTO.Appraisal.Appraisal>();
                foreach (Model.DTO.Core.Employee obj_participant in participants)
                {
                    Model.DTO.Appraisal.Appraisal obj_appraisal = new Model.DTO.Appraisal.Appraisal()
                    {
                        Stage = new Model.DTO.Master.Stage() { Id = Model.PMSConstants.STAGE_ID_PRE_CYCLE },
                        Status = new Model.DTO.Master.Status() { Id = Model.PMSConstants.STATUS_ID_NEW },
                        Employee = obj_participant,
                        Department = Model.Mappers.CoreMapper.MapDepartmentDTOToMasterDepartmentDTO(obj_participant.Department),
                        Locked = true
                    };

                    obj_appraisal.AddAppraisalSection(new Model.DTO.Appraisal.Section() { SectionId = Model.PMSConstants.SECTION_ID_KPI });
                    obj_appraisal.AddAppraisalSection(new Model.DTO.Appraisal.Section() { SectionId = Model.PMSConstants.SECTION_ID_CORE_VALUES });

                    int flag = CheckStageDate(stages[1], stages[2], stages[3]);
                    switch (flag)
                    {
                        case 1:
                            foreach (Model.DTO.Cycle.Stage obj_cycle_stage in stages)
                            {

                                Model.DTO.Appraisal.Stage obj_appraisal_stage = new Model.DTO.Appraisal.Stage()
                                {
                                    StageId = obj_cycle_stage.StageId,
                                    StartDate = obj_cycle_stage.StartDate,
                                    EndDate = obj_cycle_stage.EndDate,
                                    SubmissionDeadline = obj_cycle_stage.SubmissionDeadline,
                                    Level1ApprovalDeadline = obj_cycle_stage.Level1ApprovalDeadline,
                                    Level2ApprovalDeadline = obj_cycle_stage.Level2ApprovalDeadline
                                };
                                obj_appraisal.AddAppraisalStage(obj_appraisal_stage);
                            }
                            break;
                        case 2:
                        case 3:
                            foreach (Model.DTO.Cycle.Stage obj_cycle_stage in stages.Where(sec=>sec.StageId>eHR.PMS.Model.PMSConstants.STAGE_ID_PRE_CYCLE))
                            {

                                Model.DTO.Appraisal.Stage obj_appraisal_stage = new Model.DTO.Appraisal.Stage()
                                {
                                    StageId = obj_cycle_stage.StageId,
                                    StartDate = obj_cycle_stage.StartDate,
                                    EndDate = obj_cycle_stage.EndDate,
                                    SubmissionDeadline = obj_cycle_stage.SubmissionDeadline,
                                    Level1ApprovalDeadline = obj_cycle_stage.Level1ApprovalDeadline,
                                    Level2ApprovalDeadline = obj_cycle_stage.Level2ApprovalDeadline
                                };
                                obj_appraisal.AddAppraisalStage(obj_appraisal_stage);
                            }
                            break;
                        case 4:
                        case 5:
                        case 6:
                        case 7:
                            foreach (Model.DTO.Cycle.Stage obj_cycle_stage in stages.Where(sec => (sec.StageId == eHR.PMS.Model.PMSConstants.STAGE_ID_GOAL_SETTING || sec.Id == eHR.PMS.Model.PMSConstants.STAGE_ID_FINAL_YEAR)))
                            {

                                Model.DTO.Appraisal.Stage obj_appraisal_stage = new Model.DTO.Appraisal.Stage()
                                {
                                    StageId = obj_cycle_stage.StageId,
                                    StartDate = obj_cycle_stage.StartDate,
                                    EndDate = obj_cycle_stage.EndDate,
                                    SubmissionDeadline = obj_cycle_stage.SubmissionDeadline,
                                    Level1ApprovalDeadline = obj_cycle_stage.Level1ApprovalDeadline,
                                    Level2ApprovalDeadline = obj_cycle_stage.Level2ApprovalDeadline
                                };
                                obj_appraisal.AddAppraisalStage(obj_appraisal_stage);
                            }
                            break;
                        default:
                            break;
                    }

                    if (obj_participant.Level1Approver != null) { obj_appraisal.AddApprover(Model.Mappers.PMSMapper.MapEmployeeDTOToApproverDTO(obj_participant.Level1Approver, 1)); }
                    if (obj_participant.Level2Approver != null) { obj_appraisal.AddApprover(Model.Mappers.PMSMapper.MapEmployeeDTOToApproverDTO(obj_participant.Level2Approver, 2)); }

                    if (obj_participant.SMPEmploeeId != null && obj_participant.SMPEmploeeId > 0)
                    {
                        Model.DTO.Appraisal.Reviewer obj_reviewer = new Model.DTO.Appraisal.Reviewer()
                        {
                            EmployeeId = obj_participant.SMPEmploeeId,
                            Appraisal = obj_appraisal,
                            SMT = true
                        };
                        obj_appraisal.AddReviewer(obj_reviewer);
                    }

                    Model.DTO.Appraisal.Trail obj_trail = new Model.DTO.Appraisal.Trail()
                    {
                        Appraisal = obj_appraisal,
                        Stage = new Model.DTO.Master.Stage() { Id = PMS.Model.PMSConstants.STAGE_ID_PRE_CYCLE },
                        Action = new Model.DTO.Master.Action() { Id = PMS.Model.PMSConstants.ACTION_ID_APPRAISAL_CREATED },
                        ActionTimestamp = DateTime.Now,
                        Actioner = Model.Mappers.CoreMapper.MapUserDTOToEmployeeDTO(user)
                    };
                    obj_appraisal.AddTrail(obj_trail);

                    lst_appraisals.Add(obj_appraisal);
                }
            }
            return lst_appraisals;
        }
Esempio n. 6
0
        public static List<Model.DTO.Appraisal.Appraisal> CreateAppraisalsForNewCycle(List<Model.DTO.Core.Employee> participants, List<Model.DTO.Cycle.Stage> stages, Model.DTO.Core.Security.User user)
        {
            List<Model.DTO.Appraisal.Appraisal> lst_appraisals = null;
            if (!Lib.Utility.Common.IsNullOrEmptyList(participants))
            {
                lst_appraisals = new List<Model.DTO.Appraisal.Appraisal>();
                foreach (Model.DTO.Core.Employee obj_participant in participants)
                {
                    Model.DTO.Appraisal.Appraisal obj_appraisal = new Model.DTO.Appraisal.Appraisal()
                    {
                        Stage = new Model.DTO.Master.Stage() { Id = Model.PMSConstants.STAGE_ID_PRE_CYCLE },
                        Status = new Model.DTO.Master.Status() { Id = Model.PMSConstants.STATUS_ID_NEW },
                        Employee = obj_participant,
                        Department = Model.Mappers.CoreMapper.MapDepartmentDTOToMasterDepartmentDTO(obj_participant.Department),
                        Locked = true
                    };

                    obj_appraisal.AddAppraisalSection(new Model.DTO.Appraisal.Section() { SectionId = Model.PMSConstants.SECTION_ID_KPI });
                    obj_appraisal.AddAppraisalSection(new Model.DTO.Appraisal.Section() { SectionId = Model.PMSConstants.SECTION_ID_CORE_VALUES });

                    foreach (Model.DTO.Cycle.Stage obj_cycle_stage in stages)
                    {
                        Model.DTO.Appraisal.Stage obj_appraisal_stage = new Model.DTO.Appraisal.Stage()
                        {
                            StageId = obj_cycle_stage.StageId,
                            StartDate = obj_cycle_stage.StartDate,
                            EndDate = obj_cycle_stage.EndDate,
                            SubmissionDeadline = obj_cycle_stage.SubmissionDeadline,
                            Level1ApprovalDeadline = obj_cycle_stage.Level1ApprovalDeadline,
                            Level2ApprovalDeadline = obj_cycle_stage.Level2ApprovalDeadline
                        };
                        obj_appraisal.AddAppraisalStage(obj_appraisal_stage);
                    }

                    if (obj_participant.Level1Approver != null) { obj_appraisal.AddApprover(Model.Mappers.PMSMapper.MapEmployeeDTOToApproverDTO(obj_participant.Level1Approver, 1)); }
                    if (obj_participant.Level2Approver != null) { obj_appraisal.AddApprover(Model.Mappers.PMSMapper.MapEmployeeDTOToApproverDTO(obj_participant.Level2Approver, 2)); }

                    Model.DTO.Appraisal.Trail obj_trail = new Model.DTO.Appraisal.Trail()
                    {
                        Appraisal = obj_appraisal,
                        Stage = new Model.DTO.Master.Stage() { Id = PMS.Model.PMSConstants.STAGE_ID_PRE_CYCLE },
                        Action = new Model.DTO.Master.Action() { Id = PMS.Model.PMSConstants.ACTION_ID_APPRAISAL_CREATED },
                        ActionTimestamp = DateTime.Now,
                        Actioner = Model.Mappers.CoreMapper.MapUserDTOToEmployeeDTO(user)
                    };
                    obj_appraisal.AddTrail(obj_trail);

                    if (obj_participant.SMPEmploeeId != null && obj_participant.SMPEmploeeId > 0)
                    {
                        Model.DTO.Appraisal.Reviewer obj_reviewer = new Model.DTO.Appraisal.Reviewer()
                        {
                            EmployeeId = obj_participant.SMPEmploeeId,
                            Appraisal = obj_appraisal,
                            SMT = true
                        };
                        obj_appraisal.AddReviewer(obj_reviewer);
                    }

                    lst_appraisals.Add(obj_appraisal);
                }
            }
            return lst_appraisals;
        }
Esempio n. 7
0
        public static bool ManageChangeSMTMember(Model.DTO.Appraisal.Appraisal appraisal, Model.DTO.Appraisal.Reviewer smtMember, out string message)
        {
            message = string.Empty;
            bool result = false;
            Model.DTO.Appraisal.Reviewer oldMember=new Model.DTO.Appraisal.Reviewer();
            result=Model.PMSModel.UpdateSMTMember(appraisal,smtMember,out message,out oldMember);
            // no sending of email notification if it is SMT change
            //if (result)
            //{
            //    List<System.Net.Mail.MailMessage> lst_email_messages=new List<System.Net.Mail.MailMessage>();
            //    if(smtMember.EmployeeId!=oldMember.EmployeeId && smtMember.OfficeEmailAddress!=null && IsValidEmail(smtMember.OfficeEmailAddress))
            //        lst_email_messages.Add(GenerateEmailMessageForChangeSMTPerson(appraisal, smtMember, oldMember));
            //    SendEmailNotification(lst_email_messages);
            //}

            return result;
        }