lucabook 0.2.22 → 0.2.23

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4755b2574729e35ae914dd92338ed007df2e1158d49c613613cac3b42423c6ee
4
- data.tar.gz: a559a270322897b10b6dae569102f028004221431300debe19f3d0e5ae6432fe
3
+ metadata.gz: 866a73f9e372f2ac755ed301c9e9b88bebb556b53a5ffd604391c45eda927653
4
+ data.tar.gz: 41b02c0e5c567dbfedf37fe4148d11270a0f8776c6fcc78f630354e281aad5d3
5
5
  SHA512:
6
- metadata.gz: 34b28c364e41ddecf9296ef39130897f03228e0bb0184241e0a7fce4349d41b14ff0ea72318154eb0bfa5e8fdac401783851c61e34e3419620eac6ab12cf6b05
7
- data.tar.gz: 1bbd862143cc37ba7c459a6d3fae832bbdad744b1db6afc3956175fa97660a1decf8a778c6c40c3e276dd35272ed363f5d9e575ce555b73a368cf2ef8173fcbf
6
+ metadata.gz: 1f295b8ab521f4b95c81ec57c57579ebf87ae01c3f1acf2fbc564bf076731d1b1d089e0959660752529e190eecfa3e107ee184b6f91484f9bdc61977eda80886
7
+ data.tar.gz: '0820bc3b42bfd48b0cf8f2924774acc8887c6fda373ec71fcebab5152b46e292096b68f174ac643613fda4ef72dc62a79300b4fa82e306d144f2fe404a770213'
@@ -10,7 +10,8 @@ class LucaCmd
10
10
  if params['config']
11
11
  LucaBook::Import.new(args[0], params['config']).import_csv
12
12
  elsif params['json']
13
- LucaBook::Import.import_json(STDIN.read)
13
+ str = args[0].nil? ? STDIN.read : File.read(args[0])
14
+ LucaBook::Import.import_json(str)
14
15
  else
15
16
  puts 'Usage: luca-book import -c import_config'
16
17
  exit 1
@@ -20,7 +21,11 @@ class LucaCmd
20
21
  def self.list(args, params)
21
22
  args = gen_range(params[:n] || 1) if args.empty?
22
23
  if params['code']
23
- render(LucaBook::List.term(*args, code: params['code']).list_on_code, params)
24
+ if params['headers']
25
+ render(LucaBook::ListByHeader.term(*args, code: params['code'], header: params['headers']).list_by_code, params)
26
+ else
27
+ render(LucaBook::List.term(*args, code: params['code']).list_by_code, params)
28
+ end
24
29
  else
25
30
  render(LucaBook::List.term(*args).list_journals, params)
26
31
  end
@@ -94,6 +99,7 @@ when /journals?/, 'j'
94
99
  OptionParser.new do |opt|
95
100
  opt.banner = 'Usage: luca-book journals list [options] [YYYY M]'
96
101
  opt.on('-c', '--code VAL', 'search with code') { |v| params['code'] = v }
102
+ opt.on('--customer', 'categorize by x-customer header') { |_v| params['headers'] = 'x-customer' }
97
103
  opt.on('-n VAL', 'report count') { |v| params[:n] = v.to_i }
98
104
  opt.on('--nu', 'show table in nushell') { |_v| params[:output] = 'nu' }
99
105
  opt.on('-o', '--output VAL', 'output serialized data') { |v| params[:output] = v }
@@ -9,6 +9,7 @@ module LucaBook
9
9
  autoload :Import, 'luca_book/import'
10
10
  autoload :Journal, 'luca_book/journal'
11
11
  autoload :List, 'luca_book/list'
12
+ autoload :ListByHeader, 'luca_book/list_by_header'
12
13
  autoload :Setup, 'luca_book/setup'
13
14
  autoload :State, 'luca_book/state'
14
15
  autoload :Util, 'luca_book/util'
@@ -85,7 +85,7 @@ module LucaBook
85
85
  end
86
86
 
87
87
  def self.latest_balance
