Module: Luca::Jp::Util
Class Method Summary collapse
- .alphadigit_ja(str) ⇒ Object
- .beppyo2_config(key) ⇒ Object
- .config ⇒ Object
- .eltax_config(key) ⇒ Object
- .etax_date(date) ⇒ Object
- .form_rdf(code) ⇒ Object
- .gaikyo_config(key) ⇒ Object
- .gengou(date) ⇒ Object
- .it_part_config(key) ⇒ Object
-
.prepaid_tax(code, customer = nil) ⇒ Object
TODO: customerオプションを適切に扱うには 納付時にx-customerを付加していないケースの考慮が必要.
- .refund_tax(code) ⇒ Object
- .render_attr(code, val) ⇒ Object
- .tokyo23? ⇒ Boolean
- .uchiwake_account_config(key) ⇒ Object
- .wareki(date) ⇒ Object
- .中間還付税額(税額, 中間納付額) ⇒ Object
- .期首期末残高(code) ⇒ Object
- .納付税額(税額, 中間納付額) ⇒ Object
- .純資産期中増減(code) ⇒ Object
Class Method Details
.alphadigit_ja(str) ⇒ Object
24 25 26 |
# File 'lib/luca/jp/util.rb', line 24 def alphadigit_ja(str) str.tr('A-Z0-9\- ', 'A-Z0-9ー ') end |
.beppyo2_config(key) ⇒ Object
83 84 85 |
# File 'lib/luca/jp/util.rb', line 83 def beppyo2_config(key) config.dig('jp', 'beppyo2', key) end |
.config ⇒ Object
75 76 77 |
# File 'lib/luca/jp/util.rb', line 75 def config LucaSupport::CONST.config end |
.eltax_config(key) ⇒ Object
98 99 100 |
# File 'lib/luca/jp/util.rb', line 98 def eltax_config(key) config.dig('jp', 'eltax', key) end |
.etax_date(date) ⇒ Object
69 70 71 72 73 |
# File 'lib/luca/jp/util.rb', line 69 def etax_date(date) return nil if date.nil? "<gen:era>#{gengou(date)}</gen:era><gen:yy>#{wareki(date)}</gen:yy><gen:mm>#{date.month}</gen:mm><gen:dd>#{date.day}</gen:dd>" end |
.form_rdf(code) ⇒ Object
59 60 61 |
# File 'lib/luca/jp/util.rb', line 59 def form_rdf(code) "<rdf:li><rdf:description about=\"##{code}\"/></rdf:li>" end |
.gaikyo_config(key) ⇒ Object
87 88 89 |
# File 'lib/luca/jp/util.rb', line 87 def gaikyo_config(key) config.dig('jp', 'gaikyo', key) end |
.gengou(date) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/luca/jp/util.rb', line 8 def gengou(date) if date >= Date.new(2019, 5, 1) 5 else 4 end end |
.it_part_config(key) ⇒ Object
79 80 81 |
# File 'lib/luca/jp/util.rb', line 79 def it_part_config(key) config.dig('jp', 'it_part', key) end |
.prepaid_tax(code, customer = nil) ⇒ Object
TODO: customerオプションを適切に扱うには納付時にx-customerを付加していないケースの考慮が必要
30 31 32 33 34 35 36 |
# File 'lib/luca/jp/util.rb', line 30 def prepaid_tax(code, customer = nil) search_end = @end_date.prev_day # exclude year end adjustment # header = { customer: customer } unless customer.nil? header = nil amount, _ = self.class.net(@start_date.year, @start_date.month, date_range: @start_date..search_end, code: code, header: header) LucaSupport::Code.readable(amount[code] || 0) end |
.refund_tax(code) ⇒ Object
38 39 40 41 |
# File 'lib/luca/jp/util.rb', line 38 def refund_tax(code) credit = credit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) LucaSupport::Code.readable(credit) end |
.render_attr(code, val) ⇒ Object
63 64 65 66 67 |
# File 'lib/luca/jp/util.rb', line 63 def render_attr(code, val) return '' if val.nil? || val.to_s.length == 0 "<#{code}>#{val}</#{code}>" end |
.tokyo23? ⇒ Boolean
102 103 104 |
# File 'lib/luca/jp/util.rb', line 102 def tokyo23? @report_category == '23ku' end |
.uchiwake_account_config(key) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/luca/jp/util.rb', line 91 def uchiwake_account_config(key) account_list = config.dig('jp', 'accounts') return [] if account_list.nil? Array(account_list).filter { |account| /^#{key}/.match(account['code'].to_s) } end |
.wareki(date) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/luca/jp/util.rb', line 16 def wareki(date) if date >= Date.new(2019, 5, 1) date.year - 2018 else date.year - 1988 end end |
.中間還付税額(税額, 中間納付額) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/luca/jp/util.rb', line 51 def 中間還付税額(税額, 中間納付額) if 税額 < 中間納付額 中間納付額 - 税額 else 0 end end |
.期首期末残高(code) ⇒ Object
106 107 108 109 110 |
# File 'lib/luca/jp/util.rb', line 106 def 期首期末残高(code) pre = readable(@start_balance.dig(code)) || 0 post = readable(@bs_data.dig(code)) || 0 [readable(pre), readable(post)] end |
.納付税額(税額, 中間納付額) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/luca/jp/util.rb', line 43 def 納付税額(税額, 中間納付額) if 税額 > 中間納付額 税額 - 中間納付額 else 0 end end |
.純資産期中増減(code) ⇒ Object
112 113 114 115 116 117 |
# File 'lib/luca/jp/util.rb', line 112 def 純資産期中増減(code) inc = credit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) dec = debit_amount(code, @start_date.year, @start_date.month, @end_date.year, @end_date.month) [readable(dec), readable(inc)] end |