]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Controller/BankTransaction.pm
Bankauszug verbuchen invoice_amount vor pay-invoice
[mfinanz.git] / SL / Controller / BankTransaction.pm
index d018930fc01639759a5fabc6d15b93ff73ce27d7..7a944e687136a21dabbadd9e604367fa0e5d720b 100644 (file)
@@ -397,19 +397,21 @@ sub action_save_invoices {
         last;
       }
       # pay invoice or go to the next bank transaction if the amount is not sufficiently high
-      if ($invoice->amount <= $amount_of_transaction) {
+      if ($invoice->open_amount <= $amount_of_transaction) {
+        # 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);
+        } else {
+          $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->amount,
+                              amount       => $invoice->open_amount,
                               payment_type => $payment_type,
                               transdate    => $bank_transaction->transdate->to_kivitendo);
-        if ($invoice->is_sales) {
-          $amount_of_transaction -= $sign * $invoice->amount;
-          $bank_transaction->invoice_amount($bank_transaction->invoice_amount + $invoice->amount);
-        } else {
-          $amount_of_transaction += $sign * $invoice->amount if (!$invoice->is_sales);
-          $bank_transaction->invoice_amount($bank_transaction->invoice_amount - $invoice->amount);
-        }
       } else {
         $invoice->pay_invoice(chart_id     => $bank_transaction->local_bank_account->chart_id,
                               trans_id     => $invoice->id,