public bool PriceEpisodeFilter(PriceEpisodeValues priceEpisodeValues, int aimSeqNumber) { if (priceEpisodeValues == null) { return(false); } return(priceEpisodeValues.PriceEpisodeAimSeqNumber == aimSeqNumber && _academicYearService.YearStart <= priceEpisodeValues.EpisodeStartDate && _academicYearService.YearEnd >= priceEpisodeValues.EpisodeStartDate); }
private static bool IsCurrentAcademicYear(PriceEpisodeValues priceEpisodeValues, short currentAcademicYear) { var calendarYear = currentAcademicYear / 100 + 2000; var yearStartDate = new DateTime(calendarYear, 8, 1); var yearEndDate = yearStartDate.AddYears(1); var episodeStartDate = priceEpisodeValues.EpisodeStartDate; return(episodeStartDate.HasValue && episodeStartDate.Value >= yearStartDate && episodeStartDate.Value < yearEndDate); }
public string GetFundingType( LearningDeliveryValues learningDeliveryValues, PriceEpisodeValues priceEpisodeValues) { if (learningDeliveryValues != null && learningDeliveryValues.LearnDelMathEng.GetValueOrDefault(false)) { return(learningDeliveryValues.LearnDelInitialFundLineType); } if (priceEpisodeValues != null) { return(priceEpisodeValues.PriceEpisodeFundLineType); } return(string.Empty); }
public ApprenticeshipBuilder WithApprenticeshipPriceEpisode(PriceEpisodeValues fm36PriceEpisodeValues) { if (apprenticeship == null) { apprenticeship = new ApprenticeshipModel(); } if (apprenticeship.ApprenticeshipPriceEpisodes == null) { apprenticeship.ApprenticeshipPriceEpisodes = new List <ApprenticeshipPriceEpisodeModel>(); } apprenticeship.ApprenticeshipPriceEpisodes.Add(new ApprenticeshipPriceEpisodeModel { ApprenticeshipId = apprenticeship.Id, Cost = fm36PriceEpisodeValues.PriceEpisodeTotalTNPPrice.GetValueOrDefault(), StartDate = new DateTime(2019, 08, 01), EndDate = new DateTime(2020, 07, 31) }); return(this); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var actLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); actLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ACT"); actLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMCode).Returns("1"); var albLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); albLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ALB"); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { actLearningDeliveryFam.Object, albLearningDeliveryFam.Object, }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var learningDelivery = new TestLearningDelivery() { FundModel = 36, LearnAimRef = "learnAimRef", AimSeqNumber = 1, LearningDeliveryFAMs = learningDeliveryFams, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings, StdCodeNullable = 1 }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef", LearnAimRefTitle = "A", NotionalNVQLevel = "B", SectorSubjectAreaTier2 = 3 }; var larsStandard = new LARSStandard() { StandardCode = 1, NotionalEndLevel = "NotionalEndLevel" }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery }, LARSStandards = new List <LARSStandard>() { larsStandard } }; var priceEpisodeValues = new PriceEpisodeValues() { EpisodeStartDate = new DateTime(2020, 08, 08), PriceEpisodeAimSeqNumber = 1 }; var priceEpisodes = new PriceEpisode() { PriceEpisodeValues = priceEpisodeValues, PriceEpisodePeriodisedValues = new List <PriceEpisodePeriodisedValues>() { BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeOnProgPaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm3PriceEpisodeBalancePaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeCompletionPaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeLSFCashAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeFirstDisadvantagePaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeSecondDisadvantagePaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeFirstEmp1618PayAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeSecondEmp1618PayAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeFirstProv1618PayAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeSecondProv1618PayAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeLearnerAdditionalPaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeApplic1618FrameworkUpliftOnProgPaymentAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeApplic1618FrameworkUpliftBalancingAttributeName), BuildPriceEpisodePeriodisedValuesForAttribute(AttributeConstants.Fm36PriceEpisodeApplic1618FrameworkUpliftCompletionPaymentAttributeName), } }; var learningDeliveryValues = new LearningDeliveryValues(); var appsLearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValues = learningDeliveryValues, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValues>() { BuildLearningDeliveryPeriodisedValuesForAttribute(AttributeConstants.Fm36MathEngOnProgPayment), BuildLearningDeliveryPeriodisedValuesForAttribute(AttributeConstants.Fm36MathEngBalPayment), BuildLearningDeliveryPeriodisedValuesForAttribute(AttributeConstants.Fm36LearnSuppFundCash) } }; var fm36Global = new FM36Global() { Learners = new List <FM36Learner>() { new FM36Learner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { appsLearningDelivery, }, PriceEpisodes = new List <PriceEpisode>() { priceEpisodes } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM36Global>()).Returns(fm36Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel(); var ilrModelMapperMock = new Mock <IIlrModelMapper>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm36LearningDelivery.Should().Be(learningDeliveryValues); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); row.PeriodisedValues.August.AdditionalPaymentsForApprentices.Should().Be((decimal)1.111); row.PeriodisedValues.August.AimCompletionEarnings.Should().Be((decimal)1.111); row.PeriodisedValues.August.BalancingPaymentEarnings.Should().Be((decimal)1.111); row.PeriodisedValues.August.EnglishMathsBalancingPaymentEarnings.Should().Be((decimal)1.111); row.PeriodisedValues.August.EnglishMathsOnProgrammeEarnings.Should().Be((decimal)1.111); row.PeriodisedValues.August.FrameworkUpliftBalancingPayment1618.Should().Be((decimal)1.111); row.PeriodisedValues.August.FrameworkUpliftCompletionPayment1618.Should().Be((decimal)1.111); row.PeriodisedValues.August.FrameworkUpliftOnProgrammePayment1618.Should().Be((decimal)1.111); row.PeriodisedValues.August.LearningSupportEarnings.Should().Be((decimal)1.111); row.PeriodisedValues.August.OnProgrammeEarnings.Should().Be((decimal)1.111); row.PeriodisedValues.August.DisadvantageEarnings.Should().Be((decimal)2.222); row.PeriodisedValues.May.DisadvantageEarnings.Should().Be((decimal)20.2020); row.PeriodisedValues.August.AdditionalPaymentForEmployers1618.Should().Be((decimal)2.222); row.PeriodisedValues.May.AdditionalPaymentForEmployers1618.Should().Be((decimal)20.2020); row.PeriodisedValues.August.AdditionalPaymentForProviders1618.Should().Be((decimal)2.222); row.PeriodisedValues.May.AdditionalPaymentForProviders1618.Should().Be((decimal)20.2020); //var csvService = new CsvService(new FileServiceStub()); //csvService.WriteAsync<AppsIndicativeEarningsReportModel, AppsIndicativeEarningsReportClassMap>(result, "AppsIndicativeEarningsReport.csv", "", CancellationToken.None).ConfigureAwait(false); }