luca-jp 0.16.2 → 0.17.0
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/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
|
|