Module: JpNationalTax::IncomeTax::Nenmatsu2020

Defined in:
lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb

Overview

Class Method Summary collapse

Class Method Details

.effective_dateObject



14
15
16
# File 'lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb', line 14

def effective_date
  Date.parse("2020-01-01")
end

.基礎控除額(給与の総額) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb', line 77

def 基礎控除額(給与の総額)
  case 給与の総額
  when 0 .. 24_000_000
    480_000
  when 24_000_001 .. 24_500_000
    320_000
  when 24_500_000 .. 25_000_000
    160_000
  else
    0
  end
end

.年調年税額(年調所得税額) ⇒ Object

電子計算機等による年末調整



114
115
116
# File 'lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb', line 114

def 年調年税額(年調所得税額)
  (年調所得税額 * BigDecimal('1.021') / 100).floor * 100
end

.年調給与額(給与の総額) ⇒ Object

電子計算機等による年末調整



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb', line 20

def 年調給与額(給与の総額)
  case 給与の総額
  when 1_619_000 .. 1_619_999
    階差 = 1_000
    同一階差の最小値 = 1_619_000
  when 1_620_000 .. 1_623_999
    階差 = 2_000
    同一階差の最小値 = 1_620_000
  when 1_624_000 .. 6_599_999
    階差 = 4_000
    同一階差の最小値 = 1_624_000
  end

  case 給与の総額
  when 0 .. 1_618_999
    給与の総額
  when 1_619_000 .. 6_599_999
    給与の総額 - ((給与の総額 - 同一階差の最小値) % 階差)
  else
    給与の総額
  end
end

.算出所得税額(課税給与所得金額) ⇒ Object

電子計算機等による年末調整



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb', line 92

def 算出所得税額(課税給与所得金額)
  tax = case 課税給与所得金額
        when 0 .. 1_950_000
          課税給与所得金額 * 0.05
        when 1_950_001 .. 3_300_000
          課税給与所得金額 * 0.1 - 97_500
        when 3_300_001 .. 6_950_000
          課税給与所得金額 * 0.2 - 427_500
        when 6_950_001 .. 9_000_000
          課税給与所得金額 * 0.23 - 636_000
        when 9_000_001 .. 18_000_000
          課税給与所得金額 * 0.33 - 1_536_000
        when 18_000_001 .. 18_050_000
          課税給与所得金額 * 0.4 - 2_796_000
        else
          raise '年末調整の対象となりません'
        end
  (tax / 1000).floor * 1000
end

.給与所得控除後の給与等の金額(年調給与額) ⇒ Object

電子計算機等による年末調整



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/jp_national_tax/income_tax/income_nenmatsu_2020.rb', line 45

def 給与所得控除後の給与等の金額(年調給与額)
  case 年調給与額
  when 0 .. 550_999
    0
  when 551_000 .. 1_618_999
    年調給与額 - 550_000
  when 1_619_000 .. 1_619_999
    年調給与額 * 0.6 + 97_600
  when  1_620_000 .. 1_621_999
    年調給与額 * 0.6 + 98_000
  when  1_620_000 .. 1_623_999
    年調給与額 * 0.6 + 98_800
  when  1_624_000 .. 1_627_999
    年調給与額 * 0.6 + 99_600
  when  1_624_000 .. 1_799_999
    年調給与額 * 0.6 + 100_000
  when  1_800_000 .. 3_599_999
    年調給与額 * 0.7 - 80_000
  when  3_600_000 .. 6_599_999
    年調給与額 * 0.8 - 440_000
  when  6_600_000 .. 8_499_999
    (年調給与額 * BigDecimal('0.9') - 1_100_000).floor
  when  8_500_000 .. 20_000_000
    年調給与額 - 1_950_000
  else
    STDERR.puts '年末調整の対象となりません'
    年調給与額 - 1_950_000
  end
end