88
- dict_dir = Pathname(LucaSupport::Config::Pjdir) / 'data' / 'balance'
88
+ dict_dir = Pathname(LucaSupport::PJDIR) / 'data' / 'balance'
89
89
  # TODO: search latest balance dictionary
90
90
  load_tsv_dict(dict_dir / 'start.tsv')
91
91
  end
@@ -12,10 +12,36 @@ module LucaBook
12
12
 
13
13
  # create journal from hash
14
14
  #
15
- def self.create(d)
15
+ def self.create(dat)
16
+ d = LucaSupport::Code.keys_stringify(dat)
16
17
  validate(d)
18
+ raise 'NoDateKey' unless d.key?('date')
19
+
17
20
  date = Date.parse(d['date'])
18
21
 
22
+ # TODO: need to sync filename & content. Limit code length for filename
23
+ # codes = (debit_code + credit_code).uniq
24
+ codes = nil
25
+
26
+ create_record(nil, date, codes) { |f| f.write journal2csv(d) }
27
+ end
28
+
29
+ # update journal with hash.
30
+ # If record not found with id, no record will be created.
31
+ #
32
+ def self.save(dat)
33
+ d = LucaSupport::Code.keys_stringify(dat)
34
+ raise 'record has no id.' if d['id'].nil?
35
+
36
+ validate(d)
37
+ parts = d['id'].split('/')
38
+ raise 'invalid ID' if parts.length != 2
39
+
40
+ codes = nil
41
+ open_records(@dirname, parts[0], parts[1], codes, 'w') { |f, _path| f.write journal2csv(d) }
42
+ end
43
+
44
+ def self.journal2csv(d)
19
45
  debit_amount = LucaSupport::Code.decimalize(serialize_on_key(d['debit'], 'value'))
20
46
  credit_amount = LucaSupport::Code.decimalize(serialize_on_key(d['credit'], 'value'))
21
47
  raise 'BalanceUnmatch' if debit_amount.inject(:+) != credit_amount.inject(:+)
@@ -23,16 +49,13 @@ module LucaBook
23
49
  debit_code = serialize_on_key(d['debit'], 'code')
24
50
  credit_code = serialize_on_key(d['credit'], 'code')
25
51
 
26
- # TODO: need to sync filename & content. Limit code length for filename
27
- # codes = (debit_code + credit_code).uniq
28
- codes = nil
29
- create_record!(date, codes) do |f|
52
+ csv = CSV.generate('', col_sep: "\t", headers: false) do |f|
30
53
  f << debit_code
31
54
  f << LucaSupport::Code.readable(debit_amount)
32
55
  f << credit_code
33
56
  f << LucaSupport::Code.readable(credit_amount)
34
57
  ['x-customer', 'x-editor'].each do |x_header|
35
- f << [x_header, d[x_header]] if d.dig(x_header)
58
+ f << [x_header, d['headers'][x_header]] if d.dig('headers', x_header)
36
59
  end
37
60
  f << []
38
61
  f << [d.dig('note')]
@@ -46,15 +69,7 @@ module LucaBook
46
69
  change_codes(obj[:id], codes)
47
70
  end
48
71
 
49
- # define new transaction ID & write data at once
50
- def self.create_record!(date_obj, codes = nil)
51
- create_record(nil, date_obj, codes) do |f|
52
- f.write CSV.generate('', col_sep: "\t", headers: false) { |c| yield(c) }
53
- end
54
- end
55
-
56
72
  def self.validate(obj)
57
- raise 'NoDateKey' unless obj.key?('date')
58
73
  raise 'NoDebitKey' unless obj.key?('debit')
59
74
  raise 'NoCreditKey' unless obj.key?('credit')
60
75
  debit_codes = serialize_on_key(obj['debit'], 'code').compact
@@ -93,10 +108,16 @@ module LucaBook
93
108
  when 3
94
109
  line.each_with_index { |amount, j| record[:credit][j][:amount] = BigDecimal(amount.to_s) }
95
110
  else
