epb_view_models 1.2.2 → 2.0.0

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.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +38 -28
  4. data/epb_view_models.gemspec +1 -1
  5. data/lib/epb_view_models.rb +1 -1
  6. data/lib/presenter/cepc/report.rb +11 -15
  7. data/lib/presenter/cepc/summary.rb +5 -14
  8. data/lib/presenter/dec/report.rb +5 -9
  9. data/lib/presenter/dec/summary.rb +3 -11
  10. data/lib/presenter/dec/xml_summary.rb +2 -2
  11. data/lib/presenter/export/base.rb +4 -4
  12. data/lib/presenter/export/commercial.rb +16 -27
  13. data/lib/presenter/export/domestic.rb +30 -39
  14. data/lib/presenter/rd_sap/domestic_digest.rb +2 -4
  15. data/lib/presenter/rd_sap/report.rb +47 -57
  16. data/lib/presenter/rd_sap/summary.rb +13 -21
  17. data/lib/presenter/sap/domestic_digest.rb +2 -4
  18. data/lib/presenter/sap/report.rb +49 -59
  19. data/lib/presenter/sap/summary.rb +28 -41
  20. data/lib/view_model/cepc31/cepc.rb +4 -44
  21. data/lib/view_model/cepc31/common_schema.rb +1 -1
  22. data/lib/view_model/cepc31/dec.rb +14 -34
  23. data/lib/view_model/cepc40/ac_report.rb +1 -1
  24. data/lib/view_model/cepc40/cepc.rb +6 -30
  25. data/lib/view_model/cepc40/common_schema.rb +1 -1
  26. data/lib/view_model/cepc40/dec.rb +16 -16
  27. data/lib/view_model/cepc50/ac_report.rb +1 -1
  28. data/lib/view_model/cepc50/cepc.rb +6 -10
  29. data/lib/view_model/cepc50/common_schema.rb +1 -1
  30. data/lib/view_model/cepc50/dec.rb +16 -16
  31. data/lib/view_model/cepc51/ac_report.rb +1 -1
  32. data/lib/view_model/cepc51/cepc.rb +6 -6
  33. data/lib/view_model/cepc51/common_schema.rb +1 -1
  34. data/lib/view_model/cepc51/dec.rb +16 -16
  35. data/lib/view_model/cepc60/ac_report.rb +1 -1
  36. data/lib/view_model/cepc60/cepc.rb +6 -10
  37. data/lib/view_model/cepc60/common_schema.rb +1 -1
  38. data/lib/view_model/cepc60/dec.rb +17 -17
  39. data/lib/view_model/cepc70/ac_cert.rb +3 -3
  40. data/lib/view_model/cepc70/ac_report.rb +1 -1
  41. data/lib/view_model/cepc70/cepc.rb +6 -10
  42. data/lib/view_model/cepc70/common_schema.rb +1 -1
  43. data/lib/view_model/cepc70/dec.rb +17 -17
  44. data/lib/view_model/cepc71/ac_cert.rb +3 -3
  45. data/lib/view_model/cepc71/ac_report.rb +1 -1
  46. data/lib/view_model/cepc71/cepc.rb +6 -6
  47. data/lib/view_model/cepc71/common_schema.rb +1 -1
  48. data/lib/view_model/cepc71/dec.rb +17 -17
  49. data/lib/view_model/cepc800/ac_cert.rb +3 -3
  50. data/lib/view_model/cepc800/ac_report.rb +1 -1
  51. data/lib/view_model/cepc800/cepc.rb +6 -11
  52. data/lib/view_model/cepc800/common_schema.rb +1 -1
  53. data/lib/view_model/cepc800/dec.rb +17 -17
  54. data/lib/view_model/cepc_ni800/ac_cert.rb +3 -3
  55. data/lib/view_model/cepc_ni800/ac_report.rb +1 -1
  56. data/lib/view_model/cepc_ni800/cepc.rb +6 -10
  57. data/lib/view_model/cepc_ni800/common_schema.rb +1 -1
  58. data/lib/view_model/cepc_ni800/dec.rb +17 -17
  59. data/lib/view_model/rd_sap_schema_170/common_schema.rb +17 -25
  60. data/lib/view_model/rd_sap_schema_171/common_schema.rb +17 -25
  61. data/lib/view_model/rd_sap_schema_180/common_schema.rb +17 -25
  62. data/lib/view_model/rd_sap_schema_190/common_schema.rb +17 -25
  63. data/lib/view_model/rd_sap_schema_200/common_schema.rb +17 -25
  64. data/lib/view_model/rd_sap_schema_210/common_schema.rb +14 -34
  65. data/lib/view_model/rd_sap_schema_ni_173/common_schema.rb +17 -25
  66. data/lib/view_model/rd_sap_schema_ni_174/common_schema.rb +17 -25
  67. data/lib/view_model/rd_sap_schema_ni_180/common_schema.rb +17 -25
  68. data/lib/view_model/rd_sap_schema_ni_190/common_schema.rb +17 -25
  69. data/lib/view_model/rd_sap_schema_ni_200/common_schema.rb +17 -25
  70. data/lib/view_model/sap_schema_102/common_schema.rb +13 -85
  71. data/lib/view_model/sap_schema_102/rdsap.rb +3 -3
  72. data/lib/view_model/sap_schema_110/common_schema.rb +13 -65
  73. data/lib/view_model/sap_schema_110/rdsap.rb +3 -19
  74. data/lib/view_model/sap_schema_110/sap.rb +1 -1
  75. data/lib/view_model/sap_schema_112/common_schema.rb +13 -65
  76. data/lib/view_model/sap_schema_112/rdsap.rb +3 -19
  77. data/lib/view_model/sap_schema_112/sap.rb +1 -1
  78. data/lib/view_model/sap_schema_120/common_schema.rb +13 -61
  79. data/lib/view_model/sap_schema_120/rdsap.rb +3 -19
  80. data/lib/view_model/sap_schema_120/sap.rb +1 -1
  81. data/lib/view_model/sap_schema_130/common_schema.rb +13 -61
  82. data/lib/view_model/sap_schema_130/rdsap.rb +3 -19
  83. data/lib/view_model/sap_schema_130/sap.rb +1 -1
  84. data/lib/view_model/sap_schema_140/common_schema.rb +14 -58
  85. data/lib/view_model/sap_schema_140/rdsap.rb +3 -19
  86. data/lib/view_model/sap_schema_140/sap.rb +1 -1
  87. data/lib/view_model/sap_schema_141/common_schema.rb +14 -58
  88. data/lib/view_model/sap_schema_141/rdsap.rb +3 -19
  89. data/lib/view_model/sap_schema_141/sap.rb +1 -1
  90. data/lib/view_model/sap_schema_142/common_schema.rb +14 -58
  91. data/lib/view_model/sap_schema_142/rdsap.rb +3 -19
  92. data/lib/view_model/sap_schema_142/sap.rb +1 -1
  93. data/lib/view_model/sap_schema_150/common_schema.rb +14 -58
  94. data/lib/view_model/sap_schema_150/rdsap.rb +3 -19
  95. data/lib/view_model/sap_schema_150/sap.rb +1 -1
  96. data/lib/view_model/sap_schema_160/common_schema.rb +14 -58
  97. data/lib/view_model/sap_schema_160/rdsap.rb +3 -19
  98. data/lib/view_model/sap_schema_160/sap.rb +1 -1
  99. data/lib/view_model/sap_schema_161/common_schema.rb +14 -58
  100. data/lib/view_model/sap_schema_161/rdsap.rb +3 -19
  101. data/lib/view_model/sap_schema_161/sap.rb +1 -1
  102. data/lib/view_model/sap_schema_162/common_schema.rb +14 -58
  103. data/lib/view_model/sap_schema_162/rdsap.rb +3 -19
  104. data/lib/view_model/sap_schema_162/sap.rb +1 -1
  105. data/lib/view_model/sap_schema_163/common_schema.rb +13 -53
  106. data/lib/view_model/sap_schema_163/rdsap.rb +3 -19
  107. data/lib/view_model/sap_schema_163/sap.rb +1 -1
  108. data/lib/view_model/sap_schema_170/common_schema.rb +13 -65
  109. data/lib/view_model/sap_schema_171/common_schema.rb +13 -65
  110. data/lib/view_model/sap_schema_1800/common_schema.rb +12 -64
  111. data/lib/view_model/sap_schema_1900/common_schema.rb +10 -50
  112. data/lib/view_model/sap_schema_1910/common_schema.rb +10 -50
  113. data/lib/view_model/sap_schema_ni_112/common_schema.rb +13 -61
  114. data/lib/view_model/sap_schema_ni_112/rdsap.rb +3 -19
  115. data/lib/view_model/sap_schema_ni_112/sap.rb +1 -1
  116. data/lib/view_model/sap_schema_ni_120/common_schema.rb +13 -61
  117. data/lib/view_model/sap_schema_ni_120/rdsap.rb +3 -19
  118. data/lib/view_model/sap_schema_ni_120/sap.rb +1 -1
  119. data/lib/view_model/sap_schema_ni_130/common_schema.rb +13 -61
  120. data/lib/view_model/sap_schema_ni_130/rdsap.rb +3 -19
  121. data/lib/view_model/sap_schema_ni_130/sap.rb +1 -1
  122. data/lib/view_model/sap_schema_ni_140/common_schema.rb +14 -58
  123. data/lib/view_model/sap_schema_ni_140/rdsap.rb +3 -19
  124. data/lib/view_model/sap_schema_ni_140/sap.rb +1 -1
  125. data/lib/view_model/sap_schema_ni_141/common_schema.rb +14 -58
  126. data/lib/view_model/sap_schema_ni_141/rdsap.rb +3 -19
  127. data/lib/view_model/sap_schema_ni_141/sap.rb +1 -1
  128. data/lib/view_model/sap_schema_ni_142/common_schema.rb +14 -58
  129. data/lib/view_model/sap_schema_ni_142/rdsap.rb +3 -19
  130. data/lib/view_model/sap_schema_ni_142/sap.rb +1 -1
  131. data/lib/view_model/sap_schema_ni_150/common_schema.rb +14 -58
  132. data/lib/view_model/sap_schema_ni_150/rdsap.rb +3 -19
  133. data/lib/view_model/sap_schema_ni_150/sap.rb +1 -1
  134. data/lib/view_model/sap_schema_ni_160/common_schema.rb +14 -54
  135. data/lib/view_model/sap_schema_ni_160/rdsap.rb +3 -19
  136. data/lib/view_model/sap_schema_ni_160/sap.rb +1 -1
  137. data/lib/view_model/sap_schema_ni_161/common_schema.rb +14 -50
  138. data/lib/view_model/sap_schema_ni_161/rdsap.rb +3 -19
  139. data/lib/view_model/sap_schema_ni_161/sap.rb +1 -1
  140. data/lib/view_model/sap_schema_ni_170/common_schema.rb +14 -54
  141. data/lib/view_model/sap_schema_ni_170/rdsap.rb +3 -19
  142. data/lib/view_model/sap_schema_ni_170/sap.rb +1 -1
  143. data/lib/view_model/sap_schema_ni_171/common_schema.rb +14 -54
  144. data/lib/view_model/sap_schema_ni_171/rdsap.rb +3 -19
  145. data/lib/view_model/sap_schema_ni_171/sap.rb +1 -1
  146. data/lib/view_model/sap_schema_ni_172/common_schema.rb +14 -54
  147. data/lib/view_model/sap_schema_ni_172/rdsap.rb +3 -23
  148. data/lib/view_model/sap_schema_ni_172/sap.rb +1 -1
  149. data/lib/view_model/sap_schema_ni_173/common_schema.rb +10 -78
  150. data/lib/view_model/sap_schema_ni_174/common_schema.rb +10 -78
  151. data/lib/view_model/sap_schema_ni_1800/common_schema.rb +10 -78
  152. metadata +4 -4
