luca-jp 0.7.0 → 0.9.0

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: 3b66dbdc4bfe4b3dbde23a58cfff90901ca05fd0dc5b4b180c6f7229a24e499a
4
- data.tar.gz: d90a7ae0ff13f5843aaec9fe482c6751bda8d50f87e7ff29f7a61635640f18ed
3
+ metadata.gz: 4397cf29a4b348c06c854a7317bf1c7a63feef296635ffe5d8cc8ab237a5ca86
4
+ data.tar.gz: 8f0e650b20dcd79af950dfaf09b3e5df4f7e32094651d3661fe7f232c58685fd
5
5
  SHA512:
6
- metadata.gz: 38b0a53ff70c2b5d145be4725d9866c6c37d727e14463acfe4e044c52fc30f977f2a44e70a2971ee882374c6529d5b1becca360e11bed9108e48bd1104dded06
7
- data.tar.gz: 4ca2bae386c0a17f36454af98dbd8a1273b5756e12cc65ba73d790446e6376e3bd1384fc976931c5eb4b2404b84594e8743eb4f9f910bf632818e4e4daee9310
6
+ metadata.gz: 25b4554065a779fee709b1f32e0120cfddf0ce23fa80397ff470f54d2a20604246781dee7c29c8f565477fedb32aa37a18398053b2411d92db1dd4e6002ce123
7
+ data.tar.gz: ba9dd2935aba7e2609278732f1db875d0896587db70605519282f94eca98264e0f51cc2d2f25ab12249477750c4debfcf74d73b472679367429a25dad2ffb9a1
data/exe/luca-jp CHANGED
@@ -22,9 +22,14 @@ class LucaCmd
22
22
 
23
23
  def self.chihouzei(args, params)
24
24
  if params[:export]
25
- Luca::Jp::Chihouzei.range(*args).export_json
25
+ accounts = Luca::Jp::Util.eltax_config('reports').map do |report|
26
+ Luca::Jp::Chihouzei.range(*args).export_json(report)
27
+ end
28
+ puts JSON.dump(accounts)
26
29
  else
27
- puts Luca::Jp::Chihouzei.range(*args).kani
30
+ Luca::Jp::Util.eltax_config('reports').each do |report|
31
+ File.open("chihouzei-#{report['jichitai_code']}#{report['jimusho_code']}.xml", 'w') { |f| f.puts(Luca::Jp::Chihouzei.range(*args).kani(report))}
32
+ end
28
33
  end
29
34
  end
30
35
 
data/lib/luca/jp/aoiro.rb CHANGED
@@ -135,16 +135,16 @@ module Luca
135
135
  @当期純損益 = readable(@pl_data.dig('HA'))
136
136
  @法人税等 = readable(@pl_data.dig('H0'))
137
137
  _, @納付事業税 = 未納事業税期中増減
138
- @別表四調整所得 = @当期純損益 + @法人税等 - @納付事業税
138
+ @当期還付事業税 = 還付事業税
139
+ @翌期還付事業税 = 中間還付税額(確定事業税, @事業税中間納付)
140
+ @別表四調整所得 = @当期純損益 + @法人税等 - @納付事業税 - @翌期還付事業税 + @当期還付事業税
139
141
 
140
142
  @当期還付法人税 = refund_tax('1502')
141
143
  @当期還付都道府県住民税 = refund_tax('1503')
142
144
  @翌期還付都道府県住民税 = 中間還付税額(@税額.dig(:kenmin, :kintou), @都道府県民税均等割中間納付) + 中間還付税額(@税額.dig(:kenmin, :houjinzei), @都道府県民税法人税割中間納付)
143
145
  @当期還付市民税 = refund_tax('1505')
144
146
  @翌期還付市民税 = 中間還付税額(@税額.dig(:shimin, :kintou), @市民税均等割中間納付) + 中間還付税額(@税額.dig(:shimin, :houjinzei), @市民税法人税割中間納付)
145
- @当期還付事業税 = 還付事業税
146
147
  @事業税期首残高 = 期首未納事業税 > 0 ? 期首未納事業税 : (@当期還付事業税 * -1)
147
- @翌期還付事業税 = 中間還付税額(確定事業税, @事業税中間納付)
148
148
  @仮払税金 = @翌期還付法人税 + @翌期還付都道府県住民税 + @翌期還付事業税 + @翌期還付市民税
149
149
 
150
150
  render_erb(search_template('beppyo4.xml.erb'))
@@ -158,7 +158,8 @@ module Luca
158
158
  @期首その他資本剰余金, @期末その他資本剰余金 = 期首期末残高('9132')
159
159
  @その他資本剰余金期中減, @その他資本剰余金期中増 = 純資産期中増減('9132')
