Bankauszug verbuchen invoice_amount vor pay-invoice
[kivitendo-erp.git] / SL / Controller / BankTransaction.pm
index 8b9ee20..7a944e6 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,