]> Dogcows Code - chaz/homebank2ledger/blobdiff - lib/App/HomeBank2Ledger.pm
Release App-HomeBank2Ledger 0.010
[chaz/homebank2ledger] / lib / App / HomeBank2Ledger.pm
index cd3e0dbfd26d5b1e0dc0c8a1e6fec39f16794bfa..0aa1562a3833c52984e1fcf5d23d2c3b6075cd02 100644 (file)
@@ -291,14 +291,17 @@ sub convert_homebank_to_ledger {
         my $account = $homebank->find_account_by_key($transaction->{account});
         my $amount  = $transaction->{amount};
         my $status  = $STATUS_SYMBOLS{$transaction->{status} || ''} || '';
-        my $paymode = $transaction->{paymode} || ''; # internaltransfer
         my $memo    = $transaction->{wording} || '';
         my $payee   = $homebank->find_payee_by_key($transaction->{payee});
         my $tags    = _split_tags($transaction->{tags});
+        my $date    = $transaction->{date};
+        my $code    = $transaction->{paymode} =~ /^(?:check|epayment)$/ ? $transaction->{info}
+                                                                        : undef;
 
         my @postings;
 
         push @postings, {
+            date        => $date,
             account     => $account->{ledger_name},
             amount      => $amount,
             commodity   => $commodities{$account->{currency}},
@@ -308,7 +311,7 @@ sub convert_homebank_to_ledger {
             tags        => $tags,
         };
 
-        if ($paymode eq 'internaltransfer') {
+        if ($transaction->{dst_account}) {  # is an internal transfer
             my $paired_transaction = $homebank->find_transaction_transfer_pair($transaction);
 
             my $dst_account = $homebank->find_account_by_key($transaction->{dst_account});
@@ -325,9 +328,11 @@ sub convert_homebank_to_ledger {
             $seen{$transaction->{transfer_key}}++        if $transaction->{transfer_key};
             $seen{$paired_transaction->{transfer_key}}++ if $paired_transaction->{transfer_key};
 
+            my $paired_date  = $paired_transaction && $paired_transaction->{date};
             my $paired_payee = $homebank->find_payee_by_key($paired_transaction->{payee});
 
             push @postings, {
+                date        => $paired_date,
                 account     => $dst_account->{ledger_name},
                 amount      => $paired_transaction->{amount} || -$transaction->{amount},
                 commodity   => $commodities{$dst_account->{currency}},
@@ -361,7 +366,7 @@ sub convert_homebank_to_ledger {
                 };
             }
         }
-        else {  # with or without category
+        else {  # normal transaction with or without category
             my $amount          = -$transaction->{amount};
             my $category        = $homebank->find_category_by_key($transaction->{category});
             my $other_account   = $category   ? $category->{ledger_name}
@@ -387,8 +392,9 @@ sub convert_homebank_to_ledger {
         }
 
         $ledger->add_transactions({
-            date        => $transaction->{date},
+            date        => $date,
             payee       => $payee->{name},
+            code        => $code,
             memo        => $memo,
             postings    => \@postings,
         });
This page took 0.019027 seconds and 4 git commands to generate.