160
160
  @期首自己株式, @期末自己株式 = 期首期末残高('916')
161
- @自己株式期中減, @自己株式期中増 = 純資産期中増減('916')
161
+ # 自己株式は負の純資産。借方集計は負の増加として認識
162
+ @自己株式期中増, @自己株式期中減 = 純資産期中増減('916').map { |t| t * -1 }
162
163
  @資本金等の額期中減, @資本金等の額期中増 = 資本金等の額期中増減
163
164
  render_erb(search_template('beppyo51.xml.erb'))
164
165
  end
@@ -319,7 +320,12 @@ module Luca
319
320
  return nil if beppyo2_config('total_shares').nil?
320
321
  return nil if beppyo2_config('owners').nil?
321
322
 
322
- (別表二上位株数 * 100.0 / beppyo2_config('total_shares')).round(1)
323
+ total = if beppyo2_config('own_shares').nil?
324
+ beppyo2_config('total_shares')
325
+ else
326
+ beppyo2_config('total_shares') - beppyo2_config('own_shares')
327
+ end
328
+ (別表二上位株数 * 100.0 / total).round(1)
323
329
  end
324
330
 
325
331
  def 別表二上位議決権数
@@ -332,7 +338,12 @@ module Luca
332
338
  return nil if beppyo2_config('total_votes').nil?
333
339
  return nil if beppyo2_config('owners').nil?
334
340
 
335
- (別表二上位議決権数 * 100.0 / beppyo2_config('total_votes')).round(1)
341
+ total = if beppyo2_config('no_votes').nil?
342
+ beppyo2_config('total_votes')
343
+ else
344
+ beppyo2_config('total_votes') - beppyo2_config('no_votes')
345
+ end
346
+ (別表二上位議決権数 * 100.0 / total).round(1)
336
347
  end
337
348
 
338
349
  # TODO: 特定同族会社の判定
@@ -541,12 +552,14 @@ module Luca
541
552
  # 資本金、資本準備金、その他資本剰余金、自己株式(控除)の合算
542
553
  #
543
554
  def 資本金等の額期中増減
544
- inc = ['911', '913', '916'].map do |code|
555
+ inc = ['911', '913'].map do |code|
545
556
  credit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) || 0
546
557
  end
547
- dec = ['911', '913', '916'].map do |code|
558
+ inc << (debit_amount('916', @start_date.year, @start_date.month, @end_date.year, @end_date.month)||0) * -1
559
+ dec = ['911', '913'].map do |code|
548
560
  debit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) || 0
549
561
  end
562
+ dec << (credit_amount('916', @start_date.year, @start_date.month, @end_date.year, @end_date.month)||0) * -1
550
563
 
551
564
  [readable(dec.sum), readable(inc.sum)]
552
565
  end
@@ -18,16 +18,13 @@ module Luca
18
18
  @dirname = 'journals'
19
19
  @record_type = 'raw'
20
20
 
21
- def kani(export: false)
21
+ def kani(report_cfg, export: false)
22
22
  set_pl(4)
23
23
  set_bs(4)
24
24
  @issue_date = Date.today
25
- @company = CGI.escapeHTML(config.dig('company', 'name'))
26
25
  @software = 'LucaJp'
27
- @jimusho_code = eltax_config('jimusho_code')
28
- @jimusho_name = eltax_config('jimusho_name')
29
- @app_version = eltax_config('app_version')
30
- @form_vers = proc_version
26
+ @report_category = report_cfg['type']
27
+ @employee = report_cfg['employee'] || 1
31
28
 
32
29
  @税額 = 税額計算
33
30
  @均等割 = @税額.dig(:kenmin, :kintou)
@@ -61,19 +58,42 @@ module Luca
61
58
  }
62
59
  }
63
60
  else
61
+ @company = CGI.escapeHTML(config.dig('company', 'name'))
62
+ @form_vers = proc_version
63
+ @jichitai_code = report_cfg['jichitai_code']
64
+ @jimusho_code = report_cfg['jimusho_code']
65
+ @jimusho_name = report_cfg['jimusho_name']
66
+ @kanri_bango = report_cfg['x_houjin_bango']
67
+ @app_version = report_cfg['app_version']
68
+ @address = report_cfg['address'] || it_part_config('nozeisha_adr')
64
69
  @procedure_code = 'R0102100'
65
70
  @procedure_name = '法人都道府県民税・事業税・特別法人事業税又は地方法人特別税 確定申告'
