From 29ecf3e817e8ea432aac72487db0a22a732cba66 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Mon, 13 Jun 2016 16:37:55 +0200 Subject: [PATCH] Bankauszug verbuchen invoice_amount vor pay-invoice 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 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index 8b9ee207c..7a944e687 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -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, -- 2.20.1