public void GivenTheFollowingPaymentsHaveBeenMadeToTheProviderAForLearnerA(string providerName, string learnerRefererenceNumber, Table table) { var context = new EarningsAndPaymentsContext(); TransactionTypeTableParser.ParseTransactionTypeTableIntoContext(context, providerName, table); var learningDetails = SubmissionContext.HistoricalLearningDetails.Where(x => x.LearnerReference.Equals(learnerRefererenceNumber, StringComparison.InvariantCultureIgnoreCase)).Single(); long learnerUln; if (!string.IsNullOrEmpty(learningDetails.Uln)) { learnerUln = long.Parse(learningDetails.Uln); LookupContext.AddUln(learnerRefererenceNumber, learnerUln); } else { learnerUln = LookupContext.AddOrGetUln(learnerRefererenceNumber); } var provider = LookupContext.AddOrGetUkprn(providerName); var commitment = CommitmentsContext.Commitments.FirstOrDefault(x => x.ProviderId == providerName && x.LearnerId == learnerRefererenceNumber); CreatePayment(context.ProviderEarnedForOnProgramme, provider, learnerUln, learnerRefererenceNumber, commitment, learningDetails, TransactionType.OnProgram, commitment == null ? FundingSource.CoInvestedSfa : FundingSource.Levy); CreatePayment(context.ProviderEarnedForLearningSupport, provider, learnerUln, learnerRefererenceNumber, commitment, learningDetails, TransactionType.LearningSupport, FundingSource.FullyFundedSfa); CreatePayment(context.ProviderEarnedForFrameworkUpliftOnProgramme, provider, learnerUln, learnerRefererenceNumber, commitment, learningDetails, TransactionType.OnProgramme16To18FrameworkUplift, FundingSource.FullyFundedSfa); }
public void ThenTheTransactionTypesForNamedProviderEarningsAre(string providerIdSuffix, Table transactionTypes) { if (!SubmissionContext.HaveSubmissionsBeenDone) { SubmissionContext.SubmissionResults = SubmissionManager.SubmitIlrAndRunMonthEndAndCollateResults(SubmissionContext.IlrLearnerDetails, SubmissionContext.FirstSubmissionDate, LookupContext, EmployerAccountContext.EmployerAccounts, SubmissionContext.ContractTypes, SubmissionContext.EmploymentStatus, SubmissionContext.LearningSupportStatus); SubmissionContext.HaveSubmissionsBeenDone = true; } TransactionTypeTableParser.ParseTransactionTypeTableIntoContext(EarningsAndPaymentsContext, $"provider {providerIdSuffix}", transactionTypes); AssertResults(); }
public void GivenTheFollowingPaymentsWillBeAddedForReversal(Table table) { var context = new EarningsAndPaymentsContext(); TransactionTypeTableParser.ParseTransactionTypeTableIntoContext(context, "", table); foreach (var row in context.ProviderEarnedForOnProgramme) { var month = Int32.Parse(row.PeriodName.Split('/')[0]); var year = Int32.Parse($"20" + row.PeriodName.Split('/')[1]); PaymentsManager.AddRequiredPaymentForReversal(month, year, row.Value, TransactionType.OnProgram); } }