X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/5d2c7ae29c701553aa3ab2cbbcf04b4dbaae5086..29ecf3e817e8ea432aac72487db0a22a732cba66:/SL/Controller/BankTransaction.pm diff --git a/SL/Controller/BankTransaction.pm b/SL/Controller/BankTransaction.pm index d018930fc..7a944e687 100644 --- a/SL/Controller/BankTransaction.pm +++ b/SL/Controller/BankTransaction.pm @@ -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,