Last active
April 10, 2021 13:37
-
-
Save iberianpig/7c11afea04c79d4e2e1b237d06df3f34 to your computer and use it in GitHub Desktop.
MFの交通系ICカードリーダーで取得したCSVをFreeeで取り込める形式に変換する
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'csv' | |
class Mf2Freee | |
FILE_NAME = "収入・支出詳細_2020" | |
def run | |
files = Dir.glob("./#{FILE_NAME}*.csv") | |
file = files.first | |
raise 'file not found' if file.nil? | |
## mf ## | |
# 計算対象 日付 内容 金額(円) 保有金融機関 大項目 中項目 メモ 振替 ID | |
## freee ## | |
# 収支区分 管理番号 発生日 支払期日 取引先 勘定科目 税区分 金額 税計算区分 税額 備考 品目 部門 メモタグ(複数指定可、カンマ区切り) 支払日 支払口座 支払金額 | |
# 支出 2018/01/31 通信費 課対仕入8% 1838 内税 136 電話代 2018/01/31 JACCSカード 1838 | |
output_csv = CSV.open("freee_#{FILE_NAME}.csv", 'w') do |freee_csv| | |
# import headers | |
freee_csv << [ | |
'収支区分', | |
'管理番号', | |
'発生日', | |
'決済期日', | |
'取引先', | |
'勘定科目', | |
'税区分', | |
'金額', | |
'税計算区分', | |
'税額', | |
'備考', | |
'品目', | |
'部門', | |
'メモタグ(複数指定可、カンマ区切り)', | |
'セグメント1', | |
'セグメント2', | |
'セグメント3', | |
'決済日', | |
'決済口座', | |
'決済金額', | |
] | |
files.each do |file| | |
CSV.foreach(file, headers: true, encoding: 'Shift_JIS:UTF-8') do |mf_row| | |
計算対象 = mf_row[0] | |
日付 = mf_row[1] | |
内容 = mf_row[2] | |
金額(円) = mf_row[3] | |
保有金融機関 = mf_row[4] | |
大項目 = mf_row[5] | |
中項目 = mf_row[6] | |
メモ = mf_row[7] | |
振替 = mf_row[8] | |
_ID = mf_row[9] | |
金額 = (金額(円).to_i).abs | |
税額 = 金額 - (金額 / 1.08).floor.to_i | |
if 金額 == 0 | |
next | |
end | |
if 大項目 == '収入' || 振替 == '1' | |
next | |
elsif 大項目 == '交通費' | |
勘定科目 = '旅費交通費' | |
if 中項目 == '電車' | |
品目 = '電車代' | |
else | |
品目 = '' | |
end | |
elsif 大項目 == '未分類' | |
if 金額 < 5000 | |
勘定科目 = '会議費' | |
品目 = '' | |
else | |
勘定科目 = '交際費' | |
品目 = '飲食代' | |
end | |
else | |
require 'pry'; binding.pry | |
puts 'おかしい' | |
end | |
freee = [] | |
freee[0] = '支出' # 収支区分 | |
freee[1] = nil # 管理番号 | |
freee[2] = 日付 # 発生日 | |
freee[3] = nil # 決済期日 | |
freee[4] = nil # 取引先 | |
freee[5] = 勘定科目 # 勘定科目 | |
freee[6] = '課対仕入8%' # 税区分 | |
freee[7] = 金額 # 金額 | |
freee[8] = '内税' # 税計算区分 | |
freee[9] = 税額 # 税額 | |
freee[10] = 内容 # 備考 | |
freee[11] = 品目 # 品目 | |
freee[12] = nil # 部門 | |
freee[13] = nil # メモタグ(複数指定可、カンマ区切り) | |
freee[14] = nil # セグメント1 | |
freee[15] = nil # セグメント2 | |
freee[16] = nil # セグメント3 | |
freee[17] = 日付 # 決済日 | |
freee[18] = '事業主借' # 決済口座 | |
freee[19] = 金額 # 決済金額 | |
freee_csv << [ | |
freee[0], | |
freee[1], | |
freee[2], | |
freee[3], | |
freee[4], | |
freee[5], | |
freee[6], | |
freee[7], | |
freee[8], | |
freee[9], | |
freee[10], | |
freee[11], | |
freee[12], | |
freee[13], | |
freee[14], | |
freee[15], | |
freee[16], | |
freee[17], | |
freee[18], | |
freee[19] | |
] | |
end | |
end | |
end | |
end | |
end | |
Mf2Freee.new.run |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment