luca-jp 0.1.6 → 0.2.2
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/exe/luca-jp +12 -0
- data/lib/luca/jp.rb +2 -0
- data/lib/luca/jp/aoiro.rb +126 -32
- data/lib/luca/jp/chihouzei.rb +23 -6
- data/lib/luca/jp/common.rb +2 -2
- data/lib/luca/jp/it_part.rb +1 -1
- data/lib/luca/jp/syouhizei.rb +1 -0
- data/lib/luca/jp/templates/beppyo1.xml.erb +2 -0
- data/lib/luca/jp/templates/beppyo2.xml.erb +32 -0
- data/lib/luca/jp/templates/beppyo4.xml.erb +4 -0
- data/lib/luca/jp/templates/chidai-meisai.xml.erb +15 -0
- data/lib/luca/jp/templates/el-no6-43.xml.erb +1 -1
- data/lib/luca/jp/templates/el-no6-9.xml.erb +2 -2
- data/lib/luca/jp/templates/el-no6.xml.erb +12 -20
- data/lib/luca/jp/templates/eltax-userinf.xml.erb +20 -0
- data/lib/luca/jp/templates/eltax.xml.erb +7 -7
- data/lib/luca/jp/templates/gaikyo.xml.erb +65 -0
- data/lib/luca/jp/templates/kaikake-meisai.xml.erb +16 -0
- data/lib/luca/jp/templates/kariire-meisai.xml.erb +13 -0
- data/lib/luca/jp/templates/shoken-meisai.xml.erb +21 -0
- data/lib/luca/jp/templates/tekiyougaku.xml.erb +2 -0
- data/lib/luca/jp/templates/yokin-meisai.xml.erb +7 -4
- data/lib/luca/jp/uchiwake.rb +195 -0
- data/lib/luca/jp/urikake.rb +47 -0
- data/lib/luca/jp/util.rb +25 -0
- data/lib/luca/jp/version.rb +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 409f68316d30d3c2ebd44d2251c5bf158a93301f8c5d5561f69cf96a6332ab77
|
4
|
+
data.tar.gz: 20de0938d14d48f0bb733f5ca79fdb8c6f6157a0fac07114b82ae9851ae67688
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6014749bc78f5fb165152e18c1828a783e2bb3bc2ce1bde618e1eeb5592dd94e613fbc1b40dd7a42560cd13601f75ec6018ff6eee97059d2b3bd1cac0e78b99b
|
7
|
+
data.tar.gz: f3b1c7a59698c5c5c9e9fbe35c0bab15da58ad970e5c7a867c9c23ce1e9844b543eafe14678f49a5174d109e51c0f0cc0e594b3c90f8a0a85f6d1020c9122e11
|
data/exe/luca-jp
CHANGED
@@ -27,6 +27,11 @@ class LucaCmd
|
|
27
27
|
puts Luca::Jp::Chihouzei.range(*args).kani
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
def self.urikake(args, params)
|
32
|
+
date = "#{args[0]}-#{args[1]}-1"
|
33
|
+
Luca::Jp::Urikake.new(date).report(params[:total])
|
34
|
+
end
|
30
35
|
end
|
31
36
|
|
32
37
|
cmd = ARGV.shift
|
@@ -54,4 +59,11 @@ when /chihou?zei/
|
|
54
59
|
args = opt.parse!(ARGV)
|
55
60
|
LucaCmd.chihouzei(args, params)
|
56
61
|
end
|
62
|
+
when /urikake/
|
63
|
+
OptionParser.new do |opt|
|
64
|
+
opt.banner = 'Usage: luca-jp urikake [options] yyyy mm'
|
65
|
+
opt.on('--total VAL', '売掛金総額') { |v| params[:total] = v&.to_i }
|
66
|
+
args = opt.parse!(ARGV)
|
67
|
+
LucaCmd.urikake(args, params)
|
68
|
+
end
|
57
69
|
end
|
data/lib/luca/jp.rb
CHANGED
data/lib/luca/jp/aoiro.rb
CHANGED
@@ -16,6 +16,7 @@ module Luca
|
|
16
16
|
include Luca::Jp::Common
|
17
17
|
include Luca::Jp::ItPart
|
18
18
|
include Luca::Jp::Util
|
19
|
+
include Luca::Jp::Uchiwake
|
19
20
|
|
20
21
|
@dirname = 'journals'
|
21
22
|
@record_type = 'raw'
|
@@ -65,10 +66,20 @@ module Luca
|
|
65
66
|
@納税充当金期中増, @納税充当金期中減 = 納税充当金期中増減
|
66
67
|
@翌期還付法人税 = 中間還付税額(@確定法人税額 + @確定地方法人税額, @法人税中間納付 + @地方法人税中間納付)
|
67
68
|
@概況売上 = gaikyo('A0')
|
68
|
-
@form_sec = [
|
69
|
-
|
69
|
+
@form_sec = [
|
70
|
+
'HOA112', 'HOA116', 'HOA201', 'HOA420', 'HOA511', 'HOA522', 別表七フォーム,
|
71
|
+
'HOE200', 適用額明細フォーム,
|
72
|
+
'HOI010', 有価証券内訳フォーム, 買掛金内訳フォーム, 'HOI100', 借入金内訳フォーム, 'HOI141', 地代家賃内訳フォーム,
|
73
|
+
'HOK010'
|
74
|
+
].compact.map{ |c| form_rdf(c) }.join('')
|
75
|
+
#@extra_form_sec = ['HOI040']
|
70
76
|
@it = it_part
|
71
|
-
@form_data = [
|
77
|
+
@form_data = [
|
78
|
+
別表一, 別表一次葉, 別表二, 別表四簡易, 別表五一, 別表五二, 別表七, 別表十五,
|
79
|
+
適用額明細,
|
80
|
+
預貯金内訳, 有価証券内訳, 買掛金内訳, 仮受金内訳, 借入金内訳, 役員報酬内訳, 地代家賃内訳,
|
81
|
+
概況説明
|
82
|
+
].compact.join("\n")
|
72
83
|
render_erb(search_template('aoiro.xtx.erb'))
|
73
84
|
end
|
74
85
|
end
|
@@ -168,28 +179,6 @@ module Luca
|
|
168
179
|
render_erb(search_template('beppyo15.xml.erb'))
|
169
180
|
end
|
170
181
|
|
171
|
-
def 預貯金内訳
|
172
|
-
@預金 = @bs_data.each.with_object({}) do |(k, v), h|
|
173
|
-
next unless /^110[0-9A-Z]/.match(k)
|
174
|
-
next unless readable(v || 0) > 0
|
175
|
-
|
176
|
-
h[@@dict.dig(k)[:label]] = readable(v)
|
177
|
-
end
|
178
|
-
render_erb(search_template('yokin-meisai.xml.erb'))
|
179
|
-
end
|
180
|
-
|
181
|
-
def 仮受金内訳
|
182
|
-
@源泉給与 = readable(@bs_data.dig('5191') || 0)
|
183
|
-
@源泉報酬 = readable(@bs_data.dig('5193') || 0)
|
184
|
-
render_erb(search_template('kariuke-meisai.xml.erb'))
|
185
|
-
end
|
186
|
-
|
187
|
-
def 役員報酬内訳
|
188
|
-
@役員報酬 = readable(@pl_data.dig('C11') || 0)
|
189
|
-
@給料 = readable(@pl_data.dig('C12') || 0)
|
190
|
-
render_erb(search_template('yakuin-meisai.xml.erb'))
|
191
|
-
end
|
192
|
-
|
193
182
|
def 適用額明細フォーム
|
194
183
|
return nil if @確定法人税額 == 0
|
195
184
|
|
@@ -237,6 +226,10 @@ module Luca
|
|
237
226
|
render_erb(search_template('gaikyo.xml.erb'))
|
238
227
|
end
|
239
228
|
|
229
|
+
def self.dict
|
230
|
+
@@dict
|
231
|
+
end
|
232
|
+
|
240
233
|
private
|
241
234
|
|
242
235
|
def 期首未納事業税
|
@@ -252,7 +245,91 @@ module Luca
|
|
252
245
|
end
|
253
246
|
|
254
247
|
def 租税公課
|
255
|
-
readable(
|
248
|
+
readable(debit_amount('C1I', @start_date.year, @start_date.month, @end_date.year, @end_date.month))
|
249
|
+
end
|
250
|
+
|
251
|
+
def 別表一同族区分
|
252
|
+
case 同族会社?
|
253
|
+
when nil
|
254
|
+
nil
|
255
|
+
when true
|
256
|
+
'<kubun_CD>1</kubun_CD>'
|
257
|
+
else
|
258
|
+
'<kubun_CD>3</kubun_CD>'
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
def 別表二同族区分
|
263
|
+
case 同族会社?
|
264
|
+
when nil
|
265
|
+
nil
|
266
|
+
when true
|
267
|
+
'<kubun_CD>2</kubun_CD>'
|
268
|
+
else
|
269
|
+
'<kubun_CD>3</kubun_CD>'
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
def 別表二株主リスト
|
274
|
+
return '' if beppyo2_config('owners').nil?
|
275
|
+
|
276
|
+
tags = beppyo2_config('owners')[1..-1]&.map.with_index(2) do |owner, i|
|
277
|
+
%Q(<VAE00170>
|
278
|
+
<VAE00180>
|
279
|
+
<VAE00190>#{i}</VAE00190>
|
280
|
+
<VAE00200>#{i}</VAE00200>
|
281
|
+
</VAE00180>
|
282
|
+
<VAE00210>
|
283
|
+
#{render_attr('VAE00220', owner['address'])}
|
284
|
+
#{render_attr('VAE00230', owner['name'])}
|
285
|
+
</VAE00210>
|
286
|
+
#{render_attr('VAE00235', owner['relation'] || '<kubun_CD>90</kubun_CD>')}
|
287
|
+
<VAE00250>
|
288
|
+
<VAE00290>
|
289
|
+
#{render_attr('VAE00300', owner['shares'])}
|
290
|
+
<VAE00310>
|
291
|
+
#{render_attr('VAE00330', owner['votes'])}
|
292
|
+
</VAE00310>
|
293
|
+
</VAE00290>
|
294
|
+
</VAE00250>
|
295
|
+
</VAE00170>)
|
296
|
+
end
|
297
|
+
tags.compact.join("\n")
|
298
|
+
end
|
299
|
+
|
300
|
+
def 別表二上位株数
|
301
|
+
return nil if beppyo2_config('owners').nil?
|
302
|
+
|
303
|
+
beppyo2_config('owners')[0..2].map{ |owner| owner['shares']&.to_i || 0 }.sum
|
304
|
+
end
|
305
|
+
|
306
|
+
def 別表二上位株割合
|
307
|
+
return nil if beppyo2_config('total_shares').nil?
|
308
|
+
return nil if beppyo2_config('owners').nil?
|
309
|
+
|
310
|
+
(別表二上位株数 * 100.0 / beppyo2_config('total_shares')).round(1)
|
311
|
+
end
|
312
|
+
|
313
|
+
def 別表二上位議決権数
|
314
|
+
return nil if beppyo2_config('owners').nil?
|
315
|
+
|
316
|
+
beppyo2_config('owners')[0..2].map{ |owner| owner['votes']&.to_i || 0 }.sum
|
317
|
+
end
|
318
|
+
|
319
|
+
def 別表二上位議決権割合
|
320
|
+
return nil if beppyo2_config('total_votes').nil?
|
321
|
+
return nil if beppyo2_config('owners').nil?
|
322
|
+
|
323
|
+
(別表二上位議決権数 * 100.0 / beppyo2_config('total_votes')).round(1)
|
324
|
+
end
|
325
|
+
|
326
|
+
# TODO: 特定同族会社の判定
|
327
|
+
#
|
328
|
+
def 同族会社?
|
329
|
+
return nil if it_part_config('shihon_kin') > 100_000_000
|
330
|
+
|
331
|
+
return true if 別表二上位議決権割合 > 50 || 別表二上位株割合 > 50
|
332
|
+
false
|
256
333
|
end
|
257
334
|
|
258
335
|
def 別表四還付法人税等金額
|
@@ -272,9 +349,9 @@ module Luca
|
|
272
349
|
|
273
350
|
%Q(<ICB00140>
|
274
351
|
#{render_attr('ICB00150', '仮払税金')}
|
275
|
-
#{render_attr('ICB00160', 未収仮払税金 * -1)}
|
352
|
+
#{render_attr('ICB00160', readable(未収仮払税金) * -1)}
|
276
353
|
<ICB00170>
|
277
|
-
#{render_attr('ICB00190', 還付税金 * -1)}
|
354
|
+
#{render_attr('ICB00190', readable(還付税金) * -1)}
|
278
355
|
#{render_attr('ICB00200', @仮払税金 * -1)}
|
279
356
|
</ICB00170>
|
280
357
|
#{render_attr('ICB00210', @仮払税金 * -1)}
|
@@ -496,6 +573,19 @@ module Luca
|
|
496
573
|
[readable(increase), readable(r)]
|
497
574
|
end
|
498
575
|
|
576
|
+
def 概況源泉徴収種類
|
577
|
+
tags = []
|
578
|
+
if credit_count('5191', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
579
|
+
tags << render_attr('IAF03100', '<kubun_CD>1</kubun_CD>')
|
580
|
+
end
|
581
|
+
if credit_count('5193', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
582
|
+
tags << render_attr('IAF03200', '<kubun_CD>1</kubun_CD>')
|
583
|
+
elsif credit_count('5194', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
584
|
+
tags << render_attr('IAF03200', '<kubun_CD>1</kubun_CD>')
|
585
|
+
end
|
586
|
+
tags.compact.join("\n")
|
587
|
+
end
|
588
|
+
|
499
589
|
def 概況月(idx)
|
500
590
|
@start_date.next_month(idx).month
|
501
591
|
end
|
@@ -518,13 +608,17 @@ module Luca
|
|
518
608
|
|
519
609
|
def 概況月源泉徴収(idx)
|
520
610
|
target = @start_date.next_month(idx)
|
521
|
-
|
522
|
-
|
611
|
+
[
|
612
|
+
readable(credit_amount('5191', target.year, target.month, target.year, target.month)),
|
613
|
+
readable(credit_amount('5193', target.year, target.month, target.year, target.month))
|
614
|
+
].sum
|
523
615
|
end
|
524
616
|
|
525
617
|
def 概況源泉徴収
|
526
|
-
|
527
|
-
|
618
|
+
[
|
619
|
+
readable(credit_amount('5191', @start_date.year, @start_date.month, @end_date.year, @end_date.month)),
|
620
|
+
readable(credit_amount('5193', @start_date.year, @start_date.month, @end_date.year, @end_date.month))
|
621
|
+
].sum
|
528
622
|
end
|
529
623
|
|
530
624
|
def gaikyo(code)
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -24,8 +24,9 @@ module Luca
|
|
24
24
|
@issue_date = Date.today
|
25
25
|
@company = CGI.escapeHTML(config.dig('company', 'name'))
|
26
26
|
@software = 'LucaJp'
|
27
|
-
@jimusho_code =
|
28
|
-
@jimusho_name = '
|
27
|
+
@jimusho_code = eltax_config('jimusho_code')
|
28
|
+
@jimusho_name = eltax_config('jimusho_name')
|
29
|
+
@app_version = eltax_config('app_version')
|
29
30
|
|
30
31
|
@税額 = 税額計算
|
31
32
|
@均等割 = @税額.dig(:kenmin, :kintou)
|
@@ -63,7 +64,7 @@ module Luca
|
|
63
64
|
@procedure_code = 'R0102100'
|
64
65
|
@procedure_name = '法人都道府県民税・事業税・特別法人事業税又は地方法人特別税 確定申告'
|
65
66
|
@form_sec = ['R0102AA190', 'R0102AG120', 別表九フォーム].compact.map{ |c| form_attr(c) }.join('')
|
66
|
-
@user_inf = render_erb(search_template('
|
67
|
+
@user_inf = render_erb(search_template('eltax-userinf.xml.erb'))
|
67
68
|
@form_data = [第六号, 別表四三, 別表九].compact.join("\n")
|
68
69
|
render_erb(search_template('eltax.xml.erb'))
|
69
70
|
end
|
@@ -105,6 +106,7 @@ module Luca
|
|
105
106
|
end
|
106
107
|
|
107
108
|
def 第六号
|
109
|
+
@資本金準備金 = eltax_config('shihon') || it_part_config('shihon_kin')
|
108
110
|
render_erb(search_template('el-no6.xml.erb'))
|
109
111
|
end
|
110
112
|
|
@@ -128,8 +130,7 @@ module Luca
|
|
128
130
|
private
|
129
131
|
|
130
132
|
def 法人税割課税標準
|
131
|
-
|
132
|
-
(national_tax[:kokuzei][:zeigaku] / 1000).floor * 1000
|
133
|
+
(@税額.dig(:houjin, :kokuzei) / 1000).floor * 1000
|
133
134
|
end
|
134
135
|
|
135
136
|
def 事業税中間納付
|
@@ -166,8 +167,24 @@ module Luca
|
|
166
167
|
</AMB00200>)
|
167
168
|
end
|
168
169
|
|
170
|
+
def eltax_kouza
|
171
|
+
items = it_part_config('kanpu_kinyukikan').split('-')
|
172
|
+
%Q(<gen:kubun_CD />
|
173
|
+
<gen:kinyukikan_NM>#{items[0]}</gen:kinyukikan_NM>
|
174
|
+
<gen:shiten_NM>#{items[1]}</gen:shiten_NM>
|
175
|
+
<gen:kinyukikan_CD />
|
176
|
+
<gen:shiten_CD />
|
177
|
+
<gen:yokin>1</gen:yokin>
|
178
|
+
<gen:koza>#{items[3]}</gen:koza>)
|
179
|
+
end
|
180
|
+
|
169
181
|
def form_attr(code)
|
170
|
-
|
182
|
+
name = {
|
183
|
+
'R0102AA' => '中間・確定申告書',
|
184
|
+
'R0102AG' => '均等割額の計算に関する明細書',
|
185
|
+
'R0102AM' => '欠損金額等及び災害損失金の控除明細書'
|
186
|
+
}[code[0,7]]
|
187
|
+
"<FORM_ATTR><FORM_ID>#{code}</FORM_ID><FORM_NAME>#{name}</FORM_NAME><FORM_FILE_NAME></FORM_FILE_NAME><FORM_XSL_NAME></FORM_XSL_NAME></FORM_ATTR>"
|
171
188
|
end
|
172
189
|
|
173
190
|
def karibarai_label(key)
|
data/lib/luca/jp/common.rb
CHANGED
@@ -208,8 +208,8 @@ module Luca
|
|
208
208
|
end
|
209
209
|
|
210
210
|
def 未納事業税期中増減
|
211
|
-
r =
|
212
|
-
[LucaSupport::Code.readable(r[
|
211
|
+
r = gross_amount('5152', @start_date.year, @start_date.month, @end_date.year, @end_date.month)
|
212
|
+
[LucaSupport::Code.readable(r[0]), LucaSupport::Code.readable(r[1])]
|
213
213
|
end
|
214
214
|
|
215
215
|
|
data/lib/luca/jp/it_part.rb
CHANGED
@@ -24,7 +24,7 @@ module Luca
|
|
24
24
|
entries << %Q(<TETSUZUKI ID="TETSUZUKI"><procedure_CD>#{@procedure_code}</procedure_CD><procedure_NM>#{@procedure_name}</procedure_NM></TETSUZUKI>)
|
25
25
|
entries.concat([jigyo_nendo_from, jigyo_nendo_to, kazei_kikan_from, kazei_kikan_to])
|
26
26
|
entries << render_it_tag('keiri_sekininsha')
|
27
|
-
entries << '<SHINKOKU_KBN ID="SHINKOKU_KBN"><kubun_CD>
|
27
|
+
entries << '<SHINKOKU_KBN ID="SHINKOKU_KBN"><kubun_CD>30</kubun_CD></SHINKOKU_KBN>'
|
28
28
|
entries.concat(['eltax_id'].map{ |key| render_it_tag(key) })
|
29
29
|
entries << '</IT>'
|
30
30
|
entries.compact.join("\n")
|
data/lib/luca/jp/syouhizei.rb
CHANGED
@@ -14,8 +14,10 @@
|
|
14
14
|
<BGA00110 IDREF="DAIHYO_NM"/>
|
15
15
|
</BGA00090>
|
16
16
|
<BGA00120 IDREF="DAIHYO_ADR"/>
|
17
|
+
<BGA00130><kubun_CD>1</kubun_CD></BGA00130>
|
17
18
|
<BGA00140 IDREF="JIGYO_NAIYO"/>
|
18
19
|
<BGA00150 IDREF="SHIHON_KIN"/>
|
20
|
+
<%= render_attr('BGA00170', 別表一同族区分) %>
|
19
21
|
<BGA00210>
|
20
22
|
<BGA00220><kubun_CD>1</kubun_CD></BGA00220>
|
21
23
|
<BGA00230><kubun_CD>1</kubun_CD></BGA00230>
|
@@ -6,4 +6,36 @@
|
|
6
6
|
</VAA00010>
|
7
7
|
<VAA00040 IDREF="NOZEISHA_NM"/>
|
8
8
|
</VAA00000>
|
9
|
+
<VAB00000>
|
10
|
+
<%= render_attr('VAB00010', beppyo2_config('total_shares')) %>
|
11
|
+
<%= render_attr('VAB00020', 別表二上位株数) %>
|
12
|
+
<%= render_attr('VAB00030', 別表二上位株割合) %>
|
13
|
+
<VAB00040>
|
14
|
+
<%= render_attr('VAB00060', beppyo2_config('total_votes')) %>
|
15
|
+
</VAB00040>
|
16
|
+
<%= render_attr('VAB00070', 別表二上位議決権数) %>
|
17
|
+
<%= render_attr('VAB00080', 別表二上位議決権割合) %>
|
18
|
+
</VAB00000>
|
19
|
+
<%= render_attr('VAD00000', 別表二同族区分) %>
|
20
|
+
<VAE00000>
|
21
|
+
<VAE00010>
|
22
|
+
<VAE00020>
|
23
|
+
<VAE00030>1</VAE00030>
|
24
|
+
<VAE00040>1</VAE00040>
|
25
|
+
</VAE00020>
|
26
|
+
<VAE00050>
|
27
|
+
<%= render_attr('VAE00060', beppyo2_config('owners')&.dig(0, 'address')) %>
|
28
|
+
<%= render_attr('VAE00070', beppyo2_config('owners')&.dig(0, 'name')) %>
|
29
|
+
</VAE00050>
|
30
|
+
<VAE00080>
|
31
|
+
<VAE00120>
|
32
|
+
<%= render_attr('VAE00130', beppyo2_config('owners')&.dig(0, 'shares')) %>
|
33
|
+
<VAE00140>
|
34
|
+
<%= render_attr('VAE00160', beppyo2_config('owners')&.dig(0, 'votes')) %>
|
35
|
+
</VAE00140>
|
36
|
+
</VAE00120>
|
37
|
+
</VAE00080>
|
38
|
+
</VAE00010>
|
39
|
+
<%= 別表二株主リスト %>
|
40
|
+
</VAE00000>
|
9
41
|
</HOA201>
|
@@ -61,6 +61,10 @@
|
|
61
61
|
<%= render_attr('ARE00010', @別表四調整所得) %>
|
62
62
|
<%= render_attr('ARE00020', @別表四調整所得) %>
|
63
63
|
</ARE00000>
|
64
|
+
<ARZ10000>
|
65
|
+
<%= render_attr('ARZ10010', @別表四調整所得) %>
|
66
|
+
<%= render_attr('ARZ10020', @別表四調整所得) %>
|
67
|
+
</ARZ10000>
|
64
68
|
<ARK00000>
|
65
69
|
<%= render_attr('ARK00010', @別表四調整所得) %>
|
66
70
|
<%= render_attr('ARK00020', @別表四調整所得) %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<HOI150 page="1" VR="3.0" id="HOI150" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
+
<HOB00000>
|
3
|
+
<% @地代家賃.values.each do |rent| %>
|
4
|
+
<HOB10000>
|
5
|
+
<%= render_attr('HOB11000', rent[:rent_type]) %>
|
6
|
+
<%= render_attr('HOB12000', rent[:rent_purpose]) %>
|
7
|
+
<%= render_attr('HOB13000', rent[:rent_address]) %>
|
8
|
+
<%= render_attr('HOB14000', rent[:name]) %>
|
9
|
+
<%= render_attr('HOB15000', rent[:address]) %>
|
10
|
+
<%= render_attr('HOB17000', rent[:amount]) %>
|
11
|
+
<%= render_attr('HOB18000', rent[:note]) %>
|
12
|
+
</HOB10000>
|
13
|
+
<% end %>
|
14
|
+
</HOB00000>
|
15
|
+
</HOI150>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<R0102AG120 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="120" page="" seiseiSoft="<%= @software %>" seiseiVr="" seiseiDay="" seiseiNM="" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
1
|
+
<R0102AG120 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="120" page="" seiseiSoft="<%= @software %>" seiseiVr="1" seiseiDay="<%= Date.today.strftime('%Y%m%d') %>" seiseiNM="<%= it_part_config('nozeisha_nm') %>" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
2
2
|
<AGA_JIGYO_SDATE idref="SDATE">
|
3
3
|
<gen:era></gen:era><gen:yy></gen:yy><gen:mm></gen:mm><gen:dd></gen:dd>
|
4
4
|
<gen:yyyymmdd></gen:yyyymmdd>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<R0102AM190 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="190" page="" seiseiSoft="<%= @software %>" seiseiVr="" seiseiDay="" seiseiNM="" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
1
|
+
<R0102AM190 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="190" page="" seiseiSoft="<%= @software %>" seiseiVr="1" seiseiDay="<%= Date.today.strftime('%Y%m%d') %>" seiseiNM="<%= it_part_config('nozeisha_nm') %>" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
2
2
|
<AMA_JIGYO_SDATE idref="SDATE">
|
3
3
|
<gen:era></gen:era><gen:yy></gen:yy><gen:mm></gen:mm><gen:dd></gen:dd>
|
4
4
|
<gen:yyyymmdd></gen:yyyymmdd>
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<%= render_attr('AMB00430', 期首繰越損失) %>
|
30
30
|
<%= render_attr('AMB00440', 当期控除計) %>
|
31
31
|
<%= render_attr('AMB00450', 翌期繰越損失) %>
|
32
|
-
<AMB00325
|
32
|
+
<AMB00325>1</AMB00325>
|
33
33
|
<%= render_attr('AMB00330', 当期繰越損失) %>
|
34
34
|
<AMB00360 />
|
35
35
|
<AMB00365 />
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<R0102AA190 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="190" page="" seiseiSoft="<%= @software %>" seiseiVr="" seiseiDay="" seiseiNM="" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
1
|
+
<R0102AA190 xmlns="http://eltax.jp/HOJIN_DOFUKEN" vr="190" page="" seiseiSoft="<%= @software %>" seiseiVr="1" seiseiDay="<%= Date.today.strftime('%Y%m%d') %>" seiseiNM="<%= it_part_config('nozeisha_nm') %>" koshinSoft="" koshinVr="" koshinDay="" koshinNM="" taari="">
|
2
2
|
<AAA00100 idref="SEIRI_NUM" />
|
3
3
|
<AAA00200 idref="JIMUSHO_NUM"></AAA00200>
|
4
4
|
<AAA00300 idref="HOJIN_NUM"></AAA00300>
|
@@ -41,9 +41,9 @@
|
|
41
41
|
<AAA_SHIHON idref="SHIHON"></AAA_SHIHON>
|
42
42
|
<AAA_SHIHON3></AAA_SHIHON3>
|
43
43
|
<AAA_SHIHON4></AAA_SHIHON4>
|
44
|
-
<AAA_SHIHON2
|
45
|
-
<AAA_SHIHON5
|
46
|
-
<AAA_SHIHON6
|
44
|
+
<AAA_SHIHON2><%= @資本金準備金 %></AAA_SHIHON2>
|
45
|
+
<AAA_SHIHON5><%= @資本金準備金 %></AAA_SHIHON5>
|
46
|
+
<AAA_SHIHON6><%= @資本金準備金 %></AAA_SHIHON6>
|
47
47
|
<AAA_JIGYO_SDATE idref="SDATE">
|
48
48
|
<gen:era></gen:era>
|
49
49
|
<gen:yy></gen:yy>
|
@@ -68,7 +68,7 @@
|
|
68
68
|
<AAB00600><%= 法人税割課税標準 %></AAB00600>
|
69
69
|
<AAB00700 />
|
70
70
|
<AAB00800 />
|
71
|
-
<AAB00810><%= 法人税割 %></AAB00810>
|
71
|
+
<AAB00810><%= 法人税割[0] %></AAB00810>
|
72
72
|
<AAB00820 />
|
73
73
|
<AAB00850 />
|
74
74
|
<AAB00900 />
|
@@ -155,16 +155,8 @@
|
|
155
155
|
<%= render_attr('AAF00700', @繰越損失管理.deduction) %>
|
156
156
|
<%= render_attr('AAG00100', 所得金額) %>
|
157
157
|
<AAH00100 />
|
158
|
-
<AAH00200
|
159
|
-
<AAH00400>
|
160
|
-
<gen:kubun_CD />
|
161
|
-
<gen:kinyukikan_NM></gen:kinyukikan_NM>
|
162
|
-
<gen:shiten_NM></gen:shiten_NM>
|
163
|
-
<gen:kinyukikan_CD />
|
164
|
-
<gen:shiten_CD />
|
165
|
-
<gen:yokin>1</gen:yokin>
|
166
|
-
<gen:koza></gen:koza>
|
167
|
-
</AAH00400>
|
158
|
+
<AAH00200><%= 中間還付税額(@確定法人税割, @法人税割中間納付) + 中間還付税額(@所得割, 事業税中間納付) + 中間還付税額(地方法人特別税(@所得割), @地方特別法人事業税中間納付) %></AAH00200>
|
159
|
+
<AAH00400><%= eltax_kouza %></AAH00400>
|
168
160
|
<AAI00100>
|
169
161
|
<gen:era />
|
170
162
|
<gen:yy />
|
@@ -183,8 +175,8 @@
|
|
183
175
|
<gen:mm />
|
184
176
|
<gen:dd />
|
185
177
|
</AAI01000>
|
186
|
-
<AAI00600
|
187
|
-
<AAI00500
|
178
|
+
<AAI00600>2</AAI00600>
|
179
|
+
<AAI00500>2</AAI00500>
|
188
180
|
<AAI00200>
|
189
181
|
<gen:era />
|
190
182
|
<gen:yy />
|
@@ -197,9 +189,9 @@
|
|
197
189
|
<gen:mm />
|
198
190
|
<gen:dd />
|
199
191
|
</AAI00300>
|
200
|
-
<AAI00400
|
201
|
-
<AAI00450
|
202
|
-
<AAI00700
|
192
|
+
<AAI00400>1</AAI00400>
|
193
|
+
<AAI00450><%= @税額.dig(:houjin, :kokuzei) %></AAI00450>
|
194
|
+
<AAI00700><%= @税額.dig(:houjin, :kokuzei) > 200000 ? 1 : 2 %></AAI00700>
|
203
195
|
<AAI00800 />
|
204
196
|
<AAJ_DAIRI_NAME></AAJ_DAIRI_NAME>
|
205
197
|
<AAJ_DAIRI_TEL_NUM></AAJ_DAIRI_TEL_NUM>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<USER_INF id="USER_INF">
|
2
|
+
<USER_ID id="USER_ID"><%= it_part_config('eltax_id') %></USER_ID>
|
3
|
+
<KANA id="KANA"><%= it_part_config('nozeisha_nm_kn') %></KANA>
|
4
|
+
<NAME id="NAME"><%= it_part_config('nozeisha_nm') %></NAME>
|
5
|
+
<HONTEN id="HONTEN">
|
6
|
+
<HONTEN_ADDR id="HONTEN_ADDR"><%= it_part_config('nozeisha_adr') %></HONTEN_ADDR>
|
7
|
+
<HONTEN_ZIP id="HONTEN_ZIP"><%= it_part_config('nozeisha_zip').gsub('-', '') %></HONTEN_ZIP>
|
8
|
+
<HONTEN_TEL id="HONTEN_TEL"><%= it_part_config('nozeisha_tel').gsub('-', '') %></HONTEN_TEL>
|
9
|
+
</HONTEN>
|
10
|
+
<DAIHYO id="DAIHYO">
|
11
|
+
<DAIHYOKAKU_CD id="DAIHYOKAKU_CD">01</DAIHYOKAKU_CD>
|
12
|
+
<DAIHYO_KANA id="DAIHYO_KANA"><%= it_part_config('daihyo_nm_kn') %></DAIHYO_KANA>
|
13
|
+
<DAIHYO_NAME id="DAIHYO_NAME"><%= it_part_config('daihyo_nm') %></DAIHYO_NAME>
|
14
|
+
<DAIHYO_ADDR id="DAIHYO_ADDR"><%= it_part_config('daihyo_adr') %></DAIHYO_ADDR>
|
15
|
+
<DAIHYO_ZIP id="DAIHYO_ZIP"><%= it_part_config('daihyo_zip').gsub('-', '') %></DAIHYO_ZIP>
|
16
|
+
<DAIHYO_TEL id="DAIHYO_TEL"></DAIHYO_TEL>
|
17
|
+
</DAIHYO>
|
18
|
+
<T_RCPT_NUM id="T_RCPT_NUM"><%= eltax_config('receipt_num') %></T_RCPT_NUM>
|
19
|
+
<HOJIN_NUMBER id="HOJIN_NUMBER"><%= it_part_config('nozeisha_bango') %></HOJIN_NUMBER>
|
20
|
+
</USER_INF>
|
@@ -21,14 +21,14 @@
|
|
21
21
|
<gen:yy><%= wareki(@start_date) %></gen:yy>
|
22
22
|
<gen:mm><%= @start_date.month %></gen:mm>
|
23
23
|
<gen:dd><%= @start_date.day %></gen:dd>
|
24
|
-
<gen:yyyymmdd
|
24
|
+
<gen:yyyymmdd><%= @start_date.strftime('%Y%m%d') %></gen:yyyymmdd>
|
25
25
|
</SDATE>
|
26
26
|
<EDATE id="EDATE">
|
27
27
|
<gen:era><%= gengou(@end_date) %></gen:era>
|
28
28
|
<gen:yy><%= wareki(@end_date) %></gen:yy>
|
29
29
|
<gen:mm><%= @end_date.month %></gen:mm>
|
30
30
|
<gen:dd><%= @end_date.day %></gen:dd>
|
31
|
-
<gen:yyyymmdd
|
31
|
+
<gen:yyyymmdd><%= @end_date.strftime('%Y%m%d') %></gen:yyyymmdd >
|
32
32
|
</EDATE>
|
33
33
|
<RPT_DATE id="RPT_DATE">
|
34
34
|
<gen:era><%= gengou(@issue_date) %></gen:era>
|
@@ -74,15 +74,15 @@
|
|
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"
|
77
|
+
<KAZEI_NUM id="KAZEI_NUM"><%= eltax_config('x_houjin_bango') %></KAZEI_NUM>
|
78
78
|
<HOJO_NUM id="HOJO_NUM" />
|
79
79
|
<STF_NUM id="STF_NUM" />
|
80
80
|
</ORG_INF>
|
81
|
-
<STIME id="STIME"
|
81
|
+
<STIME id="STIME"><%= @app_version %></STIME>
|
82
82
|
<HOJIN_DOFUKEN id="HOJIN_DOFUKEN">
|
83
83
|
<FORM_INF id="FORM_INF">
|
84
|
-
<JIGYO_NAME id="JIGYO_NAME"
|
85
|
-
<SHIHON id="SHIHON"
|
84
|
+
<JIGYO_NAME id="JIGYO_NAME"><%= it_part_config('jigyo_naiyo') %></JIGYO_NAME>
|
85
|
+
<SHIHON id="SHIHON"><%= it_part_config('shihon_kin') %></SHIHON>
|
86
86
|
<HOJIN_NUM id="HOJIN_NUM"></HOJIN_NUM>
|
87
87
|
<JIMUSHO_NUM id="JIMUSHO_NUM"><%= @jimusho_code %></JIMUSHO_NUM>
|
88
88
|
<SEIRI_NUM id="SEIRI_NUM" />
|
@@ -104,7 +104,7 @@
|
|
104
104
|
<SYSTEM_INF id="SYSTEM_INF">
|
105
105
|
<SYSTEM_DATA id="SYSTEM_DATA"></SYSTEM_DATA>
|
106
106
|
<NOUZEI_UPDATE id="NOUZEI_UPDATE">
|
107
|
-
<SDATE
|
107
|
+
<SDATE><%= DateTime.now.strftime('%Y%m%d%H%M%S') %></SDATE>
|
108
108
|
<UDATE></UDATE>
|
109
109
|
<SIGN_DATE></SIGN_DATE>
|
110
110
|
<SEND_DATE></SEND_DATE>
|
@@ -10,8 +10,46 @@
|
|
10
10
|
<IAA02200 IDREF="JIGYO_NENDO_TO"/>
|
11
11
|
</IAA02000>
|
12
12
|
<IAA02300 IDREF="NOZEISHA_BANGO"/>
|
13
|
+
<IAA02400><kubun_CD><%= gaikyo_config('homepage') ? 1 : 2 %></kubun_CD></IAA02400>
|
14
|
+
<%= render_attr('IAA02500', gaikyo_config('homepage')) %>
|
13
15
|
</IAA00000>
|
16
|
+
<%= render_attr('IAS00000', it_part_config('jigyo_naiyo')) %>
|
17
|
+
<IAC00000>
|
18
|
+
<IAC01000>
|
19
|
+
<%= render_attr('IAC01100', gaikyo_config('shiten_kokunai')) %>
|
20
|
+
<%= render_attr('IAC01300', gaikyo_config('shiten_kaigai')) %>
|
21
|
+
</IAC01000>
|
22
|
+
<IAC02000>
|
23
|
+
<%= render_attr('IAC02050', gaikyo_config('kogaisha_kokunai')) %>
|
24
|
+
<%= render_attr('IAC02100', gaikyo_config('kogaisha_kaigai')) %>
|
25
|
+
</IAC02000>
|
26
|
+
</IAC00000>
|
27
|
+
<IAD00000>
|
28
|
+
<IAD01000>
|
29
|
+
<%= render_attr('IAD01100', gaikyo_config('yakuin')) %>
|
30
|
+
</IAD01000>
|
31
|
+
</IAD00000>
|
32
|
+
<IAE00000>
|
33
|
+
<%= render_attr('IAE01000', gaikyo_config('software_kaikei') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
34
|
+
<IAE03000>
|
35
|
+
<%= render_attr('IAE03600', gaikyo_config('software_kaikei') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
36
|
+
</IAE03000>
|
37
|
+
<%= render_attr('IAE04300', gaikyo_config('software_kaikei') ? '<kubun_CD>1</kubun_CD>' : nil) %>
|
38
|
+
<%= render_attr('IAE04500', gaikyo_config('software_kaikei')) %>
|
39
|
+
<%= render_attr('IAE04600', gaikyo_config('software_mail')) %>
|
40
|
+
</IAE00000>
|
14
41
|
<IAF00000>
|
42
|
+
<IAF01000>
|
43
|
+
<IAF01100>
|
44
|
+
<%= render_attr('IAF01110', gaikyo_config('genkin_kanrisha')) %>
|
45
|
+
</IAF01100>
|
46
|
+
<IAF01200>
|
47
|
+
<%= render_attr('IAF01210', gaikyo_config('tsucho_kanrisha')) %>
|
48
|
+
</IAF01200>
|
49
|
+
</IAF01000>
|
50
|
+
<IAF03000>
|
51
|
+
<%= 概況源泉徴収種類 %>
|
52
|
+
</IAF03000>
|
15
53
|
<IAF04000>
|
16
54
|
<%= render_attr('IAF04200', 消費税課税売上高) %>
|
17
55
|
</IAF04000>
|
@@ -58,6 +96,33 @@
|
|
58
96
|
</IAI03000>
|
59
97
|
</HOK010-1>
|
60
98
|
<HOK010-2>
|
99
|
+
<IAJ00000>
|
100
|
+
<IAJ03000>
|
101
|
+
<%= render_attr('IAJ03100', gaikyo_config('genkin_share')) %>
|
102
|
+
<%= render_attr('IAJ03200', gaikyo_config('kake_share')) %>
|
103
|
+
</IAJ03000>
|
104
|
+
</IAJ00000>
|
105
|
+
<IAL00000>
|
106
|
+
<IAL01000>
|
107
|
+
<%= render_attr('IAL01100', gaikyo_config('shimekiri_uriage')||gaikyo_config('shimekiri')) %>
|
108
|
+
<%= render_attr('IAL01200', gaikyo_config('kessai_uriage')||gaikyo_config('kessai')) %>
|
109
|
+
</IAL01000>
|
110
|
+
<IAL02000>
|
111
|
+
<%= render_attr('IAL02100', gaikyo_config('shimekiri_shiire')||gaikyo_config('shimekiri')) %>
|
112
|
+
<%= render_attr('IAL02200', gaikyo_config('kessai_shiire')||gaikyo_config('kessai')) %>
|
113
|
+
</IAL02000>
|
114
|
+
<IAL03000>
|
115
|
+
<%= render_attr('IAL03100', gaikyo_config('shimekiri_gaichu')||gaikyo_config('shimekiri')) %>
|
116
|
+
<%= render_attr('IAL03200', gaikyo_config('kessai_gaichu')||gaikyo_config('kessai')) %>
|
117
|
+
</IAL03000>
|
118
|
+
<IAL04000>
|
119
|
+
<%= render_attr('IAL04100', gaikyo_config('shimekiri_kyuryou')||gaikyo_config('shimekiri')) %>
|
120
|
+
<%= render_attr('IAL04200', gaikyo_config('kessai_kyuryou')||gaikyo_config('kessai')) %>
|
121
|
+
</IAL04000>
|
122
|
+
</IAL00000>
|
123
|
+
<IAM00000>
|
124
|
+
<%= render_attr('IAM01000', '総勘定元帳') %>
|
125
|
+
</IAM00000>
|
61
126
|
<IAP00000>
|
62
127
|
<% 12.times do |i| %>
|
63
128
|
<IAP20000>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<HOI090 page="1" VR="4.0" id="HOI090" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
+
<% @買掛金.values.each do |payable| %>
|
3
|
+
<HIB00000>
|
4
|
+
<%= render_attr('HIB00100', payable[:payable_type]) %>
|
5
|
+
<HIB00200>
|
6
|
+
<%= render_attr('HIB00210', payable[:name]) %>
|
7
|
+
<%= render_attr('HIB00220', payable[:address]) %>
|
8
|
+
</HIB00200>
|
9
|
+
<%= render_attr('HIB00300', payable[:amount]) %>
|
10
|
+
<%= render_attr('HIB00400', payable[:note]) %>
|
11
|
+
</HIB00000>
|
12
|
+
<% end %>
|
13
|
+
<HIC00000>
|
14
|
+
<%= render_attr('HIC00100', 買掛金等合計) %>
|
15
|
+
</HIC00000>
|
16
|
+
</HOI090>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<HOI110 page="1" VR="3.0" id="HOI110" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
+
<% @借入金.values.each do |debt| %>
|
3
|
+
<HKB00000>
|
4
|
+
<%= render_attr('HKB00100', debt[:name]) %>
|
5
|
+
<%= render_attr('HKB00300', debt[:address]) %>
|
6
|
+
<%= render_attr('HKB00400', debt[:amount]) %>
|
7
|
+
<%= render_attr('HKB00800', debt[:note]) %>
|
8
|
+
</HKB00000>
|
9
|
+
<% end %>
|
10
|
+
<HKC00000>
|
11
|
+
<%= render_attr('HKC00100', 借入金合計) %>
|
12
|
+
</HKC00000>
|
13
|
+
</HOI110>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<HOI060 page="1" VR="4.0" id="HOI060" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
+
<% @有価証券.values.each do |scurity| %>
|
3
|
+
<HFB00000>
|
4
|
+
<HFB00110>
|
5
|
+
<%= render_attr('HFB00120', scurity[:security_purpose]) %>
|
6
|
+
<%= render_attr('HFB00130', scurity[:security_genre]) %>
|
7
|
+
<%= render_attr('HFB00140', scurity[:name]) %>
|
8
|
+
</HFB00110>
|
9
|
+
<HFB00200>
|
10
|
+
<%= render_attr('HFB00210', scurity[:security_units]) %>
|
11
|
+
<HFB00215>
|
12
|
+
<%= render_attr('HFB00230', scurity[:amount]) %>
|
13
|
+
</HFB00215>
|
14
|
+
</HFB00200>
|
15
|
+
<%= render_attr('HFB00400', scurity[:note]) %>
|
16
|
+
</HFB00000>
|
17
|
+
<% end %>
|
18
|
+
<HFC00000>
|
19
|
+
<%= render_attr('HFC00100', 有価証券合計) %>
|
20
|
+
</HFC00000>
|
21
|
+
</HOI060>
|
@@ -4,6 +4,7 @@
|
|
4
4
|
<MAA00020 IDREF="JIGYO_NENDO_FROM"/>
|
5
5
|
<MAA00030 IDREF="JIGYO_NENDO_TO"/>
|
6
6
|
</MAA00010>
|
7
|
+
<MAA00040><kubun_CD>1</kubun_CD></MAA00040>
|
7
8
|
<MAA00050 IDREF="TEISYUTSU_DAY"/>
|
8
9
|
<MAA00060 IDREF="ZEIMUSHO"/>
|
9
10
|
<MAA00070 IDREF="NOZEISHA_ADR"/>
|
@@ -14,6 +15,7 @@
|
|
14
15
|
</MAA00090>
|
15
16
|
<MAA00115 IDREF="NOZEISHA_BANGO"/>
|
16
17
|
<MAA00120 IDREF="SHIHON_KIN"/>
|
18
|
+
<%= render_attr('MAA00130', @別表四調整所得 - @繰越損失管理.deduction) %>
|
17
19
|
<MAA00140>
|
18
20
|
<%= render_attr('MAA00150', 1) %>
|
19
21
|
<%= render_attr('MAA00160', 1) %>
|
@@ -1,13 +1,16 @@
|
|
1
1
|
<HOI010 page="1" VR="4.0" id="HOI010" sakuseiNM="<%= @company %>" softNM="<%= @software %> <%= @company %>" sakuseiDay="<%= @issue_date %>">
|
2
|
-
<% @預金.each do |
|
2
|
+
<% @預金.values.each do |bank| %>
|
3
3
|
<HAB00000>
|
4
4
|
<HAB00100>
|
5
|
-
<%= render_attr('HAB00110',
|
5
|
+
<%= render_attr('HAB00110', bank[:name]) %>
|
6
|
+
<%= render_attr('HAB00120', bank[:branch]) %>
|
6
7
|
</HAB00100>
|
7
|
-
<%= render_attr('
|
8
|
+
<%= render_attr('HAB00200', bank[:account_type]) %>
|
9
|
+
<%= render_attr('HAB00300', bank[:account_no]) %>
|
10
|
+
<%= render_attr('HAB00400', bank[:amount]) %>
|
8
11
|
</HAB00000>
|
9
12
|
<% end %>
|
10
13
|
<HAC00000>
|
11
|
-
<%= render_attr('HAC00100', @預金.values.sum) %>
|
14
|
+
<%= render_attr('HAC00100', @預金.values.map { |b| b[:amount] }.sum) %>
|
12
15
|
</HAC00000>
|
13
16
|
</HOI010>
|
@@ -0,0 +1,195 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Luca #:nodoc:
|
4
|
+
module Jp #:nodoc:
|
5
|
+
# 勘定科目内訳明細書のレンダリング
|
6
|
+
#
|
7
|
+
module Uchiwake
|
8
|
+
def 預貯金内訳
|
9
|
+
@預金 = @bs_data.each.with_object({}) do |(k, v), h|
|
10
|
+
next unless /^110[0-9A-Z]/.match(k)
|
11
|
+
next unless readable(v || 0) > 0
|
12
|
+
|
13
|
+
h[k] = {
|
14
|
+
name: self.class.dict.dig(k)[:label],
|
15
|
+
amount: readable(v)
|
16
|
+
}
|
17
|
+
metadata = uchiwake_account_config(k).first
|
18
|
+
if metadata && metadata['name']
|
19
|
+
h[k][:name] = metadata['name']
|
20
|
+
h[k][:branch] = metadata['branch']
|
21
|
+
h[k][:account_type] = metadata['account_type'] || '普通預金'
|
22
|
+
h[k][:account_no] = metadata['account_no']
|
23
|
+
h[k][:note] = metadata['note']
|
24
|
+
end
|
25
|
+
end
|
26
|
+
render_erb(search_template('yokin-meisai.xml.erb'))
|
27
|
+
end
|
28
|
+
|
29
|
+
def 有価証券内訳フォーム
|
30
|
+
accounts = uchiwake_account_config('331')
|
31
|
+
accounts.concat uchiwake_account_config('332')
|
32
|
+
return nil if accounts.length == 0
|
33
|
+
|
34
|
+
'HOI060'
|
35
|
+
end
|
36
|
+
|
37
|
+
def 有価証券内訳
|
38
|
+
account_codes = uchiwake_account_config('331').map { |account| account['code'].to_s }
|
39
|
+
account_codes.concat uchiwake_account_config('332').map { |account| account['code'].to_s }
|
40
|
+
return nil if account_codes.length == 0
|
41
|
+
|
42
|
+
@有価証券 = @bs_data.each.with_object({}) do |(k, v), h|
|
43
|
+
next unless account_codes.include?(k.to_s)
|
44
|
+
next unless readable(v || 0) > 0
|
45
|
+
|
46
|
+
h[k] = {
|
47
|
+
name: self.class.dict.dig(k)[:label],
|
48
|
+
amount: readable(v)
|
49
|
+
}
|
50
|
+
metadata = uchiwake_account_config(k).first
|
51
|
+
if metadata && metadata['name']
|
52
|
+
h[k][:name] = metadata['name'][0..9] if metadata['name']
|
53
|
+
h[k][:security_purpose] = metadata['security_purpose']
|
54
|
+
h[k][:security_genre] = metadata['security_genre']
|
55
|
+
h[k][:security_units] = metadata['security_units']
|
56
|
+
h[k][:note] = metadata['note']
|
57
|
+
end
|
58
|
+
h[k][:security_purpose] ||= 'その他' if /^332/.match(k.to_s)
|
59
|
+
h[k][:security_genre] ||= '株式' if /^33[12]/.match(k.to_s)
|
60
|
+
h[k][:note] ||= '関係会社株式' if /^332/.match(k.to_s)
|
61
|
+
end
|
62
|
+
|
63
|
+
render_erb(search_template('shoken-meisai.xml.erb'))
|
64
|
+
end
|
65
|
+
|
66
|
+
def 有価証券合計
|
67
|
+
@bs_data.filter { |k, _v| ['331', '332'].include?(k.to_s) }
|
68
|
+
.map { |_k, v| readable(v) || 0 }
|
69
|
+
.sum
|
70
|
+
end
|
71
|
+
|
72
|
+
def 買掛金内訳フォーム
|
73
|
+
accounts = uchiwake_account_config('511')
|
74
|
+
accounts.concat uchiwake_account_config('514')
|
75
|
+
accounts.concat uchiwake_account_config('517')
|
76
|
+
return nil if accounts.length == 0
|
77
|
+
|
78
|
+
'HOI090'
|
79
|
+
end
|
80
|
+
|
81
|
+
def 買掛金内訳
|
82
|
+
account_codes = uchiwake_account_config('511').map { |account| account['code'].to_s }
|
83
|
+
account_codes.concat uchiwake_account_config('514').map { |account| account['code'].to_s }
|
84
|
+
account_codes.concat uchiwake_account_config('517').map { |account| account['code'].to_s }
|
85
|
+
return nil if account_codes.length == 0
|
86
|
+
|
87
|
+
@買掛金 = @bs_data.each.with_object({}) do |(k, v), h|
|
88
|
+
next unless account_codes.include?(k.to_s)
|
89
|
+
next unless readable(v || 0) > 0
|
90
|
+
|
91
|
+
h[k] = {
|
92
|
+
name: self.class.dict.dig(k)[:label],
|
93
|
+
amount: readable(v)
|
94
|
+
}
|
95
|
+
metadata = uchiwake_account_config(k).first
|
96
|
+
if metadata && metadata['name']
|
97
|
+
h[k][:name] = metadata['name']
|
98
|
+
h[k][:payable_type] = self.class.dict.dig(k[0..2], :label)
|
99
|
+
h[k][:address] = metadata['address']
|
100
|
+
h[k][:note] = metadata['note']
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
render_erb(search_template('kaikake-meisai.xml.erb'))
|
105
|
+
end
|
106
|
+
|
107
|
+
def 買掛金等合計
|
108
|
+
@bs_data.filter { |k, _v| ['511', '514', '517'].include?(k.to_s) }
|
109
|
+
.map { |_k, v| readable(v) || 0 }
|
110
|
+
.sum
|
111
|
+
end
|
112
|
+
|
113
|
+
def 仮受金内訳
|
114
|
+
@源泉給与 = readable(@bs_data.dig('5191') || 0)
|
115
|
+
@源泉報酬 = readable(@bs_data.dig('5193') || 0)
|
116
|
+
render_erb(search_template('kariuke-meisai.xml.erb'))
|
117
|
+
end
|
118
|
+
|
119
|
+
def 借入金内訳フォーム
|
120
|
+
accounts = uchiwake_account_config('512')
|
121
|
+
accounts.concat uchiwake_account_config('712')
|
122
|
+
return nil if accounts.length == 0
|
123
|
+
|
124
|
+
'HOI110'
|
125
|
+
end
|
126
|
+
|
127
|
+
def 借入金内訳
|
128
|
+
account_codes = uchiwake_account_config('512').map { |account| account['code'].to_s }
|
129
|
+
account_codes.concat uchiwake_account_config('712').map { |account| account['code'].to_s }
|
130
|
+
return nil if account_codes.length == 0
|
131
|
+
|
132
|
+
@借入金 = @bs_data.each.with_object({}) do |(k, v), h|
|
133
|
+
next unless account_codes.include?(k.to_s)
|
134
|
+
next unless readable(v || 0) > 0
|
135
|
+
|
136
|
+
h[k] = {
|
137
|
+
name: self.class.dict.dig(k)[:label],
|
138
|
+
amount: readable(v)
|
139
|
+
}
|
140
|
+
metadata = uchiwake_account_config(k).first
|
141
|
+
if metadata && metadata['name']
|
142
|
+
h[k][:name] = metadata['name']
|
143
|
+
h[k][:address] = metadata['address']
|
144
|
+
h[k][:note] = metadata['note']
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
render_erb(search_template('kariire-meisai.xml.erb'))
|
149
|
+
end
|
150
|
+
|
151
|
+
def 借入金合計
|
152
|
+
@bs_data.filter { |k, _v| ['512', '712'].include?(k.to_s) }
|
153
|
+
.map { |_k, v| readable(v) || 0 }
|
154
|
+
.sum
|
155
|
+
end
|
156
|
+
|
157
|
+
def 地代家賃内訳フォーム
|
158
|
+
return nil if uchiwake_account_config('C1E').length == 0
|
159
|
+
|
160
|
+
'HOI150'
|
161
|
+
end
|
162
|
+
|
163
|
+
def 地代家賃内訳
|
164
|
+
account_codes = uchiwake_account_config('C1E').map { |account| account['code'].to_s }
|
165
|
+
return nil if account_codes.length == 0
|
166
|
+
|
167
|
+
@地代家賃 = @bs_data.each.with_object({}) do |(k, v), h|
|
168
|
+
next unless account_codes.include?(k)
|
169
|
+
next unless readable(v || 0) > 0
|
170
|
+
|
171
|
+
h[k] = {
|
172
|
+
name: self.class.dict.dig(k)[:label],
|
173
|
+
amount: readable(v)
|
174
|
+
}
|
175
|
+
metadata = uchiwake_account_config(k).first
|
176
|
+
if metadata && metadata['name']
|
177
|
+
h[k][:name] = metadata['name']
|
178
|
+
h[k][:address] = metadata['address']
|
179
|
+
h[k][:rent_type] = metadata['rent_type'] || '家賃'
|
180
|
+
h[k][:rent_purpose] = metadata['rent_purpose']
|
181
|
+
h[k][:rent_address] = metadata['rent_address']
|
182
|
+
h[k][:note] = metadata['note']
|
183
|
+
end
|
184
|
+
end
|
185
|
+
render_erb(search_template('chidai-meisai.xml.erb'))
|
186
|
+
end
|
187
|
+
|
188
|
+
def 役員報酬内訳
|
189
|
+
@役員報酬 = readable(@pl_data.dig('C11') || 0)
|
190
|
+
@給料 = readable(@pl_data.dig('C12') || 0)
|
191
|
+
render_erb(search_template('yakuin-meisai.xml.erb'))
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'cgi/escape'
|
5
|
+
require 'luca_deal'
|
6
|
+
require 'luca_support'
|
7
|
+
require 'luca_support/config'
|
8
|
+
require 'luca/jp'
|
9
|
+
|
10
|
+
module Luca
|
11
|
+
module Jp
|
12
|
+
class Urikake < LucaDeal::Invoice
|
13
|
+
@dirname = 'invoices'
|
14
|
+
|
15
|
+
def report(total = nil)
|
16
|
+
listed_amount = 0
|
17
|
+
str = CSV.generate(String.new, headers: false, col_sep: ',', encoding: 'UTF-8') do |f|
|
18
|
+
list.map do |invoice|
|
19
|
+
amount = readable(invoice.dig('subtotal', 0, 'items') + invoice.dig('subtotal', 0, 'tax'))
|
20
|
+
listed_amount += amount
|
21
|
+
f << ['3', '0', '売掛金', invoice.dig('customer', 'name'), invoice.dig('customer', 'address'), amount, nil ]
|
22
|
+
end
|
23
|
+
if total
|
24
|
+
f << ['3', '0', '売掛金', 'その他', nil, total - listed_amount, nil ]
|
25
|
+
f << ['3', '1', nil, nil, nil, total, nil ]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
File.open('HOI030_3.0.csv', 'w') { |f| f.write(str) }
|
29
|
+
end
|
30
|
+
|
31
|
+
def list
|
32
|
+
invoices = self.class.asof(@date.year, @date.month)
|
33
|
+
.map { |dat, _path| dat }
|
34
|
+
.sort_by { |invoice| invoice.dig('subtotal', 0, 'items') }
|
35
|
+
.reverse
|
36
|
+
|
37
|
+
reports = invoices.filter { |invoice| 500_000 <= invoice['subtotal'].inject(0) { |sum, i| sum + i['items'] + i['tax'] } }
|
38
|
+
return reports if reports.length >= 5
|
39
|
+
|
40
|
+
additional = invoices
|
41
|
+
.filter { |invoice| 500_000 > invoice['subtotal'].inject(0) { |sum, i| sum + i['items'] + i['tax'] } }
|
42
|
+
.take(5 - reports.length)
|
43
|
+
reports.concat(additional)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/luca/jp/util.rb
CHANGED
@@ -54,6 +54,8 @@ module Luca
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def render_attr(code, val)
|
57
|
+
return '' if val.nil? || val.to_s.length == 0
|
58
|
+
|
57
59
|
"<#{code}>#{val}</#{code}>"
|
58
60
|
end
|
59
61
|
|
@@ -64,6 +66,29 @@ module Luca
|
|
64
66
|
def config
|
65
67
|
EX_CONF.nil? ? LucaSupport::CONFIG : LucaSupport::CONFIG.merge(EX_CONF)
|
66
68
|
end
|
69
|
+
|
70
|
+
def it_part_config(key)
|
71
|
+
config.dig('jp', 'it_part', key)
|
72
|
+
end
|
73
|
+
|
74
|
+
def beppyo2_config(key)
|
75
|
+
config.dig('jp', 'beppyo2', key)
|
76
|
+
end
|
77
|
+
|
78
|
+
def gaikyo_config(key)
|
79
|
+
config.dig('jp', 'gaikyo', key)
|
80
|
+
end
|
81
|
+
|
82
|
+
def uchiwake_account_config(key)
|
83
|
+
account_list = config.dig('jp', 'accounts')
|
84
|
+
return [] if account_list.nil?
|
85
|
+
|
86
|
+
Array(account_list).filter { |account| /^#{key}/.match(account['code'].to_s) }
|
87
|
+
end
|
88
|
+
|
89
|
+
def eltax_config(key)
|
90
|
+
config.dig('jp', 'eltax', key)
|
91
|
+
end
|
67
92
|
end
|
68
93
|
end
|
69
94
|
end
|
data/lib/luca/jp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luca-jp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
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-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucabook
|
@@ -96,19 +96,26 @@ files:
|
|
96
96
|
- lib/luca/jp/templates/beppyo51.xml.erb
|
97
97
|
- lib/luca/jp/templates/beppyo52.xml.erb
|
98
98
|
- lib/luca/jp/templates/beppyo7.xml.erb
|
99
|
+
- lib/luca/jp/templates/chidai-meisai.xml.erb
|
99
100
|
- lib/luca/jp/templates/consumption.xtx.erb
|
100
101
|
- lib/luca/jp/templates/el-no6-43.xml.erb
|
101
102
|
- lib/luca/jp/templates/el-no6-9.xml.erb
|
102
103
|
- lib/luca/jp/templates/el-no6.xml.erb
|
104
|
+
- lib/luca/jp/templates/eltax-userinf.xml.erb
|
103
105
|
- lib/luca/jp/templates/eltax.xml.erb
|
104
106
|
- lib/luca/jp/templates/fuhyo43.xml.erb
|
105
107
|
- lib/luca/jp/templates/fuhyo53.xml.erb
|
106
108
|
- lib/luca/jp/templates/gaikyo.xml.erb
|
109
|
+
- lib/luca/jp/templates/kaikake-meisai.xml.erb
|
110
|
+
- lib/luca/jp/templates/kariire-meisai.xml.erb
|
107
111
|
- lib/luca/jp/templates/kariuke-meisai.xml.erb
|
112
|
+
- lib/luca/jp/templates/shoken-meisai.xml.erb
|
108
113
|
- lib/luca/jp/templates/syouhizei-shinkoku-kanni.xml.erb
|
109
114
|
- lib/luca/jp/templates/tekiyougaku.xml.erb
|
110
115
|
- lib/luca/jp/templates/yakuin-meisai.xml.erb
|
111
116
|
- lib/luca/jp/templates/yokin-meisai.xml.erb
|
117
|
+
- lib/luca/jp/uchiwake.rb
|
118
|
+
- lib/luca/jp/urikake.rb
|
112
119
|
- lib/luca/jp/util.rb
|
113
120
|
- lib/luca/jp/version.rb
|
114
121
|
homepage: https://github.com/chumaltd/luca-jp/tree/main
|