Exemple #1
0
        protected void AddLearnerCommitmentsForPeriod(DateTime date, long ukprn, Learner learner, string provider)
        {
            var learnerCommitments = StepDefinitionsContext.ReferenceDataContext.Commitments.Where(c => c.Learner == learner.Name && c.Provider == provider);

            foreach (var commitment in learnerCommitments)
            {
                if (commitment.StartDate > date)
                {
                    continue;
                }

                if (commitment.EffectiveFrom.HasValue && commitment.EffectiveFrom.Value > date)
                {
                    continue;
                }

                var employer  = StepDefinitionsContext.ReferenceDataContext.Employers?.SingleOrDefault(e => e.Name == commitment.Employer);
                var accountId = employer?.AccountId ?? long.Parse(IdentifierGenerator.GenerateIdentifier(8, false));

                var commitmentStartDate         = commitment.StartDate ?? learner.LearningDelivery.StartDate;
                var commitmentEffectiveFromDate = commitment.EffectiveFrom ?? commitmentStartDate;
                var commitmentEndDate           = commitment.EndDate ?? learner.LearningDelivery.PlannedEndDate;
                var priceEpisode = learner.LearningDelivery.PriceEpisodes.Where(pe => pe.StartDate >= commitmentStartDate && pe.StartDate <= commitmentEndDate).OrderBy(pe => pe.StartDate).FirstOrDefault();

                CommitmentDataHelper.CreateCommitment(
                    new CommitmentEntity
                {
                    CommitmentId             = commitment.Id,
                    Ukprn                    = ukprn,
                    Uln                      = learner.Uln,
                    AccountId                = accountId.ToString(),
                    StartDate                = commitmentStartDate,
                    EndDate                  = commitment.EndDate ?? learner.LearningDelivery.PlannedEndDate,
                    AgreedCost               = commitment.AgreedPrice ?? priceEpisode.TotalPrice,
                    StandardCode             = commitment.StandardCode,
                    FrameworkCode            = commitment.FrameworkCode,
                    ProgrammeType            = commitment.ProgrammeType,
                    PathwayCode              = commitment.PathwayCode,
                    Priority                 = commitment.Priority,
                    VersionId                = commitment.VersionId,
                    PaymentStatus            = (int)commitment.Status,
                    PaymentStatusDescription = commitment.Status.ToString(),
                    EffectiveFrom            = commitmentEffectiveFromDate,
                    EffectiveTo              = commitment.EffectiveTo
                },
                    EnvironmentVariables);
            }
        }
Exemple #2
0
        protected void AddLearnerCommitment(long ukprn, Learner learner, string provider)
        {
            var commitmentId       = long.Parse(IdentifierGenerator.GenerateIdentifier(6, false));
            var commitmentPriority = 1;
            var accountId          = long.Parse(IdentifierGenerator.GenerateIdentifier(8, false));

            var commitment = StepDefinitionsContext.ReferenceDataContext.Commitments?.SingleOrDefault(c => c.Learner == learner.Name && c.Provider == provider);

            if (commitment != null)
            {
                commitmentId       = commitment.Id;
                commitmentPriority = commitment.Priority;

                var employer = StepDefinitionsContext.ReferenceDataContext.Employers?.SingleOrDefault(e => e.Name == commitment.Employer);

                if (employer != null)
                {
                    accountId = employer.AccountId;
                }
            }

            CommitmentDataHelper.CreateCommitment(
                new CommitmentEntity
            {
                CommitmentId             = commitmentId,
                Ukprn                    = ukprn,
                Uln                      = learner.Uln,
                AccountId                = accountId.ToString(),
                StartDate                = learner.LearningDelivery.StartDate,
                EndDate                  = learner.LearningDelivery.PlannedEndDate,
                AgreedCost               = learner.LearningDelivery.PriceEpisodes[0].TotalPrice,
                StandardCode             = commitment.StandardCode,
                FrameworkCode            = commitment.FrameworkCode,
                ProgrammeType            = commitment.ProgrammeType,
                PathwayCode              = commitment.PathwayCode,
                Priority                 = commitmentPriority,
                VersionId                = commitment.VersionId,
                PaymentStatus            = (int)commitment.Status,
                PaymentStatusDescription = commitment.Status.ToString(),
                EffectiveFrom            = learner.LearningDelivery.StartDate
            },
                EnvironmentVariables);
        }
