luca-jp 0.18.0 → 0.19.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 +4 -4
- data/lib/luca/jp/aoiro.rb +22 -6
- data/lib/luca/jp/chihouzei.rb +1 -1
- data/lib/luca/jp/common.rb +1 -1
- data/lib/luca/jp/templates/aoiro.xtx.erb +1 -1
- data/lib/luca/jp/templates/xbrl21.xml.erb +8 -0
- data/lib/luca/jp/uchiwake.rb +2 -1
- data/lib/luca/jp/urikake.rb +15 -16
- data/lib/luca/jp/version.rb +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90bae24e5243dd793a1c43b66e67d4aa92df675264b5f80e1ad2020b86fb7a85
|
4
|
+
data.tar.gz: 54064470cd7f69a391ce7a22e25fea56eea0eb0820c94a3678fb6fb8eca0cf58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85ce4d176026e2250e5a8feca739f212730461231801b633a078d6a3895db04a7cdba2ec2916aa94a2d3f5da62b96b3eb5808f2991a92ea05d6718d6e1cbdbb9
|
7
|
+
data.tar.gz: 134e8fe26f2dd02d2606b56915eb25be299644c8a1ead108078b8f4695923d2a9e7ef9245a0d3fd7e4dd989461da25905333a9be7306ce327f5efd725d223e66
|
data/exe/luca-jp
CHANGED
@@ -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)
|
27
|
+
puts Luca::Jp::Aoiro.range(*auto_range(args, params)).kani(ext_config: ext_config, no_xbrl: params[:noxbrl])
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -37,14 +37,14 @@ 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') { |f| f.puts(Luca::Jp::Chihouzei.range(*auto_range(args, params)).kani(report))}
|
40
|
+
File.open("chihouzei-#{report['jichitai_code']}#{report['jimusho_code']}.xml", 'w') { |f| f.puts(Luca::Jp::Chihouzei.range(*auto_range(args, params)).kani(report, ext_config: ext_config))}
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
45
|
def self.urikake(args, params)
|
46
46
|
date = "#{args[0]}-#{args[1]}-1"
|
47
|
-
Luca::Jp::Urikake.new(date).report(params[:
|
47
|
+
Luca::Jp::Urikake.new(date).report(params[:encode])
|
48
48
|
end
|
49
49
|
|
50
50
|
def self.auto_range(args, params)
|
@@ -82,6 +82,7 @@ when 'h', /hou?jinzei/
|
|
82
82
|
opt.on('-x VAL', 'extra config') { |v| params[:extra] = v }
|
83
83
|
opt.on('--export', 'export json') { |_v| params[:export] = true }
|
84
84
|
opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
|
85
|
+
opt.on('--no-xbrl', 'skip XBRL statement') { |_v| params[:noxbrl] = true }
|
85
86
|
args = opt.parse!(ARGV)
|
86
87
|
LucaCmd.check_dir('journals', ext_conf: EXT_CONF) do
|
87
88
|
LucaCmd.houjinzei(args, params)
|
@@ -111,7 +112,6 @@ when 'c', /chihou?zei/
|
|
111
112
|
when /urikake/
|
112
113
|
OptionParser.new do |opt|
|
113
114
|
opt.banner = 'Usage: luca-jp urikake [options] yyyy mm'
|
114
|
-
opt.on('--total VAL', '売掛金総額') { |v| params[:total] = v&.to_i }
|
115
115
|
opt.on('--utf8', 'UTF-8でファイル生成') { |_v| params[:encode] = 'UTF-8' }
|
116
116
|
args = opt.parse!(ARGV)
|
117
117
|
LucaCmd.check_dir('invoices', ext_conf: EXT_CONF) do
|
data/lib/luca/jp/aoiro.rb
CHANGED
@@ -20,13 +20,14 @@ module Luca
|
|
20
20
|
@dirname = 'journals'
|
21
21
|
@record_type = 'raw'
|
22
22
|
|
23
|
-
def kani(ext_config: nil, export: false)
|
23
|
+
def kani(ext_config: nil, export: false, no_xbrl: false)
|
24
24
|
set_pl(4)
|
25
25
|
set_bs(4)
|
26
26
|
@issue_date = Date.today
|
27
27
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
28
28
|
@software = 'LucaJp'
|
29
29
|
@shinkoku_kbn = '30' # 確定申告
|
30
|
+
@no_xbrl = no_xbrl # 決算書XBRLの組み込み省略
|
30
31
|
|
31
32
|
別表四所得調整(ext_config)
|
32
33
|
@税額 = 税額計算
|
@@ -99,7 +100,7 @@ module Luca
|
|
99
100
|
別表六一, 別表七, 別表八一, 別表十四二, 別表十五,
|
100
101
|
適用額明細,
|
101
102
|
預貯金内訳, 有価証券内訳, 買掛金内訳, 仮受金内訳, 借入金内訳, 役員報酬内訳, 地代家賃内訳, 雑益雑損失内訳,
|
102
|
-
|
103
|
+
概況説明, 決算書
|
103
104
|
].compact.join("\n")
|
104
105
|
render_erb(search_template('aoiro.xtx.erb'))
|
105
106
|
end
|
@@ -382,6 +383,25 @@ module Luca
|
|
382
383
|
render_erb(search_template('gaikyo.xml.erb'))
|
383
384
|
end
|
384
385
|
|
386
|
+
def 決算書フォーム
|
387
|
+
return %Q(<XBRL2_1_SEC/>) if @no_xbrl
|
388
|
+
|
389
|
+
xsd_filename = %Q(#statement-#{@issue_date.to_s}.xsd)
|
390
|
+
%Q(<XBRL2_1_SEC><rdf:Seq>
|
391
|
+
<rdf:li><rdf:description><Instance><rdf:Bag><rdf:li><rdf:description about="#HOT010-1"/></rdf:li></rdf:Bag></Instance></rdf:description></rdf:li>
|
392
|
+
<rdf:li><rdf:description><taxonomy><rdf:Bag><rdf:li><rdf:description about="#{xsd_filename}"/></rdf:li></rdf:Bag></taxonomy></rdf:description></rdf:li>
|
393
|
+
</rdf:Seq></XBRL2_1_SEC>)
|
394
|
+
end
|
395
|
+
|
396
|
+
def 決算書
|
397
|
+
return nil if @no_xbrl
|
398
|
+
|
399
|
+
@xbrl_filename = %Q(statement-#{@issue_date.to_s})
|
400
|
+
@xbrl, @xsd = LucaBook::State.range(@start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
401
|
+
.render_xbrl(@xbrl_filename)
|
402
|
+
render_erb(search_template('xbrl21.xml.erb'))
|
403
|
+
end
|
404
|
+
|
385
405
|
def self.dict
|
386
406
|
@@dict
|
387
407
|
end
|
@@ -737,10 +757,6 @@ module Luca
|
|
737
757
|
[@事業税中間納付, 確定事業税].min
|
738
758
|
end
|
739
759
|
|
740
|
-
def 期末未納事業税
|
741
|
-
readable(@bs_data['5152']) || 0
|
742
|
-
end
|
743
|
-
|
744
760
|
def 別表五一期首差引金額
|
745
761
|
[
|
746
762
|
@当期還付法人税,
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -40,7 +40,7 @@ module Luca
|
|
40
40
|
@地方特別法人事業税中間納付 = prepaid_tax('1854', @jimusho_name)
|
41
41
|
@所得割中間納付 = prepaid_tax('1855', @jimusho_name)
|
42
42
|
@法人税割中間納付 = prepaid_tax(
|
43
|
-
@report_category == 'city' ? '185D' :'1859',
|
43
|
+
@report_category == 'city' ? '185D' : '1859',
|
44
44
|
@jimusho_name
|
45
45
|
)
|
46
46
|
@均等割中間納付 = prepaid_tax(
|
data/lib/luca/jp/common.rb
CHANGED
@@ -132,7 +132,7 @@ module Luca
|
|
132
132
|
期末資本準備金 = LucaSupport::Code.readable(@bs_data.dig('9131')||0)
|
133
133
|
|
134
134
|
([
|
135
|
-
(
|
135
|
+
([寄付金算定所得, 0].max * 2.5 / 100).floor,
|
136
136
|
([期末資本金, 期末資本準備金].compact.sum * 2.5 / 1000).floor
|
137
137
|
].compact.sum / 4).floor
|
138
138
|
end
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<SEND_DATA/>
|
8
8
|
<FORM_SEC><rdf:Seq><%= @form_sec %></rdf:Seq></FORM_SEC>
|
9
9
|
<IT_SEC><rdf:description about="#IT"/></IT_SEC>
|
10
|
-
<TENPU_SEC/><XBRL_SEC
|
10
|
+
<TENPU_SEC/><XBRL_SEC/><%= 決算書フォーム %>
|
11
11
|
<SOFUSHO_SEC/><ATTACH_SEC/><CSV_SEC/>
|
12
12
|
</rdf:description>
|
13
13
|
</rdf:RDF>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<XBRL2_1>
|
2
|
+
<XBRL2_1_INSTANCE VR="2.0" id="HOT010-1" page="1" sakuseiDay="<%= @issue_date %>" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>">
|
3
|
+
<%= @xbrl %>
|
4
|
+
</XBRL2_1_INSTANCE>
|
5
|
+
<XBRL2_1_TAXONOMY id="<%= @xbrl_filename %>.xsd">
|
6
|
+
<%= @xsd %>
|
7
|
+
</XBRL2_1_TAXONOMY>
|
8
|
+
</XBRL2_1>
|
data/lib/luca/jp/uchiwake.rb
CHANGED
@@ -41,10 +41,11 @@ module Luca #:nodoc:
|
|
41
41
|
|
42
42
|
@有価証券 = @bs_data.each.with_object({}) do |(k, v), h|
|
43
43
|
next unless account_codes.include?(k.to_s)
|
44
|
-
next if v.nil? || v <= 0
|
45
44
|
|
46
45
|
inc = debit_amount(k, @start_date.year, @start_date.month, @end_date.year, @end_date.month) || 0
|
47
46
|
dec = credit_amount(k, @start_date.year, @start_date.month, @end_date.year, @end_date.month) || 0
|
47
|
+
next if v.nil? || (v <= 0 && inc <= 0 && dec <= 0)
|
48
|
+
|
48
49
|
h[k] = {
|
49
50
|
name: self.class.dict.dig(k)[:label],
|
50
51
|
amount: readable(v),
|
data/lib/luca/jp/urikake.rb
CHANGED
@@ -11,38 +11,37 @@ module Luca
|
|
11
11
|
class Urikake < LucaDeal::Invoice
|
12
12
|
@dirname = 'invoices'
|
13
13
|
|
14
|
-
def report(
|
14
|
+
def report(encoding = nil)
|
15
15
|
listed_amount = 0
|
16
16
|
encoding ||= 'SJIS'
|
17
|
+
customers, total = list
|
17
18
|
str = CSV.generate(String.new, headers: false, col_sep: ',', encoding: encoding) do |f|
|
18
|
-
|
19
|
-
amount = readable(
|
19
|
+
customers.map do |c|
|
20
|
+
amount = readable(c['unsettled'])
|
20
21
|
listed_amount += amount
|
21
|
-
f << ['3', '0', '売掛金',
|
22
|
+
f << ['3', '0', '売掛金', c['customer'], c['address'], amount, nil ]
|
22
23
|
end
|
23
|
-
if total
|
24
|
+
if total - listed_amount > 0
|
24
25
|
f << ['3', '0', '売掛金', 'その他', nil, total - listed_amount, nil ]
|
25
|
-
f << ['3', '1', nil, nil, nil, total, nil ]
|
26
|
-
else
|
27
|
-
f << ['3', '1', nil, nil, nil, listed_amount, nil ]
|
28
26
|
end
|
27
|
+
f << ['3', '1', nil, nil, nil, total, nil ]
|
29
28
|
end
|
30
29
|
File.open('HOI030_3.0.csv', 'w') { |f| f.write(str) }
|
31
30
|
end
|
32
31
|
|
33
32
|
def list
|
34
|
-
|
35
|
-
.
|
36
|
-
.sort_by { |invoice| invoice.dig('subtotal', 0, 'items') }
|
33
|
+
customers = self.class.report(@date, detail: true)
|
34
|
+
.sort_by { |customer| customer['unsettled'] }
|
37
35
|
.reverse
|
36
|
+
total = customers.inject(0) { |sum, customer| sum + customer['unsettled'] }
|
38
37
|
|
39
|
-
reports =
|
40
|
-
return reports if reports.length >= 5
|
38
|
+
reports = customers.filter { |customer| 500_000 <= customer['unsettled'] }
|
39
|
+
return [reports, total] if reports.length >= 5
|
41
40
|
|
42
|
-
additional =
|
43
|
-
.filter { |
|
41
|
+
additional = customers
|
42
|
+
.filter { |customer| 500_000 > customer['unsettled'] }
|
44
43
|
.take(5 - reports.length)
|
45
|
-
reports.concat(additional)
|
44
|
+
[reports.concat(additional), total]
|
46
45
|
end
|
47
46
|
end
|
48
47
|
end
|
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.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chuma Takahiro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucabook
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.5.
|
19
|
+
version: 0.5.4
|
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.4
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: lucadeal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.5.5
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.5.5
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: lucasalary
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,6 +173,7 @@ files:
|
|
159
173
|
- lib/luca/jp/templates/shoken-meisai.xml.erb
|
160
174
|
- lib/luca/jp/templates/syouhizei-shinkoku-kanni.xml.erb
|
161
175
|
- lib/luca/jp/templates/tekiyougaku.xml.erb
|
176
|
+
- lib/luca/jp/templates/xbrl21.xml.erb
|
162
177
|
- lib/luca/jp/templates/yakuin-meisai.xml.erb
|
163
178
|
- lib/luca/jp/templates/yokin-meisai.xml.erb
|
164
179
|
- lib/luca/jp/templates/zatsueki-meisai.xml.erb
|