From: Jan Büren Date: Mon, 13 Jun 2016 14:37:55 +0000 (+0200) Subject: Bankauszug verbuchen invoice_amount vor pay-invoice X-Git-Tag: release-3.4.1~59 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=29ecf3e817e8ea432aac72487db0a22a732cba66;p=kivitendo-erp.git 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 ... --- 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,