Class: ViewModel::RdSapSchemaS210::CommonSchema
- Inherits:
-
DomesticEpcViewModel
- Object
- BaseViewModel
- DomesticEpcViewModel
- ViewModel::RdSapSchemaS210::CommonSchema
- Defined in:
- lib/view_model/rd_sap_schema_s_210/common_schema.rb
Instance Method Summary collapse
- #address_id ⇒ Object
- #address_line1 ⇒ Object
- #address_line2 ⇒ Object
- #address_line3 ⇒ Object
- #address_line4 ⇒ Object
- #all_floor_descriptions ⇒ Object
- #all_floor_energy_efficiency_rating ⇒ Object
- #all_floor_env_energy_efficiency_rating ⇒ Object
- #all_hot_water_descriptions ⇒ Object
- #all_lighting_descriptions ⇒ Object
- #all_main_heating_controls_descriptions ⇒ Object
- #all_main_heating_controls_energy_efficiency ⇒ Object
- #all_main_heating_controls_environmental_efficiency ⇒ Object
- #all_main_heating_descriptions ⇒ Object
- #all_main_heating_energy_efficiency ⇒ Object
- #all_main_heating_environmental_efficiency ⇒ Object
- #all_roof_descriptions ⇒ Object
- #all_roof_energy_efficiency_rating ⇒ Object
- #all_roof_env_energy_efficiency_rating ⇒ Object
- #all_secondary_heating_descriptions ⇒ Object
- #all_wall_descriptions ⇒ Object
- #all_wall_energy_efficiency_rating ⇒ Object
- #all_wall_env_energy_efficiency_rating ⇒ Object
- #all_window_descriptions ⇒ Object
- #assessment_id ⇒ Object
- #assessor_email ⇒ Object
- #assessor_name ⇒ Object
- #assessor_telephone ⇒ Object
- #built_form ⇒ Object
- #co2_emissions_current_per_floor_area ⇒ Object
- #country_code ⇒ Object
- #current_carbon_emission ⇒ Object
- #current_energy_rating ⇒ Object
- #current_space_heating_demand ⇒ Object
- #current_water_heating_demand ⇒ Object
- #cylinder_insul_thickness ⇒ Object
- #cylinder_insulation_type ⇒ Object
- #cylinder_size ⇒ Object
- #date_of_assessment ⇒ Object
- #date_of_completion ⇒ Object
- #date_of_expiry ⇒ Object
- #date_of_registration ⇒ Object
- #dwelling_type ⇒ Object
- #electricity_smart_meter_present ⇒ Object
- #energy_consumption_potential ⇒ Object
- #energy_rating_current ⇒ Object
- #energy_rating_potential ⇒ Object
- #environmental_impact_current ⇒ Object
- #environmental_impact_potential ⇒ Object
- #estimated_energy_cost ⇒ Object
- #extensions_count ⇒ Object
- #fixed_lighting_outlets_count ⇒ Object
- #floor_height ⇒ Object
- #floor_level ⇒ Object
- #floors_insulation ⇒ Object
- #gas_smart_meter_present ⇒ Object
- #glazed_area ⇒ Object
- #habitable_room_count ⇒ Object
- #has_cylinder_thermostat ⇒ Object
- #heat_loss_corridor ⇒ Object
- #heated_room_count ⇒ Object
- #heating_cost_current ⇒ Object
- #heating_cost_potential ⇒ Object
- #hot_water_cost_current ⇒ Object
- #hot_water_cost_potential ⇒ Object
- #hot_water_description ⇒ Object
- #hot_water_energy_efficiency_rating ⇒ Object
- #hot_water_environmental_efficiency_rating ⇒ Object
- #impact_of_cavity_insulation ⇒ Object
- #impact_of_loft_insulation ⇒ Object
- #impact_of_solid_wall_insulation ⇒ Object
- #improvements ⇒ Object
- #level ⇒ Object
- #lighting_cost_current ⇒ Object
- #lighting_cost_potential ⇒ Object
- #lighting_description ⇒ Object
- #lighting_energy_efficiency_rating ⇒ Object
- #lighting_environmental_efficiency_rating ⇒ Object
- #low_energy_fixed_lighting_outlets_count ⇒ Object
- #low_energy_lighting ⇒ Object
- #main_dwelling_construction_age_band_or_year ⇒ Object
- #main_fuel_type ⇒ Object
- #main_heating_controls ⇒ Object
- #main_heating_details ⇒ Object
- #mains_gas ⇒ Object
- #mechanical_ventilation ⇒ Object
- #meter_type ⇒ Object
- #multiple_glazed_proportion ⇒ Object
- #open_fireplaces_count ⇒ Object
- #party_wall_construction ⇒ Object
-
#party_walls_construction ⇒ Object
For lodgement rules.
- #photovoltaic_roof_area_percent ⇒ Object
- #postcode ⇒ Object
- #potential_carbon_emission ⇒ Object
- #potential_energy_rating ⇒ Object
- #potential_energy_saving ⇒ Object
- #primary_energy_use ⇒ Object
- #property_age_band ⇒ Object
- #property_summary ⇒ Object
- #recommendations_for_report ⇒ Object
- #related_party_disclosure_number ⇒ Object
- #related_party_disclosure_text ⇒ Object
- #report_type ⇒ Object
- #rooms_in_roof ⇒ Object
- #rooms_in_roof_insulation ⇒ Object
- #rooms_in_roof_roof_insulation ⇒ Object
- #rooves_construction_and_insulation ⇒ Object
- #rooves_insulation ⇒ Object
- #scheme_assessor_id ⇒ Object
- #secondary_fuel_type ⇒ Object
- #secondary_heating_description ⇒ Object
- #secondary_heating_energy_efficiency_rating ⇒ Object
- #secondary_heating_environmental_efficiency_rating ⇒ Object
- #solar_water_heating_flag ⇒ Object
- #storey_count ⇒ Object
- #tenure ⇒ Object
- #top_storey ⇒ Object
- #total_floor_area ⇒ Object
- #town ⇒ Object
- #transaction_type ⇒ Object
- #unheated_corridor_length ⇒ Object
- #walls_insulation ⇒ Object
- #walls_thickness ⇒ Object
- #water_heating ⇒ Object
- #water_heating_fuel ⇒ Object
- #wind_turbine_count ⇒ Object
- #window_description ⇒ Object
- #window_energy_efficiency_rating ⇒ Object
- #window_environmental_efficiency_rating ⇒ Object
Methods inherited from DomesticEpcViewModel
#addendum, #assessor_contact_address, #company_name, #has_hot_water_cylinder, #improvement_title, #lzc_energy_sources, #main_heating_category, #multi_glazing_type, #property_type, #status, #water_heating_code
Methods inherited from BaseViewModel
Constructor Details
This class inherits a constructor from ViewModel::BaseViewModel
Instance Method Details
#address_id ⇒ Object
60 61 62 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 60 def address_id "LPRN-#{xpath(%w[UPRN])}" end |
#address_line1 ⇒ Object
8 9 10 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 8 def address_line1 xpath(%w[Property Address Address-Line-1]) end |
#address_line2 ⇒ Object
12 13 14 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 12 def address_line2 xpath(%w[Property Address Address-Line-2]).to_s end |
#address_line3 ⇒ Object
16 17 18 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 16 def address_line3 xpath(%w[Property Address Address-Line-3]).to_s end |
#address_line4 ⇒ Object
20 21 22 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 20 def address_line4 xpath(%w[Property Address Address-Line-4]).to_s end |
#all_floor_descriptions ⇒ Object
497 498 499 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 497 def all_floor_descriptions @xml_doc.search("Property-Summary/Floor/Description").map(&:content) end |
#all_floor_energy_efficiency_rating ⇒ Object
501 502 503 504 505 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 501 def @xml_doc .search("Property-Summary/Floor/Energy-Efficiency-Rating") .map(&:content) end |
#all_floor_env_energy_efficiency_rating ⇒ Object
507 508 509 510 511 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 507 def @xml_doc .search("Property-Summary/Floor/Environmental-Efficiency-Rating") .map(&:content) end |
#all_hot_water_descriptions ⇒ Object
286 287 288 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 286 def all_hot_water_descriptions @xml_doc.search("Hot-Water/Description").map(&:content) end |
#all_lighting_descriptions ⇒ Object
290 291 292 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 290 def all_lighting_descriptions @xml_doc.search("Lighting/Description").map(&:content) end |
#all_main_heating_controls_descriptions ⇒ Object
272 273 274 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 272 def all_main_heating_controls_descriptions @xml_doc.search("Main-Heating-Controls/Description").map(&:content) end |
#all_main_heating_controls_energy_efficiency ⇒ Object
513 514 515 516 517 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 513 def all_main_heating_controls_energy_efficiency @xml_doc .search("Main-Heating-Controls/Energy-Efficiency-Rating") .map(&:content) end |
#all_main_heating_controls_environmental_efficiency ⇒ Object
519 520 521 522 523 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 519 def all_main_heating_controls_environmental_efficiency @xml_doc .search("Main-Heating-Controls/Environmental-Efficiency-Rating") .map(&:content) end |
#all_main_heating_descriptions ⇒ Object
268 269 270 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 268 def all_main_heating_descriptions @xml_doc.search("Main-Heating/Description").map(&:content) end |
#all_main_heating_energy_efficiency ⇒ Object
276 277 278 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 276 def all_main_heating_energy_efficiency @xml_doc.search("Main-Heating/Energy-Efficiency-Rating").map(&:content) end |
#all_main_heating_environmental_efficiency ⇒ Object
280 281 282 283 284 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 280 def all_main_heating_environmental_efficiency @xml_doc .search("Main-Heating/Environmental-Efficiency-Rating") .map(&:content) end |
#all_roof_descriptions ⇒ Object
252 253 254 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 252 def all_roof_descriptions @xml_doc.search("Roof/Description").map(&:content) end |
#all_roof_energy_efficiency_rating ⇒ Object
256 257 258 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 256 def @xml_doc.search("Roof/Energy-Efficiency-Rating").map(&:content) end |
#all_roof_env_energy_efficiency_rating ⇒ Object
260 261 262 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 260 def @xml_doc.search("Roof/Environmental-Efficiency-Rating").map(&:content) end |
#all_secondary_heating_descriptions ⇒ Object
294 295 296 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 294 def all_secondary_heating_descriptions @xml_doc.search("Secondary-Heating/Description").map(&:content) end |
#all_wall_descriptions ⇒ Object
457 458 459 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 457 def all_wall_descriptions @xml_doc.search("Wall/Description").map(&:content) end |
#all_wall_energy_efficiency_rating ⇒ Object
461 462 463 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 461 def @xml_doc.search("Wall/Energy-Efficiency-Rating").map(&:content) end |
#all_wall_env_energy_efficiency_rating ⇒ Object
465 466 467 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 465 def @xml_doc.search("Wall/Environmental-Efficiency-Rating").map(&:content) end |
#all_window_descriptions ⇒ Object
264 265 266 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 264 def all_window_descriptions @xml_doc.search("Window/Description").map(&:content) end |
#assessment_id ⇒ Object
4 5 6 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 4 def assessment_id xpath(%w[RRN]) end |
#assessor_email ⇒ Object
40 41 42 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 40 def assessor_email xpath(%w[Energy-Assessor E-Mail]) end |
#assessor_name ⇒ Object
36 37 38 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 36 def assessor_name xpath(%w[Energy-Assessor Name]) end |
#assessor_telephone ⇒ Object
44 45 46 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 44 def assessor_telephone xpath(%w[Energy-Assessor Telephone]) end |
#built_form ⇒ Object
445 446 447 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 445 def built_form xpath(%w[Built-Form]) end |
#co2_emissions_current_per_floor_area ⇒ Object
314 315 316 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 314 def co2_emissions_current_per_floor_area xpath(%w[CO2-Emissions-Current-Per-Floor-Area])&.to_f end |
#country_code ⇒ Object
298 299 300 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 298 def country_code xpath(%w[Country-Code]) end |
#current_carbon_emission ⇒ Object
162 163 164 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 162 def current_carbon_emission xpath(%w[CO2-Emissions-Current]) end |
#current_energy_rating ⇒ Object
170 171 172 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 170 def xpath(%w[Energy-Rating-Current])&.to_i end |
#current_space_heating_demand ⇒ Object
198 199 200 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 198 def current_space_heating_demand xpath(%w[Space-Heating-Existing-Dwelling]) end |
#current_water_heating_demand ⇒ Object
202 203 204 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 202 def current_water_heating_demand xpath(%w[Water-Heating]) end |
#cylinder_insul_thickness ⇒ Object
543 544 545 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 543 def cylinder_insul_thickness xpath(%w[Cylinder-Insulation-Thickness]) end |
#cylinder_insulation_type ⇒ Object
547 548 549 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 547 def cylinder_insulation_type xpath(%w[Cylinder-Insulation-Type]) end |
#cylinder_size ⇒ Object
551 552 553 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 551 def cylinder_size xpath(%w[Cylinder-Size]) end |
#date_of_assessment ⇒ Object
48 49 50 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 48 def date_of_assessment xpath(%w[Inspection-Date]) end |
#date_of_completion ⇒ Object
56 57 58 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 56 def date_of_completion xpath(%w[Completion-Date]) end |
#date_of_expiry ⇒ Object
64 65 66 67 68 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 64 def date_of_expiry expires_at = (Date.parse(date_of_registration) - 1) >> 12 * 10 expires_at.to_s end |
#date_of_registration ⇒ Object
52 53 54 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 52 def date_of_registration xpath(%w[Registration-Date]) end |
#dwelling_type ⇒ Object
180 181 182 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 180 def dwelling_type xpath(%w[Dwelling-Type]) end |
#electricity_smart_meter_present ⇒ Object
477 478 479 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 477 def electricity_smart_meter_present Helper::ToBool.execute(xpath(%w[Electricity-Smart-Meter-Present])) end |
#energy_consumption_potential ⇒ Object
248 249 250 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 248 def energy_consumption_potential xpath(%w[Energy-Consumption-Potential])&.to_f end |
#energy_rating_current ⇒ Object
228 229 230 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 228 def xpath(%w[Energy-Rating-Current])&.to_i end |
#energy_rating_potential ⇒ Object
232 233 234 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 232 def xpath(%w[Energy-Rating-Potential])&.to_i end |
#environmental_impact_current ⇒ Object
236 237 238 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 236 def environmental_impact_current xpath(%w[Environmental-Impact-Current])&.to_i end |
#environmental_impact_potential ⇒ Object
240 241 242 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 240 def environmental_impact_potential xpath(%w[Environmental-Impact-Potential])&.to_i end |
#estimated_energy_cost ⇒ Object
174 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 174 def estimated_energy_cost; end |
#extensions_count ⇒ Object
449 450 451 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 449 def extensions_count xpath(%w[Extensions-Count])&.to_i end |
#fixed_lighting_outlets_count ⇒ Object
355 356 357 358 359 360 361 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 355 def fixed_lighting_outlets_count fixed_lighting_outlets_count = low_energy_fixed_lighting_outlets_count if xpath(%w[Incandescent-Fixed-Lighting-Bulbs-Count]) fixed_lighting_outlets_count += xpath(%w[Incandescent-Fixed-Lighting-Bulbs-Count])&.to_i end fixed_lighting_outlets_count end |
#floor_height ⇒ Object
493 494 495 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 493 def floor_height @xml_doc.search("Room-Height").map(&:content) end |
#floor_level ⇒ Object
481 482 483 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 481 def floor_level xpath(%w[Flat-Location]) end |
#floors_insulation ⇒ Object
605 606 607 608 609 610 611 612 613 614 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 605 def floors_insulation @xml_doc .search("SAP-Building-Part") .map do |node| { floor_u_value: node.at_xpath("Floor-U-Value")&.content, floor_insulation_thickness: node.at_xpath("Floor-Insulation-Thickness")&.content, } end end |
#gas_smart_meter_present ⇒ Object
473 474 475 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 473 def gas_smart_meter_present Helper::ToBool.execute(xpath(%w[Gas-Smart-Meter-Present])) end |
#glazed_area ⇒ Object
342 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 342 def glazed_area; end |
#habitable_room_count ⇒ Object
224 225 226 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 224 def habitable_room_count xpath(%w[Habitable-Room-Count])&.to_i end |
#has_cylinder_thermostat ⇒ Object
555 556 557 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 555 def has_cylinder_thermostat xpath(%w[Cylinder-Thermostat]) end |
#heat_loss_corridor ⇒ Object
397 398 399 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 397 def heat_loss_corridor xpath(%w[Heat-Loss-Corridor]) end |
#heated_room_count ⇒ Object
344 345 346 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 344 def heated_room_count xpath(%w[Heated-Room-Count])&.to_i end |
#heating_cost_current ⇒ Object
150 151 152 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 150 def heating_cost_current xpath(%w[Heating-Cost-Current]) end |
#heating_cost_potential ⇒ Object
138 139 140 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 138 def heating_cost_potential xpath(%w[Heating-Cost-Potential]) end |
#hot_water_cost_current ⇒ Object
146 147 148 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 146 def hot_water_cost_current xpath(%w[Hot-Water-Cost-Current]) end |
#hot_water_cost_potential ⇒ Object
134 135 136 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 134 def hot_water_cost_potential xpath(%w[Hot-Water-Cost-Potential]) end |
#hot_water_description ⇒ Object
381 382 383 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 381 def hot_water_description xpath(%w[Hot-Water Description]) end |
#hot_water_energy_efficiency_rating ⇒ Object
385 386 387 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 385 def xpath(%w[Hot-Water Energy-Efficiency-Rating]) end |
#hot_water_environmental_efficiency_rating ⇒ Object
389 390 391 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 389 def xpath(%w[Hot-Water Environmental-Efficiency-Rating]) end |
#impact_of_cavity_insulation ⇒ Object
206 207 208 209 210 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 206 def impact_of_cavity_insulation if xpath(%w[Impact-Of-Cavity-Insulation]) xpath(%w[Impact-Of-Cavity-Insulation])&.to_i end end |
#impact_of_loft_insulation ⇒ Object
212 213 214 215 216 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 212 def impact_of_loft_insulation if xpath(%w[Impact-Of-Loft-Insulation]) xpath(%w[Impact-Of-Loft-Insulation])&.to_i end end |
#impact_of_solid_wall_insulation ⇒ Object
218 219 220 221 222 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 218 def impact_of_solid_wall_insulation if xpath(%w[Impact-Of-Solid-Wall-Insulation]) xpath(%w[Impact-Of-Solid-Wall-Insulation])&.to_i end end |
#improvements ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 96 def improvements @xml_doc .search("Suggested-Improvements Improvement") .map do |node| { energy_performance_rating_improvement: xpath(%w[Energy-Performance-Rating], node).to_i, environmental_impact_rating_improvement: xpath(%w[Environmental-Impact-Rating], node).to_i, green_deal_category_code: xpath(%w[Green-Deal-Category], node), improvement_category: xpath(%w[Improvement-Category], node), improvement_code: xpath(%w[Improvement-Details Improvement-Number], node), improvement_description: xpath(%w[Improvement-Description], node), improvement_title: improvement_title(node), improvement_type: xpath(%w[Improvement-Type], node), indicative_cost: xpath(%w[Indicative-Cost], node), sequence: xpath(%w[Sequence], node).to_i, typical_saving: xpath(%w[Typical-Saving], node), } end end |
#level ⇒ Object
322 323 324 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 322 def level xpath(%w[Level]) end |
#lighting_cost_current ⇒ Object
154 155 156 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 154 def lighting_cost_current xpath(%w[Lighting-Cost-Current]) end |
#lighting_cost_potential ⇒ Object
142 143 144 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 142 def lighting_cost_potential xpath(%w[Lighting-Cost-Potential]) end |
#lighting_description ⇒ Object
429 430 431 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 429 def lighting_description xpath(%w[Lighting Description]) end |
#lighting_energy_efficiency_rating ⇒ Object
433 434 435 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 433 def xpath(%w[Lighting Energy-Efficiency-Rating]) end |
#lighting_environmental_efficiency_rating ⇒ Object
437 438 439 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 437 def xpath(%w[Lighting Environmental-Efficiency-Rating]) end |
#low_energy_fixed_lighting_outlets_count ⇒ Object
363 364 365 366 367 368 369 370 371 372 373 374 375 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 363 def low_energy_fixed_lighting_outlets_count low_energy_fixed_lighting_outlets_count = 0 if xpath(%w[CFL-Fixed-Lighting-Bulbs-Count]) low_energy_fixed_lighting_outlets_count += xpath(%w[CFL-Fixed-Lighting-Bulbs-Count])&.to_i end if xpath(%w[LED-Fixed-Lighting-Bulbs-Count]) low_energy_fixed_lighting_outlets_count += xpath(%w[LED-Fixed-Lighting-Bulbs-Count])&.to_i end if xpath(%w[Low-Energy-Fixed-Lighting-Bulbs-Count]) low_energy_fixed_lighting_outlets_count += xpath(%w[Low-Energy-Fixed-Lighting-Bulbs-Count])&.to_i end low_energy_fixed_lighting_outlets_count end |
#low_energy_lighting ⇒ Object
348 349 350 351 352 353 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 348 def low_energy_lighting if fixed_lighting_outlets_count.zero? return 0 end ((low_energy_fixed_lighting_outlets_count.to_f / fixed_lighting_outlets_count) * 100).round end |
#main_dwelling_construction_age_band_or_year ⇒ Object
525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 525 def main_dwelling_construction_age_band_or_year sap_building_parts = @xml_doc.xpath("//SAP-Building-Parts/SAP-Building-Part") sap_building_parts.each do |sap_building_part| building_part_number = sap_building_part.at("Building-Part-Number") # Identifies the Main Dwelling if building_part_number&.content == "1" return ( sap_building_part.at_xpath( "Construction-Age-Band | Construction-Year", )&.content ) end end nil end |
#main_fuel_type ⇒ Object
302 303 304 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 302 def main_fuel_type xpath(%w[Main-Fuel-Type]) end |
#main_heating_controls ⇒ Object
334 335 336 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 334 def main_heating_controls xpath(%w[Main-Heating-Controls Description]) end |
#main_heating_details ⇒ Object
649 650 651 652 653 654 655 656 657 658 659 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 649 def main_heating_details @xml_doc .search("Main-Heating") .map do |node| { main_heating_index_number: xpath(%w[Main-Heating-Index-Number]), sap_main_heating_code: xpath(%w[SAP-Main-Heating-Code]), main_fuel_type: xpath(%w[Main-Fuel-Type]), } end end |
#mains_gas ⇒ Object
318 319 320 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 318 def mains_gas xpath(%w[Mains-Gas]) end |
#mechanical_ventilation ⇒ Object
489 490 491 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 489 def mechanical_ventilation xpath(%w[Mechanical-Ventilation]) end |
#meter_type ⇒ Object
469 470 471 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 469 def meter_type xpath(%w[Meter-Type]) end |
#multiple_glazed_proportion ⇒ Object
338 339 340 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 338 def multiple_glazed_proportion xpath(%w[Multiple-Glazed-Proportion]) end |
#open_fireplaces_count ⇒ Object
377 378 379 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 377 def open_fireplaces_count xpath(%w[Open-Chimneys-Count])&.to_i end |
#party_wall_construction ⇒ Object
559 560 561 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 559 def party_wall_construction xpath(%w[SAP-Building-Part Party-Wall-Construction]) end |
#party_walls_construction ⇒ Object
For lodgement rules
565 566 567 568 569 570 571 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 565 def party_walls_construction @xml_doc .search("SAP-Building-Part") .map do |node| xpath(%w[Party-Wall-Construction], node) end end |
#photovoltaic_roof_area_percent ⇒ Object
441 442 443 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 441 def photovoltaic_roof_area_percent xpath(%w[Photovoltaic-Supply Percent-Roof-Area]) end |
#postcode ⇒ Object
28 29 30 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 28 def postcode xpath(%w[Property Address Postcode]) end |
#potential_carbon_emission ⇒ Object
158 159 160 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 158 def potential_carbon_emission xpath(%w[CO2-Emissions-Potential]) end |
#potential_energy_rating ⇒ Object
166 167 168 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 166 def xpath(%w[Energy-Rating-Potential])&.to_i end |
#potential_energy_saving ⇒ Object
184 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 184 def potential_energy_saving; end |
#primary_energy_use ⇒ Object
244 245 246 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 244 def primary_energy_use xpath(%w[Energy-Consumption-Current])&.to_f end |
#property_age_band ⇒ Object
186 187 188 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 186 def property_age_band xpath(%w[Construction-Age-Band]) end |
#property_summary ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 70 def property_summary @xml_doc.search("Energy-Assessment Property-Summary").children.select( &:element? ).map { |node| next if xpath(%w[Energy-Efficiency-Rating], node).nil? { energy_efficiency_rating: xpath(%w[Energy-Efficiency-Rating], node).to_i, environmental_efficiency_rating: xpath(%w[Environmental-Efficiency-Rating], node).to_i, name: node.name.underscore, description: xpath(%w[Description], node), } }.compact end |
#recommendations_for_report ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 119 def recommendations_for_report @xml_doc .search("Suggested-Improvements Improvement") .map do |node| { sequence: xpath(%w[Sequence], node).to_i, improvement_summary: xpath(%w[Improvement-Summary], node), improvement_description: xpath(%w[Improvement-Description], node), improvement_code: xpath(%w[Improvement-Details Improvement-Number], node), indicative_cost: xpath(%w[Indicative-Cost], node), } end end |
#related_party_disclosure_number ⇒ Object
91 92 93 94 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 91 def disclosure_number = xpath(%w[Related-Party-Disclosure-Number]) disclosure_number.nil? ? nil : disclosure_number.to_i end |
#related_party_disclosure_text ⇒ Object
87 88 89 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 87 def xpath(%w[Related-Party-Disclosure-Text]) end |
#report_type ⇒ Object
453 454 455 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 453 def report_type xpath(%w[Report-Type]) end |
#rooms_in_roof ⇒ Object
641 642 643 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 641 def rooms_in_roof nil end |
#rooms_in_roof_insulation ⇒ Object
601 602 603 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 601 def rooms_in_roof_insulation nil end |
#rooms_in_roof_roof_insulation ⇒ Object
645 646 647 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 645 def rooms_in_roof_roof_insulation nil end |
#rooves_construction_and_insulation ⇒ Object
590 591 592 593 594 595 596 597 598 599 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 590 def rooves_construction_and_insulation @xml_doc .search("SAP-Building-Part") .map do |node| { roof_insulation_location: node.at_xpath("Roof-Insulation-Location")&.content, roof_construction: node.at_xpath("Roof-Construction")&.content, } end end |
#rooves_insulation ⇒ Object
616 617 618 619 620 621 622 623 624 625 626 627 628 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 616 def rooves_insulation @xml_doc .search("SAP-Building-Part") .map do |node| { roof_u_value: node.at_xpath("Roof-U-Value")&.content, roof_insulation_thickness: node.at_xpath("Roof-Insulation-Thickness")&.content, rafter_insulation_thickness: node.at_xpath("Rafter-Insulation-Thickness")&.content, flat_roof_insulation_thickness: node.at_xpath("Flat-Roof-Insulation-Thickness")&.content, sloping_ceiling_insulation_thickness: node.at_xpath("Sloping-Ceiling-Insulation-Thickness")&.content, } end end |
#scheme_assessor_id ⇒ Object
32 33 34 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 32 def scheme_assessor_id xpath(%w[Membership-Number]) or xpath(%w[Certificate-Number]) end |
#secondary_fuel_type ⇒ Object
306 307 308 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 306 def secondary_fuel_type xpath(%w[Secondary-Fuel-Type]) end |
#secondary_heating_description ⇒ Object
417 418 419 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 417 def secondary_heating_description xpath(%w[Secondary-Heating Description]) end |
#secondary_heating_energy_efficiency_rating ⇒ Object
421 422 423 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 421 def xpath(%w[Secondary-Heating Energy-Efficiency-Rating]) end |
#secondary_heating_environmental_efficiency_rating ⇒ Object
425 426 427 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 425 def xpath(%w[Secondary-Heating Environmental-Efficiency-Rating]) end |
#solar_water_heating_flag ⇒ Object
485 486 487 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 485 def solar_water_heating_flag xpath(%w[Solar-Water-Heating]) end |
#storey_count ⇒ Object
330 331 332 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 330 def storey_count xpath(%w[Storey-Count])&.to_i end |
#tenure ⇒ Object
190 191 192 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 190 def tenure xpath(%w[Tenure]) end |
#top_storey ⇒ Object
326 327 328 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 326 def top_storey xpath(%w[Top-Storey]) end |
#total_floor_area ⇒ Object
176 177 178 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 176 def total_floor_area xpath(%w[Property-Summary Total-Floor-Area]) end |
#town ⇒ Object
24 25 26 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 24 def town xpath(%w[Property Address Post-Town]) end |
#transaction_type ⇒ Object
194 195 196 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 194 def transaction_type xpath(%w[Transaction-Type]) end |
#unheated_corridor_length ⇒ Object
401 402 403 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 401 def unheated_corridor_length xpath(%w[Unheated-Corridor-Length]) end |
#walls_insulation ⇒ Object
630 631 632 633 634 635 636 637 638 639 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 630 def walls_insulation @xml_doc .search("SAP-Building-Part") .map do |node| { wall_u_value: node.at_xpath("Wall-U-Value")&.content, wall_insulation_thickness: node.at_xpath("Wall-Insulation-Thickness")&.content, } end end |
#walls_thickness ⇒ Object
573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 573 def walls_thickness @xml_doc .search("SAP-Building-Part") .map do |node| { alternative_wall_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness")&.content, alternative_wall_thickness_measured: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness-Measured")&.content, alternative_wall_construction: node.at_xpath("SAP-Alternative-Wall/Wall-Construction")&.content, alternative_wall_u_value: node.at_xpath("SAP-Alternative-Wall/Wall-U-Value")&.content, alternative_wall_insulation_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Insulation-Thickness")&.content, wall_thickness: node.at_xpath("Wall-Thickness")&.content, wall_construction: node.at_xpath("Wall-Construction")&.content, wall_thickness_measured: node.at_xpath("Wall-Thickness-Measured")&.content, } end end |
#water_heating ⇒ Object
661 662 663 664 665 666 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 661 def water_heating { water_heating_fuel: xpath(%w[Water-Heating-Fuel]), water_heating_code: xpath(%w[Water-Heating-Code]), } end |
#water_heating_fuel ⇒ Object
310 311 312 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 310 def water_heating_fuel xpath(%w[Water-Heating-Fuel]) end |
#wind_turbine_count ⇒ Object
393 394 395 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 393 def wind_turbine_count xpath(%w[Wind-Turbines-Count])&.to_i end |
#window_description ⇒ Object
405 406 407 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 405 def window_description xpath(%w[Window Description]) end |
#window_energy_efficiency_rating ⇒ Object
409 410 411 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 409 def xpath(%w[Window Energy-Efficiency-Rating]) end |
#window_environmental_efficiency_rating ⇒ Object
413 414 415 |
# File 'lib/view_model/rd_sap_schema_s_210/common_schema.rb', line 413 def xpath(%w[Window Environmental-Efficiency-Rating]) end |