version 1.14, 2020/11/18 22:25:05 |
version 1.16, 2020/11/19 19:56:48 |
Line 22 use Getopt::Std qw(getopts); |
|
Line 22 use Getopt::Std qw(getopts); |
|
our ($opt_I); |
our ($opt_I); |
|
|
my %banks = ( |
my %banks = ( |
|
"bbva_usa" => \&import_bbva_usa, |
"capital_one_credit" => \&import_capital_one_credit, |
"capital_one_credit" => \&import_capital_one_credit, |
"chase_credit" => \&import_chase_credit, |
"chase_credit" => \&import_chase_credit, |
"optum_hsa" => \&import_optum_hsa, |
"optum_hsa" => \&import_optum_hsa, |
"sparkasse_camt" => \&import_sparkasse_camt, |
"sparkasse_camt" => \&import_sparkasse_camt, |
|
"wellsfargo" => \&import_wellsfargo, |
); |
); |
|
|
# === SUBROUTINES ===================================================== |
# === SUBROUTINES ===================================================== |
|
|
|
sub import_bbva_usa ($$$) { |
|
my ($account, $csv_account, $line) = @_; |
|
$line =~ |
|
m#(\d+)/(\d+)/(\d+),(.*?),\S+,(\(?\d+\.\d+\)?),# or |
|
die "parse error: $line"; |
|
my ($month, $day, $year, $description, $amount) = |
|
($1, $2, $3, $4, $5); |
|
$amount =~ s/\((\d+\.\d+)\)/-$1/; |
|
return "$year$month$day", |
|
get_accounts_by_amount_sign($amount, $account, $csv_account), |
|
$description; |
|
} |
|
|
sub import_chase_credit ($$$) { |
sub import_chase_credit ($$$) { |
my ($account, $csv_account, $line) = @_; |
my ($account, $csv_account, $line) = @_; |
my ($trans_date, $post_date, $description, $category, |
my ($trans_date, $post_date, $description, $category, |
Line 80 sub import_sparkasse_camt ($$$) { |
|
Line 95 sub import_sparkasse_camt ($$$) { |
|
return $fields[1], |
return $fields[1], |
get_accounts_by_amount_sign($fields[14], $account, $csv_account), |
get_accounts_by_amount_sign($fields[14], $account, $csv_account), |
(join ' ', $fields[11], $fields[4]); |
(join ' ', $fields[11], $fields[4]); |
|
} |
|
|
|
sub import_wellsfargo ($$$) { |
|
my ($account, $csv_account, $line) = @_; |
|
$line =~ |
|
m#^"(\d+)/(\d+)/(\d+)","(-?\d+\.\d+)","\*","","(.*?)"$# or |
|
die "parse error: $line" ; |
|
my ($month, $day, $year, $amount, $description) = |
|
($1, $2, $3, $4, $5); |
|
return "$year$month$day", |
|
get_accounts_by_amount_sign($amount, $account, $csv_account), |
|
$description; |
} |
} |
|
|
sub get_accounts_by_amount_sign ($$$) { |
sub get_accounts_by_amount_sign ($$$) { |