Module: Luca::Jp::Util

Included in:
Aoiro, Chihouzei, Syouhizei
Defined in:
lib/luca/jp/util.rb

Class Method Summary collapse

Class Method Details

.beppyo2_config(key) ⇒ Object



74
75
76
# File 'lib/luca/jp/util.rb', line 74

def beppyo2_config(key)
  config.dig('jp', 'beppyo2', key)
end

.configObject



66
67
68
# File 'lib/luca/jp/util.rb', line 66

def config
  EX_CONF.nil? ? LucaSupport::CONFIG : LucaSupport::CONFIG.merge(EX_CONF)
end

.eltax_config(key) ⇒ Object



89
90
91
# File 'lib/luca/jp/util.rb', line 89

def eltax_config(key)
  config.dig('jp', 'eltax', key)
end

.etax_date(date) ⇒ Object



62
63
64
# File 'lib/luca/jp/util.rb', line 62

def etax_date(date)
  "<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



52
53
54
# File 'lib/luca/jp/util.rb', line 52

def form_rdf(code)
  "<rdf:li><rdf:description about=\"##{code}\"/></rdf:li>"
end

.gaikyo_config(key) ⇒ Object



78
79
80
# File 'lib/luca/jp/util.rb', line 78

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



70
71
72
# File 'lib/luca/jp/util.rb', line 70

def it_part_config(key)
  config.dig('jp', 'it_part', key)
end

.prepaid_tax(code) ⇒ Object



24
25
26
27
28
29
# File 'lib/luca/jp/util.rb', line 24

def prepaid_tax(code)
  #LucaSupport::Code.readable(@bs_data.dig(code) || 0)
  search_end = @end_date.prev_month # exclude year end adjustment
  amount, _ = self.class.net(@start_date.year, @start_date.month, search_end.year, search_end.month, code: code)
  LucaSupport::Code.readable(amount[code] || 0)
end

.refund_tax(code) ⇒ Object



31
32
33
34
# File 'lib/luca/jp/util.rb', line 31

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



56
57
58
59
60
# File 'lib/luca/jp/util.rb', line 56

def render_attr(code, val)
  return '' if val.nil? || val.to_s.length == 0

  "<#{code}>#{val}</#{code}>"
end

.uchiwake_account_config(key) ⇒ Object



82
83
84
85
86
87
# File 'lib/luca/jp/util.rb', line 82

def (key)
   = config.dig('jp', 'accounts')
  return [] if .nil?

  Array().filter { || /^#{key}/.match(['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



44
45
46
47
48
49
50
# File 'lib/luca/jp/util.rb', line 44

def 中間還付税額(税額, 中間納付額)
  if 税額 < 中間納付額
    中間納付額 - 税額
  else
    0
  end
end

.期首期末残高(code) ⇒ Object



93
94
95
96
97
# File 'lib/luca/jp/util.rb', line 93

def 期首期末残高(code)
  pre = readable(@start_balance.dig(code))
  post = readable(@bs_data.dig(code))
  [readable(pre), readable(post)]
end

.納付税額(税額, 中間納付額) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/luca/jp/util.rb', line 36

def 納付税額(税額, 中間納付額)
  if 税額 > 中間納付額
    税額 - 中間納付額
  else
    0
  end
end

.純資産期中増減(code) ⇒ Object



99
100
101
102
103
104
# File 'lib/luca/jp/util.rb', line 99

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