public PensionRequest CalculatePensionFormula(int userStaffId, SuccessFactor successFactorData) { PensionRequest pension = new PensionRequest(); pension.isEligible = true; pension.isEnrolled = true; if (this.IsWithdraw(userStaffId)) { pension.isEligible = false; return(pension); } pension.VestingPercent = GetVestingPercent(successFactorData.Band, successFactorData.Tenure); if (pension.VestingPercent == -1) { pension.isEligible = false; pension.isEnrolled = false; pension.NumberOfMonthsToEnroll = GetNumberOfMonthsToEnroll(successFactorData.Tenure); return(pension); } pension = FillPensionObject(userStaffId, successFactorData, pension); return(pension); }
//public void CreatePDR(ApplicationUser user, UserType userType, DateTime reviewPeriod) //{ // //Create PDR // PDReview pdr = new PDReview(); // { // pdr.UserTypeId = userType.ID; // pdr.ApplicationUserId = user.Id; // pdr.ReviewPeriod = reviewPeriod; // pdr.MidYearStatus = 1; // pdr.FullYearStatus = 1; // pdr.LockedAt = DateTime.Now; // pdr.LockedBy = user.Email; // } // _PDRReviewRepository.Add(pdr); // SavePDR(); // if (pdr != null) // { // // Create Objective // var objectivesTypes = _ObjectiveTyperepository.GetAll().Where(x => x.UserTypeId == userType.ID); // foreach (var objectiveType in objectivesTypes) // { // var objective = new Objective(); // objective.ObjectiveTypeId = objectiveType.ID; // objective.PDReviewId = pdr.ID; // _ObjectiveRepository.Add(objective); // } // var successFactorTypes = _SuccessFactorTypeRepository.GetAll().Where(x => x.UserTypeId == userType.ID); // foreach (var successFactorType in successFactorTypes) // { // var successFactor = new SuccessFactor(); // successFactor.SuccessFactorTypeId = successFactorType.ID; // successFactor.PDReviewId = pdr.ID; // _SuccessFactorRepository.Add(successFactor); // } // SavePDR(); // } //} public void CreatePDR(ApplicationUser user, ApplicationUser reviewUser, DateTime?reviewPeriod = null) { var rPeriod = reviewPeriod.HasValue ? reviewPeriod.Value : GenerateNextAvailableReviewPeriod(reviewUser); if (!IsThisPDRAllReadyExist(reviewUser, rPeriod)) { //Create PDR PDReview pdr = new PDReview(); { pdr.UserTypeId = reviewUser.UserTypeId; pdr.ApplicationUserId = user.Id; pdr.ReviewPeriod = rPeriod; pdr.MidYearStatus = 1; pdr.FullYearStatus = 1; pdr.ReviewerEmailId = reviewUser.UserName; pdr.ReviewerUserId = reviewUser.Id; } _PDRReviewRepository.Add(pdr); SavePDR(); if (pdr != null) { // Create Objective var objectivesTypes = _ObjectiveTyperepository.GetAll().Where(x => x.UserTypeId == reviewUser.UserTypeId); foreach (var objectiveType in objectivesTypes) { var objective = new Objective(); objective.ObjectiveTypeId = objectiveType.ID; objective.PDReviewId = pdr.ID; _ObjectiveRepository.Add(objective); } var successFactorTypes = _SuccessFactorTypeRepository.GetAll().Where(x => x.UserTypeId == reviewUser.UserTypeId); foreach (var successFactorType in successFactorTypes) { var successFactor = new SuccessFactor(); successFactor.SuccessFactorTypeId = successFactorType.ID; successFactor.PDReviewId = pdr.ID; _SuccessFactorRepository.Add(successFactor); } var develpmentCategories = _IDevelopmentCategoryRepository.GetAll().Where(x => x.UserTypeId == reviewUser.UserTypeId); foreach (var develpmentCategory in develpmentCategories) { var pdPlan = new PersonalDevelopmentPlan(); pdPlan.PDReviewId = pdr.ID; _IPersonalDevelopmentPlanRepository.Add(pdPlan); } SavePDR(); } } }
public PensionRequest FillPensionObject(int userStaffId, SuccessFactor successFactorData, PensionRequest pension) { // pension.Id = userStaffId; // PensionRequest pension = new PensionRequest(); MetlifeData metlifeData = metlifeDataRepository.GetMetlifeDataForUser(userStaffId); // metlife data pension.BeginingBalance = metlifeData.OldBalance; pension.CurrentyearContribution = metlifeData.Contribution; //change the logic from constants to dynamic data // pension.CurrentAvailableBalance = metlifeData.NewBalance; pension.CurrentAvailableBalance = CalculateCurrentAvailableBalance(metlifeData.Contribution, metlifeData.OldBalance, metlifeData.Income, metlifeData.Withdrawals); pension.WithdrawalAmmount = metlifeData.Withdrawals; pension.LastRoundWithdrawal = metlifeData.Withdrawals; pension.Income = metlifeData.Income; /// /// calculated data pension.VestedBalance = ((pension.VestingPercent * pension.CurrentAvailableBalance) / 100); pension.MaxWithdrawalAmount = ((pension.VestedBalance * 65) / 100); //change the logic from constants to dynamic data // pension.ProratedNewContribution = ((pension.CurrentyearContribution / 12) * 8); pension.ProratedNewContribution = CalculateProratedContribution(metlifeData.Contribution); //// // success factor data pension.StaffId = successFactorData.StaffId; pension.Name = successFactorData.Name; pension.Band = successFactorData.Band; pension.CostCenter = successFactorData.CostCenter; pension.Tenure = successFactorData.Tenure; //var x = (DateTime.Now - successFactorData.HiringDate); //pension.Tenure = x.Days / 365; pension.SubBand = successFactorData.SubBand; pension.HiringDate = successFactorData.HiringDate; //// // dummy data related to the request pension.RequestedById = 1; pension.RequestedOn = DateTime.Now; pension.isActive = true; pension.isApproved = false; pension.ApprovedOn = DateTime.Now; pension.RejectedOn = DateTime.Now; return(pension); }
public IEnumerable <ValidationResult> CanSaveSuccessFactor(SuccessFactor successFactor) { yield return(new ValidationResult("SelectedObjectiveOverallRatingId", "Make sure mid year rating is complete/save before saving overall objective.")); }
public void UpdateSuccessFactor(SuccessFactor successFactor) { _SuccessFactorRepository.Update(successFactor); SavePDR(); }