epb_view_models 2.2.3 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44f53edb23a539cbc882b65a1ce15baff6f2ab918f565d41918c433622adda46
4
- data.tar.gz: fab418244814328f957fcd9539804fdf794cea1b5622be8d3a8278e216abe971
3
+ metadata.gz: e03d792aa7f6ff2b47d3529c2557bd909b25e23ad5b5664a070230d1a713b2e6
4
+ data.tar.gz: 79ffc8207ef134924f564e1172444a592dfa9037b265c369264b3e94b64ce595
5
5
  SHA512:
6
- metadata.gz: 637f1a23d81cb624d8128bfd229a20e3c2db0aae8f50a2704877796dbe64a40756bc015752f92ccea3d4d785598b1640156c0dd5dba02075cf8160f9c4479407
7
- data.tar.gz: 0cb4ea6c12754f37fe81a10eecdcb849865fe85383bc74fbd62746e6ad62157f0bc688409eb2c6a766c6821f8ee6b90ca04aef459ae28d4df5d21fef1207d535
6
+ metadata.gz: '091f3695640add37cf4d5b25e208fb2d3acaac429e1983ff26681eb4510fd7952b8ef09d4341ab350edee3a4c39612aab543788a163185868d931ae82b3b23e4'
7
+ data.tar.gz: 6a6f1a69c7ecdffbee104ce37a89d3c8150ebdbe052cd33acd8ddce4d97372f8b590901970236a8e88dafb9bd2bc5d9ea789c20685436fe12e02741837d4b3d7
@@ -5,7 +5,7 @@ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
5
5
  loader.setup
6
6
 
7
7
  module EpbViewModels
8
- VERSION = "2.2.3"
8
+ VERSION = "2.2.4"
9
9
  end
10
10
 
11
11
  # Monkey patching to avoid using ActiveRecord::Type::Boolean.new.cast
@@ -93,13 +93,15 @@ module Presenter
93
93
  potential_energy_rating: @view_model.potential_energy_rating,
94
94
  current_energy_efficiency_band: @view_model.current_energy_efficiency_band,
95
95
  potential_energy_band: @view_model.potential_energy_band,
96
- new_build_benchmark_rating: @view_model.new_build_benchmark_rating,
96
+ new_build_benchmark_rating: @view_model.new_build_rating,
97
97
  new_build_benchmark_band: @view_model.new_build_benchmark_band,
98
98
  comparative_asset_rating: @view_model.comparative_asset_rating,
99
99
  epc_rating_ber: @view_model.epc_rating_ber,
100
100
  approximate_energy_use: @view_model.approximate_energy_use,
101
- property_type: @view_model.property_type,
102
- property_short_description: @view_model.property_short_description,
101
+ property_type: {
102
+ property_type_long_description: @view_model.property_long_description,
103
+ property_type_short_description: @view_model.property_short_description,
104
+ },
103
105
  compliant_2002: @view_model.compliant_2002,
104
106
  renewable_energy_sources: @view_model.renewable_energy_sources,
105
107
  electricity_sources: @view_model.electricity_sources,
