lucasalary-jp 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/luca_salary/dict/code.tsv +13 -7
- data/lib/luca_salary/jp.rb +98 -1
- data/lib/luca_salary/jp/version.rb +3 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c7fff7c7b40c95899b960a3c507508cfd073514123ca0e6c0ab6cf2a6a47c7c
|
4
|
+
data.tar.gz: c2e35dcf8879de84427e7a26e46e5c67f6b8281cb4ac121adeebd536887f16dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 259a1429a5bf2e542213aaf6f9f83ac9628b77d7fc7b51537c52017b25cb43258eee3131b5e6e5e9f15a407f3ba10b046cee64313a1a660848ea812e013017a6
|
7
|
+
data.tar.gz: 5225c85430a43e60516f40b5be8582448b501df056351e7b303809d1fa90b0d1d5a0d295af8cfa8846ffdc2822282d36c3f50770640cf2ae474dac8422fa5dd9
|
@@ -41,16 +41,22 @@ code label acct_label
|
|
41
41
|
204 雇用保険料 預り金
|
42
42
|
205 介護保険料 法定福利費
|
43
43
|
211 住民税 住民税
|
44
|
-
221 社会保険料控除
|
45
|
-
222 生命保険料控除
|
46
|
-
223 地震保険料控除
|
47
|
-
224 小規模企業共済等掛金控除
|
48
|
-
225 配偶者控除
|
49
|
-
226 配偶者特別控除
|
50
|
-
227 住宅借入金等特別控除
|
51
44
|
3 その他控除額
|
52
45
|
311 社宅本人負担分 雑収入
|
53
46
|
3A1 年末調整不足分 預り金
|
54
47
|
4 加算額
|
55
48
|
4A1 年末調整還付 預り金
|
56
49
|
5 差引支給金額 未払費用
|
50
|
+
901 給与所得控除後の給与等の金額
|
51
|
+
911 基礎控除
|
52
|
+
912 社会保険料控除
|
53
|
+
913 生命保険料控除
|
54
|
+
914 地震保険料控除
|
55
|
+
915 小規模企業共済等掛金控除
|
56
|
+
916 配偶者控除
|
57
|
+
917 配偶者特別控除
|
58
|
+
918 扶養控除
|
59
|
+
919 住宅借入金等特別控除
|
60
|
+
920 障害者等の控除
|
61
|
+
941 課税給与所得金額
|
62
|
+
961 年調年税額
|
data/lib/luca_salary/jp.rb
CHANGED
@@ -4,7 +4,7 @@ require 'luca_salary'
|
|
4
4
|
require 'luca_salary/jp/insurance'
|
5
5
|
require 'jp_national_tax'
|
6
6
|
|
7
|
-
class LucaSalary::
|
7
|
+
class LucaSalary::Jp < LucaSalary::Base
|
8
8
|
def initialize(dir_path, config = nil, date = nil)
|
9
9
|
@pjdir = dir_path
|
10
10
|
@date = date
|
@@ -31,6 +31,103 @@ class LucaSalary::JP < LucaSalary::Base
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
def self.year_total(payment)
|
35
|
+
payment.tap do |p|
|
36
|
+
p['911'] = basic_deduction(p['1'])
|
37
|
+
p['916'] = partner_deduction(p['1'])
|
38
|
+
p['912'] = (p['201'] || 0) + (p['202'] || 0)
|
39
|
+
p['901'] = year_salary(p['1'])
|
40
|
+
p['941'] = p['901'] - p['911'] - p['912'] - p['916']
|
41
|
+
p['961'] = year_tax(p['941'])
|
42
|
+
diff = p['961'] - p['203']
|
43
|
+
if diff.positive?
|
44
|
+
p['3A1'] = diff
|
45
|
+
else
|
46
|
+
p['4A1'] = diff * -1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.year_salary(income)
|
52
|
+
rounded = if income < 1_619_000
|
53
|
+
income
|
54
|
+
elsif income < 1_620_000
|
55
|
+
income - ((income - 1_619_000) % 1_000)
|
56
|
+
elsif income < 1_624_000
|
57
|
+
income - ((income - 1_620_000) % 2_000)
|
58
|
+
elsif income < 1_624_000
|
59
|
+
income - ((income - 1_624_000) % 4_000)
|
60
|
+
else
|
61
|
+
income
|
62
|
+
end
|
63
|
+
if rounded < 551_000
|
64
|
+
0
|
65
|
+
elsif rounded < 1_619_000
|
66
|
+
rounded - 550_000
|
67
|
+
elsif rounded < 1_620_000
|
68
|
+
rounded * 0.6 + 97_600
|
69
|
+
elsif rounded < 1_622_000
|
70
|
+
rounded * 0.6 + 98_000
|
71
|
+
elsif rounded < 1_624_000
|
72
|
+
rounded * 0.6 + 98_800
|
73
|
+
elsif rounded < 1_628_000
|
74
|
+
rounded * 0.6 + 99_600
|
75
|
+
elsif rounded < 1_800_000
|
76
|
+
rounded * 0.6 + 100_000
|
77
|
+
elsif rounded < 3_600_000
|
78
|
+
rounded * 0.7 - 80_000
|
79
|
+
elsif rounded < 6_600_000
|
80
|
+
rounded * 0.8 - 440_000
|
81
|
+
elsif rounded < 8_500_000
|
82
|
+
rounded * 0.9 - 1_100_000
|
83
|
+
else
|
84
|
+
rounded - 1_950_000
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.year_tax(income)
|
89
|
+
tax = if income < 1_950_000
|
90
|
+
income * 0.05
|
91
|
+
elsif income <= 3_300_000
|
92
|
+
income * 0.1 - 97_500
|
93
|
+
elsif income <= 6_950_000
|
94
|
+
income * 0.2 - 427_500
|
95
|
+
elsif income <= 9_000_000
|
96
|
+
income * 0.23 - 636_000
|
97
|
+
elsif income <= 18_000_000
|
98
|
+
income * 0.33 - 1_536_000
|
99
|
+
elsif income <= 18_050_000
|
100
|
+
income * 0.4 - 2_796_000
|
101
|
+
else
|
102
|
+
raise "no target"
|
103
|
+
end
|
104
|
+
(tax / 1000).floor * 1000
|
105
|
+
end
|
106
|
+
|
107
|
+
def self.basic_deduction(income)
|
108
|
+
if income <= 24_000_000
|
109
|
+
480_000
|
110
|
+
elsif income <= 24_500_000
|
111
|
+
320_000
|
112
|
+
elsif income <= 25_000_000
|
113
|
+
160_000
|
114
|
+
else
|
115
|
+
0
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def self.partner_deduction(income)
|
120
|
+
if income <= 9_000_000
|
121
|
+
380_000
|
122
|
+
elsif income <= 9_500_000
|
123
|
+
260_000
|
124
|
+
elsif income <= 10_000_000
|
125
|
+
130_000
|
126
|
+
else
|
127
|
+
0
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
34
131
|
def income_tax_exception
|
35
132
|
%w[116 118 119 11A 11B]
|
36
133
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucasalary-jp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chuma Takahiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucasalary
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.1.14
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.1.14
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|