@@ -35,16 +35,14 @@ module Presenter
35
35
  @schema_type,
36
36
  @view_model.report_type,
37
37
  ),
38
- current_energy_efficiency: @view_model.current_energy_rating.to_s.chomp,
38
+ current_energy_efficiency: @view_model.current_energy_rating,
39
39
  current_energy_rating:
40
- Helper::EnergyBandCalculator.domestic(
41
- @view_model.current_energy_rating,
42
- ),
40
+ Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
43
41
  cylinder_insul_thickness: @view_model.cylinder_insul_thickness,
44
42
  cylinder_insulation_type: @view_model.cylinder_insulation_type,
45
43
  cylinder_size: @view_model.cylinder_size,
46
- has_cylinder_thermostat: @view_model.has_cylinder_thermostat == "Y" ? "true" : "false",
47
- energy_consumption_current: @view_model.primary_energy_use,
44
+ has_cylinder_thermostat: @view_model.respond_to?(:has_cylinder_thermostat) && @view_model.has_cylinder_thermostat == "Y" ? "true" : "false",
45
+ energy_consumption_current: @view_model.respond_to?(:primary_energy_use) ? @view_model.primary_energy_use : nil,
48
46
  energy_consumption_potential: @view_model.energy_consumption_potential,
49
47
  energy_tariff:
