epb_view_models 1.1.4 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/api/schemas/data/orchestrate.json +4 -0
  3. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/ExternalDefinitions.xml +1627 -0
  4. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/ExternalDefinitions.xsd +267 -0
  5. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/Templates/AssessorManagement.xsd +212 -0
  6. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/Templates/EPC-Certificate.xsd +399 -0
  7. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/Templates/EPC-CollectedData.xsd +1385 -0
  8. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/Templates/Property.xsd +67 -0
  9. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/Templates/RdSAP-Report.xsd +179 -0
  10. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/UDT/EPC-Domains.xsd +885 -0
  11. data/api/schemas/xml/RdSAP-Schema-21.0.0/RdSAP/UDT/SAP-Domains.xsd +3330 -0
  12. data/lib/epb_view_models.rb +1 -2
  13. data/lib/helper/xml_enums_to_output.rb +45 -2
  14. data/lib/view_model/factory.rb +1 -0
  15. data/lib/view_model/rd_sap_schema_210/common_schema.rb +587 -0
  16. data/lib/view_model/rd_sap_wrapper.rb +2 -0
  17. data/lib/view_model/sap_schema_110/sap.rb +1 -1
  18. data/lib/view_model/sap_schema_112/sap.rb +1 -1
  19. data/lib/view_model/sap_schema_120/sap.rb +1 -1
  20. data/lib/view_model/sap_schema_130/sap.rb +1 -1
  21. data/lib/view_model/sap_schema_140/sap.rb +1 -1
  22. data/lib/view_model/sap_schema_141/sap.rb +1 -1
  23. data/lib/view_model/sap_schema_142/sap.rb +1 -1
  24. data/lib/view_model/sap_schema_150/sap.rb +1 -1
  25. data/lib/view_model/sap_schema_160/sap.rb +1 -1
  26. data/lib/view_model/sap_schema_161/sap.rb +1 -1
  27. data/lib/view_model/sap_schema_162/sap.rb +1 -1
  28. data/lib/view_model/sap_schema_163/sap.rb +1 -1
  29. data/lib/view_model/sap_schema_170/common_schema.rb +1 -1
  30. data/lib/view_model/sap_schema_171/common_schema.rb +1 -1
  31. data/lib/view_model/sap_schema_1800/common_schema.rb +1 -1
  32. data/lib/view_model/sap_schema_1900/common_schema.rb +1 -1
  33. data/lib/view_model/sap_schema_1910/common_schema.rb +1 -1
  34. metadata +13 -3
@@ -5,10 +5,9 @@ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
5
5
  loader.setup
6
6
 
7
7
  module EpbViewModels
8
- VERSION = "1.1.4"
8
+ VERSION = "1.1.6"
9
9
  end
10
10
 
11
-
12
11
  # Monkey patching to avoid using ActiveRecord::Type::Boolean.new.cast
13
12
  # Source: http://jeffgardner.org/2011/08/04/rails-string-to-boolean-method/
14
13
  class String
@@ -31,6 +31,7 @@ module Helper
31
31
  "3" => "Unknown",
32
32
  "4" => "dual (24 hour)",
33
33
  "5" => "off-peak 18 hour",
34
+ "6" => "off-peak 10 hour",
34
35
  }.freeze
35
36
  RDSAP_GLAZED_TYPE = {
36
37
  "1" => "double glazing installed before 2002",
@@ -42,6 +43,14 @@ module Helper
42
43
  "7" => "double, known data",
43
44
  "8" => "triple, known data",
44
45
  "ND" => "not defined",
46
+ "6-post20" => "triple glazing, unknown install date",
47
+ "9" => "triple glazing, installed between 2002-2022 in EAW, 2003-2023 in SCT, 2006-2022 NI",
48
+ "10" => "triple glazing, installed before 2002 in EAW, 2003 in SCT, 2006 NI",
49
+ "11" => "secondary glazing, normal emissivity",
50
+ "12" => "secondary glazing, low emissivity",
51
+ "13" => "double glazing, installed during or after 2022 in EAW, 2023 in SCT, 2022 NI",
52
+ "14" => "triple glazing, installed during or after 2022 in EAW, 2023 in SCT, 2022 NI",
53
+
45
54
  }.freeze
46
55
  RDSAP_GLAZED_AREA = {
47
56
  "1" => "Normal",
@@ -78,6 +87,9 @@ module Helper
78
87
  "12RdSAP" => "RHI application",
79
88
  "13RdSAP" => "ECO assessment",
80
89
  "14RdSAP" => "Stock condition survey",
90
+ "15RdSAP" => "Grant scheme (ECO, RHI, etc.)",
91
+ "16RdSAP" => "Non-grant scheme (e.g. MEES)",
92
+ "17RdSAP" => "re-mortgaging",
81
93
  }.freeze
