diff --git a/app/models/stats/stats_report.rb b/app/models/stats/stats_report.rb index 141226d76a..fdafd3289c 100644 --- a/app/models/stats/stats_report.rb +++ b/app/models/stats/stats_report.rb @@ -30,6 +30,7 @@ def updatable? Report.new(name: :lgfs_management_information_statistics, date_required: true), Report.new(name: :provisional_assessment), Report.new(name: :provisional_assessment_new), + Report.new(name: :provisional_assessment_summary), Report.new(name: :rejections_refusals), Report.new(name: :submitted_claims), Report.new(name: :reports_access_details, hidden: true, updatable: false)].freeze diff --git a/app/services/reports/provisional_assessments_summary.rb b/app/services/reports/provisional_assessments_summary.rb new file mode 100644 index 0000000000..36032528f9 --- /dev/null +++ b/app/services/reports/provisional_assessments_summary.rb @@ -0,0 +1,12 @@ +module Reports + class ProvisionalAssessmentsSummary < ProvisionalAssessmentsNew + COLUMNS = %w[ + supplier_name + total + assessed + disallowed + ].freeze + + def extended_fields(claim) = [] + end +end \ No newline at end of file diff --git a/app/services/stats/simple_report_generator.rb b/app/services/stats/simple_report_generator.rb index 5b58fb7d6a..40ccf648af 100644 --- a/app/services/stats/simple_report_generator.rb +++ b/app/services/stats/simple_report_generator.rb @@ -22,7 +22,8 @@ def report_klass provisional_assessment: Reports::ProvisionalAssessments, rejections_refusals: Reports::RejectionsRefusals, submitted_claims: Reports::SubmittedClaims, - provisional_assessment_new: Reports::ProvisionalAssessmentsNew + provisional_assessment_new: Reports::ProvisionalAssessmentsNew, + provisional_assessment_new: Reports::ProvisionalAssessmentsSummary, }[@report.to_sym] end end diff --git a/config/locales/en/views/management_information.yml b/config/locales/en/views/management_information.yml index 8b6aa3a9f3..8ca695e5ae 100644 --- a/config/locales/en/views/management_information.yml +++ b/config/locales/en/views/management_information.yml @@ -57,6 +57,7 @@ en: Management information beta provisional_assessment_html: Provisional assessment provisional_assessment_new_html: Provisional assessment (New) + provisional_assessment_summary_html: Provisional assessment (New/Summary) rejections_refusals_html: 'Rejections/Refusals' submitted_claims_html: Submitted claims reports_access_details_html: Reports access details diff --git a/spec/requests/case_workers/admin/management_information_spec.rb b/spec/requests/case_workers/admin/management_information_spec.rb index b76fecb777..68a0c3d51b 100644 --- a/spec/requests/case_workers/admin/management_information_spec.rb +++ b/spec/requests/case_workers/admin/management_information_spec.rb @@ -69,6 +69,7 @@ lgfs_management_information_statistics provisional_assessment provisional_assessment_new + provisional_assessment_summary rejections_refusals submitted_claims reports_access_details] diff --git a/spec/services/reports/provisional_assessments_new_spec.rb b/spec/services/reports/provisional_assessments_new_spec.rb index 7955209452..faf7f8defe 100644 --- a/spec/services/reports/provisional_assessments_new_spec.rb +++ b/spec/services/reports/provisional_assessments_new_spec.rb @@ -1,16 +1,29 @@ require 'rails_helper' - -RSpec.shared_examples 'data for an MI report' do - it { expect(described_class::COLUMNS).to be_an(Array) } - it { expect(described_class.call).to be_an(Array) } - it { expect(described_class.new.call).to be_an(Array) } -end +require File.expand_path('shared_examples_for_reports.rb', __dir__) RSpec.describe Reports::ProvisionalAssessmentsNew do subject(:report) { described_class.new } it_behaves_like 'data for an MI report' + describe '::COLUMNS' do + subject { described_class::COLUMNS } + + it { is_expected.to eq( + %w[ + supplier_name + total + assessed + disallowed + bill_type + case_type + earliest_representation_order_date + case_worker + maat_number + ] + )} + end + describe '#call' do subject(:call) { described_class.call } @@ -60,6 +73,7 @@ let(:external_user) { build(:external_user, provider: build(:provider, name: 'Test provider')) } it { expect(call.length).to eq(1) } + it { expect(call.first.length).to eq(9) } it { expect(call.first[0]).to eq('Test provider') } it { expect(call.first[1]).to eq(claim.total_including_vat) } it { expect(call.first[2]).to eq(claim.amount_assessed) } diff --git a/spec/services/reports/provisional_assessments_summary_spec.rb b/spec/services/reports/provisional_assessments_summary_spec.rb new file mode 100644 index 0000000000..23e817ffeb --- /dev/null +++ b/spec/services/reports/provisional_assessments_summary_spec.rb @@ -0,0 +1,78 @@ +require 'rails_helper' +require File.expand_path('shared_examples_for_reports.rb', __dir__) + +RSpec.describe Reports::ProvisionalAssessmentsSummary do + subject(:report) { described_class.new } + + describe '::COLUMNS' do + subject { described_class::COLUMNS } + + it { is_expected.to eq( + %w[ + supplier_name + total + assessed + disallowed + ] + )} + end + + it_behaves_like 'data for an MI report' + + describe '#call' do + subject(:call) { described_class.call } + + context 'with a single draft claim' do + before { create(:claim, :draft) } + + it { is_expected.to be_empty } + end + + context 'with a single submitted claim' do + before { create(:claim, :submitted) } + + it { is_expected.to be_empty } + end + + context 'with a single allocated claim' do + before { create(:claim, :allocated) } + + it { is_expected.to be_empty } + end + + context 'with a single rejected claim' do + before { create(:claim, :rejected) } + + it { is_expected.to be_empty } + end + + context 'with a single redetermination claim' do + before { create(:claim, :redetermination) } + + it { is_expected.to be_empty } + end + + context 'with a single authorised claim' do + before { create(:claim, :authorised) } + + it { expect(call.length).to eq(1) } + end + + context 'with a single part_authorised claim' do + let!(:claim) do + create( + :claim, :part_authorised, + external_user: + ) + end + let(:external_user) { build(:external_user, provider: build(:provider, name: 'Test provider')) } + + it { expect(call.length).to eq(1) } + it { expect(call.first.length).to eq(4) } + it { expect(call.first[0]).to eq('Test provider') } + it { expect(call.first[1]).to eq(claim.total_including_vat) } + it { expect(call.first[2]).to eq(claim.amount_assessed) } + it { expect(call.first[3]).to eq(claim.total_including_vat - claim.amount_assessed) } + end + end +end diff --git a/spec/services/reports/shared_examples_for_reports.rb b/spec/services/reports/shared_examples_for_reports.rb new file mode 100644 index 0000000000..60c59ce62d --- /dev/null +++ b/spec/services/reports/shared_examples_for_reports.rb @@ -0,0 +1,5 @@ +RSpec.shared_examples 'data for an MI report' do + it { expect(described_class::COLUMNS).to be_an(Array) } + it { expect(described_class.call).to be_an(Array) } + it { expect(described_class.new.call).to be_an(Array) } +end