示例#1
0
        private FunctionalSkillEarning CreateEarning(IntermediateLearningAim source, FunctionalSkillType functionalSkillEarningType)
        {
            var attributeName = FunctionalSkillEarningTypeToFM36AttributeName(functionalSkillEarningType);
            var allPeriods    = source.Aims.Select(p => p.LearningDeliveryPeriodisedValues.SingleOrDefault(v => v.AttributeName == attributeName))
                                .Where(p => p != null)
                                .ToArray();

            var periods = new EarningPeriod[12];

            for (byte i = 1; i <= 12; i++)
            {
                var periodValues = allPeriods.Select(p => p.GetPeriodValue(i)).ToArray();
                var periodValue  = periodValues.SingleOrDefault(v => v.GetValueOrDefault(0) != 0).GetValueOrDefault(0);

                periods[i - 1] = new EarningPeriod
                {
                    Period = i,
                    Amount = periodValue.AsRounded(),
                    SfaContributionPercentage = 1
                };
            }

            return(new FunctionalSkillEarning
            {
                Type = functionalSkillEarningType,
                Periods = new ReadOnlyCollection <EarningPeriod>(periods)
            });
        }
示例#2
0
 private FunctionalSkillEarning CreateFunctionalSkillEarning(FunctionalSkillType type, decimal installmentAmount = 0m)
 {
     return(new FunctionalSkillEarning()
     {
         Periods = CreatePeriods(12, installmentAmount),
         Type = type
     });
 }
示例#3
0
        private static string FunctionalSkillEarningTypeToFM36AttributeName(FunctionalSkillType functionalSkillEarningType)
        {
            switch (functionalSkillEarningType)
            {
            case FunctionalSkillType.BalancingMathsAndEnglish:
                return("MathEngBalPayment");

            case FunctionalSkillType.OnProgrammeMathsAndEnglish:
                return("MathEngOnProgPayment");

            case FunctionalSkillType.LearningSupport:
                return("LearnSuppFundCash");

            default:
                throw new InvalidOperationException($"Cannot get FM36 attribute name for unknown functional skill earning type: {functionalSkillEarningType}");
            }
        }