class ViewModel::SapSchema102::CommonSchema

Public Instance Methods

address_id() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 61
def address_id
  "LPRN-#{xpath(%w[UPRN])}"
end
address_line1() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 8
def address_line1
  xpath(%w[Property Address Address-Line-1])
end
address_line2() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 12
def address_line2
  xpath(%w[Property Address Address-Line-2]).to_s
end
address_line3() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 16
def address_line3
  xpath(%w[Property Address Address-Line-3]).to_s
end
address_line4() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 20
def address_line4
  xpath(%w[Property Address Address-Line-4]).to_s
end
all_floor_descriptions() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 447
def all_floor_descriptions
  @xml_doc.search("Property-Summary/Floor/Description").map(&:content)
end
all_floor_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 451
def all_floor_energy_efficiency_rating
  @xml_doc
    .search("Property-Summary/Floor/Energy-Efficiency-Rating")
    .map(&:content)
end
all_floor_env_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 457
def all_floor_env_energy_efficiency_rating
  @xml_doc
    .search("Property-Summary/Floor/Environmental-Efficiency-Rating")
    .map(&:content)
end
all_main_heating_controls_descriptions() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 399
def all_main_heating_controls_descriptions
  @xml_doc.search("Main-Heating-Controls/Description").map(&:content)
end
all_main_heating_controls_energy_efficiency() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 467
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() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 473
def all_main_heating_controls_environmental_efficiency
  @xml_doc
    .search("Main-Heating-Controls/Environmental-Efficiency-Rating")
    .map(&:content)
end
all_main_heating_descriptions() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 391
def all_main_heating_descriptions
  @xml_doc.search("Main-Heating/Description").map(&:content)
end
all_main_heating_energy_efficiency() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 463
def all_main_heating_energy_efficiency
  @xml_doc.search("Main-Heating/Energy-Efficiency-Rating").map(&:content)
end
all_main_heating_environmental_efficiency() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 479
def all_main_heating_environmental_efficiency
  @xml_doc
    .search("Main-Heating/Environmental-Efficiency-Rating")
    .map(&:content)
end
all_roof_descriptions() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 407
def all_roof_descriptions
  @xml_doc.search("Roof/Description").map(&:content)
end
all_roof_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 411
def all_roof_energy_efficiency_rating
  @xml_doc.search("Roof/Energy-Efficiency-Rating").map(&:content)
end
all_roof_env_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 415
def all_roof_env_energy_efficiency_rating
  @xml_doc.search("Roof/Environmental-Efficiency-Rating").map(&:content)
end
all_wall_descriptions() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 419
def all_wall_descriptions
  @xml_doc.search("Walls/Description").map(&:content)
end
all_wall_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 423
def all_wall_energy_efficiency_rating
  @xml_doc.search("Walls/Energy-Efficiency-Rating").map(&:content)
end
all_wall_env_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 427
def all_wall_env_energy_efficiency_rating
  @xml_doc.search("Walls/Environmental-Efficiency-Rating").map(&:content)
end
assessment_id() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 4
def assessment_id
  xpath(%w[RRN])
end
assessor_email() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 45
def assessor_email
  xpath(%w[Home-Inspector E-Mail])
end
assessor_name() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 36
def assessor_name
  [
    xpath(%w[Home-Inspector Name Prefix]),
    xpath(%w[Home-Inspector Name First-Name]),
    xpath(%w[Home-Inspector Name Surname]),
    xpath(%w[Home-Inspector Name Suffix]),
  ].reject { |e| e.to_s.empty? }.join(" ")
end
assessor_telephone() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 49
def assessor_telephone
  xpath(%w[Home-Inspector Telephone])
end
built_form() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 375
def built_form
  xpath(%w[Built-Form])
end
co2_emissions_current_per_floor_area() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 266
def co2_emissions_current_per_floor_area
  xpath(%w[CO2-Emissions-Current-Per-Floor-Area])
end
country_code() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 235
def country_code
  xpath(%w[Country-Code])
end
current_carbon_emission() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 162
def current_carbon_emission
  xpath(%w[CO2-Emissions-Current])
end
current_energy_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 170
def current_energy_rating
  xpath(%w[Energy-Rating-Current]).to_i
end
current_space_heating_demand() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 209
def current_space_heating_demand
  xpath(%w[Space-Heating-Existing-Dwelling])
