epb_view_models 1.0.15 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44ac3c497106cfad05b3f659f0f67c680bec0d68bf129dba9ee85f4b84c92ea1
4
- data.tar.gz: f4a5b74aa6b3fe31dd79d3b6b0e3895c33c6652faccfd59fe7ef580a077599a8
3
+ metadata.gz: 21ae4bba2efbc28d42200e7a331a4111b76071399e0a1f901313c2d57035196a
4
+ data.tar.gz: 0e244cf4dec75c6213a3c3e8bac4aa2fea2c02f44c9958419d5bf9b9bb2f4f38
5
5
  SHA512:
6
- metadata.gz: e991f69ff3f8990512da92df7aaeb1b2a2c0b0014e925d8da0ffbbc4560e09b39446e1731a76a8b0aa87dbdd48d101ae79dda7746cba426c53b9e8146d8c5a32
7
- data.tar.gz: 36600d67398158417c478bb42366d7d7dea759ea75a746d5864ba4b1e24c7c55e3b4d164fdd949018e8b0c0954ddc73c606112e5d7ba70c5dca2bf33c2878648
6
+ metadata.gz: a2e9785b8c3141d8eaf2b1bf5c1cd647efe67022417b5922e94e44af3b57ce157dab168f4499d4a1b1bce1a6092d8aa87ef954a8ab09cc03335b5bc0a1417571
7
+ data.tar.gz: dcf95783220f96004c33f270bd844dd22de531f57136d7f9d230e7244a42b880c310088ca070b60aaedaf78dfb2f766f7f783098603302ca5cb2085b1afbc03f
@@ -18,7 +18,7 @@ As such the broad description of a Property can be regarded as a framework, cont
18
18
  <xs:documentation>Address for the property.</xs:documentation>
19
19
  </xs:annotation>
20
20
  </xs:element>
21
- <xs:element name="UPRN" type="UPRNType">
21
+ <xs:element name="UPRN" type="UPRNType" minOccurs="0">
22
22
  <xs:annotation>
23
23
  <xs:documentation>Unique Property Reference Number</xs:documentation>
24
24
  </xs:annotation>
@@ -43,7 +43,7 @@ As such the broad description of a Property can be regarded as a framework, cont
43
43
  </xs:documentation>
44
44
  </xs:annotation>
45
45
  <xs:sequence>
46
- <xs:element name="Address-Line-1" type="xs:string" minOccurs="0"/>
46
+ <xs:element name="Address-Line-1" type="xs:string"/>
47
47
  <xs:element name="Address-Line-2" type="xs:string" minOccurs="0"/>
48
48
  <xs:element name="Address-Line-3" type="xs:string" minOccurs="0"/>
49
49
  <xs:element name="Post-Town" type="xs:string"/>
@@ -57,10 +57,10 @@ As such the broad description of a Property can be regarded as a framework, cont
57
57
  </xs:complexType>
58
58
  <xs:simpleType name="UPRNType">
59
59
  <xs:annotation>
60
- <xs:documentation>Unique Property Reference Number - a 10-digit numeric string unmiquely identifuying each Property that may have a HCR registered against it.</xs:documentation>
60
+ <xs:documentation>Unique Property Reference Number</xs:documentation>
61
61
  </xs:annotation>
62
62
  <xs:restriction base="xs:string">
63
- <xs:pattern value="[0-9]{10}"/>
63
+ <xs:pattern value="UPRN-[0-9]{10,12}|RRN-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}"/>
64
64
  </xs:restriction>
65
65
  </xs:simpleType>
66
66
  <xs:simpleType name="PostcodeType">
@@ -54,7 +54,15 @@
54
54
  <xs:element name="Report-Header" type="Report-Header"/>
55
55
  <xs:element name="Energy-Assessment" type="Energy-Assessment"/>
56
56
  <xs:element name="SAP10-Data" type="SAP10-Data"/>
57
- <xs:element name="PDF" type="xs:base64Binary" minOccurs="0"/>
57
+ <xs:element name="PDF" type="xs:base64Binary" minOccurs="0">
58
+ <xs:annotation>
59
+ <xs:documentation>
60
+ DEPRECATED - DO NOT USE
61
+ This element is allowed for backwards-compatibility but any data sent here will
62
+ not be read, processed or stored by the register.
63
+ </xs:documentation>
64
+ </xs:annotation>
65
+ </xs:element>
58
66
  <xs:element name="Insurance-Details" type="Insurance-Details" minOccurs="0"/>
59
67
  <xs:element name="ExternalDefinitions-Revision-Number" type="xs:string">
60
68
  <xs:annotation>
@@ -5,7 +5,7 @@ loader = Zeitwerk::Loader.for_gem
5
5
  loader.setup
6
6
 
7
7
  module EpbViewModels
8
- VERSION = "1.0.15"
8
+ VERSION = "1.0.18"
9
9
  end
10
10
 
11
11
  # Monkey patching to avoid using ActiveRecord::Type::Boolean.new.cast
