public static List <EarningPeriod> CreateIncentiveEarningPeriods(this PriceEpisodePeriodisedValues values, string priceEpisodeIdentifier)
        {
            var result = new List <EarningPeriod>();

            result.AddPeriodValue(values.Period1, 1, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period2, 2, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period3, 3, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period4, 4, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period5, 5, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period6, 6, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period7, 7, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period8, 8, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period9, 9, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period10, 10, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period11, 11, priceEpisodeIdentifier, 1);
            result.AddPeriodValue(values.Period12, 12, priceEpisodeIdentifier, 1);
            return(result);
        }
        public decimal TotalRecords(PriceEpisodePeriodisedValues priceEpisodePeriodisedValues)
        {
            if (priceEpisodePeriodisedValues == null)
            {
                return(0);
            }

            return(TotalRecords(
                       priceEpisodePeriodisedValues.Period1,
                       priceEpisodePeriodisedValues.Period2,
                       priceEpisodePeriodisedValues.Period3,
                       priceEpisodePeriodisedValues.Period4,
                       priceEpisodePeriodisedValues.Period5,
                       priceEpisodePeriodisedValues.Period6,
                       priceEpisodePeriodisedValues.Period7,
                       priceEpisodePeriodisedValues.Period8,
                       priceEpisodePeriodisedValues.Period9,
                       priceEpisodePeriodisedValues.Period10,
                       priceEpisodePeriodisedValues.Period11,
                       priceEpisodePeriodisedValues.Period12));
        }
Example #3
0
 public static void SetValue(this PriceEpisodePeriodisedValues values, int period, decimal?value)
 {
     GetPropertyInfo(period).SetValue(values, value);
 }
Example #4
0
 public static decimal?GetValue(this PriceEpisodePeriodisedValues values, int period)
 {
     return((decimal?)GetPropertyInfo(period).GetValue(values));
 }
        private void SetPeriodValue(int period, PriceEpisodePeriodisedValues periodisedValues, decimal amount)
        {
            var periodProperty = periodisedValues.GetType().GetProperty("Period" + period);

            periodProperty?.SetValue(periodisedValues, amount);
        }
        protected FM36Learner CreateFM36Learner(TestSession session, Learner testLearner, DateTime startDate)
        {
            var learner = new FM36Learner {
                LearnRefNumber = testLearner.LearnRefNumber, ULN = testLearner.Uln
            };
            var priceEpisode = new ESFA.DC.ILR.FundingService.FM36.FundingOutput.Model.Output.PriceEpisode
            {
                PriceEpisodeIdentifier = "pe-1",
                PriceEpisodeValues     = new PriceEpisodeValues
                {
                    EpisodeStartDate              = startDate,
                    EpisodeEffectiveTNPStartDate  = startDate,
                    PriceEpisodeCompletionElement = 3000,
                    PriceEpisodeCompleted         = false,
                    PriceEpisodeTotalTNPPrice     = 15000,
                    TNP1 = 9000,
                    TNP2 = 6000,
                    PriceEpisodeInstalmentValue    = 1000,
                    PriceEpisodePlannedInstalments = 12,
                    PriceEpisodeActualInstalments  = null,
                    PriceEpisodeBalancePayment     = 0,
                    PriceEpisodeFundLineType       = testLearner.Course.FundingLineType,
                    PriceEpisodeBalanceValue       = 0,
                    PriceEpisodeCompletionPayment  = 3000,
                    PriceEpisodeContractType       = testLearner.IsLevyLearner ? "Levy Contract" : "Non-Levy Contract",
                    PriceEpisodeOnProgPayment      = 1000,
                    PriceEpisodePlannedEndDate     = startDate.AddMonths(12),
                    PriceEpisodeAimSeqNumber       = 1,
                    PriceEpisodeCumulativePMRs     = int.MaxValue
                },
                PriceEpisodePeriodisedValues = new List <PriceEpisodePeriodisedValues>()
            };

            var learningValues = new PriceEpisodePeriodisedValues
            {
                AttributeName = "PriceEpisodeOnProgPayment",
            };

            Enumerable.Range(1, 12).ToList().ForEach(i => SetPeriodValue(i, learningValues, 1000));
            var completionEarnings = new PriceEpisodePeriodisedValues
            {
                AttributeName = "PriceEpisodeCompletionPayment",
            };

            SetPeriodValue(12, completionEarnings, 3000);
            var balancingEarnings = new PriceEpisodePeriodisedValues
            {
                AttributeName = "PriceEpisodeBalancePayment",
            };

            var sfaContributionValues = new PriceEpisodePeriodisedValues
            {
                AttributeName = "PriceEpisodeSFAContribPct"
            };

            Enumerable.Range(1, 12).ToList().ForEach(i => SetPeriodValue(i, sfaContributionValues, .9M));

            learner.PriceEpisodes = new List <PriceEpisode>(new[] { priceEpisode });
            priceEpisode.PriceEpisodePeriodisedValues.Add(learningValues);
            priceEpisode.PriceEpisodePeriodisedValues.Add(completionEarnings);
            priceEpisode.PriceEpisodePeriodisedValues.Add(balancingEarnings);
            priceEpisode.PriceEpisodePeriodisedValues.Add(sfaContributionValues);

            learner.LearningDeliveries = new List <LearningDelivery>(new[]
            {
                new LearningDelivery
                {
                    AimSeqNumber           = 1,
                    LearningDeliveryValues = new LearningDeliveryValues
                    {
                        LearnStartDate = startDate,
                        LearnDelInitialFundLineType = testLearner.Course.FundingLineType,
                        PwayCode    = testLearner.Course.PathwayCode,
                        FworkCode   = testLearner.Course.FrameworkCode,
                        ProgType    = testLearner.Course.ProgrammeType,
                        StdCode     = testLearner.Course.StandardCode,
                        LearnAimRef = testLearner.Course.LearnAimRef,
                    }
                }
            });
            return(learner);
        }
Example #7
0
 public AEC_ApprenticeshipPriceEpisode_PeriodisedValue BuildPriceEpisodePeriodisedValue(PriceEpisodePeriodisedValues priceEpisodePeriodisedValue, int ukprn, string learnRefNumber, string priceEpisodeId)
 {
     return(new AEC_ApprenticeshipPriceEpisode_PeriodisedValue
     {
         UKPRN = ukprn,
         LearnRefNumber = learnRefNumber,
         PriceEpisodeIdentifier = priceEpisodeId,
         AttributeName = priceEpisodePeriodisedValue.AttributeName,
         Period_1 = priceEpisodePeriodisedValue.Period1,
         Period_2 = priceEpisodePeriodisedValue.Period2,
         Period_3 = priceEpisodePeriodisedValue.Period3,
         Period_4 = priceEpisodePeriodisedValue.Period4,
         Period_5 = priceEpisodePeriodisedValue.Period5,
         Period_6 = priceEpisodePeriodisedValue.Period6,
         Period_7 = priceEpisodePeriodisedValue.Period7,
         Period_8 = priceEpisodePeriodisedValue.Period8,
         Period_9 = priceEpisodePeriodisedValue.Period9,
         Period_10 = priceEpisodePeriodisedValue.Period10,
         Period_11 = priceEpisodePeriodisedValue.Period11,
         Period_12 = priceEpisodePeriodisedValue.Period12
     });
 }