96
- if body == false && line.empty?
97
- record[:note] ||= []
98
- body = true
99
- else
111
+ case body
112
+ when false
113
+ if line.empty?
114
+ record[:note] ||= []
115
+ body = true
116
+ else
117
+ record[:headers] ||= {}
118
+ record[:headers][line[0]] = line[1]
119
+ end
120
+ when true
100
121
  record[:note] << line.join(' ') if body
101
122
  end
102
123
  end
@@ -31,7 +31,7 @@ module LucaBook
31
31
  new data, Date.new(from_year.to_i, from_month.to_i, 1), code
32
32
  end
33
33
 
34
- def list_on_code
34
+ def list_by_code
35
35
  calc_code
36
36
  convert_label
37
37
  @data = [code_header] + @data.map do |dat|
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+ require 'date'
5
+ require 'luca_support'
6
+ require 'luca_record'
7
+ require 'luca_record/dict'
8
+ require 'luca_book'
9
+
10
+ # Journal List on specified term
11
+ #
12
+ module LucaBook
13
+ class ListByHeader < LucaBook::Journal
14
+ @dirname = 'journals'
15
+
16
+ def initialize(data, start_date, code = nil, header_name = nil)
17
+ @data = data
18
+ @code = code
19
+ @header = header_name
20
+ @start = start_date
21
+ @dict = LucaRecord::Dict.load('base.tsv')
22
+ end
23
+
24
+ def self.term(from_year, from_month, to_year = from_year, to_month = from_month, code: nil, header: nil, basedir: @dirname)
25
+ data = Journal.term(from_year, from_month, to_year, to_month, code).select do |dat|
26
+ if code.nil?
27
+ true
28
+ else
29
+ [:debit, :credit].map { |key| serialize_on_key(dat[key], :code) }.flatten.include?(code)
30
+ end
31
+ end
32
+ new data, Date.new(from_year.to_i, from_month.to_i, 1), code, header
33
+ end
34
+
35
+ def list_by_code
36
+ calc_code
37
+ convert_label
38
+ @data = @data.each_with_object([]) do |(k, v), a|
39
+ journals = v.map do |dat|
40
+ date, txid = decode_id(dat[:id])
41
+ {}.tap do |res|
42
+ res['header'] = k
43
+ res['date'] = date
44
+ res['no'] = txid
45
+ res['id'] = dat[:id]
46
+ res['diff'] = dat[:diff]
47
+ res['balance'] = dat[:balance]
48
+ res['counter_code'] = dat[:counter_code].length == 1 ? dat[:counter_code].first : dat[:counter_code]
49
+ res['note'] = dat[:note]
50
+ end
51
+ end
52
+ a << { 'code' => v.last[:code], 'header' => k, 'balance' => v.last[:balance], 'count' => v.count, 'jounals' => journals }
53
+ end
54
+ readable(@data)
55
+ end
56
+
57
+ def accumulate_code
58
+ @data.each_with_object({}) do |dat, sum|
59
+ idx = dat.dig(:headers, @header) || 'others'
60
+ sum[idx] ||= BigDecimal('0')
61
+ sum[idx] += Util.diff_by_code(dat[:debit], @code) - Util.diff_by_code(dat[:credit], @code)
62
+ end
63
+ end
64
+
65
+ private
66
+
67
+ def set_balance
68
+ return BigDecimal('0') if @code.nil? || /^[A-H]/.match(@code)
69
+
70
+ balance_dict = Dict.latest_balance
71
+ start_balance = BigDecimal(balance_dict.dig(@code.to_s, :balance) || '0')
72
+ start = Dict.issue_date(balance_dict)&.next_month
73
+ last = @start.prev_month
74
+ if last.year >= start.year && last.month >= start.month
75
+ #TODO: start_balance to be implemented by header
76
+ self.class.term(start.year, start.month, last.year, last.month, code: @code).accumulate_code
77
+ else
78
+ #start_balance
79
+ end
80
+ end
81
+
82
+ def calc_code
83
+ raise 'no account code specified' if @code.nil?
84
+
85
+ @balance = set_balance
86
+ balance = @balance
87
+ res = {}
88
+ @data.each do |dat|
89
+ idx = dat.dig(:headers, @header) || 'others'
90
+ balance[idx] ||= BigDecimal('0')
91
+ res[idx] ||= []
92
+ {}.tap do |h|
93
+ h[:id] = dat[:id]
94
+ h[:diff] = Util.diff_by_code(dat[:debit], @code) - Util.diff_by_code(dat[:credit], @code)
95
+ balance[idx] += h[:diff]
96
+ h[:balance] = balance[idx]
97
+ h[:code] = @code
98
+ counter = h[:diff] * Util.pn_debit(@code) > 0 ? :credit : :debit
99
+ h[:counter_code] = dat[counter].map { |d| d[:code] }
100
+ h[:note] = dat[:note]
101
+ res[idx] << h
102
+ end
103
+ end
104
+ @data = res
105
+ self
106
+ end
107
+
108
+ def convert_label
109
+ @data.each do |_k, v|
110
+ v.each do |dat|
111
+ raise 'no account code specified' if @code.nil?
112
+
113
+ dat[:code] = "#{dat[:code]} #{@dict.dig(dat[:code], :label)}"
114
+ dat[:counter_code] = dat[:counter_code].map { |counter| "#{counter} #{@dict.dig(counter, :label)}" }
115
+ end
116
+ end
117
+ self
118
+ end
119
+ end
120
+ end
@@ -6,7 +6,7 @@ require 'fileutils'
6
6
  module LucaBook
