X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/7b7549e7e807d691798b3424266e37192f3cf436..ba802064109d19f3488e5555ec04491681e37b51:/SL/BackgroundJob/SelfTest/Transactions.pm diff --git a/SL/BackgroundJob/SelfTest/Transactions.pm b/SL/BackgroundJob/SelfTest/Transactions.pm index e6c1bf3df..f4f13d01a 100644 --- a/SL/BackgroundJob/SelfTest/Transactions.pm +++ b/SL/BackgroundJob/SelfTest/Transactions.pm @@ -15,12 +15,13 @@ sub run { $self->_setup; - $self->tester->plan(tests => 15); + $self->tester->plan(tests => 17); $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_netamount_laut_invoice_ar; $self->check_invnumbers_unique; $self->check_summe_stornobuchungen; @@ -128,6 +129,23 @@ sub check_verwaiste_acc_trans_eintraege { } } +sub check_verwaiste_invoice_eintraege { + # this check is always run for all invoice entries in the entire database + my ($self) = @_; + my $query = qq| + select * from invoice i + where trans_id not in (select id from ar union select id from ap order by id) |; + + my $verwaiste_invoice = selectall_hashref_query($::form, $self->dbh, $query); + if (@$verwaiste_invoice) { + $self->tester->ok(0, "Es gibt verwaiste invoice Einträge! (wo ar/ap-Eintrag fehlt)"); + for my $invoice ( @{ $verwaiste_invoice }) { + $self->tester->diag("invoice: id: $invoice->{id} trans_id: $invoice->{trans_id} description: $invoice->{description} itime: $invoice->{itime}"); + }; + } else { + $self->tester->ok(1, "Keine verwaisten invoice Einträge (wo ar/ap-Eintrag fehlt)"); } +} + sub check_netamount_laut_invoice_ar { my ($self) = @_; my $query = qq| @@ -396,11 +414,15 @@ sub calc_saldenvortraege { sub check_every_account_with_taxkey { my ($self) = @_; - my $query = qq|SELECT 1 FROM chart WHERE id NOT IN (select chart_id from taxkeys) LIMIT 1|; - my ($account_without_chart) = selectfirst_array_query($::form, $self->dbh, $query); + my $query = qq|SELECT accno, description FROM chart WHERE id NOT IN (select chart_id from taxkeys)|; + my $accounts_without_tk = selectall_hashref_query($::form, $self->dbh, $query); + + if ( scalar @{ $accounts_without_tk } > 0 ){ + $self->tester->ok(0, "Folgende Konten haben keinen gültigen Steuerschlüssel:"); - if ($account_without_chart){ - $self->tester->ok(0, "Es sollte keine Konten ohne Steuerschlüssel geben!"); + for my $account_without_tk (@{ $accounts_without_tk } ) { + $self->tester->diag("Kontonummer: $account_without_tk->{accno} Beschreibung: $account_without_tk->{description}"); + } } else { $self->tester->ok(1, "Jedes Konto hat einen gültigen Steuerschlüssel!"); }