66
- @form_sec = ["R0102AA#{@form_vers['R0102AA']}", "R0102AG120", 別表九フォーム].compact.map{ |c| form_attr(c) }.join('')
71
+ @form_sec = case @report_category
72
+ when 'prefecture'
73
+ ["R0102AA#{@form_vers['R0102AA']}", 別表九フォーム]
74
+ .compact.map{ |c| form_attr(c) }.join('')
75
+ when '23ku'
76
+ ["R0102AA#{@form_vers['R0102AA']}", "R0102AG120", 別表九フォーム]
77
+ .compact.map{ |c| form_attr(c) }.join('')
78
+ when 'city'
79
+ # TODO: implement
80
+ end
67
81
  @user_inf = render_erb(search_template('eltax-userinf.xml.erb'))
68
- @form_data = [第六号, 別表四三, 別表九].compact.join("\n")
82
+ @form_data = case @report_category
83
+ when 'prefecture'
84
+ [第六号, 別表九].compact.join("\n")
85
+ when '23ku'
86
+ [第六号, 別表四三, 別表九].compact.join("\n")
87
+ when 'city'
88
+ # TODO: implement
89
+ end
69
90
  render_erb(search_template('eltax.xml.erb'))
70
91
  end
71
92
  end
72
93
 
73
- def export_json
74
- records = kani(export: true)
75
- [].tap do |res|
76
- item = {}
94
+ def export_json(report_cfg)
95
+ records = kani(report_cfg, export: true)
96
+ {}.tap do |item|
77
97
  item['date'] = @end_date
78
98
  item['debit'] = []
79
99
  item['credit'] = []
@@ -100,13 +120,12 @@ module Luca
100
120
  item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0
101
121
  end
102
122
  item['x-editor'] = 'LucaJp'
103
- res << item
104
- puts JSON.dump(res)
105
123
  end
106
124
  end
107
125
 
108
126
  def 第六号
109
- @資本金準備金 = eltax_config('shihon') || it_part_config('shihon_kin')
127
+ @資本金準備金 = readable(['911', '9131'].map { |cd| @bs_data.dig(cd) }.compact.sum)
128
+ STDERR.puts "第六号様式: 「決算確定の日」「国外関連者」などの追記が必要"
110
129
  render_erb(search_template('el-no6.xml.erb'))
111
130
  end
112
131
 
@@ -74,11 +74,12 @@ module Luca
74
74
 
75
75
  # 税引前当期利益をもとに計算
76
76
  # 消費税を租税公課に計上している場合、控除済みの金額
77
- # 未払事業税は精算時に認識
77
+ # 事業税は仮払経理の場合にも納付時損金/還付時益金
78
78
  #
79
79
  def 当期所得金額
80
80
  _, 納付事業税 = 未納事業税期中増減
81
- LucaSupport::Code.readable(@pl_data.dig('GA') - 納付事業税)
81
+ 事業税中間納付 = prepaid_tax('1854') + prepaid_tax('1855') + prepaid_tax('1856') + prepaid_tax('1857') + prepaid_tax('1858')
82
+ LucaSupport::Code.readable(@pl_data.dig('GA') - 納付事業税 - 事業税中間納付 + 還付事業税)
82
83
  end
83
84
 
84
85
  # -----------------------------------------------------
@@ -112,11 +113,23 @@ module Luca
112
113
  # -----------------------------------------------------
113
114
 
114
115
  def 均等割
115
- if config.dig('jp', 'eltax', 'office_23ku')
116
- [70_000, 0]
117
- else
118
- [20_000, 50_000]
119
- end
116
+ tax = if 地方税資本金等の額 <= 10_000_000
117
+ city = @employee > 50 ? 120_000 : 50_000
118
+ [20_000, city]
119
+ elsif 地方税資本金等の額 <= 100_000_000
120
+ city = @employee > 50 ? 150_000 : 130_000
121
+ [50_000, city]
122
+ elsif 地方税資本金等の額 <= 1_000_000_000
123
+ city = @employee > 50 ? 400_000 : 160_000
124
+ [130_000, city]
125
+ elsif 地方税資本金等の額 <= 5_000_000_000
126
+ city = @employee > 50 ? 1_750_000 : 410_000
127
+ [540_000, city]
128
+ else
129
+ city = @employee > 50 ? 3_000_000 : 410_000
130
+ [800_000, city]
131
+ end
132
+ tokyo23? ? [tax.sum, 0] : tax
120
133
  end
121
134
 
122
135
  # 100円未満切り捨て
@@ -126,11 +139,30 @@ module Luca
126
139
  else
127
140
  法人税割課税標準
128
141
  end