50
48
  Helper::XmlEnumsToOutput.energy_tariff(
@@ -54,10 +52,10 @@ module Presenter
54
52
  environment_impact_current: @view_model.environmental_impact_current,
55
53
  environment_impact_potential:
56
54
  @view_model.environmental_impact_potential,
57
- extension_count: @view_model.extensions_count,
58
- fixed_lighting_outlets_count: @view_model.fixed_lighting_outlets_count,
55
+ extension_count: @view_model.respond_to?(:extensions_count) ? @view_model.extensions_count : nil,
56
+ fixed_lighting_outlets_count: @view_model.respond_to?(:fixed_lighting_outlets_count) ? @view_model.fixed_lighting_outlets_count : nil,
59
57
  flat_top_storey: @view_model.top_storey,
60
- flat_storey_count: @view_model.storey_count,
58
+ flat_storey_count: @view_model.respond_to?(:storey_count) ? @view_model.storey_count : nil,
61
59
  floor_description: @view_model.all_floor_descriptions.first,
62
60
  floor_energy_eff:
63
61
  Helper::XmlEnumsToOutput.energy_rating_string(
@@ -70,14 +68,14 @@ module Presenter
70
68
  floor_height: @view_model.floor_height.first,
71
69
  floor_level: @view_model.floor_level,
72
70
  glazed_area:
73
- Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.glazed_area),
71
+ Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.respond_to?(:glazed_area) ? @view_model.glazed_area : nil),
74
72
  glazed_type:
75
73
  Helper::XmlEnumsToOutput.glazed_type_rdsap(
76
74
  @view_model.multi_glazing_type,
77
75
  ),
78
76
  heat_loss_corridor:
79
77
  Helper::XmlEnumsToOutput.heat_loss_corridor(
80
- @view_model.heat_loss_corridor,
78
+ @view_model.respond_to?(:heat_loss_corridor) ? @view_model.heat_loss_corridor : nil,
81
79
  ),
82
80
  heating_cost_current: @view_model.heating_cost_current,
83
81
  heating_cost_potential: @view_model.heating_cost_potential,
@@ -102,9 +100,9 @@ module Presenter
102
100
  ),
103
101
  lighting_env_eff:
104
102
  Helper::XmlEnumsToOutput.energy_rating_string(@view_model.lighting_environmental_efficiency_rating),
105
- low_energy_lighting: @view_model.low_energy_lighting,
103
+ low_energy_lighting: @view_model.respond_to?(:low_energy_lighting) ? @view_model.low_energy_lighting : nil,
106
104
  low_energy_fixed_lighting_count:
107
- @view_model.low_energy_fixed_lighting_outlets_count,
105
+ @view_model.respond_to?(:low_energy_fixed_lighting_outlets_count) ? @view_model.low_energy_fixed_lighting_outlets_count : nil,
108
106
  main_fuel: Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
109
107
  @schema_type,
110
108
  @view_model.report_type),
@@ -128,28 +126,25 @@ module Presenter
128
126
  ),
129
127
  mainheatcont_description:
130
128
  @view_model.all_main_heating_controls_descriptions.first,
131
- mains_gas_flag: @view_model.mains_gas,
129
+ mains_gas_flag: @view_model.respond_to?(:mains_gas) ? @view_model.mains_gas : nil,
132
130
  mechanical_ventilation:
133
131
  Helper::XmlEnumsToOutput.mechanical_ventilation(
134
- @view_model.mechanical_ventilation,
132
+ @view_model.respond_to?(:mechanical_ventilation) ? @view_model.mechanical_ventilation : nil,
135
133
  @schema_type,
136
134
  @view_model.report_type,
137
135
  ),
138
136
  mech_vent_sys_index_number: nil,
139
137
  mechanical_vent_data_source: nil,
140
- multi_glaze_proportion: @view_model.multiple_glazed_proportion,
141
- number_habitable_rooms: @view_model.habitable_room_count,
142
- number_heated_rooms: @view_model.heated_room_count,
143
- number_open_fireplaces: @view_model.open_fireplaces_count,
144
- photo_supply: @view_model.photovoltaic_roof_area_percent,
138
+ multi_glaze_proportion: @view_model.respond_to?(:multiple_glazed_proportion) ? @view_model.multiple_glazed_proportion : nil,
139
+ number_habitable_rooms: @view_model.respond_to?(:habitable_room_count) ? @view_model.habitable_room_count : nil,
140
+ number_heated_rooms: @view_model.respond_to?(:heated_room_count) ? @view_model.heated_room_count : nil,
141
+ number_open_fireplaces: @view_model.respond_to?(:open_fireplaces_count) ? @view_model.open_fireplaces_count : nil,
142
+ photo_supply: @view_model.respond_to?(:photovoltaic_roof_area_percent) ? @view_model.photovoltaic_roof_area_percent : nil,
145
143
  posttown: @view_model.town,
146
144
  postcode: @view_model.postcode,
147
- potential_energy_efficiency:
148
- @view_model.potential_energy_rating.to_s.chomp,
145
+ potential_energy_efficiency: @view_model.potential_energy_rating,
149
146
  potential_energy_rating:
