Class: ViewModel::SapSchema1800::CommonSchema

Inherits:
DomesticEpcViewModel show all
Defined in:
lib/view_model/sap_schema_1800/common_schema.rb

Instance Method Summary collapse

Methods inherited from DomesticEpcViewModel

#addendum, #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

#initialize, #xpath

Constructor Details

This class inherits a constructor from ViewModel::BaseViewModel

Instance Method Details

#address_idObject



56
57
58
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 56

def address_id
  xpath(%w[UPRN])
end

#address_line1Object



8
9
10
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 8

def address_line1
  xpath(%w[Report-Header Property Address Address-Line-1])
end

#address_line2Object



12
13
14
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 12

def address_line2
  xpath(%w[Report-Header Property Address Address-Line-2])
end

#address_line3Object



16
17
18
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 16

def address_line3
  xpath(%w[Report-Header Property Address Address-Line-3])
end

#all_building_partsObject



282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 282

def all_building_parts
  @xml_doc
    .search("SAP-Building-Parts/SAP-Building-Part")
    .map do |part|
      {
        roof_insulation_thickness:
          if part.xpath("Roof-Insulation-Thickness").empty?
            nil
          else
            part.xpath("Roof-Insulation-Thickness").text
          end,
        rafter_insulation_thickness:
          xpath(%w[Rafter-Insulation-Thickness], part),
        flat_roof_insulation_thickness:
          xpath(%w[Flat-Roof-Insulation-Thickness], part),
        sloping_ceiling_insulation_thickness:
          xpath(%w[Sloping-Ceiling-Insulation-Thickness], part),
        roof_u_value: xpath(%w[Roof-U-Value], part),
      }
    end
end

#all_floor_descriptionsObject



484
485
486
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 484

def all_floor_descriptions
  @xml_doc.search("Property-Summary/Floor/Description").map(&:content)
end

#all_floor_energy_efficiency_ratingObject



488
489
490
491
492
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 488

def all_floor_energy_efficiency_rating
  @xml_doc
    .search("Property-Summary/Floor/Energy-Efficiency-Rating")
    .map(&:content)
end

#all_floor_env_energy_efficiency_ratingObject



494
495
496
497
498
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 494

def all_floor_env_energy_efficiency_rating
  @xml_doc
    .search("Property-Summary/Floor/Environmental-Efficiency-Rating")
    .map(&:content)
end

#all_main_heating_controls_descriptionsObject



436
437
438
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 436

def all_main_heating_controls_descriptions
  @xml_doc.search("Main-Heating-Controls/Description").map(&:content)
end

#all_main_heating_controls_energy_efficiencyObject



500
501
502
503
504
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 500

def all_main_heating_controls_energy_efficiency
  @xml_doc
    .search("Main-Heating-Controls/Energy-Efficiency-Rating")
    .map(&:content)
end

#all_main_heating_controls_environmental_efficiencyObject



506
507
508
509
510
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 506

def all_main_heating_controls_environmental_efficiency
  @xml_doc
    .search("Main-Heating-Controls/Environmental-Efficiency-Rating")
    .map(&:content)
end

#all_main_heating_descriptionsObject



432
433
434
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 432

def all_main_heating_descriptions
  @xml_doc.search("Main-Heating/Description").map(&:content)
end

#all_main_heating_energy_efficiencyObject



476
477
478
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 476

def all_main_heating_energy_efficiency
  @xml_doc.search("Main-Heating/Energy-Efficiency-Rating").map(&:content)
end

#all_main_heating_environmental_efficiencyObject



512
513
514
515
516
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 512

def all_main_heating_environmental_efficiency
  @xml_doc
    .search("Main-Heating/Environmental-Efficiency-Rating")
    .map(&:content)
end

#all_roof_descriptionsObject



444
445
446
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 444

def all_roof_descriptions
  @xml_doc.search("Roof/Description").map(&:content)
end

#all_roof_energy_efficiency_ratingObject



452
453
454
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 452

def all_roof_energy_efficiency_rating
  @xml_doc.search("Roof/Environmental-Efficiency-Rating").map(&:content)
end

#all_roof_env_energy_efficiency_ratingObject



448
449
450
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 448

def all_roof_env_energy_efficiency_rating
  @xml_doc.search("Roof/Environmental-Efficiency-Rating").map(&:content)
end

#all_sap_floor_dimensionsObject



259
260
261
262
263
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 259

def all_sap_floor_dimensions
  @xml_doc.search("SAP-Floor-Dimension").select(&:element?).map { |node|
    { total_floor_area: xpath(%w[Total-Floor-Area], node).to_f }
  }.compact
