Exemple #1
0
 private decimal BuildTotalEarnings(AppsAdditionalPaymentsModel model)
 {
     return(model.AugustEarnings + model.SeptemberEarnings + model.OctoberEarnings + model.NovemberEarnings +
            model.DecemberEarnings + model.JanuaryEarnings +
            model.FebruaryEarnings + model.MarchEarnings + model.AprilEarnings + model.MayEarnings +
            model.JuneEarnings + model.JulyEarnings);
 }
Exemple #2
0
 private decimal BuildTotalTotalPayments(AppsAdditionalPaymentsModel model)
 {
     return(model.AugustR01Payments + model.SeptemberR02Payments + model.OctoberR03Payments + model.NovemberR04Payments +
            model.DecemberR05Payments + model.JanuaryR06Payments + model.FebruaryR07Payments + model.MarchR08Payments +
            model.AprilR09Payments + model.MayR10Payments + model.JuneR11Payments + model.JulyR12Payments +
            model.R13Payments + model.R14Payments);
 }
Exemple #3
0
        public List <AppsAdditionalPaymentsModel> BuildModel(
            AppsAdditionalPaymentILRInfo appsAdditionalPaymentIlrInfo,
            AppsAdditionalPaymentRulebaseInfo appsAdditionalPaymentRulebaseInfo,
            AppsAdditionalPaymentDasPaymentsInfo appsAdditionalPaymentDasPaymentsInfo)
        {
            List <AppsAdditionalPaymentsModel> appsAdditionalPaymentsModels = new List <AppsAdditionalPaymentsModel>();

            foreach (var learner in appsAdditionalPaymentIlrInfo.Learners)
            {
                foreach (var paymentInfo in appsAdditionalPaymentDasPaymentsInfo.Payments)
                {
                    var appsAdditionalPaymentLearningDeliveryInfo = learner.LearningDeliveries.SingleOrDefault(x => x.UKPRN == paymentInfo.UkPrn &&
                                                                                                               x.LearnRefNumber ==
                                                                                                               paymentInfo.LearnerReferenceNumber &&
                                                                                                               x.LearnAimRef == paymentInfo.LearningAimReference &&
                                                                                                               x.LearnStartDate == paymentInfo.LearningStartDate &&
                                                                                                               x.ProgType == paymentInfo.LearningAimProgrammeType &&
                                                                                                               x.StdCode == paymentInfo.LearningAimStandardCode &&
                                                                                                               x.FworkCode == paymentInfo.LearningAimFrameworkCode &&
                                                                                                               x.PwayCode == paymentInfo.LearningAimPathwayCode);
                    var aecLearningDeliveryInfo = appsAdditionalPaymentRulebaseInfo.AECLearningDeliveries.SingleOrDefault(x =>
                                                                                                                          x.UKPRN == appsAdditionalPaymentLearningDeliveryInfo?.UKPRN &&
                                                                                                                          x.LearnRefNumber == appsAdditionalPaymentLearningDeliveryInfo.LearnRefNumber &&
                                                                                                                          x.AimSeqNumber == appsAdditionalPaymentLearningDeliveryInfo.AimSeqNumber);

                    var aecApprenticeshipPriceEpisodePeriodisedValuesInfo = appsAdditionalPaymentRulebaseInfo.AECApprenticeshipPriceEpisodePeriodisedValues.Where(x =>
                                                                                                                                                                  x.UKPRN == appsAdditionalPaymentLearningDeliveryInfo?.UKPRN &&
                                                                                                                                                                  x.LearnRefNumber == appsAdditionalPaymentLearningDeliveryInfo.LearnRefNumber &&
                                                                                                                                                                  x.AimSeqNumber == appsAdditionalPaymentLearningDeliveryInfo.AimSeqNumber).ToList();

                    var model = new AppsAdditionalPaymentsModel()
                    {
                        LearnerReferenceNumber = paymentInfo.LearnerReferenceNumber,
                        UniqueLearnerNumber    = paymentInfo.LearnerUln,
                        ProviderSpecifiedLearnerMonitoringA = learner.ProviderSpecLearnerMonitorings?.SingleOrDefault(psm =>
                                                                                                                      string.Equals(psm.ProvSpecLearnMonOccur, "A", StringComparison.OrdinalIgnoreCase))?.ProvSpecLearnMon,
                        ProviderSpecifiedLearnerMonitoringB = learner.ProviderSpecLearnerMonitorings?.SingleOrDefault(psm =>
                                                                                                                      string.Equals(psm.ProvSpecLearnMonOccur, "B", StringComparison.OrdinalIgnoreCase))?.ProvSpecLearnMon,
                        LearningStartDate = paymentInfo.LearningStartDate,
                        FundingLineType   = paymentInfo.LearningAimFundingLineType,
                        EmployerNameFromApprenticeshipService = paymentInfo.EmployerName,
                        EmployerIdentifierFromILR             = GetEmployerIdentifier(aecLearningDeliveryInfo, paymentInfo),
                        TypeOfAdditionalPayment = paymentInfo.TypeOfAdditionalPayment,
                        AugustEarnings          = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 0),
                        SeptemberEarnings       = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 1),
                        OctoberEarnings         = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 2),
                        NovemberEarnings        = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 3),
                        DecemberEarnings        = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 4),
                        JanuaryEarnings         = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 5),
                        FebruaryEarnings        = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 6),
                        MarchEarnings           = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 7),
                        AprilEarnings           = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 8),
                        MayEarnings             = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 9),
                        JuneEarnings            = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 10),
                        JulyEarnings            = GetMonthlyEarnings(paymentInfo, aecApprenticeshipPriceEpisodePeriodisedValuesInfo, 11),
                        AugustR01Payments       = GetMonthlyPayments(paymentInfo, "1819-R01"),
                        SeptemberR02Payments    = GetMonthlyPayments(paymentInfo, "1819-R02"),
                        OctoberR03Payments      = GetMonthlyPayments(paymentInfo, "1819-R03"),
                        NovemberR04Payments     = GetMonthlyPayments(paymentInfo, "1819-R04"),
                        DecemberR05Payments     = GetMonthlyPayments(paymentInfo, "1819-R05"),
                        JanuaryR06Payments      = GetMonthlyPayments(paymentInfo, "1819-R06"),
                        FebruaryR07Payments     = GetMonthlyPayments(paymentInfo, "1819-R07"),
                        MarchR08Payments        = GetMonthlyPayments(paymentInfo, "1819-R08"),
                        AprilR09Payments        = GetMonthlyPayments(paymentInfo, "1819-R09"),
                        MayR10Payments          = GetMonthlyPayments(paymentInfo, "1819-R10"),
                        JuneR11Payments         = GetMonthlyPayments(paymentInfo, "1819-R11"),
                        JulyR12Payments         = GetMonthlyPayments(paymentInfo, "1819-R12"),
                        R13Payments             = GetMonthlyPayments(paymentInfo, "1819-R13"),
                        R14Payments             = GetMonthlyPayments(paymentInfo, "1819-R14")
                    };
                    model.TotalEarnings           = BuildTotalEarnings(model);
                    model.TotalPaymentsYearToDate = BuildTotalTotalPayments(model);
                    appsAdditionalPaymentsModels.Add(model);
                }
            }

            appsAdditionalPaymentsModels = BuildAppsAdditionalPaymentsResultModel(appsAdditionalPaymentsModels);

            return(appsAdditionalPaymentsModels);
        }