129
- if config.dig('jp', 'eltax', 'office_23ku')
130
- [(課税標準 * 7 / 100 / 100).floor * 100, 0]
131
- else
132
- [(課税標準 * 1 / 100 / 100).floor * 100, (課税標準 * 6 / 100 / 100).floor * 100]
133
- end
142
+ 税率 = 法人税割税率(課税標準)
143
+ [
144
+ (課税標準 * 税率[0] / 100 / 100).floor * 100,
145
+ (課税標準 * 税率[1] / 100 / 100).floor * 100
146
+ ]
147
+ end
148
+
149
+ def 法人税割税率(法人税 = nil)
150
+ 課税標準 = if 法人税
151
+ (法人税 / 1000).floor * 1000
152
+ else
153
+ 法人税割課税標準
154
+ end
155
+ rate = if 期末資本金 > 100_000_000 || 課税標準 > 10_000_000
156
+ [2.0, 8.4]
157
+ else
158
+ [1.0, 6.0]
159
+ end
160
+ tokyo23? ? [rate.sum, 0] : rate
161
+ end
162
+
163
+ # 100円未満切り捨て
164
+ def 所得割400万以下(所得 = nil)
165
+ ((所得400万以下(所得) * 所得割税率400万以下(所得) / 100) / 100).floor * 100
134
166
  end
135
167
 
136
168
  def 所得400万以下(所得 = nil)
@@ -144,9 +176,18 @@ module Luca
144
176
  end
145
177
  end
146
178
 
179
+ def 所得割税率400万以下(所得 = nil)
180
+ 所得 ||= 所得金額
181
+ if 期末資本金 > 100_000_000 || 所得 > 25_000_000
182
+ 軽減税率不適用法人 ? 7.48 : 3.75
183
+ else
184
+ 軽減税率不適用法人 ? 7.0 : 3.5
185
+ end
186
+ end
187
+
147
188
  # 100円未満切り捨て
148
- def 所得割400万以下(所得 = nil)
149
- ((所得400万以下(所得) * 3.5 / 100) / 100).floor * 100
189
+ def 所得割800万以下(所得 = 0)
190
+ ((所得800万以下(所得) * 所得割税率800万以下(所得) / 100) / 100).floor * 100
150
191
  end
151
192
 
152
193
  def 所得800万以下(所得 = nil)
@@ -162,9 +203,18 @@ module Luca
162
203
  end
163
204
  end
164
205
 
206
+ def 所得割税率800万以下(所得 = nil)
207
+ 所得 ||= 所得金額
208
+ if 期末資本金 > 100_000_000 || 所得 > 25_000_000
209
+ 軽減税率不適用法人 ? 7.48 : 5.665
210
+ else
211
+ 軽減税率不適用法人 ? 7.0 : 5.3
212
+ end
213
+ end
214
+
165
215
  # 100円未満切り捨て
166
- def 所得割800万以下(所得 = nil)
167
- ((所得800万以下(所得) * 5.3 / 100) / 100).floor * 100
216
+ def 所得割800万超(所得 = 0)
217
+ ((所得800万超(所得) * 所得割税率800万超(所得) / 100) / 100).floor * 100
168
218
  end
169
219
 
170
220
  def 所得800万超(所得 = nil)
@@ -178,9 +228,13 @@ module Luca
178
228
  end
179
229
  end
180
230
 
181
- # 100円未満切り捨て
182
- def 所得割800万超(所得 = nil)
183
- ((所得800万超(所得) * 7.0 / 100) / 100).floor * 100
231
+ def 所得割税率800万超(所得 = nil)
232
+ 所得 ||= 所得金額
233
+ if 期末資本金 > 100_000_000 || 所得 > 25_000_000
234
+ 7.48
235
+ else
236
+ 7.0
237
+ end
184
238
  end
185
239
 
186
240
  # 100円未満切り捨て
@@ -234,7 +288,15 @@ module Luca
234
288
  # :section: 外形標準の計算
235
289
  # -----------------------------------------------------
236
290
  def 資本金等の額
237
- readable(@bs_data.dig('911') + @bs_data.dig('913'))
291
+ readable(['911', '913', '916'].map { |cd| @bs_data.dig(cd) }.compact.sum)
292
+ end
293
+
294
+ def 地方税資本金等の額
295
+ [資本金等の額, readable(['911', '9131'].map { |cd| @bs_data.dig(cd) }.compact.sum)].max
296
+ end
297
+
298
+ def 軽減税率不適用法人
299
+ 期末資本金 > 10_000_000 && eltax_config('no_keigen')
238
300
  end
239
301
 
240
302
  def 期末資本金
@@ -7,10 +7,12 @@
7
7
  <VAA00040 IDREF="NOZEISHA_NM"/>
8
8
  </VAA00000>
9
9
  <VAB00000>
10
+ <%= render_attr('VAB00005', beppyo2_config('own_shares')) %>
10
11
  <%= render_attr('VAB00010', beppyo2_config('total_shares')) %>
11
12
  <%= render_attr('VAB00020', 別表二上位株数) %>
12
13
  <%= render_attr('VAB00030', 別表二上位株割合) %>
13
14
  <VAB00040>
