luca-jp 0.1.3 → 0.1.8

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.
@@ -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></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></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"></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"></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"></JIGYO_NAME>
85
- <SHIHON id="SHIHON"></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></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>
@@ -11,6 +11,7 @@
11
11
  </IAA02000>
12
12
  <IAA02300 IDREF="NOZEISHA_BANGO"/>
13
13
  </IAA00000>
14
+ <%= render_attr('IAS00000', it_part_config('jigyo_naiyo')) %>
14
15
  <IAF00000>
15
16
  <IAF04000>
16
17
  <%= render_attr('IAF04200', 消費税課税売上高) %>
@@ -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">
@@ -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
@@ -22,7 +22,15 @@ 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)
29
+ end
30
+
31
+ def refund_tax(code)
32
+ credit = credit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month)
33
+ LucaSupport::Code.readable(credit)
26
34
  end
27
35
 
28
36
  def 納付税額(税額, 中間納付額)
@@ -46,6 +54,8 @@ module Luca
46
54
  end
47
55
 
48
56
  def render_attr(code, val)
57
+ return '' if val.nil? || val.to_s.length == 0
58
+
49
59
  "<#{code}>#{val}</#{code}>"
50
60
  end
51
61
 
@@ -56,6 +66,18 @@ module Luca
56
66
  def config
57
67
  EX_CONF.nil? ? LucaSupport::CONFIG : LucaSupport::CONFIG.merge(EX_CONF)
58
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 eltax_config(key)
79
+ config.dig('jp', 'eltax', key)
80
+ end
59
81
  end
60
82
  end
61
83
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Luca
4
4
  module Jp
5
- VERSION = '0.1.3'
5
+ VERSION = '0.1.8'
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.1.3
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-15 00:00:00.000000000 Z
11
+ date: 2021-03-27 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,9 +95,12 @@ 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
103
+ - lib/luca/jp/templates/eltax-userinf.xml.erb
100
104
  - lib/luca/jp/templates/eltax.xml.erb
101
105
  - lib/luca/jp/templates/fuhyo43.xml.erb
102
106
  - lib/luca/jp/templates/fuhyo53.xml.erb
@@ -106,6 +110,7 @@ files:
106
110
  - lib/luca/jp/templates/tekiyougaku.xml.erb
107
111
  - lib/luca/jp/templates/yakuin-meisai.xml.erb
108
112
  - lib/luca/jp/templates/yokin-meisai.xml.erb
113
+ - lib/luca/jp/urikake.rb
109
114
  - lib/luca/jp/util.rb
110
115
  - lib/luca/jp/version.rb
111
116
  homepage: https://github.com/chumaltd/luca-jp/tree/main