luca-jp 0.2.3 → 0.9.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 +7 -2
- data/lib/luca/jp/aoiro.rb +62 -26
- data/lib/luca/jp/chihouzei.rb +44 -17
- data/lib/luca/jp/common.rb +97 -19
- data/lib/luca/jp/it_part.rb +1 -1
- data/lib/luca/jp/syouhizei.rb +11 -1
- data/lib/luca/jp/templates/beppyo1-next.xml.erb +4 -2
- data/lib/luca/jp/templates/beppyo1.xml.erb +1 -1
- data/lib/luca/jp/templates/beppyo2.xml.erb +2 -0
- data/lib/luca/jp/templates/beppyo4.xml.erb +60 -35
- data/lib/luca/jp/templates/beppyo51.xml.erb +36 -6
- data/lib/luca/jp/templates/beppyo52.xml.erb +1 -1
- data/lib/luca/jp/templates/el-no6-43.xml.erb +10 -9
- data/lib/luca/jp/templates/el-no6-9.xml.erb +2 -2
- data/lib/luca/jp/templates/el-no6.xml.erb +19 -17
- data/lib/luca/jp/templates/eltax.xml.erb +13 -13
- data/lib/luca/jp/templates/gaikyo.xml.erb +82 -2
- data/lib/luca/jp/templates/shoken-meisai.xml.erb +13 -7
- data/lib/luca/jp/templates/syouhizei-shinkoku-kanni.xml.erb +1 -1
- data/lib/luca/jp/templates/yokin-meisai.xml.erb +1 -0
- data/lib/luca/jp/uchiwake.rb +8 -3
- data/lib/luca/jp/util.rb +17 -0
- data/lib/luca/jp/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4397cf29a4b348c06c854a7317bf1c7a63feef296635ffe5d8cc8ab237a5ca86
|
4
|
+
data.tar.gz: 8f0e650b20dcd79af950dfaf09b3e5df4f7e32094651d3661fe7f232c58685fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25b4554065a779fee709b1f32e0120cfddf0ce23fa80397ff470f54d2a20604246781dee7c29c8f565477fedb32aa37a18398053b2411d92db1dd4e6002ce123
|
7
|
+
data.tar.gz: ba9dd2935aba7e2609278732f1db875d0896587db70605519282f94eca98264e0f51cc2d2f25ab12249477750c4debfcf74d73b472679367429a25dad2ffb9a1
|
data/exe/luca-jp
CHANGED
@@ -22,9 +22,14 @@ class LucaCmd
|
|
22
22
|
|
23
23
|
def self.chihouzei(args, params)
|
24
24
|
if params[:export]
|
25
|
-
Luca::Jp::
|
25
|
+
accounts = Luca::Jp::Util.eltax_config('reports').map do |report|
|
26
|
+
Luca::Jp::Chihouzei.range(*args).export_json(report)
|
27
|
+
end
|
28
|
+
puts JSON.dump(accounts)
|
26
29
|
else
|
27
|
-
|
30
|
+
Luca::Jp::Util.eltax_config('reports').each do |report|
|
31
|
+
File.open("chihouzei-#{report['jichitai_code']}#{report['jimusho_code']}.xml", 'w') { |f| f.puts(Luca::Jp::Chihouzei.range(*args).kani(report))}
|
32
|
+
end
|
28
33
|
end
|
29
34
|
end
|
30
35
|
|
data/lib/luca/jp/aoiro.rb
CHANGED
@@ -27,6 +27,7 @@ module Luca
|
|
27
27
|
@issue_date = Date.today
|
28
28
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
29
29
|
@software = 'LucaJp'
|
30
|
+
@shinkoku_kbn = '30' # 確定申告
|
30
31
|
|
31
32
|
@税額 = 税額計算
|
32
33
|
@確定法人税額 = @税額.dig(:houjin, :kokuzei)
|
@@ -51,7 +52,8 @@ module Luca
|
|
51
52
|
else
|
52
53
|
@procedure_code = 'RHO0012'
|
53
54
|
@procedure_name = '内国法人の確定申告(青色)'
|
54
|
-
@
|
55
|
+
@form_vers = proc_version
|
56
|
+
@version = @form_vers['proc']
|
55
57
|
@都道府県民税法人税割中間納付 = prepaid_tax('1859')
|
56
58
|
@都道府県民税均等割中間納付 = prepaid_tax('185A')
|
57
59
|
@都道府県民税中間納付 = @都道府県民税法人税割中間納付 + @都道府県民税均等割中間納付
|
@@ -116,6 +118,7 @@ module Luca
|
|
116
118
|
end
|
117
119
|
|
118
120
|
def 別表一
|
121
|
+
STDERR.puts "別表一: 「決算確定の日」などの追記が必要"
|
119
122
|
render_erb(search_template('beppyo1.xml.erb'))
|
120
123
|
end
|
121
124
|
|
@@ -132,22 +135,32 @@ module Luca
|
|
132
135
|
@当期純損益 = readable(@pl_data.dig('HA'))
|
133
136
|
@法人税等 = readable(@pl_data.dig('H0'))
|
134
137
|
_, @納付事業税 = 未納事業税期中増減
|
135
|
-
|
138
|
+
@当期還付事業税 = 還付事業税
|
139
|
+
@翌期還付事業税 = 中間還付税額(確定事業税, @事業税中間納付)
|
140
|
+
@別表四調整所得 = @当期純損益 + @法人税等 - @納付事業税 - @翌期還付事業税 + @当期還付事業税
|
136
141
|
|
137
142
|
@当期還付法人税 = refund_tax('1502')
|
138
143
|
@当期還付都道府県住民税 = refund_tax('1503')
|
139
144
|
@翌期還付都道府県住民税 = 中間還付税額(@税額.dig(:kenmin, :kintou), @都道府県民税均等割中間納付) + 中間還付税額(@税額.dig(:kenmin, :houjinzei), @都道府県民税法人税割中間納付)
|
140
145
|
@当期還付市民税 = refund_tax('1505')
|
141
146
|
@翌期還付市民税 = 中間還付税額(@税額.dig(:shimin, :kintou), @市民税均等割中間納付) + 中間還付税額(@税額.dig(:shimin, :houjinzei), @市民税法人税割中間納付)
|
142
|
-
@当期還付事業税 = 還付事業税
|
143
147
|
@事業税期首残高 = 期首未納事業税 > 0 ? 期首未納事業税 : (@当期還付事業税 * -1)
|
144
|
-
@翌期還付事業税 = 中間還付税額(確定事業税, @事業税中間納付)
|
145
148
|
@仮払税金 = @翌期還付法人税 + @翌期還付都道府県住民税 + @翌期還付事業税 + @翌期還付市民税
|
146
149
|
|
147
150
|
render_erb(search_template('beppyo4.xml.erb'))
|
148
151
|
end
|
149
152
|
|
150
153
|
def 別表五一
|
154
|
+
@期首資本金 = readable(@start_balance.dig('911'))
|
155
|
+
@資本金期中減, @資本金期中増 = 純資産期中増減('911')
|
156
|
+
@期首資本準備金, @期末資本準備金 = 期首期末残高('9131')
|
157
|
+
@資本準備金期中減, @資本準備金期中増 = 純資産期中増減('9131')
|
158
|
+
@期首その他資本剰余金, @期末その他資本剰余金 = 期首期末残高('9132')
|
159
|
+
@その他資本剰余金期中減, @その他資本剰余金期中増 = 純資産期中増減('9132')
|
160
|
+
@期首自己株式, @期末自己株式 = 期首期末残高('916')
|
161
|
+
# 自己株式は負の純資産。借方集計は負の増加として認識
|
162
|
+
@自己株式期中増, @自己株式期中減 = 純資産期中増減('916').map { |t| t * -1 }
|
163
|
+
@資本金等の額期中減, @資本金等の額期中増 = 資本金等の額期中増減
|
151
164
|
render_erb(search_template('beppyo51.xml.erb'))
|
152
165
|
end
|
153
166
|
|
@@ -221,7 +234,7 @@ module Luca
|
|
221
234
|
@代表者報酬 = gaikyo('C11')
|
222
235
|
@代表者借入 = gaikyo('5121')
|
223
236
|
@概況仕入 = gaikyo('B11') + gaikyo('B12')
|
224
|
-
@概況外注費 = gaikyo('
|
237
|
+
@概況外注費 = gaikyo('C1O')
|
225
238
|
@概況人件費 = gaikyo('C11') + gaikyo('C12') + gaikyo('C13')
|
226
239
|
render_erb(search_template('gaikyo.xml.erb'))
|
227
240
|
end
|
@@ -307,7 +320,12 @@ module Luca
|
|
307
320
|
return nil if beppyo2_config('total_shares').nil?
|
308
321
|
return nil if beppyo2_config('owners').nil?
|
309
322
|
|
310
|
-
|
323
|
+
total = if beppyo2_config('own_shares').nil?
|
324
|
+
beppyo2_config('total_shares')
|
325
|
+
else
|
326
|
+
beppyo2_config('total_shares') - beppyo2_config('own_shares')
|
327
|
+
end
|
328
|
+
(別表二上位株数 * 100.0 / total).round(1)
|
311
329
|
end
|
312
330
|
|
313
331
|
def 別表二上位議決権数
|
@@ -320,13 +338,20 @@ module Luca
|
|
320
338
|
return nil if beppyo2_config('total_votes').nil?
|
321
339
|
return nil if beppyo2_config('owners').nil?
|
322
340
|
|
323
|
-
|
341
|
+
total = if beppyo2_config('no_votes').nil?
|
342
|
+
beppyo2_config('total_votes')
|
343
|
+
else
|
344
|
+
beppyo2_config('total_votes') - beppyo2_config('no_votes')
|
345
|
+
end
|
346
|
+
(別表二上位議決権数 * 100.0 / total).round(1)
|
324
347
|
end
|
325
348
|
|
326
349
|
# TODO: 特定同族会社の判定
|
327
350
|
#
|
328
351
|
def 同族会社?
|
352
|
+
return nil if it_part_config('shihon_kin').nil?
|
329
353
|
return nil if it_part_config('shihon_kin') > 100_000_000
|
354
|
+
return nil if 別表二上位議決権割合.nil? || 別表二上位株割合.nil?
|
330
355
|
|
331
356
|
return true if 別表二上位議決権割合 > 50 || 別表二上位株割合 > 50
|
332
357
|
false
|
@@ -520,6 +545,25 @@ module Luca
|
|
520
545
|
readable((@bs_data[code] || 0) * -1)
|
521
546
|
end
|
522
547
|
|
548
|
+
def 別表五一期首資本
|
549
|
+
readable(@start_balance.dig('911')||0 + @start_balance.dig('913')||0)
|
550
|
+
end
|
551
|
+
|
552
|
+
# 資本金、資本準備金、その他資本剰余金、自己株式(控除)の合算
|
553
|
+
#
|
554
|
+
def 資本金等の額期中増減
|
555
|
+
inc = ['911', '913'].map do |code|
|
556
|
+
credit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) || 0
|
557
|
+
end
|
558
|
+
inc << (debit_amount('916', @start_date.year, @start_date.month, @end_date.year, @end_date.month)||0) * -1
|
559
|
+
dec = ['911', '913'].map do |code|
|
560
|
+
debit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) || 0
|
561
|
+
end
|
562
|
+
dec << (credit_amount('916', @start_date.year, @start_date.month, @end_date.year, @end_date.month)||0) * -1
|
563
|
+
|
564
|
+
[readable(dec.sum), readable(inc.sum)]
|
565
|
+
end
|
566
|
+
|
523
567
|
def 別表七各期青色損失
|
524
568
|
tags = @繰越損失管理.records
|
525
569
|
.filter { |record| record['start_date'] > @end_date.prev_year(10) && record['end_date'] < @start_date }
|
@@ -543,22 +587,6 @@ module Luca
|
|
543
587
|
tags.compact.join("\n")
|
544
588
|
end
|
545
589
|
|
546
|
-
def 期首資本金
|
547
|
-
readable(@start_balance.dig('911')) || 0
|
548
|
-
end
|
549
|
-
|
550
|
-
def 期末資本金
|
551
|
-
readable(@bs_data.dig('911')) || 0
|
552
|
-
end
|
553
|
-
|
554
|
-
def 別表五一期首資本
|
555
|
-
期首資本金
|
556
|
-
end
|
557
|
-
|
558
|
-
def 別表五一期末資本
|
559
|
-
期末資本金
|
560
|
-
end
|
561
|
-
|
562
590
|
def 期首未納消費税
|
563
591
|
readable(@start_balance.dig('516')) || 0
|
564
592
|
end
|
@@ -575,10 +603,10 @@ module Luca
|
|
575
603
|
|
576
604
|
def 概況源泉徴収種類
|
577
605
|
tags = []
|
578
|
-
if credit_count('5191', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
606
|
+
if credit_count('5191', @start_date.year, @start_date.month, @end_date.year, @end_date.month) > 0
|
579
607
|
tags << render_attr('IAF03100', '<kubun_CD>1</kubun_CD>')
|
580
608
|
end
|
581
|
-
if credit_count('5193', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
609
|
+
if credit_count('5193', @start_date.year, @start_date.month, @end_date.year, @end_date.month) > 0
|
582
610
|
tags << render_attr('IAF03200', '<kubun_CD>1</kubun_CD>')
|
583
611
|
elsif credit_count('5194', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
584
612
|
tags << render_attr('IAF03200', '<kubun_CD>1</kubun_CD>')
|
@@ -603,7 +631,7 @@ module Luca
|
|
603
631
|
end
|
604
632
|
|
605
633
|
def 概況月外注費(idx)
|
606
|
-
gaikyo_month(idx, '
|
634
|
+
gaikyo_month(idx, 'C1O')
|
607
635
|
end
|
608
636
|
|
609
637
|
def 概況月源泉徴収(idx)
|
@@ -636,6 +664,14 @@ module Luca
|
|
636
664
|
readable(@monthly.dig(index, code) || 0)
|
637
665
|
end
|
638
666
|
|
667
|
+
def proc_version
|
668
|
+
if @end_date >= Date.parse('2021-4-1')
|
669
|
+
{ 'proc' => '21.0.2', 'HOA112' => '3.1', 'HOA116' => '2.0', 'HOA420' => '20.0', 'HOA522' => '7.0', 'HOK010' => '6.0' }
|
670
|
+
else
|
671
|
+
{ 'proc' => '20.0.2', 'HOA112' => '2.0', 'HOA116' => '1.0', 'HOA420' => '19.0', 'HOA522' => '6.0', 'HOK010' => '5.0' }
|
672
|
+
end
|
673
|
+
end
|
674
|
+
|
639
675
|
def lib_path
|
640
676
|
__dir__
|
641
677
|
end
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -18,20 +18,17 @@ module Luca
|
|
18
18
|
@dirname = 'journals'
|
19
19
|
@record_type = 'raw'
|
20
20
|
|
21
|
-
def kani(export: false)
|
21
|
+
def kani(report_cfg, export: false)
|
22
22
|
set_pl(4)
|
23
23
|
set_bs(4)
|
24
24
|
@issue_date = Date.today
|
25
|
-
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
26
25
|
@software = 'LucaJp'
|
27
|
-
@
|
28
|
-
@
|
29
|
-
@app_version = eltax_config('app_version')
|
26
|
+
@report_category = report_cfg['type']
|
27
|
+
@employee = report_cfg['employee'] || 1
|
30
28
|
|
31
29
|
@税額 = 税額計算
|
32
30
|
@均等割 = @税額.dig(:kenmin, :kintou)
|
33
|
-
|
34
|
-
@確定法人税割 = (@税額.dig(:kenmin, :houjinzei) / 100).floor * 100
|
31
|
+
@確定法人税割 = @税額.dig(:kenmin, :houjinzei)
|
35
32
|
@地方特別法人事業税中間納付 = prepaid_tax('1854')
|
36
33
|
@所得割中間納付 = prepaid_tax('1855')
|
37
34
|
@法人税割中間納付 = prepaid_tax('1859')
|
@@ -61,19 +58,42 @@ module Luca
|
|
61
58
|
}
|
62
59
|
}
|
63
60
|
else
|
61
|
+
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
62
|
+
@form_vers = proc_version
|
63
|
+
@jichitai_code = report_cfg['jichitai_code']
|
64
|
+
@jimusho_code = report_cfg['jimusho_code']
|
65
|
+
@jimusho_name = report_cfg['jimusho_name']
|
66
|
+
@kanri_bango = report_cfg['x_houjin_bango']
|
67
|
+
@app_version = report_cfg['app_version']
|
68
|
+
@address = report_cfg['address'] || it_part_config('nozeisha_adr')
|
64
69
|
@procedure_code = 'R0102100'
|
65
70
|
@procedure_name = '法人都道府県民税・事業税・特別法人事業税又は地方法人特別税 確定申告'
|
66
|
-
@form_sec =
|
71
|
+
@form_sec = case @report_category
|
72
|
+
when 'prefecture'
|
73
|
+
["R0102AA#{@form_vers['R0102AA']}", 別表九フォーム]
|
74
|
+
.compact.map{ |c| form_attr(c) }.join('')
|
75
|
+
when '23ku'
|
76
|
+
["R0102AA#{@form_vers['R0102AA']}", "R0102AG120", 別表九フォーム]
|
77
|
+
.compact.map{ |c| form_attr(c) }.join('')
|
78
|
+
when 'city'
|
79
|
+
# TODO: implement
|
80
|
+
end
|
67
81
|
@user_inf = render_erb(search_template('eltax-userinf.xml.erb'))
|
68
|
-
@form_data =
|
82
|
+
@form_data = case @report_category
|
83
|
+
when 'prefecture'
|
84
|
+
[第六号, 別表九].compact.join("\n")
|
85
|
+
when '23ku'
|
86
|
+
[第六号, 別表四三, 別表九].compact.join("\n")
|
87
|
+
when 'city'
|
88
|
+
# TODO: implement
|
89
|
+
end
|
69
90
|
render_erb(search_template('eltax.xml.erb'))
|
70
91
|
end
|
71
92
|
end
|
72
93
|
|
73
|
-
def export_json
|
74
|
-
records = kani(export: true)
|
75
|
-
|
76
|
-
item = {}
|
94
|
+
def export_json(report_cfg)
|
95
|
+
records = kani(report_cfg, export: true)
|
96
|
+
{}.tap do |item|
|
77
97
|
item['date'] = @end_date
|
78
98
|
item['debit'] = []
|
79
99
|
item['credit'] = []
|
@@ -100,13 +120,12 @@ module Luca
|
|
100
120
|
item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0
|
101
121
|
end
|
102
122
|
item['x-editor'] = 'LucaJp'
|
103
|
-
res << item
|
104
|
-
puts JSON.dump(res)
|
105
123
|
end
|
106
124
|
end
|
107
125
|
|
108
126
|
def 第六号
|
109
|
-
@資本金準備金 =
|
127
|
+
@資本金準備金 = readable(['911', '9131'].map { |cd| @bs_data.dig(cd) }.compact.sum)
|
128
|
+
STDERR.puts "第六号様式: 「決算確定の日」「国外関連者」などの追記が必要"
|
110
129
|
render_erb(search_template('el-no6.xml.erb'))
|
111
130
|
end
|
112
131
|
|
@@ -118,7 +137,7 @@ module Luca
|
|
118
137
|
def 別表九フォーム
|
119
138
|
return nil if @繰越損失管理.records.length == 0
|
120
139
|
|
121
|
-
'
|
140
|
+
"R0102AM#{@form_vers['R0102AM']}"
|
122
141
|
end
|
123
142
|
|
124
143
|
def 別表九
|
@@ -206,6 +225,14 @@ module Luca
|
|
206
225
|
end
|
207
226
|
end
|
208
227
|
|
228
|
+
def proc_version
|
229
|
+
if @start_date >= Date.parse('2020-4-1')
|
230
|
+
{ 'R0102AA' => '200', 'R0102AM' => '200' }
|
231
|
+
else
|
232
|
+
{ 'R0102AA' => '190', 'R0102AM' => '190' }
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
209
236
|
def lib_path
|
210
237
|
__dir__
|
211
238
|
end
|
data/lib/luca/jp/common.rb
CHANGED
@@ -74,11 +74,12 @@ module Luca
|
|
74
74
|
|
75
75
|
# 税引前当期利益をもとに計算
|
76
76
|
# 消費税を租税公課に計上している場合、控除済みの金額
|
77
|
-
#
|
77
|
+
# 事業税は仮払経理の場合にも納付時損金/還付時益金
|
78
78
|
#
|
79
79
|
def 当期所得金額
|
80
80
|
_, 納付事業税 = 未納事業税期中増減
|
81
|
-
|
81
|
+
事業税中間納付 = prepaid_tax('1854') + prepaid_tax('1855') + prepaid_tax('1856') + prepaid_tax('1857') + prepaid_tax('1858')
|
82
|
+
LucaSupport::Code.readable(@pl_data.dig('GA') - 納付事業税 - 事業税中間納付 + 還付事業税)
|
82
83
|
end
|
83
84
|
|
84
85
|
# -----------------------------------------------------
|
@@ -112,24 +113,56 @@ module Luca
|
|
112
113
|
# -----------------------------------------------------
|
113
114
|
|
114
115
|
def 均等割
|
115
|
-
if
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
116
|
+
tax = if 地方税資本金等の額 <= 10_000_000
|
117
|
+
city = @employee > 50 ? 120_000 : 50_000
|
118
|
+
[20_000, city]
|
119
|
+
elsif 地方税資本金等の額 <= 100_000_000
|
120
|
+
city = @employee > 50 ? 150_000 : 130_000
|
121
|
+
[50_000, city]
|
122
|
+
elsif 地方税資本金等の額 <= 1_000_000_000
|
123
|
+
city = @employee > 50 ? 400_000 : 160_000
|
124
|
+
[130_000, city]
|
125
|
+
elsif 地方税資本金等の額 <= 5_000_000_000
|
126
|
+
city = @employee > 50 ? 1_750_000 : 410_000
|
127
|
+
[540_000, city]
|
128
|
+
else
|
129
|
+
city = @employee > 50 ? 3_000_000 : 410_000
|
130
|
+
[800_000, city]
|
131
|
+
end
|
132
|
+
tokyo23? ? [tax.sum, 0] : tax
|
120
133
|
end
|
121
134
|
|
135
|
+
# 100円未満切り捨て
|
122
136
|
def 法人税割(法人税 = nil)
|
123
137
|
課税標準 = if 法人税
|
124
138
|
(法人税 / 1000).floor * 1000
|
125
139
|
else
|
126
|
-
|
140
|
+
法人税割課税標準
|
127
141
|
end
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
142
|
+
税率 = 法人税割税率(課税標準)
|
143
|
+
[
|
144
|
+
(課税標準 * 税率[0] / 100 / 100).floor * 100,
|
145
|
+
(課税標準 * 税率[1] / 100 / 100).floor * 100
|
146
|
+
]
|
147
|
+
end
|
148
|
+
|
149
|
+
def 法人税割税率(法人税 = nil)
|
150
|
+
課税標準 = if 法人税
|
151
|
+
(法人税 / 1000).floor * 1000
|
152
|
+
else
|
153
|
+
法人税割課税標準
|
154
|
+
end
|
155
|
+
rate = if 期末資本金 > 100_000_000 || 課税標準 > 10_000_000
|
156
|
+
[2.0, 8.4]
|
157
|
+
else
|
158
|
+
[1.0, 6.0]
|
159
|
+
end
|
160
|
+
tokyo23? ? [rate.sum, 0] : rate
|
161
|
+
end
|
162
|
+
|
163
|
+
# 100円未満切り捨て
|
164
|
+
def 所得割400万以下(所得 = nil)
|
165
|
+
((所得400万以下(所得) * 所得割税率400万以下(所得) / 100) / 100).floor * 100
|
133
166
|
end
|
134
167
|
|
135
168
|
def 所得400万以下(所得 = nil)
|
@@ -143,8 +176,18 @@ module Luca
|
|
143
176
|
end
|
144
177
|
end
|
145
178
|
|
146
|
-
def
|
147
|
-
|
179
|
+
def 所得割税率400万以下(所得 = nil)
|
180
|
+
所得 ||= 所得金額
|
181
|
+
if 期末資本金 > 100_000_000 || 所得 > 25_000_000
|
182
|
+
軽減税率不適用法人 ? 7.48 : 3.75
|
183
|
+
else
|
184
|
+
軽減税率不適用法人 ? 7.0 : 3.5
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
# 100円未満切り捨て
|
189
|
+
def 所得割800万以下(所得 = 0)
|
190
|
+
((所得800万以下(所得) * 所得割税率800万以下(所得) / 100) / 100).floor * 100
|
148
191
|
end
|
149
192
|
|
150
193
|
def 所得800万以下(所得 = nil)
|
@@ -160,8 +203,18 @@ module Luca
|
|
160
203
|
end
|
161
204
|
end
|
162
205
|
|
163
|
-
def
|
164
|
-
|
206
|
+
def 所得割税率800万以下(所得 = nil)
|
207
|
+
所得 ||= 所得金額
|
208
|
+
if 期末資本金 > 100_000_000 || 所得 > 25_000_000
|
209
|
+
軽減税率不適用法人 ? 7.48 : 5.665
|
210
|
+
else
|
211
|
+
軽減税率不適用法人 ? 7.0 : 5.3
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
# 100円未満切り捨て
|
216
|
+
def 所得割800万超(所得 = 0)
|
217
|
+
((所得800万超(所得) * 所得割税率800万超(所得) / 100) / 100).floor * 100
|
165
218
|
end
|
166
219
|
|
167
220
|
def 所得800万超(所得 = nil)
|
@@ -175,10 +228,16 @@ module Luca
|
|
175
228
|
end
|
176
229
|
end
|
177
230
|
|
178
|
-
def
|
179
|
-
|
231
|
+
def 所得割税率800万超(所得 = nil)
|
232
|
+
所得 ||= 所得金額
|
233
|
+
if 期末資本金 > 100_000_000 || 所得 > 25_000_000
|
234
|
+
7.48
|
235
|
+
else
|
236
|
+
7.0
|
237
|
+
end
|
180
238
|
end
|
181
239
|
|
240
|
+
# 100円未満切り捨て
|
182
241
|
def 地方法人特別税(事業税)
|
183
242
|
((事業税 * 37 / 100) / 100).floor * 100
|
184
243
|
end
|
@@ -224,6 +283,25 @@ module Luca
|
|
224
283
|
def 地方消費税中間納付額
|
225
284
|
prepaid_tax('185C')
|
226
285
|
end
|
286
|
+
|
287
|
+
# -----------------------------------------------------
|
288
|
+
# :section: 外形標準の計算
|
289
|
+
# -----------------------------------------------------
|
290
|
+
def 資本金等の額
|
291
|
+
readable(['911', '913', '916'].map { |cd| @bs_data.dig(cd) }.compact.sum)
|
292
|
+
end
|
293
|
+
|
294
|
+
def 地方税資本金等の額
|
295
|
+
[資本金等の額, readable(['911', '9131'].map { |cd| @bs_data.dig(cd) }.compact.sum)].max
|
296
|
+
end
|
297
|
+
|
298
|
+
def 軽減税率不適用法人
|
299
|
+
期末資本金 > 10_000_000 && eltax_config('no_keigen')
|
300
|
+
end
|
301
|
+
|
302
|
+
def 期末資本金
|
303
|
+
readable(@bs_data.dig('911'))
|
304
|
+
end
|
227
305
|
end
|
228
306
|
end
|
229
307
|
end
|
data/lib/luca/jp/it_part.rb
CHANGED
@@ -24,7 +24,7 @@ module Luca
|
|
24
24
|
entries << %Q(<TETSUZUKI ID="TETSUZUKI"><procedure_CD>#{@procedure_code}</procedure_CD><procedure_NM>#{@procedure_name}</procedure_NM></TETSUZUKI>)
|
25
25
|
entries.concat([jigyo_nendo_from, jigyo_nendo_to, kazei_kikan_from, kazei_kikan_to])
|
26
26
|
entries << render_it_tag('keiri_sekininsha')
|
27
|
-
entries <<
|
27
|
+
entries << %Q(<SHINKOKU_KBN ID="SHINKOKU_KBN"><kubun_CD>#{@shinkoku_kbn}</kubun_CD></SHINKOKU_KBN>)
|
28
28
|
entries.concat(['eltax_id'].map{ |key| render_it_tag(key) })
|
29
29
|
entries << '</IT>'
|
30
30
|
entries.compact.join("\n")
|
data/lib/luca/jp/syouhizei.rb
CHANGED
@@ -27,6 +27,7 @@ module Luca
|
|
27
27
|
@issue_date = Date.today
|
28
28
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
29
29
|
@software = 'LucaJp'
|
30
|
+
@shinkoku_kbn = '1' # 確定申告
|
30
31
|
税率 = BigDecimal('7.8') # percent
|
31
32
|
地方税率 = BigDecimal('2.2')
|
32
33
|
|
@@ -52,7 +53,8 @@ module Luca
|
|
52
53
|
else
|
53
54
|
@procedure_code = 'RSH0040'
|
54
55
|
@procedure_name = '消費税及び地方消費税申告(簡易課税・法人)'
|
55
|
-
@
|
56
|
+
@form_vers = proc_version
|
57
|
+
@version = @form_vers['proc']
|
56
58
|
@form_sec = ['SHA020', 'SHB047', 'SHB067'].map{ |c| form_rdf(c) }.join('')
|
57
59
|
@it = it_part
|
58
60
|
@form_data = [申告書簡易課税, 付表四の三, 付表五の三].join("\n")
|
@@ -142,6 +144,14 @@ module Luca
|
|
142
144
|
render_attr(tags[0], [amount, share].join(''))
|
143
145
|
end
|
144
146
|
|
147
|
+
def proc_version
|
148
|
+
if @end_date >= Date.parse('2021-4-1')
|
149
|
+
{ 'proc' => '20.0.1', 'SHA020' => '7.1' }
|
150
|
+
else
|
151
|
+
{ 'proc' => '20.0.0', 'SHA020' => '7.0' }
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
145
155
|
def lib_path
|
146
156
|
__dir__
|
147
157
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<HOA116 page="1" VR="
|
1
|
+
<HOA116 page="1" VR="<%= @form_vers['HOA116'] %>" id="HOA116" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
2
|
|
3
3
|
<QHA00000><QHA00010>
|
4
4
|
<QHA00020 IDREF="JIGYO_NENDO_FROM"/>
|
@@ -24,7 +24,9 @@
|
|
24
24
|
<QHC00000>
|
25
25
|
<%= render_attr('QHC00010', @地方法人税課税標準) %>
|
26
26
|
<QHC00030>
|
27
|
-
|
27
|
+
<% if @form_vers['HOA116'] == '1.0' %>
|
28
|
+
<QHC00040><kubun_CD>2</kubun_CD></QHC00040><%# 10.3% %>
|
29
|
+
<% end %>
|
28
30
|
<%= render_attr('QHC00050', 地方法人税額(@地方法人税課税標準)) %>
|
29
31
|
</QHC00030>
|
30
32
|
</QHC00000>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<HOA112 page="1" VR="
|
1
|
+
<HOA112 page="1" VR="<%= @form_vers['HOA112'] %>" id="HOA112" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
2
|
<BGA00000>
|
3
3
|
<BGA00010 IDREF="TEISYUTSU_DAY"/>
|
4
4
|
<BGA00020 IDREF="ZEIMUSHO"/>
|
@@ -7,10 +7,12 @@
|
|
7
7
|
<VAA00040 IDREF="NOZEISHA_NM"/>
|
8
8
|
</VAA00000>
|
9
9
|
<VAB00000>
|
10
|
+
<%= render_attr('VAB00005', beppyo2_config('own_shares')) %>
|
10
11
|
<%= render_attr('VAB00010', beppyo2_config('total_shares')) %>
|
11
12
|
<%= render_attr('VAB00020', 別表二上位株数) %>
|
12
13
|
<%= render_attr('VAB00030', 別表二上位株割合) %>
|
13
14
|
<VAB00040>
|
15
|
+
<%= render_attr('VAB00050', beppyo2_config('no_votes')) %>
|
14
16
|
<%= render_attr('VAB00060', beppyo2_config('total_votes')) %>
|
15
17
|
</VAB00040>
|
16
18
|
<%= render_attr('VAB00070', 別表二上位議決権数) %>
|