end

#all_wall_descriptionsObject



456
457
458
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 456

def all_wall_descriptions
  @xml_doc.search("Walls/Description").map(&:content)
end

#all_wall_energy_efficiency_ratingObject



460
461
462
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 460

def all_wall_energy_efficiency_rating
  @xml_doc.search("Walls/Energy-Efficiency-Rating").map(&:content)
end

#all_wall_env_energy_efficiency_ratingObject



464
465
466
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 464

def all_wall_env_energy_efficiency_rating
  @xml_doc.search("Walls/Environmental-Efficiency-Rating").map(&:content)
end

#assessment_idObject



4
5
6
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 4

def assessment_id
  xpath(%w[Report-Header RRN])
end

#assessor_emailObject



36
37
38
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 36

def assessor_email
  xpath(%w[Home-Inspector/E-Mail])
end

#assessor_nameObject



32
33
34
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 32

def assessor_name
  xpath(%w[Home-Inspector Name])
end

#assessor_telephoneObject



40
41
42
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 40

def assessor_telephone
  xpath(%w[Home-Inspector/Telephone])
end

#boiler_flue_typeObject



324
325
326
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 324

def boiler_flue_type
  xpath(%w[Boiler-Flue-Type])
end

#building_part_numberObject



278
279
280
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 278

def building_part_number
  xpath(%w[Building-Part-Number])
end

#built_formObject



424
425
426
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 424

def built_form
  xpath(%w[Built-Form])
end

#co2_emissions_current_per_floor_areaObject



348
349
350
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 348

def co2_emissions_current_per_floor_area
  xpath(%w[CO2-Emissions-Current-Per-Floor-Area])
end

#country_codeObject



336
337
338
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 336

def country_code
  xpath(%w[Country-Code])
end

#current_carbon_emissionObject



159
160
161
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 159

def current_carbon_emission
  xpath(%w[CO2-Emissions-Current])
end

#current_energy_ratingObject



167
168
169
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 167

def current_energy_rating
  xpath(%w[Energy-Rating-Current])&.to_i
end

#current_space_heating_demandObject



233
234
235
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 233

def current_space_heating_demand
  xpath(%w[Space-Heating]) or xpath(%w[Space-Heating-Existing-Dwelling])
end

#current_water_heating_demandObject



237
238
239
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 237

def current_water_heating_demand
  xpath(%w[Water-Heating])
end

#cylinder_insul_thicknessObject



518
519
520
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 518

def cylinder_insul_thickness
  xpath(%w[Hot-Water-Store-Insulation-Thickness])
end

#cylinder_insulation_typeObject



522
523
524
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 522

def cylinder_insulation_type
  xpath(%w[Hot-Water-Store-Insulation-Type])
end

#cylinder_sizeObject



526
527
528
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 526

def cylinder_size
  xpath(%w[Hot-Water-Store-Size])
end

#date_of_assessmentObject



44
45
46
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 44

def date_of_assessment
  xpath(%w[Inspection-Date])
end

#date_of_completionObject



52
53
54
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 52

def date_of_completion
  xpath(%w[Completion-Date])
end

#date_of_expiryObject



60
61
62
63
64
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 60

def date_of_expiry
  expires_at = (Date.parse(date_of_registration) - 1) >> 12 * 10

  expires_at.to_s
end

#date_of_registrationObject



48
49
50
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 48

def date_of_registration
  xpath(%w[Registration-Date])
end

#dwelling_typeObject



197
198
199
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 197

def dwelling_type
  xpath(%w[Dwelling-Type])
end

#energy_consumption_potentialObject



175
176
177
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 175

def energy_consumption_potential
  xpath(%w[Energy-Consumption-Potential])
end

#energy_tariffObject



468
469
470
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 468

def energy_tariff
  xpath(%w[Electricity-Tariff])
end

#environmental_impact_currentObject



340
341
342
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 340

def environmental_impact_current
  xpath(%w[Environmental-Impact-Current])&.to_i
end

#environmental_impact_potentialObject



344
345
346
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 344

def environmental_impact_potential
  xpath(%w[Environmental-Impact-Potential])&.to_i
end

#estimated_energy_costObject



179
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 179

def estimated_energy_cost; end

#fixed_lighting_outlets_countObject



364
365
366
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 364

def fixed_lighting_outlets_count
  xpath(%w[Fixed-Lighting-Outlets-Count])&.to_i
end

#floor_heat_lossObject



304
305
306
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 304

def floor_heat_loss
  xpath(%w[Floor-Heat-Loss])
end

#floor_heightObject



