Zu Kontoauszug Zuordnung verbessern, alte Logik auch entfernen
[kivitendo-erp.git] / SL / DB / BankTransaction.pm
index c02ebb9..b07cdf1 100644 (file)
@@ -99,13 +99,16 @@ sub get_agreement_with_invoice {
   $bank_code      = $invoice->vendor->bank_code        if ! $invoice->is_sales;
   $iban           = $invoice->vendor->iban             if ! $invoice->is_sales;
   $account_number = $invoice->vendor->account_number   if ! $invoice->is_sales;
-  if ( $bank_code eq $self->remote_bank_code && $account_number eq $self->remote_account_number ) {
-    $agreement += $points{remote_account_number};
-    $rule_matches .= 'remote_account_number(' . $points{'remote_account_number'} . ') ';
-  }
-  if ( $iban eq $self->remote_account_number ) {
-    $agreement += $points{remote_account_number};
-    $rule_matches .= 'remote_account_number(' . $points{'remote_account_number'} . ') ';
+
+  # check only valid remote_account_number (with some content)
+  if ($self->remote_account_number) {
+    if ($bank_code eq $self->remote_bank_code && $account_number eq $self->remote_account_number) {
+      $agreement += $points{remote_account_number};
+      $rule_matches .= 'remote_account_number(' . $points{'remote_account_number'} . ') ';
+    } elsif ($iban eq $self->remote_account_number) { # elsif -> do not add twice
+      $agreement += $points{remote_account_number};
+      $rule_matches .= 'remote_account_number(' . $points{'remote_account_number'} . ') ';
+    }
   }
 
   my $datediff = $self->transdate->{utc_rd_days} - $invoice->transdate->{utc_rd_days};
@@ -122,7 +125,7 @@ sub get_agreement_with_invoice {
 
   # compare open amount, preventing double points when open amount = invoice amount
   if ( $invoice->amount != $invoice->open_amount && abs(abs($invoice->open_amount) - abs($self->amount)) < 0.01 &&
-         $::form->format_amount(\%::myconfig,abs($invoice->amount_less_skonto),2) eq
+         $::form->format_amount(\%::myconfig,abs($invoice->open_amount),2) eq
          $::form->format_amount(\%::myconfig,abs($self->amount),2)
        ) {
     $agreement += $points{exact_open_amount};