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 +4 -4
- data/lib/epb_view_models.rb +1 -1
- data/lib/presenter/cepc/certificate_summary.rb +5 -3
- data/lib/presenter/dec/certificate_summary.rb +91 -0
- data/lib/presenter/dec_rr/certificate_summary.rb +62 -0
- data/lib/presenter/rd_sap/certificate_summary.rb +3 -0
- data/lib/presenter/sap/certificate_summary.rb +3 -0
- data/lib/view_model/cepc_s_71/cepc.rb +14 -18
- data/lib/view_model/dec_rr_wrapper.rb +5 -0
- data/lib/view_model/dec_wrapper.rb +5 -0
- data/lib/view_model/domestic_epc_view_model.rb +14 -0
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e03d792aa7f6ff2b47d3529c2557bd909b25e23ad5b5664a070230d1a713b2e6
|
|
4
|
+
data.tar.gz: 79ffc8207ef134924f564e1172444a592dfa9037b265c369264b3e94b64ce595
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '091f3695640add37cf4d5b25e208fb2d3acaac429e1983ff26681eb4510fd7952b8ef09d4341ab350edee3a4c39612aab543788a163185868d931ae82b3b23e4'
|
|
7
|
+
data.tar.gz: 6a6f1a69c7ecdffbee104ce37a89d3c8150ebdbe052cd33acd8ddce4d97372f8b590901970236a8e88dafb9bd2bc5d9ea789c20685436fe12e02741837d4b3d7
|
data/lib/epb_view_models.rb
CHANGED
|
@@ -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.
|
|
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:
|
|
102
|
-
|
|
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.
|
|
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
|