@@ -274,6 +274,20 @@ module Helper
274
274
  "76" => "bioethanol from any biomass source",
275
275
  "99" => "Community heating schemes: special fuel",
276
276
  }.freeze
277
+ MAIN_HEATING_CATEGORY = {
278
+ "1" => "none",
279
+ "2" => "boiler with radiators or underfloor heating",
280
+ "3" => "micro-cogeneration",
281
+ "4" => "heat pump with radiators or underfloor heating",
282
+ "5" => "heat pump with warm air distribution",
283
+ "6" => "community heating system",
284
+ "7" => "electric storage heaters",
285
+ "8" => "electric underfloor heating",
286
+ "9" => "warm air system (not heat pump)",
287
+ "10" => "room heaters",
288
+ "11" => "other system",
289
+ "12" => "not recorded",
290
+ }.freeze
277
291
 
278
292
  def self.built_form_string(number)
279
293
  BUILT_FORM[number]
@@ -358,6 +372,7 @@ module Helper
358
372
  ]
359
373
 
360
374
  schemes_that_use_l = %i[
375
+ SAP-Schema-19.0.0
361
376
  SAP-Schema-18.0.0
362
377
  SAP-Schema-17.1
363
378
  SAP-Schema-17.0
@@ -561,6 +576,7 @@ module Helper
561
576
  ]
562
577
 
563
578
  sap = %i[
579
+ SAP-Schema-19.0.0
564
580
  SAP-Schema-18.0.0
565
581
  SAP-Schema-17.1
566
582
  SAP-Schema-17.0
@@ -611,6 +627,10 @@ module Helper
611
627
  end
612
628
  end
613
629
 
630
+ def self.main_heating_category(value:)
631
+ MAIN_HEATING_CATEGORY[value] || value
632
+ end
633
+
614
634
  private_class_method :is_rdsap, :is_sap
615
635
  end
616
636
  end
@@ -0,0 +1,42 @@
1
+ module Presenter
2
+ module RdSap
3
+ class Hera
4
+ TYPE_OF_ASSESSMENT = "RdSAP".freeze
5
+ private_constant :TYPE_OF_ASSESSMENT
6
+
7
+ def initialize(view_model, schema_type)
8
+ @view_model = view_model
9
+ @schema_type = schema_type
10
+ end
11
+
12
+ def to_hera_hash
13
+ {
14
+ type_of_assessment: TYPE_OF_ASSESSMENT,
15
+ assessment_id: @view_model.assessment_id,
16
+ date_of_registration: @view_model.date_of_registration,
17
+ address: {
18
+ address_line1: @view_model.address_line1,
19
+ address_line2: @view_model.address_line2,
20
+ address_line3: @view_model.address_line3,
21
+ address_line4: @view_model.address_line4,
22
+ town: @view_model.town,
23
+ postcode: @view_model.postcode,
24
+ },
25
+ dwelling_type: @view_model.dwelling_type,
26
+ built_form: Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
27
+ main_dwelling_construction_age_band_or_year: Helper::XmlEnumsToOutput.construction_age_band_lookup(
28
+ @view_model.main_dwelling_construction_age_band_or_year,
29
+ @schema_type,
30
+ @view_model.report_type,
31
+ ),
32
+ property_summary: @view_model.property_summary,
33
+ main_heating_category: Helper::XmlEnumsToOutput.main_heating_category(value: @view_model.main_heating_category),
34
+ main_fuel_type: Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
35
+ @schema_type,
36
+ @view_model.report_type),
37
+ has_hot_water_cylinder: @view_model.has_hot_water_cylinder,
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,39 @@
1
+ module Presenter
2
+ module Sap
3
+ class Hera
4
+ def initialize(view_model, schema_type)
5
+ @view_model = view_model
6
+ @schema_type = schema_type
7
+ end
8
+
9
+ def to_hera_hash
10
+ {
11
+ type_of_assessment: @view_model.type_of_assessment,
12
+ assessment_id: @view_model.assessment_id,
13
+ date_of_registration: @view_model.date_of_registration,
14
+ address: {
15
+ address_line1: @view_model.address_line1,
16
+ address_line2: @view_model.address_line2,
17
+ address_line3: @view_model.address_line3,
18
+ address_line4: nil,
19
+ town: @view_model.town,
20
+ postcode: @view_model.postcode,
21
+ },
22
+ dwelling_type: @view_model.dwelling_type,
23
+ built_form: Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
24
+ main_dwelling_construction_age_band_or_year: Helper::XmlEnumsToOutput.construction_age_band_lookup(
25
+ @view_model.main_dwelling_construction_age_band_or_year,
26
+ @schema_type,
27
+ @view_model.report_type,
28
+ ),
29
+ property_summary: @view_model.property_summary,
30
+ main_heating_category: Helper::XmlEnumsToOutput.main_heating_category(value: @view_model.main_heating_category),
31
+ main_fuel_type: Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
32
+ @schema_type,
33
+ @view_model.report_type),
34
+ has_hot_water_cylinder: @view_model.has_hot_water_cylinder,
35
+ }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -54,6 +54,16 @@ module ViewModel
54
54
  xpath(%w[Water-Heating-Code])