150
- Helper::EnergyBandCalculator.domestic(
151
- @view_model.potential_energy_rating,
152
- ),
147
+ Helper::EnergyBandCalculator.domestic(@view_model.potential_energy_rating),
153
148
  property_type:
154
149
  Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
155
150
  report_type: @view_model.report_type,
@@ -171,17 +166,17 @@ module Presenter
171
166
  Helper::XmlEnumsToOutput.energy_rating_string(
172
167
  @view_model.secondary_heating_environmental_efficiency_rating,
173
168
  ),
174
- solar_water_heating_flag: @view_model.solar_water_heating_flag,
175
- tenure: Helper::XmlEnumsToOutput.tenure(@view_model.tenure),
169
+ solar_water_heating_flag: @view_model.respond_to?(:solar_water_heating_flag) ? @view_model.solar_water_heating_flag : nil,
170
+ tenure: Helper::XmlEnumsToOutput.tenure(@view_model.respond_to?(:tenure) ? @view_model.tenure : nil),
176
171
  thermal_store: nil,
177
172
  total_floor_area: @view_model.total_floor_area,
178
173
  transaction_type:
179
174
  Helper::XmlEnumsToOutput.transaction_type(
180
- @view_model.transaction_type,
175
+ @view_model.respond_to?(:transaction_type) ? @view_model.transaction_type : nil,
181
176
  @view_model.report_type,
182
177
  @schema_type,
183
178
  ),
184
- unheated_corridor_length: @view_model.unheated_corridor_length,
179
+ unheated_corridor_length: @view_model.respond_to?(:unheated_corridor_length) ? @view_model.unheated_corridor_length : nil,
185
180
  ventilation_type: nil,
186
181
  walls_description: @view_model.all_wall_descriptions.first,
187
182
  walls_energy_eff:
@@ -229,27 +224,22 @@ module Presenter
229
224
  @view_model.report_type,
230
225
  ),
231
226
  current_energy_rating:
232
- Helper::EnergyBandCalculator.domestic(
233
- @view_model.current_energy_rating,
234
- ),
227
+ Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
235
228
  potential_energy_rating:
236
- Helper::EnergyBandCalculator.domestic(
237
- @view_model.potential_energy_rating,
238
- ),
239
- current_energy_efficiency: @view_model.current_energy_rating.to_s.chomp,
240
- potential_energy_efficiency:
241
- @view_model.potential_energy_rating.to_s.chomp,
229
+ Helper::EnergyBandCalculator.domestic(@view_model.potential_energy_rating),
230
+ current_energy_efficiency: @view_model.current_energy_rating,
231
+ potential_energy_efficiency: @view_model.potential_energy_rating,
242
232
  property_type:
243
233
  Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
244
- tenure: Helper::XmlEnumsToOutput.tenure(@view_model.tenure),
234
+ tenure: Helper::XmlEnumsToOutput.tenure(@view_model.respond_to?(:tenure) ? @view_model.tenure : nil),
245
235
  transaction_type:
246
236
  Helper::XmlEnumsToOutput.transaction_type(
247
- @view_model.transaction_type,
237
+ @view_model.respond_to?(:transaction_type) ? @view_model.transaction_type : nil,
248
238
  ),
249
239
  environment_impact_current: @view_model.environmental_impact_current,
250
240
  environment_impact_potential:
251
241
  @view_model.environmental_impact_potential,
252
- energy_consumption_current: @view_model.primary_energy_use,
242
+ energy_consumption_current: @view_model.respond_to?(:primary_energy_use) ? @view_model.primary_energy_use : nil,
253
243
  energy_consumption_potential: @view_model.energy_consumption_potential,
254
244
  co2_emissions_current: @view_model.current_carbon_emission,
255
245
  co2_emiss_curr_per_floor_area:
@@ -262,19 +252,19 @@ module Presenter
262
252
  lighting_cost_current: @view_model.lighting_cost_current,
263
253
  lighting_cost_potential: @view_model.lighting_cost_potential,
264
254
  total_floor_area: @view_model.total_floor_area,
265
- mains_gas_flag: @view_model.mains_gas,
255
+ mains_gas_flag: @view_model.respond_to?(:mains_gas) ? @view_model.mains_gas : nil,
266
256
  flat_top_storey: @view_model.top_storey,
267
- flat_storey_count: @view_model.storey_count,
268
- multi_glaze_proportion: @view_model.multiple_glazed_proportion,
257
+ flat_storey_count: @view_model.respond_to?(:storey_count) ? @view_model.storey_count : nil,
258
+ multi_glaze_proportion: @view_model.respond_to?(:multiple_glazed_proportion) ? @view_model.multiple_glazed_proportion : nil,
269
259
  glazed_area:
270
- Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.glazed_area),
271
- number_habitable_rooms: @view_model.habitable_room_count,
272
- number_heated_rooms: @view_model.heated_room_count,
273
- low_energy_lighting: @view_model.low_energy_lighting,
274
- fixed_lighting_outlets_count: @view_model.fixed_lighting_outlets_count,
260
+ Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.respond_to?(:glazed_area) ? @view_model.glazed_area : nil),
261
+ number_habitable_rooms: @view_model.respond_to?(:habitable_room_count) ? @view_model.habitable_room_count : nil,
262
+ number_heated_rooms: @view_model.respond_to?(:heated_room_count) ? @view_model.heated_room_count : nil,
263
+ low_energy_lighting: @view_model.respond_to?(:low_energy_lighting) ? @view_model.low_energy_lighting : nil,
264
+ fixed_lighting_outlets_count: @view_model.respond_to?(:fixed_lighting_outlets_count) ? @view_model.fixed_lighting_outlets_count : nil,
275
265
  low_energy_fixed_lighting_outlets_count:
276
- @view_model.low_energy_fixed_lighting_outlets_count,
277
- number_open_fireplaces: @view_model.open_fireplaces_count,
266
+ @view_model.respond_to?(:low_energy_fixed_lighting_outlets_count) ? @view_model.low_energy_fixed_lighting_outlets_count : nil,
267
+ number_open_fireplaces: @view_model.respond_to?(:open_fireplaces_count) ? @view_model.open_fireplaces_count : nil,
278
268
  hotwater_description: @view_model.hot_water_description,