7
7
  class Setup
8
8
  # create project skeleton under specified directory
9
- def self.create_project(country = nil, dir = LucaSupport::Config::Pjdir)
9
+ def self.create_project(country = nil, dir = LucaSupport::PJDIR)
10
10
  FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
11
11
  Dir.chdir(dir) do
12
12
  %w[data/journals data/balance dict].each do |subdir|
@@ -18,6 +18,7 @@ module LucaBook
18
18
  'dict-en.tsv'
19
19
  end
20
20
  FileUtils.cp("#{__dir__}/templates/#{dict}", 'dict/base.tsv') unless File.exist?('dict/base.tsv')
21
+ FileUtils.cp("#{__dir__}/templates/config.yml", 'config.yml') unless File.exist?('config.yml')
21
22
  prepare_starttsv(dict) unless File.exist? 'data/balance/start.tsv'
22
23
  end
23
24
  end
@@ -208,19 +208,22 @@ module LucaBook
208
208
 
209
209
  report['9142'] = (report['9142'] || BigDecimal('0')) + res['HA']
210
210
  res['9142'] = report['9142']
211
- res['10'] = sum_matched(report, /^[123][0-9A-Z]{2,}/)
212
- res['40'] = sum_matched(report, /^[4][0-9A-Z]{2,}/)
211
+ res['10'] = sum_matched(report, /^[12][0-9A-Z]{2,}/)
212
+ jp_4v = sum_matched(report, /^[4][V]{2,}/) # deferred assets for JP GAAP
213
+ res['30'] = sum_matched(report, /^[34][0-9A-Z]{2,}/) - jp_4v
214
+ res['4V'] = jp_4v if CONFIG['country'] == 'jp'
213
215
  res['50'] = sum_matched(report, /^[56][0-9A-Z]{2,}/)
214
216
  res['70'] = sum_matched(report, /^[78][0-9A-Z]{2,}/)
215
217
  res['91'] = sum_matched(report, /^91[0-9A-Z]{1,}/)
216
218
  res['8ZZ'] = res['50'] + res['70']
217
219
  res['9ZZ'] = sum_matched(report, /^[9][0-9A-Z]{2,}/)
218
220
 
219
- res['1'] = res['10'] + res['40']
221
+ res['1'] = res['10'] + res['30']
220
222
  res['5'] = res['8ZZ'] + res['9ZZ']
221
223
  res['_d'] = report['_d']
222
224
 
223
225
  report.each do |k, v|