@@ -0,0 +1,91 @@
1
+ module Presenter
2
+ module Dec
3
+ class CertificateSummary
4
+ TYPE_OF_ASSESSMENT = "DEC".freeze
5
+
6
+ def initialize(view_model, schema_type)
7
+ @view_model = view_model
8
+ @schema_type = schema_type.to_s
9
+ end
10
+
11
+ def to_hash
12
+ {
13
+ assessment_id: @view_model.assessment_id,
14
+ date_of_assessment: @view_model.date_of_assessment,
15
+ date_of_expiry: @view_model.date_of_expiry,
16
+ date_of_registration: @view_model.date_of_registration,
17
+ address: {
18
+ address_id: @view_model.address_id,
19
+ address_line1: @view_model.address_line1,
20
+ address_line2: @view_model.address_line2,
21
+ address_line3: @view_model.address_line3,
22
+ address_line4: @view_model.address_line4,
23
+ town: @view_model.town,
24
+ postcode: @view_model.postcode,
25
+ },
26
+ type_of_assessment: TYPE_OF_ASSESSMENT,
27
+ schema_version: @schema_type.gsub(/[a-zA-Z-]/, "").to_f,
28
+ report_type: @view_model.report_type,
29
+ current_assessment: {
30
+ date: @view_model.current_assessment_date,
31
+ energy_efficiency_rating: @view_model.energy_efficiency_rating,
32
+ energy_efficiency_band: Helper::EnergyBandCalculator.commercial(@view_model.energy_efficiency_rating),
33
+ heating_co2: @view_model.current_heating_co2,
34
+ electricity_co2: @view_model.current_electricity_co2,
35
+ renewables_co2: @view_model.current_renewables_co2,
36
+ },
37
+ year1_assessment: {
38
+ date: @view_model.year1_assessment_date,
39
+ energy_efficiency_rating: @view_model.year1_energy_efficiency_rating,
40
+ energy_efficiency_band: Helper::EnergyBandCalculator.commercial(@view_model.year1_energy_efficiency_rating),
41
+ heating_co2: @view_model.year1_heating_co2,
42
+ electricity_co2: @view_model.year1_electricity_co2,
43
+ renewables_co2: @view_model.year1_renewables_co2,
44
+ },
45
+ year2_assessment: {
46
+ date: @view_model.year2_assessment_date,
47
+ energy_efficiency_rating: @view_model.year2_energy_efficiency_rating,
48
+ energy_efficiency_band:
49
+ Helper::EnergyBandCalculator.commercial(@view_model.year2_energy_efficiency_rating),
50
+ heating_co2: @view_model.year2_heating_co2,
51
+ electricity_co2: @view_model.year2_electricity_co2,
52
+ renewables_co2: @view_model.year2_renewables_co2,
53
+ },
54
+ technical_information: {
55
+ main_heating_fuel: @view_model.main_heating_fuel,
56
+ building_environment: @view_model.building_environment,
57
+ floor_area: @view_model.floor_area,
58
+ occupier: @view_model.occupier,
59
+ asset_rating: @view_model.asset_rating,
60
+ annual_energy_use_fuel_thermal:
61
+ @view_model.annual_energy_use_fuel_thermal,
62
+ annual_energy_use_electrical:
63
+ @view_model.annual_energy_use_electrical,
64
+ typical_thermal_use: @view_model.typical_thermal_use,
65
+ typical_electrical_use: @view_model.typical_electrical_use,
66
+ renewables_fuel_thermal: @view_model.renewables_fuel_thermal,
67
+ renewables_electrical: @view_model.renewables_electrical,
68
+ },
69
+ assessor: {
70
+ scheme_assessor_id: @view_model.scheme_assessor_id,
71
+ name: @view_model.assessor_name,
72
+ company_details: {
73
+ name: @view_model.company_name,
74
+ address: @view_model.company_address,
75
+ },
76
+ contact_details: {
77
+ email: @view_model.assessor_email,
78
+ telephone: @view_model.assessor_telephone,
79
+ },
80
+ },
81
+ administrative_information: {
82
+ issue_date: @view_model.date_of_issue,
83
+ calculation_tool: @view_model.calculation_tool,
84
+ related_party_disclosure: @view_model.dec_related_party_disclosure,
85
+ related_rrn: @view_model.related_rrn,
86
+ },
87
+ }
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,62 @@
1
+ module Presenter
2
+ module DecRr
3
+ class CertificateSummary
4
+ def initialize(view_model)
5
+ @view_model = view_model
6
+ end
7
+
8
+ def to_hash
9
+ {
10
+ type_of_assessment: @view_model&.type_of_assessment,
11
+ assessment_id: @view_model.assessment_id,
12
+ report_type: @view_model.report_type,
13
+ date_of_assessment: @view_model.date_of_assessment,
14
+ date_of_registration: @view_model.date_of_registration,
15
+ date_of_expiry: @view_model.date_of_expiry,
16
+ address: {
17
+ address_id: @view_model.address_id,
18
+ address_line1: @view_model.address_line1,
19
+ address_line2: @view_model.address_line2,
20
+ address_line3: @view_model.address_line3,
21
+ address_line4: @view_model.address_line4,
22
+ town: @view_model.town,
23
+ postcode: @view_model.postcode,
24
+ },
25
+ assessor: {
26
+ scheme_assessor_id: @view_model.scheme_assessor_id,
27
+ name: @view_model.assessor_name,
28
+ company_details: {
29
+ name: @view_model.company_name,
30
+ address: @view_model.company_address,
31
+ },
32
+ contact_details: {
33
+ email: @view_model.assessor_email,
34
+ telephone: @view_model.assessor_telephone,
35
+ },
36
+ },
37
+ short_payback_recommendations:
38
+ @view_model.short_payback_recommendations,
39
+ medium_payback_recommendations:
40
+ @view_model.medium_payback_recommendations,
41
+ long_payback_recommendations: @view_model.long_payback_recommendations,
42
+ other_recommendations: @view_model.other_recommendations,
43
+ technical_information: {
44
+ building_environment: @view_model.building_environment,
45
+ floor_area: @view_model.floor_area,
46
+ occupier: @view_model.occupier,
47
+ property_type: @view_model.property_type,
48
+ renewable_sources: @view_model.renewable_sources,
49
+ discounted_energy: @view_model.discounted_energy,
50
+ date_of_issue: @view_model.date_of_issue,
51
+ calculation_tool: @view_model.calculation_tool,
52
+ inspection_type: @view_model.inspection_type,
53
+ },
54
+ site_service_one: @view_model.site_service_one,
55
+ site_service_two: @view_model.site_service_two,
56
+ site_service_three: @view_model.site_service_three,
57
+ related_rrn: @view_model.related_rrn,
58
+ }
59
+ end
60
+ end
61
+ end
62
+ end
@@ -32,6 +32,8 @@ module Presenter
32
32
  assessor: {
33
33
  scheme_assessor_id: @view_model.scheme_assessor_id,
34
34
  name: @view_model.assessor_name,
35
+ assessor_contact_address: @view_model.assessor_contact_address,
36
+ company_name: @view_model.company_name,
35
37
  contact_details: {
36
38
  email: @view_model.assessor_email,
37
39
  telephone: @view_model.assessor_telephone,
@@ -39,6 +41,7 @@ module Presenter
39
41
  },
40
42
  current_carbon_emission:
41
43
  convert_to_big_decimal(@view_model.current_carbon_emission),
44
+ carbon_emissions_current_per_floor_area: @view_model.co2_emissions_current_per_floor_area,
42
45
  current_energy_efficiency_band: Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
43
46
  current_energy_efficiency_rating: @view_model.current_energy_rating,
44
47
  dwelling_type: @view_model.dwelling_type,
@@ -29,6 +29,8 @@ module Presenter
29
29
  assessor: {
30
30
  scheme_assessor_id: @view_model.scheme_assessor_id,
31
31
  name: @view_model.assessor_name,
32
+ assessor_contact_address: @view_model.assessor_contact_address,
33
+ company_name: @view_model.company_name,
32
34
  contact_details: {
33
35
  email: @view_model.assessor_email,
34
36
  telephone: @view_model.assessor_telephone,
@@ -36,6 +38,7 @@ module Presenter
36
38
  },
37
39
  current_carbon_emission:
38
40
  convert_to_big_decimal(@view_model.current_carbon_emission),
41
+ carbon_emissions_current_per_floor_area: @view_model.co2_emissions_current_per_floor_area,
39
42
  current_energy_efficiency_band: Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
40
43
  current_energy_efficiency_rating: @view_model.current_energy_rating,
41
44
  dwelling_type: @view_model.dwelling_type,
@@ -20,23 +20,19 @@ module ViewModel
20
20
  end
21
21
 
22
22
  def potential_energy_rating
23
- xpath(%w[Potential-Rating])
23
+ xpath(%w[Potential-Rating])&.to_i
24
24
  end
25
25
 
26
26
  def potential_energy_band
27
27
  xpath(%w[Potential-Band])
28
28
  end
29
29
 
30
- def new_build_benchmark_rating
31
- xpath(%w[New-Build-Benchmark])
32
- end
33
-
34
30
  def new_build_benchmark_band
35
31
  xpath(%w[New-Build-Benchmark-Band])
36
32
  end
37
33
 
38
34
  def comparative_asset_rating
39
- xpath(%w[Comparative-Asset-Rating])
35
+ xpath(%w[Comparative-Asset-Rating])&.to_i
40
36
  end
41
37
 
42
38
  def comparative_asset_band
@@ -44,11 +40,11 @@ module ViewModel
44
40
  end
45
41
 
46
42
  def epc_rating_ber
47
- xpath(%w[BER])
43
+ xpath(%w[BER])&.to_f
48
44
  end
49
45
 
50
46
  def approximate_energy_use
51
- xpath(%w[Approximate-Energy-Use])
47
+ xpath(%w[Approximate-Energy-Use])&.to_i
52
48
  end
53
49
 
54
50
  def floor_area
@@ -60,7 +56,11 @@ module ViewModel
60
56
  end
61
57
 
62
58
  def property_type
63
- xpath(%w[Property-Type])
59
+ xpath(%w[Property-Type Long-Description])
60
+ end
61
+
62
+ def property_long_description
63
+ xpath(%w[Property-Type Long-Description])
64
64
  end
65
65
 
66
66
  def property_short_description
@@ -72,15 +72,15 @@ module ViewModel
72
72
  end
73
73
 
74
74
  def renewable_energy_sources
75
- @xml_doc.search("Renewable-Energy-Sources").map(&:content)
75
+ @xml_doc.search("Renewable-Energy-Sources").children.search("Renewable-Energy-Source").map(&:content)
76
76
  end
77
77
 
78
78
  def electricity_sources
79
- @xml_doc.search("Electricity-Sources").map(&:content)
79
+ @xml_doc.search("Electricity-Sources").children.search("Electricity-Source").map(&:content)
80
80
  end
81
81
 
82
82
  def primary_energy_indicator
83
- xpath(%w[Primary-Energy-Indicator])
83
+ xpath(%w[Primary-Energy-Indicator])&.to_i
84
84
  end
85
85
 
86
86
  def calculation_tool
@@ -88,15 +88,11 @@ module ViewModel
88
88
  end
89
89
 
90
90
  def ter_2002
91
- xpath(%w[TER-2002])
91
+ xpath(%w[TER-2002])&.to_f
92
92
  end
93
93
 
94
94
  def ter
95
- xpath(%w[TER])
96
- end
97
-
98
- def renewable_sources
99
- xpath(%w[Renewable-Sources])
95
+ xpath(%w[TER])&.to_f
100
96
  end
101
97
 
102
98
  def recommendations(payback = "")
@@ -6,6 +6,7 @@ module ViewModel
6
6
  @view_model = build_view_model(xml_doc, schema_type)
7
7
  @summary = Presenter::DecRr::Summary.new(view_model)
8
8
  @recommendation_report = Presenter::DecRr::RecommendationReport.new(view_model)
9
+ @certificate_summary = Presenter::DecRr::CertificateSummary.new(view_model)
9
10
  end
10
11
 
11
12
  def type
@@ -21,6 +22,10 @@ module ViewModel
21
22
  @recommendation_report.to_hash
22
23
  end
23
24
 
25
+ def to_certificate_summary
26
+ @certificate_summary.to_hash
27
+ end
28
+
24
29
  def get_view_model
25
30
  view_model
26
31
  end
@@ -6,6 +6,7 @@ module ViewModel
6
6
  @view_model = build_view_model(xml_doc, schema_type)
7
7
  @summary = Presenter::Dec::Summary.new(view_model, schema_type)
8
8
  @report = Presenter::Dec::Report.new(view_model, additional_data)
9
+ @certificate_summary = Presenter::Dec::CertificateSummary.new(view_model, schema_type)
9
10
  end
10
11
 
11
12
  def type
@@ -22,6 +23,10 @@ module ViewModel
22
23
  @report.to_hash
23
24
  end
24
25
 
26
+ def to_certificate_summary
27
+ @certificate_summary.to_hash
28
+ end
29
+
25
30
  def get_view_model
26
31
  view_model
27
32
  end
@@ -64,6 +64,20 @@ module ViewModel
64
64
  xpath(%w[Main-Heating-Category])
65
65
  end
66
66
 
67
+ def assessor_contact_address
68
+ address = xpath(%w[Energy-Assessor Contact-Address]).nil? ? xpath(%w[Home-Inspector Contact-Address]) : xpath(%w[Energy-Assessor Contact-Address])
69
+ format_address = address&.split("\n")&.map(&:strip)
70
+ format_address&.reject(&:empty?)&.join(", ")
71
+ end
72
+
73
+ def company_name
74
+ xpath(%w[Company-Name])
75
+ end
76
+
77
+ def co2_emissions_current_per_floor_area
78
+ xpath(%w[CO2-Emissions-Current-Per-Floor-Area])
79
+ end
80
+
67
81
  private
68
82
 
69
83
  def fetch_addendum_numbers
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epb_view_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - MHCLG Energy Performance of Buildings
@@ -1590,10 +1590,12 @@ files:
1590
1590
  - lib/presenter/cs63/certificate_summary.rb
1591
1591
  - lib/presenter/cs63/export_configuration.rb
1592
1592
  - lib/presenter/cs63/summary.rb
1593
+ - lib/presenter/dec/certificate_summary.rb
1593
1594
  - lib/presenter/dec/export_configuration.rb
1594
1595
  - lib/presenter/dec/report.rb
1595
1596
  - lib/presenter/dec/summary.rb
1596
1597
  - lib/presenter/dec/xml_summary.rb
1598
+ - lib/presenter/dec_rr/certificate_summary.rb
1597
1599
  - lib/presenter/dec_rr/export_configuration.rb
1598
1600
  - lib/presenter/dec_rr/recommendation_report.rb
1599
1601
  - lib/presenter/dec_rr/summary.rb