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.
- checksums.yaml +5 -5
- data/.travis.yml +15 -0
- data/README.md +14 -3
- data/lib/singapore_cpf_calculator.rb +26 -15
- data/lib/singapore_cpf_calculator/base_calculator.rb +45 -6
- data/lib/singapore_cpf_calculator/cpf_contribution.rb +14 -3
- data/lib/singapore_cpf_calculator/null_contribution_calculator.rb +4 -2
- data/lib/singapore_cpf_calculator/version.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2012_to_2015_aw_ceiling_module.rb +7 -0
- data/lib/singapore_cpf_calculator/year_2014/base.rb +1 -0
- data/lib/singapore_cpf_calculator/year_2014/citizen_or_spr_3/citzen_or_spr3_base.rb +8 -0
- data/lib/singapore_cpf_calculator/year_2015/base.rb +1 -0
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3.rb +1 -0
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_50_below_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_50_to_55_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_55_to_60_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_60_to_65_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_65_up_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/citizen_or_spr3_base.rb +9 -0
- data/lib/singapore_cpf_calculator/year_2016/base.rb +4 -0
- data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3.rb +1 -0
- data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_55_below_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_55_to_60_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_60_to_65_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_65_up_contribution_calculator.rb +1 -1
- data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/citizen_or_spr3_base.rb +9 -0
- data/singapore_cpf_calculator.gemspec +1 -2
- data/spec/acceptance/company_a.csv +1367 -1365
- data/spec/acceptance/company_a_spec.rb +6 -4
- data/spec/singapore_cpf_calculator/year_2014/citizen_or_spr_3/age_50_below_contribution_calculator_spec.rb +10 -10
- data/spec/singapore_cpf_calculator/year_2015/citizen_or_spr_3_spec.rb +35 -0
- data/spec/singapore_cpf_calculator/year_2015/spr_2_gg/age_55_to_60_contribution_calculator_spec.rb +8 -8
- data/spec/singapore_cpf_calculator/year_2016/citizen_or_spr_3_spec.rb +82 -16
- data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_55_below_contribution_calculator_spec.rb +8 -8
- data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_55_to_60_contribution_calculator_spec.rb +8 -8
- data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_60_to_65_contribution_calculator_spec.rb +8 -8
- data/spec/singapore_cpf_calculator/year_2016/spr_2_gg/age_65_up_contribution_calculator_spec.rb +8 -8
- data/spec/singapore_cpf_calculator_spec.rb +50 -2
- data/spec/spec_helper.rb +12 -10
- metadata +10 -21
- data/circle.yml +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b0d8aa374278f946ccb6f54e778961317d15d455a0f0eeae1eb4bd4af7b251a
|
4
|
+
data.tar.gz: a711ea455d39a43a8d3dc2b598c02db1a35e8e95b15121139a53b4dbb6640255
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb687c0f164156933033b3b2a8a2a00231d62c761e0c10aa8ee4d4569c98addf63d2cf9e6a30fcb8beaa4070a33e7e58defeae7fe1ea5127f11c7efb0f376e29
|
7
|
+
data.tar.gz: 6969152787d83f823a60087d293b9eeea8267ae5e871ea7b3a0d9cb8712a4dc91e74e89a7b2f0d089dad70a41ce9e9abeb4ecdf2a47fba2ea370d1cd2b2346a7
|
data/.travis.yml
ADDED
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
|
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}
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
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,
|
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
|
-
|
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
|
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
|
-
|
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
|
11
|
-
employee: BigDecimal
|
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,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"
|
data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_50_below_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age50BelowContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::Group50YearsAndBelow
|
9
9
|
|
data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_50_to_55_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age50To55ContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::GroupAbove50To55Years
|
9
9
|
|
data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_55_to_60_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age55To60ContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::GroupAbove55To60Years
|
9
9
|
|
data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_60_to_65_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age60To65ContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::GroupAbove60To65Years
|
9
9
|
|
data/lib/singapore_cpf_calculator/year_2015/citizen_or_spr_3/age_65_up_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age65UpContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::GroupAbove65Years
|
9
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_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"
|
data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_55_below_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age55BelowContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::Group55YearsAndBelow
|
9
9
|
|
data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_55_to_60_contribution_calculator.rb
CHANGED
@@ -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
|
6
|
+
class Age55To60ContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::GroupAbove55To60Years
|
9
9
|
|
data/lib/singapore_cpf_calculator/year_2016/citizen_or_spr_3/age_60_to_65_contribution_calculator.rb
CHANGED
@@ -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 <
|
6
|
+
class Age60To65ContributionCalculator < CitizenOrSpr3Base
|
7
7
|
|
8
8
|
extend Requirements::GroupAbove60To65Years
|
9
9
|
|