private async Task UpdateOrganisationWithUpdatedGrade(Guid applicationId, FinancialGrade grade)
        {
            var application = await _applyRepository.GetApplication(applicationId);

            var org = await _organisationQueryRepository.Get(application.OrganisationId);

            if (org != null)
            {
                org.OrganisationData.FHADetails = new FHADetails()
                {
                    FinancialDueDate = grade.FinancialDueDate,
                    FinancialExempt  = grade.SelectedGrade == FinancialApplicationSelectedGrade.Exempt
                };

                if (org.OrganisationData.FinancialGrades == null)
                {
                    org.OrganisationData.FinancialGrades = new List <FinancialGrade>();
                }

                if (org.OrganisationData.FinancialGrades.Any(x => x.ApplicationReference == grade.ApplicationReference))
                {
                    org.OrganisationData.FinancialGrades = org.OrganisationData.FinancialGrades.
                                                           Where(x => x.ApplicationReference == grade.ApplicationReference).Select(s => { return(grade); }
                                                                                                                                   ).ToList();
                }
                else
                {
                    org.OrganisationData.FinancialGrades.Add(grade);
                }

                await _organisationRepository.UpdateOrganisation(org);
            }
        }
Esempio n. 2
0
        private void SetupGradeAndFinancialDueDate(FinancialGrade grade)
        {
            Grade = grade ?? new FinancialGrade();

            OutstandingFinancialDueDate  = new FinancialDueDate();
            GoodFinancialDueDate         = new FinancialDueDate();
            SatisfactoryFinancialDueDate = new FinancialDueDate();
            MonitoringFinancialDueDate   = new FinancialDueDate();

            if (Grade.FinancialDueDate.HasValue)
            {
                var day   = Grade.FinancialDueDate.Value.Day.ToString();
                var month = Grade.FinancialDueDate.Value.Month.ToString();
                var year  = Grade.FinancialDueDate.Value.Year.ToString();

                switch (Grade.SelectedGrade)
                {
                case FinancialApplicationSelectedGrade.Outstanding:
                    OutstandingFinancialDueDate = new FinancialDueDate {
                        Day = day, Month = month, Year = year
                    };
                    break;

                case FinancialApplicationSelectedGrade.Good:
                    GoodFinancialDueDate = new FinancialDueDate {
                        Day = day, Month = month, Year = year
                    };
                    break;

                case FinancialApplicationSelectedGrade.Satisfactory:
                    SatisfactoryFinancialDueDate = new FinancialDueDate {
                        Day = day, Month = month, Year = year
                    };
                    break;

                case FinancialApplicationSelectedGrade.Monitoring:
                    MonitoringFinancialDueDate = new FinancialDueDate {
                        Day = day, Month = month, Year = year
                    };
                    break;

                default:
                    break;
                }
            }
        }
        public async Task ReturnFinancialReview(Guid id, FinancialGrade financialGrade)
        {
            if (financialGrade != null)
            {
                var application = await GetApplication(id);

                var applyData = application?.ApplyData;
                var sequence  = applyData?.Sequences.SingleOrDefault(seq => seq.SequenceNo == FINANCIAL_SEQUENCE);
                var section   = sequence?.Sections.SingleOrDefault(sec => sec.SectionNo == FINANCIAL_SECTION);

                if (application != null && section != null && sequence?.IsActive == true && application.FinancialReviewStatus == FinancialReviewStatus.InProgress)
                {
                    var financialReviewStatus = (financialGrade.SelectedGrade == FinancialApplicationSelectedGrade.Inadequate) ? FinancialReviewStatus.Rejected : FinancialReviewStatus.Graded;

                    application.FinancialReviewStatus = financialReviewStatus;
                    application.FinancialGrade        = financialGrade;
                    application.UpdatedBy             = financialGrade.GradedBy;
                    application.UpdatedAt             = DateTime.UtcNow;

                    section.Status          = ApplicationSectionStatus.Graded;
                    section.ReviewedBy      = financialGrade.GradedBy;
                    section.ReviewStartDate = DateTime.UtcNow;

                    using (var connection = new SqlConnection(_configuration.SqlConnectionString))
                    {
                        await connection.ExecuteAsync(@"UPDATE Apply
                                                    SET  ApplyData = @ApplyData, FinancialGrade = @FinancialGrade, FinancialReviewStatus = @FinancialReviewStatus, UpdatedBy = @UpdatedBy, UpdatedAt = GETUTCDATE()  
                                                    WHERE Apply.Id = @Id",
                                                      new { application.Id, application.ApplyData, application.FinancialGrade, application.FinancialReviewStatus, application.UpdatedBy });
                    }
                }
            }
            else
            {
                _logger.LogError("FinancialGrade is null therefore failed to update Apply table.");
            }
        }
Esempio n. 4
0
        public FinancialApplicationViewModel(Guid id, Guid applicationId, Section section, FinancialGrade grade, AssessorService.ApplyTypes.Application application)
        {
            Id = id;
            if (section != null)
            {
                Section       = section;
                ApplicationId = section.ApplicationId;
            }
            else
            {
                ApplicationId = applicationId;
            }

            SetupGradeAndFinancialDueDate(grade);
            OrgId = application.ApplyingOrganisationId;

            if (application.ApplicationData != null)
            {
                ApplicationReference = application.ApplicationData.ReferenceNumber;
            }


            if (application.ApplyingOrganisation?.OrganisationData != null)
            {
                Ukprn         = application.ApplyingOrganisation.EndPointAssessorUkprn;
                LegalName     = application.ApplyingOrganisation.OrganisationData.LegalName;
                TradingName   = application.ApplyingOrganisation.OrganisationData.TradingName;
                ProviderName  = application.ApplyingOrganisation.OrganisationData.ProviderName;
                CompanyNumber = application.ApplyingOrganisation.OrganisationData.CompanyNumber;
            }
        }
 public ReturnFinancialReviewRequest(Guid id, FinancialGrade updatedGrade)
 {
     Id           = id;
     UpdatedGrade = updatedGrade;
 }
        public async Task <ActionResult> ReturnReview(Guid Id, [FromBody] FinancialGrade updatedGrade)
        {
            await _mediator.Send(new ReturnFinancialReviewRequest(Id, updatedGrade));

            return(Ok());
        }
 public async Task ReturnFinancialReview(Guid applicationId, FinancialGrade grade)
 {
     await Post($"/Financial/{applicationId}/Return", grade);
 }