From 7bdc0dbb46f038e61b4343dca71a0f9a09d7b34b Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 22 Jun 2018 12:24:33 -0300 Subject: [PATCH] Bug 20980: (follow-up) Only use UpdateStats for 'payment' and 'writeoff' This patch makes Koha::Account::add_credit record statistics logs (through C4::Stats::UpdateStats) only for the 'payment' and 'writeoff' credit types. Both credit types are whitelisted in UpdateStats, so we keep the current behaviour. Another option would've been to add new account types to the white list, but with the account offsets it seems that using the statistics table for account changes won't be useful for too long, as offsets contain the same (and more) information. To test: - Apply the patch - Run: $ kshell k$ prove t/db_dependent/Koha/Account.t => SUCCESS: Tests pass! - Sign off :-D --- Koha/Account.pm | 2 +- t/db_dependent/Koha/Account.t | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Koha/Account.pm b/Koha/Account.pm index 7838dcfa02..6ecfa741f4 100644 --- a/Koha/Account.pm +++ b/Koha/Account.pm @@ -346,7 +346,7 @@ sub add_credit { borrowernumber => $self->{patron_id}, accountno => $accountno, } - ); + ) if grep { $type eq $_ } ('payment', 'writeoff') ; if ( C4::Context->preference("FinesLog") ) { logaction( diff --git a/t/db_dependent/Koha/Account.t b/t/db_dependent/Koha/Account.t index 6703c7a552..2f82d58a5f 100755 --- a/t/db_dependent/Koha/Account.t +++ b/t/db_dependent/Koha/Account.t @@ -32,7 +32,7 @@ my $builder = t::lib::TestBuilder->new; subtest 'add_credit() tests' => sub { - plan tests => 13; + plan tests => 15; $schema->storage->txn_begin; @@ -53,6 +53,7 @@ subtest 'add_credit() tests' => sub { description => 'Payment of 25', library_id => $patron->branchcode, note => 'not really important', + type => 'payment', user_id => $patron->id } ); @@ -90,5 +91,17 @@ subtest 'add_credit() tests' => sub { is( $offset_2->credit_id, $line_2->id, 'No debit_id is set for credits' ); is( $offset_2->debit_id, undef, 'No debit_id is set for credits' ); + my $line_3 = $account->add_credit( + { amount => 20, + description => 'Manual credit applied', + library_id => $patron->branchcode, + user_id => $patron->id, + type => 'forgiven' + } + ); + + is( $schema->resultset('ActionLog')->count(), 2, 'Log was added' ); + is( $schema->resultset('Statistic')->count(), 2, 'No action added to statistics, because of credit type' ); + $schema->storage->txn_rollback; }; -- 2.18.0