279
269
  hot_water_energy_eff:
280
270
  Helper::XmlEnumsToOutput.energy_rating_string(
@@ -287,9 +277,9 @@ module Presenter
287
277
  wind_turbine_count: @view_model.wind_turbine_count,
288
278
  heat_loss_corridor:
289
279
  Helper::XmlEnumsToOutput.heat_loss_corridor(
290
- @view_model.heat_loss_corridor,
280
+ @view_model.respond_to?(:heat_loss_corridor) ? @view_model.heat_loss_corridor : nil,
291
281
  ),
292
- unheated_corridor_length: @view_model.unheated_corridor_length,
282
+ unheated_corridor_length: @view_model.respond_to?(:unheated_corridor_length) ? @view_model.unheated_corridor_length : nil,
293
283
  windows_description: @view_model.window_description,
294
284
  windows_energy_eff:
295
285
  Helper::XmlEnumsToOutput.energy_rating_string(
@@ -317,7 +307,7 @@ module Presenter
317
307
  Helper::XmlEnumsToOutput.energy_rating_string(
318
308
  @view_model.lighting_environmental_efficiency_rating,
319
309
  ),
320
- photo_supply: @view_model.photovoltaic_roof_area_percent,
310
+ photo_supply: @view_model.respond_to?(:photovoltaic_roof_area_percent) ? @view_model.photovoltaic_roof_area_percent : nil,
321
311
  built_form:
322
312
  Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
323
313
  mainheat_description:
@@ -330,7 +320,7 @@ module Presenter
330
320
  Helper::XmlEnumsToOutput.energy_rating_string(
331
321
  @view_model.all_main_heating_environmental_efficiency.first,
332
322
  ),
333
- extension_count: @view_model.extensions_count,
323
+ extension_count: @view_model.respond_to?(:extensions_count) ? @view_model.extensions_count : nil,
334
324
  report_type: @view_model.report_type,
335
325
  mainheatcont_description:
336
326
  @view_model.all_main_heating_controls_descriptions.first,
@@ -358,10 +348,10 @@ module Presenter
358
348
  @view_model.report_type,
359
349
  ),
360
350
  floor_level: @view_model.floor_level,
361
- solar_water_heating_flag: @view_model.solar_water_heating_flag,
351
+ solar_water_heating_flag: @view_model.respond_to?(:solar_water_heating_flag) ? @view_model.solar_water_heating_flag : nil,
362
352
  mechanical_ventilation:
363
353
  Helper::XmlEnumsToOutput.mechanical_ventilation(
364
- @view_model.mechanical_ventilation,
354
+ @view_model.respond_to?(:mechanical_ventilation) ? @view_model.mechanical_ventilation : nil,
365
355
  @schema_type,
366
356
  @view_model.report_type,
367
357
  ),
@@ -49,9 +49,7 @@ module Presenter
49
49
  current_carbon_emission:
50
50
  convert_to_big_decimal(@view_model.current_carbon_emission),
51
51
  current_energy_efficiency_band:
52
- Helper::EnergyBandCalculator.domestic(
53
- @view_model.current_energy_rating,
54
- ),
52
+ Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
55
53
  current_energy_efficiency_rating: @view_model.current_energy_rating,
56
54
  dwelling_type: @view_model.dwelling_type,
57
55
  estimated_energy_cost:,
@@ -61,10 +59,9 @@ module Presenter
61
59
  @view_model.current_space_heating_demand&.to_i,
62
60
  current_water_heating_demand:
63
61
  @view_model.current_water_heating_demand&.to_i,
64
- impact_of_cavity_insulation: @view_model.impact_of_cavity_insulation,
65
- impact_of_loft_insulation: @view_model.impact_of_loft_insulation,
66
- impact_of_solid_wall_insulation:
67
- @view_model.impact_of_solid_wall_insulation,
62
+ impact_of_cavity_insulation: @view_model.respond_to?(:impact_of_cavity_insulation) ? @view_model.impact_of_cavity_insulation : nil,
63
+ impact_of_loft_insulation: @view_model.respond_to?(:impact_of_loft_insulation) ? @view_model.impact_of_loft_insulation : nil,
64
+ impact_of_solid_wall_insulation: @view_model.respond_to?(:impact_of_solid_wall_insulation) ? @view_model.impact_of_solid_wall_insulation : nil,
68
65
  },
69
66
  heating_cost_current: @view_model.heating_cost_current,
70
67
  heating_cost_potential: @view_model.heating_cost_potential,
@@ -75,9 +72,7 @@ module Presenter
75
72
  potential_carbon_emission:
76
73
  convert_to_big_decimal(@view_model.potential_carbon_emission),
77
74
  potential_energy_efficiency_band:
78
- Helper::EnergyBandCalculator.domestic(
79
- @view_model.potential_energy_rating,
80
- ),
75
+ Helper::EnergyBandCalculator.domestic(@view_model.potential_energy_rating),
81
76
  potential_energy_efficiency_rating: @view_model.potential_energy_rating,
82
77
  potential_energy_saving:
83
78
  Helper::EstimatedCostPotentialSavingHelper.new.potential_saving(
@@ -86,25 +81,22 @@ module Presenter
86
81
  @view_model.lighting_cost_potential,
87
82
  estimated_energy_cost,
88
83
  ),
89
- primary_energy_use: @view_model.primary_energy_use,
84
+ primary_energy_use: @view_model.respond_to?(:primary_energy_use) ? @view_model.primary_energy_use : nil,
90
85
  energy_consumption_potential: @view_model.energy_consumption_potential,
91
- property_age_band: @view_model.property_age_band,
86
+ property_age_band: @view_model.respond_to?(:property_age_band) ? @view_model.property_age_band : nil,
92
87
  property_summary: @view_model.property_summary,
93
88
  recommended_improvements:
94
89
  @view_model.improvements.map do |improvement|
95
90
  improvement[:energy_performance_band_improvement] =
96
- Helper::EnergyBandCalculator.domestic(
97
- improvement[:energy_performance_rating_improvement],
98
- )
91
+ Helper::EnergyBandCalculator.domestic(improvement[:energy_performance_rating_improvement])
99
92
  improvement
