Module: JpNationalTax::IncomeTax
- Defined in:
- lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb,
lib/jp_national_tax/income_tax.rb,
lib/jp_national_tax/income_tax/income_kouran_2020.rb
Overview
Defined Under Namespace
Modules: Kouran2020, Nenmatsu2020
Constant Summary
collapse
- MOD_M =
[Kouran2020]
- MOD_Y =
[Nenmatsu2020]
Class Method Summary
collapse
Class Method Details
.basic_deduction(income, calc_date) ⇒ Object
26
27
28
29
|
# File 'lib/jp_national_tax/income_tax.rb', line 26
def basic_deduction(income, calc_date)
responsible_mod_y(calc_date)
.send(:基礎控除額, income)
end
|
.calc_kouran(pay_amount, pay_date, partner = false, dependent = 0) ⇒ Object
13
14
15
16
17
|
# File 'lib/jp_national_tax/income_tax.rb', line 13
def calc_kouran(pay_amount, pay_date, partner = false, dependent = 0)
responsible_mod_monthly(pay_date)
.send(:monthly_kouran, pay_amount, partner, dependent)
.to_i
end
|
.responsible_mod_monthly(date = nil) ⇒ Object
38
39
40
|
# File 'lib/jp_national_tax/income_tax.rb', line 38
def responsible_mod_monthly(date = nil)
responsible_module(date, MOD_M)
end
|
.responsible_mod_y(date = nil) ⇒ Object
42
43
44
|
# File 'lib/jp_national_tax/income_tax.rb', line 42
def responsible_mod_y(date = nil)
responsible_module(date, MOD_Y)
end
|
.responsible_module(date = nil, mod) ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/jp_national_tax/income_tax.rb', line 46
def responsible_module(date = nil, mod)
raise UndefinedDateError if date.nil?
date = Date.parse(date) if date.class.name == 'String'
rules = mod.map { |mod| [mod.send(:effective_date), mod] }.filter { |a| date >= a[0] }
raise NoValidModuleError if rules.length <= 0
rules.sort_by { |a| a[0] }.reverse!.first[1]
end
|
.year_salary_taxable(income, calc_date) ⇒ Object
19
20
21
22
23
24
|
# File 'lib/jp_national_tax/income_tax.rb', line 19
def year_salary_taxable(income, calc_date)
salary = responsible_mod_y(calc_date)
.send(:年調給与額, income)
responsible_mod_y(calc_date)
.send(:給与所得控除後の給与等の金額, salary)
end
|
.year_tax(income_taxable, calc_date) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/jp_national_tax/income_tax.rb', line 31
def year_tax(income_taxable, calc_date)
income_tax = responsible_mod_y(calc_date)
.send(:算出所得税額, income_taxable)
responsible_mod_y(calc_date)
.send(:年調年税額, income_tax)
end
|