end
current_water_heating_demand() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 213
def current_water_heating_demand
  xpath(%w[Water-Heating])
end
cylinder_insul_thickness() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 485
def cylinder_insul_thickness
  xpath(%w[Cylinder-Insulation-Thickness])
end
cylinder_insulation_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 489
def cylinder_insulation_type
  xpath(%w[Cylinder-Insulation-Type])
end
cylinder_size() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 493
def cylinder_size
  xpath(%w[Cylinder-Size])
end
date_of_assessment() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 53
def date_of_assessment
  xpath(%w[Inspection-Date])
end
date_of_expiry() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 65
def date_of_expiry
  expires_at = (Date.parse(date_of_registration) - 1) >> 12 * 10

  expires_at.to_s
end
date_of_registration() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 57
def date_of_registration
  xpath(%w[Registration-Date])
end
dwelling_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 193
def dwelling_type; end
energy_consumption_potential() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 178
def energy_consumption_potential
  xpath(%w[Energy-Consumption-Potential])
end
energy_tariff() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 431
def energy_tariff
  xpath(%w[Electricity-Tariff])
end
environmental_impact_current() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 258
def environmental_impact_current
  xpath(%w[Environmental-Impact-Current])
end
environmental_impact_potential() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 262
def environmental_impact_potential
  xpath(%w[Environmental-Impact-Potential])
end
estimated_energy_cost() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 182
def estimated_energy_cost
  xpath(%w[Estimated-Energy-Cost])
end
extensions_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 395
def extensions_count
  xpath(%w[Extensions-Count])
end
fixed_lighting_outlets_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 311
def fixed_lighting_outlets_count
  xpath(%w[Fixed-Lighting-Outlets-Count])
end
floor_level() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 443
def floor_level
  xpath(%w[SAP-Flat-Details Level])
end
glazed_area() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 295
def glazed_area
  nil
end
habitable_room_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 299
def habitable_room_count
  nil
end
has_cylinder_thermostat() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 497
def has_cylinder_thermostat
  nil
end
heat_loss_corridor() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 383
def heat_loss_corridor
  xpath(%w[Heat-Loss-Corridor])
end
heated_room_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 303
def heated_room_count
  nil
end
heating_cost_current() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 150
def heating_cost_current
  xpath(%w[Heating-Cost-Current])
end
heating_cost_potential() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 138
def heating_cost_potential
  xpath(%w[Heating-Cost-Potential])
end
hot_water_cost_current() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 146
def hot_water_cost_current
  xpath(%w[Hot-Water-Cost-Current])
end
hot_water_cost_potential() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 134
def hot_water_cost_potential
  xpath(%w[Hot-Water-Cost-Potential])
end
hot_water_description() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 323
def hot_water_description
  xpath(%w[Hot-Water Description])
end
hot_water_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 327
def hot_water_energy_efficiency_rating
  xpath(%w[Hot-Water Energy-Efficiency-Rating])
end
hot_water_environmental_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 331
def hot_water_environmental_efficiency_rating
  xpath(%w[Hot-Water Environmental-Efficiency-Rating])
end
impact_of_cavity_insulation() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 217
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() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 223
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() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 229
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() click to toggle source
# File lib/view_model/sap_schema_102/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() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 274
def level
  xpath(%w[Level])
end
lighting_cost_current() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 154
def lighting_cost_current
  xpath(%w[Lighting-Cost-Current])
end
lighting_cost_potential() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 142
def lighting_cost_potential
  xpath(%w[Lighting-Cost-Potential])
end
lighting_description() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 359
def lighting_description
  xpath(%w[Lighting Description])
end
lighting_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 363
def lighting_energy_efficiency_rating
  xpath(%w[Lighting Energy-Efficiency-Rating])
end
lighting_environmental_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 367
def lighting_environmental_efficiency_rating
  xpath(%w[Lighting Environmental-Efficiency-Rating])
end
low_energy_fixed_lighting_outlets_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 315
def low_energy_fixed_lighting_outlets_count
  xpath(%w[Low-Energy-Fixed-Lighting-Outlets-Count])
end
low_energy_lighting() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 307
def low_energy_lighting
  xpath(%w[Low-Energy-Fixed-Lighting-Outlets-Percentage])
