MFクラウド給与からSmartHRの給与明細にインポートするためのCSVを変換するスクリプト

  • 9
    Like
  • 0
    Comment

MF給与から給与明細CSVをダウンロードする

「帳票一覧」→「支給控除一覧表」→SmartHRにインポートしたい支給日を選ぶ→「表示項目設定」で「合計が0の項目」のチェックを外す→「CSV」ボタンを押してダウンロード。payment_deduction_report.csvという名前でダウンロードされる。

SmartHR向けに変換する

convert.rb
require 'csv'

NOKOSU = %w(
  従業員コード
  課税支給合計
  非課税支給合計
  支給合計
  控除合計
  差引支給合計
)

csv = CSV.table('payment_deduction_report.csv', encoding: 'Shift_JIS:UTF-8', header_converters: nil)
csv.delete(-1) # 集計行を削除
csv.by_col!.delete_if do |c, v|
  !(NOKOSU.include?(c) || c.end_with?('(支給)') || c.end_with?('(控除)'))
end
puts csv.headers.map {|h| h.gsub /\((支給|控除)\)$/, '' }.to_csv
puts csv.to_s write_headers: false

ruby convert.rb > smarthr.csvを実行してファイルを作り、SmartHRにアップロードする。