15
+ <%= render_attr('VAB00050', beppyo2_config('no_votes')) %>
14
16
  <%= render_attr('VAB00060', beppyo2_config('total_votes')) %>
15
17
  </VAB00040>
16
18
  <%= render_attr('VAB00070', 別表二上位議決権数) %>
@@ -7,82 +7,107 @@
7
7
  <ARA00040 IDREF="NOZEISHA_NM"/>
8
8
  </ARA00000>
9
9
  <ARB00000>
10
- <%= render_attr('ARB00010', @当期純損益) %>
11
- <%= render_attr('ARB00020', @当期純損益) %>
10
+ <% ['ARB00010', 'ARB00020'].each do |code| %>
11
+ <%= render_attr(code, @当期純損益) %>
12
+ <% end %>
12
13
  </ARB00000>
13
14
  <ARC00000>
14
15
  <ARC00010>
15
- <%= render_attr('ARC00020', 法人税損金納付額 + 法人税仮払納付額) %>
16
- <%= render_attr('ARC00030', 法人税損金納付額 + 法人税仮払納付額) %>
16
+ <% ['ARC00020', 'ARC00030'].each do |code| %>
17
+ <%= render_attr(code, 法人税損金納付額 + 法人税仮払納付額) %>
18
+ <% end %>
17
19
  </ARC00010>
18
20
  <ARC00040>