100
93
  end,
101
94
  lzc_energy_sources: @view_model.lzc_energy_sources,
102
- related_party_disclosure_number:
103
- @view_model.related_party_disclosure_number,
95
+ related_party_disclosure_number: @view_model.respond_to?(:related_party_disclosure_number) ? @view_model.related_party_disclosure_number : nil,
104
96
  related_party_disclosure_text:
105
97
  @view_model.related_party_disclosure_text,
106
- tenure: @view_model.tenure,
107
- transaction_type: @view_model.transaction_type,
98
+ tenure: @view_model.respond_to?(:tenure) ? @view_model.tenure : nil,
99
+ transaction_type: @view_model.respond_to?(:transaction_type) ? @view_model.transaction_type : nil,
108
100
  total_floor_area: convert_to_big_decimal(@view_model.total_floor_area),
109
101
  status: @view_model.status,
110
102
  country_code: @view_model.country_code,
@@ -112,8 +104,8 @@ module Presenter
112
104
  environmental_impact_potential:
113
105
  @view_model.environmental_impact_potential,
114
106
  addendum: @view_model.addendum,
115
- gas_smart_meter_present: @view_model.gas_smart_meter_present,
116
- electricity_smart_meter_present: @view_model.electricity_smart_meter_present,
107
+ gas_smart_meter_present: @view_model.respond_to?(:gas_smart_meter_present) ? @view_model.gas_smart_meter_present : nil,
108
+ electricity_smart_meter_present: @view_model.respond_to?(:electricity_smart_meter_present) ? @view_model.electricity_smart_meter_present : nil,
117
109
  }
118
110
  end
119
111
 
@@ -33,15 +33,13 @@ module Presenter
33
33
  @view_model.report_type),
34
34
  has_hot_water_cylinder: @view_model.has_hot_water_cylinder,
35
35
  total_floor_area: @view_model.total_floor_area.to_s,
36
- has_mains_gas: @view_model.mains_gas,
36
+ has_mains_gas: @view_model.respond_to?(:mains_gas) ? @view_model.mains_gas : nil,
37
37
  current_energy_efficiency_rating: @view_model.current_energy_rating,
38
38
  potential_energy_efficiency_rating: @view_model.potential_energy_rating,
39
39
  type_of_property: Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
40
40
  recommended_improvements: @view_model.improvements.map do |improvement|
41
41
  improvement[:energy_performance_band_improvement] =
42
- Helper::EnergyBandCalculator.domestic(
43
- improvement[:energy_performance_rating_improvement],
44
- )
42
+ Helper::EnergyBandCalculator.domestic(improvement[:energy_performance_rating_improvement])
45
43
  improvement
46
44
  end,
47
45
  }
@@ -35,16 +35,14 @@ module Presenter
35
35
  @schema_type,
36
36
  @view_model.report_type,
37
37
  ),
38
- current_energy_efficiency: @view_model.current_energy_rating.to_s.chomp,
38
+ current_energy_efficiency: @view_model.current_energy_rating,
39
39
  current_energy_rating:
40
- Helper::EnergyBandCalculator.domestic(
41
- @view_model.current_energy_rating,
42
- ),
40
+ Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
43
41
  cylinder_insul_thickness: @view_model.cylinder_insul_thickness,
44
42
  cylinder_insulation_type: @view_model.cylinder_insulation_type,
45
43
  cylinder_size: @view_model.cylinder_size,
46
- has_cylinder_thermostat: @view_model.has_cylinder_thermostat,
47
- energy_consumption_current: @view_model.primary_energy_use,
44
+ has_cylinder_thermostat: @view_model.respond_to?(:has_cylinder_thermostat) ? @view_model.has_cylinder_thermostat : nil,
45
+ energy_consumption_current: @view_model.respond_to?(:primary_energy_use) ? @view_model.primary_energy_use : nil,
48
46
  energy_consumption_potential: @view_model.energy_consumption_potential,
49
47
  energy_tariff:
50
48
  Helper::XmlEnumsToOutput.energy_tariff(
@@ -54,9 +52,9 @@ module Presenter
54
52
  environment_impact_current: @view_model.environmental_impact_current,
55
53
  environment_impact_potential:
56
54
  @view_model.environmental_impact_potential,
57
- extension_count: @view_model.extensions_count,
58
- fixed_lighting_outlets_count: @view_model.fixed_lighting_outlets_count,
59
- flat_storey_count: @view_model.storey_count,
55
+ extension_count: @view_model.respond_to?(:extensions_count) ? @view_model.extensions_count : nil,
56
+ fixed_lighting_outlets_count: @view_model.respond_to?(:fixed_lighting_outlets_count) ? @view_model.fixed_lighting_outlets_count : nil,
57
+ flat_storey_count: @view_model.respond_to?(:storey_count) ? @view_model.storey_count : nil,
60
58
  flat_top_storey: @view_model.top_storey,
61
59
  floor_description: @view_model.all_floor_descriptions.first,
62
60
  floor_energy_eff:
@@ -73,14 +71,14 @@ module Presenter
73
71
  end,
74
72
  floor_level: @view_model.floor_level,
75
73
  glazed_area:
76
- Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.glazed_area),
74
+ Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.respond_to?(:glazed_area) ? @view_model.glazed_area : nil),
77
75
  glazed_type:
78
76
  Helper::XmlEnumsToOutput.glazed_type_rdsap(
79
77
  @view_model.multi_glazing_type,
80
78
  ),
81
79
  heat_loss_corridor:
82
80
  Helper::XmlEnumsToOutput.heat_loss_corridor(
83
- @view_model.heat_loss_corridor,
81
+ @view_model.respond_to?(:heat_loss_corridor) ? @view_model.heat_loss_corridor : nil,
84
82
  ),
85
83
  heating_cost_current: @view_model.heating_cost_current,
86
84
  heating_cost_potential: @view_model.heating_cost_potential,
@@ -107,9 +105,9 @@ module Presenter
107
105
  Helper::XmlEnumsToOutput.energy_rating_string(
108
106
  @view_model.lighting_environmental_efficiency_rating,
109
107
  ),
