From: Moritz Bunkus Date: Thu, 19 Mar 2020 12:15:59 +0000 (+0100) Subject: Skontovorschläge: ungültige Steuer-Zeilen aus acc_trans ignorieren X-Git-Tag: release-3.5.6.1~79 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=90e0cc0b89799a206063f9d095b328e13cc73025;p=kivitendo-erp.git Skontovorschläge: ungültige Steuer-Zeilen aus acc_trans ignorieren Buchungen in acc_trans, die das Steuer-Konto ansprechen (also eines, bei dem chart_link AR_tax oder AP_tax enthält), haben oftmals eine ungültige Kombination aus taxkey & tax_id (ungültig im Sinne von: diese Kombination gibt's in der Tabelle tax nicht). Für Skontoberechnung sind solche Zeilen aber irrelevant. Also sie einfach überspringen und nicht sterben. --- diff --git a/SL/DB/Helper/Payment.pm b/SL/DB/Helper/Payment.pm index 2cf8db981..dfc5b797f 100644 --- a/SL/DB/Helper/Payment.pm +++ b/SL/DB/Helper/Payment.pm @@ -483,6 +483,12 @@ sub check_skonto_configuration { foreach my $transaction (@{ $self->transactions }) { # find all transactions with an AR_amount or AP_amount link my $tax = SL::DB::Manager::Tax->get_first( where => [taxkey => $transaction->taxkey, id => $transaction->tax_id ]); + + # acc_trans entries for the taxes (chart_link == A[RP]_tax) often + # have combinations of taxkey & tax_id that don't exist in + # tax. Those must be skipped. + next if !$tax && ($transaction->chart_link !~ m{A[RP]_amount}); + croak "no tax for taxkey " . $transaction->{taxkey} unless ref $tax; $transaction->{chartlinks} = { map { $_ => 1 } split(m/:/, $transaction->chart_link) };