luca-jp 0.16.2 → 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 +15 -28
- 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 +5 -4
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,9 @@ require 'luca/jp'
|
|
6
6
|
require 'luca_salary/jp_payreport'
|
7
7
|
require 'luca_cmd'
|
8
8
|
require 'luca_support/const'
|
9
|
+
require 'yaml'
|
10
|
+
|
11
|
+
EXT_CONF = 'config-lucajp.yml'
|
9
12
|
|
10
13
|
class LucaCmd
|
11
14
|
def self.syouhizei(args, params)
|
@@ -17,17 +20,19 @@ class LucaCmd
|
|
17
20
|
end
|
18
21
|
|
19
22
|
def self.houjinzei(args, params)
|
23
|
+
ext_config = params[:extra] ? YAML.load_file(params[:extra]) : nil
|
20
24
|
if params[:export]
|
21
|
-
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)
|
22
26
|
else
|
23
|
-
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)
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
27
31
|
def self.chihouzei(args, params)
|
32
|
+
ext_config = params[:extra] ? YAML.load_file(params[:extra]) : nil
|
28
33
|
if params[:export]
|
29
34
|
accounts = Luca::Jp::Util.eltax_config('reports').map do |report|
|
30
|
-
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)
|
31
36
|
end
|
32
37
|
puts JSON.dump(accounts)
|
33
38
|
else
|
@@ -56,26 +61,6 @@ class LucaCmd
|
|
56
61
|
[r[0].year, r[0].month, r[1].year, r[1].month]
|
57
62
|
end
|
58
63
|
end
|
59
|
-
|
60
|
-
def self.check_dir_jp(target)
|
61
|
-
check_dir(target) do
|
62
|
-
begin
|
63
|
-
ex_conf = YAML.safe_load(
|
64
|
-
File.read(Pathname(LucaSupport::CONST.pjdir) / 'config-lucajp.yml'),
|
65
|
-
permitted_classes: [Date]
|
66
|
-
)
|
67
|
-
if ex_conf
|
68
|
-
LucaSupport::CONST.set_config(
|
69
|
-
LucaSupport::CONST.config.merge(ex_conf)
|
70
|
-
)
|
71
|
-
end
|
72
|
-
rescue Errno::ENOENT
|
73
|
-
nil
|
74
|
-
end
|
75
|
-
|
76
|
-
yield
|
77
|
-
end
|
78
|
-
end
|
79
64
|
end
|
80
65
|
|
81
66
|
module LucaSalaryCmd
|
@@ -94,10 +79,11 @@ case cmd
|
|
94
79
|
when 'h', /hou?jinzei/
|
95
80
|
OptionParser.new do |opt|
|
96
81
|
opt.banner = 'Usage: luca-jp h|houjinzei [options] [yyyy mm yyyy mm]'
|
82
|
+
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
97
83
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
98
84
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
99
85
|
args = opt.parse!(ARGV)
|
100
|
-
LucaCmd.
|
86
|
+
LucaCmd.check_dir('journals', ext_conf: EXT_CONF) do
|
101
87
|
LucaCmd.houjinzei(args, params)
|
102
88
|
end
|
103
89
|
end
|
@@ -107,17 +93,18 @@ when 's', /s[yh]ou?hizei/
|
|
107
93
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
108
94
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
109
95
|
args = opt.parse!(ARGV)
|
110
|
-
LucaCmd.
|
96
|
+
LucaCmd.check_dir('journals', ext_conf: EXT_CONF) do
|
111
97
|
LucaCmd.syouhizei(args, params)
|
112
98
|
end
|
113
99
|
end
|
114
100
|
when 'c', /chihou?zei/
|
115
101
|
OptionParser.new do |opt|
|
116
102
|
opt.banner = 'Usage: luca-jp c|chihouzei [options] [yyyy mm yyyy mm]'
|
103
|
+
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
117
104
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
118
105
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
119
106
|
args = opt.parse!(ARGV)
|
120
|
-
LucaCmd.
|
107
|
+
LucaCmd.check_dir('journals', ext_conf: EXT_CONF) do
|
121
108
|
LucaCmd.chihouzei(args, params)
|
122
109
|
end
|
123
110
|
end
|
@@ -127,7 +114,7 @@ when /urikake/
|
|
127
114
|
opt.on('--total VAL', '売掛金総額') { |v| params[:total] = v&.to_i }
|
128
115
|
opt.on('--utf8', 'UTF-8でファイル生成') { |_v| params[:encode] = 'UTF-8' }
|
129
116
|
args = opt.parse!(ARGV)
|
130
|
-
LucaCmd.
|
117
|
+
LucaCmd.check_dir('invoices', ext_conf: EXT_CONF) do
|
131
118
|
LucaCmd.urikake(args, params)
|
132
119
|
end
|
133
120
|
end
|
@@ -135,7 +122,7 @@ when 'k', 'kyuyo', 'salary'
|
|
135
122
|
OptionParser.new do |opt|
|
136
123
|
opt.banner = 'Usage: luca-jp kyuyo [--export] year'
|
137
124
|
args = opt.parse(ARGV)
|
138
|
-
LucaCmd.
|
125
|
+
LucaCmd.check_dir('profiles', ext_conf: EXT_CONF) do
|
139
126
|
LucaSalaryCmd::Export.payreport(args)
|
140
127
|
end
|
141
128
|
end
|
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
|
|