82
94
  CONSTRUCTION_AGE_BAND = {
83
95
  "A" => "England and Wales: before 1900",
@@ -94,6 +106,8 @@ module Helper
94
106
  "K-pre-17.0" => "England and Wales: 2007 onwards",
95
107
  "K-12.0" => "Post-2006",
96
108
  "L" => "England and Wales: 2012 onwards",
109
+ "L-post-20" => "England and Wales: 2012-2021",
110
+ "M" => "England and Wales: 2022 onwards",
97
111
  "0" => "Not applicable",
98
112
  "NR" => "Not recorded",
99
113
  }.freeze
@@ -136,6 +150,7 @@ module Helper
136
150
  "0" => "no corridor",
137
151
  "1" => "heated corridor",
138
152
  "2" => "unheated corridor",
153
+ "3" => "stairwell",
139
154
  }.freeze
140
155
  MECHANICAL_VENTILATION = {
141
156
  "0" => "natural",
@@ -144,6 +159,12 @@ module Helper
144
159
  "0-pre12.0" => "none",
145
160
  "1-pre12.0" => "mechanical - heat recovering",
146
161
  "2-pre12.0" => "mechanical - non recovering",
162
+ "1-post20" => "mechanical ventilation without heat recovery (MV)",
163
+ "2-post20" => "mechanical extract, decentralised (MEV dc)",
164
+ "3-post20" => "mechanical extract, centralised (MEV c)",
165
+ "4-post20" => "mechanical ventilation with heat recovery (MVHR)",
166
+ "5-post20" => "positive input from loft",
167
+ "6-post20" => "positive input from outside",
147
168
  }.freeze
148
169
  CEPC_TRANSACTION_TYPE = {
149
170
  "1" => "Mandatory issue (Marketed sale)",
@@ -167,6 +188,7 @@ module Helper
167
188
  "10" => "natural with intermittent extract fans and passive vents",
168
189
  }.freeze
169
190
  CYLINDER_INSULATION_THICKNESS = {
191
+ "0" => "0 mm",
170
192
  "12" => "12 mm",
171
193
  "25" => "25 mm",
172
194
  "38" => "38 mm",
@@ -311,7 +333,11 @@ module Helper
311
333
  RDSAP_GLAZED_AREA[value]
312
334
  end
313
335
 
314
- def self.glazed_type_rdsap(value)
336
+ def self.glazed_type_rdsap(value, schema_type = "")
337
+ if value == "6" && schemas_post_20.include?(schema_type)
338
+ return RDSAP_GLAZED_TYPE["#{value}-post20"]
339
+ end
340
+
315
341
  RDSAP_GLAZED_TYPE[value]
316
342
  end
317
343
 
@@ -396,6 +422,7 @@ module Helper
396
422
  SAP-Schema-13.0
397
423
  SAP-Schema-12.0
398
424
  RdSAP-Schema-20.0.0
425
+ RdSAP-Schema-21.0.0
399
426
  RdSAP-Schema-19.0
400
427
  RdSAP-Schema-18.0
401
428
  RdSAP-Schema-17.1
@@ -461,6 +488,10 @@ module Helper
461
488
  return value
462
489
  end
463
490
 
491
+ if value == "L" && schemas_post_20.include?(schema_type)
492
+ return CONSTRUCTION_AGE_BAND["L-post-20"]
493
+ end
494
+
464
495
  return value if value == "L" && !schemes_that_use_l.include?(schema_type)
465
496
 
466
497
  if value == "0" &&
@@ -486,10 +517,15 @@ module Helper
486
517
  SAP-Schema-10.2
487
518
  SAP-Schema-NI-11.2
488
519
  ].freeze
520
+
489
521
  if types_of_sap_pre12.include?(schema_type) && is_rdsap(report_type)
490
522
  return MECHANICAL_VENTILATION["#{value}-pre12.0"]
491
523
  end
492
524
 
525
+ if schemas_post_20.include?(schema_type) && is_rdsap(report_type)
526
+ return MECHANICAL_VENTILATION["#{value}-post20"]
527
+ end
528
+
493
529
  MECHANICAL_VENTILATION[value] || value
494
530
  end
495
531
 
@@ -533,6 +569,7 @@ module Helper
533
569
 
534
570
  def self.fuel_type(value, schema_type = "", report_type = "2")
535
571
  rdsap = %i[
572
+ RdSAP-Schema-21.0.0
536
573
  RdSAP-Schema-20.0.0
537
574
  RdSAP-Schema-19.0
538
575
  RdSAP-Schema-18.0
@@ -633,6 +670,12 @@ module Helper
633
670
  MAIN_HEATING_CATEGORY[value] || value
634
671
  end
635
672
 
636
- private_class_method :is_rdsap, :is_sap
673
+ def self.schemas_post_20
674
+ %i[
675
+ RdSAP-Schema-21.0.0
676
+ ]
677
+ end
678
+
679
+ private_class_method :is_rdsap, :is_sap, :schemas_post_20
637
680
  end
638
681
  end
@@ -14,6 +14,7 @@ module ViewModel
14
14
  CEPC-3.1
15
15
  ].freeze
16
16
  TYPES_OF_RD_SAP = %i[
17
+ RdSAP-Schema-21.0.0
17
18
  RdSAP-Schema-20.0.0
18
19
  RdSAP-Schema-19.0
19
20
  RdSAP-Schema-18.0