singapore_cpf_calculator 1.2.0 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -0
  3. data/README.md +14 -3
  4. data/lib/singapore_cpf_calculator.rb +26 -15
  5. data/lib/singapore_cpf_calculator/base_calculator.rb +45 -6
  6. data/lib/singapore_cpf_calculator/cpf_contribution.rb +14 -3
  7. data/lib/singapore_cpf_calculator/null_contribution_calculator.rb +4 -2
  8. data/lib/singapore_cpf_calculator/version.rb +1 -1
  9. data/lib/singapore_cpf_calculator/year_2012_to_2015_aw_ceiling_module.rb +7 -0
  10. data/lib/singapore_cpf_calculator/year_2014/base.rb +1 -0
  11. data/lib/singapore_cpf_calculator/year_2014/citizen_or_spr_3/citzen_or_spr3_base.rb +8 -0
  12. data/lib/singapore_cpf_calculator/year_2015/base.rb +1 -0
  13. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3.rb +1 -0
  14. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_50_below_contribution_calculator.rb +1 -1
  15. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_50_to_55_contribution_calculator.rb +1 -1
  16. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_55_to_60_contribution_calculator.rb +1 -1
  17. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_60_to_65_contribution_calculator.rb +1 -1
  18. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_65_up_contribution_calculator.rb +1 -1
  19. data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/citizen_or_spr3_base.rb +9 -0
  20. data/lib/singapore_cpf_calculator/year_2016/base.rb +4 -0
  21. data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3.rb +1 -0
  22. data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_55_below_contribution_calculator.rb +1 -1
  23. data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_55_to_60_contribution_calculator.rb +1 -1
  24. data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_60_to_65_contribution_calculator.rb +1 -1
  25. data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_65_up_contribution_calculator.rb +1 -1
  26. data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/citizen_or_spr3_base.rb +9 -0
  27. data/singapore_cpf_calculator.gemspec +1 -2
  28. data/spec/acceptance/company_a.csv +1367 -1365
  29. data/spec/acceptance/company_a_spec.rb +6 -4
  30. data/spec/singapore_cpf_calculator/year_2014/citizen_or_spr_3/age_50_below_contribution_calculator_spec.rb +10 -10
  31. data/spec/singapore_cpf_calculator/year_2015/citizen_or_spr_3_spec.rb +35 -0
  32. data/spec/singapore_cpf_calculator/year_2015/spr_2_gg/age_55_to_60_contribution_calculator_spec.rb +8 -8
  33. data/spec/singapore_cpf_calculator/year_2016/citizen_or_spr_3_spec.rb +82 -16
  34. data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_55_below_contribution_calculator_spec.rb +8 -8
  35. data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_55_to_60_contribution_calculator_spec.rb +8 -8
  36. data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_60_to_65_contribution_calculator_spec.rb +8 -8
  37. data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_65_up_contribution_calculator_spec.rb +8 -8
  38. data/spec/singapore_cpf_calculator_spec.rb +50 -2
  39. data/spec/spec_helper.rb +12 -10
  40. metadata +10 -21
  41. data/circle.yml +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0d44d25461342a4f59f937164260f9b7f4a80997
4
- data.tar.gz: 5ae6f53a86bb4b3765673b5e8c7d94af62efa288
2
+ SHA256:
3
+ metadata.gz: 2b0d8aa374278f946ccb6f54e778961317d15d455a0f0eeae1eb4bd4af7b251a
4
+ data.tar.gz: a711ea455d39a43a8d3dc2b598c02db1a35e8e95b15121139a53b4dbb6640255
5
5
  SHA512:
