Adapted to the changed format of the bank CSV files.
authorArjen Baart <arjen@andromeda.nl>
Wed, 23 Oct 2019 03:51:01 +0000 (05:51 +0200)
committerArjen Baart <arjen@andromeda.nl>
Wed, 23 Oct 2019 03:51:01 +0000 (05:51 +0200)
bank.cpp

index 7e672b9..793d0b3 100644 (file)
--- a/bank.cpp
+++ b/bank.cpp
@@ -69,7 +69,7 @@ public:
 
 bool BankTemplate::matches(String deb_cred, String name, String descr)
 {
-   std::cout << name << " == " << _nm << "\n" << descr << " == " << _dm << "\n";
+   //std::cout << name << " == " << _nm << "\n" << descr << " == " << _dm << "\n";
    return (deb_cred == "C") == Credit && name == name_match && descr == description_match;
 }
 
@@ -103,7 +103,8 @@ String BankTemplate::substitute_template(String date, String name, String amount
             break;
 
          case 'D':
-            text(sub_start, sub_len) = date(6,2) + String("-") + date(4,2) + String("-") + date(0,4);
+            //text(sub_start, sub_len) = date;
+            text(sub_start, sub_len) = date(8,2) + String("-") + date(5,2) + String("-") + date(0,4);
             break;
 
          default:
@@ -131,13 +132,13 @@ std::vector<String> parse_csv(String line, char delim);
 
 // Fields in the bank record.
 
-const int DEBIT_CREDIT = 3;
-const int AMOUNT       = 4;
-const int NAME         = 6;
-const int BOOKING_DATE = 7;
-const int DESCRIP1     = 10;
-const int DESCRIP2     = 11;
-const int DESCRIP3     = 12;
+const int DEBIT_CREDIT = 2;
+const int AMOUNT       = 6;
+const int NAME         = 9;
+const int BOOKING_DATE = 4;
+const int DESCRIP1     = 19;
+const int DESCRIP2     = 20;
+const int DESCRIP3     = 21;
 const int DESCRIP4     = 13;
 const int DESCRIP5     = 14;
 const int DESCRIP6     = 15;
@@ -173,7 +174,7 @@ int main(int argc, char *argv[])
          break;
 
       case 'V':
-         std::cout << "bank version 1.1\n";
+         std::cout << "bank version 1.3\n";
          exit(0);
          break;
 
@@ -246,8 +247,17 @@ void read_mutations(const char *filename, std::vector<BankTemplate> templates)
       line += ",\"\"";
       bank_record = parse_csv(line, ',');
 
+      // A + amount is Credit, a - amount is Debit
+
+      bank_record[DEBIT_CREDIT] = "C";
+      if (bank_record[AMOUNT][0] == '-')
+      {
+         bank_record[DEBIT_CREDIT] = "D";
+      }
+      bank_record[AMOUNT] <<= 1;
+
       description = bank_record[DESCRIP1];
-      for (i = DESCRIP2; i <= DESCRIP6; i++)
+      for (i = DESCRIP2; i <= DESCRIP3; i++)
       {
          description += " " + bank_record[i];
       }