module Luca::Jp::ItPart

Public Instance Methods

it_part() click to toggle source

タグの出現順序は順不同ではない。eTaxの定義に準拠

# File lib/luca/jp/it_part.rb, line 11
def it_part
  entries = ['<IT VR="1.4" id="IT">']
  entries.concat(['zeimusho']
                   .map{ |key| render_it_tag(key) })
  entries << teisyutsu_day
  entries.concat(['nozeisha_id', 'nozeisha_bango']
                   .map{ |key| render_it_tag(key) })
  entries.concat(['nozeisha_nm_kn', 'nozeisha_nm', 'nozeisha_zip', 'nozeisha_adr_kn', 'nozeisha_adr', 'nozeisha_tel']
                   .map{ |key| render_it_tag(key) })
  entries.concat(['shihon_kin', 'jigyo_naiyo', 'kanpu_kinyukikan']
                   .map{ |key| render_it_tag(key) })
  entries.concat(['daihyo_nm_kn', 'daihyo_nm', 'daihyo_zip', 'daihyo_adr', 'daihyo_tel']
                   .map{ |key| render_it_tag(key) })
  entries << %Q(<TETSUZUKI ID="TETSUZUKI"><procedure_CD>#{@procedure_code}</procedure_CD><procedure_NM>#{@procedure_name}</procedure_NM></TETSUZUKI>)
  entries.concat([jigyo_nendo_from, jigyo_nendo_to, kazei_kikan_from, kazei_kikan_to])
  entries << render_it_tag('keiri_sekininsha')
  entries << '<SHINKOKU_KBN ID="SHINKOKU_KBN"><kubun_CD>30</kubun_CD></SHINKOKU_KBN>'
  entries.concat(['eltax_id'].map{ |key| render_it_tag(key) })
  entries << '</IT>'
  entries.compact.join("\n")
end
jigyo_nendo_from() click to toggle source
# File lib/luca/jp/it_part.rb, line 82
def jigyo_nendo_from
  %Q(<JIGYO_NENDO_FROM ID="JIGYO_NENDO_FROM"><gen:era>#{gengou(@start_date)}</gen:era><gen:yy>#{wareki(@start_date)}</gen:yy><gen:mm>#{@start_date.month}</gen:mm><gen:dd>#{@start_date.day}</gen:dd></JIGYO_NENDO_FROM>)
end
jigyo_nendo_to() click to toggle source
# File lib/luca/jp/it_part.rb, line 86
def jigyo_nendo_to
  %Q(<JIGYO_NENDO_TO ID="JIGYO_NENDO_TO"><gen:era>#{gengou(@end_date)}</gen:era><gen:yy>#{wareki(@end_date)}</gen:yy><gen:mm>#{@end_date.month}</gen:mm><gen:dd>#{@end_date.day}</gen:dd></JIGYO_NENDO_TO>)
end
kazei_kikan_from() click to toggle source
# File lib/luca/jp/it_part.rb, line 90
def kazei_kikan_from
  %Q(<KAZEI_KIKAN_FROM ID="KAZEI_KIKAN_FROM"><gen:era>#{gengou(@start_date)}</gen:era><gen:yy>#{wareki(@start_date)}</gen:yy><gen:mm>#{@start_date.month}</gen:mm><gen:dd>#{@start_date.day}</gen:dd></KAZEI_KIKAN_FROM>)
end
kazei_kikan_to() click to toggle source
# File lib/luca/jp/it_part.rb, line 94
def kazei_kikan_to
  %Q(<KAZEI_KIKAN_TO ID="KAZEI_KIKAN_TO"><gen:era>#{gengou(@end_date)}</gen:era><gen:yy>#{wareki(@end_date)}</gen:yy><gen:mm>#{@end_date.month}</gen:mm><gen:dd>#{@end_date.day}</gen:dd></KAZEI_KIKAN_TO>)
end
parse_houjinbango(str) click to toggle source
# File lib/luca/jp/it_part.rb, line 59
def parse_houjinbango(str)
  %Q(<gen:hojinbango>#{str}</gen:hojinbango>)
end
parse_kinyukikan(str) click to toggle source
# File lib/luca/jp/it_part.rb, line 63
def parse_kinyukikan(str)
  items = str.split('-')
  %Q(<gen:kinyukikan_NM kinyukikan_KB="1">#{items[0]}</gen:kinyukikan_NM><gen:shiten_NM shiten_KB="2">#{items[1]}</gen:shiten_NM><gen:yokin>#{items[2]}</gen:yokin><gen:koza>#{items[3]}</gen:koza>)
end
parse_tel(str) click to toggle source
# File lib/luca/jp/it_part.rb, line 68
def parse_tel(str)
  num = str.split('-')
  %Q(<gen:tel1>#{num[0]}</gen:tel1><gen:tel2>#{num[1]}</gen:tel2><gen:tel3>#{num[2]}</gen:tel3>)
end
parse_zeimusho(str) click to toggle source
# File lib/luca/jp/it_part.rb, line 54
def parse_zeimusho(str)
  items = str.split('-')
  %Q(<gen:zeimusho_CD>#{items[0]}</gen:zeimusho_CD><gen:zeimusho_NM>#{items[1]}</gen:zeimusho_NM>)
end
parse_zip(str) click to toggle source
# File lib/luca/jp/it_part.rb, line 73
def parse_zip(str)
  num = str.split('-')
  %Q(<gen:zip1>#{num[0]}</gen:zip1><gen:zip2>#{num[1]}</gen:zip2>)
end
render_it_tag(key) click to toggle source
# File lib/luca/jp/it_part.rb, line 33
def render_it_tag(key)
  content = config.dig('jp', 'it_part', key)
  return nil if content.nil?

  case key
  when 'zeimusho'
    content = parse_zeimusho(content)
  when 'nozeisha_tel', 'daihyo_tel'
    content = parse_tel(content)
  when 'nozeisha_zip', 'daihyo_zip'
    content = parse_zip(content)
  when 'nozeisha_bango'
    content = parse_houjinbango(content)
  when 'kanpu_kinyukikan'
    content = parse_kinyukikan(content)
  end

  tag = key.to_s.upcase
  %Q(<#{tag} ID="#{tag}">#{content}</#{tag}>)
end
teisyutsu_day() click to toggle source
# File lib/luca/jp/it_part.rb, line 78
def teisyutsu_day
  %Q(<TEISYUTSU_DAY ID="TEISYUTSU_DAY"><gen:era>#{gengou(@issue_date)}</gen:era><gen:yy>#{wareki(@issue_date)}</gen:yy><gen:mm>#{@issue_date.month}</gen:mm><gen:dd>#{@issue_date.day}</gen:dd></TEISYUTSU_DAY>)
end