luca-jp 0.9.0 → 0.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4397cf29a4b348c06c854a7317bf1c7a63feef296635ffe5d8cc8ab237a5ca86
4
- data.tar.gz: 8f0e650b20dcd79af950dfaf09b3e5df4f7e32094651d3661fe7f232c58685fd
3
+ metadata.gz: dd8ab55ad11aae7934b5032bdad95fb47786b08ccd5641346fb83dc7543eea48
4
+ data.tar.gz: e604cf213a42ace70a027f9911295751e290102d95bd5ab980ca088ca13a0b04
5
5
  SHA512:
6
- metadata.gz: 25b4554065a779fee709b1f32e0120cfddf0ce23fa80397ff470f54d2a20604246781dee7c29c8f565477fedb32aa37a18398053b2411d92db1dd4e6002ce123
7
- data.tar.gz: ba9dd2935aba7e2609278732f1db875d0896587db70605519282f94eca98264e0f51cc2d2f25ab12249477750c4debfcf74d73b472679367429a25dad2ffb9a1
6
+ metadata.gz: 8f213e34969923c0da16d0b5a9ffa0a00acca1fe1f10d66b4b12388b75606ec3f1f5ecb75be2f2241d02ab9d547e01bab0b4fbc3bddf8b0456c3eff77a68fcb4
7
+ data.tar.gz: 55ec28a0e227483ce9a6b28e0aa2caecb225228ae79191f7acac1b02cf0fe6b6c3df38f2e19035ce588badf3e5cf7967edbc87fe674985b0ec3fe5162abdc8fa
data/exe/luca-jp CHANGED
@@ -6,29 +6,29 @@ require 'luca/jp'
6
6
  class LucaCmd
7
7
  def self.syouhizei(args, params)
8
8
  if params[:export]
9
- Luca::Jp::Syouhizei.range(*args).export_json
9
+ Luca::Jp::Syouhizei.range(*auto_range(args, params)).export_json
10
10
  else
11
- puts Luca::Jp::Syouhizei.range(*args).kani
11
+ puts Luca::Jp::Syouhizei.range(*auto_range(args, params)).kani
12
12
  end
13
13
  end
14
14
 
15
15
  def self.houjinzei(args, params)
16
16
  if params[:export]
17
- Luca::Jp::Aoiro.range(*args).export_json
17
+ Luca::Jp::Aoiro.range(*auto_range(args, params)).export_json
18
18
  else
19
- puts Luca::Jp::Aoiro.range(*args).kani
19
+ puts Luca::Jp::Aoiro.range(*auto_range(args, params)).kani
20
20
  end
21
21
  end
22
22
 
23
23
  def self.chihouzei(args, params)
24
24
  if params[:export]
25
25
  accounts = Luca::Jp::Util.eltax_config('reports').map do |report|
26
- Luca::Jp::Chihouzei.range(*args).export_json(report)
26
+ Luca::Jp::Chihouzei.range(*auto_range(args, params)).export_json(report)
27
27
  end
28
28
  puts JSON.dump(accounts)
29
29
  else
30
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))}
31
+ File.open("chihouzei-#{report['jichitai_code']}#{report['jimusho_code']}.xml", 'w') { |f| f.puts(Luca::Jp::Chihouzei.range(*auto_range(args, params)).kani(report))}
32
32
  end
33
33
  end
34
34
  end
@@ -37,30 +37,48 @@ class LucaCmd
37
37
  date = "#{args[0]}-#{args[1]}-1"
38
38
  Luca::Jp::Urikake.new(date).report(params[:total])
39
39
  end
40
+
41
+ def self.auto_range(args, params)
42
+ case args.length
43
+ when 4
44
+ args
45
+ when 2
46
+ date = Date.new(args[0].to_i, args[1].to_i)
47
+ r = LucaBook::Util.current_fy(date, to: date)
48
+ [r[0].year, r[0].month, r[1].year, r[1].month]
49
+ when 0
50
+ date = params[:lastyear] ? Date.today.prev_year : Date.today
51
+ r = LucaBook::Util.current_fy(date)
52
+ [r[0].year, r[0].month, r[1].year, r[1].month]
53
+ end
54
+ end
40
55
  end
41
56
 
42
57
  cmd = ARGV.shift
43
58
  params = {}
44
59
 
45
60
  case cmd
46
- when /hou?jinzei/
61
+ when 'h', /hou?jinzei/
47
62
  OptionParser.new do |opt|
48
- opt.banner = 'Usage: luca-jp houjinzei [options] yyyy mm yyyy mm'
63
+ opt.banner = 'Usage: luca-jp h|houjinzei [options] [yyyy mm yyyy mm]'
49
64
  opt.on('--export', 'export json') { |_v| params[:export] = true }
65
+ opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
50
66
  args = opt.parse!(ARGV)
51
67
  LucaCmd.houjinzei(args, params)
52
68
  end
53
- when /s[yh]ou?hizei/
69
+ when 's', /s[yh]ou?hizei/
54
70
  OptionParser.new do |opt|
55
- opt.banner = 'Usage: luca-jp syouhizei [options] yyyy mm yyyy mm'
71
+ opt.banner = 'Usage: luca-jp s|syouhizei [options] [yyyy mm yyyy mm]'
56
72
  opt.on('--export', 'export json') { |_v| params[:export] = true }
73
+ opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
57
74
  args = opt.parse!(ARGV)
58
75
  LucaCmd.syouhizei(args, params)
59
76
  end
60
- when /chihou?zei/
77
+ when 'c', /chihou?zei/
61
78
  OptionParser.new do |opt|
62
- opt.banner = 'Usage: luca-jp chihouzei [options] yyyy mm yyyy mm'
79
+ opt.banner = 'Usage: luca-jp c|chihouzei [options] [yyyy mm yyyy mm]'
63
80
  opt.on('--export', 'export json') { |_v| params[:export] = true }
81
+ opt.on('--lastyear', 'report on last Financial year') { |_v| params[:lastyear] = true }
64
82
  args = opt.parse!(ARGV)
65
83
  LucaCmd.chihouzei(args, params)
66
84
  end
@@ -71,4 +89,13 @@ when /urikake/
71
89
  args = opt.parse!(ARGV)
72
90
  LucaCmd.urikake(args, params)
73
91
  end
92
+ else
93
+ puts 'Proper subcommand needed.'
94
+ puts
95
+ puts 'Usage: luca-jp <subcommand>'
96
+ puts ' h[oujinzei]: 法人税の計算'
97
+ puts ' s[youhizei]: 消費税の計算'
98
+ puts ' c[hihouzei]: 地方税の計算'
99
+ puts ' urikake: 勘定科目内訳明細書の売掛金リスト(CSV)'
100
+ exit 1
74
101
  end
data/lib/luca/jp/aoiro.rb CHANGED
@@ -65,7 +65,6 @@ module Luca
65
65
  @市民税期中増, @市民税期中減 = 未納市民税期中増減
66
66
  @事業税期中増, @事業税期中減 = 未納事業税期中増減
