epb_view_models 1.2.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 +27 -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
  ),