6
- metadata.gz: 6c2beef08f80b1090938105321b0e7f27d6cc0fb1ae858a9557bae5a140288b27012a7ee2bde9063dd27f3202d115ba15ec19e7ec8672f412b555c5ca843edc1
7
- data.tar.gz: 5b0bac0f364682ff322895cfe39534a3bf645f9b422e717a05e4792bd7d83f7362b70303eab34b5564723ec75302d05df347281143bd303b75b761121ee3b084
6
+ metadata.gz: bb687c0f164156933033b3b2a8a2a00231d62c761e0c10aa8ee4d4569c98addf63d2cf9e6a30fcb8beaa4070a33e7e58defeae7fe1ea5127f11c7efb0f376e29
7
+ data.tar.gz: 6969152787d83f823a60087d293b9eeea8267ae5e871ea7b3a0d9cb8712a4dc91e74e89a7b2f0d089dad70a41ce9e9abeb4ecdf2a47fba2ea370d1cd2b2346a7
@@ -0,0 +1,15 @@
1
+ language: ruby
2
+ dist: trusty
3
+ group: stable
4
+ rvm:
5
+ - 2.1.8
6
+ - 2.2.4
7
+ - 2.3.8
8
+ - 2.4.9
9
+ - 2.5.8
10
+ - 2.6.6
11
+ - 2.7.1
12
+
13
+ script:
14
+ - bundle exec rspec
15
+
data/README.md CHANGED
@@ -44,9 +44,10 @@ Or install it yourself as:
44
44
 
45
45
  ## Usage
46
46
 