19
- <%= render_attr('ARC00050', (都道府県民税損金納付 + 市民税損金納付 + 都道府県民税仮払納付 + 市民税仮払納付)) %>
20
- <%= render_attr('ARC00060', (都道府県民税損金納付 + 市民税損金納付 + 都道府県民税仮払納付 + 市民税仮払納付)) %>
21
+ <% ['ARC00050', 'ARC00060'].each do |code| %>
22
+ <%= render_attr(code, [都道府県民税損金納付, 市民税損金納付, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
23
+ <% end %>
21
24
  </ARC00040>
22
25
  <ARC00100>
23
- <%= render_attr('ARC00110', (@法人税等 - 法人税損金納付額 - 都道府県民税損金納付 - 市民税損金納付 - 事業税損金納付)) %>
24
- <%= render_attr('ARC00120', (@法人税等 - 法人税損金納付額 - 都道府県民税損金納付 - 市民税損金納付 - 事業税損金納付)) %>
26
+ <% ['ARC00110', 'ARC00120'].each do |code| %>
27
+ <%= render_attr(code, (@法人税等 - [法人税損金納付額, 都道府県民税損金納付, 市民税損金納付, 事業税損金納付].compact.sum)) %>
28
+ <% end %>
25
29
  </ARC00100>
26
30
  <%= 別表四還付事業税 %>
27
31
  <% if (@当期還付法人税 + @当期還付都道府県住民税 + @当期還付市民税) > 0 %>
28
32
  <ARC00220>
29
33
  <%= render_attr('ARC00230', '前期仮払税金否認') %>
30
- <%= render_attr('ARC00240', (@当期還付法人税 + @当期還付都道府県住民税 + @当期還付市民税)) %>
31
- <%= render_attr('ARC00250', (@当期還付法人税 + @当期還付都道府県住民税 + @当期還付市民税)) %>
34
+ <% ['ARC00240', 'ARC00250'].each do |code| %>
35
+ <%= render_attr(code, [@当期還付法人税, @当期還付都道府県住民税, @当期還付市民税].compact.sum) %>
36
+ <% end %>
32
37
  </ARC00220>
33
38
  <% end %>
34
39
  <ARC00325>
35
- <%= render_attr('ARC00330', @法人税等 + @当期還付事業税 + 法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付) %>
36
- <%= render_attr('ARC00340', @法人税等 + @当期還付事業税 + 法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付) %>
40
+ <% ['ARC00330', 'ARC00340'].each do |code| %>
41
+ <%= render_attr(code, [@法人税等, @当期還付事業税, 法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
42
+ <% end %>
37
43
  </ARC00325>
38
44
  </ARC00000>
39
45
  <ARD00000>
40
46
  <ARD00040>
41
- <%= render_attr('ARD00050', @納付事業税) %>
42
- <%= render_attr('ARD00060', @納付事業税) %>
47
+ <% ['ARD00050', 'ARD00060'].each do |code| %>
48
+ <%= render_attr(code, @納付事業税) %>
49
+ <% end %>
43
50
  </ARD00040>
44
51
  <ARD00100>
45
- <%= render_attr('ARD00110', @当期還付法人税 + @当期還付都道府県住民税 + @当期還付市民税) %>
46
- <%= render_attr('ARD00120', @当期還付法人税 + @当期還付都道府県住民税 + @当期還付市民税) %>
52
+ <% ['ARD00110', 'ARD00120'].each do |code| %>
53
+ <%= render_attr(code, [@当期還付法人税, @当期還付都道府県住民税, @当期還付市民税].compact.sum) %>
54
+ <% end %>
47
55
  </ARD00100>
48
56
  <% if (法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付) > 0 %>
49
57
  <ARD00215>
50
58
  <%= render_attr('ARD00220', '仮払税金認定損') %>
51
- <%= render_attr('ARD00230', (法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付)) %>
52
- <%= render_attr('ARD00240', (法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付)) %>
59
+ <% ['ARD00230', 'ARD00240'].each do |code| %>
60
+ <%= render_attr(code, [法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
61
+ <% end %>
62
+ </ARD00215>
63
+ <% end %>
64
+ <% if @翌期還付事業税 > 0 %>
65
+ <ARD00215>
66
+ <%= render_attr('ARD00220', '仮払事業税認定損') %>
67
+ <% ['ARD00230', 'ARD00240'].each do |code| %>
68
+ <%= render_attr(code, @翌期還付事業税) %>
69
+ <% end %>
53
70
  </ARD00215>
54
71
  <% end %>
55
72
  <ARD00280>
56
- <%= render_attr('ARD00290', (@納付事業税 + 法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付)) %>
57
- <%= render_attr('ARD00300', (@納付事業税 + 法人税仮払納付額 + 都道府県民税仮払納付 + 市民税仮払納付)) %>
73
+ <% ['ARD00290', 'ARD00300'].each do |code| %>
74
+ <%= render_attr(code, [@納付事業税, @翌期還付事業税, 法人税仮払納付額, 都道府県民税仮払納付, 市民税仮払納付].compact.sum) %>
75
+ <% end %>
58
76
  </ARD00280>
59
77
  </ARD00000>
60
78
  <ARE00000>
61
- <%= render_attr('ARE00010', @別表四調整所得) %>
62
- <%= render_attr('ARE00020', @別表四調整所得) %>
79
+ <% ['ARE00010', 'ARE00020'].each do |code| %>
80
+ <%= render_attr(code, @別表四調整所得) %>
81
+ <% end %>
63
82
  </ARE00000>
64
83
  <ARZ10000>
65
- <%= render_attr('ARZ10010', @別表四調整所得) %>
66
- <%= render_attr('ARZ10020', @別表四調整所得) %>
84
+ <% ['ARZ10010', 'ARZ10020'].each do |code| %>
85
+ <%= render_attr(code, @別表四調整所得) %>
86
+ <% end %>
67
87
  </ARZ10000>
68
88
  <ARK00000>
69
- <%= render_attr('ARK00010', @別表四調整所得) %>
70
- <%= render_attr('ARK00020', @別表四調整所得) %>
89
+ <% ['ARK00010', 'ARK00020'].each do |code| %>
90
+ <%= render_attr(code, @別表四調整所得) %>
91
+ <% end %>
71
92
  </ARK00000>
72
93
  <ARM00000>
73
- <%= render_attr('ARM00010', @別表四調整所得) %>
74
- <%= render_attr('ARM00020', @別表四調整所得) %>
94
+ <% ['ARM00010', 'ARM00020'].each do |code| %>
95
+ <%= render_attr(code, @別表四調整所得) %>
96
+ <% end %>
75
97
  </ARM00000>
76
98
  <ARS00000>
77
- <%= render_attr('ARS00010', @別表四調整所得) %>
78
- <%= render_attr('ARS00020', @別表四調整所得) %>
99
+ <% ['ARS00010', 'ARS00020'].each do |code| %>
100
+ <%= render_attr(code, @別表四調整所得) %>
101
+ <% end %>
79
102
  </ARS00000>
80
103
  <ART00000>
81
- <%= render_attr('ART00010', @繰越損失管理.deduction) %>
82
- <%= render_attr('ART00020', @繰越損失管理.deduction) %>
104
+ <% ['ART00010', 'ART00020'].each do |code| %>
105
+ <%= render_attr(code, @繰越損失管理.deduction) %>
106
+ <% end %>
83
107
  </ART00000>
84
108
  <ARV00000>
85
- <%= render_attr('ARV00010', @別表四調整所得 - @繰越損失管理.deduction) %>
86
- <%= render_attr('ARV00020', @別表四調整所得 - @繰越損失管理.deduction) %>
109
+ <% ['ARV00010', 'ARV00020'].each do |code| %>
110
+ <%= render_attr(code, @別表四調整所得 - @繰越損失管理.deduction) %>
111
+ <% end %>
87
112
  </ARV00000>
88
113
  </HOA420>
@@ -8,9 +8,9 @@
8
8
  <gen:yyyymmdd></gen:yyyymmdd>
9
9
  </AGA_JIGYO_EDATE>
10
10
  <AGA_NAME idref="NAME"></AGA_NAME>
11
- <AGB00100><%= @office_23ku %></AGB00100>
11
+ <AGB00100><%= @address %></AGB00100>
12
12
  <AGB00200>12</AGB00200>
13
- <AGB00300 />
13
+ <AGB00300><%= @employee %></AGB00300>
14
14
  <AGC00100 />
15
15
  <AGC00110 />
16
16
  <AGC00120 />
@@ -132,16 +132,17 @@
132
132
  <AGE00710 />
133
133
  <AGE00800 />
134
134
  <AGE00900 />
135
- <AGF00100 />
135
+ <AGF00100><%= @均等割 if @employee > 50 %></AGF00100>
136
136
  <AGF00200 />
137
137
  <AGF00300 />
138
- <AGF00400 />
139
- <AGF00500 />
140
- <AGF00600>70000</AGF00600>
138
+ <AGF00400><%= "12" if @employee > 50 %></AGF00400>
139
+ <AGF00500><%= @均等割 if @employee > 50 %></AGF00500>
140
+ <AGF00200 />
141
+ <AGF00600><%= @均等割 if @employee <= 50 %></AGF00600>
141
142
  <AGF00700 />
142
143
  <AGF00800 />
143
- <AGF00900>12</AGF00900>
144
- <AGF01000>70000</AGF01000>
144
+ <AGF00900><%= "12" if @employee <= 50 %></AGF00900>
145
+ <AGF01000><%= @均等割 if @employee <= 50 %></AGF01000>
145
146
  <AGF01100 />
146
147
  <AGF01200 />
147
148
  <AGF01300 />
@@ -173,6 +174,6 @@
173
174
  <AGF03900 />
174
175
  <AGF04000 />
175
176
  <AGF04100 />
176
- <AGF04200>70000</AGF04200>
177
+ <AGF04200><%= @均等割 %></AGF04200>
177
178
  <AGG00100 />
178
179
  </R0102AG120>
@@ -43,7 +43,7 @@
43
43
  <AAA_SHIHON4></AAA_SHIHON4>
44
44
  <AAA_SHIHON2><%= 資本金等の額 %></AAA_SHIHON2>
45
45
  <AAA_SHIHON5><%= @資本金準備金 %></AAA_SHIHON5>
46
- <AAA_SHIHON6><%= 資本金等の額 %></AAA_SHIHON6>
46
+ <AAA_SHIHON6><%= 地方税資本金等の額 %></AAA_SHIHON6>
47
47
  <AAA_JIGYO_SDATE idref="SDATE">
48
48
  <gen:era></gen:era>
49
49
  <gen:yy></gen:yy>
@@ -67,7 +67,7 @@
67
67
  <AAB00500 />
68
68
  <AAB00600><%= 法人税割課税標準 %></AAB00600>
69
69
  <AAB00700 />
70
- <AAB00800 />
70
+ <AAB00800><%= 法人税割税率[0] unless tokyo23? %></AAB00800>
71
71
  <AAB00810><%= 法人税割[0] %></AAB00810>
72
72
  <AAB00820 />
73
73
  <AAB00850 />
@@ -85,21 +85,21 @@
85
85
  <AAB02100><%= 納付税額(@確定法人税割, @法人税割中間納付) + 納付税額(@均等割, @均等割中間納付) %></AAB02100>
86
86
  <AAB02200 />
87
87
  <AAB02300><%= 納付税額(@確定法人税割, @法人税割中間納付) + 納付税額(@均等割, @均等割中間納付) %></AAB02300>
88
- <AAC00100><%= 法人税割課税標準 %></AAC00100>
89
- <AAC00200>7.0</AAC00200>
90
- <AAC00210><%= 法人税割[0] %></AAC00210>
88
+ <AAC00100><%= 法人税割課税標準 if tokyo23? %></AAC00100>
89
+ <AAC00200><%= 法人税割税率[0] if tokyo23? %></AAC00200>
90
+ <AAC00210><%= 法人税割[0] if tokyo23? %></AAC00210>
91
91
  <AAC00300 />
92
92
  <AAC00400 />
93
93
  <AAC00410 />
94
94
  <AAE00100><%= 所得金額 %></AAE00100>
95
95
  <AAE00200><%= 所得400万以下 %></AAE00200>
96
- <AAE00210>3.5</AAE00210>
96
+ <AAE00210><%= 所得割税率400万以下 %></AAE00210>
97
97
  <AAE00220><%= 所得割400万以下 %></AAE00220>
98
98
  <AAE00300><%= 所得800万以下 %></AAE00300>
99
- <AAE00310>5.3</AAE00310>
99
+ <AAE00310><%= 所得割税率800万以下 %></AAE00310>
100
100
  <AAE00320><%= 所得割800万以下 %></AAE00320>
101
101
  <AAE00400><%= 所得800万超 %></AAE00400>
102
- <AAE00410>7.0</AAE00410>
102
+ <AAE00410><%= 所得割税率800万超 %></AAE00410>
103
103
  <AAE00420><%= 所得割800万超 %></AAE00420>
104
104
  <AAE00500><%= 所得400万以下 + 所得800万以下 + 所得800万超 %></AAE00500>
105
105
  <%= render_attr('AAE00510', @所得割) %>
@@ -4,7 +4,7 @@
4
4
  <KOUSEI_KANRI id="KOUSEI_KANRI">
5
5
  <KANRI_INF id="KANRI_INF">
6
6
  <KOUSEI_KANRI_VR>0001</KOUSEI_KANRI_VR><%# 固定値 %>
7
- <ORG1_CD>13000</ORG1_CD><%# 地方公共団体コード %>
7
+ <ORG1_CD><%= @jichitai_code %></ORG1_CD><%# 地方公共団体コード %>
8
8
  <PROC_ID><%= @procedure_code %></PROC_ID>
9
9
  <PROC_NAME><%= @procedure_name %></PROC_NAME>
10
10
  <FIRST_RCPT_NUM></FIRST_RCPT_NUM>
@@ -74,7 +74,7 @@
74
74
  <KAZEI_TEL id="KAZEI_TEL" />
75
75
  <HOGEN_NUM id="HOGEN_NUM" />
76
76
  <KANRI_NUM id="KANRI_NUM" />
77
- <KAZEI_NUM id="KAZEI_NUM"><%= eltax_config('x_houjin_bango') %></KAZEI_NUM>
77
+ <KAZEI_NUM id="KAZEI_NUM"><%= @kanri_bango %></KAZEI_NUM>
78
78
  <HOJO_NUM id="HOJO_NUM" />
79
79
  <STF_NUM id="STF_NUM" />
80
80
  </ORG_INF>
@@ -81,6 +81,10 @@
81
81
  <%= render_attr('IAT01200', gaikyo_config('ec_shiire') ? '<kubun_CD>1</kubun_CD>' : nil) %>
82
82
  <%= render_attr('IAT01300', gaikyo_config('ec_keihi') ? '<kubun_CD>1</kubun_CD>' : nil) %>
83
83
  </IAT01000>
84
+ <IAT01500>
85
+ <%= render_attr('IAT01600', gaikyo_config('ec_jisha') ? '<kubun_CD>1</kubun_CD>' : nil) %>
86
+ <%= render_attr('IAT01700', gaikyo_config('ec_tasha') ? '<kubun_CD>1</kubun_CD>' : nil) %>
87
+ </IAT01500>
84
88
  </IAT00000>
85
89
  <IAF00000>
86
90
  <IAF01000>
@@ -8,6 +8,7 @@
8
8
  <%= render_attr('HAB00200', bank[:account_type]) %>
9
9
  <%= render_attr('HAB00300', bank[:account_no]) %>
10
10
  <%= render_attr('HAB00400', bank[:amount]) %>
11
+ <%= render_attr('HAB00500', bank[:note]) %>
11
12
  </HAB00000>
12
13
  <% end %>
13
14
  <HAC00000>
@@ -57,7 +57,7 @@ module Luca #:nodoc:
57
57
  h[k][:name] = metadata['name'][0..9] if metadata['name']
58
58
  h[k][:security_purpose] = metadata['security_purpose']
59
59
  h[k][:security_genre] = metadata['security_genre']
60
- h[k][:security_units] = (h[:amount].nil? || h[:amount].zero?) ? 0 : metadata['security_units']
60
+ h[k][:security_units] = (h[k][:amount].nil? || h[k][:amount].zero?) ? 0 : metadata['security_units']
61
61
  h[k][:note] = metadata['note']
62
62
  end
63
63
  h[k][:security_purpose] ||= 'その他' if /^332/.match(k.to_s)
data/lib/luca/jp/util.rb CHANGED
@@ -90,6 +90,10 @@ module Luca
90
90
  config.dig('jp', 'eltax', key)
91
91
  end
92
92
 
93
+ def tokyo23?
94
+ @report_category == '23ku'
95
+ end
96
+
93
97
  def 期首期末残高(code)
94
98
  pre = readable(@start_balance.dig(code))
95
99
  post = readable(@bs_data.dig(code))
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Luca
4
4
  module Jp
5
- VERSION = '0.7.0'
5
+ VERSION = '0.9.0'
6
6
  end
7
7
  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.7.0
4
+ version: 0.9.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-11 00:00:00.000000000 Z
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucabook