]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Bankauszug verbuchen invoice_amount vor pay-invoice
authorJan Büren <jan@kivitendo-premium.de>
Mon, 13 Jun 2016 14:37:55 +0000 (16:37 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Mon, 13 Jun 2016 14:37:55 +0000 (16:37 +0200)
Die Reihenfolge der Verarbeitung des Bankausszugs ist jetzt
wichtig. Vorher wurde einfach der Betrag der gesamten Rechnung
abgezogen, jetzt ist es nur noch der offene Betrag, der nach
der Zahlungsverbuchung dann auf 0 ist. Deshalb vorher ...

SL/Controller/BankTransaction.pm

index 8b9ee207c808c36c41d274e8306281adc7fc0900..7a944e687136a21dabbadd9e604367fa0e5d720b 100644 (file)
@@ -398,11 +398,7 @@ sub action_save_invoices {
       }
       # pay invoice or go to the next bank transaction if the amount is not sufficiently high
       if ($invoice->open_amount <= $amount_of_transaction) {
-        $invoice->pay_invoice(chart_id     => $bank_transaction->local_bank_account->chart_id,
-                              trans_id     => $invoice->id,
-                              amount       => $invoice->open_amount,
-                              payment_type => $payment_type,
-                              transdate    => $bank_transaction->transdate->to_kivitendo);
+        # first calculate new bank transaction amount ...
         if ($invoice->is_sales) {
           $amount_of_transaction -= $sign * $invoice->open_amount;
           $bank_transaction->invoice_amount($bank_transaction->invoice_amount + $invoice->open_amount);
@@ -410,6 +406,12 @@ sub action_save_invoices {
           $amount_of_transaction += $sign * $invoice->open_amount if (!$invoice->is_sales);
           $bank_transaction->invoice_amount($bank_transaction->invoice_amount - $invoice->open_amount);
         }
+        # ... and then pay the invoice
+        $invoice->pay_invoice(chart_id     => $bank_transaction->local_bank_account->chart_id,
+                              trans_id     => $invoice->id,
+                              amount       => $invoice->open_amount,
+                              payment_type => $payment_type,
+                              transdate    => $bank_transaction->transdate->to_kivitendo);
       } else {
         $invoice->pay_invoice(chart_id     => $bank_transaction->local_bank_account->chart_id,
                               trans_id     => $invoice->id,