luca-jp 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/luca-jp +12 -0
- data/lib/luca/jp.rb +1 -0
- data/lib/luca/jp/aoiro.rb +53 -0
- data/lib/luca/jp/chihouzei.rb +3 -2
- data/lib/luca/jp/it_part.rb +1 -1
- data/lib/luca/jp/templates/beppyo2.xml.erb +31 -0
- data/lib/luca/jp/templates/beppyo4.xml.erb +4 -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 +10 -10
- data/lib/luca/jp/templates/eltax.xml.erb +7 -7
- data/lib/luca/jp/templates/gaikyo.xml.erb +1 -0
- data/lib/luca/jp/templates/tekiyougaku.xml.erb +2 -0
- data/lib/luca/jp/urikake.rb +47 -0
- data/lib/luca/jp/util.rb +6 -0
- data/lib/luca/jp/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a806b0b50cedaaee6bcf04c226f02fc857a4c7a651a6a06f7a22abd0e4e161cc
|
4
|
+
data.tar.gz: 9a8188a2595fc6e487b81d073a150995221f9add68768ce2c133267ec084a9b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 994c9afe22a85581401f8f78853b149bfef194cba11b2c61f24bc43fb26e9dcb6698f79f8919a0aae301e4982d324c9068c4a21b83a756775e92f2d3d61b7326
|
7
|
+
data.tar.gz: 9e001abecc4c7fd0831b2a82eb112156db3e4b8ea9666f9c42fbaf556c9b527caad948c63f17712d99bb44e2b5bd10b2d34b34a96d327dc637cd445435993dc8
|
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
@@ -255,6 +255,59 @@ module Luca
|
|
255
255
|
readable(LucaBook::State.gross(@start_date.year, @start_date.month, @end_date.year, @end_date.month, code: 'C1I')[:debit]['C1I']) || 0
|
256
256
|
end
|
257
257
|
|
258
|
+
def 別表二株主リスト
|
259
|
+
return '' if beppyo2_config('owners').nil?
|
260
|
+
|
261
|
+
tags = beppyo2_config('owners')[1..-1]&.map.with_index(2) do |owner, i|
|
262
|
+
%Q(<VAE00170>
|
263
|
+
<VAE00180>
|
264
|
+
<VAE00190>#{i}</VAE00190>
|
265
|
+
<VAE00200>#{i}</VAE00200>
|
266
|
+
</VAE00180>
|
267
|
+
<VAE00210>
|
268
|
+
#{render_attr('VAE00220', owner['address'])}
|
269
|
+
#{render_attr('VAE00230', owner['name'])}
|
270
|
+
#{render_attr('VAE00235', owner['relation'] || 'その他')}
|
271
|
+
</VAE00210>
|
272
|
+
<VAE00250>
|
273
|
+
<VAE00290>
|
274
|
+
#{render_attr('VAE00300', owner['shares'])}
|
275
|
+
<VAE00310>
|
276
|
+
#{render_attr('VAE00330', owner['votes'])}
|
277
|
+
</VAE00310>
|
278
|
+
</VAE00290>
|
279
|
+
</VAE00250>
|
280
|
+
</VAE00170>)
|
281
|
+
end
|
282
|
+
tags.compact.join("\n")
|
283
|
+
end
|
284
|
+
|
285
|
+
def 別表二上位株数
|
286
|
+
return nil if beppyo2_config('owners').nil?
|
287
|
+
|
288
|
+
beppyo2_config('owners')[0..2].map{ |owner| owner['shares']&.to_i || 0 }.sum
|
289
|
+
end
|
290
|
+
|
291
|
+
def 別表二上位株割合
|
292
|
+
return nil if beppyo2_config('total_shares').nil?
|
293
|
+
return nil if beppyo2_config('owners').nil?
|
294
|
+
|
295
|
+
(別表二上位株数 * 100.0 / beppyo2_config('total_shares')).round(1).to_s
|
296
|
+
end
|
297
|
+
|
298
|
+
def 別表二上位議決権数
|
299
|
+
return nil if beppyo2_config('owners').nil?
|
300
|
+
|
301
|
+
beppyo2_config('owners')[0..2].map{ |owner| owner['votes']&.to_i || 0 }.sum
|
302
|
+
end
|
303
|
+
|
304
|
+
def 別表二上位議決権割合
|
305
|
+
return nil if beppyo2_config('total_votes').nil?
|
306
|
+
return nil if beppyo2_config('owners').nil?
|
307
|
+
|
308
|
+
(別表二上位議決権数 * 100.0 / beppyo2_config('total_votes')).round(1).to_s
|
309
|
+
end
|
310
|
+
|
258
311
|
def 別表四還付法人税等金額
|
259
312
|
refund_tax()
|
260
313
|
end
|
data/lib/luca/jp/chihouzei.rb
CHANGED
@@ -26,6 +26,7 @@ module Luca
|
|
26
26
|
@software = 'LucaJp'
|
27
27
|
@jimusho_code = eltax_config('jimusho_code')
|
28
28
|
@jimusho_name = eltax_config('jimusho_name')
|
29
|
+
@app_version = eltax_config('app_version')
|
29
30
|
|
30
31
|
@税額 = 税額計算
|
31
32
|
@均等割 = @税額.dig(:kenmin, :kintou)
|
@@ -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 事業税中間納付
|
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")
|
@@ -6,4 +6,35 @@
|
|
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
|
+
<VAE00000>
|
20
|
+
<VAE00010>
|
21
|
+
<VAE00020>
|
22
|
+
<VAE00030>1</VAE00030>
|
23
|
+
<VAE00040>1</VAE00040>
|
24
|
+
</VAE00020>
|
25
|
+
<VAE00050>
|
26
|
+
<%= render_attr('VAE00060', beppyo2_config('owners')&.dig(0, 'address')) %>
|
27
|
+
<%= render_attr('VAE00070', beppyo2_config('owners')&.dig(0, 'name')) %>
|
28
|
+
</VAE00050>
|
29
|
+
<VAE00080>
|
30
|
+
<VAE00120>
|
31
|
+
<%= render_attr('VAE00130', beppyo2_config('owners')&.dig(0, 'shares')) %>
|
32
|
+
<VAE00140>
|
33
|
+
<%= render_attr('VAE00160', beppyo2_config('owners')&.dig(0, 'votes')) %>
|
34
|
+
</VAE00140>
|
35
|
+
</VAE00120>
|
36
|
+
</VAE00080>
|
37
|
+
</VAE00010>
|
38
|
+
<%= 別表二株主リスト %>
|
39
|
+
</VAE00000>
|
9
40
|
</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', @別表四調整所得) %>
|
@@ -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>
|
@@ -155,7 +155,7 @@
|
|
155
155
|
<%= render_attr('AAF00700', @繰越損失管理.deduction) %>
|
156
156
|
<%= render_attr('AAG00100', 所得金額) %>
|
157
157
|
<AAH00100 />
|
158
|
-
<AAH00200
|
158
|
+
<AAH00200><%= 中間還付税額(@確定法人税割, @法人税割中間納付) + 中間還付税額(@所得割, 事業税中間納付) + 中間還付税額(地方法人特別税(@所得割), @地方特別法人事業税中間納付) %></AAH00200>
|
159
159
|
<AAH00400><%= eltax_kouza %></AAH00400>
|
160
160
|
<AAI00100>
|
161
161
|
<gen:era />
|
@@ -175,8 +175,8 @@
|
|
175
175
|
<gen:mm />
|
176
176
|
<gen:dd />
|
177
177
|
</AAI01000>
|
178
|
-
<AAI00600
|
179
|
-
<AAI00500
|
178
|
+
<AAI00600>2</AAI00600>
|
179
|
+
<AAI00500>2</AAI00500>
|
180
180
|
<AAI00200>
|
181
181
|
<gen:era />
|
182
182
|
<gen:yy />
|
@@ -189,9 +189,9 @@
|
|
189
189
|
<gen:mm />
|
190
190
|
<gen:dd />
|
191
191
|
</AAI00300>
|
192
|
-
<AAI00400
|
193
|
-
<AAI00450
|
194
|
-
<AAI00700
|
192
|
+
<AAI00400>1</AAI00400>
|
193
|
+
<AAI00450><%= @税額.dig(:houjin, :kokuzei) %></AAI00450>
|
194
|
+
<AAI00700><%= @税額.dig(:houjin, :kokuzei) > 200000 ? 1 : 2 %></AAI00700>
|
195
195
|
<AAI00800 />
|
196
196
|
<AAJ_DAIRI_NAME></AAJ_DAIRI_NAME>
|
197
197
|
<AAJ_DAIRI_TEL_NUM></AAJ_DAIRI_TEL_NUM>
|
@@ -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>
|
@@ -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) %>
|
@@ -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
|
|
@@ -69,6 +71,10 @@ module Luca
|
|
69
71
|
config.dig('jp', 'it_part', key)
|
70
72
|
end
|
71
73
|
|
74
|
+
def beppyo2_config(key)
|
75
|
+
config.dig('jp', 'beppyo2', key)
|
76
|
+
end
|
77
|
+
|
72
78
|
def eltax_config(key)
|
73
79
|
config.dig('jp', 'eltax', key)
|
74
80
|
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.1.
|
4
|
+
version: 0.1.8
|
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-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lucabook
|
@@ -110,6 +110,7 @@ files:
|
|
110
110
|
- lib/luca/jp/templates/tekiyougaku.xml.erb
|
111
111
|
- lib/luca/jp/templates/yakuin-meisai.xml.erb
|
112
112
|
- lib/luca/jp/templates/yokin-meisai.xml.erb
|
113
|
+
- lib/luca/jp/urikake.rb
|
113
114
|
- lib/luca/jp/util.rb
|
114
115
|
- lib/luca/jp/version.rb
|
115
116
|
homepage: https://github.com/chumaltd/luca-jp/tree/main
|