[BACK]Return to pta_import.pl CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / pta

Diff for /pta/pta_import.pl between version 1.15 and 1.17

version 1.15, 2020/11/18 23:44:46 version 1.17, 2020/11/19 23:55:50
Line 1 
Line 1 
 #!/usr/bin/perl  #!/usr/bin/perl
   
 # Copyright (c) 2020 Freda Bundchen  # Copyright (c) 2020 Freda Bundchen
   
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,
Line 31  my %banks = (
Line 32  my %banks = (
   
 # === 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,
             $type, $amount) = split /,/, $line;              $type, $amount) = split /,/, $line;
         my ($debit, $credit);          my ($debit, $credit);
         $post_date =~ s#(\d+)/(\d+)/(\d+)#$3$1$2#;          $post_date =~ s#(\d+)/(\d+)/(\d+)#$3$1$2#;
         ($amount, $debit, $credit) =          ($amount, $debit, $credit) =
             get_accounts_by_amount_sign($amount, $account,              get_accounts_by_amount_sign($amount, $account,
             $csv_account);              $csv_account);
Line 48  sub import_capital_one_credit ($$$) {
Line 62  sub import_capital_one_credit ($$$) {
         my ($trans_date, $post_date, $card_num,          my ($trans_date, $post_date, $card_num,
             $description, $category, $csv_debit,              $description, $category, $csv_debit,
             $csv_credit) = split /,/, $line;              $csv_credit) = split /,/, $line;
         $post_date =~ s/(\d+)-(\d+)-(\d+)/$1$2$3/;          $post_date =~ s/(\d+)-(\d+)-(\d+)/$1$2$3/;
         my ($amount, $debit, $credit) =          my ($amount, $debit, $credit) =
             get_accounts_by_csv_col($account, $csv_account,              get_accounts_by_csv_col($account, $csv_account,
             $csv_debit, $csv_credit);              $csv_debit, $csv_credit);
         return ($post_date, $amount, $debit, $credit, $description);          return ($post_date, $amount, $debit, $credit, $description);
Line 100  sub get_accounts_by_amount_sign ($$$) {
Line 114  sub get_accounts_by_amount_sign ($$$) {
         my ($debit, $credit);          my ($debit, $credit);
         if ($amount <= 0) {          if ($amount <= 0) {
                 $amount = substr $amount, 1;                  $amount = substr $amount, 1;
                 $credit = $csv_account;                  $credit = $csv_account;
                 $debit = $account;                  $debit = $account;
         } else {          } else {
                 $debit = $csv_account;                  $debit = $csv_account;
                 $credit = $account;                  $credit = $account;
         }          }
         return ($amount, $debit, $credit);          return ($amount, $debit, $credit);

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.17

CVSweb