@@ -9,14 +9,18 @@ def define
9
9
exclude_countries = %w( british-antarctic-territory french-guiana guadeloupe holy-see martinique mayotte reunion st-maarten )
10
10
additional_countries = [ OpenStruct . new ( slug : "jersey" , name : "Jersey" ) , OpenStruct . new ( slug : "guernsey" , name : "Guernsey" ) ]
11
11
12
- countries_of_former_yugoslavia = %w( bosnia-and-herzegovina kosovo macedonia montenegro serbia ) . freeze
12
+ countries_of_former_yugoslavia = Calculators :: UkBenefitsAbroadCalculator :: COUNTRIES_OF_FORMER_YUGOSLAVIA
13
13
14
14
# Q1
15
15
multiple_choice :going_or_already_abroad? do
16
16
option :going_abroad
17
17
option :already_abroad
18
18
save_input_as :going_or_already_abroad
19
19
20
+ on_response do
21
+ self . calculator = Calculators ::UkBenefitsAbroadCalculator . new
22
+ end
23
+
20
24
calculate :country_question_title do
21
25
if going_or_already_abroad == "going_abroad"
22
26
"Which country are you moving to?"
@@ -112,59 +116,36 @@ def define
112
116
113
117
## Country Question - Shared
114
118
country_select :which_country? , additional_countries : additional_countries , exclude_countries : exclude_countries do
115
- save_input_as :country
116
-
117
- calculate :country_name do
118
- ( WorldLocation . all + additional_countries ) . find { |c | c . slug == country } . name
119
+ on_response do |response |
120
+ calculator . country = response
119
121
end
120
122
121
- next_node_calculation :responded_with_eea_country do |response |
122
- %w( austria belgium bulgaria croatia cyprus czech-republic denmark estonia
123
- finland france germany gibraltar greece hungary iceland ireland italy
124
- latvia liechtenstein lithuania luxembourg malta netherlands norway
125
- poland portugal romania slovakia slovenia spain sweden switzerland ) . include? ( response )
126
- end
127
-
128
- next_node_calculation :responded_with_former_yugoslavia do |response |
129
- countries_of_former_yugoslavia . include? ( response )
130
- end
131
-
132
- next_node_calculation :social_security_countries_jsa do |response |
133
- ( countries_of_former_yugoslavia + %w( guernsey jersey new-zealand ) ) . include? ( response )
134
- end
135
-
136
- next_node_calculation :social_security_countries_iidb do |response |
137
- ( countries_of_former_yugoslavia +
138
- %w( barbados bermuda guernsey jersey israel jamaica mauritius philippines turkey ) ) . include? ( response )
139
- end
140
-
141
- next_node_calculation :social_security_countries_bereavement_benefits do |response |
142
- ( countries_of_former_yugoslavia +
143
- %w( barbados bermuda canada guernsey jersey israel jamaica mauritius new-zealand philippines turkey usa ) ) . include? ( response )
123
+ calculate :country_name do
124
+ ( WorldLocation . all + additional_countries ) . find { |c | c . slug == calculator . country } . name
144
125
end
145
126
146
127
next_node do |response |
147
128
case benefit
148
129
when 'jsa'
149
- if already_abroad && responded_with_eea_country
130
+ if already_abroad && calculator . eea_country?
150
131
outcome :jsa_eea_already_abroad_outcome # A3 already_abroad
151
- elsif already_abroad && social_security_countries_jsa
132
+ elsif already_abroad && calculator . social_security_countries_jsa?
152
133
outcome :jsa_social_security_already_abroad_outcome # A4 already_abroad
153
- elsif going_abroad && responded_with_eea_country
134
+ elsif going_abroad && calculator . eea_country?
154
135
outcome :jsa_eea_going_abroad_outcome # A5 going_abroad
155
- elsif going_abroad && social_security_countries_jsa
136
+ elsif going_abroad && calculator . social_security_countries_jsa?
156
137
outcome :jsa_social_security_going_abroad_outcome # A6 going_abroad
157
138
else
158
139
outcome :jsa_not_entitled_outcome # A7 going_abroad and A5 already_abroad
159
140
end
160
141
when 'maternity_benefits'
161
- if responded_with_eea_country
142
+ if calculator . eea_country?
162
143
question :working_for_a_uk_employer? # Q8 going_abroad and Q7 already_abroad
163
144
else
164
145
question :employer_paying_ni? # Q10, Q11, Q16 going_abroad and Q9, Q10, Q15 already_abroad
165
146
end
166
147
when 'winter_fuel_payment'
167
- if responded_with_eea_country
148
+ if calculator . eea_country?
168
149
if going_abroad
169
150
outcome :wfp_going_abroad_outcome # A9 going_abroad
170
151
else
@@ -174,9 +155,9 @@ def define
174
155
outcome :wfp_not_eligible_outcome # A8 going_abroad and A6 already_abroad
175
156
end
176
157
when 'child_benefit'
177
- if responded_with_eea_country
158
+ if calculator . eea_country?
178
159
question :do_either_of_the_following_apply? # Q13 going_abroad and Q12 already_abroad
179
- elsif responded_with_former_yugoslavia
160
+ elsif calculator . former_yugoslavia?
180
161
if going_abroad
181
162
outcome :child_benefit_fy_going_abroad_outcome # A14 going_abroad
182
163
else
@@ -191,57 +172,57 @@ def define
191
172
end
192
173
when 'iidb'
193
174
if going_abroad
194
- if responded_with_eea_country
175
+ if calculator . eea_country?
195
176
outcome :iidb_going_abroad_eea_outcome # A32 going_abroad
196
- elsif social_security_countries_iidb
177
+ elsif calculator . social_security_countries_iidb?
197
178
outcome :iidb_going_abroad_ss_outcome # A33 going_abroad
198
179
else
199
180
outcome :iidb_going_abroad_other_outcome # A34 going_abroad
200
181
end
201
182
elsif already_abroad
202
- if responded_with_eea_country
183
+ if calculator . eea_country?
203
184
outcome :iidb_already_abroad_eea_outcome # A31 already_abroad
204
- elsif social_security_countries_iidb
185
+ elsif calculator . social_security_countries_iidb?
205
186
outcome :iidb_already_abroad_ss_outcome # A32 already_abroad
206
187
else
207
188
outcome :iidb_already_abroad_other_outcome # A33 already_abroad
208
189
end
209
190
end
210
191
when 'disability_benefits'
211
- if responded_with_eea_country
192
+ if calculator . eea_country?
212
193
question :db_claiming_benefits? # Q30 going_abroad and Q29 already_abroad
213
194
elsif going_abroad
214
195
outcome :db_going_abroad_other_outcome # A36 going_abroad
215
196
else
216
197
outcome :db_already_abroad_other_outcome # A35 already_abroad
217
198
end
218
199
when 'ssp'
219
- if responded_with_eea_country
200
+ if calculator . eea_country?
220
201
question :working_for_uk_employer_ssp? # Q15 going_abroad and Q14 already_abroad
221
202
else
222
203
question :employer_paying_ni? # Q10, Q11, Q16 going_abroad and Q9, Q10, Q15 already_abroad
223
204
end
224
205
when 'tax_credits'
225
- if responded_with_eea_country
206
+ if calculator . eea_country?
226
207
question :tax_credits_currently_claiming? # Q20 already_abroad
227
208
else
228
209
outcome :tax_credits_unlikely_outcome # A21 already_abroad and A23 going_abroad
229
210
end
230
211
when 'esa'
231
212
if going_abroad
232
- if responded_with_eea_country
213
+ if calculator . eea_country?
233
214
outcome :esa_going_abroad_eea_outcome # A29 going_abroad
234
- elsif responded_with_former_yugoslavia
215
+ elsif calculator . former_yugoslavia?
235
216
outcome :esa_going_abroad_eea_outcome
236
217
elsif %w( barbados guernsey israel jersey jamaica turkey usa ) . include? ( response )
237
218
outcome :esa_going_abroad_eea_outcome
238
219
else
239
220
outcome :esa_going_abroad_other_outcome # A30 going_abroad
240
221
end
241
222
elsif already_abroad
242
- if responded_with_eea_country
223
+ if calculator . eea_country?
243
224
outcome :esa_already_abroad_eea_outcome # A27 already_abroad
244
- elsif responded_with_former_yugoslavia
225
+ elsif calculator . former_yugoslavia?
245
226
outcome :esa_already_abroad_ss_outcome # A28 already_abroad
246
227
elsif %w( barbados jersey guernsey jamaica turkey usa ) . include? ( response )
247
228
outcome :esa_already_abroad_ss_outcome
@@ -251,17 +232,17 @@ def define
251
232
end
252
233
when 'bereavement_benefits'
253
234
if going_abroad
254
- if responded_with_eea_country
235
+ if calculator . eea_country?
255
236
outcome :bb_going_abroad_eea_outcome # A39 going_abroad
256
- elsif social_security_countries_bereavement_benefits
237
+ elsif calculator . social_security_countries_bereavement_benefits?
257
238
outcome :bb_going_abroad_ss_outcome # A40 going_abroad
258
239
else
259
240
outcome :bb_going_abroad_other_outcome # A38 going_abroad
260
241
end
261
242
elsif already_abroad
262
- if responded_with_eea_country
243
+ if calculator . eea_country?
263
244
outcome :bb_already_abroad_eea_outcome # A37 already_abroad
264
- elsif social_security_countries_bereavement_benefits
245
+ elsif calculator . social_security_countries_bereavement_benefits?
265
246
outcome :bb_already_abroad_ss_outcome # A38 already_abroad
266
247
else
267
248
outcome :bb_already_abroad_other_outcome # A39 already_abroad
@@ -326,7 +307,7 @@ def define
326
307
#not SSP benefits
327
308
if response == 'yes'
328
309
question :eligible_for_smp? # Q9 going_abroad and Q8 already_abroad
329
- elsif ( countries_of_former_yugoslavia + %w( barbados guernsey jersey israel turkey ) ) . include? ( country )
310
+ elsif ( countries_of_former_yugoslavia + %w( barbados guernsey jersey israel turkey ) ) . include? ( calculator . country )
330
311
if already_abroad
331
312
outcome :maternity_benefits_social_security_already_abroad_outcome # A10 already_abroad
332
313
else
0 commit comments