reckon 0.6.0 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +50 -0
- data/.gitignore +3 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +75 -7
- data/Gemfile.lock +1 -1
- data/README.md +85 -24
- data/Rakefile +17 -1
- data/bin/build-new-version.sh +26 -0
- data/bin/reckon +9 -1
- data/lib/reckon.rb +1 -0
- data/lib/reckon/app.rb +18 -141
- data/lib/reckon/cosine_similarity.rb +67 -62
- data/lib/reckon/csv_parser.rb +2 -7
- data/lib/reckon/date_column.rb +10 -0
- data/lib/reckon/money.rb +59 -52
- data/lib/reckon/options.rb +153 -0
- data/lib/reckon/version.rb +1 -1
- data/spec/cosine_training_and_test.rb +52 -0
- data/spec/integration/another_bank_example/input.csv +9 -0
- data/spec/integration/another_bank_example/output.ledger +36 -0
- data/spec/integration/another_bank_example/test_args +1 -0
- data/spec/integration/ask_for_account/cli_input.exp +33 -0
- data/spec/integration/ask_for_account/expected_output +11 -0
- data/spec/integration/ask_for_account/input.csv +9 -0
- data/spec/integration/ask_for_account/test_args +1 -0
- data/spec/integration/austrian_example/input.csv +13 -0
- data/spec/integration/austrian_example/output.ledger +52 -0
- data/spec/integration/austrian_example/test_args +2 -0
- data/spec/integration/bom_utf8_file/input.csv +3 -0
- data/spec/integration/bom_utf8_file/output.ledger +4 -0
- data/spec/integration/bom_utf8_file/test_args +3 -0
- data/spec/integration/broker_canada_example/input.csv +12 -0
- data/spec/integration/broker_canada_example/output.ledger +48 -0
- data/spec/integration/broker_canada_example/test_args +1 -0
- data/spec/integration/chase/account_tokens_and_regex/output.ledger +36 -0
- data/spec/integration/chase/account_tokens_and_regex/test_args +2 -0
- data/spec/integration/chase/account_tokens_and_regex/tokens.yml +16 -0
- data/spec/integration/chase/default_account_names/output.ledger +36 -0
- data/spec/integration/chase/default_account_names/test_args +3 -0
- data/spec/integration/chase/input.csv +9 -0
- data/spec/integration/chase/learn_from_existing/learn.ledger +7 -0
- data/spec/integration/chase/learn_from_existing/output.ledger +36 -0
- data/spec/integration/chase/learn_from_existing/test_args +1 -0
- data/spec/integration/chase/simple/output.ledger +36 -0
- data/spec/integration/chase/simple/test_args +1 -0
- data/spec/integration/danish_kroner_nordea_example/input.csv +6 -0
- data/spec/integration/danish_kroner_nordea_example/output.ledger +24 -0
- data/spec/integration/danish_kroner_nordea_example/test_args +1 -0
- data/spec/integration/english_date_example/input.csv +3 -0
- data/spec/integration/english_date_example/output.ledger +12 -0
- data/spec/integration/english_date_example/test_args +1 -0
- data/spec/integration/extratofake/input.csv +24 -0
- data/spec/integration/extratofake/output.ledger +92 -0
- data/spec/integration/extratofake/test_args +1 -0
- data/spec/integration/french_example/input.csv +9 -0
- data/spec/integration/french_example/output.ledger +36 -0
- data/spec/integration/french_example/test_args +2 -0
- data/spec/integration/german_date_example/input.csv +3 -0
- data/spec/integration/german_date_example/output.ledger +12 -0
- data/spec/integration/german_date_example/test_args +1 -0
- data/spec/integration/harder_date_example/input.csv +5 -0
- data/spec/integration/harder_date_example/output.ledger +20 -0
- data/spec/integration/harder_date_example/test_args +1 -0
- data/spec/integration/ing/input.csv +3 -0
- data/spec/integration/ing/output.ledger +12 -0
- data/spec/integration/ing/test_args +1 -0
- data/spec/integration/intuit_mint_example/input.csv +7 -0
- data/spec/integration/intuit_mint_example/output.ledger +28 -0
- data/spec/integration/intuit_mint_example/test_args +1 -0
- data/spec/integration/invalid_header_example/input.csv +6 -0
- data/spec/integration/invalid_header_example/output.ledger +8 -0
- data/spec/integration/invalid_header_example/test_args +1 -0
- data/spec/integration/inversed_credit_card/input.csv +16 -0
- data/spec/integration/inversed_credit_card/output.ledger +64 -0
- data/spec/integration/inversed_credit_card/test_args +1 -0
- data/spec/integration/nationwide/input.csv +4 -0
- data/spec/integration/nationwide/output.ledger +16 -0
- data/spec/integration/nationwide/test_args +1 -0
- data/spec/integration/regression/issue_51_account_tokens/input.csv +8 -0
- data/spec/integration/regression/issue_51_account_tokens/output.ledger +32 -0
- data/spec/integration/regression/issue_51_account_tokens/test_args +4 -0
- data/spec/integration/regression/issue_51_account_tokens/tokens.yml +9 -0
- data/spec/integration/regression/issue_64_date_column/input.csv +3 -0
- data/spec/integration/regression/issue_64_date_column/output.ledger +8 -0
- data/spec/integration/regression/issue_64_date_column/test_args +1 -0
- data/spec/integration/regression/issue_73_account_token_matching/input.csv +2 -0
- data/spec/integration/regression/issue_73_account_token_matching/output.ledger +4 -0
- data/spec/integration/regression/issue_73_account_token_matching/test_args +6 -0
- data/spec/integration/regression/issue_73_account_token_matching/tokens.yml +8 -0
- data/spec/integration/regression/issue_85_date_example/input.csv +2 -0
- data/spec/integration/regression/issue_85_date_example/output.ledger +8 -0
- data/spec/integration/regression/issue_85_date_example/test_args +1 -0
- data/spec/integration/spanish_date_example/input.csv +3 -0
- data/spec/integration/spanish_date_example/output.ledger +12 -0
- data/spec/integration/spanish_date_example/test_args +1 -0
- data/spec/integration/suntrust/input.csv +7 -0
- data/spec/integration/suntrust/output.ledger +28 -0
- data/spec/integration/suntrust/test_args +1 -0
- data/spec/integration/test.sh +123 -0
- data/spec/integration/test_money_column/input.csv +3 -0
- data/spec/integration/test_money_column/output.ledger +8 -0
- data/spec/integration/test_money_column/test_args +1 -0
- data/spec/integration/two_money_columns/input.csv +5 -0
- data/spec/integration/two_money_columns/output.ledger +20 -0
- data/spec/integration/two_money_columns/test_args +1 -0
- data/spec/integration/yyyymmdd_date_example/input.csv +1 -0
- data/spec/integration/yyyymmdd_date_example/output.ledger +4 -0
- data/spec/integration/yyyymmdd_date_example/test_args +1 -0
- data/spec/reckon/app_spec.rb +24 -6
- data/spec/reckon/csv_parser_spec.rb +3 -3
- data/spec/reckon/money_column_spec.rb +24 -24
- data/spec/reckon/money_spec.rb +15 -34
- data/spec/reckon/options_spec.rb +17 -0
- data/spec/spec_helper.rb +6 -1
- metadata +102 -7
- data/.travis.yml +0 -13
@@ -0,0 +1,153 @@
|
|
1
|
+
module Reckon
|
2
|
+
class Options
|
3
|
+
@@cli = HighLine.new
|
4
|
+
|
5
|
+
def self.parse(args = ARGV, stdin = $stdin)
|
6
|
+
options = { output_file: $stdout }
|
7
|
+
OptionParser.new do |opts|
|
8
|
+
opts.banner = "Usage: Reckon.rb [options]"
|
9
|
+
opts.separator ""
|
10
|
+
|
11
|
+
opts.on("-f", "--file FILE", "The CSV file to parse") do |file|
|
12
|
+
options[:file] = file
|
13
|
+
end
|
14
|
+
|
15
|
+
opts.on("-a", "--account NAME", "The Ledger Account this file is for") do |a|
|
16
|
+
options[:bank_account] = a
|
17
|
+
end
|
18
|
+
|
19
|
+
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
|
20
|
+
options[:verbose] = v
|
21
|
+
end
|
22
|
+
|
23
|
+
opts.on("-i", "--inverse", "Use the negative of each amount") do |v|
|
24
|
+
options[:inverse] = v
|
25
|
+
end
|
26
|
+
|
27
|
+
opts.on("-p", "--print-table", "Print out the parsed CSV in table form") do |p|
|
28
|
+
options[:print_table] = p
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on("-o", "--output-file FILE", "The ledger file to append to") do |o|
|
32
|
+
options[:output_file] = File.open(o, 'a')
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.on("-l", "--learn-from FILE", "An existing ledger file to learn accounts from") do |l|
|
36
|
+
options[:existing_ledger_file] = l
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.on("", "--ignore-columns 1,2,5", "Columns to ignore, starts from 1") do |ignore|
|
40
|
+
options[:ignore_columns] = ignore.split(",").map(&:to_i)
|
41
|
+
end
|
42
|
+
|
43
|
+
opts.on("", "--money-column 2", Integer, "Column number of the money column, starts from 1") do |col|
|
44
|
+
options[:money_column] = col
|
45
|
+
end
|
46
|
+
|
47
|
+
opts.on("", "--raw-money", "Don't format money column (for stocks)") do |n|
|
48
|
+
options[:raw] = n
|
49
|
+
end
|
50
|
+
|
51
|
+
opts.on("", "--date-column 3", Integer, "Column number of the date column, starts from 1") do |col|
|
52
|
+
options[:date_column] = col
|
53
|
+
end
|
54
|
+
|
55
|
+
opts.on("", "--contains-header [N]", Integer, "Skip N header rows - default 1") do |hdr|
|
56
|
+
options[:contains_header] = 1
|
57
|
+
options[:contains_header] = hdr.to_i
|
58
|
+
end
|
59
|
+
|
60
|
+
opts.on("", "--csv-separator ','", "CSV separator (default ',')") do |sep|
|
61
|
+
options[:csv_separator] = sep
|
62
|
+
end
|
63
|
+
|
64
|
+
opts.on("", "--comma-separates-cents", "Use comma to separate cents ($100,50 vs. $100.50)") do |c|
|
65
|
+
options[:comma_separates_cents] = c
|
66
|
+
end
|
67
|
+
|
68
|
+
opts.on("", "--encoding 'UTF-8'", "Specify an encoding for the CSV file") do |e|
|
69
|
+
options[:encoding] = e
|
70
|
+
end
|
71
|
+
|
72
|
+
opts.on("-c", "--currency '$'", "Currency symbol to use - default $ (ex £, EUR)") do |e|
|
73
|
+
options[:currency] = e
|
74
|
+
end
|
75
|
+
|
76
|
+
opts.on("", "--date-format '%d/%m/%Y'", "Force the date format (see Ruby DateTime strftime)") do |d|
|
77
|
+
options[:date_format] = d
|
78
|
+
end
|
79
|
+
|
80
|
+
opts.on("-u", "--unattended", "Don't ask questions and guess all the accounts automatically. Use with --learn-from or --account-tokens options.") do |n|
|
81
|
+
options[:unattended] = n
|
82
|
+
end
|
83
|
+
|
84
|
+
opts.on("-t", "--account-tokens FILE", "YAML file with manually-assigned tokens for each account (see README)") do |a|
|
85
|
+
options[:account_tokens_file] = a
|
86
|
+
end
|
87
|
+
|
88
|
+
opts.on("", "--table-output-file FILE") do |n|
|
89
|
+
options[:table_output_file] = n
|
90
|
+
end
|
91
|
+
|
92
|
+
options[:default_into_account] = 'Expenses:Unknown'
|
93
|
+
opts.on("", "--default-into-account NAME", "Default into account") do |a|
|
94
|
+
options[:default_into_account] = a
|
95
|
+
end
|
96
|
+
|
97
|
+
options[:default_outof_account] = 'Income:Unknown'
|
98
|
+
opts.on("", "--default-outof-account NAME", "Default 'out of' account") do |a|
|
99
|
+
options[:default_outof_account] = a
|
100
|
+
end
|
101
|
+
|
102
|
+
opts.on("", "--fail-on-unknown-account", "Fail on unmatched transactions.") do |n|
|
103
|
+
options[:fail_on_unknown_account] = n
|
104
|
+
end
|
105
|
+
|
106
|
+
opts.on("", "--suffixed", "Append currency symbol as a suffix.") do |e|
|
107
|
+
options[:suffixed] = e
|
108
|
+
end
|
109
|
+
|
110
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
111
|
+
puts opts
|
112
|
+
exit
|
113
|
+
end
|
114
|
+
|
115
|
+
opts.on_tail("--version", "Show version") do
|
116
|
+
puts VERSION
|
117
|
+
exit
|
118
|
+
end
|
119
|
+
|
120
|
+
opts.parse!(args)
|
121
|
+
end
|
122
|
+
|
123
|
+
if options[:file] == '-'
|
124
|
+
unless options[:unattended]
|
125
|
+
raise "--unattended is required to use STDIN as CSV source."
|
126
|
+
end
|
127
|
+
|
128
|
+
options[:string] = stdin.read
|
129
|
+
end
|
130
|
+
|
131
|
+
unless options[:file]
|
132
|
+
options[:file] = @@cli.ask("What CSV file should I parse? ")
|
133
|
+
unless options[:file].empty?
|
134
|
+
puts "\nYou must provide a CSV file to parse.\n"
|
135
|
+
puts parser
|
136
|
+
exit
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
unless options[:bank_account]
|
141
|
+
raise "Must specify --account in unattended mode" if options[:unattended]
|
142
|
+
|
143
|
+
options[:bank_account] = @@cli.ask("What is this account named in Ledger?\n") do |q|
|
144
|
+
q.readline = true
|
145
|
+
q.validate = /^.{2,}$/
|
146
|
+
q.default = "Assets:Bank:Checking"
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
return options
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
data/lib/reckon/version.rb
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'pp'
|
4
|
+
|
5
|
+
require 'reckon'
|
6
|
+
|
7
|
+
ledger_file = ARGV[0]
|
8
|
+
account = ARGV[1]
|
9
|
+
seed = ARGV[2] ? ARGV[2].to_i : Random.new_seed
|
10
|
+
|
11
|
+
ledger = Reckon::LedgerParser.new(File.read(ledger_file))
|
12
|
+
matcher = Reckon::CosineSimilarity.new({})
|
13
|
+
|
14
|
+
train = []
|
15
|
+
test = []
|
16
|
+
|
17
|
+
def has_account(account, entry)
|
18
|
+
entry[:accounts].map { |a| a[:name] }.include?(account)
|
19
|
+
end
|
20
|
+
|
21
|
+
entries = ledger.entries.select { |e| has_account(account, e) }
|
22
|
+
|
23
|
+
r = Random.new(seed)
|
24
|
+
entries.length.times do |i|
|
25
|
+
r.rand < 0.9 ? train << i : test << i
|
26
|
+
end
|
27
|
+
|
28
|
+
train.each do |i|
|
29
|
+
entry = entries[i]
|
30
|
+
entry[:accounts].each do |a|
|
31
|
+
matcher.add_document(
|
32
|
+
a[:name],
|
33
|
+
[entry[:desc], a[:amount]].join(" ")
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
result = [nil] * test.length
|
39
|
+
test.each do |i|
|
40
|
+
entry = entries[i]
|
41
|
+
matches = matcher.find_similar(
|
42
|
+
entry[:desc] + " " + entry[:accounts][0][:amount].to_s
|
43
|
+
)
|
44
|
+
|
45
|
+
if !matches[0] || !has_account(matches[0][:account], entry)
|
46
|
+
result[i] = [entry, matches]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# pp result.compact
|
51
|
+
puts "using #{seed} as random seed"
|
52
|
+
puts "true: #{result.count(nil)} false: #{result.count { |v| !v.nil? }}"
|
@@ -0,0 +1,9 @@
|
|
1
|
+
DEBIT,2011/12/24,"HOST 037196321563 MO 12/22SLICEHOST",($85.00)
|
2
|
+
CHECK,2010/12/24,"CHECK 2656",($20.00)
|
3
|
+
DEBIT,2009/12/24,"GITHUB 041287430274 CA 12/22GITHUB 04",($7.00)
|
4
|
+
CREDIT,2008/12/24,"Some Company vendorpymt PPD ID: 59728JSL20",$3520.00
|
5
|
+
CREDIT,2007/12/24,"Blarg BLARG REVENUE PPD ID: 00jah78563",$1558.52
|
6
|
+
DEBIT,2006/12/24,"WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL",$.23
|
7
|
+
DEBIT,2005/12/24,"WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL",($0.96)
|
8
|
+
CREDIT,2004/12/24,"PAYPAL TRANSFER PPD ID: PAYPALSDSL",($116.22)
|
9
|
+
CREDIT,2003/12/24,"Some Company vendorpymt PPD ID: 5KL3832735",$2105.00
|
@@ -0,0 +1,36 @@
|
|
1
|
+
2003-12-24 CREDIT; Some Company vendorpymt PPD ID: 5KL3832735
|
2
|
+
Assets:Bank:Checking $2,105.00
|
3
|
+
Income:Unknown
|
4
|
+
|
5
|
+
2004-12-24 CREDIT; PAYPAL TRANSFER PPD ID: PAYPALSDSL
|
6
|
+
Income:Unknown
|
7
|
+
Assets:Bank:Checking -$116.22
|
8
|
+
|
9
|
+
2005-12-24 DEBIT; WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL
|
10
|
+
Expenses:Unknown
|
11
|
+
Assets:Bank:Checking -$0.96
|
12
|
+
|
13
|
+
2006-12-24 DEBIT; WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL
|
14
|
+
Assets:Bank:Checking $0.23
|
15
|
+
Expenses:Unknown
|
16
|
+
|
17
|
+
2007-12-24 CREDIT; Blarg BLARG REVENUE PPD ID: 00jah78563
|
18
|
+
Assets:Bank:Checking $1,558.52
|
19
|
+
Income:Unknown
|
20
|
+
|
21
|
+
2008-12-24 CREDIT; Some Company vendorpymt PPD ID: 59728JSL20
|
22
|
+
Assets:Bank:Checking $3,520.00
|
23
|
+
Income:Unknown
|
24
|
+
|
25
|
+
2009-12-24 DEBIT; GITHUB 041287430274 CA 12/22GITHUB 04
|
26
|
+
Expenses:Unknown
|
27
|
+
Assets:Bank:Checking -$7.00
|
28
|
+
|
29
|
+
2010-12-24 CHECK; CHECK 2656
|
30
|
+
Expenses:Unknown
|
31
|
+
Assets:Bank:Checking -$20.00
|
32
|
+
|
33
|
+
2011-12-24 DEBIT; HOST 037196321563 MO 12/22SLICEHOST
|
34
|
+
Expenses:Unknown
|
35
|
+
Assets:Bank:Checking -$85.00
|
36
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
-f input.csv --unattended --account Assets:Bank:Checking
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/expect -f
|
2
|
+
|
3
|
+
|
4
|
+
set timeout 7
|
5
|
+
match_max 100000
|
6
|
+
expect "What is this account named in Ledger |Assets:Bank:Checking|?\r
|
7
|
+
\[1G▽\[6n"
|
8
|
+
send -- "\[45;2R"
|
9
|
+
expect -exact "\[1G\[K\[6n"
|
10
|
+
send -- "\[45;1R"
|
11
|
+
expect "\[1G\[K\[1G\[1G"
|
12
|
+
send -- "T"
|
13
|
+
expect "\[1GT\[K\[1G\[2G"
|
14
|
+
send -- "e"
|
15
|
+
expect "\[1GTe\[K\[1G\[3G"
|
16
|
+
send -- "s"
|
17
|
+
expect "\[1GTes\[K\[1G\[4G"
|
18
|
+
send -- "t"
|
19
|
+
expect "\[1GTest\[K\[1G\[5G"
|
20
|
+
send -- ":"
|
21
|
+
expect "\[1GTest:\[K\[1G\[6G"
|
22
|
+
send -- ":"
|
23
|
+
expect "\[1GTest::\[K\[1G\[7G"
|
24
|
+
send -- "B"
|
25
|
+
expect "\[1GTest::B\[K\[1G\[8G"
|
26
|
+
send -- "a"
|
27
|
+
expect "\[1GTest::Ba\[K\[1G\[9G"
|
28
|
+
send -- "n"
|
29
|
+
expect "\[1GTest::Ban\[K\[1G\[10G"
|
30
|
+
send -- "k"
|
31
|
+
expect "\[1GTest::Bank\[K\[1G\[11G"
|
32
|
+
send -- "\r"
|
33
|
+
expect eof
|
@@ -0,0 +1,11 @@
|
|
1
|
+
|
2
|
+
Date | Amount | Description | Note |
|
3
|
+
2003-12-24 | $2,105.00 | CREDIT; Some Company vendorpymt PPD ID: 5KL3832735 | |
|
4
|
+
2004-12-24 | -$116.22 | CREDIT; PAYPAL TRANSFER PPD ID: PAYPALSDSL | |
|
5
|
+
2005-12-24 | -$0.96 | DEBIT; WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL | |
|
6
|
+
2006-12-24 | $0.23 | DEBIT; WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL | |
|
7
|
+
2007-12-24 | $1,558.52 | CREDIT; Blarg BLARG REVENUE PPD ID: 00jah78563 | |
|
8
|
+
2008-12-24 | $3,520.00 | CREDIT; Some Company vendorpymt PPD ID: 59728JSL20 | |
|
9
|
+
2009-12-24 | -$7.00 | DEBIT; GITHUB 041287430274 CA 12/22GITHUB 04 | |
|
10
|
+
2010-12-24 | -$20.00 | CHECK; CHECK 2656 | |
|
11
|
+
2011-12-24 | -$85.00 | DEBIT; HOST 037196321563 MO 12/22SLICEHOST | |
|
@@ -0,0 +1,9 @@
|
|
1
|
+
DEBIT,2011/12/24,"HOST 037196321563 MO 12/22SLICEHOST",($85.00)
|
2
|
+
CHECK,2010/12/24,"CHECK 2656",($20.00)
|
3
|
+
DEBIT,2009/12/24,"GITHUB 041287430274 CA 12/22GITHUB 04",($7.00)
|
4
|
+
CREDIT,2008/12/24,"Some Company vendorpymt PPD ID: 59728JSL20",$3520.00
|
5
|
+
CREDIT,2007/12/24,"Blarg BLARG REVENUE PPD ID: 00jah78563",$1558.52
|
6
|
+
DEBIT,2006/12/24,"WEBSITE-BALANCE-17DEC09 12 12/17WEBSITE-BAL",$.23
|
7
|
+
DEBIT,2005/12/24,"WEBSITE-BALANCE-10DEC09 12 12/10WEBSITE-BAL",($0.96)
|
8
|
+
CREDIT,2004/12/24,"PAYPAL TRANSFER PPD ID: PAYPALSDSL",($116.22)
|
9
|
+
CREDIT,2003/12/24,"Some Company vendorpymt PPD ID: 5KL3832735",$2105.00
|
@@ -0,0 +1 @@
|
|
1
|
+
-f input.csv -p
|
@@ -0,0 +1,13 @@
|
|
1
|
+
00075757575;Abbuchung Onlinebanking 654321098765 BG/000002462 BICBICBI AT654000000065432109 Thematische Universität Stadt ;22.01.2014;22.01.2014;-18,00;EUR
|
2
|
+
00075757575;333222111333222 222111333222 OG/000002461 BICBICBIXXX AT333000000003332221 Telekom Land AG RECHNUNG 11/13 333222111333222 ;17.01.2014;17.01.2014;-9,05;EUR
|
3
|
+
00075757575;Helm BG/000002460 10000 00007878787 Muster Dr.Beispiel-Vorname ;15.01.2014;15.01.2014;+120,00;EUR
|
4
|
+
00075757575;Gutschrift Dauerauftrag BG/000002459 BICBICBI AT787000000007878787 Muster Dr.Beispiel-Vorname ;15.01.2014;15.01.2014;+22,00;EUR
|
5
|
+
00075757575;Bezahlung Bankomat MC/000002458 0001 K1 06.01.UM 18.11 Bahn 8020 FSA\\Ort\10 10 2002200EUR ;07.01.2014;06.01.2014;-37,60;EUR
|
6
|
+
00075757575;Bezahlung Bankomat 10.33 MC/000002457 0001 K1 02.01.UM 10.33 Abcdef Electronic\\Wie n\1150 0400444 ;03.01.2014;02.01.2014;-46,42;EUR
|
7
|
+
00075757575;050055556666000 OG/000002456 BKAUATWWXXX AT555500000555566665 JKL Telekommm Stadt GmbH JKL Rechnung 555666555 ;03.01.2014;03.01.2014;-17,15;EUR
|
8
|
+
00075757575;Abbuchung Einzugsermächtigung OG/000002455 INTERNATIONALER AUTOMOBIL-, 10000 00006655665 ;02.01.2014;02.01.2014;-17,40;EUR
|
9
|
+
00075757575;POLIZZE 1/01/0101010 Fondsge010101010101nsverOG/000002454 BICBICBIXXX AT101000000101010101 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101010 Fondsgebundene Lebensversicherung - fällig 01.01. 2014 Folg eprämie ;02.01.2014;02.01.2014;-31,71;EUR
|
10
|
+
00075757575;POLIZZE 1/01/0101012 Rentenv010101010102- fälOG/000002453 BICBICBIXXX AT101000000101010102 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101012 Rentenversicherung - fällig 01.01.20 14 Folgeprämi e ;02.01.2014;02.01.2014;-32,45;EUR
|
11
|
+
00075757575;Anlass VD/000002452 BKAUATWWBRN AT808800080880880880 Dipl.Ing.Dr. Berta Beispiel ;02.01.2014;02.01.2014;+61,90;EUR
|
12
|
+
00075757575;Abbuchung Onlinebanking 000009999999 BG/000002451 BICBICBI AT099000000009999999 Asdfjklöasdf Asdfjklöasdfjklöasdf ;02.01.2014;02.01.2014;-104,69;EUR
|
13
|
+
00075757575;Abbuchung Onlinebanking FE/000002450 AT556600055665566556 CD Stadt Efghij Club Dipl.Ing. Max Muster M005566 - Mitgliedsbeitrag 2014 ;02.01.2014;02.01.2014;-39,00;EUR
|
@@ -0,0 +1,52 @@
|
|
1
|
+
2014-01-02 00075757575; Anlass VD/000002452 BKAUATWWBRN AT808800080880880880 Dipl.Ing.Dr. Berta Beispiel; 02.01.2014; EUR
|
2
|
+
Assets:Bank:Checking $61.90
|
3
|
+
Income:Unknown
|
4
|
+
|
5
|
+
2014-01-02 00075757575; Abbuchung Einzugsermächtigung OG/000002455 INTERNATIONALER AUTOMOBIL-, 10000 00006655665; 02.01.2014; EUR
|
6
|
+
Income:Unknown
|
7
|
+
Assets:Bank:Checking -$17.40
|
8
|
+
|
9
|
+
2014-01-02 00075757575; POLIZZE 1/01/0101010 Fondsge010101010101nsverOG/000002454 BICBICBIXXX AT101000000101010101 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101010 Fondsgebundene Lebensversicherung - fällig 01.01. 2014 Folg eprämie; 02.01.2014; EUR
|
10
|
+
Income:Unknown
|
11
|
+
Assets:Bank:Checking -$31.71
|
12
|
+
|
13
|
+
2014-01-02 00075757575; POLIZZE 1/01/0101012 Rentenv010101010102- fälOG/000002453 BICBICBIXXX AT101000000101010102 VERSICHERUNG NAMEDERV AG POLIZZE 1/01/0101012 Rentenversicherung - fällig 01.01.20 14 Folgeprämi e; 02.01.2014; EUR
|
14
|
+
Income:Unknown
|
15
|
+
Assets:Bank:Checking -$32.45
|
16
|
+
|
17
|
+
2014-01-02 00075757575; Abbuchung Onlinebanking FE/000002450 AT556600055665566556 CD Stadt Efghij Club Dipl.Ing. Max Muster M005566 - Mitgliedsbeitrag 2014; 02.01.2014; EUR
|
18
|
+
Income:Unknown
|
19
|
+
Assets:Bank:Checking -$39.00
|
20
|
+
|
21
|
+
2014-01-02 00075757575; Abbuchung Onlinebanking 000009999999 BG/000002451 BICBICBI AT099000000009999999 Asdfjklöasdf Asdfjklöasdfjklöasdf; 02.01.2014; EUR
|
22
|
+
Income:Unknown
|
23
|
+
Assets:Bank:Checking -$104.69
|
24
|
+
|
25
|
+
2014-01-03 00075757575; 050055556666000 OG/000002456 BKAUATWWXXX AT555500000555566665 JKL Telekommm Stadt GmbH JKL Rechnung 555666555; 03.01.2014; EUR
|
26
|
+
Income:Unknown
|
27
|
+
Assets:Bank:Checking -$17.15
|
28
|
+
|
29
|
+
2014-01-03 00075757575; Bezahlung Bankomat 10.33 MC/000002457 0001 K1 02.01.UM 10.33 Abcdef Electronic\\Wie n\1150 0400444; 02.01.2014; EUR
|
30
|
+
Income:Unknown
|
31
|
+
Assets:Bank:Checking -$46.42
|
32
|
+
|
33
|
+
2014-01-07 00075757575; Bezahlung Bankomat MC/000002458 0001 K1 06.01.UM 18.11 Bahn 8020 FSA\\Ort\10 10 2002200EUR; 06.01.2014; EUR
|
34
|
+
Income:Unknown
|
35
|
+
Assets:Bank:Checking -$37.60
|
36
|
+
|
37
|
+
2014-01-15 00075757575; Helm BG/000002460 10000 00007878787 Muster Dr.Beispiel-Vorname; 15.01.2014; EUR
|
38
|
+
Assets:Bank:Checking $120.00
|
39
|
+
Income:Unknown
|
40
|
+
|
41
|
+
2014-01-15 00075757575; Gutschrift Dauerauftrag BG/000002459 BICBICBI AT787000000007878787 Muster Dr.Beispiel-Vorname; 15.01.2014; EUR
|
42
|
+
Assets:Bank:Checking $22.00
|
43
|
+
Income:Unknown
|
44
|
+
|
45
|
+
2014-01-17 00075757575; 333222111333222 222111333222 OG/000002461 BICBICBIXXX AT333000000003332221 Telekom Land AG RECHNUNG 11/13 333222111333222; 17.01.2014; EUR
|
46
|
+
Income:Unknown
|
47
|
+
Assets:Bank:Checking -$9.05
|
48
|
+
|
49
|
+
2014-01-22 00075757575; Abbuchung Onlinebanking 654321098765 BG/000002462 BICBICBI AT654000000065432109 Thematische Universität Stadt; 22.01.2014; EUR
|
50
|
+
Income:Unknown
|
51
|
+
Assets:Bank:Checking -$18.00
|
52
|
+
|
@@ -0,0 +1,3 @@
|
|
1
|
+
"Date","Time","TimeZone","Name","Type","Status","Currency","Gross","Fee","Net","From Email Address","To Email Address","Transaction ID","Shipping Address","Address Status","Item Title","Item ID","Shipping and Handling Amount","Insurance Amount","Sales Tax","Option 1 Name","Option 1 Value","Option 2 Name","Option 2 Value","Reference Txn ID","Invoice Number","Custom Number","Quantity","Receipt ID","Balance","Address Line 1","Address Line 2/District/Neighborhood","Town/City","State/Province/Region/County/Territory/Prefecture/Republic","Zip/Postal Code","Country","Contact Phone Number","Subject","Note","Country Code","Balance Impact"
|
2
|
+
"12/27/2019","19:33:49","PST","Humble Bundle, Inc.","Express Checkout Payment","Completed","USD","-7.49","0.00","-7.49","test@gmail.com","test@humblebundle.com","","","Non-Confirmed","Purchase ","","0.00","","0.00","","","","","","","","1","","705.37","","","","","","","","","","","Debit"
|
3
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
2014-02-10,2014-02-10,Interest,ISHARES S&P/TSX CAPPED REIT IN,XRE,179,,,12.55,CAD
|
2
|
+
2014-01-16,2014-01-16,Reinvestment,ISHARES GLOBAL AGRICULTURE IND,COW,3,,,-81.57,CAD
|
3
|
+
2014-01-16,2014-01-16,Contribution,CONTRIBUTION,,,,,600.00,CAD
|
4
|
+
2014-01-16,2014-01-16,Interest,ISHARES GLOBAL AGRICULTURE IND,COW,200,,,87.05,CAD
|
5
|
+
2014-01-14,2014-01-14,Reinvestment,BMO NASDAQ 100 EQTY HEDGED TO,ZQQ,2,,,-54.72,CAD
|
6
|
+
2014-01-07,2014-01-10,Sell,BMO NASDAQ 100 EQTY HEDGED TO,ZQQ,-300,27.44,CDN,8222.05,CAD
|
7
|
+
2014-01-07,2014-01-07,Interest,BMO S&P/TSX EQUAL WEIGHT BKS I,ZEB,250,,,14.00,CAD
|
8
|
+
2013-07-02,2013-07-02,Dividend,SELECT SECTOR SPDR FD SHS BEN,XLB,130,,,38.70,USD
|
9
|
+
2013-06-27,2013-06-27,Dividend,ICICI BK SPONSORED ADR,IBN,100,,,66.70,USD
|
10
|
+
2013-06-19,2013-06-24,Buy,ISHARES S&P/TSX CAPPED REIT IN,XRE,300,15.90,CDN,-4779.95,CAD
|
11
|
+
2013-06-17,2013-06-17,Contribution,CONTRIBUTION,,,,,600.00,CAD
|
12
|
+
2013-05-22,2013-05-22,Dividend,NATBK,NA,70,,,58.10,CAD
|
@@ -0,0 +1,48 @@
|
|
1
|
+
2013-05-22 2013-05-22; Dividend; NATBK; NA; 70; CAD
|
2
|
+
Assets:Bank:Checking $58.10
|
3
|
+
Income:Unknown
|
4
|
+
|
5
|
+
2013-06-17 2013-06-17; Contribution; CONTRIBUTION; CAD
|
6
|
+
Assets:Bank:Checking $600.00
|
7
|
+
Income:Unknown
|
8
|
+
|
9
|
+
2013-06-19 2013-06-24; Buy; ISHARES S&P/TSX CAPPED REIT IN; XRE; 300; 15.90; CDN; CAD
|
10
|
+
Income:Unknown
|
11
|
+
Assets:Bank:Checking -$4,779.95
|
12
|
+
|
13
|
+
2013-06-27 2013-06-27; Dividend; ICICI BK SPONSORED ADR; IBN; 100; USD
|
14
|
+
Assets:Bank:Checking $66.70
|
15
|
+
Income:Unknown
|
16
|
+
|
17
|
+
2013-07-02 2013-07-02; Dividend; SELECT SECTOR SPDR FD SHS BEN; XLB; 130; USD
|
18
|
+
Assets:Bank:Checking $38.70
|
19
|
+
Income:Unknown
|
20
|
+
|
21
|
+
2014-01-07 2014-01-10; Sell; BMO NASDAQ 100 EQTY HEDGED TO; ZQQ; -300; 27.44; CDN; CAD
|
22
|
+
Assets:Bank:Checking $8,222.05
|
23
|
+
Income:Unknown
|
24
|
+
|
25
|
+
2014-01-07 2014-01-07; Interest; BMO S&P/TSX EQUAL WEIGHT BKS I; ZEB; 250; CAD
|
26
|
+
Assets:Bank:Checking $14.00
|
27
|
+
Income:Unknown
|
28
|
+
|
29
|
+
2014-01-14 2014-01-14; Reinvestment; BMO NASDAQ 100 EQTY HEDGED TO; ZQQ; 2; CAD
|
30
|
+
Income:Unknown
|
31
|
+
Assets:Bank:Checking -$54.72
|
32
|
+
|
33
|
+
2014-01-16 2014-01-16; Contribution; CONTRIBUTION; CAD
|
34
|
+
Assets:Bank:Checking $600.00
|
35
|
+
Income:Unknown
|
36
|
+
|
37
|
+
2014-01-16 2014-01-16; Interest; ISHARES GLOBAL AGRICULTURE IND; COW; 200; CAD
|
38
|
+
Assets:Bank:Checking $87.05
|
39
|
+
Income:Unknown
|
40
|
+
|
41
|
+
2014-01-16 2014-01-16; Reinvestment; ISHARES GLOBAL AGRICULTURE IND; COW; 3; CAD
|
42
|
+
Income:Unknown
|
43
|
+
Assets:Bank:Checking -$81.57
|
44
|
+
|
45
|
+
2014-02-10 2014-02-10; Interest; ISHARES S&P/TSX CAPPED REIT IN; XRE; 179; CAD
|
46
|
+
Assets:Bank:Checking $12.55
|
47
|
+
Income:Unknown
|
48
|
+
|