Bugzilla – Attachment 84296 Details for
Bug 7614
Use branch transfer limits for determining available opac holds pickup locations
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7614: Check transfer limit in CanBookBeReserved and CanItemBeReserved
Bug-7614-Check-transfer-limit-in-CanBookBeReserved.patch (text/plain), 5.16 KB, created by
Kyle M Hall (khall)
on 2019-01-22 18:23:16 UTC
(
hide
)
Description:
Bug 7614: Check transfer limit in CanBookBeReserved and CanItemBeReserved
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2019-01-22 18:23:16 UTC
Size:
5.16 KB
patch
obsolete
>From c576514cc5e556b78ad75bfbe26cb455a60cb111 Mon Sep 17 00:00:00 2001 >From: Lari Taskula <lari.taskula@jns.fi> >Date: Tue, 7 Feb 2017 17:51:18 +0200 >Subject: [PATCH] Bug 7614: Check transfer limit in CanBookBeReserved and > CanItemBeReserved > >This patch adds $branchcode_to parameter to CanBookBeReserved and >CanItemBeReserved. It represents the pickup location for the hold. This patch >checks if the library is configured to be a pickup location (see Bug 7534), and >also if the item can be transferred into the given library (see Bug 18072). > >To test: >1. prove t/db_dependent/Holds.t > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > C4/Reserves.pm | 16 ++++++++++++++++ > t/db_dependent/Holds.t | 24 +++++++++++++++++++----- > 2 files changed, 35 insertions(+), 5 deletions(-) > >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index 9e85854012..bf3d515734 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -297,6 +297,7 @@ sub CanBookBeReserved{ > $canReserve = &CanItemBeReserved($borrowernumber, $itemnumber, $branchcode) > if ($canReserve->{status} eq 'OK') { #We can reserve this Item! } > >+<<<<<<< HEAD > @RETURNS { status => OK }, if the Item can be reserved. > { status => ageRestricted }, if the Item is age restricted for this borrower. > { status => damaged }, if the Item is damaged. >@@ -305,6 +306,17 @@ sub CanBookBeReserved{ > { status => notReservable }, if holds on this item are not allowed > { status => libraryNotFound }, if given branchcode is not an existing library > { status => libraryNotPickupLocation }, if given branchcode is not configured to be a pickup location >+======= >+@RETURNS OK, if the Item can be reserved. >+ ageRestricted, if the Item is age restricted for this borrower. >+ damaged, if the Item is damaged. >+ cannotReserveFromOtherBranches, if syspref 'canreservefromotherbranches' is OK. >+ tooManyReserves, if the borrower has exceeded his maximum reserve amount. >+ notReservable, if holds on this item are not allowed >+ libraryNotFound if given branchcode is not an existing library >+ libraryNotPickupLocation if given branchcode is not configured to be a pickup location >+ cannotBeTransferred if branch transfer limit applies on given item and branchcode >+>>>>>>> Bug 7614: Check transfer limit in CanBookBeReserved and CanItemBeReserved > > =cut > >@@ -475,12 +487,16 @@ sub CanItemBeReserved { > my $destination = Koha::Libraries->find({ > branchcode => $pickup_branchcode, > }); >+ > unless ($destination) { > return { status => 'libraryNotFound' }; > } > unless ($destination->pickup_location) { > return { status => 'libraryNotPickupLocation' }; > } >+ unless ($item->can_be_transferred({ to => $destination })) { >+ return 'cannotBeTransferred'; >+ } > } > > return { status => 'OK' }; >diff --git a/t/db_dependent/Holds.t b/t/db_dependent/Holds.t >index 863ae27f63..89af53b46a 100755 >--- a/t/db_dependent/Holds.t >+++ b/t/db_dependent/Holds.t >@@ -9,17 +9,19 @@ use C4::Context; > > use Test::More tests => 57; > use MARC::Record; >-use C4::Items; >+ > use C4::Biblio; >-use C4::Reserves; > use C4::Calendar; >+use C4::Items; >+use C4::Reserves; > >-use Koha::Database; >-use Koha::DateUtils qw( dt_from_string output_pref ); > use Koha::Biblios; > use Koha::CirculationRules; >+use Koha::Database; >+use Koha::DateUtils qw( dt_from_string output_pref ); > use Koha::Holds; > use Koha::IssuingRules; >+use Koha::Item::Transfer::Limits; > use Koha::Items; > use Koha::Libraries; > use Koha::Patrons; >@@ -490,7 +492,7 @@ subtest 'Test max_holds per library/patron category' => sub { > }; > > subtest 'Pickup location availability tests' => sub { >- plan tests => 3; >+ plan tests => 4; > > my ( $bibnum, $title, $bibitemnum ) = create_helper_biblio('ONLY1'); > my ( $item_bibnum, $item_bibitemnum, $itemnumber ) >@@ -505,13 +507,25 @@ subtest 'Pickup location availability tests' => sub { > my $item = Koha::Items->find($itemnumber); > my $branch_to = $builder->build({ source => 'Branch' })->{ branchcode }; > my $library = Koha::Libraries->find($branch_to); >+ $library->pickup_location('1')->store; > my $patron = $builder->build({ source => 'Borrower' })->{ borrowernumber }; > > t::lib::Mocks::mock_preference('UseBranchTransferLimits', 1); > t::lib::Mocks::mock_preference('BranchTransferLimitsType', 'itemtype'); >+ > $library->pickup_location('1')->store; > is(CanItemBeReserved($patron, $item->itemnumber, $branch_to)->{status}, > 'OK', 'Library is a pickup location'); >+ >+ my $limit = Koha::Item::Transfer::Limit->new({ >+ fromBranch => $item->holdingbranch, >+ toBranch => $branch_to, >+ itemtype => $item->effective_itemtype, >+ })->store; >+ is(CanItemBeReserved($patron, $item->itemnumber, $branch_to), >+ 'cannotBeTransferred', 'Item cannot be transferred'); >+ $limit->delete; >+ > $library->pickup_location('0')->store; > is(CanItemBeReserved($patron, $item->itemnumber, $branch_to)->{status}, > 'libraryNotPickupLocation', 'Library is not a pickup location'); >-- >2.17.2 (Apple Git-113)
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 7614
:
60141
|
60142
|
60143
|
60144
|
60145
|
60785
|
60786
|
60787
|
60938
|
60946
|
70047
|
77895
|
77896
|
77897
|
77898
|
77899
|
77900
|
78020
|
84295
|
84296
|
84297
|
84298
|
84299
|
84300
|
84301
|
84302
|
84303
|
84304
|
84305
|
84306
|
84307
|
84308
|
84309
|
84310
|
84311