luca-jp 0.19.1 → 0.20.1
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 +16 -7
- data/lib/luca/jp/aoiro.rb +27 -14
- data/lib/luca/jp/chihouzei.rb +10 -5
- data/lib/luca/jp/common.rb +12 -9
- data/lib/luca/jp/sonshitsu.rb +9 -5
- data/lib/luca/jp/syouhizei.rb +3 -1
- data/lib/luca/jp/templates/beppyo1.xml.erb +2 -1
- data/lib/luca/jp/templates/chidai-meisai.xml.erb +17 -12
- data/lib/luca/jp/templates/el-no6.xml.erb +17 -10
- data/lib/luca/jp/templates/gaikyo.xml.erb +11 -4
- data/lib/luca/jp/templates/kaikake-meisai.xml.erb +6 -1
- data/lib/luca/jp/templates/kariuke-meisai.xml.erb +1 -1
- data/lib/luca/jp/uchiwake.rb +6 -1
- data/lib/luca/jp/urikake.rb +15 -5
- data/lib/luca/jp/util.rb +2 -0
- data/lib/luca/jp/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86f9348cd5fe742fe66e493c0381f53847681f534757b6b8e708a3e271a5929b
|
4
|
+
data.tar.gz: 30596a7a821462a685f32ea8ebbccf8db802c68ccad60c11d963417a47c67014
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '091a70016c17875a79e917a5c7d5e0001852ab6e64c00e0f1d372a6129f17de2deec91116cdcd73c5f22a6b59ae6eeb6ff9e55799788f0230f28cacf2b69c78e'
|
7
|
+
data.tar.gz: 41f7c60183071e68a1788f928bd3badf970eecb17da8e7dadba8b1556a6dac64b56e4517d49663579998e8dab637a5a23a23527bc5f45b07ca870e11731eb994
|
data/exe/luca-jp
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
|
4
4
|
require 'optparse'
|
5
5
|
require 'luca/jp'
|
6
|
-
require 'luca_salary/jp_payreport'
|
7
6
|
require 'luca_cmd'
|
7
|
+
require 'luca_salary/jp_payreport'
|
8
8
|
require 'luca_support/const'
|
9
9
|
require 'yaml'
|
10
10
|
|
@@ -24,7 +24,7 @@ class LucaCmd
|
|
24
24
|
if params[:export]
|
25
25
|
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).export_json(ext_config: ext_config)
|
26
26
|
else
|
27
|
-
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).kani(ext_config: ext_config, no_xbrl: params[:noxbrl])
|
27
|
+
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).kani(ext_config: ext_config, no_xbrl: params[:noxbrl], kessanbi: params[:kessanbi])
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -37,7 +37,9 @@ class LucaCmd
|
|
37
37
|
puts JSON.dump(accounts)
|
38
38
|
else
|
39
39
|
Luca::Jp::Util.eltax_config('reports').each do |report|
|
40
|
-
File.open("chihouzei-#{report['jichitai_code']}#{report['jimusho_code']}.xml", 'w')
|
40
|
+
File.open("chihouzei-#{report['jichitai_code']}#{report['jimusho_code']}.xml", 'w') do |f|
|
41
|
+
f.puts(Luca::Jp::Chihouzei.range(*auto_range(args, params)).kani(report, ext_config: ext_config, kessanbi: params[:kessanbi]))
|
42
|
+
end
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
@@ -56,9 +58,14 @@ class LucaCmd
|
|
56
58
|
r = LucaBook::Util.current_fy(date, to: date)
|
57
59
|
[r[0].year, r[0].month, r[1].year, r[1].month]
|
58
60
|
when 0
|
59
|
-
|
60
|
-
|
61
|
-
|
61
|
+
if params[:kessanbi]
|
62
|
+
r = LucaBook::Util.previous_fy(params[:kessanbi])
|
63
|
+
[r[0].year, r[0].month, r[1].year, r[1].month]
|
64
|
+
else
|
65
|
+
date = params[:lastyear] ? Date.today.prev_year : Date.today
|
66
|
+
r = LucaBook::Util.current_fy(date)
|
67
|
+
[r[0].year, r[0].month, r[1].year, r[1].month]
|
68
|
+
end
|
62
69
|
end
|
63
70
|
end
|
64
71
|
end
|
@@ -81,6 +88,7 @@ when 'h', /hou?jinzei/
|
|
81
88
|
opt.banner = 'Usage: luca-jp h|houjinzei [options] [yyyy mm yyyy mm]'
|
82
89
|
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
83
90
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
91
|
+
opt.on('--kessan VAL', 'settlement date') { |v| params[:kessanbi] = Date.parse(v) }
|
84
92
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
85
93
|
opt.on('--no-xbrl', 'skip XBRL statement') { |_v| params[:noxbrl] = true }
|
86
94
|
args = opt.parse!(ARGV)
|
@@ -103,6 +111,7 @@ when 'c', /chihou?zei/
|
|
103
111
|
opt.banner = 'Usage: luca-jp c|chihouzei [options] [yyyy mm yyyy mm]'
|
104
112
|
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
105
113
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
114
|
+
opt.on('--kessan VAL', 'settlement date') { |v| params[:kessanbi] = Date.parse(v) }
|
106
115
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
107
116
|
args = opt.parse!(ARGV)
|
108
117
|
LucaCmd.check_dir('journals', ext_conf: EXT_CONF) do
|
@@ -112,7 +121,7 @@ when 'c', /chihou?zei/
|
|
112
121
|
when /urikake/
|
113
122
|
OptionParser.new do |opt|
|
114
123
|
opt.banner = 'Usage: luca-jp urikake [options] yyyy mm'
|
115
|
-
opt.on('--utf8', 'UTF-8でファイル生成') { |_v| params[:encode] = 'UTF-8' }
|
124
|
+
opt.on('--utf8', '確認用にUTF-8でファイル生成') { |_v| params[:encode] = 'UTF-8' }
|
116
125
|
args = opt.parse!(ARGV)
|
117
126
|
LucaCmd.check_dir('invoices', ext_conf: EXT_CONF) do
|
118
127
|
LucaCmd.urikake(args, params)
|
data/lib/luca/jp/aoiro.rb
CHANGED
@@ -20,10 +20,11 @@ module Luca
|
|
20
20
|
@dirname = 'journals'
|
21
21
|
@record_type = 'raw'
|
22
22
|
|
23
|
-
def kani(ext_config: nil, export: false, no_xbrl: false)
|
23
|
+
def kani(ext_config: nil, export: false, no_xbrl: false, kessanbi: nil)
|
24
24
|
set_pl(4)
|
25
25
|
set_bs(4)
|
26
26
|
@issue_date = Date.today
|
27
|
+
@kessanbi = kessanbi
|
27
28
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
28
29
|
@software = 'LucaJp'
|
29
30
|
@shinkoku_kbn = '30' # 確定申告
|
@@ -50,6 +51,7 @@ module Luca
|
|
50
51
|
@法人税未払 = [@差引所得に対する法人税額 - @法人税中間納付, 0].max
|
51
52
|
|
52
53
|
if export
|
54
|
+
@繰越損失管理.save unless @繰越損失管理.nil?
|
53
55
|
{
|
54
56
|
kokuzei: {
|
55
57
|
zeigaku: @確定法人税額,
|
@@ -161,7 +163,7 @@ module Luca
|
|
161
163
|
end
|
162
164
|
|
163
165
|
def 別表一
|
164
|
-
STDERR.puts "別表一:
|
166
|
+
STDERR.puts "別表一: 「決算確定の日」などの追記、または --kessan オプション指定が必要" if @kessanbi.nil?
|
165
167
|
render_erb(search_template('beppyo1.xml.erb'))
|
166
168
|
end
|
167
169
|
|
@@ -331,19 +333,16 @@ module Luca
|
|
331
333
|
end
|
332
334
|
|
333
335
|
def 適用額明細フォーム
|
334
|
-
return nil if
|
336
|
+
return nil if 中小企業の軽減税率対象所得(所得金額) == 0
|
335
337
|
|
336
338
|
'HOE990'
|
337
339
|
end
|
338
340
|
|
339
341
|
def 適用額明細
|
340
|
-
|
342
|
+
unless 軽減税率不適用法人
|
341
343
|
STDERR.puts "適用額明細: 必要に応じて「少額減価償却資産の損金算入」(67条の5第1項, 00277。別表16[7])の確認が必要"
|
342
344
|
end
|
343
|
-
|
344
|
-
STDERR.puts "別表一:適用額明細書の有無の確認が必要"
|
345
|
-
return nil
|
346
|
-
end
|
345
|
+
return nil if 適用額明細フォーム.nil?
|
347
346
|
|
348
347
|
render_erb(search_template('tekiyougaku.xml.erb'))
|
349
348
|
end
|
@@ -354,7 +353,8 @@ module Luca
|
|
354
353
|
@概況給料 = gaikyo('C12')
|
355
354
|
@概況交際費 = gaikyo('C1B')
|
356
355
|
@概況減価償却 = gaikyo('C1P')
|
357
|
-
|
356
|
+
chidai_accounts = @form_vers['HOK010'] >= '6.0' ? ['C1E'] : ['C1E', 'C1I']
|
357
|
+
@概況地代租税 = chidai_accounts.map { |k| gaikyo(k) }.compact.sum
|
358
358
|
@概況営業損益 = gaikyo('CA')
|
359
359
|
@概況特別利益 = gaikyo('F0')
|
360
360
|
@概況特別損失 = gaikyo('G0')
|
@@ -965,14 +965,27 @@ module Luca
|
|
965
965
|
end
|
966
966
|
|
967
967
|
def proc_version
|
968
|
-
|
969
|
-
|
968
|
+
init_version = {
|
969
|
+
'HOA201' => '4.0',
|
970
|
+
'HOA511' => '13.0',
|
971
|
+
'HOB710' => '11.0',
|
972
|
+
'HOE200' => '13.0',
|
973
|
+
'HOE990' => '5.0',
|
974
|
+
'HOI090' => '4.0',
|
975
|
+
'HOI100' => '5.0',
|
976
|
+
'HOI150' => '3.0',
|
977
|
+
'HOI160' => '3.0',
|
978
|
+
}
|
979
|
+
if @end_date >= Date.parse('2024-4-1')
|
980
|
+
{ 'proc' => '24.0.2', 'HOA112' => '6.0', 'HOA116' => '4.0', 'HOA201' => '5.0', 'HOA420' => '23.0', 'HOA511' => '15.0', 'HOA522' => '9.0', 'HOB710' => '13.0', 'HOE200' => '14.0', 'HOE990' => '7.0', 'HOI090' => '5.0', 'HOI100' => '6.0', 'HOI150' => '4.0', 'HOI160' => '4.0', 'HOK010' => '7.0' }
|
981
|
+
elsif @end_date >= Date.parse('2023-4-1')
|
982
|
+
init_version.merge({ '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' })
|
970
983
|
elsif @end_date >= Date.parse('2022-4-1')
|
971
|
-
{ 'proc' => '22.0.3', 'HOA112' => '4.0', 'HOA116' => '3.0', '
|
984
|
+
init_version.merge({ 'proc' => '22.0.3', 'HOA112' => '4.0', 'HOA116' => '3.0', 'HOA420' => '21.0', 'HOA511' => '14.0', 'HOA522' => '8.0', 'HOB710' => '12.0', 'HOE200' => '14.0', 'HOE990' => '6.1', 'HOK010' => '6.0' })
|
972
985
|
elsif @end_date >= Date.parse('2021-4-1')
|
973
|
-
{ 'proc' => '21.0.2', 'HOA112' => '3.1', 'HOA116' => '2.0', '
|
986
|
+
init_version.merge({ 'proc' => '21.0.2', 'HOA112' => '3.1', 'HOA116' => '2.0', 'HOA420' => '20.0', 'HOA522' => '7.0', 'HOK010' => '6.0' })
|
974
987
|
else
|
975
|
-
{ 'proc' => '20.0.2', 'HOA112' => '2.0', 'HOA116' => '1.0', '
|
988
|
+
init_version.merge({ 'proc' => '20.0.2', 'HOA112' => '2.0', 'HOA116' => '1.0', 'HOA420' => '19.0', 'HOA522' => '6.0', 'HOK010' => '5.0' })
|
976
989
|
end
|
977
990
|
end
|
978
991
|
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -17,10 +17,11 @@ module Luca
|
|
17
17
|
@dirname = 'journals'
|
18
18
|
@record_type = 'raw'
|
19
19
|
|
20
|
-
def kani(report_cfg, export: false, ext_config: nil)
|
20
|
+
def kani(report_cfg, export: false, ext_config: nil, kessanbi: nil)
|
21
21
|
set_pl(4)
|
22
22
|
set_bs(4)
|
23
23
|
@issue_date = Date.today
|
24
|
+
@kessanbi = kessanbi
|
24
25
|
@software = 'LucaJp'
|
25
26
|
@jimusho_name = report_cfg['jimusho_name']
|
26
27
|
@report_category = report_cfg['type']
|
@@ -147,7 +148,7 @@ module Luca
|
|
147
148
|
|
148
149
|
def 第六号
|
149
150
|
@資本金準備金 = readable(['911', '9131'].map { |cd| @bs_data.dig(cd) }.compact.sum)
|
150
|
-
STDERR.puts "第六号様式:
|
151
|
+
STDERR.puts "第六号様式: #{ %q(「決算確定の日」などの追記、または --kessan オプション指定が必要。) if @kessanbi.nil? }「国外関連者」の確認が必要"
|
151
152
|
render_erb(search_template('el-no6.xml.erb'))
|
152
153
|
end
|
153
154
|
|
@@ -199,8 +200,8 @@ module Luca
|
|
199
200
|
next if deduction == 0 && record['amount'] == 0
|
200
201
|
|
201
202
|
%Q(<AMB00200>
|
202
|
-
|
203
|
-
|
203
|
+
<AMB00210>#{etax_date(record['start_date'])}</AMB00210>
|
204
|
+
<AMB00220>#{etax_date(record['end_date'])}</AMB00220>
|
204
205
|
<AMB00225>1</AMB00225>
|
205
206
|
#{render_attr('AMB00230', deduction + record['amount'])}
|
206
207
|
#{render_attr('AMB00240', deduction)}
|
@@ -268,7 +269,11 @@ module Luca
|
|
268
269
|
end
|
269
270
|
|
270
271
|
def proc_version
|
271
|
-
if @
|
272
|
+
if @start_date >= Date.parse('2025-4-1')
|
273
|
+
{ 'R0102AA' => '250', 'R0102AG' => '211', 'R0102AM' => '240' }
|
274
|
+
elsif @end_date >= Date.parse('2024-4-1')
|
275
|
+
{ 'R0102AA' => '240', 'R0102AG' => '211', 'R0102AM' => '240' }
|
276
|
+
elsif @end_date >= Date.parse('2022-4-1')
|
272
277
|
{ 'R0102AA' => '211', 'R0102AG' => '211', 'R0102AM' => '211' }
|
273
278
|
elsif @start_date >= Date.parse('2020-4-1')
|
274
279
|
{ 'R0102AA' => '200', 'R0102AG' => '120','R0102AM' => '200' }
|
data/lib/luca/jp/common.rb
CHANGED
@@ -30,13 +30,13 @@ module Luca
|
|
30
30
|
# -----------------------------------------------------
|
31
31
|
|
32
32
|
def 中小企業の軽減税率対象所得(所得 = nil)
|
33
|
+
return 0 if 軽減税率不適用法人
|
34
|
+
|
33
35
|
所得 ||= 所得金額
|
34
36
|
return 0 if 所得 <= 0
|
35
37
|
|
36
38
|
if 所得 >= 8_000_000
|
37
39
|
8_000_000
|
38
|
-
elsif 所得 < 0
|
39
|
-
0
|
40
40
|
else
|
41
41
|
(所得 / 1000).floor * 1000
|
42
42
|
end
|
@@ -48,16 +48,19 @@ module Luca
|
|
48
48
|
|
49
49
|
def 中小企業の軽減税率対象を超える所得(所得 = nil)
|
50
50
|
所得 ||= 所得金額
|
51
|
-
return 0 if 所得 <=
|
51
|
+
return 0 if 所得 <= 8_000_000
|
52
52
|
|
53
|
-
|
54
|
-
0
|
55
|
-
else
|
56
|
-
((所得 - 8_000_000) / 1000).floor * 1000
|
57
|
-
end
|
53
|
+
((所得 - 8_000_000) / 1000).floor * 1000
|
58
54
|
end
|
59
55
|
|
60
56
|
def 一般区分の税額(所得 = nil)
|
57
|
+
所得 ||= 所得金額
|
58
|
+
return 0 if 所得 <= 0
|
59
|
+
|
60
|
+
if 軽減税率不適用法人
|
61
|
+
return ((所得 / 1000).floor * 1000 * 23.2 / 100).to_i
|
62
|
+
end
|
63
|
+
|
61
64
|
(中小企業の軽減税率対象を超える所得(所得) * 23.2 / 100).to_i
|
62
65
|
end
|
63
66
|
|
@@ -68,7 +71,7 @@ module Luca
|
|
68
71
|
# 繰越損失適用後の所得金額
|
69
72
|
#
|
70
73
|
def 所得金額
|
71
|
-
@繰越損失管理 = Sonshitsu.load(@end_date).update(@別表四調整所得)
|
74
|
+
@繰越損失管理 = Sonshitsu.load(@end_date).update(@別表四調整所得) if @繰越損失管理.nil?
|
72
75
|
@繰越損失管理.profit
|
73
76
|
end
|
74
77
|
|
data/lib/luca/jp/sonshitsu.rb
CHANGED
@@ -31,9 +31,9 @@ module Luca
|
|
31
31
|
# - start_date: 2020-01-01
|
32
32
|
# end_date: 2020-12-31
|
33
33
|
# increase: 1000000
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
34
|
+
# decrease:
|
35
|
+
# - date: 2021-12-31
|
36
|
+
# val: 800000
|
37
37
|
#
|
38
38
|
def self.load(this_year)
|
39
39
|
records = if File.exist?(record_file)
|
@@ -47,6 +47,10 @@ module Luca
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def save
|
50
|
+
@records.each do |record|
|
51
|
+
record.delete('amount')
|
52
|
+
record.delete('decrease') if record['decrease'].nil? || record['decrease'].empty?
|
53
|
+
end
|
50
54
|
File.open(self.class.record_file, 'w') { |f| f.puts YAML.dump(@records)}
|
51
55
|
self
|
52
56
|
end
|
@@ -83,14 +87,14 @@ module Luca
|
|
83
87
|
def net_amount
|
84
88
|
@records.each do |record|
|
85
89
|
record['amount'] = record['increase'] - past_decreased(record['decrease'])
|
86
|
-
record['decrease'] = record['decrease']&.reject { |decrease_record| decrease_record['date']
|
90
|
+
record['decrease'] = record['decrease']&.reject { |decrease_record| decrease_record['date'] >= @report_date }
|
87
91
|
end
|
88
92
|
end
|
89
93
|
|
90
94
|
def past_decreased(decrease_records)
|
91
95
|
return 0 if decrease_records.nil?
|
92
96
|
|
93
|
-
decrease_records.filter { |record| record['date']
|
97
|
+
decrease_records.filter { |record| record['date'] < @report_date }
|
94
98
|
.map { |record| record['val'] }.sum || 0
|
95
99
|
end
|
96
100
|
|
data/lib/luca/jp/syouhizei.rb
CHANGED
@@ -169,7 +169,9 @@ module Luca
|
|
169
169
|
end
|
170
170
|
|
171
171
|
def proc_version
|
172
|
-
if @end_date >= Date.parse('
|
172
|
+
if @end_date >= Date.parse('2024-4-1')
|
173
|
+
{ 'proc' => '23.2.0', 'SHA020' => '9.0' }
|
174
|
+
elsif @end_date >= Date.parse('2023-10-1')
|
173
175
|
{ 'proc' => '23.0.0', 'SHA020' => '9.0' }
|
174
176
|
elsif @end_date >= Date.parse('2021-4-1')
|
175
177
|
{ 'proc' => '20.0.1', 'SHA020' => '7.1' }
|
@@ -26,12 +26,13 @@
|
|
26
26
|
<BGA00260><kubun_CD>1</kubun_CD></BGA00260>
|
27
27
|
</BGA00210>
|
28
28
|
<%= render_attr('BGA00290', @概況売上) %>
|
29
|
-
<BGA00300><kubun_CD
|
29
|
+
<BGA00300><kubun_CD><%= 適用額明細フォーム ? "1" : "2" -%></kubun_CD></BGA00300>
|
30
30
|
<BGA00330>
|
31
31
|
<BGA00340 IDREF="JIGYO_NENDO_FROM"/>
|
32
32
|
<BGA00350 IDREF="JIGYO_NENDO_TO"/>
|
33
33
|
</BGA00330>
|
34
34
|
<BGA00360 IDREF="SHINKOKU_KBN"/>
|
35
|
+
<%= render_attr('BGA00410', etax_date(@kessanbi)) -%>
|
35
36
|
<BGA00420 IDREF="KANPU_KINYUKIKAN"/>
|
36
37
|
</BGA00000>
|
37
38
|
|
@@ -1,15 +1,20 @@
|
|
1
|
-
<HOI150 page="1" VR="
|
1
|
+
<HOI150 page="1" VR="<%= @form_vers['HOI150'] %>" id="HOI150" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
2
|
<HOB00000>
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
<% @地代家賃.values.each do |rent| %>
|
4
|
+
<HOB10000>
|
5
|
+
<%= render_attr('HOB11000', rent[:rent_type]) %>
|
6
|
+
<%= render_attr('HOB12000', rent[:rent_purpose]) %>
|
7
|
+
<%= render_attr('HOB13000', rent[:rent_address]) %>
|
8
|
+
<% if @form_vers['HOI150'] >= '4.0' && rent[:tax_id] %>
|
9
|
+
<HOB27000>
|
10
|
+
<%= render_attr('HOB27100', rent[:tax_id]) %>
|
11
|
+
</HOB27000>
|
12
|
+
<% end %>
|
13
|
+
<%= render_attr('HOB14000', rent[:name]) %>
|
14
|
+
<%= render_attr('HOB15000', rent[:address]) %>
|
15
|
+
<%= render_attr('HOB17000', rent[:amount]) %>
|
16
|
+
<%= render_attr('HOB18000', rent[:note]) %>
|
17
|
+
</HOB10000>
|
18
|
+
<% end %>
|
14
19
|
</HOB00000>
|
15
20
|
</HOI150>
|
@@ -18,12 +18,7 @@
|
|
18
18
|
<gen:mm></gen:mm>
|
19
19
|
<gen:dd></gen:dd>
|
20
20
|
</AAA00700>
|
21
|
-
|
22
|
-
<gen:era><%= gengou(@issue_date) %></gen:era>
|
23
|
-
<gen:yy><%= wareki(@issue_date) %></gen:yy>
|
24
|
-
<gen:mm><%= @issue_date.month %></gen:mm>
|
25
|
-
<gen:dd><%= @issue_date.day %></gen:dd>
|
26
|
-
</AAA00800>
|
21
|
+
<%= render_attr('AAA00800', etax_date(@issue_date)) -%>
|
27
22
|
<AAA00900 idref="ORG1_NAME"></AAA00900>
|
28
23
|
<AAA_HONTEN_ZIP idref="HONTEN_ZIP"></AAA_HONTEN_ZIP>
|
29
24
|
<AAA_HONTEN_ADDR idref="HONTEN_ADDR"></AAA_HONTEN_ADDR>
|
@@ -40,6 +35,11 @@
|
|
40
35
|
<AAA_JIGYO_NAME idref="JIGYO_NAME"></AAA_JIGYO_NAME>
|
41
36
|
<AAA_SHIHON idref="SHIHON"></AAA_SHIHON>
|
42
37
|
<AAA_SHIHON3></AAA_SHIHON3>
|
38
|
+
<% if @form_vers['R0102AA'] == '250' %>
|
39
|
+
<AAA_GASSAN></AAA_GASSAN>
|
40
|
+
<AAA_GASSAN2></AAA_GASSAN2>
|
41
|
+
<AAA_HOUJIN_KBN></AAA_HOUJIN_KBN>
|
42
|
+
<% end %>
|
43
43
|
<AAA_SHIHON4></AAA_SHIHON4>
|
44
44
|
<AAA_SHIHON2><%= 資本金等の額 %></AAA_SHIHON2>
|
45
45
|
<AAA_SHIHON5><%= @資本金準備金 %></AAA_SHIHON5>
|
@@ -161,10 +161,11 @@
|
|
161
161
|
<AAH00200><%= 中間還付税額(@確定法人税割, @法人税割中間納付) + 中間還付税額(@所得割, 事業税中間納付) + 中間還付税額(特別法人事業税(@所得割), @地方特別法人事業税中間納付) %></AAH00200>
|
162
162
|
<AAH00400><%= eltax_kouza %></AAH00400>
|
163
163
|
<AAI00100>
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
164
|
+
<% if @kessanbi -%>
|
165
|
+
<%= etax_date(@kessanbi) %>
|
166
|
+
<% else -%>
|
167
|
+
<gen:era /><gen:yy /><gen:mm /><gen:dd />
|
168
|
+
<% end -%>
|
168
169
|
</AAI00100>
|
169
170
|
<AAI00900>
|
170
171
|
<gen:era />
|
@@ -198,4 +199,10 @@
|
|
198
199
|
<AAI00800>2</AAI00800>
|
199
200
|
<AAJ_DAIRI_NAME></AAJ_DAIRI_NAME>
|
200
201
|
<AAJ_DAIRI_TEL_NUM></AAJ_DAIRI_TEL_NUM>
|
202
|
+
<% if @form_vers['R0102AA'] == '250' %>
|
203
|
+
<AAL00100></AAL00100>
|
204
|
+
<AAL00200></AAL00200>
|
205
|
+
<AAL00300></AAL00300>
|
206
|
+
<AAL00400></AAL00400>
|
207
|
+
<% end %>
|
201
208
|
</R0102AA<%= @form_vers['R0102AA'] %>>
|
@@ -69,11 +69,18 @@
|
|
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' %>
|
73
|
+
<IAE07910>
|
74
|
+
<%= render_attr('IAE07920', gaikyo_config('dencho_good') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
75
|
+
<%= render_attr('IAE07930', gaikyo_config('dencho_generic') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
76
|
+
<%= render_attr('IAE07940', gaikyo_config('dencho_scanner') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
77
|
+
</IAE07910>
|
78
|
+
<% end %>
|
72
79
|
<% if @form_vers['HOK010'] < '7.0' %>
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
80
|
+
<IAE07000>
|
81
|
+
<%= render_attr('IAE07700', gaikyo_config('data_cloud') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
82
|
+
<%= render_attr('IAE07800', gaikyo_config('data_media') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
83
|
+
<%= render_attr('IAE07900', gaikyo_config('data_server') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
77
84
|
</IAE07000>
|
78
85
|
<% end %>
|
79
86
|
</IAE00000>
|
@@ -1,7 +1,12 @@
|
|
1
|
-
<HOI090 page="1" VR="
|
1
|
+
<HOI090 page="1" VR="<%= @form_vers['HOI090'] %>" id="HOI090" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
2
|
<% @買掛金.values.each do |payable| %>
|
3
3
|
<HIB00000>
|
4
4
|
<%= render_attr('HIB00100', payable[:payable_type]) %>
|
5
|
+
<% if @form_vers['HOI090'] >= '5.0' && payable[:tax_id] -%>
|
6
|
+
<HIB00500>
|
7
|
+
<%= render_attr('HIB00510', payable[:tax_id]) %>
|
8
|
+
</HIB00500>
|
9
|
+
<% end -%>
|
5
10
|
<HIB00200>
|
6
11
|
<%= render_attr('HIB00210', payable[:name]) %>
|
7
12
|
<%= render_attr('HIB00220', payable[:address]) %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<HOI100 page="1" VR="
|
1
|
+
<HOI100 page="1" VR="<%= @form_vers['HOI100'] %>" id="HOI100" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
2
|
<HJB00000>
|
3
3
|
<HJB01000>
|
4
4
|
<%= render_attr('HJB01100', '預り金') %>
|
data/lib/luca/jp/uchiwake.rb
CHANGED
@@ -101,6 +101,7 @@ module Luca #:nodoc:
|
|
101
101
|
metadata = uchiwake_account_config(k).first
|
102
102
|
if metadata && metadata['name']
|
103
103
|
h[k][:name] = metadata['name']
|
104
|
+
h[k][:tax_id] = metadata['tax_id']&.to_s&.sub(/T/, '')
|
104
105
|
h[k][:payable_type] = self.class.dict.dig(k[0..2], :label)
|
105
106
|
h[k][:address] = metadata['address']
|
106
107
|
h[k][:note] = metadata['note']
|
@@ -118,7 +119,10 @@ module Luca #:nodoc:
|
|
118
119
|
|
119
120
|
def 仮受金内訳
|
120
121
|
@源泉給与 = readable(@bs_data.dig('5191') || 0)
|
121
|
-
@源泉報酬 =
|
122
|
+
@源泉報酬 = [
|
123
|
+
readable(@bs_data.dig('5193') || 0),
|
124
|
+
readable(@bs_data.dig('5194') || 0)
|
125
|
+
].sum
|
122
126
|
render_erb(search_template('kariuke-meisai.xml.erb'))
|
123
127
|
end
|
124
128
|
|
@@ -182,6 +186,7 @@ module Luca #:nodoc:
|
|
182
186
|
metadata = uchiwake_account_config(k).first
|
183
187
|
if metadata && metadata['name']
|
184
188
|
h[k][:name] = metadata['name']
|
189
|
+
h[k][:tax_id] = metadata['tax_id']&.to_s&.sub(/T/, '')
|
185
190
|
h[k][:address] = metadata['address']
|
186
191
|
h[k][:rent_type] = metadata['rent_type'] || '家賃'
|
187
192
|
h[k][:rent_purpose] = metadata['rent_purpose']
|
data/lib/luca/jp/urikake.rb
CHANGED
@@ -15,22 +15,32 @@ module Luca
|
|
15
15
|
listed_amount = 0
|
16
16
|
encoding ||= 'SJIS'
|
17
17
|
customers, total = list
|
18
|
+
format_ver = @date > Date.new(2024, 3, 1) ? 4 : 3
|
18
19
|
str = CSV.generate(String.new, headers: false, col_sep: ',', encoding: encoding) do |f|
|
19
20
|
customers.map do |c|
|
20
21
|
amount = readable(c['unsettled'])
|
21
22
|
listed_amount += amount
|
22
|
-
|
23
|
+
if format_ver >= 4
|
24
|
+
address = c['tax_id'] ? nil : c['address']
|
25
|
+
f << ['3', '0', '売掛金', c['tax_id']&.to_i, nil, c['customer'], address, amount, nil ]
|
26
|
+
else
|
27
|
+
f << ['3', '0', '売掛金', c['customer'], c['address'], amount, nil ]
|
28
|
+
end
|
23
29
|
end
|
24
|
-
if
|
30
|
+
if format_ver >= 4
|
31
|
+
f << ['3', '0', '売掛金', nil, nil, 'その他', nil, total - listed_amount, nil ]
|
32
|
+
f << ['3', '1', nil, nil, nil, nil, nil, total, nil ]
|
33
|
+
else
|
25
34
|
f << ['3', '0', '売掛金', 'その他', nil, total - listed_amount, nil ]
|
35
|
+
f << ['3', '1', nil, nil, nil, total, nil ]
|
26
36
|
end
|
27
|
-
f << ['3', '1', nil, nil, nil, total, nil ]
|
28
37
|
end
|
29
|
-
|
38
|
+
STDERR.puts "Writing HOI030_#{format_ver}.0.csv..."
|
39
|
+
File.open("HOI030_#{format_ver}.0.csv", 'w') { |f| f.write(str) }
|
30
40
|
end
|
31
41
|
|
32
42
|
def list
|
33
|
-
customers = self.class.report(@date, detail: true)
|
43
|
+
customers = self.class.report(@date, detail: true, due: true)
|
34
44
|
.sort_by { |customer| customer['unsettled'] }
|
35
45
|
.reverse
|
36
46
|
total = customers.inject(0) { |sum, customer| sum + customer['unsettled'] }
|
data/lib/luca/jp/util.rb
CHANGED
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.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chuma Takahiro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucabook
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.5.
|
19
|
+
version: 0.5.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.5.
|
26
|
+
version: 0.5.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: lucadeal
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.5.
|
33
|
+
version: 0.5.8
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.5.
|
40
|
+
version: 0.5.8
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: lucasalary
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|