Bugzilla – Attachment 142266 Details for
Bug 31895
New account hook when adding credit
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 31895: New after_account_action hook
Bug-31895-New-afteraccountaction-hook.patch (text/plain), 4.72 KB, created by
Stefan Berndtsson
on 2022-10-20 16:42:00 UTC
(
hide
)
Description:
Bug 31895: New after_account_action hook
Filename:
MIME Type:
Creator:
Stefan Berndtsson
Created:
2022-10-20 16:42:00 UTC
Size:
4.72 KB
patch
obsolete
>From 36d5c6297c9eaed2f33ab509cf858a0f264fb6e5 Mon Sep 17 00:00:00 2001 >From: Stefan Berndtsson <stefan.berndtsson@gmail.com> >Date: Mon, 17 Oct 2022 16:46:24 +0200 >Subject: [PATCH] Bug 31895: New after_account_action hook > >Hooks added: >after_account_action with new action add_credit > >How to test: >Run tests in t/db_dependent/Koha/Plugins/Account_hooks.t > >Sponsored by: Gothenburg University Library >--- > Koha/Account.pm | 12 ++++ > t/db_dependent/Koha/Plugins/Account_hooks.t | 74 +++++++++++++++++++++ > t/lib/plugins/Koha/Plugin/Test.pm | 11 +++ > 3 files changed, 97 insertions(+) > create mode 100755 t/db_dependent/Koha/Plugins/Account_hooks.t > >diff --git a/Koha/Account.pm b/Koha/Account.pm >index 4c13a9a07e..cdbf12cc39 100644 >--- a/Koha/Account.pm >+++ b/Koha/Account.pm >@@ -35,6 +35,7 @@ use Koha::Account::Offsets; > use Koha::Account::DebitTypes; > use Koha::Exceptions; > use Koha::Exceptions::Account; >+use Koha::Plugins; > > =head1 NAME > >@@ -255,6 +256,17 @@ sub add_credit { > } > ) if grep { $credit_type eq $_ } ( 'PAYMENT', 'WRITEOFF' ); > >+ Koha::Plugins->call( >+ 'after_account_action', >+ { >+ action => "add_credit", >+ payload => { >+ type => lc($credit_type), >+ line => $line->get_from_storage >+ } >+ } >+ ); >+ > if ( C4::Context->preference("FinesLog") ) { > logaction( > "FINES", 'CREATE', >diff --git a/t/db_dependent/Koha/Plugins/Account_hooks.t b/t/db_dependent/Koha/Plugins/Account_hooks.t >new file mode 100755 >index 0000000000..8cfbec623b >--- /dev/null >+++ b/t/db_dependent/Koha/Plugins/Account_hooks.t >@@ -0,0 +1,74 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 3 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along >+# with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Test::More tests => 4; >+use Test::MockModule; >+use Test::Warn; >+ >+use File::Basename; >+ >+use Koha::Account qw( add_credit ); >+ >+use t::lib::Mocks; >+use t::lib::TestBuilder; >+ >+BEGIN { >+ # Mock pluginsdir before loading Plugins module >+ my $path = dirname(__FILE__) . '/../../../lib/plugins'; >+ t::lib::Mocks::mock_config( 'pluginsdir', $path ); >+ >+ use_ok('Koha::Plugins'); >+ use_ok('Koha::Plugins::Handler'); >+ use_ok('Koha::Plugin::Test'); >+} >+ >+my $schema = Koha::Database->new->schema; >+my $builder = t::lib::TestBuilder->new; >+ >+t::lib::Mocks::mock_config( 'enable_plugins', 1 ); >+ >+subtest 'Koha::Account tests' => sub { >+ >+ plan tests => 2; >+ >+ $schema->storage->txn_begin; >+ >+ my $plugins = Koha::Plugins->new; >+ $plugins->InstallPlugins; >+ >+ my $plugin = Koha::Plugin::Test->new->enable; >+ >+ my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); >+ >+ my $account = $patron->account; >+ warning_like { >+ $account->add_credit({ amount => 20, interface => 'commandline', type => 'WRITEOFF'}); >+ } >+ qr/after_account_action called with action: add_credit, type: writeoff, ref: Koha::Account::Line/, >+ '->add_credit calls the after_account_action hook with type writeoff'; >+ >+ >+ warning_like { >+ $account->add_credit({ amount => 10, interface => 'commandline', type => 'PAYMENT'}); >+ } >+ qr/after_account_action called with action: add_credit, type: payment, ref: Koha::Account::Line/, >+ '->add_credit calls the after_account_action hook with type payment'; >+ >+ $schema->storage->txn_rollback; >+ Koha::Plugins::Methods->delete; >+}; >diff --git a/t/lib/plugins/Koha/Plugin/Test.pm b/t/lib/plugins/Koha/Plugin/Test.pm >index eee99859d1..6693fddb8c 100644 >--- a/t/lib/plugins/Koha/Plugin/Test.pm >+++ b/t/lib/plugins/Koha/Plugin/Test.pm >@@ -348,6 +348,17 @@ sub background_tasks { > }; > } > >+sub after_account_action { >+ my ( $self, $params ) = @_; >+ >+ my $action = $params->{action}; >+ my $line = $params->{payload}->{line}; >+ my $type = $params->{payload}->{type}; >+ >+ Koha::Exception->throw( >+ "after_account_action called with action: $action, type: $type, ref: " . ref($line) ); >+} >+ > sub _private_sub { > return ""; > } >-- >2.37.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 31895
:
142266
|
142277
|
142748
|
142749