110
- low_energy_lighting: @view_model.low_energy_lighting,
108
+ low_energy_lighting: @view_model.respond_to?(:low_energy_lighting) ? @view_model.low_energy_lighting : nil,
111
109
  low_energy_fixed_lighting_count:
112
- @view_model.low_energy_fixed_lighting_outlets_count,
110
+ @view_model.respond_to?(:low_energy_fixed_lighting_outlets_count) ? @view_model.low_energy_fixed_lighting_outlets_count : nil,
113
111
  main_fuel:
114
112
  Helper::XmlEnumsToOutput.fuel_type(@view_model.main_fuel_type,
115
113
  @schema_type,
@@ -138,25 +136,22 @@ module Presenter
138
136
  @view_model.respond_to?(:mains_gas) ? @view_model.mains_gas : nil,
139
137
  mechanical_ventilation:
140
138
  Helper::XmlEnumsToOutput.mechanical_ventilation(
141
- @view_model.mechanical_ventilation,
139
+ @view_model.respond_to?(:mechanical_ventilation) ? @view_model.mechanical_ventilation : nil,
142
140
  @schema_type,
143
141
  @view_model.report_type,
144
142
  ),
145
- mech_vent_sys_index_number: @view_model.mech_vent_sys_index_number,
146
- mechanical_vent_data_source: @view_model.mechanical_vent_data_source,
147
- multi_glaze_proportion: @view_model.multiple_glazed_proportion,
148
- number_habitable_rooms: @view_model.habitable_room_count,
149
- number_heated_rooms: @view_model.heated_room_count,
150
- number_open_fireplaces: @view_model.open_fireplaces_count,
151
- photo_supply: @view_model.photovoltaic_roof_area_percent,
143
+ mech_vent_sys_index_number: @view_model.respond_to?(:mech_vent_sys_index_number) ? @view_model.mech_vent_sys_index_number : nil,
144
+ mechanical_vent_data_source: @view_model.respond_to?(:mechanical_vent_data_source) ? @view_model.mechanical_vent_data_source : nil,
145
+ multi_glaze_proportion: @view_model.respond_to?(:multiple_glazed_proportion) ? @view_model.multiple_glazed_proportion : nil,
146
+ number_habitable_rooms: @view_model.respond_to?(:habitable_room_count) ? @view_model.habitable_room_count : nil,
147
+ number_heated_rooms: @view_model.respond_to?(:heated_room_count) ? @view_model.heated_room_count : nil,
148
+ number_open_fireplaces: @view_model.respond_to?(:open_fireplaces_count) ? @view_model.open_fireplaces_count : nil,
149
+ photo_supply: @view_model.respond_to?(:photovoltaic_roof_area_percent) ? @view_model.photovoltaic_roof_area_percent : nil,
152
150
  postcode: @view_model.postcode,
153
151
  posttown: @view_model.town,
154
- potential_energy_efficiency:
155
- @view_model.potential_energy_rating.to_s.chomp,
152
+ potential_energy_efficiency: @view_model.potential_energy_rating,
156
153
  potential_energy_rating:
157
- Helper::EnergyBandCalculator.domestic(
158
- @view_model.potential_energy_rating,
159
- ),
154
+ Helper::EnergyBandCalculator.domestic(@view_model.potential_energy_rating),
160
155
  property_type:
161
156
  Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
162
157
  report_type: @view_model.report_type,
@@ -178,18 +173,18 @@ module Presenter
178
173
  Helper::XmlEnumsToOutput.energy_rating_string(
179
174
  @view_model.secondary_heating_environmental_efficiency_rating,
180
175
  ),
181
- solar_water_heating_flag: @view_model.solar_water_heating_flag,
182
- thermal_store: @view_model.thermal_store,
183
- tenure: Helper::XmlEnumsToOutput.tenure(@view_model.tenure),
176
+ solar_water_heating_flag: @view_model.respond_to?(:solar_water_heating_flag) ? @view_model.solar_water_heating_flag : nil,
177
+ thermal_store: @view_model.respond_to?(:thermal_store) ? @view_model.thermal_store : nil,
178
+ tenure: Helper::XmlEnumsToOutput.tenure(@view_model.respond_to?(:tenure) ? @view_model.tenure : nil),
184
179
  total_floor_area: @view_model.total_floor_area,
185
180
  transaction_type:
186
181
  Helper::XmlEnumsToOutput.transaction_type(
187
- @view_model.transaction_type,
182
+ @view_model.respond_to?(:transaction_type) ? @view_model.transaction_type : nil,
188
183
  @view_model.report_type,
189
184
  @schema_type,
190
185
  ),
191
- ventilation_type: Helper::XmlEnumsToOutput.ventilation_type(@view_model.ventilation_type, @schema_type),
192
- unheated_corridor_length: @view_model.unheated_corridor_length,
186
+ ventilation_type: Helper::XmlEnumsToOutput.ventilation_type(@view_model.respond_to?(:ventilation_type) ? @view_model.ventilation_type : nil, @schema_type),
187
+ unheated_corridor_length: @view_model.respond_to?(:unheated_corridor_length) ? @view_model.unheated_corridor_length : nil,
193
188
  water_heating_code: @view_model.water_heating_code,
194
189
  walls_description: @view_model.all_wall_descriptions.first,
195
190
  walls_energy_eff:
@@ -235,28 +230,23 @@ module Presenter
235
230
  @view_model.report_type,
236
231
  ),
237
232
  current_energy_rating:
238
- Helper::EnergyBandCalculator.domestic(
239
- @view_model.current_energy_rating,
240
- ),
233
+ Helper::EnergyBandCalculator.domestic(@view_model.current_energy_rating),
241
234
  potential_energy_rating:
242
- Helper::EnergyBandCalculator.domestic(
243
- @view_model.potential_energy_rating,
244
- ),
245
- current_energy_efficiency: @view_model.current_energy_rating.to_s.chomp,
246
- potential_energy_efficiency:
247
- @view_model.potential_energy_rating.to_s.chomp,
235
+ Helper::EnergyBandCalculator.domestic(@view_model.potential_energy_rating),
236
+ current_energy_efficiency: @view_model.current_energy_rating,
237
+ potential_energy_efficiency: @view_model.potential_energy_rating,
248
238
  property_type:
