X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FBackgroundJob%2FSelfTest%2FTransactions.pm;h=9b5daed21546a06bbe5a49516ca55ed3235726b1;hb=b167020e55e1fed6e66654f5ae397a91b580a7be;hp=84eaa8467be81c5d45e706165f3c60d65328e74b;hpb=c7f777ac5f9a7c13bf402d008cf609a7ba33a9c5;p=kivitendo-erp.git diff --git a/SL/BackgroundJob/SelfTest/Transactions.pm b/SL/BackgroundJob/SelfTest/Transactions.pm index 84eaa8467..9b5daed21 100644 --- a/SL/BackgroundJob/SelfTest/Transactions.pm +++ b/SL/BackgroundJob/SelfTest/Transactions.pm @@ -15,9 +15,10 @@ sub run { $self->_setup; - $self->tester->plan(tests => 14); + $self->tester->plan(tests => 16); $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_netamount_laut_invoice_ar; @@ -30,6 +31,7 @@ sub run { $self->check_paid_stornos; $self->check_stornos_ohne_partner; $self->check_overpayments; + $self->check_every_account_with_taxkey; $self->calc_saldenvortraege; } @@ -70,6 +72,20 @@ sub check_konten_mit_saldo_nicht_in_guv { } } +sub check_bilanzkonten_mit_pos_eur { + my ($self) = @_; + + my $query = qq|SELECT accno, description FROM chart WHERE (category = 'A' OR category = 'L' OR category = 'Q') AND (pos_eur IS NOT NULL OR pos_eur != 0)|; + + my $bilanzkonten_mit_pos_eur = selectall_hashref_query($::form, $self->dbh, $query); + if (@$bilanzkonten_mit_pos_eur) { + $self->tester->ok(0, "Es gibt Bilanzkonten die der GuV/EÜR zugeordnet sind)"); + $self->tester->diag("$_->{accno} $_->{description}") for @$bilanzkonten_mit_pos_eur; + } else { + $self->tester->ok(1, "Keine Bilanzkonten in der GuV"); + } +} + sub check_balanced_individual_transactions { my ($self) = @_; @@ -294,7 +310,7 @@ sub check_stornos_ohne_partner { LEFT JOIN vendor v on (v.id = ap.vendor_id) WHERE storno_id is null AND storno is true AND ap.id not in (SELECT storno_id FROM ap WHERE storno_id is not null AND storno is true); |; - + my $stornos_ohne_partner = selectall_hashref_query($::form, $self->dbh, $query); $self->tester->ok(@$stornos_ohne_partner == 0, 'Es sollte keine Stornos ohne Partner geben'); @@ -377,6 +393,23 @@ sub calc_saldenvortraege { $self->tester->diag("Saldo $saldenvortragskonto am 31.12.@{[DateTime->today->year]}: @{[ $saldo_9000_jahresende * 1 ]} (sollte 0 sein)"); } +sub check_every_account_with_taxkey { + my ($self) = @_; + + 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:"); + + 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!"); + } +} + 1; __END__