From bebca3b60f8c019b9acbc436da7437d67dc19e67 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Tue, 27 Oct 2015 11:24:39 +0100 Subject: [PATCH] =?utf8?q?SelfTest=20um=20Testfall=20ac.amount=20=3D=3D=20?= =?utf8?q?ar.netamount=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In Ergänzung zu #7915128c einen ähnlich sinnvollen Testfall für Selftest ergänzt. Im Datenbestand muss zwingend ar.netamount == acc_trans.amount für Typ AR_amount identisch sein. Ansonsten kommt / kam es in der Vergangenheit immer zu cent Differenz in der Rechnungsübersicht und in der Rechnungseinzelansicht. --- SL/BackgroundJob/SelfTest/Transactions.pm | 25 ++++++++++++++++++++++- doc/changelog | 3 +++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/SL/BackgroundJob/SelfTest/Transactions.pm b/SL/BackgroundJob/SelfTest/Transactions.pm index f4f13d01a..6307ea99f 100644 --- a/SL/BackgroundJob/SelfTest/Transactions.pm +++ b/SL/BackgroundJob/SelfTest/Transactions.pm @@ -15,13 +15,14 @@ sub run { $self->_setup; - $self->tester->plan(tests => 17); + $self->tester->plan(tests => 18); $self->check_konten_mit_saldo_nicht_in_guv; $self->check_bilanzkonten_mit_pos_eur; $self->check_balanced_individual_transactions; $self->check_verwaiste_acc_trans_eintraege; $self->check_verwaiste_invoice_eintraege; + $self->check_ar_acc_trans_amount; $self->check_netamount_laut_invoice_ar; $self->check_invnumbers_unique; $self->check_summe_stornobuchungen; @@ -428,6 +429,28 @@ sub check_every_account_with_taxkey { } } +sub check_ar_acc_trans_amount { + my ($self) = @_; + + my $query = qq| + select ar.invnumber, ar.netamount, ac.amount + from ar left join acc_trans ac on (ac.trans_id = ar.id) where ac.chart_link like 'AR_amount%' AND ac.amount <> ar.netamount|; + + my $ar_amount_not_ac_amount = selectall_hashref_query($::form, $self->dbh, $query); + + if ( scalar @{ $ar_amount_not_ac_amount } > 0 ) { + $self->tester->ok(0, "Folgende Ausgangsrechnungen haben einen falschen Netto-Wert im Nebenbuch:"); + + for my $ar_ac_amount_nok (@{ $ar_amount_not_ac_amount } ) { + $self->tester->diag("Rechnungsnummer: $ar_ac_amount_nok->{invnumber} Hauptbuch-Wert: $ar_ac_amount_nok->{amount} + Nebenbuch-Wert: $ar_ac_amount_nok->{netamount}"); + } + } else { + $self->tester->ok(1, "Hauptbuch-Nettowert und Nebenbuch-Nettowert stimmen überein."); + } + +} + 1; __END__ diff --git a/doc/changelog b/doc/changelog index 2c4645dce..cb62a04a7 100644 --- a/doc/changelog +++ b/doc/changelog @@ -44,6 +44,9 @@ Kleinere neue Features und Detailverbesserungen: - Konkurrierende Schreibprozesse beim Speichern von Belegen verhindern. + - SelfTest um einen Test erweitert. Hauptbuch-Nettowert weicht vom Nebenbuch-Netto-Wert ab + (acc_trans.amount != ar.netamount). + 2015-08-20 - Release 3.3 Größere neue Features: -- 2.20.1