249
239
  Helper::XmlEnumsToOutput.property_type(@view_model.property_type),
250
- tenure: Helper::XmlEnumsToOutput.tenure(@view_model.tenure),
240
+ tenure: Helper::XmlEnumsToOutput.tenure(@view_model.respond_to?(:tenure) ? @view_model.tenure : nil),
251
241
  transaction_type:
252
242
  Helper::XmlEnumsToOutput.transaction_type(
253
- @view_model.transaction_type,
243
+ @view_model.respond_to?(:transaction_type) ? @view_model.transaction_type : nil,
254
244
  @view_model.report_type,
255
245
  ),
256
246
  environment_impact_current: @view_model.environmental_impact_current,
257
247
  environment_impact_potential:
258
248
  @view_model.environmental_impact_potential,
259
- energy_consumption_current: @view_model.primary_energy_use,
249
+ energy_consumption_current: @view_model.respond_to?(:primary_energy_use) ? @view_model.primary_energy_use : nil,
260
250
  energy_consumption_potential: @view_model.energy_consumption_potential,
261
251
  co2_emissions_current: @view_model.current_carbon_emission,
262
252
  co2_emiss_curr_per_floor_area:
@@ -272,17 +262,17 @@ module Presenter
272
262
  mains_gas_flag:
273
263
  @view_model.respond_to?(:mains_gas) ? @view_model.mains_gas : nil,
274
264
  flat_top_storey: @view_model.top_storey,
275
- flat_storey_count: @view_model.storey_count,
276
- multi_glaze_proportion: @view_model.multiple_glazed_proportion,
265
+ flat_storey_count: @view_model.respond_to?(:storey_count) ? @view_model.storey_count : nil,
266
+ multi_glaze_proportion: @view_model.respond_to?(:multiple_glazed_proportion) ? @view_model.multiple_glazed_proportion : nil,
277
267
  glazed_area:
278
- Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.glazed_area),
279
- number_habitable_rooms: @view_model.habitable_room_count,
280
- number_heated_rooms: @view_model.heated_room_count,
281
- low_energy_lighting: @view_model.low_energy_lighting,
282
- fixed_lighting_outlets_count: @view_model.fixed_lighting_outlets_count,
268
+ Helper::XmlEnumsToOutput.glazed_area_rdsap(@view_model.respond_to?(:glazed_area) ? @view_model.glazed_area : nil),
269
+ number_habitable_rooms: @view_model.respond_to?(:habitable_room_count) ? @view_model.habitable_room_count : nil,
270
+ number_heated_rooms: @view_model.respond_to?(:heated_room_count) ? @view_model.heated_room_count : nil,
271
+ low_energy_lighting: @view_model.respond_to?(:low_energy_lighting) ? @view_model.low_energy_lighting : nil,
272
+ fixed_lighting_outlets_count: @view_model.respond_to?(:fixed_lighting_outlets_count) ? @view_model.fixed_lighting_outlets_count : nil,
283
273
  low_energy_fixed_lighting_outlets_count:
284
- @view_model.low_energy_fixed_lighting_outlets_count,
285
- number_open_fireplaces: @view_model.open_fireplaces_count,
274
+ @view_model.respond_to?(:low_energy_fixed_lighting_outlets_count) ? @view_model.low_energy_fixed_lighting_outlets_count : nil,
275
+ number_open_fireplaces: @view_model.respond_to?(:open_fireplaces_count) ? @view_model.open_fireplaces_count : nil,
286
276
  hotwater_description: @view_model.hot_water_description,
287
277
  hot_water_energy_eff:
288
278
  Helper::XmlEnumsToOutput.energy_rating_string(
@@ -295,9 +285,9 @@ module Presenter
295
285
  wind_turbine_count: @view_model.wind_turbine_count,
296
286
  heat_loss_corridor:
297
287
  Helper::XmlEnumsToOutput.heat_loss_corridor(
298
- @view_model.heat_loss_corridor,
288
+ @view_model.respond_to?(:heat_loss_corridor) ? @view_model.heat_loss_corridor : nil,
299
289
  ),
300
- unheated_corridor_length: @view_model.unheated_corridor_length,
290
+ unheated_corridor_length: @view_model.respond_to?(:unheated_corridor_length) ? @view_model.unheated_corridor_length : nil,
301
291
  windows_description: @view_model.window_description,
302
292
  windows_energy_eff:
303
293
  Helper::XmlEnumsToOutput.energy_rating_string(
@@ -325,7 +315,7 @@ module Presenter
325
315
  Helper::XmlEnumsToOutput.energy_rating_string(
326
316
  @view_model.lighting_environmental_efficiency_rating,
327
317
  ),
328
- photo_supply: @view_model.photovoltaic_roof_area_percent,
318
+ photo_supply: @view_model.respond_to?(:photovoltaic_roof_area_percent) ? @view_model.photovoltaic_roof_area_percent : nil,
329
319
  built_form:
330
320
  Helper::XmlEnumsToOutput.built_form_string(@view_model.built_form),
331
321
  mainheat_description:
@@ -365,11 +355,11 @@ module Presenter
365
355
  Helper::XmlEnumsToOutput.energy_rating_string(
366
356
  @view_model.all_main_heating_environmental_efficiency.first,
367
357
  ),
368
- extension_count: @view_model.extensions_count,
369
- solar_water_heating_flag: @view_model.solar_water_heating_flag,
358
+ extension_count: @view_model.respond_to?(:extensions_count) ? @view_model.extensions_count : nil,
359
+ solar_water_heating_flag: @view_model.respond_to?(:solar_water_heating_flag) ? @view_model.solar_water_heating_flag : nil,
370
360
  mechanical_ventilation:
371
361
  Helper::XmlEnumsToOutput.mechanical_ventilation(
372
- @view_model.mechanical_ventilation,
362
+ @view_model.respond_to?(:mechanical_ventilation) ? @view_model.mechanical_ventilation : nil,
373
363
  @schema_type,
374
364
  @view_model.report_type,
375
365
  ),