luca-jp 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/luca/jp.rb +1 -0
- data/lib/luca/jp/aoiro.rb +52 -16
- data/lib/luca/jp/chihouzei.rb +44 -2
- data/lib/luca/jp/common.rb +41 -4
- data/lib/luca/jp/sonshitsu.rb +102 -0
- data/lib/luca/jp/syouhizei.rb +1 -0
- data/lib/luca/jp/templates/beppyo1.xml.erb +3 -1
- data/lib/luca/jp/templates/beppyo4.xml.erb +6 -2
- data/lib/luca/jp/templates/beppyo7.xml.erb +31 -0
- data/lib/luca/jp/templates/el-no6-9.xml.erb +51 -0
- data/lib/luca/jp/templates/el-no6.xml.erb +14 -14
- data/lib/luca/jp/templates/syouhizei-shinkoku-kanni.xml.erb +3 -1
- data/lib/luca/jp/util.rb +4 -1
- data/lib/luca/jp/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5886bcf2e412190983e76ad28e7f8bd2db42cd7716cd50f2a85c777b067a834c
|
4
|
+
data.tar.gz: a5af3fe9b55400dbdff2033acb8c00a8b9289d0a2ed8ebf456664682f5fa2708
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37780daa7addb21a251c8c7e7f7b887483c48b3315aeb6b4b757b8169e8fdad42fffaf2acb5f9b61d8760a9aca08592d6655ceb887f1d89e28d440e5451244e5
|
7
|
+
data.tar.gz: 408768288d8c1b7c3faebfd14fe3227f7d140333f42f060e42f6b7170a3c48b2b898758d60991de771a4c51bcd8e882c10ac47ed77161822b87d43ac752b79a9
|
data/lib/luca/jp.rb
CHANGED
data/lib/luca/jp/aoiro.rb
CHANGED
@@ -26,6 +26,7 @@ module Luca
|
|
26
26
|
@issue_date = Date.today
|
27
27
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
28
28
|
@software = 'LucaJp'
|
29
|
+
|
29
30
|
@税額 = 税額計算
|
30
31
|
@確定法人税額 = @税額.dig(:houjin, :kokuzei)
|
31
32
|
@法人税額 = 中小企業の軽減税額 + 一般区分の税額
|
@@ -58,10 +59,10 @@ module Luca
|
|
58
59
|
@事業税期中増, @事業税期中減 = 未納事業税期中増減
|
59
60
|
@納税充当金期中増, @納税充当金期中減 = 納税充当金期中増減
|
60
61
|
@概況売上 = gaikyo('A0')
|
61
|
-
@form_sec = ['HOA112', 'HOA116', 'HOA201', 'HOA420', 'HOA511', 'HOA522', 'HOE200', 'HOE990', 'HOI010', 'HOI100', 'HOI141', 'HOK010'].map{ |c| form_rdf(c) }.join('')
|
62
|
+
@form_sec = ['HOA112', 'HOA116', 'HOA201', 'HOA420', 'HOA511', 'HOA522', 別表七フォーム, 'HOE200', 'HOE990', 'HOI010', 'HOI100', 'HOI141', 'HOK010'].compact.map{ |c| form_rdf(c) }.join('')
|
62
63
|
#@extra_form_sec = ['HOI040', 'HOI060', 'HOI090', 'HOI110']
|
63
64
|
@it = it_part
|
64
|
-
@form_data = [別表一, 別表一次葉, 別表二, 別表四簡易, 別表五一, 別表五二, 別表十五, 適用額明細, 預貯金内訳, 仮受金内訳, 役員報酬内訳, 概況説明].join("\n")
|
65
|
+
@form_data = [別表一, 別表一次葉, 別表二, 別表四簡易, 別表五一, 別表五二, 別表七, 別表十五, 適用額明細, 預貯金内訳, 仮受金内訳, 役員報酬内訳, 概況説明].compact.join("\n")
|
65
66
|
render_erb(search_template('aoiro.xtx.erb'))
|
66
67
|
end
|
67
68
|
end
|
@@ -129,6 +130,18 @@ module Luca
|
|
129
130
|
render_erb(search_template('beppyo52.xml.erb'))
|
130
131
|
end
|
131
132
|
|
133
|
+
def 別表七フォーム
|
134
|
+
return nil if @繰越損失管理.records.length == 0
|
135
|
+
|
136
|
+
'HOB710'
|
137
|
+
end
|
138
|
+
|
139
|
+
def 別表七
|
140
|
+
return nil if @繰越損失管理.records.length == 0
|
141
|
+
|
142
|
+
render_erb(search_template('beppyo7.xml.erb'))
|
143
|
+
end
|
144
|
+
|
132
145
|
def 別表十五
|
133
146
|
@交際費 = readable(@pl_data.dig('C1B') || 0)
|
134
147
|
@限度額 = @交際費 < 4_000_000 ? @交際費 : 4_000_000
|
@@ -141,7 +154,7 @@ module Luca
|
|
141
154
|
next unless /^110[0-9A-Z]/.match(k)
|
142
155
|
next unless readable(v || 0) > 0
|
143
156
|
|
144
|
-
h[
|
157
|
+
h[@@dict.dig(k)[:label]] = readable(v)
|
145
158
|
end
|
146
159
|
render_erb(search_template('yokin-meisai.xml.erb'))
|
147
160
|
end
|
@@ -212,7 +225,7 @@ module Luca
|
|
212
225
|
end
|
213
226
|
|
214
227
|
def 租税公課
|
215
|
-
readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: 'C1I')[:debit]) || 0
|
228
|
+
readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: 'C1I')[:debit]['C1I']) || 0
|
216
229
|
end
|
217
230
|
|
218
231
|
def 別表四還付事業税
|
@@ -240,8 +253,8 @@ module Luca
|
|
240
253
|
def 納税充当金期中増減
|
241
254
|
r = LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '515')
|
242
255
|
[
|
243
|
-
readable(r[:credit] || 0) + @法人税期中増 + @都道府県民税期中増 + @市民税期中増 + @事業税期中増,
|
244
|
-
readable(r[:debit] || 0) + @法人税期中減 + @都道府県民税期中減 + @市民税期中減 + @事業税期中減
|
256
|
+
readable(r[:credit]['515'] || 0) + @法人税期中増 + @都道府県民税期中増 + @市民税期中増 + @事業税期中増,
|
257
|
+
readable(r[:debit]['515'] || 0) + @法人税期中減 + @都道府県民税期中減 + @市民税期中減 + @事業税期中減
|
245
258
|
]
|
246
259
|
end
|
247
260
|
|
@@ -255,7 +268,7 @@ module Luca
|
|
255
268
|
|
256
269
|
def 未納法人税期中増減
|
257
270
|
r = LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5151')
|
258
|
-
[readable(r[:credit] || 0), readable(r[:debit] || 0)]
|
271
|
+
[readable(r[:credit]['5151'] || 0), readable(r[:debit]['5151'] || 0)]
|
259
272
|
end
|
260
273
|
|
261
274
|
# 中間納付した金額のうち税額とならず、還付されるべき額
|
@@ -284,7 +297,7 @@ module Luca
|
|
284
297
|
|
285
298
|
def 未納都道府県民税期中増減
|
286
299
|
r = LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5153')
|
287
|
-
[readable(r[:credit] || 0), readable(r[:debit] || 0)]
|
300
|
+
[readable(r[:credit]['5153'] || 0), readable(r[:debit]['5153'] || 0)]
|
288
301
|
end
|
289
302
|
|
290
303
|
def 都道府県民税仮払納付
|
@@ -292,7 +305,7 @@ module Luca
|
|
292
305
|
end
|
293
306
|
|
294
307
|
def 都道府県民税損金納付
|
295
|
-
[確定都道府県住民税, @都道府県民税中間納付].min
|
308
|
+
[[確定都道府県住民税, 0].max, @都道府県民税中間納付].min
|
296
309
|
end
|
297
310
|
|
298
311
|
def 確定市民税
|
@@ -309,7 +322,7 @@ module Luca
|
|
309
322
|
|
310
323
|
def 未納市民税期中増減
|
311
324
|
r = LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5154')
|
312
|
-
[readable(r[:credit] || 0), readable(r[:debit] || 0)]
|
325
|
+
[readable(r[:credit]['5154'] || 0), readable(r[:debit]['5154'] || 0)]
|
313
326
|
end
|
314
327
|
|
315
328
|
def 市民税仮払納付
|
@@ -317,7 +330,7 @@ module Luca
|
|
317
330
|
end
|
318
331
|
|
319
332
|
def 市民税損金納付
|
320
|
-
[@市民税中間納付,
|
333
|
+
[@市民税中間納付, [確定市民税, 0].max].min
|
321
334
|
end
|
322
335
|
|
323
336
|
def 別表五一期首差引金額
|
@@ -336,6 +349,29 @@ module Luca
|
|
336
349
|
期末繰越損益 + @納税充当金期中増 - @法人税期中増 - @都道府県民税期中増 - @市民税期中増
|
337
350
|
end
|
338
351
|
|
352
|
+
def 別表七各期青色損失
|
353
|
+
tags = @繰越損失管理.records
|
354
|
+
.filter { |record| record['start_date'] > @end_date.prev_year(10) && record['end_date'] < @start_date }
|
355
|
+
.map do |record|
|
356
|
+
deduction = record['decrease']&.filter{ |r| r['date'] >= @start_date }&.dig(0, 'val') || 0
|
357
|
+
next if deduction == 0 && record['amount'] == 0
|
358
|
+
|
359
|
+
%Q(<MCB00110>
|
360
|
+
<MCB00120>
|
361
|
+
#{render_attr('MCB00130', etax_date(record['start_date']))}
|
362
|
+
#{render_attr('MCB00140', etax_date(record['end_date']))}
|
363
|
+
</MCB00120>
|
364
|
+
<MCB00150>
|
365
|
+
<MCB00160><kubun_CD>1</kubun_CD></MCB00160>
|
366
|
+
</MCB00150>
|
367
|
+
#{render_attr('MCB00190', deduction + record['amount'])}
|
368
|
+
#{render_attr('MCB00200', deduction)}
|
369
|
+
#{render_attr('MCB00210', record['amount'])}
|
370
|
+
</MCB00110)
|
371
|
+
end
|
372
|
+
tags.compact.join("\n")
|
373
|
+
end
|
374
|
+
|
339
375
|
def 期首資本金
|
340
376
|
readable(@start_balance.dig('911')) || 0
|
341
377
|
end
|
@@ -362,7 +398,7 @@ module Luca
|
|
362
398
|
|
363
399
|
def 未納消費税期中増減
|
364
400
|
r = LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '516')
|
365
|
-
[readable(r[:credit] || 0), readable(r[:debit] || 0)]
|
401
|
+
[readable(r[:credit]['516'] || 0), readable(r[:debit]['516'] || 0)]
|
366
402
|
end
|
367
403
|
|
368
404
|
def 概況月(idx)
|
@@ -387,13 +423,13 @@ module Luca
|
|
387
423
|
|
388
424
|
def 概況月源泉徴収(idx)
|
389
425
|
target = @start_date.next_month(idx)
|
390
|
-
readable(LucaBook::State.gross(target.year, target.month, code: '5191')[:credit] || 0)
|
391
|
-
+ readable(LucaBook::State.gross(target.year, target.month, code: '5193')[:credit] || 0)
|
426
|
+
readable(LucaBook::State.gross(target.year, target.month, code: '5191')[:credit]['5191'] || 0)
|
427
|
+
+ readable(LucaBook::State.gross(target.year, target.month, code: '5193')[:credit]['5193'] || 0)
|
392
428
|
end
|
393
429
|
|
394
430
|
def 概況源泉徴収
|
395
|
-
readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5191')[:credit] || 0)
|
396
|
-
+ readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5193')[:credit] || 0)
|
431
|
+
readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5191')[:credit]['5191'] || 0)
|
432
|
+
+ readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5193')[:credit]['5193'] || 0)
|
397
433
|
end
|
398
434
|
|
399
435
|
def gaikyo(code)
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -62,9 +62,9 @@ module Luca
|
|
62
62
|
else
|
63
63
|
@procedure_code = 'R0102100'
|
64
64
|
@procedure_name = '法人都道府県民税・事業税・特別法人事業税又は地方法人特別税 確定申告'
|
65
|
-
@form_sec = ['R0102AA190', 'R0102AG120'].map{ |c| form_attr(c) }.join('')
|
65
|
+
@form_sec = ['R0102AA190', 'R0102AG120', 別表九フォーム].compact.map{ |c| form_attr(c) }.join('')
|
66
66
|
@user_inf = render_erb(search_template('el-userinf.xml.erb'))
|
67
|
-
@form_data = [第六号,
|
67
|
+
@form_data = [第六号, 別表四三, 別表九].compact.join("\n")
|
68
68
|
render_erb(search_template('eltax.xml.erb'))
|
69
69
|
end
|
70
70
|
end
|
@@ -113,6 +113,18 @@ module Luca
|
|
113
113
|
render_erb(search_template('el-no6-43.xml.erb'))
|
114
114
|
end
|
115
115
|
|
116
|
+
def 別表九フォーム
|
117
|
+
return nil if @繰越損失管理.records.length == 0
|
118
|
+
|
119
|
+
'R0102AM190'
|
120
|
+
end
|
121
|
+
|
122
|
+
def 別表九
|
123
|
+
return nil if @繰越損失管理.records.length == 0
|
124
|
+
|
125
|
+
render_erb(search_template('el-no6-9.xml.erb'))
|
126
|
+
end
|
127
|
+
|
116
128
|
private
|
117
129
|
|
118
130
|
def 法人税割課税標準
|
@@ -124,6 +136,36 @@ module Luca
|
|
124
136
|
@所得割中間納付
|
125
137
|
end
|
126
138
|
|
139
|
+
# TODO: 損失の区分
|
140
|
+
#
|
141
|
+
def 別表九各期青色損失
|
142
|
+
tags = @繰越損失管理.records
|
143
|
+
.filter { |record| record['start_date'] > @end_date.prev_year(10) && record['end_date'] < @start_date }
|
144
|
+
.map do |record|
|
145
|
+
deduction = record['decrease']&.filter{ |r| r['date'] >= @start_date }&.dig(0, 'val') || 0
|
146
|
+
next if deduction == 0 && record['amount'] == 0
|
147
|
+
|
148
|
+
%Q(<AMB00200>
|
149
|
+
<AMB00210>#{etax_date(@start_date)}</AMB00210>
|
150
|
+
<AMB00220>#{etax_date(@end_date)}</AMB00220>
|
151
|
+
<AMB00225 />
|
152
|
+
#{render_attr('AMB00230', deduction + record['amount'])}
|
153
|
+
#{render_attr('AMB00240', deduction)}
|
154
|
+
#{render_attr('AMB00250', record['amount'])}
|
155
|
+
</AMB00200>)
|
156
|
+
end
|
157
|
+
return tags.compact.join("\n") if tags.length > 0
|
158
|
+
|
159
|
+
%Q(<AMB00200>
|
160
|
+
<AMB00210><gen:era /><gen:yy /><gen:mm /><gen:dd /></AMB00210>
|
161
|
+
<AMB00220><gen:era /><gen:yy /><gen:mm /><gen:dd /></AMB00220>
|
162
|
+
<AMB00225 />
|
163
|
+
<AMB00230 />
|
164
|
+
<AMB00240 />
|
165
|
+
<AMB00250 />
|
166
|
+
</AMB00200>)
|
167
|
+
end
|
168
|
+
|
127
169
|
def form_attr(code)
|
128
170
|
"<FORM_ATTR><FORM_ID>#{code}</FORM_ID><FORM_NAME></FORM_NAME><FORM_FILE_NAME></FORM_FILE_NAME><FORM_XSL_NAME></FORM_XSL_NAME></FORM_ATTR>"
|
129
171
|
end
|
data/lib/luca/jp/common.rb
CHANGED
@@ -31,6 +31,8 @@ module Luca
|
|
31
31
|
|
32
32
|
def 中小企業の軽減税率対象所得(所得 = nil)
|
33
33
|
所得 ||= 所得金額
|
34
|
+
return 0 if 所得 <= 0
|
35
|
+
|
34
36
|
if 所得 >= 8_000_000
|
35
37
|
8_000_000
|
36
38
|
elsif 所得 < 0
|
@@ -41,11 +43,13 @@ module Luca
|
|
41
43
|
end
|
42
44
|
|
43
45
|
def 中小企業の軽減税額(所得 = nil)
|
44
|
-
|
46
|
+
中小企業の軽減税率対象所得(所得) * 15 / 100
|
45
47
|
end
|
46
48
|
|
47
49
|
def 中小企業の軽減税率対象を超える所得(所得 = nil)
|
48
50
|
所得 ||= 所得金額
|
51
|
+
return 0 if 所得 <= 0
|
52
|
+
|
49
53
|
if 所得 <= 8_000_000
|
50
54
|
0
|
51
55
|
else
|
@@ -61,15 +65,48 @@ module Luca
|
|
61
65
|
(地方法人税課税標準 * 10.3 / 100).to_i
|
62
66
|
end
|
63
67
|
|
68
|
+
# 繰越損失適用後の所得金額
|
69
|
+
#
|
70
|
+
def 所得金額
|
71
|
+
@繰越損失管理 = Sonshitsu.load(@end_date).update(当期所得金額).save if @繰越損失管理.nil?
|
72
|
+
@繰越損失管理.profit
|
73
|
+
end
|
74
|
+
|
64
75
|
# 税引前当期利益をもとに計算
|
65
76
|
# 消費税を租税公課に計上している場合、控除済みの金額
|
66
77
|
# 未払/未収事業税は精算時に認識
|
67
78
|
#
|
68
|
-
def
|
79
|
+
def 当期所得金額
|
69
80
|
_, 納付事業税 = 未納事業税期中増減
|
70
81
|
LucaSupport::Code.readable(@pl_data.dig('GA') - 納付事業税 + 還付事業税)
|
71
82
|
end
|
72
83
|
|
84
|
+
# -----------------------------------------------------
|
85
|
+
# :section: 繰越損失の計算
|
86
|
+
# -----------------------------------------------------
|
87
|
+
|
88
|
+
def 期首繰越損失
|
89
|
+
@繰越損失管理.records
|
90
|
+
.filter { |record| record['start_date'] > @end_date.prev_year(10) && record['end_date'] < @start_date }
|
91
|
+
.inject(0) { |sum, record| sum + (record['amount'] || 0) }
|
92
|
+
end
|
93
|
+
|
94
|
+
def 当期控除計
|
95
|
+
@繰越損失管理.deduction
|
96
|
+
end
|
97
|
+
|
98
|
+
def 翌期繰越損失
|
99
|
+
@繰越損失管理.records
|
100
|
+
.filter { |record| record['start_date'] > @end_date.prev_year(10) && record['end_date'] < @start_date }
|
101
|
+
.inject(0) { |sum, record| sum + (record['amount'] || 0) }
|
102
|
+
end
|
103
|
+
|
104
|
+
def 当期繰越損失
|
105
|
+
@繰越損失管理.records
|
106
|
+
.filter { |record| record['start_date'] == @start_date }.dig(0, 'increase') || 0
|
107
|
+
end
|
108
|
+
|
109
|
+
|
73
110
|
# -----------------------------------------------------
|
74
111
|
# :section: 地方税額の計算
|
75
112
|
# -----------------------------------------------------
|
@@ -161,12 +198,12 @@ module Luca
|
|
161
198
|
end
|
162
199
|
|
163
200
|
def 還付事業税
|
164
|
-
LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '1504')[:credit]
|
201
|
+
LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '1504')[:credit]['1504']
|
165
202
|
end
|
166
203
|
|
167
204
|
def 未納事業税期中増減
|
168
205
|
r = LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: '5152')
|
169
|
-
[LucaSupport::Code.readable(r[:credit] || 0), LucaSupport::Code.readable(r[:debit] || 0)]
|
206
|
+
[LucaSupport::Code.readable(r[:credit]['5152'] || 0), LucaSupport::Code.readable(r[:debit]['5152'] || 0)]
|
170
207
|
end
|
171
208
|
end
|
172
209
|
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'date'
|
4
|
+
require 'pathname'
|
5
|
+
require 'yaml'
|
6
|
+
require 'luca_book'
|
7
|
+
require 'luca_support/config'
|
8
|
+
|
9
|
+
module Luca
|
10
|
+
module Jp
|
11
|
+
# 青色申告に基く繰越損失の計算
|
12
|
+
#
|
13
|
+
class Sonshitsu
|
14
|
+
# 当期控除額
|
15
|
+
attr_reader :deduction
|
16
|
+
# 控除後所得
|
17
|
+
attr_reader :profit
|
18
|
+
# 各期繰越損失
|
19
|
+
attr_reader :records
|
20
|
+
|
21
|
+
def initialize(records, date)
|
22
|
+
@records = records
|
23
|
+
@report_date = date
|
24
|
+
net_amount
|
25
|
+
@deduction = 0
|
26
|
+
@profit = 0
|
27
|
+
end
|
28
|
+
|
29
|
+
# sonshitsu format is as bellows:
|
30
|
+
#
|
31
|
+
# - start_date: 2020-01-01
|
32
|
+
# end_date: 2020-12-31
|
33
|
+
# increase: 1000000
|
34
|
+
# - start_date: 2021-01-01
|
35
|
+
# end_date: 2021-12-31
|
36
|
+
# decrease: 800000
|
37
|
+
#
|
38
|
+
def self.load(this_year)
|
39
|
+
records = if File.exist?(record_file)
|
40
|
+
YAML.load_file(record_file)
|
41
|
+
.filter { |record| record['start_date'] > this_year.prev_year(11) && record['end_date'] < this_year }
|
42
|
+
.sort { |a, b| a['start_date'] <=> b['start_date'] }
|
43
|
+
else
|
44
|
+
[]
|
45
|
+
end
|
46
|
+
new(records, this_year)
|
47
|
+
end
|
48
|
+
|
49
|
+
def save
|
50
|
+
File.open(self.class.record_file, 'w') { |f| f.puts YAML.dump(@records)}
|
51
|
+
self
|
52
|
+
end
|
53
|
+
|
54
|
+
def update(profit_or_loss)
|
55
|
+
return self if profit_or_loss == 0
|
56
|
+
|
57
|
+
if profit_or_loss < 0
|
58
|
+
start_date, end_date = LucaBook::Util.current_fy(@report_date)
|
59
|
+
@records << {
|
60
|
+
'start_date' => start_date,
|
61
|
+
'end_date' => end_date,
|
62
|
+
'increase' => profit_or_loss.abs
|
63
|
+
}
|
64
|
+
@profit = profit_or_loss
|
65
|
+
return self
|
66
|
+
end
|
67
|
+
|
68
|
+
@records.each do |record|
|
69
|
+
next if profit_or_loss <= 0
|
70
|
+
next if record['amount'] <= 0
|
71
|
+
|
72
|
+
decrease_amount = [record['amount'], profit_or_loss].min
|
73
|
+
record['decrease'] ||= []
|
74
|
+
record['decrease'] << { 'date' => @report_date, 'val' => decrease_amount }
|
75
|
+
record['amount'] -= decrease_amount
|
76
|
+
profit_or_loss -= decrease_amount
|
77
|
+
@deduction += decrease_amount
|
78
|
+
end
|
79
|
+
@profit = profit_or_loss
|
80
|
+
self
|
81
|
+
end
|
82
|
+
|
83
|
+
def net_amount
|
84
|
+
@records.each do |record|
|
85
|
+
record['amount'] = record['increase'] - past_decreased(record['decrease'])
|
86
|
+
record['decrease'] = record['decrease']&.reject { |decrease_record| decrease_record['date'] > @report_date.prev_year }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def past_decreased(decrease_records)
|
91
|
+
return 0 if decrease_records.nil?
|
92
|
+
|
93
|
+
decrease_records.filter { |record| record['date'] <= @report_date.prev_year }
|
94
|
+
.map { |record| record['val'] }.sum || 0
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.record_file
|
98
|
+
Pathname(LucaSupport::PJDIR) / 'data' / 'balance' / 'sonshitsu.yml'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
data/lib/luca/jp/syouhizei.rb
CHANGED
@@ -44,11 +44,13 @@
|
|
44
44
|
<%= render_attr('BGB00200', @法人税中間納付) %>
|
45
45
|
<%= render_attr('BGB00210', 納付税額(@確定法人税額, @法人税中間納付)) %>
|
46
46
|
<BGB00320>
|
47
|
-
|
47
|
+
<%= render_attr('BGB00340', 中間還付税額(@確定法人税額, @法人税中間納付)) %>
|
48
48
|
<BGB00380>
|
49
49
|
<%= render_attr('BGB00400', 中間還付税額(@確定法人税額, @法人税中間納付)) %>
|
50
50
|
</BGB00380>
|
51
51
|
</BGB00320>
|
52
|
+
<%= render_attr('BGB00460', 当期控除計) %>
|
53
|
+
<%= render_attr('BGB00470', 翌期繰越損失 + 当期繰越損失) %>
|
52
54
|
</BGB00000>
|
53
55
|
<BGC00000>
|
54
56
|
<BGC00010>
|
@@ -55,8 +55,12 @@
|
|
55
55
|
<%= render_attr('ARS00010', @別表四調整所得) %>
|
56
56
|
<%= render_attr('ARS00020', @別表四調整所得) %>
|
57
57
|
</ARS00000>
|
58
|
+
<ART00000>
|
59
|
+
<%= render_attr('ART00010', @繰越損失管理.deduction) %>
|
60
|
+
<%= render_attr('ART00020', @繰越損失管理.deduction) %>
|
61
|
+
</ART00000>
|
58
62
|
<ARV00000>
|
59
|
-
<%= render_attr('ARV00010', @別表四調整所得) %>
|
60
|
-
<%= render_attr('ARV00020', @別表四調整所得) %>
|
63
|
+
<%= render_attr('ARV00010', @別表四調整所得 - @繰越損失管理.deduction) %>
|
64
|
+
<%= render_attr('ARV00020', @別表四調整所得 - @繰越損失管理.deduction) %>
|
61
65
|
</ARV00000>
|
62
66
|
</HOA420>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<HOB710 page="1" VR="11.0" id="HOB710" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
+
<MCA00000>
|
3
|
+
<MCA00010>
|
4
|
+
<MCA00020 IDREF="JIGYO_NENDO_FROM"/>
|
5
|
+
<MCA00030 IDREF="JIGYO_NENDO_TO"/>
|
6
|
+
</MCA00010>
|
7
|
+
<MCA00040 IDREF="NOZEISHA_NM"/>
|
8
|
+
</MCA00000>
|
9
|
+
<MCB00000>
|
10
|
+
<%= render_attr('MCB00002', 当期所得金額) %>
|
11
|
+
<MCB00004>
|
12
|
+
<%= render_attr('MCB00008', [当期所得金額, 0].max) %>
|
13
|
+
</MCB00004>
|
14
|
+
<%= 別表七各期青色損失 %>
|
15
|
+
<MCB00220>
|
16
|
+
<%= render_attr('MCB00230', 期首繰越損失) %>
|
17
|
+
<%= render_attr('MCB00240', 当期控除計) %>
|
18
|
+
<%= render_attr('MCB00250', 翌期繰越損失) %>
|
19
|
+
</MCB00220>
|
20
|
+
<MCB00260>
|
21
|
+
<%= render_attr('MCB00270', 当期繰越損失) %>
|
22
|
+
<MCB00280>
|
23
|
+
<MCB00330>
|
24
|
+
<%= render_attr('MCB00340', 当期繰越損失) %>
|
25
|
+
<%= render_attr('MCB00360', 当期繰越損失) %>
|
26
|
+
</MCB00330>
|
27
|
+
</MCB00280>
|
28
|
+
</MCB00260>
|
29
|
+
<%= render_attr('MCB00370', 翌期繰越損失 + 当期繰越損失) %>
|
30
|
+
</MCB00000>
|
31
|
+
</HOB710>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<R0102AM190 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="190" page="" seiseiSoft="<%= @software %>" seiseiVr="" seiseiDay="" seiseiNM="" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
2
|
+
<AMA_JIGYO_SDATE idref="SDATE">
|
3
|
+
<gen:era></gen:era><gen:yy></gen:yy><gen:mm></gen:mm><gen:dd></gen:dd>
|
4
|
+
<gen:yyyymmdd></gen:yyyymmdd>
|
5
|
+
</AMA_JIGYO_SDATE>
|
6
|
+
<AMA_JIGYO_EDATE idref="EDATE">
|
7
|
+
<gen:era></gen:era><gen:yy></gen:yy><gen:mm></gen:mm><gen:dd></gen:dd>
|
8
|
+
<gen:yyyymmdd></gen:yyyymmdd>
|
9
|
+
</AMA_JIGYO_EDATE>
|
10
|
+
<AMA_NAME idref="NAME"></AMA_NAME>
|
11
|
+
<%= render_attr('AMA00100', 当期所得金額) %>
|
12
|
+
<%= render_attr('AMA00200', [当期所得金額, 0].max) %>
|
13
|
+
<AMB00110>
|
14
|
+
<gen:era />
|
15
|
+
<gen:yy />
|
16
|
+
<gen:mm />
|
17
|
+
<gen:dd />
|
18
|
+
</AMB00110>
|
19
|
+
<AMB00120>
|
20
|
+
<gen:era />
|
21
|
+
<gen:yy />
|
22
|
+
<gen:mm />
|
23
|
+
<gen:dd />
|
24
|
+
</AMB00120>
|
25
|
+
<AMB00125 />
|
26
|
+
<AMB00130 />
|
27
|
+
<AMB00140 />
|
28
|
+
<%= 別表九各期青色損失 %>
|
29
|
+
<%= render_attr('AMB00430', 期首繰越損失) %>
|
30
|
+
<%= render_attr('AMB00440', 当期控除計) %>
|
31
|
+
<%= render_attr('AMB00450', 翌期繰越損失) %>
|
32
|
+
<AMB00325 />
|
33
|
+
<%= render_attr('AMB00330', 当期繰越損失) %>
|
34
|
+
<AMB00360 />
|
35
|
+
<AMB00365 />
|
36
|
+
<%= render_attr('AMB00370', 当期繰越損失) %>
|
37
|
+
<%= render_attr('AMB00380', 当期繰越損失) %>
|
38
|
+
<%= render_attr('AMB00500', 翌期繰越損失 + 当期繰越損失) %>
|
39
|
+
<AMC00100 />
|
40
|
+
<AMC00200 />
|
41
|
+
<AMC00300 />
|
42
|
+
<AMC00400 />
|
43
|
+
<AMC00500>
|
44
|
+
<gen:era />
|
45
|
+
<gen:yy />
|
46
|
+
<gen:mm />
|
47
|
+
<gen:dd />
|
48
|
+
</AMC00500>
|
49
|
+
<AMC00600 />
|
50
|
+
<AMC00700 />
|
51
|
+
</R0102AM190>
|
@@ -87,7 +87,7 @@
|
|
87
87
|
<AAB02300><%= 納付税額(@確定法人税割, @法人税割中間納付) + 納付税額(@均等割, @均等割中間納付) %></AAB02300>
|
88
88
|
<AAC00100><%= @法人税割課税標準 %></AAC00100>
|
89
89
|
<AAC00200>7.0</AAC00200>
|
90
|
-
<AAC00210><%= 法人税割 %></AAC00210>
|
90
|
+
<AAC00210><%= 法人税割[0] %></AAC00210>
|
91
91
|
<AAC00300 />
|
92
92
|
<AAC00400 />
|
93
93
|
<AAC00410 />
|
@@ -102,7 +102,7 @@
|
|
102
102
|
<AAE00410>7.0</AAE00410>
|
103
103
|
<AAE00420><%= 所得割800万超 %></AAE00420>
|
104
104
|
<AAE00500><%= 所得400万以下 + 所得800万以下 + 所得800万超 %></AAE00500>
|
105
|
-
|
105
|
+
<%= render_attr('AAE00510', @所得割) %>
|
106
106
|
<AAE00600 />
|
107
107
|
<AAE00610 />
|
108
108
|
<AAE00620 />
|
@@ -118,12 +118,12 @@
|
|
118
118
|
<AAE00800 />
|
119
119
|
<AAE00810 />
|
120
120
|
<AAE00820 />
|
121
|
-
|
121
|
+
<%= render_attr('AAE00900', @所得割) %>
|
122
122
|
<AAE00950 />
|
123
123
|
<AAE00960 />
|
124
124
|
<AAE01000 />
|
125
125
|
<AAE01050 />
|
126
|
-
|
126
|
+
<%= render_attr('AAE01100', 事業税中間納付) %>
|
127
127
|
<AAE01200 />
|
128
128
|
<AAE01300><%= @所得割 - 事業税中間納付 %></AAE01300>
|
129
129
|
<AAE01310><%= @所得割 - 事業税中間納付 %></AAE01310>
|
@@ -132,28 +132,28 @@
|
|
132
132
|
<AAE01340 />
|
133
133
|
<AAE01400 />
|
134
134
|
<AAE01500><%= @所得割 - 事業税中間納付 %></AAE01500>
|
135
|
-
|
136
|
-
|
137
|
-
|
135
|
+
<%= render_attr('AAK00100', @所得割) %>
|
136
|
+
<%= render_attr('AAK00200', 37) %>
|
137
|
+
<%= render_attr('AAK00300', 地方法人特別税(@所得割)) %>
|
138
138
|
<AAK00400 />
|
139
139
|
<AAK00500 />
|
140
140
|
<AAK00600 />
|
141
|
-
|
141
|
+
<%= render_attr('AAK00700', 地方法人特別税(@所得割)) %>
|
142
142
|
<AAK00800 />
|
143
|
-
|
144
|
-
|
143
|
+
<%= render_attr('AAK00850', 地方法人特別税(@所得割)) %>
|
144
|
+
<%= render_attr('AAK00900', @地方特別法人事業税中間納付) %>
|
145
145
|
<AAK01000 />
|
146
146
|
<AAK01100><%= 地方法人特別税(@所得割) - @地方特別法人事業税中間納付 %></AAK01100>
|
147
147
|
<AAK01200 />
|
148
148
|
<AAK01300><%= 地方法人特別税(@所得割) - @地方特別法人事業税中間納付 %></AAK01300>
|
149
|
-
|
149
|
+
<%= render_attr('AAF00100', 当期所得金額) %>
|
150
150
|
<AAF00200 />
|
151
151
|
<AAF00300 />
|
152
152
|
<AAF00500 />
|
153
153
|
<AAF00600 />
|
154
|
-
|
155
|
-
|
156
|
-
|
154
|
+
<%= render_attr('AAF00800', 当期所得金額) %>
|
155
|
+
<%= render_attr('AAF00700', @繰越損失管理.deduction) %>
|
156
|
+
<%= render_attr('AAG00100', 所得金額) %>
|
157
157
|
<AAH00100 />
|
158
158
|
<AAH00200 />
|
159
159
|
<AAH00400>
|
@@ -34,6 +34,7 @@
|
|
34
34
|
<%= render_attr('ABI00110', @中間納付額) %>
|
35
35
|
<%= render_attr('ABI00120', 納付税額(@税額, @中間納付額)) %>
|
36
36
|
<%= render_attr('ABI00130', 中間還付税額(@税額, @中間納付額)) %>
|
37
|
+
<%= render_attr('ABI00170', LucaSupport::Code.readable(@sales)) %>
|
37
38
|
</ABI00000>
|
38
39
|
<ABJ00000>
|
39
40
|
<ABJ00010>
|
@@ -45,7 +46,7 @@
|
|
45
46
|
<%= render_attr('ABJ00070', @地方税中間納付額) %>
|
46
47
|
<%= render_attr('ABJ00080', 納付税額(@譲渡割額, @地方税中間納付額)) %>
|
47
48
|
<%= render_attr('ABJ00090', 中間還付税額(@譲渡割額, @地方税中間納付額)) %>
|
48
|
-
<%= render_attr('ABJ00130',
|
49
|
+
<%= render_attr('ABJ00130', (@税額 - @中間納付額) + (@譲渡割額 - @地方税中間納付額)) %>
|
49
50
|
</ABJ00000>
|
50
51
|
<ABK00000>
|
51
52
|
<ABK00010><kubun_CD>2</kubun_CD></ABK00010>
|
@@ -56,6 +57,7 @@
|
|
56
57
|
<ABL00000>
|
57
58
|
<ABL00010><kubun_CD>2</kubun_CD></ABL00010>
|
58
59
|
<ABL00020><%= 事業区分 %></ABL00020>
|
60
|
+
<ABL00210><kubun_CD>2</kubun_CD></ABL00210>
|
59
61
|
</ABL00000>
|
60
62
|
</SHA020-1>
|
61
63
|
<SHA020-2 page="1">
|
data/lib/luca/jp/util.rb
CHANGED
@@ -22,7 +22,10 @@ module Luca
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def prepaid_tax(code)
|
25
|
-
LucaSupport::Code.readable(@bs_data.dig(code) || 0)
|
25
|
+
#LucaSupport::Code.readable(@bs_data.dig(code) || 0)
|
26
|
+
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)
|
28
|
+
LucaSupport::Code.readable(amount[code] || 0)
|
26
29
|
end
|
27
30
|
|
28
31
|
def 納付税額(税額, 中間納付額)
|
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.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chuma Takahiro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucabook
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- lib/luca/jp/common.rb
|
86
86
|
- lib/luca/jp/it_part.rb
|
87
87
|
- lib/luca/jp/kessan.rb
|
88
|
+
- lib/luca/jp/sonshitsu.rb
|
88
89
|
- lib/luca/jp/syouhizei.rb
|
89
90
|
- lib/luca/jp/templates/aoiro.xtx.erb
|
90
91
|
- lib/luca/jp/templates/beppyo1-next.xml.erb
|
@@ -94,8 +95,10 @@ files:
|
|
94
95
|
- lib/luca/jp/templates/beppyo4.xml.erb
|
95
96
|
- lib/luca/jp/templates/beppyo51.xml.erb
|
96
97
|
- lib/luca/jp/templates/beppyo52.xml.erb
|
98
|
+
- lib/luca/jp/templates/beppyo7.xml.erb
|
97
99
|
- lib/luca/jp/templates/consumption.xtx.erb
|
98
100
|
- lib/luca/jp/templates/el-no6-43.xml.erb
|
101
|
+
- lib/luca/jp/templates/el-no6-9.xml.erb
|
99
102
|
- lib/luca/jp/templates/el-no6.xml.erb
|
100
103
|
- lib/luca/jp/templates/eltax.xml.erb
|
101
104
|
- lib/luca/jp/templates/fuhyo43.xml.erb
|