67
67
  @事業税中間納付 = prepaid_tax('1854') + prepaid_tax('1855') + prepaid_tax('1856') + prepaid_tax('1857') + prepaid_tax('1858')
68
- @納税充当金期中増, @納税充当金期中減 = 納税充当金期中増減
69
68
  @翌期還付法人税 = 中間還付税額(@確定法人税額 + @確定地方法人税額, @法人税中間納付 + @地方法人税中間納付)
70
69
  @概況売上 = gaikyo('A0')
71
70
  @form_sec = [
@@ -141,9 +140,9 @@ module Luca
141
140
 
142
141
  @当期還付法人税 = refund_tax('1502')
143
142
  @当期還付都道府県住民税 = refund_tax('1503')
144
- @翌期還付都道府県住民税 = 中間還付税額(@税額.dig(:kenmin, :kintou), @都道府県民税均等割中間納付) + 中間還付税額(@税額.dig(:kenmin, :houjinzei), @都道府県民税法人税割中間納付)
143
+ @翌期還付都道府県住民税 = readable(@bs_data['1503'])
145
144
  @当期還付市民税 = refund_tax('1505')
146
- @翌期還付市民税 = 中間還付税額(@税額.dig(:shimin, :kintou), @市民税均等割中間納付) + 中間還付税額(@税額.dig(:shimin, :houjinzei), @市民税法人税割中間納付)
145
+ @翌期還付市民税 = readable(@bs_data['1505']) || 0
147
146
  @事業税期首残高 = 期首未納事業税 > 0 ? 期首未納事業税 : (@当期還付事業税 * -1)
148
147
  @仮払税金 = @翌期還付法人税 + @翌期還付都道府県住民税 + @翌期還付事業税 + @翌期還付市民税
149
148
 
@@ -169,7 +168,7 @@ module Luca
169
168
  @当期還付消費税 = refund_tax('1501')
170
169
  @消費税期首残高 = 期首未納消費税 > 0 ? 期首未納消費税 : (@当期還付消費税 * -1)
171
170
  @翌期還付消費税 = 中間還付税額(@消費税期中増, @消費税中間納付額)
172
- @その他事業税 = 租税公課
171
+ @その他事業税 = 租税公課 - @消費税期中増
173
172
  render_erb(search_template('beppyo52.xml.erb'))
174
173
  end
175
174
 
@@ -387,7 +386,7 @@ module Luca
387
386
  return '' if (@start_balance['1502']||0) == 0 && @翌期還付法人税 == 0
388
387
 
389
388
  %Q(<ICB00220>
390
- #{render_attr('ICB00230', @start_balance['1502'] || 0)}
389
+ #{render_attr('ICB00230', readable(@start_balance['1502']) || 0)}
391
390
  <ICB00240>
392
391
  #{render_attr('ICB00250', @当期還付法人税)}
393
392
  #{render_attr('ICB00260', @翌期還付法人税)}
@@ -400,7 +399,7 @@ module Luca
400
399
  return '' if (@start_balance['1503']||0) == 0 && @翌期還付都道府県住民税 == 0
401
400
 
402
401
  %Q(<ICB00280>
403
- #{render_attr('ICB00290', @start_balance['1503'] || 0)}
402
+ #{render_attr('ICB00290', readable(@start_balance['1503']) || 0)}
404
403
  <ICB00300>
405
404
  #{render_attr('ICB00310', @当期還付都道府県住民税)}
406
405
  #{render_attr('ICB00320', @翌期還付都道府県住民税)}
@@ -413,7 +412,7 @@ module Luca
413
412
  return '' if (@start_balance['1505']||0) == 0 && @翌期還付市民税 == 0
414
413
 
415
414
  %Q(<ICB00340>
416
- #{render_attr('ICB00350', @start_balance['1505'] || 0)}
415
+ #{render_attr('ICB00350', readable(@start_balance['1505']) || 0)}
417
416
  <ICB00360>
418
417
  #{render_attr('ICB00370', @当期還付市民税)}
419
418
  #{render_attr('ICB00380', @翌期還付市民税)}
@@ -434,11 +433,13 @@ module Luca
434
433
  readable(@start_balance.dig('515')) || 0
435
434
  end
436
435
 
437
- def 納税充当金期中増減
436
+ def 納税充当金期中減
438
437
  r = debit_amount('515', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
439
- 納付 = 納付税額(@確定法人税額 + @確定地方法人税額, @法人税中間納付 + @地方法人税中間納付) + 期末未納都道府県民税 + 期末未納市民税 + 納付税額(確定事業税, @事業税中間納付)
438
+ readable(r)
439
+ end
440
440
 
441
- [納付, readable(r)]
441
+ def 当期納税充当金
442
+ readable(@pl_data.dig('H0')) - [法人税損金納付額, 都道府県民税損金納付, 市民税損金納付, 事業税損金納付].compact.sum
442
443
  end
443
444
 
444
445
  def 期首未納法人税
@@ -463,37 +464,34 @@ module Luca
463
464
  # 中間納付した金額のうち税額として確定した額
464
465
  #
465
466
  def 法人税損金納付額
466
- [@法人税中間納付 + @地方法人税中間納付, @確定法人税額 + @確定地方法人税額].min
467
+ @法人税中間納付 + @地方法人税中間納付 - 法人税仮払納付額
467
468
  end
468
469
 
469
470
  def 確定都道府県住民税
470
- @税額.dig(:kenmin, :kintou) + @税額.dig(:kenmin, :houjinzei)
471
+ readable(@pl_data['H112']) || 0
471
472
  end
472
473
 
473
474
  def 期首未納都道府県民税
474
475
  readable(@start_balance.dig('5153')) || 0
475
476
  end
476
477
 
477
- def 期末未納都道府県民税
478
- 納付税額(@税額.dig(:kenmin, :kintou), @都道府県民税均等割中間納付) + 納付税額(@税額.dig(:kenmin, :houjinzei), @都道府県民税法人税割中間納付)
479
- end
480
-
481
478
  def 未納都道府県民税期中増減
482
479
  r = debit_amount('5153', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
483
480
  [確定都道府県住民税, readable(r)]
484
481
  end
485
482
 
486
483
  def 都道府県民税仮払納付
487
- [(@都道府県民税中間納付 - 確定都道府県住民税), 0].max
488
- 中間還付税額(@税額.dig(:kenmin, :kintou), @都道府県民税均等割中間納付) + 中間還付税額(@税額.dig(:kenmin, :houjinzei), @都道府県民税法人税割中間納付)
484
+ readable(@bs_data['1503']) || 0
489
485
  end
490
486
 
487
+ # 期末納付済金額のうち税額として確定したもの
488
+ #
491
489
  def 都道府県民税損金納付
492
- [@都道府県民税均等割中間納付, @税額.dig(:kenmin, :kintou)].min + [@都道府県民税法人税割中間納付, @税額.dig(:kenmin, :houjinzei)].min
490
+ @都道府県民税均等割中間納付 + @都道府県民税法人税割中間納付 - 都道府県民税仮払納付
493
491
  end
494
492
 
495
493
  def 確定市民税
496
- @税額.dig(:shimin, :kintou) - @税額.dig(:shimin, :houjinzei)
494
+ readable(@pl_data['H113']) || 0
497
495
  end
498
496
 
499
497
  def 期首未納市民税
@@ -501,7 +499,7 @@ module Luca
501
499
  end
502
500
 
503
501
  def 期末未納市民税
504
- 納付税額(@税額.dig(:shimin, :kintou), @市民税均等割中間納付) + 納付税額(@税額.dig(:shimin, :houjinzei), @市民税法人税割中間納付)
502
+ readable(@bs_data['5154']) || 0
505
503
  end
506
504
 
507
505
  def 未納市民税期中増減
@@ -510,15 +508,17 @@ module Luca
510
508
  end
511
509
 
512
510
  def 市民税仮払納付
513
- 中間還付税額(@税額.dig(:shimin, :kintou), @市民税均等割中間納付) + 中間還付税額(@税額.dig(:shimin, :houjinzei), @市民税法人税割中間納付)
511
+ readable(@bs_data['1505']) || 0
514
512
  end
515
513
 
514
+ # 期末納付済金額のうち税額として確定したもの
515
+ #
516
516
  def 市民税損金納付
517
- [@市民税均等割中間納付, @税額.dig(:shimin, :kintou)].min + [@市民税法人税割中間納付, @税額.dig(:shimin, :houjinzei)].min
517
+ @市民税均等割中間納付 + @市民税法人税割中間納付 - 市民税仮払納付
518
518
  end
519
519
 
520
520
  def 確定事業税
521
- @税額.dig(:kenmin, :shotoku) + @税額.dig(:kenmin, :tokubetsu)
521
+ readable(@pl_data['H114']) || 0
522
522
  end
523
523
 
524
524
  def 事業税損金納付
@@ -526,19 +526,44 @@ module Luca
526
526
  end
527
527
 
528
528
  def 別表五一期首差引金額
529
- 期首繰越損益 + 期首納税充当金 - 期首未納法人税 - 期首未納都道府県民税 - 期首未納市民税
529
+ [期首繰越損益, 期首納税充当金].compact.sum - [
530
+ 期首未納法人税,
531
+ 期首未納都道府県民税,
532
+ 期首未納市民税,
533
+ @当期還付事業税
534
+ ].compact.sum
530
535
  end
531
536
 
532
537
  def 別表五一期末差引金額
533
- 期末繰越損益 + @納税充当金期中増 - 期末未納法人税 - 期末未納都道府県民税 - 期末未納市民税 - @翌期還付事業税
538
+ [期末繰越損益, 当期納税充当金].compact.sum - [
539
+ 期末未納法人税,
540
+ 確定都道府県住民税,
541
+ 確定市民税,
542
+ @翌期還付事業税
543
+ ].compact.sum
534
544
  end
535
545
 
536
546
  def 別表五一期中減差引金額
537
- 期首繰越損益 + @納税充当金期中減 - @法人税期中減 - @都道府県民税期中減 - @市民税期中減 - @法人税中間納付 - @地方法人税中間納付 - @都道府県民税中間納付 - @市民税中間納付
547
+ [期首繰越損益, 納税充当金期中減].compact.sum - [
548
+ @法人税期中減,
549
+ @都道府県民税期中減,
550
+ @市民税期中減,
551
+ @法人税中間納付,
552
+ @地方法人税中間納付,
553
+ @都道府県民税中間納付,
554
+ @市民税中間納付,
555
+ @当期還付事業税
556
+ ].compact.sum
538
557
  end
539
558
 
540
559
  def 別表五一期中増差引金額
541
- 期末繰越損益 + 納付税額(確定事業税, @事業税中間納付) - @法人税中間納付 - @地方法人税中間納付 - @都道府県民税中間納付 - @市民税中間納付 - @翌期還付事業税
560
+ [期末繰越損益, 納付税額(確定事業税, @事業税中間納付)].compact.sum - [
561
+ @法人税中間納付,
562
+ @地方法人税中間納付,
563
+ @都道府県民税中間納付,
564
+ @市民税中間納付,
565
+ @翌期還付事業税
566
+ ].compact.sum
542
567
  end
543
568
 
544
569
  def 期末未収税金(code)
@@ -582,7 +607,7 @@ module Luca
582
607
  #{render_attr('MCB00190', deduction + record['amount'])}
583
608
  #{render_attr('MCB00200', deduction)}
584
609
  #{render_attr('MCB00210', record['amount'])}
585
- </MCB00110)
610
+ </MCB00110>)
586
611
  end
587
612
  tags.compact.join("\n")
588
613
  end
@@ -23,19 +23,28 @@ module Luca
23
23
  set_bs(4)
24
24
  @issue_date = Date.today
25
25
  @software = 'LucaJp'
26
+ @jimusho_name = report_cfg['jimusho_name']
26
27
  @report_category = report_cfg['type']
27
28
  @employee = report_cfg['employee'] || 1
29
+ @office_count = report_cfg['office_count'] || 1
30
+ # 自治体ごとの税率カスタマイズ
31
+ @houjinzeiwari_rate = report_cfg['houjinzeiwari']
32
+ @shotoku399 = report_cfg['shotoku399']
33
+ @shotoku401 = report_cfg['shotoku401']
34
+ @shotoku801 = report_cfg['shotoku801']
28
35
 
29
36
  @税額 = 税額計算
30
- @均等割 = @税額.dig(:kenmin, :kintou)
31
- @確定法人税割 = @税額.dig(:kenmin, :houjinzei)
32
- @地方特別法人事業税中間納付 = prepaid_tax('1854')
33
- @所得割中間納付 = prepaid_tax('1855')
34
- @法人税割中間納付 = prepaid_tax('1859')
35
- @均等割中間納付 = prepaid_tax('185A')
37
+ jichitai = @report_category == 'city' ? :shimin : :kenmin
38
+ @均等割 = report_cfg['kintouwari'] || @税額.dig(jichitai, :kintou)
39
+ @確定法人税割 = @税額.dig(jichitai, :houjinzei)
40
+ @地方特別法人事業税中間納付 = prepaid_tax('1854', @jimusho_name)
41
+ @所得割中間納付 = prepaid_tax('1855', @jimusho_name)
42
+ @法人税割中間納付 = prepaid_tax('1859', @jimusho_name)
43
+ @均等割中間納付 = prepaid_tax('185A', @jimusho_name)
36
44
  @所得割 = @税額.dig(:kenmin, :shotoku)
37
45
  if export
38
46
  {
47
+ customer: @jimusho_name,
39
48
  jigyouzei: {
40
49
  shotoku: {
41
50
  zeigaku: @所得割,
@@ -62,10 +71,10 @@ module Luca
62
71
  @form_vers = proc_version
63
72
  @jichitai_code = report_cfg['jichitai_code']
64
73
  @jimusho_code = report_cfg['jimusho_code']
65
- @jimusho_name = report_cfg['jimusho_name']
66
74
  @kanri_bango = report_cfg['x_houjin_bango']
67
75
  @app_version = report_cfg['app_version']
68
76
  @address = report_cfg['address'] || it_part_config('nozeisha_adr')
77
+ @jigyosho_name = report_cfg['name'] || '本店'
69
78
  @procedure_code = 'R0102100'
70
79
  @procedure_name = '法人都道府県民税・事業税・特別法人事業税又は地方法人特別税 確定申告'
71
80
  @form_sec = case @report_category
@@ -76,7 +85,7 @@ module Luca
76
85
  ["R0102AA#{@form_vers['R0102AA']}", "R0102AG120", 別表九フォーム]
77
86
  .compact.map{ |c| form_attr(c) }.join('')
78
87
  when 'city'
79
- # TODO: implement
88
+ ["R0504AA180"].compact.map{ |c| form_attr(c) }.join('')
80
89
  end
81
90
  @user_inf = render_erb(search_template('eltax-userinf.xml.erb'))
82
91
  @form_data = case @report_category
@@ -85,7 +94,7 @@ module Luca
85
94
  when '23ku'
86
95
  [第六号, 別表四三, 別表九].compact.join("\n")
87
96
  when 'city'
88
- # TODO: implement
97
+ [第二十号].compact.join("\n")
89
98
  end
90
99
  render_erb(search_template('eltax.xml.erb'))
91
100
  end
@@ -93,32 +102,36 @@ module Luca
93
102
 
94
103
  def export_json(report_cfg)
95
104
  records = kani(report_cfg, export: true)
105
+ label = @report_category == 'city' ? '市町村住民税' : '都道府県住民税'
96
106
  {}.tap do |item|
97
107
  item['date'] = @end_date
98
108
  item['debit'] = []
99
109
  item['credit'] = []
100
- records[:jigyouzei].each do |k, dat|
101
- if dat[:chukan] > 0
102
- item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] }
103
- end
104
- if dat[:chukan] > dat[:zeigaku]
105
- item['debit'] << { 'label' => '未収地方事業税', 'amount' => dat[:chukan] - dat[:zeigaku] }
106
- else
107
- item['credit'] << { 'label' => '未払地方事業税', 'amount' => dat[:zeigaku] - dat[:chukan] }
110
+ unless @report_category == 'city'
111
+ records[:jigyouzei].each do |k, dat|
112
+ if dat[:chukan] > 0
113
+ item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] }
114
+ end
115
+ if dat[:chukan] > dat[:zeigaku]
116
+ item['debit'] << { 'label' => '未収地方事業税', 'amount' => dat[:chukan] - dat[:zeigaku] }
117
+ else
118
+ item['credit'] << { 'label' => '未払地方事業税', 'amount' => dat[:zeigaku] - dat[:chukan] }
119
+ end
120
+ item['debit'] << { 'label' => '地方事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0
108
121
  end
109
- item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0
110
122
  end
111
123
  records[:juminzei].each do |k, dat|
112
124
  if dat[:chukan] > 0
113
125
  item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] }
114
126
  end
115
127
  if dat[:chukan] > dat[:zeigaku]
116
- item['debit'] << { 'label' => '未収都道府県住民税', 'amount' => dat[:chukan] - dat[:zeigaku] }
128
+ item['debit'] << { 'label' => "未収#{label}", 'amount' => dat[:chukan] - dat[:zeigaku] }
117
129
  else
118
- item['credit'] << { 'label' => '未払都道府県民税', 'amount' => dat[:zeigaku] - dat[:chukan] }
130
+ item['credit'] << { 'label' => "未払#{label}", 'amount' => dat[:zeigaku] - dat[:chukan] }
119
131
  end
120
- item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0
132
+ item['debit'] << { 'label' => label, 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0
121
133
  end
134
+ item['x-customer'] = records[:customer] unless records[:customer].nil?
122
135
  item['x-editor'] = 'LucaJp'
123
136
  end
124
137
  end
@@ -134,6 +147,11 @@ module Luca
134
147
  render_erb(search_template('el-no6-43.xml.erb'))
135
148
  end
136
149
 
150
+ def 第二十号
151
+ @資本金準備金 = readable(['911', '9131'].map { |cd| @bs_data.dig(cd) }.compact.sum)
152
+ render_erb(search_template('el-no20.xml.erb'))
153
+ end
154
+
137
155
  def 別表九フォーム
138
156
  return nil if @繰越損失管理.records.length == 0
139
157
 
@@ -149,7 +167,13 @@ module Luca
149
167
  private
150
168
 
151
169
  def 法人税割課税標準
152
- (@税額.dig(:houjin, :kokuzei) / 1000).floor * 1000
170
+ case Luca::Jp::Util.eltax_config('reports')
171
+ .filter { |r| レポート種別.include?(r['type']) }.length
172
+ when 0, 1
173
+ (@税額.dig(:houjin, :kokuzei) / 1000).floor * 1000
174
+ else
175
+ 従業員数による分割課税標準 @税額.dig(:houjin, :kokuzei)
176
+ end
153
177
  end
154
178
 
155
179
  def 事業税中間納付
@@ -19,9 +19,9 @@ module Luca
19
19
  tax[:houjin][:chihou] = (地方法人税 / 100).floor * 100
20
20
 
21
21
  tax[:kenmin][:houjinzei], tax[:shimin][:houjinzei] = 法人税割(法人税額)
22
- tax[:kenmin][:kintou], tax[:shimin][:kintou] = 均等割
22
+ tax[:kenmin][:kintou], tax[:shimin][:kintou] = 均等割 if @report_category
23
23
  tax[:kenmin][:shotoku] = 所得割400万以下(所得) + 所得割800万以下(所得) + 所得割800万超(所得)
24
- tax[:kenmin][:tokubetsu] = 地方法人特別税(tax[:kenmin][:shotoku])
24
+ tax[:kenmin][:tokubetsu] = 特別法人事業税(tax[:kenmin][:shotoku])
25
25
  end
26
26
  end
27
27
 
@@ -139,14 +139,16 @@ module Luca
139
139
  else
140
140
  法人税割課税標準
141
141
  end
142
- 税率 = 法人税割税率(課税標準)
142
+ 県税率, 市税率 = 法人税割税率(課税標準)
143
143
  [
144
- (課税標準 * 税率[0] / 100 / 100).floor * 100,
145
- (課税標準 * 税率[1] / 100 / 100).floor * 100
144
+ (課税標準 * 県税率 / 100 / 100).floor * 100,
145
+ (課税標準 * 市税率 / 100 / 100).floor * 100
146
146
  ]
147
147
  end
148
148
 
149
149
  def 法人税割税率(法人税 = nil)
150
+ return [@houjinzeiwari_rate.to_f, @houjinzeiwari_rate.to_f] if @houjinzeiwari_rate
151
+
150
152
  課税標準 = if 法人税
151
153
  (法人税 / 1000).floor * 1000
152
154
  else
@@ -169,14 +171,17 @@ module Luca
169
171
  所得 ||= 所得金額
170
172
  return 0 if 所得 < 0
171
173
 
172
- if 所得 >= 4_000_000
173
- 4_000_000
174
- else
175
- (所得 / 1000).floor * 1000
176
- end
174
+ total = if 所得 >= 4_000_000
175
+ 4_000_000
176
+ else
177
+ (所得 / 1000).floor * 1000
178
+ end
179
+ 事業税の分割課税標準(total)
177
180
  end
178
181
 
179
182
  def 所得割税率400万以下(所得 = nil)
183
+ return @shotyoku399.to_f if @shotoku399
184
+
180
185
  所得 ||= 所得金額
181
186
  if 期末資本金 > 100_000_000 || 所得 > 25_000_000
182
187
  軽減税率不適用法人 ? 7.48 : 3.75
@@ -194,16 +199,19 @@ module Luca
194
199
  所得 ||= 所得金額
195
200
  return 0 if 所得 < 0
196
201
 
197
- if 所得 <= 4_000_000
198
- 0
199
- elsif 所得 >= 8_000_000
200
- 4_000_000
201
- else
202
- ((所得 - 4_000_000) / 1000).floor * 1000
203
- end
202
+ total = if 所得 <= 4_000_000
203
+ 0
204
+ elsif 所得 >= 8_000_000
205
+ 4_000_000
206
+ else
207
+ ((所得 - 4_000_000) / 1000).floor * 1000
208
+ end
209
+ 事業税の分割課税標準(total)
204
210
  end
205
211
 
206
212
  def 所得割税率800万以下(所得 = nil)
213
+ return @shotyoku401.to_f if @shotoku401
214
+
207
215
  所得 ||= 所得金額
208
216
  if 期末資本金 > 100_000_000 || 所得 > 25_000_000
209
217
  軽減税率不適用法人 ? 7.48 : 5.665
@@ -221,14 +229,17 @@ module Luca
221
229
  所得 ||= 所得金額
222
230
  return 0 if 所得 < 0
223
231
 
224
- if 所得 <= 8_000_000
232
+ total = if 所得 <= 8_000_000
225
233
  0
226
234
  else
227
235
  ((所得 - 8_000_000) / 1000).floor * 1000
228
236
  end
237
+ 事業税の分割課税標準(total)
229
238
  end
230
239
 
231
240
  def 所得割税率800万超(所得 = nil)
241
+ return @shotyoku801.to_f if @shotoku801
242
+
232
243
  所得 ||= 所得金額
233
244
  if 期末資本金 > 100_000_000 || 所得 > 25_000_000
234
245
  7.48
@@ -238,7 +249,7 @@ module Luca
238
249
  end
239
250
 
240
251
  # 100円未満切り捨て
241
- def 地方法人特別税(事業税)
252
+ def 特別法人事業税(事業税)
242
253
  ((事業税 * 37 / 100) / 100).floor * 100
243
254
  end
244
255
 
@@ -302,6 +313,43 @@ module Luca
302
313
  def 期末資本金
303
314
  readable(@bs_data.dig('911'))
304
315
  end
316
+
317
+ # -----------------------------------------------------
318
+ # :section: 複数自治体間の分割計算
319
+ # -----------------------------------------------------
320
+ def 事業税の分割課税標準(課税標準)
321
+ case Luca::Jp::Util.eltax_config('reports')
322
+ .filter { |r| レポート種別.include?(r['type']) }.length
323
+ when 0, 1
324
+ 課税標準
325
+ else
326
+ half = (課税標準 / 2 / 1000).floor * 1000
327
+ [
328
+ 事業所数による分割課税標準(half),
329
+ 従業員数による分割課税標準(half)
330
+ ].sum
331
+ end
332
+ end
333
+
334
+ def 従業員数による分割課税標準(課税標準)
335
+ 分割基準の総数 = Luca::Jp::Util.eltax_config('reports')
336
+ .filter { |r| レポート種別.include?(r['type']) }
337
+ .map { |r| (r['employee'] || 1).to_i }.sum
338
+ ((課税標準.to_f / 分割基準の総数).floor(分割基準の総数.to_s.length) * @employee / 1000)
339
+ .floor * 1000
340
+ end
341
+
342
+ def 事業所数による分割課税標準(課税標準)
343
+ 分割基準の総数 = Luca::Jp::Util.eltax_config('reports')
344
+ .filter { |r| レポート種別.include?(r['type']) }
345
+ .map { |r| (r['office_count'] || 1).to_i }.sum
346
+ ((課税標準.to_f / 分割基準の総数).floor(分割基準の総数.to_s.length) * @office_count / 1000)
347
+ .floor * 1000
348
+ end
349
+
350
+ def レポート種別
351
+ @report_category == 'city' ? ['city', '23ku'] : ['prefecture', '23ku']
352
+ end
305
353
  end
306
354
  end
307
355
  end
@@ -37,7 +37,7 @@ module Luca
37
37
  #
38
38
  def self.load(this_year)
39
39
  records = if File.exist?(record_file)
40
- YAML.load_file(record_file)
40
+ YAML.safe_load(File.read(record_file), permitted_classes: [Date])
41
41
  .filter { |record| record['start_date'] > this_year.prev_year(11) && record['end_date'] < this_year }
42
42
  .sort { |a, b| a['start_date'] <=> b['start_date'] }
43
43
  else
@@ -24,7 +24,7 @@
24
24
  </ARC00040>
25
25
  <ARC00100>
26
26
  <% ['ARC00110', 'ARC00120'].each do |code| %>
27
- <%= render_attr(code, (@法人税等 - [法人税損金納付額, 都道府県民税損金納付, 市民税損金納付, 事業税損金納付].compact.sum)) %>
27
+ <%= render_attr(code, 当期納税充当金) %>
28
28
  <% end %>
29
29
  </ARC00100>
30
30
  <%= 別表四還付事業税 %>
@@ -38,7 +38,7 @@
38
38
  <% end %>
39
39
  <ARC00325>
40
40
  <% ['ARC00330', 'ARC00340'].each do |code| %>
41
- <%= render_attr(code, [@法人税等, @当期還付事業税, 法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
41
+ <%= render_attr(code, [@法人税等, @当期還付事業税, @当期還付法人税, @当期還付都道府県住民税, 法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
42
42
  <% end %>
43
43
  </ARC00325>
44
44
  </ARC00000>
@@ -71,7 +71,7 @@
71
71
  <% end %>
72
72
  <ARD00280>
73
73
  <% ['ARD00290', 'ARD00300'].each do |code| %>
74
- <%= render_attr(code, [@納付事業税, @翌期還付事業税, 法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
74
+ <%= render_attr(code, [@納付事業税, @翌期還付事業税, @当期還付法人税, @当期還付都道府県住民税, @当期還付市民税, 法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
75
75
  <% end %>
76
76
  </ARD00280>
77
77
  </ARD00000>
@@ -22,10 +22,10 @@
22
22
  <ICB00460>
23
23
  <%= render_attr('ICB00470', 期首納税充当金) %>
24
24
  <ICB00480>
25
- <%= render_attr('ICB00490', @納税充当金期中減) %>
26
- <%= render_attr('ICB00500', @納税充当金期中増) %>
25
+ <%= render_attr('ICB00490', 納税充当金期中減) %>
26
+ <%= render_attr('ICB00500', 当期納税充当金) %>
27
27
  </ICB00480>
28
- <%= render_attr('ICB00510', @納税充当金期中増) %>
28
+ <%= render_attr('ICB00510', 当期納税充当金) %>
29
29
  </ICB00460>
30
30
  <ICB00520>
31
31
  <ICB00530>
@@ -45,10 +45,10 @@
45
45
  <%= render_attr('ICB00650', @都道府県民税期中減 + @都道府県民税中間納付) %>
46
46
  <ICB00660>
47
47
  <%= render_attr('ICB00670', @都道府県民税中間納付) %>
48
- <%= render_attr('ICB00680', 期末未納都道府県民税) %>
48
+ <%= render_attr('ICB00680', 確定都道府県住民税) %>
49
49
  </ICB00660>
50
50
  </ICB00640>
51
- <%= render_attr('ICB00700', 期末未納都道府県民税) %>
51
+ <%= render_attr('ICB00700', 確定都道府県住民税) %>
52
52
  </ICB00620>
53
53
  <ICB00710>
54
54
  <%= render_attr('ICB00720', 期首未納市民税) %>
@@ -56,10 +56,10 @@
56
56
  <%= render_attr('ICB00740', @市民税期中減 + @市民税中間納付) %>
57
57
  <ICB00750>
58
58
  <%= render_attr('ICB00760', @市民税中間納付) %>
59
- <%= render_attr('ICB00770', 期末未納市民税) %>
59
+ <%= render_attr('ICB00770', (確定市民税 - 市民税損金納付)) %>
60
60
  </ICB00750>
61
61
  </ICB00730>
62
- <%= render_attr('ICB00790', 期末未納市民税) %>
62
+ <%= render_attr('ICB00790', (確定市民税 - 市民税損金納付)) %>
63
63
  </ICB00710>
64
64
  </ICB00520>
65
65
  <ICB00800>
@@ -46,6 +46,7 @@
46
46
  </IEB00310>
47
47
  </IEB00170>
48
48
  <IEB00360>
49
+ <%= render_attr('IEB00370', @当期還付法人税 * -1) %>
49
50
  <%= render_attr('IEB00380', 期首未納法人税) %>
50
51
  <%= render_attr('IEB00390', @法人税期中増) %>
51
52
  <IEB00400>
@@ -99,11 +100,12 @@
99
100
  <%= render_attr('IEC00450', (確定都道府県住民税 - @都道府県民税中間納付)) %>
100
101
  <IEC00460>
101
102
  <%= render_attr('IEC00470', @翌期還付都道府県住民税 * -1) %>
102
- <%= render_attr('IEC00480', 期末未納都道府県民税) %>
103
+ <%= render_attr('IEC00480', (確定都道府県住民税 - 都道府県民税損金納付)) %>
103
104
  </IEC00460>
104
105
  </IEC00440>
105
106
  </IEC00170>
106
107
  <IEC00490>
108
+ <%= render_attr('IEC00500', @当期還付都道府県住民税 * -1) %>
107
109
  <%= render_attr('IEC00510', 期首未納都道府県民税) %>
108
110
  <%= render_attr('IEC00520', @都道府県民税期中増) %>
109
111
  <IEC00530>
@@ -120,7 +122,7 @@
120
122
  </IEC00530>
121
123
  <IEC00630>
122
124
  <%= render_attr('IEC00640', @翌期還付都道府県住民税 * -1) %>
123
- <%= render_attr('IEC00650', 期末未納都道府県民税) %>
125
+ <%= render_attr('IEC00650', (確定都道府県住民税 - 都道府県民税損金納付)) %>
124
126
  </IEC00630>
125
127
  </IEC00490>
126
128
  </IEC00000>
@@ -157,11 +159,12 @@
157
159
  <%= render_attr('IED00320', (確定市民税 - @市民税中間納付)) %>
158
160
  <IED00330>
159
161
  <%= render_attr('IED00340', @翌期還付市民税 * -1) %>
160
- <%= render_attr('IED00350', 期末未納市民税) %>
162
+ <%= render_attr('IED00350', (確定市民税 - 市民税損金納付)) %>
161
163
  </IED00330>
162
164
  </IED00310>
163
165
  </IED00170>
164
166
  <IED00360>
167
+ <%= render_attr('IED00370', @当期還付市民税 * -1) %>
165
168
  <%= render_attr('IED00380', 期首未納市民税) %>
166
169
  <%= render_attr('IED00390', @市民税期中増) %>
167
170
  <IED00400>
@@ -178,7 +181,7 @@
178
181
  </IED00400>
179
182
  <IED00500>
180
183
  <%= render_attr('IED00510', @翌期還付市民税 * -1) %>
181
- <%= render_attr('IED00520', 期末未納市民税) %>
184
+ <%= render_attr('IED00520', (確定市民税 - 市民税損金納付)) %>
182
185
  </IED00500>
183
186
  </IED00360>
184
187
  </IED00000>
@@ -259,14 +262,14 @@
259
262
  <IEG00000>
260
263
  <%= render_attr('IEG00010', 期首納税充当金) %>
261
264
  <IEG00020>
262
- <%= render_attr('IEG00030', @納税充当金期中増) %>
263
- <%= render_attr('IEG00070', @納税充当金期中増) %>
265
+ <%= render_attr('IEG00030', 当期納税充当金) %>
266
+ <%= render_attr('IEG00070', 当期納税充当金) %>
264
267
  </IEG00020>
265
268
  <IEG00080>
266
- <%= render_attr('IEG00090', @納税充当金期中減 - @事業税期中減) %>
269
+ <%= render_attr('IEG00090', 納税充当金期中減 - @事業税期中減) %>
267
270
  <%= render_attr('IEG00100', @事業税期中減) %>
268
- <%= render_attr('IEG00180', @納税充当金期中減) %>
271
+ <%= render_attr('IEG00180', 納税充当金期中減) %>
269
272
  </IEG00080>
270
- <%= render_attr('IEG00190', @納税充当金期中増) %>
273
+ <%= render_attr('IEG00190', 当期納税充当金) %>
271
274
  </IEG00000>
272
275
  </HOA522>
@@ -0,0 +1,143 @@
1
+ <R0504AA180 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="180" page="" seiseiSoft="<%= @software %>" seiseiVr="1" seiseiDay="<%= Date.today.strftime('%Y%m%d') %>" seiseiNM="<%= it_part_config('nozeisha_nm') %>" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
2
+ <AAA00100 idref="SEIRI_NUM" />
3
+ <AAA00200 idref="JIMUSHO_NUM"></AAA00200>
4
+ <AAA00300 idref="HOJIN_NUM"></AAA00300>
5
+ <AAA00400 />
6
+ <AAA00500 idref="HOJIN_NUMBER"></AAA00500>
7
+ <AAA00700 idref="RPT_DATE">
8
+ <gen:era></gen:era>
9
+ <gen:yy></gen:yy>
10
+ <gen:mm></gen:mm>
11
+ <gen:dd></gen:dd>
12
+ </AAA00700>
13
+ <AAA00800>
14
+ <gen:era><%= gengou(@issue_date) %></gen:era>
15
+ <gen:yy><%= wareki(@issue_date) %></gen:yy>
16
+ <gen:mm><%= @issue_date.month %></gen:mm>
17
+ <gen:dd><%= @issue_date.day %></gen:dd>
18
+ </AAA00800>
19
+ <AAA00900 idref="ORG1_NAME"></AAA00900>
20
+ <AAA_HONTEN_ZIP idref="HONTEN_ZIP"></AAA_HONTEN_ZIP>
21
+ <AAA_HONTEN_ADDR idref="HONTEN_ADDR"></AAA_HONTEN_ADDR>
22
+ <AAA_HONTEN_TEL_NUM idref="HONTEN_TEL"></AAA_HONTEN_TEL_NUM>
23
+ <AAA_ZIP />
24
+ <AAA_ADDR />
25
+ <AAA_TEL_NUM />
26
+ <AAA_KANA idref="KANA"></AAA_KANA>
27
+ <AAA_NAME idref="NAME"></AAA_NAME>
28
+ <AAA_DAIHYO_KANA idref="DAIHYO_KANA"></AAA_DAIHYO_KANA>
29
+ <AAA_DAIHYO_NAME idref="DAIHYO_NAME"></AAA_DAIHYO_NAME>
30
+ <AAA01000>
31
+ <gen:era />
32
+ <gen:yy />
33
+ <gen:mm />
34
+ <gen:dd />
35
+ <gen:yyyymmdd />
36
+ </AAA01000>
37
+ <AAA01100 />
38
+ <AAA01200 />
39
+ <AAA_JIGYO_NAME idref="JIGYO_NAME"></AAA_JIGYO_NAME>
40
+ <AAA_SHIHON idref="SHIHON"></AAA_SHIHON>
41
+ <AAA_SHIHON2><%= 資本金等の額 %></AAA_SHIHON2>
42
+ <AAA_SHIHON3><%= @資本金準備金 %></AAA_SHIHON3>
43
+ <AAA_SHIHON4><%= 地方税資本金等の額 %></AAA_SHIHON4>
44
+ <AAA_KEIRI_KANA></AAA_KEIRI_KANA>
45
+ <AAA_KEIRI_NAME></AAA_KEIRI_NAME>
46
+ <AAA_JIGYO_SDATE idref="SDATE">
47
+ <gen:era></gen:era>
48
+ <gen:yy></gen:yy>
49
+ <gen:mm></gen:mm>
50
+ <gen:dd></gen:dd>
51
+ <gen:yyyymmdd></gen:yyyymmdd>
52
+ </AAA_JIGYO_SDATE>
53
+ <AAA_JIGYO_EDATE idref="EDATE">
54
+ <gen:era></gen:era>
55
+ <gen:yy></gen:yy>
56
+ <gen:mm></gen:mm>
57
+ <gen:dd></gen:dd>
58
+ <gen:yyyymmdd></gen:yyyymmdd>
59
+ </AAA_JIGYO_EDATE>
60
+ <AAA_RPT_KBN idref="RPT_NAME">確定</AAA_RPT_KBN>
61
+ <AAA01300 />
62
+ <AAB00100 />
63
+ <AAB00110><%= @税額.dig(:houjin, :kokuzei) %></AAB00110>
64
+ <AAB00200 />
65
+ <AAB00400 />
66
+ <AAB00500 />
67
+ <AAB00600><%= 法人税割課税標準 %></AAB00600>
68
+ <AAB00610><%= 法人税割税率[1] %></AAB00610>
69
+ <AAB00620><%= 法人税割[1] %></AAB00620>
70
+ <AAB00700 />
71
+ <AAB00710 />
72
+ <AAB00720 />
73
+ <AAB00730 />
74
+ <AAB00750 />
75
+ <AAB00800 />
76
+ <AAB00900 />
77
+ <AAB01000><%= 法人税割[1] %></AAB01000>
78
+ <AAB01100><%= @法人税割中間納付 %></AAB01100>
79
+ <AAB01200 />
80
+ <AAB01300><%= @確定法人税割 - @法人税割中間納付 %></AAB01300>
81
+ <AAB01400>12</AAB01400>
82
+ <AAB01410><%= @均等割 %></AAB01410>
83
+ <AAB01420><%= @均等割 %></AAB01420>
84
+ <AAB01500><%= @均等割中間納付 %></AAB01500>
85
+ <AAB01600><%= @均等割 - @均等割中間納付 %></AAB01600>
86
+ <AAB01700><%= 納付税額(@確定法人税割, @法人税割中間納付) + 納付税額(@均等割, @均等割中間納付) %></AAB01700>
87
+ <AAB01800 />
88
+ <AAB01900><%= 納付税額(@確定法人税割, @法人税割中間納付) + 納付税額(@均等割, @均等割中間納付) %></AAB01900>
89
+ <AAC00100>
90
+ <AAC00200><%= @jigyosho_name %></AAC00200>
91
+ <AAC00300><%= @address %></AAC00300>
92
+ <AAC00400><%= @employee %></AAC00400>
93
+ <AAC00500><%= @employee %></AAC00500>
94
+ </AAC00100>
95
+ <AAC00600><%# 全従業者数 %></AAC00600>
96
+ <AAC00700><%= @employee %></AAC00700>
97
+ <AAC00800><%= @employee %></AAC00800>
98
+ <AAD00100>
99
+ <AAD00200 />
100
+ <AAD00300 />
101
+ <AAD00400 />
102
+ <AAD00500 />
103
+ <AAD00600 />
104
+ </AAD00100>
105
+ <AAE00100>
106
+ <gen:era />
107
+ <gen:yy />
108
+ <gen:mm />
109
+ <gen:dd />
110
+ </AAE00100>
111
+ <AAE01000>
112
+ <gen:era />
113
+ <gen:yy />
114
+ <gen:mm />
115
+ <gen:dd />
116
+ </AAE01000>
117
+ <AAE01100>
118
+ <gen:era />
119
+ <gen:yy />
120
+ <gen:mm />
121
+ <gen:dd />
122
+ </AAE01100>
123
+ <AAE00200>1</AAE00200><%# 青色申告 %>
124
+ <AAE00300><%= @税額.dig(:houjin, :kokuzei) > 200000 ? 1 : 2 %></AAE00300>
125
+ <AAE00400>
126
+ <gen:era />
127
+ <gen:yy />
128
+ <gen:mm />
129
+ <gen:dd />
130
+ </AAE00400>
131
+ <AAE00500>
132
+ <gen:era />
133
+ <gen:yy />
134
+ <gen:mm />
135
+ <gen:dd />
136
+ </AAE00500>
137
+ <AAE00600>2</AAE00600>
138
+ <AAE00700><%= eltax_kouza %></AAE00700>
139
+ <AAE00800><%= 中間還付税額(@確定法人税割, @法人税割中間納付) %></AAE00800>
140
+ <AAE00900 />
141
+ <AAJ_DAIRI_NAME></AAJ_DAIRI_NAME>
142
+ <AAJ_DAIRI_TEL_NUM></AAJ_DAIRI_TEL_NUM>
143
+ </R0504AA180>
@@ -137,7 +137,6 @@
137
137
  <AGF00300 />
138
138
  <AGF00400><%= "12" if @employee > 50 %></AGF00400>
139
139
  <AGF00500><%= @均等割 if @employee > 50 %></AGF00500>
140
- <AGF00200 />
141
140
  <AGF00600><%= @均等割 if @employee <= 50 %></AGF00600>
142
141
  <AGF00700 />
143
142
  <AGF00800 />
@@ -136,18 +136,18 @@
136
136
  <AAE01500><%= @所得割 - 事業税中間納付 %></AAE01500>
137
137
  <%= render_attr('AAK00100', @所得割) %>
138
138
  <%= render_attr('AAK00200', 37) %>
139
- <%= render_attr('AAK00300', 地方法人特別税(@所得割)) %>
139
+ <%= render_attr('AAK00300', 特別法人事業税(@所得割)) %>
140
140
  <AAK00400 />
141
141
  <AAK00500 />
142
142
  <AAK00600 />
143
- <%= render_attr('AAK00700', 地方法人特別税(@所得割)) %>
143
+ <%= render_attr('AAK00700', 特別法人事業税(@所得割)) %>
144
144
  <AAK00800 />
145
- <%= render_attr('AAK00850', 地方法人特別税(@所得割)) %>
145
+ <%= render_attr('AAK00850', 特別法人事業税(@所得割)) %>
146
146
  <%= render_attr('AAK00900', @地方特別法人事業税中間納付) %>
147
147
  <AAK01000 />
148
- <AAK01100><%= 地方法人特別税(@所得割) - @地方特別法人事業税中間納付 %></AAK01100>
148
+ <AAK01100><%= 特別法人事業税(@所得割) - @地方特別法人事業税中間納付 %></AAK01100>
149
149
  <AAK01200 />
150
- <AAK01300><%= 地方法人特別税(@所得割) - @地方特別法人事業税中間納付 %></AAK01300>
150
+ <AAK01300><%= 特別法人事業税(@所得割) - @地方特別法人事業税中間納付 %></AAK01300>
151
151
  <%= render_attr('AAF00100', 当期所得金額) %>
152
152
  <AAF00200 />
153
153
  <AAF00300 />
@@ -157,7 +157,7 @@
157
157
  <%= render_attr('AAF00700', @繰越損失管理.deduction) %>
158
158
  <%= render_attr('AAG00100', 所得金額) %>
159
159
  <AAH00100 />
160
- <AAH00200><%= 中間還付税額(@確定法人税割, @法人税割中間納付) + 中間還付税額(@所得割, 事業税中間納付) + 中間還付税額(地方法人特別税(@所得割), @地方特別法人事業税中間納付) %></AAH00200>
160
+ <AAH00200><%= 中間還付税額(@確定法人税割, @法人税割中間納付) + 中間還付税額(@所得割, 事業税中間納付) + 中間還付税額(特別法人事業税(@所得割), @地方特別法人事業税中間納付) %></AAH00200>
161
161
  <AAH00400><%= eltax_kouza %></AAH00400>
162
162
  <AAI00100>
163
163
  <gen:era />
@@ -104,7 +104,7 @@
104
104
  <%= render_attr('IAF02100', '<kubun_CD>2</kubun_CD>') %>
105
105
  <%= render_attr('IAF02200', '<kubun_CD>2</kubun_CD>') %>
106
106
  <%= render_attr('IAF02300', '<kubun_CD>1</kubun_CD>') %>
107
- <% elsif gaikyo_config('shisanhyou') < 12 %>
107
+ <% elsif gaikyo_config('shisanhyou')&.< 12 %>
108
108
  <%= render_attr('IAF02100', '<kubun_CD>2</kubun_CD>') %>
109
109
  <%= render_attr('IAF02200', '<kubun_CD>1</kubun_CD>') %>
110
110
  <%= render_attr('IAF02250', gaikyo_config('shisanhyou')) %>
data/lib/luca/jp/util.rb CHANGED
@@ -21,10 +21,10 @@ module Luca
21
21
  end
22
22
  end
23
23
 
24
- def prepaid_tax(code)
25
- #LucaSupport::Code.readable(@bs_data.dig(code) || 0)
24
+ def prepaid_tax(code, customer = nil)
26
25
  search_end = @end_date.prev_month # exclude year end adjustment
27
- amount, _ = self.class.net(@start_date.year, @start_date.month, search_end.year, search_end.month, code: code)
26
+ header = { customer: customer } unless customer.nil?
27
+ amount, _ = self.class.net(@start_date.year, @start_date.month, search_end.year, search_end.month, code: code, header: header)
28
28
  LucaSupport::Code.readable(amount[code] || 0)
29
29
  end
30
30
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Luca
4
4
  module Jp
5
- VERSION = '0.9.0'
5
+ VERSION = '0.13.0'
6
6
  end
7
7
  end
data/lib/luca/jp.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'date'
3
4
  require 'luca/jp/version'
4
5
  require 'luca_support/config'
5
6
 
@@ -18,7 +19,7 @@ module Luca
18
19
  end
19
20
 
20
21
  EX_CONF = begin
21
- YAML.load_file(Pathname(LucaSupport::PJDIR) / 'config-lucajp.yml')
22
+ YAML.safe_load(File.read(Pathname(LucaSupport::PJDIR) / 'config-lucajp.yml'), permitted_classes: [Date])
22
23
  rescue Errno::ENOENT
23
24
  nil
24
25
  end
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.9.0
4
+ version: 0.13.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: 2022-03-15 00:00:00.000000000 Z
11
+ date: 2022-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucabook
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.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'
26
+ version: '0.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -98,6 +98,7 @@ files:
98
98
  - lib/luca/jp/templates/beppyo7.xml.erb
99
99
  - lib/luca/jp/templates/chidai-meisai.xml.erb
100
100
  - lib/luca/jp/templates/consumption.xtx.erb
101
+ - lib/luca/jp/templates/el-no20.xml.erb
101
102
  - lib/luca/jp/templates/el-no6-43.xml.erb
102
103
  - lib/luca/jp/templates/el-no6-9.xml.erb
103
104
  - lib/luca/jp/templates/el-no6.xml.erb