luca-jp 0.16.3 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/luca-jp +8 -3
- data/lib/luca/jp/aoiro.rb +169 -71
- data/lib/luca/jp/chihouzei.rb +53 -34
- data/lib/luca/jp/common.rb +42 -13
- data/lib/luca/jp/sonshitsu.rb +2 -2
- data/lib/luca/jp/syouhizei.rb +31 -4
- data/lib/luca/jp/templates/beppyo2.xml.erb +1 -1
- data/lib/luca/jp/templates/beppyo4.xml.erb +91 -48
- data/lib/luca/jp/templates/beppyo51.xml.erb +6 -6
- data/lib/luca/jp/templates/beppyo52.xml.erb +5 -5
- data/lib/luca/jp/templates/beppyo7.xml.erb +2 -2
- data/lib/luca/jp/templates/el-no6-9.xml.erb +2 -2
- data/lib/luca/jp/templates/el-no6.xml.erb +2 -2
- data/lib/luca/jp/templates/fuhyo6.xml.erb +32 -0
- data/lib/luca/jp/templates/gaikyo.xml.erb +2 -0
- data/lib/luca/jp/templates/syouhizei-shinkoku-kanni.xml.erb +14 -6
- data/lib/luca/jp/util.rb +6 -3
- data/lib/luca/jp/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1eb3cc018828ad1a0e466b86bac2280a7db7661118c6a47748bfa2feae045824
|
4
|
+
data.tar.gz: '080aef29106f45e7a0188f646f8098d047decd6bc4adc70453d36ec2ae147f22'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ba0df576a6bb63923a33a0dc124a3a3539a1bda7346fa428228304fc371cc0218f3e855d18dbbc935d7a7352ace49f7ef012c46fe04f9abcca0b26b3af59217
|
7
|
+
data.tar.gz: e10900edeed0d1596fcd7f02225d4e49fef3f9656ece12604d631bf5c788fd14e011cf41c5cf0ff043fee02f3171156c109d86a2e6bc70e819f0d7fdec92e42e
|
data/exe/luca-jp
CHANGED
@@ -6,6 +6,7 @@ require 'luca/jp'
|
|
6
6
|
require 'luca_salary/jp_payreport'
|
7
7
|
require 'luca_cmd'
|
8
8
|
require 'luca_support/const'
|
9
|
+
require 'yaml'
|
9
10
|
|
10
11
|
EXT_CONF = 'config-lucajp.yml'
|
11
12
|
|
@@ -19,17 +20,19 @@ class LucaCmd
|
|
19
20
|
end
|
20
21
|
|
21
22
|
def self.houjinzei(args, params)
|
23
|
+
ext_config = params[:extra] ? YAML.load_file(params[:extra]) : nil
|
22
24
|
if params[:export]
|
23
|
-
Luca::Jp::Aoiro.range(*auto_range(args, params)).export_json
|
25
|
+
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).export_json(ext_config: ext_config)
|
24
26
|
else
|
25
|
-
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).kani
|
27
|
+
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).kani(ext_config: ext_config)
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
29
31
|
def self.chihouzei(args, params)
|
32
|
+
ext_config = params[:extra] ? YAML.load_file(params[:extra]) : nil
|
30
33
|
if params[:export]
|
31
34
|
accounts = Luca::Jp::Util.eltax_config('reports').map do |report|
|
32
|
-
Luca::Jp::Chihouzei.range(*auto_range(args, params)).export_json(report)
|
35
|
+
Luca::Jp::Chihouzei.range(*auto_range(args, params)).export_json(report, ext_config: ext_config)
|
33
36
|
end
|
34
37
|
puts JSON.dump(accounts)
|
35
38
|
else
|
@@ -76,6 +79,7 @@ case cmd
|
|
76
79
|
when 'h', /hou?jinzei/
|
77
80
|
OptionParser.new do |opt|
|
78
81
|
opt.banner = 'Usage: luca-jp h|houjinzei [options] [yyyy mm yyyy mm]'
|
82
|
+
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
79
83
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
80
84
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
81
85
|
args = opt.parse!(ARGV)
|
@@ -96,6 +100,7 @@ when 's', /s[yh]ou?hizei/
|
|
96
100
|
when 'c', /chihou?zei/
|
97
101
|
OptionParser.new do |opt|
|
98
102
|
opt.banner = 'Usage: luca-jp c|chihouzei [options] [yyyy mm yyyy mm]'
|
103
|
+
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
99
104
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
100
105
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
101
106
|
args = opt.parse!(ARGV)
|
data/lib/luca/jp/aoiro.rb
CHANGED
@@ -20,7 +20,7 @@ module Luca
|
|
20
20
|
@dirname = 'journals'
|
21
21
|
@record_type = 'raw'
|
22
22
|
|
23
|
-
def kani(export: false)
|
23
|
+
def kani(ext_config: nil, export: false)
|
24
24
|
set_pl(4)
|
25
25
|
set_bs(4)
|
26
26
|
@issue_date = Date.today
|
@@ -28,12 +28,14 @@ module Luca
|
|
28
28
|
@software = 'LucaJp'
|
29
29
|
@shinkoku_kbn = '30' # 確定申告
|
30
30
|
|
31
|
+
別表四所得調整(ext_config)
|
31
32
|
@税額 = 税額計算
|
32
33
|
@確定法人税額 = @税額.dig(:houjin, :kokuzei)
|
33
34
|
@法人税額 = 中小企業の軽減税額 + 一般区分の税額
|
34
35
|
@地方法人税課税標準 = (@法人税額 / 1000).floor * 1000
|
35
36
|
@地方法人税額 = 地方法人税額(@地方法人税課税標準)
|
36
37
|
@確定地方法人税額 = @税額.dig(:houjin, :chihou)
|
38
|
+
|
37
39
|
@法人税中間納付 = prepaid_tax('1851')
|
38
40
|
@地方法人税中間納付 = prepaid_tax('1852')
|
39
41
|
|
@@ -63,8 +65,6 @@ module Luca
|
|
63
65
|
@都道府県民税期中増, @都道府県民税期中減 = 未納都道府県民税期中増減
|
64
66
|
@市民税期中増, @市民税期中減 = 未納市民税期中増減
|
65
67
|
@事業税期中増, @事業税期中減 = 未納事業税期中増減
|
66
|
-
@事業税中間納付 = ['1854', '1855', '1856', '1857', '1858']
|
67
|
-
.map{ |k| prepaid_tax(k) }.compact.sum
|
68
68
|
@翌期還付法人税 = 中間還付税額(@確定法人税額 + @確定地方法人税額, @法人税中間納付 + @地方法人税中間納付)
|
69
69
|
@概況売上 = gaikyo('A0')
|
70
70
|
@form_sec = [
|
@@ -85,35 +85,35 @@ module Luca
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
-
def export_json
|
89
|
-
dat = kani(export: true)
|
90
|
-
[]
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
end
|
107
|
-
if dat[:chihou][:chukan] > dat[:chihou][:zeigaku]
|
108
|
-
item['debit'] << { 'label' => '未収法人税', 'amount' => dat[:chihou][:chukan] - dat[:chihou][:zeigaku] }
|
109
|
-
else
|
110
|
-
item['credit'] << { 'label' => '未払法人税', 'amount' => dat[:chihou][:zeigaku] - dat[:chihou][:chukan] }
|
111
|
-
end
|
112
|
-
item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:chihou][:zeigaku] } if dat[:chihou][:zeigaku] > 0
|
113
|
-
item['x-editor'] = 'LucaJp'
|
114
|
-
res << item
|
115
|
-
puts JSON.dump(res)
|
88
|
+
def export_json(ext_config: nil, raw: false)
|
89
|
+
dat = kani(export: true, ext_config: ext_config)
|
90
|
+
res = []
|
91
|
+
item = {}
|
92
|
+
item['date'] = @end_date
|
93
|
+
item['debit'] = []
|
94
|
+
item['credit'] = []
|
95
|
+
if dat[:kokuzei][:chukan] > 0
|
96
|
+
item['credit'] << { 'label' => '仮払法人税', 'amount' => dat[:kokuzei][:chukan] }
|
97
|
+
end
|
98
|
+
if dat[:kokuzei][:chukan] > dat[:kokuzei][:zeigaku]
|
99
|
+
item['debit'] << { 'label' => '未収法人税', 'amount' => dat[:kokuzei][:chukan] - dat[:kokuzei][:zeigaku] }
|
100
|
+
else
|
101
|
+
item['credit'] << { 'label' => '未払法人税', 'amount' => dat[:kokuzei][:zeigaku] - dat[:kokuzei][:chukan] }
|
102
|
+
end
|
103
|
+
item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:kokuzei][:zeigaku] }
|
104
|
+
if dat[:chihou][:chukan] > 0
|
105
|
+
item['credit'] << { 'label' => '仮払法人税(地方)', 'amount' => dat[:chihou][:chukan] }
|
116
106
|
end
|
107
|
+
if dat[:chihou][:chukan] > dat[:chihou][:zeigaku]
|
108
|
+
item['debit'] << { 'label' => '未収法人税', 'amount' => dat[:chihou][:chukan] - dat[:chihou][:zeigaku] }
|
109
|
+
else
|
110
|
+
item['credit'] << { 'label' => '未払法人税', 'amount' => dat[:chihou][:zeigaku] - dat[:chihou][:chukan] }
|
111
|
+
end
|
112
|
+
item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:chihou][:zeigaku] } if dat[:chihou][:zeigaku] > 0
|
113
|
+
item['x-editor'] = 'LucaJp'
|
114
|
+
res << item
|
115
|
+
|
116
|
+
raw ? res : JSON.dump(res)
|
117
117
|
end
|
118
118
|
|
119
119
|
def 別表一
|
@@ -130,28 +130,74 @@ module Luca
|
|
130
130
|
render_erb(search_template('beppyo2.xml.erb'))
|
131
131
|
end
|
132
132
|
|
133
|
+
# NOTE: 別表四所得調整に依存
|
133
134
|
def 別表四簡易
|
134
135
|
@当期純損益 = readable(@pl_data.dig('HA'))
|
135
|
-
@法人税等 = readable(@pl_data.dig('H0'))
|
136
|
-
_, @納付事業税 = 未納事業税期中増減
|
137
|
-
@当期還付事業税 = 還付事業税
|
138
|
-
@翌期還付事業税 = 中間還付税額(確定事業税, @事業税中間納付)
|
139
|
-
@別表四調整所得 = @当期純損益 + @法人税等 - @納付事業税 - @翌期還付事業税 + @当期還付事業税
|
140
136
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
137
|
+
### 損金不算入額の計算
|
138
|
+
|
139
|
+
@損金経理をした法人税及び地方法人税 = 法人税損金納付額
|
140
|
+
@損金経理をした道府県民税及び市町村民税 = [
|
141
|
+
都道府県民税損金納付,
|
142
|
+
市民税損金納付,
|
143
|
+
].compact.sum
|
144
|
+
@損金経理をした納税充当金 = 当期納税充当金
|
145
|
+
@損金不算入額 = [
|
146
|
+
@損金不算入額税額未確定,
|
147
|
+
@損金経理をした法人税及び地方法人税,
|
148
|
+
@損金経理をした道府県民税及び市町村民税,
|
149
|
+
@損金経理をした納税充当金,
|
150
|
+
].compact.sum
|
151
|
+
@損金不算入額留保 = [
|
152
|
+
@減価償却の償却超過額,
|
153
|
+
@当期還付事業税,
|
154
|
+
@損金経理をした法人税及び地方法人税,
|
155
|
+
@損金経理をした道府県民税及び市町村民税,
|
156
|
+
@損金経理をした納税充当金,
|
157
|
+
].compact.sum
|
158
|
+
@損金不算入額社外流出 = [
|
159
|
+
@役員給与の損金不算入額,
|
160
|
+
@交際費等の損金不算入額,
|
161
|
+
# TODO: 附帯税
|
162
|
+
].compact.sum
|
163
|
+
|
164
|
+
### 益金不算入額の計算
|
165
|
+
STDERR.puts "別表八「受取配当等の益金算入に関する明細書」の追加作成が必要" if @受取配当金の益金不算入額
|
166
|
+
|
167
|
+
@翌期還付事業税 = ['1504', '1854', '1855', '1856', '1857', '1858']
|
168
|
+
.map{ |code| readable(@bs_data[code]) }
|
169
|
+
.compact.sum
|
170
|
+
@益金不算入額 = [
|
171
|
+
@益金不算入額税額未確定,
|
172
|
+
# NOTE: 確定税額は会計上も費用認識しているため相殺
|
173
|
+
(@事業税中間納付 * -1),
|
174
|
+
@翌期還付事業税
|
175
|
+
].compact.sum
|
176
|
+
@益金不算入額留保 = [
|
177
|
+
@納付事業税,
|
178
|
+
@減価償却超過額の当期認容額,
|
179
|
+
@翌期還付事業税
|
180
|
+
].compact.sum
|
181
|
+
@益金不算入額社外流出 = [
|
182
|
+
# TODO: 欠損金繰戻還付、欠損金当期控除
|
183
|
+
@受取配当金の益金不算入額,
|
184
|
+
@受贈益の益金不算入額,
|
185
|
+
].compact.sum
|
186
|
+
@別表四調整所得留保 = @当期純損益 + @損金不算入額留保 - @益金不算入額留保
|
187
|
+
@別表四調整所得社外流出 = @当期純損益 + @損金不算入額社外流出 - @益金不算入額社外流出
|
188
|
+
# TODO: 寄付金、所得税額控除、外国法人税の損金不算入調整
|
149
189
|
|
150
190
|
render_erb(search_template('beppyo4.xml.erb'))
|
151
191
|
end
|
152
192
|
|
153
193
|
def 別表五一
|
154
|
-
|
194
|
+
@当期還付法人税 = refund_tax('1502')
|
195
|
+
@当期還付都道府県住民税 = refund_tax('1503')
|
196
|
+
@当期還付市民税 = refund_tax('1505')
|
197
|
+
@翌期還付都道府県住民税 = readable(@bs_data['1503']) || 0
|
198
|
+
@翌期還付市民税 = readable(@bs_data['1505']) || 0
|
199
|
+
|
200
|
+
@期首資本金 = readable(@start_balance.dig('911')) || 0
|
155
201
|
@資本金期中減, @資本金期中増 = 純資産期中増減('911')
|
156
202
|
@期首資本準備金, @期末資本準備金 = 期首期末残高('9131')
|
157
203
|
@資本準備金期中減, @資本準備金期中増 = 純資産期中増減('9131')
|
@@ -169,6 +215,7 @@ module Luca
|
|
169
215
|
@当期還付消費税 = refund_tax('1501')
|
170
216
|
@消費税期首残高 = 期首未納消費税 > 0 ? 期首未納消費税 : (@当期還付消費税 * -1)
|
171
217
|
@翌期還付消費税 = 中間還付税額(@消費税期中増, @消費税中間納付額)
|
218
|
+
@事業税期首残高 = 期首未納事業税 > 0 ? 期首未納事業税 : (@当期還付事業税 * -1)
|
172
219
|
@その他事業税 = 租税公課 - @消費税期中増
|
173
220
|
render_erb(search_template('beppyo52.xml.erb'))
|
174
221
|
end
|
@@ -374,21 +421,18 @@ module Luca
|
|
374
421
|
"<ARC00220><ARC00230>仮払事業税消却(未収計上した還付事業税)</ARC00230>#{render_attr('ARC00240', @当期還付事業税)}#{render_attr('ARC00250', @当期還付事業税)}</ARC00220>\n"
|
375
422
|
end
|
376
423
|
|
377
|
-
def
|
378
|
-
|
379
|
-
.map { |k| @start_balance[k] }.compact.sum
|
380
|
-
還付税金 = [@当期還付法人税, @当期還付都道府県住民税, @当期還付事業税, @当期還付市民税].compact.sum
|
381
|
-
return '' if 未収仮払税金 == 0 && 還付税金 == 0 && @仮払税金 == 0
|
424
|
+
def 別表五一仮払事業税
|
425
|
+
return '' if @当期還付事業税 == 0 && @翌期還付事業税 == 0
|
382
426
|
|
383
427
|
%Q(<ICB00140>
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
428
|
+
#{render_attr('ICB00150', '仮払事業税')}
|
429
|
+
#{render_attr('ICB00160', @当期還付事業税 * -1)}
|
430
|
+
<ICB00170>
|
431
|
+
#{render_attr('ICB00190', @当期還付事業税 * -1)}
|
432
|
+
#{render_attr('ICB00200', @翌期還付事業税 * -1)}
|
433
|
+
</ICB00170>
|
434
|
+
#{render_attr('ICB00210', @翌期還付事業税 * -1)}
|
435
|
+
</ICB00140>)
|
392
436
|
end
|
393
437
|
|
394
438
|
def 別表五一還付法人税
|
@@ -448,7 +492,12 @@ module Luca
|
|
448
492
|
end
|
449
493
|
|
450
494
|
def 当期納税充当金
|
451
|
-
|
495
|
+
r = credit_amount('515', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
496
|
+
readable(r)
|
497
|
+
end
|
498
|
+
|
499
|
+
def 期末納税充当金
|
500
|
+
readable(@bs_data.dig('515')) || 0
|
452
501
|
end
|
453
502
|
|
454
503
|
def 期首未納法人税
|
@@ -465,6 +514,7 @@ module Luca
|
|
465
514
|
end
|
466
515
|
|
467
516
|
# 中間納付した金額のうち税額とならず、還付されるべき額
|
517
|
+
# 決算後において、未収法人税・仮払法人税・仮払法人税(地方)の合計金額の想定
|
468
518
|
#
|
469
519
|
def 法人税仮払納付額
|
470
520
|
[(@法人税中間納付 + @地方法人税中間納付 - @確定法人税額 - @確定地方法人税額), 0].max
|
@@ -489,8 +539,15 @@ module Luca
|
|
489
539
|
[確定都道府県住民税, readable(r)]
|
490
540
|
end
|
491
541
|
|
542
|
+
# 決算後において、仮払地方税法人税割・仮払地方税均等割の金額は
|
543
|
+
# 本来都道府県と市区町村に区分すべきだが、全額市民税とみなしている
|
544
|
+
#
|
492
545
|
def 都道府県民税仮払納付
|
493
|
-
|
546
|
+
[
|
547
|
+
readable(@bs_data['1503']),
|
548
|
+
readable(@bs_data['1859']),
|
549
|
+
readable(@bs_data['185A']),
|
550
|
+
].compact.sum
|
494
551
|
end
|
495
552
|
|
496
553
|
# 期末納付済金額のうち税額として確定したもの
|
@@ -499,6 +556,10 @@ module Luca
|
|
499
556
|
@都道府県民税均等割中間納付 + @都道府県民税法人税割中間納付 - 都道府県民税仮払納付
|
500
557
|
end
|
501
558
|
|
559
|
+
def 期末未納都道府県民税
|
560
|
+
readable(@bs_data.dig('5153')) || 0
|
561
|
+
end
|
562
|
+
|
502
563
|
def 確定市民税
|
503
564
|
readable(@pl_data['H113']) || 0
|
504
565
|
end
|
@@ -517,7 +578,11 @@ module Luca
|
|
517
578
|
end
|
518
579
|
|
519
580
|
def 市民税仮払納付
|
520
|
-
|
581
|
+
[
|
582
|
+
readable(@bs_data['1505']),
|
583
|
+
readable(@bs_data['185D']),
|
584
|
+
readable(@bs_data['185E']),
|
585
|
+
].compact.sum
|
521
586
|
end
|
522
587
|
|
523
588
|
# 期末納付済金額のうち税額として確定したもの
|
@@ -534,8 +599,18 @@ module Luca
|
|
534
599
|
[@事業税中間納付, 確定事業税].min
|
535
600
|
end
|
536
601
|
|
602
|
+
def 期末未納事業税
|
603
|
+
readable(@bs_data['5152']) || 0
|
604
|
+
end
|
605
|
+
|
537
606
|
def 別表五一期首差引金額
|
538
|
-
[
|
607
|
+
[
|
608
|
+
@当期還付法人税,
|
609
|
+
@当期還付都道府県住民税,
|
610
|
+
@当期還付市民税,
|
611
|
+
期首繰越損益,
|
612
|
+
期首納税充当金
|
613
|
+
].compact.sum - [
|
539
614
|
期首未納法人税,
|
540
615
|
期首未納都道府県民税,
|
541
616
|
期首未納市民税,
|
@@ -544,16 +619,28 @@ module Luca
|
|
544
619
|
end
|
545
620
|
|
546
621
|
def 別表五一期末差引金額
|
547
|
-
[
|
622
|
+
[
|
623
|
+
@翌期還付法人税,
|
624
|
+
@翌期還付都道府県住民税,
|
625
|
+
@翌期還付市民税,
|
626
|
+
期末繰越損益,
|
627
|
+
期末納税充当金
|
628
|
+
].compact.sum - [
|
548
629
|
期末未納法人税,
|
549
|
-
|
550
|
-
|
630
|
+
期末未納都道府県民税,
|
631
|
+
期末未納市民税,
|
551
632
|
@翌期還付事業税
|
552
633
|
].compact.sum
|
553
634
|
end
|
554
635
|
|
555
636
|
def 別表五一期中減差引金額
|
556
|
-
[
|
637
|
+
[
|
638
|
+
@当期還付法人税,
|
639
|
+
@当期還付都道府県住民税,
|
640
|
+
@当期還付市民税,
|
641
|
+
期首繰越損益,
|
642
|
+
納税充当金期中減
|
643
|
+
].compact.sum - [
|
557
644
|
@法人税期中減,
|
558
645
|
@都道府県民税期中減,
|
559
646
|
@市民税期中減,
|
@@ -566,11 +653,20 @@ module Luca
|
|
566
653
|
end
|
567
654
|
|
568
655
|
def 別表五一期中増差引金額
|
569
|
-
[
|
656
|
+
[
|
657
|
+
@翌期還付法人税,
|
658
|
+
@翌期還付都道府県住民税,
|
659
|
+
@翌期還付市民税,
|
660
|
+
期末繰越損益,
|
661
|
+
期末納税充当金
|
662
|
+
].compact.sum - [
|
570
663
|
@法人税中間納付,
|
571
664
|
@地方法人税中間納付,
|
665
|
+
期末未納法人税,
|
572
666
|
@都道府県民税中間納付,
|
667
|
+
期末未納都道府県民税,
|
573
668
|
@市民税中間納付,
|
669
|
+
期末未納市民税,
|
574
670
|
@翌期還付事業税
|
575
671
|
].compact.sum
|
576
672
|
end
|
@@ -701,12 +797,14 @@ module Luca
|
|
701
797
|
end
|
702
798
|
|
703
799
|
def proc_version
|
704
|
-
if @end_date >= Date.parse('
|
705
|
-
{ 'proc' => '
|
800
|
+
if @end_date >= Date.parse('2023-4-1')
|
801
|
+
{ 'proc' => '23.0.2', 'HOA112' => '5.0', 'HOA116' => '4.0', 'HOA201' => '5.0', 'HOA420' => '22.0', 'HOA511' => '14.0', 'HOA522' => '9.0', 'HOB710' => '13.0', 'HOE200' => '14.0', 'HOE990' => '7.0', 'HOK010' => '6.0' }
|
802
|
+
elsif @end_date >= Date.parse('2022-4-1')
|
803
|
+
{ 'proc' => '22.0.3', 'HOA112' => '4.0', 'HOA116' => '3.0', 'HOA201' => '4.0', 'HOA420' => '21.0', 'HOA511' => '14.0', 'HOA522' => '8.0', 'HOB710' => '12.0', 'HOE200' => '14.0', 'HOE990' => '6.1', 'HOK010' => '6.0' }
|
706
804
|
elsif @end_date >= Date.parse('2021-4-1')
|
707
|
-
{ 'proc' => '21.0.2', 'HOA112' => '3.1', 'HOA116' => '2.0', 'HOA420' => '20.0', 'HOA511' => '13.0', 'HOA522' => '7.0', 'HOB710' => '11.0', 'HOE200' => '13.0', 'HOE990' => '5.0', 'HOK010' => '6.0' }
|
805
|
+
{ 'proc' => '21.0.2', 'HOA112' => '3.1', 'HOA116' => '2.0', 'HOA201' => '4.0', 'HOA420' => '20.0', 'HOA511' => '13.0', 'HOA522' => '7.0', 'HOB710' => '11.0', 'HOE200' => '13.0', 'HOE990' => '5.0', 'HOK010' => '6.0' }
|
708
806
|
else
|
709
|
-
{ 'proc' => '20.0.2', 'HOA112' => '2.0', 'HOA116' => '1.0', 'HOA420' => '19.0', 'HOA511' => '13.0', 'HOA522' => '6.0', 'HOB710' => '11.0', 'HOE200' => '13.0', 'HOE990' => '5.0', 'HOK010' => '5.0' }
|
807
|
+
{ 'proc' => '20.0.2', 'HOA112' => '2.0', 'HOA116' => '1.0', 'HOA201' => '4.0', 'HOA420' => '19.0', 'HOA511' => '13.0', 'HOA522' => '6.0', 'HOB710' => '11.0', 'HOE200' => '13.0', 'HOE990' => '5.0', 'HOK010' => '5.0' }
|
710
808
|
end
|
711
809
|
end
|
712
810
|
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -17,7 +17,7 @@ module Luca
|
|
17
17
|
@dirname = 'journals'
|
18
18
|
@record_type = 'raw'
|
19
19
|
|
20
|
-
def kani(report_cfg, export: false)
|
20
|
+
def kani(report_cfg, export: false, ext_config: nil)
|
21
21
|
set_pl(4)
|
22
22
|
set_bs(4)
|
23
23
|
@issue_date = Date.today
|
@@ -32,28 +32,25 @@ module Luca
|
|
32
32
|
@shotoku401 = report_cfg['shotoku401']
|
33
33
|
@shotoku801 = report_cfg['shotoku801']
|
34
34
|
|
35
|
+
別表四所得調整(ext_config)
|
35
36
|
@税額 = 税額計算
|
36
37
|
jichitai = @report_category == 'city' ? :shimin : :kenmin
|
37
38
|
@均等割 = report_cfg['kintouwari'] || @税額.dig(jichitai, :kintou)
|
38
39
|
@確定法人税割 = @税額.dig(jichitai, :houjinzei)
|
39
40
|
@地方特別法人事業税中間納付 = prepaid_tax('1854', @jimusho_name)
|
40
41
|
@所得割中間納付 = prepaid_tax('1855', @jimusho_name)
|
41
|
-
@法人税割中間納付 = prepaid_tax(
|
42
|
-
|
42
|
+
@法人税割中間納付 = prepaid_tax(
|
43
|
+
@report_category == 'city' ? '185D' :'1859',
|
44
|
+
@jimusho_name
|
45
|
+
)
|
46
|
+
@均等割中間納付 = prepaid_tax(
|
47
|
+
@report_category == 'city' ? '185E' : '185A',
|
48
|
+
@jimusho_name
|
49
|
+
)
|
43
50
|
@所得割 = @税額.dig(:kenmin, :shotoku)
|
44
51
|
if export
|
45
52
|
{
|
46
53
|
customer: @jimusho_name,
|
47
|
-
jigyouzei: {
|
48
|
-
shotoku: {
|
49
|
-
zeigaku: @所得割,
|
50
|
-
chukan: @所得割中間納付
|
51
|
-
},
|
52
|
-
tokubetsu: {
|
53
|
-
zeigaku: @税額.dig(:kenmin, :tokubetsu),
|
54
|
-
chukan: @地方特別法人事業税中間納付
|
55
|
-
},
|
56
|
-
},
|
57
54
|
juminzei: {
|
58
55
|
kinto: {
|
59
56
|
zeigaku: @均等割,
|
@@ -64,7 +61,20 @@ module Luca
|
|
64
61
|
chukan: @法人税割中間納付
|
65
62
|
}
|
66
63
|
}
|
67
|
-
}
|
64
|
+
}.tap do |record|
|
65
|
+
if @report_category != 'city'
|
66
|
+
record[:jigyouzei] = {
|
67
|
+
shotoku: {
|
68
|
+
zeigaku: @所得割,
|
69
|
+
chukan: @所得割中間納付
|
70
|
+
},
|
71
|
+
tokubetsu: {
|
72
|
+
zeigaku: @税額.dig(:kenmin, :tokubetsu),
|
73
|
+
chukan: @地方特別法人事業税中間納付
|
74
|
+
},
|
75
|
+
}
|
76
|
+
end
|
77
|
+
end
|
68
78
|
else
|
69
79
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
70
80
|
@form_vers = proc_version
|
@@ -99,8 +109,8 @@ module Luca
|
|
99
109
|
end
|
100
110
|
end
|
101
111
|
|
102
|
-
def export_json(report_cfg)
|
103
|
-
records = kani(report_cfg, export: true)
|
112
|
+
def export_json(report_cfg, ext_config: nil)
|
113
|
+
records = kani(report_cfg, export: true, ext_config: ext_config)
|
104
114
|
label = @report_category == 'city' ? '市町村住民税' : '都道府県住民税'
|
105
115
|
{}.tap do |item|
|
106
116
|
item['date'] = @end_date
|
@@ -109,7 +119,7 @@ module Luca
|
|
109
119
|
unless @report_category == 'city'
|
110
120
|
records[:jigyouzei].each do |k, dat|
|
111
121
|
if dat[:chukan] > 0
|
112
|
-
item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] }
|
122
|
+
item['credit'] << { 'label' => karibarai_label(k, @report_category), 'amount' => dat[:chukan] }
|
113
123
|
end
|
114
124
|
if dat[:chukan] > dat[:zeigaku]
|
115
125
|
item['debit'] << { 'label' => '未収地方事業税', 'amount' => dat[:chukan] - dat[:zeigaku] }
|
@@ -121,7 +131,7 @@ module Luca
|
|
121
131
|
end
|
122
132
|
records[:juminzei].each do |k, dat|
|
123
133
|
if dat[:chukan] > 0
|
124
|
-
item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] }
|
134
|
+
item['credit'] << { 'label' => karibarai_label(k, @report_category), 'amount' => dat[:chukan] }
|
125
135
|
end
|
126
136
|
if dat[:chukan] > dat[:zeigaku]
|
127
137
|
item['debit'] << { 'label' => "未収#{label}", 'amount' => dat[:chukan] - dat[:zeigaku] }
|
@@ -229,22 +239,31 @@ module Luca
|
|
229
239
|
"<FORM_ATTR><FORM_ID>#{code}</FORM_ID><FORM_NAME>#{name}</FORM_NAME><FORM_FILE_NAME></FORM_FILE_NAME><FORM_XSL_NAME></FORM_XSL_NAME></FORM_ATTR>"
|
230
240
|
end
|
231
241
|
|
232
|
-
def karibarai_label(key)
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
242
|
+
def karibarai_label(key, category)
|
243
|
+
if category == 'city'
|
244
|
+
case key
|
245
|
+
when :houjinzei
|
246
|
+
'仮払市民税法人税割'
|
247
|
+
when :kinto
|
248
|
+
'仮払市民税均等割'
|
249
|
+
end
|
250
|
+
else
|
251
|
+
case key
|
252
|
+
when :tokubetsu
|
253
|
+
'仮払地方税特別法人事業税'
|
254
|
+
when :shotoku
|
255
|
+
'仮払地方税所得割'
|
256
|
+
when :syunyu
|
257
|
+
'仮払地方税収入割'
|
258
|
+
when :shihon
|
259
|
+
'仮払地方税資本割'
|
260
|
+
when :fukakachi
|
261
|
+
'仮払地方税付加価値割'
|
262
|
+
when :houjinzei
|
263
|
+
'仮払地方税法人税割'
|
264
|
+
when :kinto
|
265
|
+
'仮払地方税均等割'
|
266
|
+
end
|
248
267
|
end
|
249
268
|
end
|
250
269
|
|
data/lib/luca/jp/common.rb
CHANGED
@@ -11,11 +11,11 @@ module Luca
|
|
11
11
|
#
|
12
12
|
def 税額計算
|
13
13
|
所得 = 所得金額
|
14
|
+
法人税額 = 中小企業の軽減税額(所得) + 一般区分の税額(所得)
|
15
|
+
地方法人税課税標準 = (法人税額 / 1000).floor * 1000
|
16
|
+
地方法人税 = 地方法人税額(地方法人税課税標準)
|
14
17
|
{ houjin: {}, kenmin: {}, shimin: {} }.tap do |tax|
|
15
|
-
法人税額 = 中小企業の軽減税額(所得) + 一般区分の税額(所得)
|
16
18
|
tax[:houjin][:kokuzei] = (法人税額 / 100).floor * 100
|
17
|
-
地方法人税課税標準 = (法人税額 / 1000).floor * 1000
|
18
|
-
地方法人税 = 地方法人税額(地方法人税課税標準)
|
19
19
|
tax[:houjin][:chihou] = (地方法人税 / 100).floor * 100
|
20
20
|
|
21
21
|
tax[:kenmin][:houjinzei], tax[:shimin][:houjinzei] = 法人税割(法人税額)
|
@@ -68,18 +68,45 @@ module Luca
|
|
68
68
|
# 繰越損失適用後の所得金額
|
69
69
|
#
|
70
70
|
def 所得金額
|
71
|
-
@繰越損失管理 = Sonshitsu.load(@end_date).update(
|
71
|
+
@繰越損失管理 = Sonshitsu.load(@end_date).update(@別表四調整所得).save if @繰越損失管理.nil?
|
72
72
|
@繰越損失管理.profit
|
73
73
|
end
|
74
74
|
|
75
|
-
# 税引前当期利益をもとに計算
|
76
75
|
# 消費税を租税公課に計上している場合、控除済みの金額
|
77
76
|
# 事業税は仮払経理の場合にも納付時損金/還付時益金
|
78
77
|
#
|
79
|
-
def
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
def 別表四所得調整(ext_config = nil)
|
79
|
+
@税引前損益 = readable(@pl_data.dig('GA'))
|
80
|
+
|
81
|
+
if ext_config
|
82
|
+
@減価償却の償却超過額 = ext_config.dig('損金不算入', '減価償却')
|
83
|
+
@役員給与の損金不算入額 = ext_config.dig('損金不算入', '役員給与')
|
84
|
+
@交際費等の損金不算入額 = ext_config.dig('損金不算入', '交際費')
|
85
|
+
@減価償却超過額の当期認容額 = ext_config.dig('益金不算入', '減価償却')
|
86
|
+
@受取配当金の益金不算入額 = ext_config.dig('益金不算入', '受取配当金')
|
87
|
+
@受贈益の益金不算入額 = ext_config.dig('益金不算入', '受贈益')
|
88
|
+
end
|
89
|
+
|
90
|
+
@当期還付事業税 = refund_tax('1504')
|
91
|
+
@損金不算入額税額未確定 = [
|
92
|
+
@減価償却の償却超過額,
|
93
|
+
@役員給与の損金不算入額,
|
94
|
+
@交際費等の損金不算入額,
|
95
|
+
@当期還付事業税
|
96
|
+
].compact.sum
|
97
|
+
|
98
|
+
_, @納付事業税 = 未納事業税期中増減
|
99
|
+
@事業税中間納付 = ['1854', '1855', '1856', '1857', '1858']
|
100
|
+
.map{ |k| prepaid_tax(k) }.compact.sum
|
101
|
+
@益金不算入額税額未確定 = [
|
102
|
+
@納付事業税,
|
103
|
+
@事業税中間納付,
|
104
|
+
@減価償却超過額の当期認容額,
|
105
|
+
@受取配当金の益金不算入額,
|
106
|
+
@受贈益の益金不算入額,
|
107
|
+
].compact.sum
|
108
|
+
|
109
|
+
@別表四調整所得 = @税引前損益 + @損金不算入額税額未確定 - @益金不算入額税額未確定
|
83
110
|
end
|
84
111
|
|
85
112
|
# -----------------------------------------------------
|
@@ -113,6 +140,10 @@ module Luca
|
|
113
140
|
# -----------------------------------------------------
|
114
141
|
|
115
142
|
def 均等割
|
143
|
+
if @employee.nil?
|
144
|
+
STDERR.puts "地方税の提出先設定に従業員人数がないため、1名とみなして計算"
|
145
|
+
@employee ||= 1
|
146
|
+
end
|
116
147
|
tax = if 地方税資本金等の額 <= 10_000_000
|
117
148
|
city = @employee > 50 ? 120_000 : 50_000
|
118
149
|
[20_000, city]
|
@@ -273,10 +304,6 @@ module Luca
|
|
273
304
|
end
|
274
305
|
end
|
275
306
|
|
276
|
-
def 還付事業税
|
277
|
-
refund_tax('1504')
|
278
|
-
end
|
279
|
-
|
280
307
|
def 未納事業税期中増減
|
281
308
|
r = gross_amount('5152', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
282
309
|
[LucaSupport::Code.readable(r[1]), LucaSupport::Code.readable(r[0])]
|
@@ -318,6 +345,8 @@ module Luca
|
|
318
345
|
# :section: 複数自治体間の分割計算
|
319
346
|
# -----------------------------------------------------
|
320
347
|
def 事業税の分割課税標準(課税標準)
|
348
|
+
return 課税標準 if ! Luca::Jp::Util.eltax_config('reports')
|
349
|
+
|
321
350
|
case Luca::Jp::Util.eltax_config('reports')
|
322
351
|
.filter { |r| レポート種別.include?(r['type']) }.length
|
323
352
|
when 0, 1
|
data/lib/luca/jp/sonshitsu.rb
CHANGED
@@ -26,7 +26,7 @@ module Luca
|
|
26
26
|
@profit = 0
|
27
27
|
end
|
28
28
|
|
29
|
-
# sonshitsu format is as
|
29
|
+
# sonshitsu format is as follows:
|
30
30
|
#
|
31
31
|
# - start_date: 2020-01-01
|
32
32
|
# end_date: 2020-12-31
|
@@ -37,7 +37,7 @@ module Luca
|
|
37
37
|
#
|
38
38
|
def self.load(this_year)
|
39
39
|
records = if File.exist?(record_file)
|
40
|
-
YAML.safe_load(File.read(record_file), permitted_classes: [Date])
|
40
|
+
YAML.safe_load(File.read(record_file), permitted_classes: [Date], aliases: true)
|
41
41
|
.filter { |record| record['start_date'] > this_year.prev_year(11) && record['end_date'] < this_year }
|
42
42
|
.sort { |a, b| a['start_date'] <=> b['start_date'] }
|
43
43
|
else
|
data/lib/luca/jp/syouhizei.rb
CHANGED
@@ -21,6 +21,7 @@ module Luca
|
|
21
21
|
# TODO: 軽減税率売上の識別
|
22
22
|
#
|
23
23
|
def kani(export: false)
|
24
|
+
@2割特例 = config.dig('jp', 'syouhizei_kubun') == 2023
|
24
25
|
set_pl(4)
|
25
26
|
set_bs(4)
|
26
27
|
@issue_date = Date.today
|
@@ -32,6 +33,7 @@ module Luca
|
|
32
33
|
|
33
34
|
@sales = @pl_data.dig('A0') * 100 / (100 + 税率 + 地方税率).floor
|
34
35
|
@tax_amount = (課税標準額(@sales) * 税率 / 100).floor
|
36
|
+
@基準期間の課税売上高 = LucaSupport::Code.readable(基準期間の課税売上高(税率 + 地方税率))
|
35
37
|
@みなし仕入税額 = (@tax_amount * みなし仕入率(config.dig('jp', 'syouhizei_kubun')) / 100).floor
|
36
38
|
@税額 = LucaSupport::Code.readable(((@tax_amount - @みなし仕入税額) / 100).floor * 100)
|
37
39
|
@譲渡割額 = (@税額 * 地方税率 / (税率*100)).floor * 100
|
@@ -54,9 +56,17 @@ module Luca
|
|
54
56
|
@procedure_name = '消費税及び地方消費税申告(簡易課税・法人)'
|
55
57
|
@form_vers = proc_version
|
56
58
|
@version = @form_vers['proc']
|
57
|
-
@form_sec = ['SHA020', 'SHB047', 'SHB067'].map{ |c| form_rdf(c) }.join('')
|
58
59
|
@it = it_part
|
59
|
-
@
|
60
|
+
@form_sec = if @2割特例
|
61
|
+
['SHA020', 'SHB070'].map{ |c| form_rdf(c) }.join('')
|
62
|
+
else
|
63
|
+
['SHA020', 'SHB047', 'SHB067'].map{ |c| form_rdf(c) }.join('')
|
64
|
+
end
|
65
|
+
@form_data = if @2割特例
|
66
|
+
[申告書簡易課税, 付表六].join("\n")
|
67
|
+
else
|
68
|
+
[申告書簡易課税, 付表四の三, 付表五の三].join("\n")
|
69
|
+
end
|
60
70
|
render_erb(search_template('consumption.xtx.erb'))
|
61
71
|
end
|
62
72
|
end
|
@@ -73,6 +83,10 @@ module Luca
|
|
73
83
|
render_erb(search_template('fuhyo53.xml.erb'))
|
74
84
|
end
|
75
85
|
|
86
|
+
def 付表六
|
87
|
+
render_erb(search_template('fuhyo6.xml.erb'))
|
88
|
+
end
|
89
|
+
|
76
90
|
def export_json
|
77
91
|
dat = kani(export: true)
|
78
92
|
[].tap do |res|
|
@@ -110,6 +124,16 @@ module Luca
|
|
110
124
|
(課税資産の譲渡等の対価の額 / 1000).floor * 1000
|
111
125
|
end
|
112
126
|
|
127
|
+
def 基準期間の課税売上高(税率)
|
128
|
+
基準日 = @end_date.prev_year(2)
|
129
|
+
from_d, to_d = LucaBook::Util.current_fy(基準日)
|
130
|
+
state = LucaBook::State.range(from_d.year, from_d.month, to_d.year, to_d.month)
|
131
|
+
state.pl
|
132
|
+
(state.pl_data.dig('A0') * 100 / (100 + 税率)).floor
|
133
|
+
end
|
134
|
+
|
135
|
+
# 2023は2割特例
|
136
|
+
#
|
113
137
|
def みなし仕入率(事業区分)
|
114
138
|
{
|
115
139
|
1 => 90,
|
@@ -117,7 +141,8 @@ module Luca
|
|
117
141
|
3 => 70,
|
118
142
|
4 => 60,
|
119
143
|
5 => 50,
|
120
|
-
6 => 40
|
144
|
+
6 => 40,
|
145
|
+
2023 => 80
|
121
146
|
}[事業区分]
|
122
147
|
end
|
123
148
|
|
@@ -144,7 +169,9 @@ module Luca
|
|
144
169
|
end
|
145
170
|
|
146
171
|
def proc_version
|
147
|
-
if @end_date >= Date.parse('
|
172
|
+
if @end_date >= Date.parse('2023-10-1')
|
173
|
+
{ 'proc' => '23.0.0', 'SHA020' => '9.0' }
|
174
|
+
elsif @end_date >= Date.parse('2021-4-1')
|
148
175
|
{ 'proc' => '20.0.1', 'SHA020' => '7.1' }
|
149
176
|
else
|
150
177
|
{ 'proc' => '20.0.0', 'SHA020' => '7.0' }
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<HOA201 page="1" VR="
|
1
|
+
<HOA201 page="1" VR="<%= @form_vers['HOA201'] %>" id="HOA201" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
2
|
<VAA00000>
|
3
3
|
<VAA00010>
|
4
4
|
<VAA00020 IDREF="JIGYO_NENDO_FROM"/>
|
@@ -14,55 +14,76 @@
|
|
14
14
|
<ARC00000>
|
15
15
|
<ARC00010>
|
16
16
|
<% ['ARC00020', 'ARC00030'].each do |code| %>
|
17
|
-
<%= render_attr(code,
|
17
|
+
<%= render_attr(code, @損金経理をした法人税及び地方法人税) %>
|
18
18
|
<% end %>
|
19
19
|
</ARC00010>
|
20
20
|
<ARC00040>
|
21
21
|
<% ['ARC00050', 'ARC00060'].each do |code| %>
|
22
|
-
<%= render_attr(code,
|
22
|
+
<%= render_attr(code, @損金経理をした道府県民税及び市町村民税) %>
|
23
23
|
<% end %>
|
24
24
|
</ARC00040>
|
25
25
|
<ARC00100>
|
26
26
|
<% ['ARC00110', 'ARC00120'].each do |code| %>
|
27
|
-
<%= render_attr(code,
|
27
|
+
<%= render_attr(code, @損金経理をした納税充当金) %>
|
28
28
|
<% end %>
|
29
29
|
</ARC00100>
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
<% if @減価償却の償却超過額 %>
|
31
|
+
<ARC00160>
|
32
|
+
<% ['ARC00170', 'ARC00180'].each do |code| %>
|
33
|
+
<%= render_attr(code, @減価償却の償却超過額) %>
|
34
|
+
<% end %>
|
35
|
+
</ARC00160>
|
36
|
+
<% end %>
|
37
|
+
<% if @役員給与の損金不算入額 %>
|
38
|
+
<ARC00190>
|
39
|
+
<% ['ARC00200', 'ARC00210'].each do |code| %>
|
40
|
+
<%= render_attr(code, @役員給与の損金不算入額) %>
|
37
41
|
<% end %>
|
38
|
-
</
|
42
|
+
</ARC00190>
|
39
43
|
<% end %>
|
44
|
+
<% if @交際費等の損金不算入額 %>
|
45
|
+
<ARC00213>
|
46
|
+
<% ['ARC00215', 'ARC00218'].each do |code| %>
|
47
|
+
<%= render_attr(code, @交際費等の損金不算入額) %>
|
48
|
+
<% end %>
|
49
|
+
</ARC00213>
|
50
|
+
<% end %>
|
51
|
+
<%# ARC00360 通算法人に係る加算額 %>
|
52
|
+
<%= 別表四還付事業税 %>
|
40
53
|
<ARC00325>
|
41
54
|
<% ['ARC00330', 'ARC00340'].each do |code| %>
|
42
|
-
<%= render_attr(code,
|
55
|
+
<%= render_attr(code, @損金不算入額) %>
|
43
56
|
<% end %>
|
44
57
|
</ARC00325>
|
45
58
|
</ARC00000>
|
46
59
|
<ARD00000>
|
60
|
+
<% if @減価償却超過額の当期認容額 %>
|
61
|
+
<ARD00010>
|
62
|
+
<% ['ARD00020', 'ARD00030'].each do |code| %>
|
63
|
+
<%= render_attr(code, @減価償却超過額の当期認容額) %>
|
64
|
+
<% end %>
|
65
|
+
</ARD00010>
|
66
|
+
<% end %>
|
47
67
|
<ARD00040>
|
48
68
|
<% ['ARD00050', 'ARD00060'].each do |code| %>
|
49
69
|
<%= render_attr(code, @納付事業税) %>
|
50
70
|
<% end %>
|
51
71
|
</ARD00040>
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
</ARD00100>
|
57
|
-
<%# ARD00400 通算法人に係る減算額 %>
|
58
|
-
<% if (法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付) > 0 %>
|
59
|
-
<ARD00215>
|
60
|
-
<%= render_attr('ARD00220', '仮払税金認定損') %>
|
61
|
-
<% ['ARD00230', 'ARD00240'].each do |code| %>
|
62
|
-
<%= render_attr(code, [法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
|
72
|
+
<% if @受取配当金の益金不算入額 %>
|
73
|
+
<ARD00070>
|
74
|
+
<% ['ARD00080', 'ARD00090'].each do |code| %>
|
75
|
+
<%= render_attr(code, @受取配当金の益金不算入額) %>
|
63
76
|
<% end %>
|
64
|
-
</
|
77
|
+
</ARD00070>
|
78
|
+
<% end %>
|
79
|
+
<% if @受贈益の益金不算入額 %>
|
80
|
+
<ARD00340>
|
81
|
+
<% ['ARD00350', 'ARD00360'].each do |code| %>
|
82
|
+
<%= render_attr(code, @受贈益の益金不算入額) %>
|
83
|
+
<% end %>
|
84
|
+
</ARD00340>
|
65
85
|
<% end %>
|
86
|
+
<%# ARD00400 通算法人に係る減算額 %>
|
66
87
|
<% if @翌期還付事業税 > 0 %>
|
67
88
|
<ARD00215>
|
68
89
|
<%= render_attr('ARD00220', '仮払事業税認定損') %>
|
@@ -72,51 +93,73 @@
|
|
72
93
|
</ARD00215>
|
73
94
|
<% end %>
|
74
95
|
<ARD00280>
|
75
|
-
|
76
|
-
|
77
|
-
|
96
|
+
<%= render_attr('ARD00290', @益金不算入額) %>
|
97
|
+
<%= render_attr('ARD00300', @益金不算入額留保) %>
|
98
|
+
<ARD00310>
|
99
|
+
<%= render_attr('ARD00330', @益金不算入額社外流出) %>
|
100
|
+
</ARD00310>
|
78
101
|
</ARD00280>
|
79
102
|
</ARD00000>
|
80
103
|
<ARE00000>
|
81
|
-
|
82
|
-
|
83
|
-
|
104
|
+
<%= render_attr('ARE00010', @別表四調整所得) %>
|
105
|
+
<%= render_attr('ARE00020', @別表四調整所得留保) %>
|
106
|
+
<ARE00030>
|
107
|
+
<%= render_attr('ARE00050', @別表四調整所得社外流出) %>
|
108
|
+
</ARE00030>
|
84
109
|
</ARE00000>
|
85
110
|
<ARZ10000>
|
86
|
-
|
87
|
-
|
88
|
-
|
111
|
+
<%= render_attr('ARZ10010', @別表四調整所得) %>
|
112
|
+
<%= render_attr('ARZ10020', @別表四調整所得留保) %>
|
113
|
+
<ARZ10030>
|
114
|
+
<%= render_attr('ARZ10050', @別表四調整所得社外流出) %>
|
115
|
+
</ARZ10030>
|
89
116
|
</ARZ10000>
|
117
|
+
<%# ARF00000 寄附金の損金不算入額 %>
|
118
|
+
<%# ARI00000 法人税額から控除される所得税額 %>
|
119
|
+
<%# ARJ00000 税額控除の対象となる外国法人税の額 %>
|
90
120
|
<ARK00000>
|
91
|
-
|
92
|
-
|
93
|
-
|
121
|
+
<%= render_attr('ARK00010', @別表四調整所得) %>
|
122
|
+
<%= render_attr('ARK00020', @別表四調整所得留保) %>
|
123
|
+
<ARK00030>
|
124
|
+
<%= render_attr('ARK00050', @別表四調整所得社外流出) %>
|
125
|
+
</ARK00030>
|
94
126
|
</ARK00000>
|
95
127
|
<ARM00000>
|
96
|
-
|
97
|
-
|
98
|
-
|
128
|
+
<%= render_attr('ARM00010', @別表四調整所得) %>
|
129
|
+
<%= render_attr('ARM00020', @別表四調整所得留保) %>
|
130
|
+
<ARM00030>
|
131
|
+
<%= render_attr('ARM00050', @別表四調整所得社外流出) %>
|
132
|
+
</ARM00030>
|
99
133
|
</ARM00000>
|
134
|
+
<%# ARN10010 中間申告における繰戻しによる還付に係る災害損失欠損金額の益金算入額 %>
|
135
|
+
<%# ARR00000 非適格合併又は残余財産の全部分配等による移転資産等の譲渡利益額又は譲渡損失額 %>
|
100
136
|
<ARS00000>
|
101
|
-
|
102
|
-
|
103
|
-
|
137
|
+
<%= render_attr('ARS00010', @別表四調整所得) %>
|
138
|
+
<%= render_attr('ARS00020', @別表四調整所得留保) %>
|
139
|
+
<ARS00030>
|
140
|
+
<%= render_attr('ARS00050', @別表四調整所得社外流出) %>
|
141
|
+
</ARS00030>
|
104
142
|
</ARS00000>
|
105
143
|
<%# ARS10000 更生欠損金又は民事再生等評価換えが行われる場合の再生等欠損金の損金算入額 %>
|
106
144
|
<%# ARS20000 通算対象欠損金額の損金算入額又は通算対象所得金額の益金算入額 %>
|
107
145
|
<ARS50000>
|
108
|
-
|
109
|
-
|
110
|
-
|
146
|
+
<%= render_attr('ARS50010', @別表四調整所得) %>
|
147
|
+
<%= render_attr('ARS50020', @別表四調整所得留保) %>
|
148
|
+
<ARS50030>
|
149
|
+
<%= render_attr('ARS50050', @別表四調整所得社外流出) %>
|
150
|
+
</ARS50030>
|
111
151
|
</ARS50000>
|
112
152
|
<ART00000>
|
113
153
|
<% ['ART00010', 'ART00020'].each do |code| %>
|
114
154
|
<%= render_attr(code, @繰越損失管理.deduction) %>
|
115
155
|
<% end %>
|
116
156
|
</ART00000>
|
157
|
+
<%# ARX00000 残余財産の確定の日の属する事業年度に係る事業税及び特別法人事業税の損金算入額 %>
|
117
158
|
<ARV00000>
|
118
|
-
|
119
|
-
|
120
|
-
|
159
|
+
<%= render_attr('ARV00010', @別表四調整所得 - @繰越損失管理.deduction) %>
|
160
|
+
<%= render_attr('ARV00020', @別表四調整所得留保) %>
|
161
|
+
<ARV00030>
|
162
|
+
<%= render_attr('ARV00050', @別表四調整所得社外流出 - @繰越損失管理.deduction) %>
|
163
|
+
</ARV00030>
|
121
164
|
</ARV00000>
|
122
165
|
</HOA420>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<ICA00040 IDREF="NOZEISHA_NM"/>
|
8
8
|
</ICA00000>
|
9
9
|
<ICB00000>
|
10
|
-
<%=
|
10
|
+
<%= 別表五一仮払事業税 %>
|
11
11
|
<%= 別表五一還付法人税 %>
|
12
12
|
<%= 別表五一還付都道府県住民税 %>
|
13
13
|
<%= 別表五一還付市民税 %>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
<%= render_attr('ICB00490', 納税充当金期中減) %>
|
26
26
|
<%= render_attr('ICB00500', 当期納税充当金) %>
|
27
27
|
</ICB00480>
|
28
|
-
<%= render_attr('ICB00510',
|
28
|
+
<%= render_attr('ICB00510', 期末納税充当金) %>
|
29
29
|
</ICB00460>
|
30
30
|
<ICB00520>
|
31
31
|
<ICB00530>
|
@@ -46,10 +46,10 @@
|
|
46
46
|
<%= render_attr('ICB00650', @都道府県民税期中減 + @都道府県民税中間納付) %>
|
47
47
|
<ICB00660>
|
48
48
|
<%= render_attr('ICB00670', @都道府県民税中間納付) %>
|
49
|
-
<%= render_attr('ICB00680',
|
49
|
+
<%= render_attr('ICB00680', 期末未納都道府県民税) %>
|
50
50
|
</ICB00660>
|
51
51
|
</ICB00640>
|
52
|
-
<%= render_attr('ICB00700',
|
52
|
+
<%= render_attr('ICB00700', 期末未納都道府県民税) %>
|
53
53
|
</ICB00620>
|
54
54
|
<ICB00710>
|
55
55
|
<%= render_attr('ICB00720', 期首未納市民税) %>
|
@@ -57,10 +57,10 @@
|
|
57
57
|
<%= render_attr('ICB00740', @市民税期中減 + @市民税中間納付) %>
|
58
58
|
<ICB00750>
|
59
59
|
<%= render_attr('ICB00760', @市民税中間納付) %>
|
60
|
-
<%= render_attr('ICB00770',
|
60
|
+
<%= render_attr('ICB00770', 期末未納市民税) %>
|
61
61
|
</ICB00750>
|
62
62
|
</ICB00730>
|
63
|
-
<%= render_attr('ICB00790',
|
63
|
+
<%= render_attr('ICB00790', 期末未納市民税) %>
|
64
64
|
</ICB00710>
|
65
65
|
</ICB00520>
|
66
66
|
<ICB00800>
|
@@ -100,7 +100,7 @@
|
|
100
100
|
<%= render_attr('IEC00450', (確定都道府県住民税 - @都道府県民税中間納付)) %>
|
101
101
|
<IEC00460>
|
102
102
|
<%= render_attr('IEC00470', @翌期還付都道府県住民税 * -1) %>
|
103
|
-
<%= render_attr('IEC00480',
|
103
|
+
<%= render_attr('IEC00480', 期末未納都道府県民税) %>
|
104
104
|
</IEC00460>
|
105
105
|
</IEC00440>
|
106
106
|
</IEC00170>
|
@@ -122,7 +122,7 @@
|
|
122
122
|
</IEC00530>
|
123
123
|
<IEC00630>
|
124
124
|
<%= render_attr('IEC00640', @翌期還付都道府県住民税 * -1) %>
|
125
|
-
<%= render_attr('IEC00650',
|
125
|
+
<%= render_attr('IEC00650', 期末未納都道府県民税) %>
|
126
126
|
</IEC00630>
|
127
127
|
</IEC00490>
|
128
128
|
</IEC00000>
|
@@ -159,7 +159,7 @@
|
|
159
159
|
<%= render_attr('IED00320', (確定市民税 - @市民税中間納付)) %>
|
160
160
|
<IED00330>
|
161
161
|
<%= render_attr('IED00340', @翌期還付市民税 * -1) %>
|
162
|
-
<%= render_attr('IED00350',
|
162
|
+
<%= render_attr('IED00350', 期末未納市民税) %>
|
163
163
|
</IED00330>
|
164
164
|
</IED00310>
|
165
165
|
</IED00170>
|
@@ -181,7 +181,7 @@
|
|
181
181
|
</IED00400>
|
182
182
|
<IED00500>
|
183
183
|
<%= render_attr('IED00510', @翌期還付市民税 * -1) %>
|
184
|
-
<%= render_attr('IED00520',
|
184
|
+
<%= render_attr('IED00520', 期末未納市民税) %>
|
185
185
|
</IED00500>
|
186
186
|
</IED00360>
|
187
187
|
</IED00000>
|
@@ -225,7 +225,7 @@
|
|
225
225
|
<%= render_attr('IEE00420', 当期事業税納付 + 事業税損金納付) %>
|
226
226
|
</IEE00400>
|
227
227
|
</IEE00330>
|
228
|
-
<%= render_attr('IEE00430',
|
228
|
+
<%= render_attr('IEE00430', 期末未納事業税) %>
|
229
229
|
</IEE00300>
|
230
230
|
</IEE00000>
|
231
231
|
<IEF00000>
|
@@ -7,9 +7,9 @@
|
|
7
7
|
<MCA00040 IDREF="NOZEISHA_NM"/>
|
8
8
|
</MCA00000>
|
9
9
|
<MCB00000>
|
10
|
-
<%= render_attr('MCB00002',
|
10
|
+
<%= render_attr('MCB00002', @別表四調整所得) %>
|
11
11
|
<MCB00004>
|
12
|
-
<%= render_attr('MCB00008', [
|
12
|
+
<%= render_attr('MCB00008', [@別表四調整所得, 0].max) %>
|
13
13
|
</MCB00004>
|
14
14
|
<%= 別表七各期青色損失 %>
|
15
15
|
<MCB00220>
|
@@ -8,8 +8,8 @@
|
|
8
8
|
<gen:yyyymmdd></gen:yyyymmdd>
|
9
9
|
</AMA_JIGYO_EDATE>
|
10
10
|
<AMA_NAME idref="NAME"></AMA_NAME>
|
11
|
-
<%= render_attr('AMA00100',
|
12
|
-
<%= render_attr('AMA00200', [
|
11
|
+
<%= render_attr('AMA00100', @別表四調整所得) %>
|
12
|
+
<%= render_attr('AMA00200', [@別表四調整所得, 0].max) %>
|
13
13
|
<AMB00110>
|
14
14
|
<gen:era />
|
15
15
|
<gen:yy />
|
@@ -149,12 +149,12 @@
|
|
149
149
|
<AAK01100><%= 特別法人事業税(@所得割) - @地方特別法人事業税中間納付 %></AAK01100>
|
150
150
|
<AAK01200 />
|
151
151
|
<AAK01300><%= 特別法人事業税(@所得割) - @地方特別法人事業税中間納付 %></AAK01300>
|
152
|
-
<%= render_attr('AAF00100',
|
152
|
+
<%= render_attr('AAF00100', @別表四調整所得) %>
|
153
153
|
<AAF00200 />
|
154
154
|
<AAF00300 />
|
155
155
|
<AAF00500 />
|
156
156
|
<AAF00600 />
|
157
|
-
<%= render_attr('AAF00800',
|
157
|
+
<%= render_attr('AAF00800', @別表四調整所得) %>
|
158
158
|
<%= render_attr('AAF00700', @繰越損失管理.deduction) %>
|
159
159
|
<%= render_attr('AAG00100', 所得金額) %>
|
160
160
|
<AAH00100 />
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<SHB070 page="1" VR="1.0" id="SHB070" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
+
<AYA00000><AYA00010>
|
3
|
+
<AYA00020 IDREF="KAZEI_KIKAN_FROM"/>
|
4
|
+
<AYA00030 IDREF="KAZEI_KIKAN_TO"/>
|
5
|
+
</AYA00010>
|
6
|
+
<AYA00040 IDREF="NOZEISHA_NM"/>
|
7
|
+
</AYA00000>
|
8
|
+
<AYB00000>
|
9
|
+
<AYB00010>
|
10
|
+
<%= render_attr('AYB00030', LucaSupport::Code.readable(@sales)) %>
|
11
|
+
<%= render_attr('AYB00040', LucaSupport::Code.readable(@sales)) %>
|
12
|
+
</AYB00010>
|
13
|
+
<AYB00050>
|
14
|
+
<%= render_attr('AYB00070', 課税標準額(@sales)) %>
|
15
|
+
<%= render_attr('AYB00080', 課税標準額(@sales)) %>
|
16
|
+
</AYB00050>
|
17
|
+
<AYB00090>
|
18
|
+
<%= render_attr('AYB00110', @tax_amount) %>
|
19
|
+
<%= render_attr('AYB00120', @tax_amount) %>
|
20
|
+
</AYB00090>
|
21
|
+
<AYB00210>
|
22
|
+
<%= render_attr('AYB00230', @tax_amount) %>
|
23
|
+
<%= render_attr('AYB00240', @tax_amount) %>
|
24
|
+
</AYB00210>
|
25
|
+
</AYB00000>
|
26
|
+
<AYC00000>
|
27
|
+
<AYC00010>
|
28
|
+
<%= render_attr('AYC00030', @みなし仕入税額) %>
|
29
|
+
<%= render_attr('AYC00040', @みなし仕入税額) %>
|
30
|
+
</AYC00010>
|
31
|
+
</AYC00000>
|
32
|
+
</SHB070>
|
@@ -69,11 +69,13 @@
|
|
69
69
|
<%= render_attr('IAE04300', gaikyo_config('software_kaikei') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
70
70
|
<%= render_attr('IAE04500', gaikyo_config('software_kaikei')) %>
|
71
71
|
<%= render_attr('IAE04600', gaikyo_config('software_mail')) %>
|
72
|
+
<% if @form_vers['HOK010'] < '7.0' %>
|
72
73
|
<IAE07000>
|
73
74
|
<%= render_attr('IAE07700', gaikyo_config('data_cloud') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
74
75
|
<%= render_attr('IAE07800', gaikyo_config('data_media') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
75
76
|
<%= render_attr('IAE07900', gaikyo_config('data_server') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
76
77
|
</IAE07000>
|
78
|
+
<% end %>
|
77
79
|
</IAE00000>
|
78
80
|
<IAT00000>
|
79
81
|
<IAT01000>
|
@@ -34,7 +34,10 @@
|
|
34
34
|
<%= render_attr('ABI00110', @中間納付額) %>
|
35
35
|
<%= render_attr('ABI00120', 納付税額(@税額, @中間納付額)) %>
|
36
36
|
<%= render_attr('ABI00130', 中間還付税額(@税額, @中間納付額)) %>
|
37
|
-
|
37
|
+
<% if ! @2割特例 %>
|
38
|
+
<%= render_attr('ABI00170', LucaSupport::Code.readable(@sales)) %>
|
39
|
+
<% end %>
|
40
|
+
<%= render_attr('ABI00180', @基準期間の課税売上高) %>
|
38
41
|
</ABI00000>
|
39
42
|
<ABJ00000>
|
40
43
|
<ABJ00010>
|
@@ -54,11 +57,16 @@
|
|
54
57
|
<ABK00030><kubun_CD>2</kubun_CD></ABK00030>
|
55
58
|
<ABK00040><kubun_CD>2</kubun_CD></ABK00040>
|
56
59
|
</ABK00000>
|
57
|
-
|
58
|
-
<
|
59
|
-
|
60
|
-
|
61
|
-
|
60
|
+
<% if ! @2割特例 %>
|
61
|
+
<ABL00000>
|
62
|
+
<ABL00010><kubun_CD>2</kubun_CD></ABL00010>
|
63
|
+
<ABL00020><%= 事業区分 %></ABL00020>
|
64
|
+
<ABL00210><kubun_CD>2</kubun_CD></ABL00210>
|
65
|
+
</ABL00000>
|
66
|
+
<% end %>
|
67
|
+
<% if @form_vers['SHA020'] >= '9.0' %>
|
68
|
+
<ABY00000><kubun_CD><%= @2割特例 ? 1 : 2 %></kubun_CD></ABY00000>
|
69
|
+
<% end %>
|
62
70
|
</SHA020-1>
|
63
71
|
<SHA020-2 page="1">
|
64
72
|
<ABM00000>
|
data/lib/luca/jp/util.rb
CHANGED
@@ -21,9 +21,12 @@ module Luca
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
# TODO: customerオプションを適切に扱うには
|
25
|
+
# 納付時にx-customerを付加していないケースの考慮が必要
|
24
26
|
def prepaid_tax(code, customer = nil)
|
25
27
|
search_end = @end_date.prev_month # exclude year end adjustment
|
26
|
-
header = { customer: customer } unless customer.nil?
|
28
|
+
# header = { customer: customer } unless customer.nil?
|
29
|
+
header = nil
|
27
30
|
amount, _ = self.class.net(@start_date.year, @start_date.month, search_end.year, search_end.month, code: code, header: header)
|
28
31
|
LucaSupport::Code.readable(amount[code] || 0)
|
29
32
|
end
|
@@ -95,8 +98,8 @@ module Luca
|
|
95
98
|
end
|
96
99
|
|
97
100
|
def 期首期末残高(code)
|
98
|
-
pre = readable(@start_balance.dig(code))
|
99
|
-
post = readable(@bs_data.dig(code))
|
101
|
+
pre = readable(@start_balance.dig(code)) || 0
|
102
|
+
post = readable(@bs_data.dig(code)) || 0
|
100
103
|
[readable(pre), readable(post)]
|
101
104
|
end
|
102
105
|
|
data/lib/luca/jp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luca-jp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chuma Takahiro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucabook
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/luca/jp/templates/eltax.xml.erb
|
149
149
|
- lib/luca/jp/templates/fuhyo43.xml.erb
|
150
150
|
- lib/luca/jp/templates/fuhyo53.xml.erb
|
151
|
+
- lib/luca/jp/templates/fuhyo6.xml.erb
|
151
152
|
- lib/luca/jp/templates/gaikyo.xml.erb
|
152
153
|
- lib/luca/jp/templates/kaikake-meisai.xml.erb
|
153
154
|
- lib/luca/jp/templates/kariire-meisai.xml.erb
|