480
481
482
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 480

def floor_height
  @xml_doc.search("Storey-Height").map(&:content)
end

#floor_levelObject



472
473
474
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 472

def floor_level
  xpath(%w[SAP-Flat-Details Level])
end

#has_cylinder_thermostatObject



530
531
532
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 530

def has_cylinder_thermostat
  xpath(%w[Has-Cylinder-Thermostat])
end

#heating_cost_currentObject



147
148
149
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 147

def heating_cost_current
  xpath(%w[Heating-Cost-Current])
end

#heating_cost_potentialObject



135
136
137
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 135

def heating_cost_potential
  xpath(%w[Heating-Cost-Potential])
end

#hot_water_cost_currentObject



143
144
145
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 143

def hot_water_cost_current
  xpath(%w[Hot-Water-Cost-Current])
end

#hot_water_cost_potentialObject



131
132
133
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 131

def hot_water_cost_potential
  xpath(%w[Hot-Water-Cost-Potential])
end

#hot_water_descriptionObject



376
377
378
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 376

def hot_water_description
  xpath(%w[Hot-Water Description])
end

#hot_water_energy_efficiency_ratingObject



380
381
382
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 380

def hot_water_energy_efficiency_rating
  xpath(%w[Hot-Water Energy-Efficiency-Rating])
end

#hot_water_environmental_efficiency_ratingObject



384
385
386
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 384

def hot_water_environmental_efficiency_rating
  xpath(%w[Hot-Water Environmental-Efficiency-Rating])
end

#immersion_heating_typeObject



308
309
310
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 308

def immersion_heating_type
  xpath(%w[Immersion-Heating-Type])
end

#impact_of_cavity_insulationObject



241
242
243
244
245
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 241

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_insulationObject



247
248
249
250
251
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 247

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_insulationObject



253
254
255
256
257
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 253

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

#improvementsObject



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 91

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

#levelObject



269
270
271
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 269

def level
  xpath(%w[Level])
end

#lighting_cost_currentObject



151
152
153
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 151

def lighting_cost_current
  xpath(%w[Lighting-Cost-Current])
end

#lighting_cost_potentialObject



139
140
141
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 139

def lighting_cost_potential
  xpath(%w[Lighting-Cost-Potential])
end

#lighting_descriptionObject



412
413
414
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 412

def lighting_description
  xpath(%w[Lighting Description])
end

#lighting_energy_efficiency_ratingObject



416
417
418
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 416

def lighting_energy_efficiency_rating
  xpath(%w[Lighting Energy-Efficiency-Rating])
end

#lighting_environmental_efficiency_ratingObject



420
421
422
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 420

def lighting_environmental_efficiency_rating
  xpath(%w[Lighting Environmental-Efficiency-Rating])
end

#low_energy_fixed_lighting_outlets_countObject



368
369
370
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 368

def low_energy_fixed_lighting_outlets_count
  xpath(%w[Low-Energy-Fixed-Lighting-Outlets-Count])&.to_i
end

#low_energy_lightingObject



360
361
362
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 360

def low_energy_lighting
  xpath(%w[Low-Energy-Fixed-Lighting-Outlets-Percentage])
end

#main_dwelling_construction_age_band_or_yearObject



207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 207

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_typeObject



312
313
314
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 312

def main_fuel_type
  xpath(%w[Main-Fuel-Type])
end

#main_heating_controlsObject



352
353
354
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 352

def main_heating_controls
  xpath(%w[Main-Heating-Controls Description])
end

#mech_vent_sys_index_numberObject



534
535
536
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 534

def mech_vent_sys_index_number
  xpath(%w[Mechanical-Vent-System-Index-Number])&.to_i
end

#mechanical_vent_data_sourceObject



538
539
540
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 538

def mechanical_vent_data_source
  xpath(%w[Mechanical-Ventilation-Data-Source])
end

#meter_typeObject



328
329
330
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 328

def meter_type
  xpath(%w[Meter-Type])
end

#multiple_glazed_proportionObject



356
357
358
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 356

def multiple_glazed_proportion
  xpath(%w[Multiple-Glazed-Percentage])
end

#open_fireplaces_countObject



372
373
374
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 372

def open_fireplaces_count
  xpath(%w[Open-Fireplaces-Count])&.to_i
end

#postcodeObject



24
25
26
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 24

def postcode
  xpath(%w[Report-Header Property Address Postcode])
end

#potential_carbon_emissionObject



155
156
157
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 155

def potential_carbon_emission
  xpath(%w[CO2-Emissions-Potential])
end

#potential_energy_ratingObject



