epb_view_models 1.0.0 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.buildspec.yml +13 -0
- data/.gitignore +5 -0
- data/.ruby-version +1 -0
- data/Gemfile.lock +22 -17
- data/Makefile +1 -1
- data/api/schemas/xml/RdSAP-Schema-NI-19.0/RdSAP/Templates/EPC-CollectedData.xsd +13 -12
- data/lib/epb_view_models.rb +1 -1
- data/lib/helper/ac_report_extraction.rb +26 -28
- data/lib/helper/energy_band_calculator.rb +1 -1
- data/lib/helper/xml_enums_to_output.rb +286 -126
- data/lib/presenter/cepc/report.rb +5 -2
- data/lib/presenter/dec/report.rb +5 -2
- data/lib/presenter/export/domestic.rb +1 -1
- data/lib/presenter/rd_sap/report.rb +213 -5
- data/lib/presenter/sap/report.rb +213 -4
- data/lib/presenter/sap/summary.rb +1 -1
- data/lib/view_model/cepc50/cepc.rb +0 -4
- data/lib/view_model/cepc60/cepc.rb +0 -4
- data/lib/view_model/cepc71/dec.rb +0 -4
- data/lib/view_model/cepc_ni800/ac_report.rb +3 -2
- data/lib/view_model/domestic_epc_view_model.rb +4 -0
- data/lib/view_model/rd_sap_schema_170/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_171/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_180/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_190/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_200/common_schema.rb +16 -8
- data/lib/view_model/rd_sap_schema_ni_173/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_ni_174/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_ni_180/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_ni_190/common_schema.rb +16 -0
- data/lib/view_model/rd_sap_schema_ni_200/common_schema.rb +16 -4
- data/lib/view_model/rd_sap_wrapper.rb +4 -0
- data/lib/view_model/sap_schema_102/common_schema.rb +33 -10
- data/lib/view_model/sap_schema_102/rdsap.rb +8 -0
- data/lib/view_model/sap_schema_110/common_schema.rb +1 -10
- data/lib/view_model/sap_schema_110/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_110/sap.rb +36 -0
- data/lib/view_model/sap_schema_112/common_schema.rb +1 -10
- data/lib/view_model/sap_schema_112/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_112/sap.rb +36 -0
- data/lib/view_model/sap_schema_120/common_schema.rb +0 -12
- data/lib/view_model/sap_schema_120/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_120/sap.rb +36 -0
- data/lib/view_model/sap_schema_130/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_130/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_130/sap.rb +36 -0
- data/lib/view_model/sap_schema_140/common_schema.rb +0 -8
- data/lib/view_model/sap_schema_140/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_140/sap.rb +36 -0
- data/lib/view_model/sap_schema_141/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_141/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_141/sap.rb +36 -0
- data/lib/view_model/sap_schema_142/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_142/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_142/sap.rb +36 -0
- data/lib/view_model/sap_schema_150/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_150/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_150/sap.rb +36 -0
- data/lib/view_model/sap_schema_160/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_160/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_160/sap.rb +36 -0
- data/lib/view_model/sap_schema_161/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_161/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_161/sap.rb +36 -0
- data/lib/view_model/sap_schema_162/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_162/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_162/sap.rb +36 -0
- data/lib/view_model/sap_schema_163/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_163/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_163/sap.rb +36 -0
- data/lib/view_model/sap_schema_170/common_schema.rb +32 -0
- data/lib/view_model/sap_schema_171/common_schema.rb +32 -4
- data/lib/view_model/sap_schema_1800/common_schema.rb +32 -8
- data/lib/view_model/sap_schema_ni_112/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_112/rdsap.rb +45 -4
- data/lib/view_model/sap_schema_ni_112/sap.rb +35 -0
- data/lib/view_model/sap_schema_ni_120/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_120/rdsap.rb +40 -0
- data/lib/view_model/sap_schema_ni_120/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_130/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_130/rdsap.rb +40 -0
- data/lib/view_model/sap_schema_ni_130/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_140/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_140/rdsap.rb +40 -0
- data/lib/view_model/sap_schema_ni_140/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_141/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_141/rdsap.rb +40 -0
- data/lib/view_model/sap_schema_ni_141/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_142/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_142/rdsap.rb +40 -0
- data/lib/view_model/sap_schema_ni_142/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_150/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_150/rdsap.rb +40 -0
- data/lib/view_model/sap_schema_ni_150/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_160/common_schema.rb +2 -6
- data/lib/view_model/sap_schema_ni_160/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_ni_160/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_161/common_schema.rb +1 -5
- data/lib/view_model/sap_schema_ni_161/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_ni_161/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_170/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_ni_170/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_ni_170/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_171/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_ni_171/rdsap.rb +36 -0
- data/lib/view_model/sap_schema_ni_171/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_172/common_schema.rb +0 -4
- data/lib/view_model/sap_schema_ni_172/rdsap.rb +44 -0
- data/lib/view_model/sap_schema_ni_172/sap.rb +36 -0
- data/lib/view_model/sap_schema_ni_173/common_schema.rb +32 -0
- data/lib/view_model/sap_schema_ni_174/common_schema.rb +32 -0
- data/lib/view_model/sap_schema_ni_1800/common_schema.rb +32 -22
- data/lib/view_model/sap_wrapper.rb +4 -0
- metadata +4 -2
@@ -73,8 +73,11 @@ module Presenter
|
|
73
73
|
if @additional_data.key?(:created_at)
|
74
74
|
report[:lodgement_datetime] = @additional_data[:created_at].strftime("%F %H:%M:%S")
|
75
75
|
end
|
76
|
-
if @additional_data.key?(:address_id)
|
77
|
-
report[:building_reference_number] =
|
76
|
+
if @additional_data.key?(:address_id)
|
77
|
+
report[:building_reference_number] =
|
78
|
+
if @additional_data[:address_id].include?("UPRN")
|
79
|
+
@additional_data[:address_id]
|
80
|
+
end
|
78
81
|
end
|
79
82
|
if @additional_data.key?(:postcode_region)
|
80
83
|
report[:region] = @additional_data[:postcode_region]
|
data/lib/presenter/dec/report.rb
CHANGED
@@ -82,8 +82,11 @@ module Presenter
|
|
82
82
|
if @additional_data.key?(:created_at)
|
83
83
|
report[:lodgement_datetime] = @additional_data[:created_at].strftime("%F %H:%M:%S")
|
84
84
|
end
|
85
|
-
if @additional_data.key?(:address_id)
|
86
|
-
report[:building_reference_number] =
|
85
|
+
if @additional_data.key?(:address_id)
|
86
|
+
report[:building_reference_number] =
|
87
|
+
if @additional_data[:address_id].include?("UPRN")
|
88
|
+
@additional_data[:address_id]
|
89
|
+
end
|
87
90
|
end
|
88
91
|
if @additional_data.key?(:postcode_region)
|
89
92
|
report[:region] = @additional_data[:postcode_region]
|
@@ -7,7 +7,7 @@ module Presenter::Export
|
|
7
7
|
view[:assessment_id] = @view_model.assessment_id
|
8
8
|
view[:assessor] = assessor
|
9
9
|
view[:built_form] =
|
10
|
-
enum_value(:
|
10
|
+
enum_value(:built_form_string, @view_model.built_form)
|
11
11
|
view[:co2_emissions_current_per_floor_area] =
|
12
12
|
@view_model.co2_emissions_current_per_floor_area.to_i
|
13
13
|
view[:construction_age_band] =
|
@@ -12,8 +12,206 @@ module Presenter
|
|
12
12
|
.merge(report_from_additional_data)
|
13
13
|
end
|
14
14
|
|
15
|
+
def to_hash_ni
|
16
|
+
report_from_ni_assessment_xml
|
17
|
+
end
|
18
|
+
|
15
19
|
private
|
16
20
|
|
21
|
+
def report_from_ni_assessment_xml
|
22
|
+
{
|
23
|
+
address1: @view_model.address_line1,
|
24
|
+
address2: @view_model.address_line2,
|
25
|
+
address3: @view_model.address_line3,
|
26
|
+
built_form:
|
27
|
+
Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
|
28
|
+
co2_emiss_curr_per_floor_area:
|
29
|
+
@view_model.co2_emissions_current_per_floor_area,
|
30
|
+
co2_emissions_current: @view_model.current_carbon_emission,
|
31
|
+
co2_emissions_potential: @view_model.potential_carbon_emission,
|
32
|
+
construction_age_band:
|
33
|
+
Helper::XmlEnumsToOutput.construction_age_band_lookup(
|
34
|
+
@view_model.property_age_band,
|
35
|
+
@schema_type,
|
36
|
+
@view_model.report_type,
|
37
|
+
),
|
38
|
+
current_energy_efficiency: @view_model.current_energy_rating.to_s.chomp,
|
39
|
+
current_energy_rating:
|
40
|
+
Helper::EnergyBandCalculator.domestic(
|
41
|
+
@view_model.current_energy_rating,
|
42
|
+
),
|
43
|
+
cylinder_insul_thickness: Helper::XmlEnumsToOutput.cylinder_insulation_thickness(@view_model.cylinder_insul_thickness),
|
44
|
+
cylinder_insulation_type: @view_model.cylinder_insulation_type,
|
45
|
+
cylinder_size: @view_model.cylinder_size,
|
46
|
+
has_cylinder_thermostat: @view_model.has_cylinder_thermostat == "Y" ? "true" : "false",
|
47
|
+
energy_consumption_current: @view_model.primary_energy_use,
|
48
|
+
energy_consumption_potential: @view_model.energy_consumption_potential,
|
49
|
+
energy_tariff:
|
50
|
+
Helper::XmlEnumsToOutput.energy_tariff(
|
51
|
+
@view_model.meter_type,
|
52
|
+
@view_model.report_type,
|
53
|
+
),
|
54
|
+
environment_impact_current: @view_model.environmental_impact_current,
|
55
|
+
environment_impact_potential:
|
56
|
+
@view_model.environmental_impact_potential,
|
57
|
+
extension_count: @view_model.extensions_count,
|
58
|
+
fixed_lighting_outlets_count: @view_model.fixed_lighting_outlets_count,
|
59
|
+
flat_top_storey: @view_model.top_storey,
|
60
|
+
flat_storey_count: @view_model.storey_count,
|
61
|
+
floor_description: @view_model.all_floor_descriptions.first,
|
62
|
+
floor_energy_eff:
|
63
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
64
|
+
@view_model.all_floor_energy_efficiency_rating.first,
|
65
|
+
),
|
66
|
+
floor_env_eff:
|
67
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
68
|
+
@view_model.all_floor_env_energy_efficiency_rating.first,
|
69
|
+
),
|
70
|
+
floor_height: @view_model.floor_height.first,
|
71
|
+
floor_level: @view_model.floor_level,
|
72
|
+
glazed_area:
|
73
|
+
Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.glazed_area),
|
74
|
+
glazed_type:
|
75
|
+
Helper::XmlEnumsToOutput.glazed_type_rdsap(
|
76
|
+
@view_model.multi_glazing_type,
|
77
|
+
),
|
78
|
+
heat_loss_corridor:
|
79
|
+
Helper::XmlEnumsToOutput.heat_loss_corridor(
|
80
|
+
@view_model.heat_loss_corridor,
|
81
|
+
),
|
82
|
+
heating_cost_current: @view_model.heating_cost_current,
|
83
|
+
heating_cost_potential: @view_model.heating_cost_potential,
|
84
|
+
hot_water_cost_current: @view_model.hot_water_cost_current,
|
85
|
+
hot_water_cost_potential: @view_model.hot_water_cost_potential,
|
86
|
+
hot_water_energy_eff:
|
87
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
88
|
+
@view_model.hot_water_energy_efficiency_rating,
|
89
|
+
),
|
90
|
+
hot_water_env_eff:
|
91
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
92
|
+
@view_model.hot_water_environmental_efficiency_rating,
|
93
|
+
),
|
94
|
+
hotwater_description: @view_model.hot_water_description,
|
95
|
+
inspection_date: @view_model.date_of_assessment,
|
96
|
+
lighting_cost_current: @view_model.lighting_cost_current,
|
97
|
+
lighting_cost_potential: @view_model.lighting_cost_potential,
|
98
|
+
lighting_description: @view_model.lighting_description,
|
99
|
+
lighting_energy_eff:
|
100
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
101
|
+
@view_model.lighting_energy_efficiency_rating,
|
102
|
+
),
|
103
|
+
lighting_env_eff:
|
104
|
+
Helper::XmlEnumsToOutput.energy_rating_string(@view_model.lighting_environmental_efficiency_rating),
|
105
|
+
low_energy_lighting: @view_model.low_energy_lighting,
|
106
|
+
low_energy_fixed_lighting_count:
|
107
|
+
@view_model.low_energy_fixed_lighting_outlets_count,
|
108
|
+
main_fuel: Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
|
109
|
+
@schema_type,
|
110
|
+
@view_model.report_type),
|
111
|
+
mainheat_description:
|
112
|
+
@view_model.all_main_heating_descriptions.join(", "),
|
113
|
+
mainheat_energy_eff:
|
114
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
115
|
+
@view_model.all_main_heating_energy_efficiency.first,
|
116
|
+
),
|
117
|
+
mainheat_env_eff:
|
118
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
119
|
+
@view_model.all_main_heating_environmental_efficiency.first,
|
120
|
+
),
|
121
|
+
mainheatc_energy_eff:
|
122
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
123
|
+
@view_model.all_main_heating_controls_energy_efficiency.first,
|
124
|
+
),
|
125
|
+
mainheatc_env_eff:
|
126
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
127
|
+
@view_model.all_main_heating_controls_environmental_efficiency.first,
|
128
|
+
),
|
129
|
+
mainheatcont_description:
|
130
|
+
@view_model.all_main_heating_controls_descriptions.first,
|
131
|
+
mains_gas_flag: @view_model.mains_gas,
|
132
|
+
mechanical_ventilation:
|
133
|
+
Helper::XmlEnumsToOutput.mechanical_ventilation(
|
134
|
+
@view_model.mechanical_ventilation,
|
135
|
+
@schema_type,
|
136
|
+
@view_model.report_type,
|
137
|
+
),
|
138
|
+
mech_vent_sys_index_number: nil,
|
139
|
+
mechanical_vent_data_source: nil,
|
140
|
+
multi_glaze_proportion: @view_model.multiple_glazed_proportion,
|
141
|
+
number_habitable_rooms: @view_model.habitable_room_count,
|
142
|
+
number_heated_rooms: @view_model.heated_room_count,
|
143
|
+
number_open_fireplaces: @view_model.open_fireplaces_count,
|
144
|
+
photo_supply: @view_model.photovoltaic_roof_area_percent,
|
145
|
+
posttown: @view_model.town,
|
146
|
+
postcode: @view_model.postcode,
|
147
|
+
potential_energy_efficiency:
|
148
|
+
@view_model.potential_energy_rating.to_s.chomp,
|
149
|
+
potential_energy_rating:
|
150
|
+
Helper::EnergyBandCalculator.domestic(
|
151
|
+
@view_model.potential_energy_rating,
|
152
|
+
),
|
153
|
+
property_type:
|
154
|
+
Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
|
155
|
+
report_type: @view_model.report_type,
|
156
|
+
roof_description: @view_model.all_roof_descriptions.first,
|
157
|
+
roof_energy_eff:
|
158
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
159
|
+
@view_model.all_roof_energy_efficiency_rating.first,
|
160
|
+
),
|
161
|
+
roof_env_eff:
|
162
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
163
|
+
@view_model.all_roof_env_energy_efficiency_rating.first,
|
164
|
+
),
|
165
|
+
secondheat_description: @view_model.secondary_heating_description,
|
166
|
+
sheating_energy_eff:
|
167
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
168
|
+
@view_model.secondary_heating_energy_efficiency_rating,
|
169
|
+
),
|
170
|
+
sheating_env_eff:
|
171
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
172
|
+
@view_model.secondary_heating_environmental_efficiency_rating,
|
173
|
+
),
|
174
|
+
solar_water_heating_flag: @view_model.solar_water_heating_flag,
|
175
|
+
tenure: Helper::XmlEnumsToOutput.tenure(@view_model.tenure),
|
176
|
+
thermal_store: nil,
|
177
|
+
total_floor_area: @view_model.total_floor_area,
|
178
|
+
transaction_type:
|
179
|
+
Helper::XmlEnumsToOutput.transaction_type(
|
180
|
+
@view_model.transaction_type,
|
181
|
+
@view_model.report_type,
|
182
|
+
@schema_type,
|
183
|
+
),
|
184
|
+
unheated_corridor_length: @view_model.unheated_corridor_length,
|
185
|
+
ventilation_type: nil,
|
186
|
+
walls_description: @view_model.all_wall_descriptions.first,
|
187
|
+
walls_energy_eff:
|
188
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
189
|
+
@view_model.all_wall_energy_efficiency_rating.first,
|
190
|
+
),
|
191
|
+
walls_env_eff:
|
192
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
193
|
+
@view_model.all_wall_env_energy_efficiency_rating.first,
|
194
|
+
),
|
195
|
+
water_heating_code: @view_model.water_heating_code,
|
196
|
+
water_heating_fuel: Helper::XmlEnumsToOutput.fuel_type(
|
197
|
+
@view_model.water_heating_fuel,
|
198
|
+
@schema_type,
|
199
|
+
@view_model.report_type,
|
200
|
+
),
|
201
|
+
wind_turbine_count: @view_model.wind_turbine_count,
|
202
|
+
windows_description: @view_model.window_description,
|
203
|
+
windows_energy_eff:
|
204
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
205
|
+
@view_model.window_energy_efficiency_rating,
|
206
|
+
),
|
207
|
+
windows_env_eff:
|
208
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
209
|
+
@view_model.window_environmental_efficiency_rating,
|
210
|
+
),
|
211
|
+
|
212
|
+
}
|
213
|
+
end
|
214
|
+
|
17
215
|
def report_from_assessment_xml
|
18
216
|
{
|
19
217
|
assessment_id: Helper::RrnHelper.hash_rrn(@view_model.assessment_id),
|
@@ -28,6 +226,7 @@ module Presenter
|
|
28
226
|
Helper::XmlEnumsToOutput.construction_age_band_lookup(
|
29
227
|
@view_model.main_dwelling_construction_age_band_or_year,
|
30
228
|
@schema_type,
|
229
|
+
@view_model.report_type,
|
31
230
|
),
|
32
231
|
current_energy_rating:
|
33
232
|
Helper::EnergyBandCalculator.domestic(
|
@@ -120,7 +319,7 @@ module Presenter
|
|
120
319
|
),
|
121
320
|
photo_supply: @view_model.photovoltaic_roof_area_percent,
|
122
321
|
built_form:
|
123
|
-
Helper::XmlEnumsToOutput.
|
322
|
+
Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
|
124
323
|
mainheat_description:
|
125
324
|
@view_model.all_main_heating_descriptions.join(", "),
|
126
325
|
mainheat_energy_eff:
|
@@ -154,17 +353,23 @@ module Presenter
|
|
154
353
|
@view_model.all_wall_env_energy_efficiency_rating.first,
|
155
354
|
),
|
156
355
|
energy_tariff:
|
157
|
-
Helper::XmlEnumsToOutput.energy_tariff(
|
356
|
+
Helper::XmlEnumsToOutput.energy_tariff(
|
357
|
+
@view_model.meter_type,
|
358
|
+
@view_model.report_type,
|
359
|
+
),
|
158
360
|
floor_level: @view_model.floor_level,
|
159
361
|
solar_water_heating_flag: @view_model.solar_water_heating_flag,
|
160
362
|
mechanical_ventilation:
|
161
363
|
Helper::XmlEnumsToOutput.mechanical_ventilation(
|
162
364
|
@view_model.mechanical_ventilation,
|
163
365
|
@schema_type,
|
366
|
+
@view_model.report_type,
|
164
367
|
),
|
165
368
|
floor_height: @view_model.floor_height.first,
|
166
369
|
main_fuel:
|
167
|
-
Helper::XmlEnumsToOutput.
|
370
|
+
Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
|
371
|
+
@schema_type,
|
372
|
+
@view_model.report_type),
|
168
373
|
floor_description: @view_model.all_floor_descriptions.first,
|
169
374
|
floor_energy_eff:
|
170
375
|
Helper::XmlEnumsToOutput.energy_rating_string(
|
@@ -198,8 +403,11 @@ module Presenter
|
|
198
403
|
if @additional_data.key?(:created_at)
|
199
404
|
report[:lodgement_datetime] = @additional_data[:created_at].strftime("%F %H:%M:%S")
|
200
405
|
end
|
201
|
-
if @additional_data.key?(:address_id)
|
202
|
-
report[:building_reference_number] =
|
406
|
+
if @additional_data.key?(:address_id)
|
407
|
+
report[:building_reference_number] =
|
408
|
+
if @additional_data[:address_id].include?("UPRN")
|
409
|
+
@additional_data[:address_id]
|
410
|
+
end
|
203
411
|
end
|
204
412
|
if @additional_data.key?(:postcode_region)
|
205
413
|
report[:region] = @additional_data[:postcode_region]
|
data/lib/presenter/sap/report.rb
CHANGED
@@ -12,8 +12,212 @@ module Presenter
|
|
12
12
|
.merge(report_from_additional_data)
|
13
13
|
end
|
14
14
|
|
15
|
+
def to_hash_ni
|
16
|
+
report_from_ni_assessment_xml
|
17
|
+
end
|
18
|
+
|
15
19
|
private
|
16
20
|
|
21
|
+
def report_from_ni_assessment_xml
|
22
|
+
{
|
23
|
+
address1: @view_model.address_line1,
|
24
|
+
address2: @view_model.address_line2,
|
25
|
+
address3: @view_model.address_line3,
|
26
|
+
built_form:
|
27
|
+
Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
|
28
|
+
co2_emiss_curr_per_floor_area:
|
29
|
+
@view_model.co2_emissions_current_per_floor_area,
|
30
|
+
co2_emissions_current: @view_model.current_carbon_emission,
|
31
|
+
co2_emissions_potential: @view_model.potential_carbon_emission,
|
32
|
+
construction_age_band:
|
33
|
+
Helper::XmlEnumsToOutput.construction_age_band_lookup(
|
34
|
+
@view_model.main_dwelling_construction_age_band_or_year,
|
35
|
+
@schema_type,
|
36
|
+
@view_model.report_type,
|
37
|
+
),
|
38
|
+
current_energy_efficiency: @view_model.current_energy_rating.to_s.chomp,
|
39
|
+
current_energy_rating:
|
40
|
+
Helper::EnergyBandCalculator.domestic(
|
41
|
+
@view_model.current_energy_rating,
|
42
|
+
),
|
43
|
+
cylinder_insul_thickness: Helper::XmlEnumsToOutput.cylinder_insulation_thickness(@view_model.cylinder_insul_thickness, @view_model.report_type),
|
44
|
+
cylinder_insulation_type: @view_model.cylinder_insulation_type,
|
45
|
+
cylinder_size: @view_model.cylinder_size,
|
46
|
+
has_cylinder_thermostat: @view_model.has_cylinder_thermostat,
|
47
|
+
energy_consumption_current: @view_model.primary_energy_use,
|
48
|
+
energy_consumption_potential: @view_model.energy_consumption_potential,
|
49
|
+
energy_tariff:
|
50
|
+
Helper::XmlEnumsToOutput.energy_tariff(
|
51
|
+
@view_model.energy_tariff,
|
52
|
+
@view_model.report_type,
|
53
|
+
),
|
54
|
+
environment_impact_current: @view_model.environmental_impact_current,
|
55
|
+
environment_impact_potential:
|
56
|
+
@view_model.environmental_impact_potential,
|
57
|
+
extension_count: @view_model.extensions_count,
|
58
|
+
fixed_lighting_outlets_count: @view_model.fixed_lighting_outlets_count,
|
59
|
+
flat_storey_count: @view_model.storey_count,
|
60
|
+
flat_top_storey: @view_model.top_storey,
|
61
|
+
floor_description: @view_model.all_floor_descriptions.first,
|
62
|
+
floor_energy_eff:
|
63
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
64
|
+
@view_model.all_floor_energy_efficiency_rating.first,
|
65
|
+
),
|
66
|
+
floor_env_eff:
|
67
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
68
|
+
@view_model.all_floor_env_energy_efficiency_rating.first,
|
69
|
+
),
|
70
|
+
floor_height:
|
71
|
+
if @view_model.respond_to?(:floor_height)
|
72
|
+
@view_model.floor_height.first
|
73
|
+
end,
|
74
|
+
floor_level: @view_model.floor_level,
|
75
|
+
glazed_area:
|
76
|
+
Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.glazed_area),
|
77
|
+
glazed_type:
|
78
|
+
Helper::XmlEnumsToOutput.glazed_type_rdsap(
|
79
|
+
@view_model.multi_glazing_type,
|
80
|
+
),
|
81
|
+
heat_loss_corridor:
|
82
|
+
Helper::XmlEnumsToOutput.heat_loss_corridor(
|
83
|
+
@view_model.heat_loss_corridor,
|
84
|
+
),
|
85
|
+
heating_cost_current: @view_model.heating_cost_current,
|
86
|
+
heating_cost_potential: @view_model.heating_cost_potential,
|
87
|
+
hot_water_cost_current: @view_model.hot_water_cost_current,
|
88
|
+
hot_water_cost_potential: @view_model.hot_water_cost_potential,
|
89
|
+
hot_water_energy_eff:
|
90
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
91
|
+
@view_model.hot_water_energy_efficiency_rating,
|
92
|
+
),
|
93
|
+
hot_water_env_eff:
|
94
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
95
|
+
@view_model.hot_water_environmental_efficiency_rating,
|
96
|
+
),
|
97
|
+
hotwater_description: @view_model.hot_water_description,
|
98
|
+
inspection_date: @view_model.date_of_assessment,
|
99
|
+
lighting_cost_current: @view_model.lighting_cost_current,
|
100
|
+
lighting_cost_potential: @view_model.lighting_cost_potential,
|
101
|
+
lighting_description: @view_model.lighting_description,
|
102
|
+
lighting_energy_eff:
|
103
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
104
|
+
@view_model.lighting_energy_efficiency_rating,
|
105
|
+
),
|
106
|
+
lighting_env_eff:
|
107
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
108
|
+
@view_model.lighting_environmental_efficiency_rating,
|
109
|
+
),
|
110
|
+
low_energy_lighting: @view_model.low_energy_lighting,
|
111
|
+
low_energy_fixed_lighting_count:
|
112
|
+
@view_model.low_energy_fixed_lighting_outlets_count,
|
113
|
+
main_fuel:
|
114
|
+
Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
|
115
|
+
@schema_type,
|
116
|
+
@view_model.report_type),
|
117
|
+
mainheat_description:
|
118
|
+
@view_model.all_main_heating_descriptions.join(", "),
|
119
|
+
mainheat_energy_eff:
|
120
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
121
|
+
@view_model.all_main_heating_energy_efficiency.first,
|
122
|
+
),
|
123
|
+
mainheat_env_eff:
|
124
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
125
|
+
@view_model.all_main_heating_environmental_efficiency.first,
|
126
|
+
),
|
127
|
+
mainheatc_energy_eff:
|
128
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
129
|
+
@view_model.all_main_heating_controls_energy_efficiency.first,
|
130
|
+
),
|
131
|
+
mainheatc_env_eff:
|
132
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
133
|
+
@view_model.all_main_heating_controls_environmental_efficiency.first,
|
134
|
+
),
|
135
|
+
mainheatcont_description:
|
136
|
+
@view_model.all_main_heating_controls_descriptions.first,
|
137
|
+
mains_gas_flag:
|
138
|
+
@view_model.respond_to?(:mains_gas) ? @view_model.mains_gas : nil,
|
139
|
+
mechanical_ventilation:
|
140
|
+
Helper::XmlEnumsToOutput.mechanical_ventilation(
|
141
|
+
@view_model.mechanical_ventilation,
|
142
|
+
@schema_type,
|
143
|
+
@view_model.report_type,
|
144
|
+
),
|
145
|
+
mech_vent_sys_index_number: @view_model.mech_vent_sys_index_number,
|
146
|
+
mechanical_vent_data_source: @view_model.mechanical_vent_data_source,
|
147
|
+
multi_glaze_proportion: @view_model.multiple_glazed_proportion,
|
148
|
+
number_habitable_rooms: @view_model.habitable_room_count,
|
149
|
+
number_heated_rooms: @view_model.heated_room_count,
|
150
|
+
number_open_fireplaces: @view_model.open_fireplaces_count,
|
151
|
+
photo_supply: @view_model.photovoltaic_roof_area_percent,
|
152
|
+
postcode: @view_model.postcode,
|
153
|
+
posttown: @view_model.town,
|
154
|
+
potential_energy_efficiency:
|
155
|
+
@view_model.potential_energy_rating.to_s.chomp,
|
156
|
+
potential_energy_rating:
|
157
|
+
Helper::EnergyBandCalculator.domestic(
|
158
|
+
@view_model.potential_energy_rating,
|
159
|
+
),
|
160
|
+
property_type:
|
161
|
+
Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
|
162
|
+
report_type: @view_model.report_type,
|
163
|
+
roof_description: @view_model.all_roof_descriptions.first,
|
164
|
+
roof_energy_eff:
|
165
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
166
|
+
@view_model.all_roof_energy_efficiency_rating.first,
|
167
|
+
),
|
168
|
+
roof_env_eff:
|
169
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
170
|
+
@view_model.all_roof_env_energy_efficiency_rating.first,
|
171
|
+
),
|
172
|
+
secondheat_description: @view_model.secondary_heating_description,
|
173
|
+
sheating_energy_eff:
|
174
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
175
|
+
@view_model.secondary_heating_energy_efficiency_rating,
|
176
|
+
),
|
177
|
+
sheating_env_eff:
|
178
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
179
|
+
@view_model.secondary_heating_environmental_efficiency_rating,
|
180
|
+
),
|
181
|
+
solar_water_heating_flag: @view_model.solar_water_heating_flag,
|
182
|
+
thermal_store: @view_model.thermal_store,
|
183
|
+
tenure: Helper::XmlEnumsToOutput.tenure(@view_model.tenure),
|
184
|
+
total_floor_area: @view_model.total_floor_area,
|
185
|
+
transaction_type:
|
186
|
+
Helper::XmlEnumsToOutput.transaction_type(
|
187
|
+
@view_model.transaction_type,
|
188
|
+
@view_model.report_type,
|
189
|
+
@schema_type,
|
190
|
+
),
|
191
|
+
ventilation_type: Helper::XmlEnumsToOutput.ventilation_type(@view_model.ventilation_type, @schema_type),
|
192
|
+
unheated_corridor_length: @view_model.unheated_corridor_length,
|
193
|
+
water_heating_code: @view_model.water_heating_code,
|
194
|
+
walls_description: @view_model.all_wall_descriptions.first,
|
195
|
+
walls_energy_eff:
|
196
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
197
|
+
@view_model.all_wall_energy_efficiency_rating.first,
|
198
|
+
),
|
199
|
+
walls_env_eff:
|
200
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
201
|
+
@view_model.all_wall_env_energy_efficiency_rating.first,
|
202
|
+
),
|
203
|
+
water_heating_fuel: Helper::XmlEnumsToOutput.fuel_type(
|
204
|
+
@view_model.water_heating_fuel,
|
205
|
+
@schema_type,
|
206
|
+
@view_model.report_type,
|
207
|
+
),
|
208
|
+
wind_turbine_count: @view_model.wind_turbine_count,
|
209
|
+
windows_description: @view_model.window_description,
|
210
|
+
windows_energy_eff:
|
211
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
212
|
+
@view_model.window_energy_efficiency_rating,
|
213
|
+
),
|
214
|
+
windows_env_eff:
|
215
|
+
Helper::XmlEnumsToOutput.energy_rating_string(
|
216
|
+
@view_model.window_environmental_efficiency_rating,
|
217
|
+
),
|
218
|
+
}
|
219
|
+
end
|
220
|
+
|
17
221
|
def report_from_assessment_xml
|
18
222
|
{
|
19
223
|
assessment_id: Helper::RrnHelper.hash_rrn(@view_model.assessment_id),
|
@@ -123,7 +327,7 @@ module Presenter
|
|
123
327
|
),
|
124
328
|
photo_supply: @view_model.photovoltaic_roof_area_percent,
|
125
329
|
built_form:
|
126
|
-
Helper::XmlEnumsToOutput.
|
330
|
+
Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
|
127
331
|
mainheat_description:
|
128
332
|
@view_model.all_main_heating_descriptions.join(", "),
|
129
333
|
report_type: @view_model.report_type,
|
@@ -174,7 +378,9 @@ module Presenter
|
|
174
378
|
@view_model.floor_height.first
|
175
379
|
end,
|
176
380
|
main_fuel:
|
177
|
-
Helper::XmlEnumsToOutput.
|
381
|
+
Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
|
382
|
+
@schema_type,
|
383
|
+
@view_model.report_type),
|
178
384
|
floor_description: @view_model.all_floor_descriptions.first,
|
179
385
|
floor_energy_eff:
|
180
386
|
Helper::XmlEnumsToOutput.energy_rating_string(
|
@@ -208,8 +414,11 @@ module Presenter
|
|
208
414
|
if @additional_data.key?(:created_at)
|
209
415
|
report[:lodgement_datetime] = @additional_data[:created_at].strftime("%F %H:%M:%S")
|
210
416
|
end
|
211
|
-
if @additional_data.key?(:address_id)
|
212
|
-
report[:building_reference_number] =
|
417
|
+
if @additional_data.key?(:address_id)
|
418
|
+
report[:building_reference_number] =
|
419
|
+
if @additional_data[:address_id].include?("UPRN")
|
420
|
+
@additional_data[:address_id]
|
421
|
+
end
|
213
422
|
end
|
214
423
|
if @additional_data.key?(:postcode_region)
|
215
424
|
report[:region] = @additional_data[:postcode_region]
|