end
main_fuel_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 239
def main_fuel_type
  xpath(%w[Main-Fuel-Type])
end
main_heating_controls() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 287
def main_heating_controls
  xpath(%w[Main-Heating-Controls Description])
end
mains_gas() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 270
def mains_gas
  nil
end
mech_vent_sys_index_number() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 501
def mech_vent_sys_index_number
  nil
end
mechanical_vent_data_source() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 505
def mechanical_vent_data_source
  nil
end
mechanical_ventilation() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 439
def mechanical_ventilation
  nil
end
multiple_glazed_proportion() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 291
def multiple_glazed_proportion
  xpath(%w[Multiple-Glazed-Proportion])
end
open_fireplaces_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 319
def open_fireplaces_count
  xpath(%w[Open-Fireplaces-Count])
end
photovoltaic_roof_area_percent() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 371
def photovoltaic_roof_area_percent
  nil
end
postcode() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 28
def postcode
  xpath(%w[Property Address Postcode])
end
potential_carbon_emission() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 158
def potential_carbon_emission
  xpath(%w[CO2-Emissions-Potential])
end
potential_energy_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 166
def potential_energy_rating
  xpath(%w[Energy-Rating-Potential]).to_i
end
potential_energy_saving() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 195
def potential_energy_saving; end
primary_energy_use() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 174
def primary_energy_use
  xpath(%w[Energy-Consumption-Current])
end
property_age_band() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 197
def property_age_band
  xpath(%w[Construction-Year])
end
property_summary() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 71
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() click to toggle source
# File lib/view_model/sap_schema_102/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
report_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 403
def report_type
  xpath(%w[Report-Type])
end
scheme_assessor_id() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 32
def scheme_assessor_id
  xpath(%w[Certificate-Number])
end
secondary_fuel_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 243
def secondary_fuel_type
  xpath(%w[Secondary-Fuel-Type])
end
secondary_heating_description() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 347
def secondary_heating_description
  xpath(%w[Secondary-Heating Description])
end
secondary_heating_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 351
def secondary_heating_energy_efficiency_rating
  xpath(%w[Secondary-Heating Energy-Efficiency-Rating])
end
secondary_heating_environmental_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 355
def secondary_heating_environmental_efficiency_rating
  xpath(%w[Secondary-Heating Environmental-Efficiency-Rating])
end
solar_water_heating_flag() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 435
def solar_water_heating_flag
  nil
end
storey_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 283
def storey_count
  nil
end
tenure() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 201
def tenure
  nil
end
thermal_store() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 509
def thermal_store
  nil
end
top_storey() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 278
def top_storey
  flat_level_code = xpath(%w[Level])
  flat_level_code == "3" ? "Y" : "N"
end
total_floor_area() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 186
def total_floor_area
  building_part_areas = @xml_doc.search("//SAP-Building-Part/SAP-Floor-Dimensions/SAP-Floor-Dimension/Total-Floor-Area").map(&:content)
  room_in_roof_areas = @xml_doc.search("//SAP-Building-Part/SAP-Room-In-Roof/Floor-Area").map(&:content)
  all_areas = (building_part_areas + room_in_roof_areas).map(&:to_f)
  all_areas.sum.round.to_i.to_s
end
town() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 24
def town
  xpath(%w[Property Address Post-Town])
end
transaction_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 205
def transaction_type
  nil
end
type_of_assessment() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 247
def type_of_assessment
  case xpath(%w[Report-Type]).to_i
  when 1
    "HCR"
  when 2
    "RdSAP"
  when 3
    "SAP"
  end
end
unheated_corridor_length() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 379
def unheated_corridor_length
  xpath(%w[Unheated-Corridor-Length])
end
ventilation_type() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 513
def ventilation_type
  nil
end
wind_turbine_count() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 387
def wind_turbine_count
  xpath(%w[Wind-Turbines-Count])
end
window_description() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 335
def window_description
  xpath(%w[Windows Description])
end
window_energy_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 339
def window_energy_efficiency_rating
  xpath(%w[Windows Energy-Efficiency-Rating])
end
window_environmental_efficiency_rating() click to toggle source
# File lib/view_model/sap_schema_102/common_schema.rb, line 343
def window_environmental_efficiency_rating
  xpath(%w[Windows Environmental-Efficiency-Rating])
end