class Luca::Jp::Chihouzei
Public Instance Methods
export_json()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 72 def export_json records = kani(export: true) [].tap do |res| item = {} item['date'] = @end_date item['debit'] = [] item['credit'] = [] records[:jigyouzei].each do |k, dat| if dat[:chukan] > 0 item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] } end if dat[:chukan] > dat[:zeigaku] item['debit'] << { 'label' => '未収地方事業税', 'amount' => dat[:chukan] - dat[:zeigaku] } else item['credit'] << { 'label' => '未払地方事業税', 'amount' => dat[:zeigaku] - dat[:chukan] } end item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0 end records[:juminzei].each do |k, dat| if dat[:chukan] > 0 item['credit'] << { 'label' => karibarai_label(k), 'amount' => dat[:chukan] } end if dat[:chukan] > dat[:zeigaku] item['debit'] << { 'label' => '未収都道府県住民税', 'amount' => dat[:chukan] - dat[:zeigaku] } else item['credit'] << { 'label' => '未払都道府県民税', 'amount' => dat[:zeigaku] - dat[:chukan] } end item['debit'] << { 'label' => '法人税、住民税及び事業税', 'amount' => dat[:zeigaku] } if dat[:zeigaku] > 0 end item['x-editor'] = 'LucaJp' res << item puts JSON.dump(res) end end
kani(export: false)
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 21 def kani(export: false) set_pl(4) set_bs(4) @issue_date = Date.today @company = CGI.escapeHTML(config.dig('company', 'name')) @software = 'LucaJp' @jimusho_code = eltax_config('jimusho_code') @jimusho_name = eltax_config('jimusho_name') @app_version = eltax_config('app_version') @税額 = 税額計算 @均等割 = @税額.dig(:kenmin, :kintou) @確定法人税割 = (@税額.dig(:kenmin, :houjinzei) / 100).floor * 100 @地方特別法人事業税中間納付 = prepaid_tax('1854') @所得割中間納付 = prepaid_tax('1855') @法人税割中間納付 = prepaid_tax('1859') @均等割中間納付 = prepaid_tax('185A') @所得割 = @税額.dig(:kenmin, :shotoku) if export { jigyouzei: { shotoku: { zeigaku: @所得割, chukan: @所得割中間納付 }, tokubetsu: { zeigaku: @税額.dig(:kenmin, :tokubetsu), chukan: @地方特別法人事業税中間納付 }, }, juminzei: { kinto: { zeigaku: @均等割, chukan: @均等割中間納付 }, houjinzei: { zeigaku: @確定法人税割, chukan: @法人税割中間納付 } } } else @procedure_code = 'R0102100' @procedure_name = '法人都道府県民税・事業税・特別法人事業税又は地方法人特別税 確定申告' @form_sec = ['R0102AA190', 'R0102AG120', 別表九フォーム].compact.map{ |c| form_attr(c) }.join('') @user_inf = render_erb(search_template('eltax-userinf.xml.erb')) @form_data = [第六号, 別表四三, 別表九].compact.join("\n") render_erb(search_template('eltax.xml.erb')) end end
別表九()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 123 def 別表九 return nil if @繰越損失管理.records.length == 0 render_erb(search_template('el-no6-9.xml.erb')) end
別表九フォーム()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 117 def 別表九フォーム return nil if @繰越損失管理.records.length == 0 'R0102AM190' end
別表四三()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 112 def 別表四三 @office_23ku = config.dig('jp', 'eltax', 'office_23ku') render_erb(search_template('el-no6-43.xml.erb')) end
第六号()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 107 def 第六号 @資本金準備金 = eltax_config('shihon') || it_part_config('shihon_kin') render_erb(search_template('el-no6.xml.erb')) end
Private Instance Methods
eltax_kouza()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 169 def eltax_kouza items = it_part_config('kanpu_kinyukikan').split('-') %Q(<gen:kubun_CD /> <gen:kinyukikan_NM>#{items[0]}</gen:kinyukikan_NM> <gen:shiten_NM>#{items[1]}</gen:shiten_NM> <gen:kinyukikan_CD /> <gen:shiten_CD /> <gen:yokin>1</gen:yokin> <gen:koza>#{items[3]}</gen:koza>) end
form_attr(code)
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 180 def form_attr(code) name = { 'R0102AA' => '中間・確定申告書', 'R0102AG' => '均等割額の計算に関する明細書', 'R0102AM' => '欠損金額等及び災害損失金の控除明細書' }[code[0,7]] "<FORM_ATTR><FORM_ID>#{code}</FORM_ID><FORM_NAME>#{name}</FORM_NAME><FORM_FILE_NAME></FORM_FILE_NAME><FORM_XSL_NAME></FORM_XSL_NAME></FORM_ATTR>" end
karibarai_label(key)
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 189 def karibarai_label(key) case key when :tokubetsu '仮払地方税特別法人事業税' when :shotoku '仮払地方税所得割' when :syunyu '仮払地方税収入割' when :shihon '仮払地方税資本割' when :fukakachi '仮払地方税付加価値割' when :houjinzei '仮払地方税法人税割' when :kinto '仮払地方税均等割' end end
lib_path()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 208 def lib_path __dir__ end
事業税中間納付()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 135 def 事業税中間納付 @所得割中間納付 end
別表九各期青色損失()
click to toggle source
TODO: 損失の区分
# File lib/luca/jp/chihouzei.rb, line 141 def 別表九各期青色損失 tags = @繰越損失管理.records .filter { |record| record['start_date'] > @end_date.prev_year(10) && record['end_date'] < @start_date } .map do |record| deduction = record['decrease']&.filter{ |r| r['date'] >= @start_date }&.dig(0, 'val') || 0 next if deduction == 0 && record['amount'] == 0 %Q(<AMB00200> <AMB00210>#{etax_date(@start_date)}</AMB00210> <AMB00220>#{etax_date(@end_date)}</AMB00220> <AMB00225 /> #{render_attr('AMB00230', deduction + record['amount'])} #{render_attr('AMB00240', deduction)} #{render_attr('AMB00250', record['amount'])} </AMB00200>) end return tags.compact.join("\n") if tags.length > 0 %Q(<AMB00200> <AMB00210><gen:era /><gen:yy /><gen:mm /><gen:dd /></AMB00210> <AMB00220><gen:era /><gen:yy /><gen:mm /><gen:dd /></AMB00220> <AMB00225 /> <AMB00230 /> <AMB00240 /> <AMB00250 /> </AMB00200>) end
法人税割課税標準()
click to toggle source
# File lib/luca/jp/chihouzei.rb, line 131 def 法人税割課税標準 (@税額.dig(:houjin, :kokuzei) / 1000).floor * 1000 end