class Presenter::Dec::XmlSummary

Public Class Methods

new(view_model) click to toggle source
# File lib/presenter/dec/xml_summary.rb, line 4
def initialize(view_model)
  @view_model = view_model
end

Public Instance Methods

to_xml() click to toggle source
# File lib/presenter/dec/xml_summary.rb, line 8
def to_xml
  dec_data = {
    report_type: @view_model.report_type,
    address_id:
      if @view_model.address_id&.include?("LPRN-")
        ""
      else
        @view_model.address_id
      end,
    output_engine: @view_model.output_engine,
    assessment_start_date: @view_model.or_assessment_start_date,
    assessment_end_date: @view_model.or_assessment_end_date,
    benchmarks: @view_model.benchmarks,
    energy_consumption: @view_model.or_energy_consumption,
    annual_energy_summary: @view_model.annual_energy_summary,
    dec_status: @view_model.dec_status,
    current_assessment_date: @view_model.current_assessment_date,
    energy_efficiency_rating: @view_model.energy_efficiency_rating,
    current_electricity_co2: @view_model.current_electricity_co2,
    current_heating_co2: @view_model.current_heating_co2,
    current_renewables_co2: @view_model.current_renewables_co2,
    main_heating_fuel: @view_model.main_heating_fuel,
  }

  xml = ERB.new(get_template).result_with_hash dec_data

  if @view_model.dec_status.nil?
    doc = Nokogiri.XML(xml)
    doc.at("DEC-Status").remove
    xml = doc.to_xml
  end

  xml
end

Private Instance Methods

get_template() click to toggle source
# File lib/presenter/dec/xml_summary.rb, line 45
      def get_template
        <<~ERB
          <Reports
            xmlns="https://epbr.digital.communities.gov.uk/xsd/dec-summary"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="https://epbr.digital.communities.gov.uk/xsd/dec-summary  ../../../../api/schemas/xml/CEPC-8.0.0/DEC-Summary.xsd"
          >
            <Report>
              <Report-Header>
                <Report-Type><%= report_type %></Report-Type>
                <Property-Details>
                  <UPRN><%= address_id %></UPRN>
                </Property-Details>
                <Calculation-Details>
                  <Output-Engine><%= output_engine %></Output-Engine>
                </Calculation-Details>
              </Report-Header>
              <OR-Operational-Rating>
                <OR-Assessment-Start-Date><%= assessment_start_date %></OR-Assessment-Start-Date>
                <OR-Assessment-End-Date><%= assessment_end_date %></OR-Assessment-End-Date>
                <OR-Benchmark-Data>
                  <Benchmarks><% benchmarks.each do |benchmark| %>
                    <Benchmark>
                      <Name><%= benchmark[:name] %></Name>
                      <Benchmark-ID><%= benchmark[:id] %></Benchmark-ID>
                      <TUFA><%= benchmark[:tufa] %></TUFA>
                    </Benchmark>
                  <% end %></Benchmarks>
                </OR-Benchmark-Data>
                <OR-Energy-Consumption><% energy_consumption.each do |consumption| %>
                  <<%= consumption[:name] %>>
                    <Consumption><%= consumption[:consumption] %></Consumption>
                    <Start-Date><%= consumption[:start_date] %></Start-Date>
                    <End-Date><%= consumption[:end_date] %></End-Date>
                    <Estimate><%= consumption[:estimate] %></Estimate>
                  </<%= consumption[:name] %>><% end %>
                </OR-Energy-Consumption>
              </OR-Operational-Rating>
              <Display-Certificate>
                <DEC-Annual-Energy-Summary>
                  <Annual-Energy-Use-Electrical><%= annual_energy_summary[:electrical] %></Annual-Energy-Use-Electrical>
                  <Annual-Energy-Use-Fuel-Thermal><%= annual_energy_summary[:fuel_thermal] %></Annual-Energy-Use-Fuel-Thermal>
                  <Renewables-Fuel-Thermal><%= annual_energy_summary[:renewables_fuel_thermal] %></Renewables-Fuel-Thermal>
                  <Renewables-Electrical><%= annual_energy_summary[:renewables_electrical] %></Renewables-Electrical>
                  <Typical-Thermal-Use><%= annual_energy_summary[:typical_thermal_use] %></Typical-Thermal-Use>
                  <Typical-Electrical-Use><%= annual_energy_summary[:typical_electrical_use] %></Typical-Electrical-Use>
                </DEC-Annual-Energy-Summary>
                <DEC-Status><%= dec_status %></DEC-Status>
                <This-Assessment>
                  <Nominated-Date><%= current_assessment_date %></Nominated-Date>
                  <Energy-Rating><%= energy_efficiency_rating %></Energy-Rating>
                  <Electricity-CO2><%= current_electricity_co2 %></Electricity-CO2>
                  <Heating-CO2><%= current_heating_co2 %></Heating-CO2>
                  <Renewables-CO2><%= current_renewables_co2 %></Renewables-CO2>
                </This-Assessment>
                <Technical-Information>
                  <Main-Heating-Fuel><%= main_heating_fuel %></Main-Heating-Fuel>
                </Technical-Information>
              </Display-Certificate>
            </Report>
          </Reports>
        ERB
      end