Skip to content

Commit ffff70c

Browse files
committed
Add summary provisional assessment report
1 parent 0989a23 commit ffff70c

File tree

8 files changed

+120
-7
lines changed

8 files changed

+120
-7
lines changed

app/models/stats/stats_report.rb

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def updatable?
3030
Report.new(name: :lgfs_management_information_statistics, date_required: true),
3131
Report.new(name: :provisional_assessment),
3232
Report.new(name: :provisional_assessment_new),
33+
Report.new(name: :provisional_assessment_summary),
3334
Report.new(name: :rejections_refusals),
3435
Report.new(name: :submitted_claims),
3536
Report.new(name: :reports_access_details, hidden: true, updatable: false)].freeze
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module Reports
2+
class ProvisionalAssessmentsSummary < ProvisionalAssessmentsNew
3+
COLUMNS = %w[
4+
supplier_name
5+
total
6+
assessed
7+
disallowed
8+
].freeze
9+
10+
def extended_fields(claim) = []
11+
end
12+
end

app/services/stats/simple_report_generator.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def report_klass
2222
provisional_assessment: Reports::ProvisionalAssessments,
2323
rejections_refusals: Reports::RejectionsRefusals,
2424
submitted_claims: Reports::SubmittedClaims,
25-
provisional_assessment_new: Reports::ProvisionalAssessmentsNew
25+
provisional_assessment_new: Reports::ProvisionalAssessmentsNew,
26+
provisional_assessment_new: Reports::ProvisionalAssessmentsSummary,
2627
}[@report.to_sym]
2728
end
2829
end

config/locales/en/views/management_information.yml

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ en:
5757
Management information <strong class="govuk-tag govuk-tag--blue">beta</strong>
5858
provisional_assessment_html: Provisional assessment
5959
provisional_assessment_new_html: Provisional assessment (New)
60+
provisional_assessment_new_html: Provisional assessment (New/Summary)
6061
rejections_refusals_html: 'Rejections/Refusals'
6162
submitted_claims_html: Submitted claims
6263
reports_access_details_html: Reports access details

spec/requests/case_workers/admin/management_information_spec.rb

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
lgfs_management_information_statistics
7070
provisional_assessment
7171
provisional_assessment_new
72+
provisional_assessment_summary
7273
rejections_refusals
7374
submitted_claims
7475
reports_access_details]

spec/services/reports/provisional_assessments_new_spec.rb

+20-6
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
require 'rails_helper'
2-
3-
RSpec.shared_examples 'data for an MI report' do
4-
it { expect(described_class::COLUMNS).to be_an(Array) }
5-
it { expect(described_class.call).to be_an(Array) }
6-
it { expect(described_class.new.call).to be_an(Array) }
7-
end
2+
require File.expand_path('shared_examples_for_reports.rb', __dir__)
83

94
RSpec.describe Reports::ProvisionalAssessmentsNew do
105
subject(:report) { described_class.new }
116

127
it_behaves_like 'data for an MI report'
138

9+
describe '::COLUMNS' do
10+
subject { described_class::COLUMNS }
11+
12+
it { is_expected.to eq(
13+
%w[
14+
supplier_name
15+
total
16+
assessed
17+
disallowed
18+
bill_type
19+
case_type
20+
earliest_representation_order_date
21+
case_worker
22+
maat_number
23+
]
24+
)}
25+
end
26+
1427
describe '#call' do
1528
subject(:call) { described_class.call }
1629

@@ -60,6 +73,7 @@
6073
let(:external_user) { build(:external_user, provider: build(:provider, name: 'Test provider')) }
6174

6275
it { expect(call.length).to eq(1) }
76+
it { expect(call.first.length).to eq(9) }
6377
it { expect(call.first[0]).to eq('Test provider') }
6478
it { expect(call.first[1]).to eq(claim.total_including_vat) }
6579
it { expect(call.first[2]).to eq(claim.amount_assessed) }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
require 'rails_helper'
2+
require File.expand_path('shared_examples_for_reports.rb', __dir__)
3+
4+
RSpec.describe Reports::ProvisionalAssessmentsSummary do
5+
subject(:report) { described_class.new }
6+
7+
describe '::COLUMNS' do
8+
subject { described_class::COLUMNS }
9+
10+
it { is_expected.to eq(
11+
%w[
12+
supplier_name
13+
total
14+
assessed
15+
disallowed
16+
]
17+
)}
18+
end
19+
20+
it_behaves_like 'data for an MI report'
21+
22+
describe '#call' do
23+
subject(:call) { described_class.call }
24+
25+
context 'with a single draft claim' do
26+
before { create(:claim, :draft) }
27+
28+
it { is_expected.to be_empty }
29+
end
30+
31+
context 'with a single submitted claim' do
32+
before { create(:claim, :submitted) }
33+
34+
it { is_expected.to be_empty }
35+
end
36+
37+
context 'with a single allocated claim' do
38+
before { create(:claim, :allocated) }
39+
40+
it { is_expected.to be_empty }
41+
end
42+
43+
context 'with a single rejected claim' do
44+
before { create(:claim, :rejected) }
45+
46+
it { is_expected.to be_empty }
47+
end
48+
49+
context 'with a single redetermination claim' do
50+
before { create(:claim, :redetermination) }
51+
52+
it { is_expected.to be_empty }
53+
end
54+
55+
context 'with a single authorised claim' do
56+
before { create(:claim, :authorised) }
57+
58+
it { expect(call.length).to eq(1) }
59+
end
60+
61+
context 'with a single part_authorised claim' do
62+
let!(:claim) do
63+
create(
64+
:claim, :part_authorised,
65+
external_user:
66+
)
67+
end
68+
let(:external_user) { build(:external_user, provider: build(:provider, name: 'Test provider')) }
69+
70+
it { expect(call.length).to eq(1) }
71+
it { expect(call.first.length).to eq(4) }
72+
it { expect(call.first[0]).to eq('Test provider') }
73+
it { expect(call.first[1]).to eq(claim.total_including_vat) }
74+
it { expect(call.first[2]).to eq(claim.amount_assessed) }
75+
it { expect(call.first[3]).to eq(claim.total_including_vat - claim.amount_assessed) }
76+
end
77+
end
78+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
RSpec.shared_examples 'data for an MI report' do
2+
it { expect(described_class::COLUMNS).to be_an(Array) }
3+
it { expect(described_class.call).to be_an(Array) }
4+
it { expect(described_class.new.call).to be_an(Array) }
5+
end

0 commit comments

Comments
 (0)