public void WhenMonthlyPaymentProcessRunsForTheFollowingIlrData(Table table) { // Setup reference data var environmentVariables = EnvironmentVariablesFactory.GetEnvironmentVariables(); SetupContexLearners(table); var provider = StepDefinitionsContext.GetDefaultProvider(); provider.Ukprn = long.Parse(table.Rows[0]["UKPRN"]); var learner = provider.Learners[0]; var startDate = StepDefinitionsContext.GetIlrStartDate().NextCensusDate(); SetupValidLearnersData(provider.Ukprn, learner); var dueAmount = learner.LearningDelivery.PriceEpisodes[0].TotalPrice * 0.8m / 12; EarningsDataHelper.SavePeriodisedValuesForUkprn(provider.Ukprn, learner.LearnRefNumber, new Dictionary <int, decimal> { { 1, dueAmount } }, learner.LearningDelivery.PriceEpisodes[0].Id, environmentVariables); //Run the month end RunMonthEnd(startDate); }
public void GivenProviderHasPreviouslyEarnedInPeriod(decimal previousAmount) { var environmentVariables = EnvironmentVariablesFactory.GetEnvironmentVariables(); StepDefinitionsContext.SetDefaultProvider(); var provider = StepDefinitionsContext.GetDefaultProvider(); var learner = StepDefinitionsContext.CreateLearner(15000, new DateTime(2017, 08, 01), new DateTime(2018, 07, 01)); SetupEarningsData(provider, learner); var committment = StepDefinitionsContext.ReferenceDataContext.Commitments.First(); var account = StepDefinitionsContext.ReferenceDataContext.Employers.First(x => x.Name == committment.Employer); //Save the previous earning EarningsDataHelper.SaveEarnedAmount( provider.Ukprn, committment.Id, account.AccountId, learner, "1617-R01", 08, 2017, 1, previousAmount, environmentVariables); }
protected void SetupValidLearnersData(long ukprn, Learner learner) { learner.LearningDelivery.PriceEpisodes[0].Tnp1 = learner.LearningDelivery.StandardCode > 0 ? learner.LearningDelivery.PriceEpisodes[0].TotalPrice * 0.8m : learner.LearningDelivery.PriceEpisodes[0].TotalPrice; if (learner.LearningDelivery.StandardCode > 0) { learner.LearningDelivery.PriceEpisodes[0].Tnp2 = learner.LearningDelivery.PriceEpisodes[0].TotalPrice * 0.2m; } //Save File Details LearnerDataHelper.SaveFileDetails(ukprn, EnvironmentVariables); //Save Learning Provider LearnerDataHelper.SaveLearningProvider(ukprn, EnvironmentVariables); //Save the Learner LearnerDataHelper.SaveLearner(ukprn, learner.Uln, learner.LearnRefNumber, EnvironmentVariables); //save Learner delivery LearnerDataHelper.SaveLearningDelivery(ukprn, learner.LearnRefNumber, learner.LearningDelivery, EnvironmentVariables); //save learning delivery FAM LearnerDataHelper.SaveLearningDeliveryFAM(ukprn, learner.LearnRefNumber, learner.LearningDelivery.StartDate, learner.LearningDelivery.PlannedEndDate, EnvironmentVariables); LearnerDataHelper.SaveTrailblazerApprenticeshipFinancialRecord(ukprn, 1, learner.LearnRefNumber, learner.LearningDelivery.PriceEpisodes[0].Tnp1.Value, EnvironmentVariables); //save Trailblazer if (learner.LearningDelivery.PriceEpisodes[0].Tnp2.HasValue) { LearnerDataHelper.SaveTrailblazerApprenticeshipFinancialRecord(ukprn, 2, learner.LearnRefNumber, learner.LearningDelivery.PriceEpisodes[0].Tnp2.Value, EnvironmentVariables); } var months = ((learner.LearningDelivery.PlannedEndDate.Year - learner.LearningDelivery.StartDate.Year) * 12) + learner.LearningDelivery.PlannedEndDate.Month - learner.LearningDelivery.StartDate.Month; learner.LearningDelivery.PriceEpisodes[0].MonthlyPayment = learner.LearningDelivery.PriceEpisodes[0].TotalPrice * 0.8m / months; learner.LearningDelivery.PriceEpisodes[0].CompletionPayment = learner.LearningDelivery.PriceEpisodes[0].TotalPrice * 0.2m; //- ((learner.LearningDelivery.PriceEpisodes[0].TotalPrice * 0.8m) / months); //save the learning deliver values EarningsDataHelper.SaveLearningDeliveryValuesForUkprn(ukprn, learner.LearnRefNumber, learner.LearningDelivery, EnvironmentVariables); }
public void ThenTheBalancingPaymentIs(decimal balancingPayment) { var environmentVariables = EnvironmentVariablesFactory.GetEnvironmentVariables(); var learner = StepDefinitionsContext.GetDefaultProvider().Learners.First(); var endDate = learner.LearningDelivery.ActualEndDate ?? learner.LearningDelivery.PlannedEndDate; var periodNumber = endDate.GetPeriodNumber(); var output = EarningsDataHelper.GetBalancingPaymentForUkprn(StepDefinitionsContext.GetDefaultProvider().Ukprn, $"Period_{periodNumber}", environmentVariables); Assert.IsNotNull(output, $"Expected balancing payment value but nothing found"); Assert.AreEqual(balancingPayment, output, $"Expected balancing payment of {balancingPayment} but found {output}"); }
public void WhenAPaymentIsDue(decimal dueAmount) { // Setup reference data var environmentVariables = EnvironmentVariablesFactory.GetEnvironmentVariables(); var provider = StepDefinitionsContext.GetDefaultProvider(); var learner = provider.Learners[0]; //save the periodiosed values EarningsDataHelper.SavePeriodisedValuesForUkprn(StepDefinitionsContext.GetDefaultProvider().Ukprn, learner.LearnRefNumber, new Dictionary <int, decimal> { { 1, dueAmount } }, learner.LearningDelivery.PriceEpisodes[0].Id, environmentVariables); RunMonthEnd(new DateTime(2017, 09, 01)); }
protected void SubmitIlr(Provider provider, string academicYear, DateTime date, ProcessService processService) { var submissionLearners = provider.Learners.Select(l => { var learner = new Learner { Name = l.Name, Uln = l.Uln, LearnRefNumber = l.LearnRefNumber, DateOfBirth = l.DateOfBirth, EmploymentStatuses = l.EmploymentStatuses }; foreach (var ld in l.LearningDeliveries) { learner.LearningDeliveries.Add( new LearningDelivery { LearningDeliveryFams = ld.LearningDeliveryFams, LearnerType = ld.LearnerType, StartDate = ld.StartDate, PlannedEndDate = ld.PlannedEndDate, ActualEndDate = date >= ld.ActualEndDate ? ld.ActualEndDate : null, CompletionStatus = ld.CompletionStatus, StandardCode = ld.StandardCode, FrameworkCode = ld.FrameworkCode, PathwayCode = ld.PathwayCode, ProgrammeType = ld.ProgrammeType, PriceEpisodes = ld.PriceEpisodes, Type = ld.Type }); } return(learner); }).ToArray(); IlrSubmission submission = IlrBuilder.CreateAIlrSubmission() .WithUkprn(provider.Ukprn) .WithMultipleLearners() .WithLearners(submissionLearners); AcceptanceTestDataHelper.AddCurrentActivePeriod(date.Year, date.Month, EnvironmentVariables); var ilrStatusWatcher = new TestStatusWatcher(EnvironmentVariables, $"Submit ILR to {date:dd/MM/yy}"); processService.RunIlrSubmission(submission, EnvironmentVariables, ilrStatusWatcher); var periodEarnings = EarningsDataHelper.GetPeriodisedValuesForUkprnSummary(provider.Ukprn, EnvironmentVariables).LastOrDefault() ?? new PeriodisedValuesEntity(); PopulateEarnedByPeriodValues(academicYear, provider.EarnedByPeriod, periodEarnings); //populate by Uln values var periodEarningsByUln = EarningsDataHelper.GetPeriodisedValuesForUkprn(provider.Ukprn, EnvironmentVariables); PopulateEarnedByPeriodByUln(academicYear, provider.EarnedByPeriodByUln, periodEarningsByUln); var dataLockMatches = DataLockDataHelper.GetDataLockMatchesForUkprn(provider.Ukprn, EnvironmentVariables) ?? new DataLockMatch[0]; provider.DataLockMatchesByPeriod.Add(date.GetPeriod(), dataLockMatches); }