47
- Use {SingaporeCPFCalculator.calculate} to calculate for CPF contribution. The method return a
47
+ Use {SingaporeCPFCalculator.calculate} to calculate for CPF contribution. The method returns a
48
48
  {SingaporeCPFCalculator::CPFContribution} object responding to {SingaporeCPFCalculator::CPFContribution#employee},
49
- {SingaporeCPFCalculator::CPFContribution#employer} and {SingaporeCPFCalculator::CPFContribution#total}.
49
+ {SingaporeCPFCalculator::CPFContribution#employer}, {SingaporeCPFCalculator::CPFContribution#total},
50
+ {SingaporeCPFCalculator::CPFContribution#ow_subject_to_cpf} and {SingaporeCPFCalculator::CPFContribution#aw_subject_to_cpf}.
50
51
 
51
52
  ```ruby
52
53
  require "singapore_cpf_calculator"
@@ -58,12 +59,16 @@ Use {SingaporeCPFCalculator.calculate} to calculate for CPF contribution. The me
58
59
  ordinary_wages: 700.00,
59
60
  additional_wages: 252.00,
60
61
  employee_contribution_type: "full",
61
- employer_contribution_type: "full"
62
+ employer_contribution_type: "full",
63
+ ytd_additional_wages: 20_000,
64
+ ytd_ow_subject_to_cpf: 80_000
62
65
 
63
66
  result # => #<SingaporeCPFCalculator::CPFContribution ...>
64
67
  result.employee # => 190.00
65
68
  result.employer # => 153.00
66
69
  result.total # => 343.00
70
+ result.ow_subject_to_cpf # => 700.0 (the ordinary wages which were under the wage cap)
71
+ result.aw_subject_to_cpf # => 252.0 (the additional wages which were under the additional wage ceiling)
67
72
  ```
68
73
 
69
74
  The following parameters needs to be specified:
@@ -87,6 +92,12 @@ The following parameters needs to be specified:
87
92
  * **employer\_contribution\_type** : type of rates to use
88
93
  * accepted values : `"full"`, `"graduated"` type of rates to use for the employer's contribution
89
94
  * note: *graduated* rates is not supported if the employee's contribution type is *full*
95
+ * **ytd_additional_wages : Year to Date Additional Wages which were subject to CPF
96
+ * notes:
97
+ * this is for calculating the additional wage ceiling.
98
+ * **ytd_ow_subject_to_cpf: Year to Date Ordinary Wages which were subject to CPF
99
+ * notes:
100
+ * this is for calculating the additional wage ceiling.
90
101
 
91
102
  ## Contributing
92
103
 
@@ -12,7 +12,9 @@ module SingaporeCPFCalculator
12
12
  # ordinary_wages: 700.00,
13
13
  # additional_wages: 252.00,
14
14
  # employee_contribution_type: "full",
15
- # employer_contribution_type: "full"
15
+ # employer_contribution_type: "full",
16
+ # ytd_additional_wages: 20_000,
17
+ # ytd_ow_subject_to_cpf: 60_000
16
18
  #
17
19
  # result # => #<SingaporeCPFCalculator::CPFContribution ...>
18
20
  # result.employee # => 190.00
@@ -34,23 +36,27 @@ module SingaporeCPFCalculator
34
36
  # Additional wages are wage supplements which are not granted wholly and exclusively for the
35
37
  # month, such as annual bonus and leave pay. These and other incentive payments may be made at
36
38
  # intervals of more than a month.
37
- #
39
+ # @param [BigDecimal] ytd_additional_wages:
40
+ # Cumulative Additional Wages for the year (YTD)
41
+ # @param [BigDecimal] ytd_ow_subject_to_cpf:
42
+ # The Year to Date Ordinary Wages which have been subject to CPF.
38
43
  # @return [CPFContribution]
39
- def calculate(
40
- date:,
41
- birthdate:,
42
- residency_status:,
43
- spr_start_date: nil,
44
- ordinary_wages:,
45
- additional_wages:,
46
- employee_contribution_type: nil,
47
- employer_contribution_type: nil
48
- )
49
- validate_params date: date,
44
+ def calculate(date:,
45
+ birthdate:,
46
+ residency_status:,
47
+ spr_start_date: nil,
48
+ ordinary_wages:,
49
+ additional_wages:,
50
+ employee_contribution_type: nil,
51
+ employer_contribution_type: nil,
52
+ ytd_additional_wages: 0.0,
53
+ ytd_ow_subject_to_cpf: 0.0,
54
+ estimated_yearly_ow: 0.0)
55
+ validate_params(date: date,
50
56
  employee_contribution_type: employee_contribution_type,
51
57
  employer_contribution_type: employer_contribution_type,
52
58
  residency_status: residency_status,
53
- spr_start_date: spr_start_date
59
+ spr_start_date: spr_start_date)
54
60
 
55
61
  module_for_date(date).
56
62
  module_for_residency(
@@ -60,7 +66,11 @@ module SingaporeCPFCalculator
60
66
  employee_contribution_type: employee_contribution_type,
61
67
  employer_contribution_type: employer_contribution_type
62
68
  ).calculator_for(date, birthdate: birthdate).
63
- calculate ordinary_wages: ordinary_wages, additional_wages: additional_wages
69
+ calculate ordinary_wages: ordinary_wages,
70
+ additional_wages: additional_wages,
71
+ ytd_additional_wages: ytd_additional_wages,
72
+ ytd_ow_subject_to_cpf: ytd_ow_subject_to_cpf,
73
+ estimated_yearly_ow: estimated_yearly_ow
64
74
  end
65
75
 
66
76
  private
@@ -122,6 +132,7 @@ require_relative "singapore_cpf_calculator/spr_1_fg_common"
122
132
  require_relative "singapore_cpf_calculator/spr_1_gg_common"
123
133
  require_relative "singapore_cpf_calculator/spr_2_fg_common"
124
134
  require_relative "singapore_cpf_calculator/spr_2_gg_common"
135
+ require_relative 'singapore_cpf_calculator/year_2012_to_2015_aw_ceiling_module'
125
136
  require_relative "singapore_cpf_calculator/year_2014"
126
137
  require_relative "singapore_cpf_calculator/year_2015"
127
138
  require_relative "singapore_cpf_calculator/year_2016"
@@ -18,9 +18,14 @@ module SingaporeCPFCalculator
18
18
  # month, such as annual bonus and leave pay. These and other incentive payments may be made at
19
19
  # intervals of more than a month.
20
20
  #
21
+ # @param [BigDecimal] ytd_additional_wages The year to date additional wages
22
+ # @param [BigDecimal] ytd_ow_subject_to_cpf The year to date ordinary wages
21
23
  # @return [Hash] returns the total, employee, employer amounts for the CPF contribution
22
- def calculate(ordinary_wages:, additional_wages:)
23
- new(ordinary_wages: ordinary_wages, additional_wages: additional_wages).calculate
24
+ def calculate(ordinary_wages:, additional_wages:, ytd_additional_wages: 0.0, ytd_ow_subject_to_cpf: 0.0,
25
+ estimated_yearly_ow: 0.0)
26
+ new(ordinary_wages: ordinary_wages, additional_wages: additional_wages,
27
+ ytd_ow_subject_to_cpf: ytd_ow_subject_to_cpf, ytd_additional_wages: ytd_additional_wages,
28
+ estimated_yearly_ow: estimated_yearly_ow).calculate
24
29
  end
25
30
 
26
31
  private
@@ -30,25 +35,38 @@ module SingaporeCPFCalculator
30
35
  end
31
36
  end
32
37
 
33
- def initialize(ordinary_wages:, additional_wages:)
38
+ def initialize(ordinary_wages:, additional_wages:, ytd_additional_wages: 0.0, ytd_ow_subject_to_cpf: 0.0,
39
+ estimated_yearly_ow: 0.0)
34
40
  @ordinary_wages = ordinary_wages
41
+ @ytd_ow_subject_to_cpf = ytd_ow_subject_to_cpf
42
+ @ytd_additional_wages = ytd_additional_wages
43
+ @estimated_yearly_ow = estimated_yearly_ow
35
44
  @additional_wages = additional_wages
45
+ clip_additional_wages_based_on_ceiling()
36
46
  end
37
47
 
38
48
  # @return [Hash] returns the total, employee, employer amounts for the CPF contribution
39
49
  def calculate
40
50
  CPFContribution.new total: total_contribution,
41
- employee: employee_contribution
51
+ employee: employee_contribution,
52
+ aw_subject_to_cpf: additional_wages,
53
+ ow_subject_to_cpf: capped_ordinary_wages
42
54
  end
43
55
 
44
56
  private
45
57
 
46
- attr_reader :ordinary_wages, :additional_wages
58
+ attr_reader :ordinary_wages, :additional_wages, :ytd_additional_wages, :ytd_ow_subject_to_cpf,
59
+ :estimated_yearly_ow
47
60
 
48
61
  def total_contribution
49
62
  @total_contribution ||= calculated_total_contribution.round(0, :half_up)
50
63
  end
51
64
 
65
+ # Steps to compute CPF contribution:
66
+ # a. Compute the total CPF contribution (rounded to the nearest dollar). An amount of 50 cents
67
+ # should be regarded as an additional dollar.
68
+ # b. Compute the employee’s share of CPF contribution (cents should be dropped)
69
+ # c. Employer’s share = Total contribution – Employee’s share
52
70
  def employee_contribution
53
71
  @employee_contribution ||= calculated_employee_contribution.round(0, :truncate)
54
72
  end
@@ -61,6 +79,22 @@ module SingaporeCPFCalculator
61
79
  ordinary_wages + additional_wages
62
80
  end
63
81
 
82
+ def clip_additional_wages_based_on_ceiling
83
+ unless additional_wage_ceiling.blank?
84
+ @additional_wages = [additional_wages, calculated_remaining_wage_ceiling, estimated_remaining_wage_ceiling].min
85
+ end
86
+ end
87
+
88
+ def calculated_remaining_wage_ceiling
89
+ max_remaining = additional_wage_ceiling - ytd_ow_subject_to_cpf - capped_ordinary_wages - ytd_additional_wages
90
+ [max_remaining, d('0.0')].max
91
+ end
92
+
93
+ def estimated_remaining_wage_ceiling
94
+ estimated_remaining = additional_wage_ceiling - estimated_yearly_ow - ytd_additional_wages
95
+ [estimated_remaining, d('0.0')].max
96
+ end
97
+
64
98
  def calculated_total_contribution
65
99
  case
66
100
  when total_wages <= d("50.00")
@@ -85,6 +119,11 @@ module SingaporeCPFCalculator
85
119
  end
86
120
  end
87
121
 
122
+ # generally applies only to spr3 and citizens
123
+ def additional_wage_ceiling
124
+ nil
125
+ end
126
+
88
127
  # TC Rate 1 is
89
128
  def tc_rate_1
90
129
  raise NotImplementedError, "sub classes needs to implement #tc_rate_1"
@@ -108,7 +147,7 @@ module SingaporeCPFCalculator
108
147
 
109
148
  # precision helper
110
149
  def d(val)
111
- BigDecimal.new val
150
+ BigDecimal(val)
112
151
  end
113
152
 
114
153
  end
@@ -4,13 +4,17 @@ module SingaporeCPFCalculator
4
4
  class CPFContribution
5
5
 
6
6
  # @return [BigDecimal]
7
- attr_reader :total, :employee
7
+ attr_reader :total, :employee, :ow_subject_to_cpf, :aw_subject_to_cpf
8
8
 
9
9
  # @param [BigDecimal] total the total contribution amount
10
10
  # @param [BigDecimal] employee the employee contribution amount
11
- def initialize(total:, employee:)
11
+ # @param [BigDecimal] ow_subject_to_cpf Ordinary Wages which were subject to CPF
12
+ # @param [BigDecimal] aw_subject_to_cpf Additional Wages which were subject to CPF
13
+ def initialize(total:, employee:, ow_subject_to_cpf:, aw_subject_to_cpf:)
12
14
  @total = total
13
15
  @employee = employee
16
+ @ow_subject_to_cpf = ow_subject_to_cpf
17
+ @aw_subject_to_cpf = aw_subject_to_cpf
14
18
  end
15
19
 
16
20
  # @return [BigDecimal] difference between the total and employee contributions
@@ -21,7 +25,14 @@ module SingaporeCPFCalculator
21
25
  # @param [CPFContribution] other
22
26
  # @return [TrueClass, FalseClass]
23
27
  def ==(other)
24
- total == other.total && employee == other.employee
28
+ other.kind_of?(CPFContribution) && total == other.total && employee == other.employee &&
29
+ (ow_subject_to_cpf == other.ow_subject_to_cpf) &&
30
+ (aw_subject_to_cpf == other.aw_subject_to_cpf)
31
+ end
32
+
33
+ def inspect
34
+ {total: total.to_s, employee: employee.to_s,
35
+ ow_subject_to_cpf: ow_subject_to_cpf.to_s, aw_subject_to_cpf: aw_subject_to_cpf.to_s}.to_json
25
36
  end
26
37
 
27
38
  end
@@ -7,8 +7,10 @@ module SingaporeCPFCalculator
7
7
 
8
8
  # returns zero value
9
9
  def calculate(*)
10
- CPFContribution.new total: BigDecimal.new("0.0"),
11
- employee: BigDecimal.new("0.0")
10
+ CPFContribution.new total: BigDecimal("0.0"),
11
+ employee: BigDecimal("0.0"),
12
+ ow_subject_to_cpf: BigDecimal('0.0'),
13
+ aw_subject_to_cpf: BigDecimal('0.0')
12
14
  end
13
15
 
14
16
  end
@@ -1,3 +1,3 @@
1
1
  module SingaporeCPFCalculator
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.4"
3
3
  end
@@ -0,0 +1,7 @@
1
+ module SingaporeCPFCalculator
2
+ module Year2012To2015AwCeilingModule
3
+ def additional_wage_ceiling
4
+ d('85_000')
5
+ end
6
+ end
7
+ end
@@ -3,6 +3,7 @@ module SingaporeCPFCalculator
3
3
 
4
4
  # Base class for 2014 CPF calculators.
5
5
  class Base < BaseCalculator
6
+ include SingaporeCPFCalculator::Year2012To2015AwCeilingModule
6
7
 
7
8
  private
8
9
 
@@ -0,0 +1,8 @@
1
+ module SingaporeCPFCalculator
2
+ module Year2014
3
+ module CitizenOrSPR3
4
+ class CitizenOrSpr3Base < Year2014::Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -3,6 +3,7 @@ module SingaporeCPFCalculator
3
3
 
4
4
  # Base class for 2014 CPF calculators.
5
5
  class Base < BaseCalculator
6
+ include SingaporeCPFCalculator::Year2012To2015AwCeilingModule
6
7
 
7
8
  private
8
9
 
@@ -1,3 +1,4 @@
1
+ require_relative 'citizen_or_spr_3/citizen_or_spr3_base'
1
2
  require_relative "citizen_or_spr_3/age_50_below_contribution_calculator"
2
3
  require_relative "citizen_or_spr_3/age_50_to_55_contribution_calculator"
3
4
  require_relative "citizen_or_spr_3/age_55_to_60_contribution_calculator"
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 50 and below.
6
- class Age50BelowContributionCalculator < Year2015::Base
6
+ class Age50BelowContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::Group50YearsAndBelow
9
9
 
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 50 to 55.
6
- class Age50To55ContributionCalculator < Year2015::Base
6
+ class Age50To55ContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::GroupAbove50To55Years
9
9
 
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 55 to 60.
6
- class Age55To60ContributionCalculator < Year2015::Base
6
+ class Age55To60ContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::GroupAbove55To60Years
9
9
 
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 60 to 65.
6
- class Age60To65ContributionCalculator < Year2015::Base
6
+ class Age60To65ContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::GroupAbove60To65Years
9
9
 
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 65 and above.
6
- class Age65UpContributionCalculator < Year2015::Base
6
+ class Age65UpContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::GroupAbove65Years
9
9
 
@@ -0,0 +1,9 @@
1
+ module SingaporeCPFCalculator
2
+ module Year2015
3
+ module CitizenOrSPR3
4
+ # Base calculator for citizen or spr3 in year 2015
5
+ class CitizenOrSpr3Base < Year2015::Base
6
+ end
7
+ end
8
+ end
9
+ end
@@ -6,6 +6,10 @@ module SingaporeCPFCalculator
6
6
 
7
7
  private
8
8
 
9
+ def additional_wage_ceiling
10
+ d('102_000')
11
+ end
12
+
9
13
  def capped_ordinary_wages
10
14
  [d("6_000"), ordinary_wages].min
11
15
  end
@@ -1,3 +1,4 @@
1
+ require_relative 'citizen_or_spr_3/citizen_or_spr3_base'
1
2
  require_relative "citizen_or_spr_3/age_55_below_contribution_calculator"
2
3
  require_relative "citizen_or_spr_3/age_55_to_60_contribution_calculator"
3
4
  require_relative "citizen_or_spr_3/age_60_to_65_contribution_calculator"
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 50 and below.
6
- class Age55BelowContributionCalculator < Year2016::Base
6
+ class Age55BelowContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::Group55YearsAndBelow
9
9
 
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 55 to 60.
6
- class Age55To60ContributionCalculator < Year2016::Base
6
+ class Age55To60ContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::GroupAbove55To60Years
9
9
 
@@ -3,7 +3,7 @@ module SingaporeCPFCalculator
3
3
  module CitizenOrSPR3
4
4
 
5
5
  # Payment calculator for Singapore's Central Provident Fund for employee's age 60 to 65.
6
- class Age60To65ContributionCalculator < Year2016::Base
6
+ class Age60To65ContributionCalculator < CitizenOrSpr3Base
7
7
 
8
8
  extend Requirements::GroupAbove60To65Years
9
9