Bankeinzug: bei Überzahlung eine Warnung ausgeben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 16 Aug 2016 09:36:58 +0000 (11:36 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 16 Aug 2016 09:39:00 +0000 (11:39 +0200)
Eine Überzahlung ist oftmals OK oder unvermeidbar, sollte aber von der
BenutzerIn begutachtet werden.

SL/Controller/BankTransaction.pm
locale/de/all

index 9f08263..8f4bffd 100644 (file)
@@ -524,6 +524,7 @@ sub save_single_bank_transaction {
                               payment_type => $payment_type,
                               transdate    => $bank_transaction->transdate->to_kivitendo);
       } else { # use the whole amount of the bank transaction for the invoice, overpay the invoice if necessary
+        my $overpaid_amount = $amount_of_transaction - $invoice->open_amount;
         $invoice->pay_invoice(chart_id     => $bank_transaction->local_bank_account->chart_id,
                               trans_id     => $invoice->id,
                               amount       => $amount_of_transaction,
@@ -531,6 +532,12 @@ sub save_single_bank_transaction {
                               transdate    => $bank_transaction->transdate->to_kivitendo);
         $bank_transaction->invoice_amount($bank_transaction->amount);
         $amount_of_transaction = 0;
+
+        push @warnings, {
+          %data,
+          result  => 'warning',
+          message => $::locale->text('Invoice #1 was overpaid by #2.', $invoice->invnumber, $::form->format_amount(\%::myconfig, $overpaid_amount, 2)),
+        };
       }
 
       # Record a record link from the bank transaction to the invoice
index 1d5897a..9c09cb8 100755 (executable)
@@ -1503,6 +1503,7 @@ $self->{texts} = {
   'Invnumber'                   => 'Rechnungsnummer',
   'Invnumber missing!'          => 'Rechnungsnummer fehlt!',
   'Invoice'                     => 'Rechnung',
+  'Invoice #1 was overpaid by #2.' => 'Rechnung #1 wurde um #2 überzahlt.',
   'Invoice (one letter abbreviation)' => 'R',
   'Invoice Date'                => 'Rechnungsdatum',
   'Invoice Date missing!'       => 'Rechnungsdatum fehlt!',