luca-jp 0.16.1 → 0.16.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/jp/version.rb +1 -1
- data/lib/luca_salary/jp_payreport.rb +19 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a2439c73cf61040d39604aba50f3765abd94a42ca9a6a3f531864993856e2c6
|
4
|
+
data.tar.gz: 6ecf8ad72b8fe7c6ac1a68c04360f0a5dc4f7c5ec754291c728d4a172319c6fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9983fbb9704f1867813024e0da0653d2079443190673c62964074d4c81cac6d92a5a8a6a86c1c8b4988b6f1e0db7d974ba9ed504ff0c35176961dd8e755c63f
|
7
|
+
data.tar.gz: 7e0303ee440175e577d7ef1c563f06278edf4f48e42a4e9c4a930c92cd353f9e7a511dcea715491c37e6f31af72b46dc687b3f31ff08949bc7cca9c12e9bd64b
|
data/lib/luca/jp/version.rb
CHANGED
@@ -49,7 +49,7 @@ def 給与支払報告明細行(slip, company, year)
|
|
49
49
|
支払を受ける者の詳細(slip, year),
|
50
50
|
company['tax_id'], # 法人番号
|
51
51
|
支払を受ける者の扶養情報(slip['profile'], year),
|
52
|
-
slip['911'], #
|
52
|
+
slip['911'] == 480_000 ? nil : slip['911'], # 基礎控除の額、48万の場合記載しない
|
53
53
|
nil, # 所得金額調整控除額 TODO: 未実装 措法41の3の3
|
54
54
|
nil, # ひとり親
|
55
55
|
提出先判定(slip), # 必須:作成区分(国税のみ0, 地方のみ1, 両方2)
|
@@ -82,6 +82,7 @@ end
|
|
82
82
|
|
83
83
|
def 支払(slip, year)
|
84
84
|
配偶者控除等 = [slip['916'], slip['917']].compact.sum
|
85
|
+
扶養対象 = 扶養親族分類(slip.dig('profile', 'family'), year)
|
85
86
|
[
|
86
87
|
'給料', # 種別
|
87
88
|
slip['1'], # 支払金額
|
@@ -93,12 +94,12 @@ def 支払(slip, year)
|
|
93
94
|
配偶者控除等 > 0 ? 1 : 2, # 控除対象配偶者の有無 TODO: 従たる給与
|
94
95
|
老人控除対象配偶者(slip.dig('profile', 'spouse'), year),
|
95
96
|
配偶者控除等, # 配偶者控除の額
|
96
|
-
|
97
|
+
扶養対象['特定'].length, # 控除対象扶養親族の数 特定 主
|
97
98
|
nil, # 控除対象扶養親族の数 特定 従
|
98
|
-
|
99
|
+
扶養対象['老人'].length, # 控除対象扶養親族の数 老人 主
|
99
100
|
nil, # 控除対象扶養親族の数 老人 上の内訳
|
100
101
|
nil, # 控除対象扶養親族の数 老人 従
|
101
|
-
|
102
|
+
扶養対象['その他'].length, # 控除対象扶養親族の数 その他 主
|
102
103
|
nil, # 控除対象扶養親族の数 その他 従
|
103
104
|
nil, # 障害者の数 特別障害者
|
104
105
|
nil, # 障害者の数 上の内訳 NOTE: 同居・同一生計
|
@@ -122,7 +123,7 @@ def 支払を受ける者の詳細(slip, year)
|
|
122
123
|
nil, # 地震保険料の控除額
|
123
124
|
nil, # 住宅借入金等特別控除等の額
|
124
125
|
nil, # 旧個人年金保険料の額
|
125
|
-
slip.dig('spouse', 'income'), # 配偶者の合計所得
|
126
|
+
slip.dig('profile', 'spouse', 'income', year), # 配偶者の合計所得
|
126
127
|
nil, # 旧長期損害保険料の額
|
127
128
|
生年月日[0], # 必須:受給者の生年月日 元号
|
128
129
|
生年月日[1], # 必須:受給者の生年月日 年
|
@@ -174,7 +175,7 @@ def 支払を受ける者の扶養情報(profile, year)
|
|
174
175
|
nil, # 青色専従者
|
175
176
|
nil, # 条約免除
|
176
177
|
半角変換(profile['katakana']), # 必須:支払を受ける者のフリガナ(半角)
|
177
|
-
nil, #
|
178
|
+
nil, # 受給者番号
|
178
179
|
profile.dig('resident', 'area_code'), # 必須:提出先市町村コード
|
179
180
|
profile.dig('resident', 'tax_id'), # 指定番号
|
180
181
|
]
|
@@ -203,17 +204,27 @@ end
|
|
203
204
|
def 扶養親族分類(family, year)
|
204
205
|
return {} if family.nil?
|
205
206
|
|
206
|
-
|
207
|
+
this_year = Date.new(year, 12, -1)
|
208
|
+
{ '16才以上' => [], '16才未満' => [], '老人' => [], '特定' => [], 'その他' => [] }.tap do |result|
|
207
209
|
family.each do |p|
|
208
210
|
if !p['birth_date']
|
209
211
|
result['16才以上'] << p
|
212
|
+
result['その他'] << p
|
210
213
|
else
|
211
214
|
date = p['birth_date']
|
212
215
|
date = Date.parse(date) if date.is_a?(String)
|
213
|
-
if date.next_year(16)
|
216
|
+
if date.next_year(16) <= this_year
|
214
217
|
result['16才以上'] << p
|
218
|
+
if date.next_year(70) <= this_year
|
219
|
+
result['老人'] << p
|
220
|
+
elsif date.next_year(19) <= this_year and date.next_year(23) > this_year
|
221
|
+
result['特定'] << p
|
222
|
+
else
|
223
|
+
result['その他'] << p
|
224
|
+
end
|
215
225
|
else
|
216
226
|
result['16才未満'] << p
|
227
|
+
result['その他'] << p
|
217
228
|
end
|
218
229
|
end
|
219
230
|
end
|