this repo has no description
1#!/usr/bin/env ruby
2# Export a CSV from https://www.paypal.com/reports/dlog
3
4require "csv"
5require "time"
6
7def payee(r)
8 [r["Name"], r["Payment Source"], r["Type"]].find{|n| n && !n.empty? }
9 # case r["Type"]
10 # when /Payment$/
11 # r["Amount (total)"][0] == "-" ? r["To"] : r["From"]
12 # when "Charge"
13 # r["Amount (total)"][0] == "-" ? r["From"] : r["To"]
14 # when "Standard Transfer"
15 # r["Destination"]
16 # else
17 # end
18end
19
20def date(r)
21 Date.strptime(r["Date"], "%m/%d/%Y").iso8601
22end
23
24infile = ARGV.first || "Download.CSV"
25outfile = File.basename(infile, File.extname(infile)) + "_ynab4.csv"
26
27lines = File.read(infile, encoding: "bom|utf-8").lines
28
29CSV.open(outfile, "wb") do |out|
30 out << %w[Date Payee Memo Amount]
31
32 CSV.parse(lines.join, headers: true) do |r|
33 out << [ date(r), payee(r), r["Item Title"], r["Net"] ]
34 out << [ date(r), payee(r), r["Item Title"], r["Fee"] ] if r["Fee"]&.to_i > 0
35 end
36end