Exemple #3
0
        protected void SetupReferenceData()
        {
            foreach (var employer in StepDefinitionsContext.ReferenceDataContext.Employers)
            {
                AccountDataHelper.CreateAccount(employer.AccountId, employer.AccountId.ToString(), 0.00m, EnvironmentVariables);
            }

            AccountDataHelper.UpdateAudit(EnvironmentVariables);

            foreach (var provider in StepDefinitionsContext.Providers)
            {
                foreach (var learner in provider.Learners)
                {
                    AddLearnerCommitment(provider.Ukprn, learner, provider.Name);
                }
            }

            CommitmentDataHelper.UpdateEventStreamPointer(EnvironmentVariables);
        }
Exemple #4
0
        protected void SetupPeriodReferenceData(DateTime date)
        {
            AccountDataHelper.ClearAccounts(EnvironmentVariables);
            CommitmentDataHelper.ClearCommitments(EnvironmentVariables);

            var period = date.GetPeriod();

            if (StepDefinitionsContext.DasScenario)
            {
                foreach (var employer in StepDefinitionsContext.ReferenceDataContext.Employers)
                {
                    AccountDataHelper.CreateAccount(
                        employer.AccountId,
                        employer.AccountId.ToString(),
                        employer.GetBalanceForMonth(period),
                        EnvironmentVariables);
                }

                AccountDataHelper.UpdateAudit(EnvironmentVariables);
            }

            foreach (var provider in StepDefinitionsContext.Providers)
            {
                foreach (var learner in provider.Learners)
                {
                    if (learner.LearningDelivery.LearnerType == LearnerType.ProgrammeOnlyNonDas)
                    {
                        continue;
                    }

                    AddLearnerCommitmentsForPeriod(date, provider.Ukprn, learner, provider.Name);
                }
            }

            CommitmentDataHelper.UpdateEventStreamPointer(EnvironmentVariables);
        }
Exemple #5
0
        private void SetupCommitments(Table table)
        {
            StepDefinitionsContext.ReferenceDataContext.SetDefaultEmployer(
                new Dictionary <string, decimal>
            {
                { "All", int.MaxValue }
            });

            var employer = StepDefinitionsContext.ReferenceDataContext.Employers[0];

            AccountDataHelper.CreateAccount(employer.AccountId, employer.AccountId.ToString(), 0.00m, EnvironmentVariables);

            foreach (var row in table.Rows)
            {
                var ukprn     = long.Parse(row["UKPRN"]);
                var startDate = DateTime.Parse(row["start date"]);


                var frameworkCode = table.Header.Contains("framework code")
                    ? int.Parse(row["framework code"])
                    : IlrBuilder.Defaults.FrameworkCode;
                var programmeType = table.Header.Contains("programme type")
                    ? int.Parse(row["programme type"])
                    : IlrBuilder.Defaults.ProgrammeType;
                var pathwayCode = table.Header.Contains("pathway code")
                    ? int.Parse(row["pathway code"])
                    : IlrBuilder.Defaults.PathwayCode;

                var standardCode = table.Header.Contains("standard code")
                    ? int.Parse(row["standard code"])
                    : IlrBuilder.Defaults.StandardCode;

                if (frameworkCode > 0 && programmeType > 0 && pathwayCode > 0)
                {
                    standardCode = 0;
                }

                var status = row.ContainsKey("status")
                    ? GetCommitmentStatusOrThrow(row["status"])
                    : CommitmentPaymentStatus.Active;

                StepDefinitionsContext.AddProvider("provider", ukprn);

                CommitmentDataHelper.CreateCommitment(
                    new CommitmentEntity
                {
                    CommitmentId             = long.Parse(IdentifierGenerator.GenerateIdentifier(6, false)),
                    Ukprn                    = ukprn,
                    Uln                      = long.Parse(row["ULN"]),
                    AccountId                = employer.AccountId.ToString(),
                    StartDate                = startDate,
                    EndDate                  = startDate.AddMonths(12),
                    AgreedCost               = decimal.Parse(row["agreed price"]),
                    StandardCode             = standardCode,
                    FrameworkCode            = frameworkCode,
                    ProgrammeType            = programmeType,
                    PathwayCode              = pathwayCode,
                    Priority                 = 1,
                    VersionId                = 1,
                    PaymentStatus            = (int)status,
                    PaymentStatusDescription = status.ToString(),
                    EffectiveFrom            = startDate
                },
                    EnvironmentVariables);
            }
        }