=================================================================== RCS file: /cvs/pta/pta_import.pl,v retrieving revision 1.14 retrieving revision 1.16 diff -u -p -r1.14 -r1.16 --- pta/pta_import.pl 2020/11/18 22:25:05 1.14 +++ pta/pta_import.pl 2020/11/19 19:56:48 1.16 @@ -22,14 +22,29 @@ use Getopt::Std qw(getopts); our ($opt_I); my %banks = ( + "bbva_usa" => \&import_bbva_usa, "capital_one_credit" => \&import_capital_one_credit, "chase_credit" => \&import_chase_credit, "optum_hsa" => \&import_optum_hsa, "sparkasse_camt" => \&import_sparkasse_camt, + "wellsfargo" => \&import_wellsfargo, ); # === 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 ($$$) { my ($account, $csv_account, $line) = @_; my ($trans_date, $post_date, $description, $category, @@ -80,6 +95,18 @@ sub import_sparkasse_camt ($$$) { return $fields[1], get_accounts_by_amount_sign($fields[14], $account, $csv_account), (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 ($$$) {