163
164
165
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 163

def potential_energy_rating
  xpath(%w[Energy-Rating-Potential])&.to_i
end

#potential_energy_savingObject



201
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 201

def potential_energy_saving; end

#primary_energy_useObject



171
172
173
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 171

def primary_energy_use
  xpath(%w[Energy-Consumption-Current])
end

#property_age_bandObject



203
204
205
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 203

def property_age_band
  xpath(%w[Construction-Year])
end

#property_summaryObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 66

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_reportObject



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 114

def recommendations_for_report
  accessor = Accessor::DomesticRecommendationsAccessor.instance
  @xml_doc
    .search("Suggested-Improvements Improvement")
    .map do |node|
      improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
      {
        sequence: xpath(%w[Sequence], node).to_i,
        improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-18.0.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
        improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-18.0.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
        improvement_code:
          xpath(%w[Improvement-Details Improvement-Number], node),
        indicative_cost: xpath(%w[Indicative-Cost], node),
      }
    end
end


87
88
89
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 87

def related_party_disclosure_number
  xpath(%w[Related-Party-Disclosure-Number])&.to_i
end


83
84
85
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 83

def related_party_disclosure_text
  xpath(%w[Related-Party-Disclosure-Text])
end

#report_typeObject



440
441
442
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 440

def report_type
  xpath(%w[Report-Type])
end

#sap_main_heating_codeObject



332
333
334
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 332

def sap_main_heating_code
  xpath(%w[SAP-Main-Heating-Code])
end

#scheme_assessor_idObject



28
29
30
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 28

def scheme_assessor_id
  xpath(%w[Certificate-Number])
end

#secondary_fuel_typeObject



316
317
318
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 316

def secondary_fuel_type
  xpath(%w[Secondary-Fuel-Type])
end

#secondary_heating_descriptionObject



400
401
402
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 400

def secondary_heating_description
  xpath(%w[Secondary-Heating Description])
end

#secondary_heating_energy_efficiency_ratingObject



404
405
406
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 404

def secondary_heating_energy_efficiency_rating
  xpath(%w[Secondary-Heating Energy-Efficiency-Rating])
end

#secondary_heating_environmental_efficiency_ratingObject



408
409
410
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 408

def secondary_heating_environmental_efficiency_rating
  xpath(%w[Secondary-Heating Environmental-Efficiency-Rating])
end

#tenureObject



225
226
227
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 225

def tenure
  xpath(%w[Tenure])
end

#thermal_storeObject



542
543
544
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 542

def thermal_store
  xpath(%w[Thermal-Store])
end

#top_storeyObject



273
274
275
276
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 273

def top_storey
  flat_level_code = xpath(%w[Level])
  flat_level_code == "3" ? "Y" : "N"
end

#total_floor_areaObject



181
182
183
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 181

def total_floor_area
  xpath(%w[Property-Summary Total-Floor-Area])
end

#total_roof_areaObject



185
186
187
188
189
190
191
192
193
194
195
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 185

def total_roof_area
  roofs = @xml_doc.xpath("//SAP-Roofs/SAP-Roof")
  return nil if roofs.count.zero?

  total_roof_area = 0
  roofs.each do |roof|
    roof_area = roof.at("Total-Roof-Area")&.content.to_i
    total_roof_area += roof_area
  end
  total_roof_area
end

#townObject



20
21
22
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 20

def town
  xpath(%w[Report-Header Property Address Post-Town])
end

#transaction_typeObject



229
230
231
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 229

def transaction_type
  xpath(%w[Transaction-Type])
end

#type_of_assessmentObject



265
266
267
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 265

def type_of_assessment
  "SAP"
end

#ventilation_typeObject



546
547
548
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 546

def ventilation_type
  xpath(%w[Ventilation-Type])
end

#water_heating_fuelObject



320
321
322
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 320

def water_heating_fuel
  xpath(%w[Water-Fuel-Type])
end

#wind_turbine_countObject



428
429
430
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 428

def wind_turbine_count
  xpath(%w[Wind-Turbines-Count])&.to_i
end

#window_descriptionObject



388
389
390
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 388

def window_description
  xpath(%w[Windows Description])
end

#window_energy_efficiency_ratingObject



392
393
394
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 392

def window_energy_efficiency_rating
  xpath(%w[Windows Energy-Efficiency-Rating])
end

#window_environmental_efficiency_ratingObject



396
397
398
# File 'lib/view_model/sap_schema_1800/common_schema.rb', line 396

def window_environmental_efficiency_rating
  xpath(%w[Windows Environmental-Efficiency-Rating])
end