226
+ res[k] ||= sum_matched(report, /^#{k}[0-9A-Z]{1,}/) if k.length == 2
224
227
  res[k] = v if k.length == 3
225
228
  end
226
229
 
@@ -245,14 +248,16 @@ module LucaBook
245
248
 
246
249
  def set_balance
247
250
  pre_last = @start_date.prev_month
248
- pre = if @start_date.month > LucaSupport::CONFIG['fy_start'].to_i
249
- self.class.accumulate_term(pre_last.year, LucaSupport::CONFIG['fy_start'], pre_last.year, pre_last.month)
250
- elsif @start_date.month < LucaSupport::CONFIG['fy_start'].to_i
251
- self.class.accumulate_term(pre_last.year - 1, LucaSupport::CONFIG['fy_start'], pre_last.year, pre_last.month)
252
- end
251
+ start_year = if @start_date.month > CONFIG['fy_start'].to_i
252
+ pre_last.year
253
+ else
254
+ pre_last.year - 1
255
+ end
256
+ pre = self.class.accumulate_term(start_year, CONFIG['fy_start'], pre_last.year, pre_last.month)
253
257
 
254
258
  base = Dict.latest_balance.each_with_object({}) do |(k, v), h|
255
259
  h[k] = BigDecimal(v[:balance].to_s) if v[:balance]
260
+ h[k] ||= BigDecimal('0') if k.length == 2
256
261
  end
257
262
  if pre
258
263
  idx = (pre.keys + base.keys).uniq
@@ -346,11 +351,11 @@ module LucaBook
346
351
  private
347
352
 
348
353
  def legal_items
349
- return [] unless LucaSupport::Config::COUNTRY
354
+ return [] unless CONFIG['country']
350
355
 
351
- case LucaSupport::Config::COUNTRY
356
+ case CONFIG['country']
352
357
  when 'jp'
353
- ['91', '911', '912', '913', '9131', '9132', '914', '9141', '9142', '915', '916', '92', '93']
358
+ ['31', '32', '33', '91', '911', '912', '913', '9131', '9132', '914', '9141', '9142', '915', '916', '92', '93']
354
359
  end
355
360
  end
356
361
  end
@@ -0,0 +1,4 @@
1
+ # Select base dictionary and extensions. country should be coded as the same as ccTLD domains like 'us'.
2
+ country:
3
+ # Start month of financial years. Set integer in 1 - 12.
4
+ fy_start:
@@ -20,36 +20,31 @@ code label xbrl_id consumption_tax income_tax
20
20
  183 立替金
21
21
  184 仮払金
22
22
  1D0 Deferred income tax
23
- 40 Fixed Assets
24
- 410 Tangible Assets
25
- 411 Buildings us-gaap:BuildingsAndImprovementsGross
26
- 412 Equipment
27
- 413 Machinery
28
- 414 Vehicles
29
- 415 Tools
30
- 416 Land
31
- 417 Construction in progress us-gaap:ConstructionInProgressGross
32
- 418 Ships
33
- 420 Intangible Assets
34
- 421 Software
35
- 422 Goodwill us-gaap:Goodwill
36
- 423 Patents
37
- 424 借地権
38
- 425 商標権
39
- 426 電話加入権
40
- 430 Investments
41
- 431 Investment securities
42
- 432 Associated companies
43
- 433 長期貸付金
44
- 434 破産更正債権
45
- 435 長期前払費用
46
- 436 敷金保証金
47
- 437 Deferred income tax
48
- 440 繰延資産
49
- 441 開業費
50
- 442 創立費
51
- 442 新株発行費
52
- 443 社債発行費
23
+ 30 Fixed Assets
24
+ 31 Tangible Assets
25
+ 311 Buildings us-gaap:BuildingsAndImprovementsGross
26
+ 312 Equipment
27
+ 313 Machinery
28
+ 314 Vehicles
29
+ 315 Tools
30
+ 316 Land
31
+ 317 Construction in progress us-gaap:ConstructionInProgressGross
32
+ 318 Ships
33
+ 32 Intangible Assets
34
+ 321 Software
35
+ 322 Goodwill us-gaap:Goodwill
36
+ 323 Patents
37
+ 324 借地権
38
+ 325 商標権
39
+ 326 電話加入権
40
+ 33 Investments
41
+ 331 Investment securities
42
+ 332 Associated companies
43
+ 333 長期貸付金
44
+ 334 破産更正債権
45
+ 335 長期前払費用
46
+ 336 敷金保証金
47
+ 337 Deferred income tax
53
48
  50 Current Liabilities
54
49
  50XX UNSETTLED_IMPORT
55
50
  510 Notes payable us-gaap:NotesPayable
@@ -15,6 +15,7 @@ code label xbrl_id consumption_tax income_tax
15
15
  130 売掛金 jppfs_cor:AccountsReceivableTrade
16
16
  140 短期貸付金 jppfs_cor:ShortTermLoansReceivable
17
17
  150 未収入金 jppfs_cor:AccountsReceivableOther
18
+ 1501 未収消費税等
18
19
  160 棚卸資産 jppfs_cor:Inventories
19
20
  161 商品 jppfs_cor:Merchandize
20
21
  162 製品 jppfs_cor:FinishedGoods
@@ -25,36 +26,38 @@ code label xbrl_id consumption_tax income_tax
25
26
  182 前払費用 jppfs_cor:AdvancePaymentsOther
26
27
  183 立替金 jppfs_cor:AdvancesPaid
27
28
  184 仮払金 jppfs_cor:SuspensePayments
28
- 40 固定資産 jppfs_cor:NonCurrentAssetsAbstract
29
- 410 有形固定資産 jppfs_cor:PropertyPlantAndEquipmentAbstract
30
- 411 建物 jppfs_cor:Buildings
31
- 412 構築物 jppfs_cor:Structures
32
- 413 機械装置 jppfs_cor:MachineryAndEquipment
33
- 414 車両運搬具 jppfs_cor:Vehicles
34
- 415 工具器具備品 jppfs_cor:ToolsFurnitureAndFixtures
35
- 416 土地 jppfs_cor:Land
36
- 417 建設仮勘定 jppfs_cor:ConstructionInProgress
37
- 418 船舶 jppfs_cor:Vessels
38
- 420 無形固定資産 jppfs_cor:IntansibleAssetsAbstract
39
- 421 ソフトウェア jppfs_cor:Software
40
- 422 のれん jppfs_cor:Goodwill
41
- 423 特許権 jppfs_cor:PatentRight
42
- 424 借地権 jppfs_cor:LeaseholdRight
43
- 425 商標権 jppfs_cor:RightOfTrademark
44
- 426 電話加入権 jppfs_cor:TelephoneSubscriptionRight
45
- 430 投資その他の資産 jppfs_cor:InvestmentsAndOtherAssetsAbstract
46
- 431 投資有価証券 jppfs_cor:InvestmentSecurities
47
- 432 関係会社株式 jppfs_cor:StocksOfSubsidiariesAndAffiliates
48
- 433 長期貸付金 jppfs_cor:LongTermLoansReceivable
49
- 434 破産更正債権 jppfs_cor:ClaimsProvableInBankruptcyClaimsProvableInRehabilitationAndOther
50
- 435 長期前払費用 jppfs_cor:LongTermPrepaidExpenses
51
- 436 敷金保証金 jppfs_cor:LeaseAndGuaranteeDeposits
52
- 437 繰延税金資産 jppfs_cor:DiferredTaxAssets
53
- 440 繰延資産 jppfs_cor:DeferredAssets
54
- 441 開業費 jppfs_cor:BusinessCommencementExpensesDA
55
- 442 創立費 jppfs_cor:DeferredOrganisationExpensesDA
56
- 442 新株発行費 jppfs_cor:StockIssuanceCostDA
57
- 443 社債発行費 jppfs_cor:BondIssuanceCostDA
29
+ 1841 仮払消費税等
30
+ 30 固定資産 jppfs_cor:NonCurrentAssetsAbstract
31
+ 31 有形固定資産 jppfs_cor:PropertyPlantAndEquipmentAbstract
32
+ 311 建物 jppfs_cor:Buildings
33
+ 312 構築物 jppfs_cor:Structures
34
+ 313 機械装置 jppfs_cor:MachineryAndEquipment
35
+ 314 車両運搬具 jppfs_cor:Vehicles
36
+ 315 工具器具備品 jppfs_cor:ToolsFurnitureAndFixtures
37
+ 316 土地 jppfs_cor:Land
38
+ 317 建設仮勘定 jppfs_cor:ConstructionInProgress
39
+ 318 船舶 jppfs_cor:Vessels
40
+ 32 無形固定資産 jppfs_cor:IntansibleAssetsAbstract
41
+ 321 ソフトウェア jppfs_cor:Software
42
+ 322 のれん jppfs_cor:Goodwill
43
+ 323 特許権 jppfs_cor:PatentRight
44
+ 324 借地権 jppfs_cor:LeaseholdRight
45
+ 325 商標権 jppfs_cor:RightOfTrademark
46
+ 326 電話加入権 jppfs_cor:TelephoneSubscriptionRight
47
+ 33 投資その他の資産 jppfs_cor:InvestmentsAndOtherAssetsAbstract
48
+ 331 投資有価証券 jppfs_cor:InvestmentSecurities
49
+ 332 関係会社株式 jppfs_cor:StocksOfSubsidiariesAndAffiliates
50
+ 333 長期貸付金 jppfs_cor:LongTermLoansReceivable
51
+ 334 破産更正債権 jppfs_cor:ClaimsProvableInBankruptcyClaimsProvableInRehabilitationAndOther
52
+ 335 長期前払費用 jppfs_cor:LongTermPrepaidExpenses
53
+ 336 敷金保証金 jppfs_cor:LeaseAndGuaranteeDeposits
54
+ 337 繰延税金資産 jppfs_cor:DiferredTaxAssets
55
+ 4V 繰延資産 jppfs_cor:DeferredAssets
56
+ 4V1 開業費 jppfs_cor:BusinessCommencementExpensesDA
57
+ 4V2 創立費 jppfs_cor:DeferredOrganisationExpensesDA
58
+ 4V3 新株発行費 jppfs_cor:StockIssuanceCostDA
59
+ 4V4 社債発行費 jppfs_cor:BondIssuanceCostDA
60
+ 4V5 開発費 jppfs_cor:DevelopmentExpensesDA
58
61
  5 負債・純資産合計 jppfs_cor:LiabilitiesAndNetAssets
59
62
  50 流動負債 jppfs_cor:CurrentLiabilitiesAbstract
60
63
  50XX UNSETTLED_IMPORT
@@ -69,6 +72,7 @@ code label xbrl_id consumption_tax income_tax
69
72
  518 前受金 jppfs_cor:AdvancesReceived
70
73
  519 預り金 jppfs_cor:DepositsReceived
71
74
  51A 仮受金 jppfs_cor:SuspenseReceipt
75
+ 51A1 仮受消費税等 jppfs_cor:SuspenseReceiptOfConsumptionTaxes
72
76
  70 固定負債 jppfs_cor:NoncurrentLiabilitiesAbstract
73
77
  711 社債 jppfs_cor:BondsPayable
74
78
  712 長期借入金 jppfs_cor:LongTermLoansPayable
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucaBook
4
- VERSION = '0.2.22'
4
+ VERSION = '0.2.23'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucabook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.22
4
+ version: 0.2.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-25 00:00:00.000000000 Z
11
+ date: 2020-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucarecord
@@ -85,9 +85,11 @@ files:
85
85
  - lib/luca_book/import_jp.rb
86
86
  - lib/luca_book/journal.rb
87
87
  - lib/luca_book/list.rb
88
+ - lib/luca_book/list_by_header.rb
88
89
  - lib/luca_book/setup.rb
89
90
  - lib/luca_book/state.rb
90
91
  - lib/luca_book/templates/base-jp.xbrl.erb
92
+ - lib/luca_book/templates/config.yml
91
93
  - lib/luca_book/templates/dict-en.tsv
92
94
  - lib/luca_book/templates/dict-jp.tsv
93
95
  - lib/luca_book/util.rb