Bugzilla – Attachment 176420 Details for
Bug 25711
Move ExpireReservesMaxPickUpDelayCharge to the circulation rules
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 25711: Move get_effective_expire_charge to Koha::CirculationRules
Bug-25711-Move-geteffectiveexpirecharge-to-KohaCir.patch (text/plain), 6.49 KB, created by
Martin Renvoize (ashimema)
on 2025-01-12 17:46:12 UTC
(
hide
)
Description:
Bug 25711: Move get_effective_expire_charge to Koha::CirculationRules
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2025-01-12 17:46:12 UTC
Size:
6.49 KB
patch
obsolete
>From 35e247f164fbbf2389496fe33b4ea91bf3414b6a Mon Sep 17 00:00:00 2001 >From: Petro Vashchuk <stalkernoid@gmail.com> >Date: Mon, 9 Aug 2021 17:45:14 +0300 >Subject: [PATCH] Bug 25711: Move get_effective_expire_charge to > Koha::CirculationRules > >Move get_effective_expire_reserves_charge as a new method >in Koha::CirculationRules to retrieve the effective value of the rule, >which means it will get the value from existing circulation rule and >if it doesn't exist or set to undefined it will get the default >value from the preferences. > >Also added tests for this logic. > >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > Koha/CirculationRules.pm | 28 ++++++++ > Koha/Hold.pm | 11 +-- > t/db_dependent/Koha/CirculationRules.t | 94 +++++++++++++++++++++++++- > 3 files changed, 124 insertions(+), 9 deletions(-) > >diff --git a/Koha/CirculationRules.pm b/Koha/CirculationRules.pm >index 72be23f6423..d43ba4f34dd 100644 >--- a/Koha/CirculationRules.pm >+++ b/Koha/CirculationRules.pm >@@ -756,6 +756,34 @@ sub get_effective_daysmode { > > } > >+=head3 get_effective_expire_reserves_charge >+ >+Return the value for expire_reserves_charge defined in the circulation rules. >+If not defined (or empty string), the value of the system preference ExpireReservesMaxPickUpDelayCharge is returned >+ >+=cut >+ >+sub get_effective_expire_reserves_charge { >+ my ( $class, $params ) = @_; >+ >+ my $itemtype = $params->{itemtype}; >+ my $branchcode = $params->{branchcode}; >+ my $categorycode = $params->{categorycode}; >+ >+ my $expire_reserves_charge_rule = $class->get_effective_rule( >+ { >+ itemtype => $itemtype, >+ branchcode => $branchcode, >+ categorycode => $categorycode, >+ rule_name => 'expire_reserves_charge', >+ } >+ ); >+ >+ # return the rule value (incl. 0) if rule found so there's an object in the variable, >+ # or return default value from sysprefs when rule wasn't found and there's undef >+ return $expire_reserves_charge_rule ? $expire_reserves_charge_rule->rule_value : C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); >+ >+} > > =head3 type > >diff --git a/Koha/Hold.pm b/Koha/Hold.pm >index ea7bcac62c3..8672dfe2dca 100644 >--- a/Koha/Hold.pm >+++ b/Koha/Hold.pm >@@ -786,19 +786,14 @@ sub cancel { > > # and, if desired, charge a cancel fee > if ( $params->{'charge_cancel_fee'} ) { >- my $charge; > my $item = $self->item; >- my $branchcode = C4::Reserves::GetReservesControlBranch($item->unblessed, $self->borrower->unblessed); >- >- my $rule = Koha::CirculationRules->get_effective_rule( >+ my $charge = Koha::CirculationRules->get_effective_expire_reserves_charge( > { >+ itemtype => $item->effective_itemtype, >+ branchcode => Koha::Policy::Holds->holds_control_library( $item, $self->borrower ), > categorycode => $self->borrower->categorycode, >- itemtype => $item->effective_itemtype, >- branchcode => $branchcode, >- rule_name => 'expire_reserves_charge', > } > ); >- $charge = $rule ? $rule->rule_value : C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); > > my $account = > Koha::Account->new( { patron_id => $self->borrowernumber } ); >diff --git a/t/db_dependent/Koha/CirculationRules.t b/t/db_dependent/Koha/CirculationRules.t >index 90eb827aff0..928fe6104ba 100755 >--- a/t/db_dependent/Koha/CirculationRules.t >+++ b/t/db_dependent/Koha/CirculationRules.t >@@ -20,7 +20,7 @@ > use Modern::Perl; > > use Benchmark; >-use Test::More tests => 7; >+use Test::More tests => 8; > use Test::Deep qw( cmp_methods ); > use Test::Exception; > >@@ -729,6 +729,98 @@ subtest 'get_effective_daysmode' => sub { > $schema->storage->txn_rollback; > }; > >+subtest 'get_effective_expire_reserves_charge' => sub { >+ plan tests => 4; >+ >+ $schema->storage->txn_begin; >+ >+ Koha::CirculationRules->search({ rule_name => 'expire_reserves_charge' })->delete; >+ >+ t::lib::Mocks::mock_preference( 'ExpireReservesMaxPickUpDelayCharge', 10 ); >+ >+ is( >+ Koha::CirculationRules->get_effective_expire_reserves_charge( >+ { >+ itemtype => undef, >+ branchcode => undef, >+ categorycode => undef, >+ } >+ ), >+ '10', >+ 'use the default pref value as the circ rule does not exist' >+ ); >+ >+ Koha::CirculationRules->set_rule( >+ { >+ branchcode => '*', >+ categorycode => '*', >+ itemtype => '*', >+ rule_name => 'expire_reserves_charge', >+ rule_value => '20' >+ } >+ ); >+ >+ is( >+ Koha::CirculationRules->get_effective_expire_reserves_charge( >+ { >+ categorycode => undef, >+ itemtype => undef, >+ branchcode => undef >+ } >+ ), >+ '20', >+ "use the value from the circ rules" >+ ); >+ >+ t::lib::Mocks::mock_preference( 'ExpireReservesMaxPickUpDelayCharge', 30 ); >+ >+ Koha::CirculationRules->set_rule( >+ { >+ branchcode => '*', >+ categorycode => '*', >+ itemtype => '*', >+ rule_name => 'expire_reserves_charge', >+ rule_value => undef >+ } >+ ); >+ >+ is( >+ Koha::CirculationRules->get_effective_expire_reserves_charge( >+ { >+ categorycode => undef, >+ itemtype => undef, >+ branchcode => undef >+ } >+ ), >+ '30', >+ "use the default pref value for as the circ rule has undefined value" >+ ); >+ >+ Koha::CirculationRules->set_rule( >+ { >+ branchcode => '*', >+ categorycode => '*', >+ itemtype => '*', >+ rule_name => 'expire_reserves_charge', >+ rule_value => '0' >+ } >+ ); >+ >+ is( >+ Koha::CirculationRules->get_effective_expire_reserves_charge( >+ { >+ categorycode => undef, >+ itemtype => undef, >+ branchcode => undef >+ } >+ ), >+ '0', >+ "use the value from the circ rules for even though it's 0" >+ ); >+ >+ $schema->storage->txn_rollback; >+}; >+ > subtest 'get_lostreturn_policy() tests' => sub { > plan tests => 7; > >-- >2.47.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 25711
:
107144
|
107407
|
107683
|
107844
|
108689
|
119851
|
119911
|
119912
|
120164
|
123309
|
123310
|
123326
|
123327
|
123328
|
123452
|
123456
|
123498
|
123568
|
123610
|
123653
|
123661
|
135060
|
135061
|
135062
|
135063
|
135064
|
135065
|
135156
|
135157
|
135158
|
135159
|
135160
|
135161
|
135950
|
135951
|
135952
|
135953
|
135954
|
135955
|
136769
|
140377
|
140378
|
140379
|
140380
|
140381
|
140382
|
140383
|
141270
|
157632
|
157633
|
157634
|
157635
|
157636
|
157637
|
157638
|
157639
|
171054
|
171055
|
171056
|
171057
|
171058
|
171059
|
176243
|
176244
|
176245
|
176246
|
176247
|
176248
|
176408
|
176409
|
176410
|
176411
|
176412
|
176413
|
176414
|
176415
|
176416
|
176417
|
176418
|
176419
| 176420 |
176421