55
55
  end
56
56
 
57
+ def has_hot_water_cylinder
58
+ return "false" if xpath(%w[Has-Hot-Water-Cylinder]).nil?
59
+
60
+ xpath(%w[Has-Hot-Water-Cylinder])
61
+ end
62
+
63
+ def main_heating_category
64
+ xpath(%w[Main-Heating-Category])
65
+ end
66
+
57
67
  private
58
68
 
59
69
  def fetch_addendum_numbers
@@ -350,10 +350,6 @@ module ViewModel
350
350
  xpath(%w[Immersion-Heating-Type])
351
351
  end
352
352
 
353
- def main_heating_category
354
- xpath(%w[Main-Heating-Category])
355
- end
356
-
357
353
  def main_fuel_type
358
354
  xpath(%w[Main-Fuel-Type])
359
355
  end
@@ -337,10 +337,6 @@ module ViewModel
337
337
  xpath(%w[Immersion-Heating-Type])
338
338
  end
339
339
 
340
- def main_heating_category
341
- xpath(%w[Main-Heating-Category])
342
- end
343
-
344
340
  def main_fuel_type
345
341
  xpath(%w[Main-Fuel-Type])
346
342
  end
@@ -8,6 +8,7 @@ module ViewModel
8
8
  @summary = Presenter::RdSap::Summary.new(view_model)
9
9
  @report = Presenter::RdSap::Report.new(view_model, schema_type, additional_data)
10
10
  @recommendation_report = Presenter::RdSap::RecommendationReport.new(view_model)
11
+ @hera = Presenter::RdSap::Hera.new(view_model, schema_type)
11
12
  end
12
13
 
13
14
  def type
@@ -30,6 +31,10 @@ module ViewModel
30
31
  @recommendation_report.to_hash
31
32
  end
32
33
 
34
+ def to_hera_hash
35
+ @hera.to_hera_hash
36
+ end
37
+
33
38
  def get_view_model
34
39
  view_model
35
40
  end
@@ -301,10 +301,6 @@ module ViewModel
301
301
  xpath(%w[Immersion-Heating-Type])
302
302
  end
303
303
 
304
- def main_heating_category
305
- xpath(%w[Main-Heating-Category])
306
- end
307
-
308
304
  def main_fuel_type
309
305
  xpath(%w[Main-Fuel-Type])
310
306
  end
@@ -301,10 +301,6 @@ module ViewModel
301
301
  xpath(%w[Immersion-Heating-Type])
302
302
  end
303
303
 
304
- def main_heating_category
305
- xpath(%w[Main-Heating-Category])
306
- end
307
-
308
304
  def main_fuel_type
309
305
  xpath(%w[Main-Fuel-Type])
310
306
  end
@@ -271,10 +271,6 @@ module ViewModel
271
271
  xpath(%w[Immersion-Heating-Type])
272
272
  end
273
273
 
274
- def main_heating_category
275
- xpath(%w[Main-Heating-Category])
276
- end
277
-
278
274
  def main_fuel_type
279
275
  xpath(%w[Main-Fuel-Type])
280
276
  end
@@ -8,6 +8,7 @@ module ViewModel
8
8
  @summary = Presenter::Sap::Summary.new(view_model)
9
9
  @report = Presenter::Sap::Report.new(view_model, schema_type, additional_data)
10
10
  @recommendation_report = Presenter::Sap::RecommendationReport.new(view_model)
11
+ @hera = Presenter::Sap::Hera.new(view_model, schema_type)
11
12
  end
12
13
 
13
14
  def type
@@ -30,6 +31,10 @@ module ViewModel
30
31
  @recommendation_report.to_hash
31
32
  end
32
33
 
34
+ def to_hera_hash
35
+ @hera.to_hera_hash
36
+ end
37
+
33
38
  def get_view_model
34
39
  view_model
35
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epb_view_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.15
4
+ version: 1.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - MHCLG Energy Performance of Buildings
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-10 00:00:00.000000000 Z
11
+ date: 2022-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -1675,10 +1675,12 @@ files:
1675
1675
  - lib/presenter/export/domestic.rb
1676
1676
  - lib/presenter/export/statistics.rb
1677
1677
  - lib/presenter/rd_sap/export_configuration.rb
1678
+ - lib/presenter/rd_sap/hera.rb
1678
1679
  - lib/presenter/rd_sap/recommendation_report.rb
1679
1680
  - lib/presenter/rd_sap/report.rb
1680
1681
  - lib/presenter/rd_sap/summary.rb
1681
1682
  - lib/presenter/sap/export_configuration.rb
1683
+ - lib/presenter/sap/hera.rb
1682
1684
  - lib/presenter/sap/recommendation_report.rb
1683
1685
  - lib/presenter/sap/report.rb
1684
1686
  - lib/presenter/sap/summary.rb