]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/BankImport.pm
kivitendo 3.9.2-0.2
[mfinanz.git] / SL / Controller / BankImport.pm
index 1b20deca3b8a2705506c38b1aba1dedc044ab44b..20c376418de72f234373083db847c7900369896b 100644 (file)
@@ -137,7 +137,7 @@ sub import_transactions {
       next if $transaction->{error} || $transaction->{duplicate};
 
       SL::DB::BankTransaction->new(
-        map { ($_ => $transaction->{$_}) } qw(amount currency_id local_bank_account_id purpose remote_account_number remote_bank_code remote_name transaction_code transdate valutadate)
+        map { ($_ => $transaction->{$_}) } qw(amount currency_id local_bank_account_id purpose remote_account_number remote_bank_code remote_name transaction_code transdate valutadate end_to_end_id)
       )->save;
 
       $imported++;
@@ -170,16 +170,18 @@ sub make_transaction_idx {
   my ($transaction) = @_;
 
   if (ref($transaction) eq 'SL::DB::BankTransaction') {
-    $transaction = { map { ($_ => $transaction->$_) } qw(local_bank_account_id transdate valutadate amount purpose) };
+    $transaction = { map { ($_ => $transaction->$_) } qw(local_bank_account_id remote_account_number transdate valutadate amount purpose end_to_end_id) };
   }
 
+  my @other_fields =  $transaction->{end_to_end_id} && $::instance_conf->get_check_bt_duplicates_endtoend
+                   ? qw(end_to_end_id remote_account_number) : qw(purpose);
   return normalize_text(join '/',
                         map { $_ // '' }
                         ($transaction->{local_bank_account_id},
                          $transaction->{transdate}->ymd,
                          $transaction->{valutadate}->ymd,
                          (apply { s{0+$}{} } $transaction->{amount} * 1),
-                         $transaction->{purpose}));
+                         map { $transaction->{$_} } @other_fields));
 }
 
 sub init_bank_accounts {