Class: ViewModel::CepcNi800::DecRr

Inherits:
CommonSchema show all
Defined in:
lib/view_model/cepc_ni800/dec_rr.rb

Instance Method Summary collapse

Methods inherited from CommonSchema

#address_id, #address_line1, #address_line2, #address_line3, #address_line4, #all_energy_types, #all_reason_types, #all_start_dates, #assessment_id, #assessor_email, #assessor_name, #assessor_telephone, #building_level, #calculation_tool, #company_address, #company_name, #date_of_assessment, #date_of_issue, #date_of_registration, #inspection_type, #or_assessment_end_date, #postcode, #report_type, #scheme_assessor_id, #town

Methods inherited from BaseViewModel

#initialize, #xpath

Constructor Details

This class inherits a constructor from ViewModel::BaseViewModel

Instance Method Details

#building_environmentObject



62
63
64
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 62

def building_environment
  xpath(%w[Advisory-Report Technical-Information Building-Environment])
end

#date_of_expiryObject



4
5
6
7
8
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 4

def date_of_expiry
  expiry_date = (Date.parse(date_of_issue) - 1).next_year 7

  expiry_date.strftime("%F")
end

#discounted_energyObject



82
83
84
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 82

def discounted_energy
  xpath(%w[Special-Energy-Uses])
end

#floor_areaObject



58
59
60
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 58

def floor_area
  xpath(%w[Advisory-Report Technical-Information Floor-Area])
end

#long_payback_recommendationsObject



50
51
52
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 50

def long_payback_recommendations
  recommendations("Long-Payback")
end

#medium_payback_recommendationsObject



46
47
48
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 46

def medium_payback_recommendations
  recommendations("Medium-Payback")
end

#occupierObject



70
71
72
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 70

def occupier
  xpath(%w[Occupier])
end

#other_recommendationsObject



54
55
56
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 54

def other_recommendations
  recommendations("Other-Payback")
end

#property_typeObject



74
75
76
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 74

def property_type
  xpath(%w[Property-Type])
end

#recommendations(payback) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 10

def recommendations(payback)
  @xml_doc
    .search("AR-Recommendations/#{payback}")
    .map do |node|
      {
        code: node.at("Recommendation-Code").content,
        text: node.at("Recommendation").content,
        cO2Impact: node.at("CO2-Impact").content,
      }
    end
end


66
67
68
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 66

def related_rrn
  xpath(%w[Related-RRN])
end

#renewable_sourcesObject



78
79
80
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 78

def renewable_sources
  xpath(%w[Renewable-Sources])
end

#short_payback_recommendationsObject



42
43
44
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 42

def short_payback_recommendations
  recommendations("Short-Payback")
end

#site_service_oneObject



30
31
32
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 30

def site_service_one
  site_services("Service-1")
end

#site_service_threeObject



38
39
40
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 38

def site_service_three
  site_services("Service-3")
end

#site_service_twoObject



34
35
36
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 34

def site_service_two
  site_services("Service-2")
end

#site_services(service) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/view_model/cepc_ni800/dec_rr.rb', line 22

def site_services(service)
  {
    description:
      @xml_doc.at("Site-Services/#{service}/Description").content,
    quantity: @xml_doc.at("Site-Services/#{service}/Quantity").content,
  }
end