Bugzilla – Attachment 68732 Details for
Bug 15486
Restrict number of holds placed by day
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 15486: Extend CanItemBeReserved so it handles daily holds limits
Bug-15486-Extend-CanItemBeReserved-so-it-handles-d.patch (text/plain), 2.61 KB, created by
Tomás Cohen Arazi (tcohen)
on 2017-10-27 14:45:11 UTC
(
hide
)
Description:
Bug 15486: Extend CanItemBeReserved so it handles daily holds limits
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2017-10-27 14:45:11 UTC
Size:
2.61 KB
patch
obsolete
>From 1983dde5a2147219fb3ada0ec81a0b00fb7dda4b Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Wed, 19 Jul 2017 18:14:19 -0300 >Subject: [PATCH] Bug 15486: Extend CanItemBeReserved so it handles daily holds > limits > >This patch implements the required changes in >C4::Reserves::CanItemBeReserved so it implements a daily limit on holds. > >It returns the 'tooManyReservesToday' string if the policy doesn't allow >placing the hold. It returns 'OK' (current behaviour) otherwise. > >To test: >- Run: > $ sudo koha-shell kohadev > k$ cd kohaclone > k$ prove t/db_dependent/Holds.t >=> FAIL: Tests fail because the error condition is not making >CanItemBeReserved return the desired error code. >- Apply this patch >- Run: > k$ prove t/db_dependent/Holds.t >=> SUCCESS: Tests pass! >- Sign off :-D >--- > C4/Reserves.pm | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index 78f5ca3..10f4be3 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -303,6 +303,7 @@ sub CanItemBeReserved { > my $ruleitemtype; # itemtype of the matching issuing rule > my $allowedreserves = 0; # Total number of holds allowed across all records > my $holds_per_record = 1; # Total number of holds allowed for this one given record >+ my $holds_per_day = 0; # Total number of holds allowed per day for the given patron > > # we retrieve borrowers and items informations # > # item->{itype} will come for biblioitems if necessery >@@ -353,6 +354,7 @@ sub CanItemBeReserved { > $ruleitemtype = $rights->{itemtype}; > $allowedreserves = $rights->{reservesallowed}; > $holds_per_record = $rights->{holds_per_record}; >+ $holds_per_day = $rights->{holds_per_day} // 0; > } > else { > $ruleitemtype = '*'; >@@ -370,6 +372,16 @@ sub CanItemBeReserved { > return "tooManyHoldsForThisRecord"; > } > >+ my $today_holds = Koha::Holds->search({ >+ borrowernumber => $borrowernumber, >+ reservedate => dt_from_string->date >+ }); >+ >+ if ( $holds_per_day > 0 >+ && $today_holds->count() >= $holds_per_day ) { >+ return "tooManyReservesToday"; >+ } >+ > # we retrieve count > > $querycount .= "AND $branchfield = ?"; >@@ -2148,7 +2160,7 @@ sub GetHoldRule { > > my $sth = $dbh->prepare( > q{ >- SELECT categorycode, itemtype, branchcode, reservesallowed, holds_per_record >+ SELECT categorycode, itemtype, branchcode, reservesallowed, holds_per_record, holds_per_day > FROM issuingrules > WHERE (categorycode in (?,'*') ) > AND (itemtype IN (?,'*')) >-- >2.7.4
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 15486
:
65128
|
65129
|
65130
|
65131
|
65132
|
65133
|
67202
|
67203
|
67204
|
67205
|
67206
|
67207
|
67337
|
67840
|
67841
|
67842
|
67843
|
67844
|
67845
|
68728
|
68729
|
68730
|
68731
|
68732
|
68733
|
68734
|
68735
|
68750
|
68751
|
68752
|
68791
|
71314
|
71315
|
71316
|
71317
|
71318
|
71319
|
72709
|
79318
|
79319
|
79320
|
79321
|
79322
|
79323
|
79324
|
79696
|
79697
|
79698
|
79699
|
79700
|
79701
|
79702
|
80478
|
80479
|
80480
|
80481
|
80482
|
80483
|
80484
|
81087