Bugzilla – Attachment 102245 Details for
Bug 24860
Add ability to place item group level holds
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 24860: Skip non-matching volume holds in HoldsQueue
Bug-24860-Skip-non-matching-volume-holds-in-HoldsQ.patch (text/plain), 7.94 KB, created by
Andrew Fuerste-Henry
on 2020-04-01 18:22:32 UTC
(
hide
)
Description:
Bug 24860: Skip non-matching volume holds in HoldsQueue
Filename:
MIME Type:
Creator:
Andrew Fuerste-Henry
Created:
2020-04-01 18:22:32 UTC
Size:
7.94 KB
patch
obsolete
>From a9ef94f211248261c3fd65fe551c4b8e1d618b7c Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 11 Mar 2020 06:00:27 -0400 >Subject: [PATCH] Bug 24860: Skip non-matching volume holds in HoldsQueue > >Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> >--- > C4/HoldsQueue.pm | 48 +++++++++++++++++++--- > .../prog/en/modules/circ/view_holdsqueue.tt | 2 + > 2 files changed, 45 insertions(+), 5 deletions(-) > >diff --git a/C4/HoldsQueue.pm b/C4/HoldsQueue.pm >index 5f2c2c556c..82eaedd39f 100755 >--- a/C4/HoldsQueue.pm >+++ b/C4/HoldsQueue.pm >@@ -137,11 +137,14 @@ sub GetHoldsQueueItems { > biblio.copyrightdate, biblio.subtitle, biblio.medium, > biblio.part_number, biblio.part_name, > biblioitems.publicationyear, biblioitems.pages, biblioitems.size, >- biblioitems.isbn, items.copynumber >+ biblioitems.isbn, items.copynumber, >+ volumes.id AS volume_id, volumes.description AS volume_description > FROM tmp_holdsqueue >- JOIN biblio USING (biblionumber) >- LEFT JOIN biblioitems USING (biblionumber) >- LEFT JOIN items USING ( itemnumber) >+ JOIN biblio USING (biblionumber) >+ LEFT JOIN biblioitems USING (biblionumber) >+ LEFT JOIN items USING ( itemnumber) >+ LEFT JOIN volume_items USING ( itemnumber) >+ LEFT JOIN volumes ON ( volume_items.volume_id = volumes.id ) > /; > if ($branchlimit) { > $query .=" WHERE tmp_holdsqueue.holdingbranch = ?"; >@@ -277,7 +280,7 @@ sub GetPendingHoldRequestsForBib { > my $dbh = C4::Context->dbh; > > my $request_query = "SELECT biblionumber, borrowernumber, itemnumber, priority, reserves.branchcode, >- reservedate, reservenotes, borrowers.branchcode AS borrowerbranch, itemtype >+ reservedate, reservenotes, borrowers.branchcode AS borrowerbranch, itemtype, volume_id > FROM reserves > JOIN borrowers USING (borrowernumber) > WHERE biblionumber = ? >@@ -409,6 +412,8 @@ sub MapItemsToHoldRequests { > || ( $item->{holdallowed} == 1 > && $item->{homebranch} ne $request->{borrowerbranch} ); > >+ next if $request->{volume_id} && $item->{_object}->volume && $item->{_object}->volume->id ne $request->{volume_id}; >+ > next unless $item->{_object}->can_be_transferred( { to => $libraries->{ $request->{branchcode} } } ); > > my $local_holds_priority_item_branchcode = >@@ -464,6 +469,9 @@ sub MapItemsToHoldRequests { > || ( $request->{branchcode} eq $items_by_itemnumber{ $request->{itemnumber} }->{ $items_by_itemnumber{ $request->{itemnumber} }->{hold_fulfillment_policy} } ) > and ( !$request->{itemtype} # If hold itemtype is set, item's itemtype must match > || $items_by_itemnumber{ $request->{itemnumber} }->{itype} eq $request->{itemtype} ) >+ and ( !$request->{volume_id} # If hold volume is set, item's volume must match >+ || ( $items_by_itemnumber{ $request->{itemnumber} }->{_object}->volume >+ && $items_by_itemnumber{ $request->{itemnumber} }->{_object}->volume->id eq $request->{volume_id} ) ) > ) > and $items_by_itemnumber{ $request->{itemnumber} }->{_object}->can_be_transferred( { to => $libraries->{ $request->{branchcode} } } ) > >@@ -521,6 +529,8 @@ sub MapItemsToHoldRequests { > || $request->{branchcode} eq $item->{ $item->{hold_fulfillment_policy} } ) > && ( !$request->{itemtype} # If hold itemtype is set, item's itemtype must match > || $items_by_itemnumber{ $request->{itemnumber} }->{itype} eq $request->{itemtype} ) >+ && ( !$request->{volume_id} # If hold volume is set, item's volume must match >+ || ( $item->{_object}->volume && $item->{_object}->volume->id eq $request->{volume_id} ) ) > ) > { > $itemnumber = $item->{itemnumber}; >@@ -547,6 +557,13 @@ sub MapItemsToHoldRequests { > next unless ( !$request->{itemtype} > || $item->{itype} eq $request->{itemtype} ); > >+ # If hold volume is set, item's volume must match >+ next unless ( >+ !$request->{volume_id} >+ || ( $item->{_object}->volume >+ && $item->{_object}->volume->id eq $request->{volume_id} ) >+ ); >+ > $itemnumber = $item->{itemnumber}; > last; > } >@@ -584,6 +601,13 @@ sub MapItemsToHoldRequests { > next unless ( !$request->{itemtype} > || $item->{itype} eq $request->{itemtype} ); > >+ # If hold volume is set, item's volume must match >+ next unless ( >+ !$request->{volume_id} >+ || ( $item->{_object}->volume >+ && $item->{_object}->volume->id eq $request->{volume_id} ) >+ ); >+ > $itemnumber = $item->{itemnumber}; > $holdingbranch = $branch; > last PULL_BRANCHES; >@@ -603,6 +627,13 @@ sub MapItemsToHoldRequests { > next unless ( !$request->{itemtype} > || $current_item->{itype} eq $request->{itemtype} ); > >+ # If hold volume is set, item's volume must match >+ next unless ( >+ !$request->{volume_id} >+ || ( $current_item->{_object}->volume >+ && $current_item->{_object}->volume->id eq $request->{volume_id} ) >+ ); >+ > next unless $items_by_itemnumber{ $current_item->{itemnumber} }->{_object}->can_be_transferred( { to => $libraries->{ $request->{branchcode} } } ); > > $itemnumber = $current_item->{itemnumber}; >@@ -629,6 +660,13 @@ sub MapItemsToHoldRequests { > next unless ( !$request->{itemtype} > || $item->{itype} eq $request->{itemtype} ); > >+ # If hold volume is set, item's volume must match >+ next unless ( >+ !$request->{volume_id} >+ || ( $item->{_object}->volume >+ && $item->{_object}->volume->id eq $request->{volume_id} ) >+ ); >+ > next unless $items_by_itemnumber{ $item->{itemnumber} }->{_object}->can_be_transferred( { to => $libraries->{ $request->{branchcode} } } ); > > $itemnumber = $item->{itemnumber}; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/view_holdsqueue.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/view_holdsqueue.tt >index 63bc6263de..ceb0031114 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/view_holdsqueue.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/view_holdsqueue.tt >@@ -156,6 +156,8 @@ > <td class="hq-barcode"> > [% IF ( itemsloo.item_level_request ) %] > <em>Only item:</em> <strong>[% itemsloo.barcode | html %]</strong> >+ [% ELSIF itemsloo.volume_id %] >+ <strong>[% itemsloo.barcode | html %]</strong> <em>or any item from volume <strong>[% itemsloo.volume_description | html %]</strong></em> > [% ELSE %] > <strong>[% itemsloo.barcode | html %]</strong> <em>or any available</em> > [% END %] >-- >2.11.0
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 24860
:
100644
|
100645
|
100646
|
100647
|
100648
|
100649
|
100650
|
100651
|
101744
|
101745
|
101746
|
101747
|
101748
|
101749
|
101750
|
101751
|
101827
|
101828
|
101829
|
101830
|
101831
|
101832
|
101833
|
101834
|
101835
|
102230
|
102231
|
102232
|
102233
|
102234
|
102235
|
102236
|
102237
|
102238
|
102239
|
102240
|
102241
|
102242
|
102243
|
102244
|
102245
|
102246
|
102247
|
106589
|
106590
|
106591
|
106592
|
106593
|
106594
|
106595
|
106596
|
106597
|
106682
|
106683
|
106684
|
106685
|
106686
|
106687
|
106688
|
106689
|
106690
|
106742
|
106743
|
106744
|
106745
|
106746
|
106747
|
106748
|
106749
|
106750
|
108458
|
108459
|
108460
|
108461
|
108462
|
108463
|
108464
|
108465
|
108466
|
109097
|
109098
|
109099
|
109100
|
109101
|
109102
|
109103
|
109104
|
109105
|
109171
|
109172
|
109173
|
109174
|
109175
|
109176
|
109177
|
109178
|
109179
|
113616
|
113617
|
113618
|
113619
|
113620
|
113621
|
113622
|
113623
|
113624
|
135922
|
135923
|
135924
|
135925
|
135926
|
135927
|
135928
|
135929
|
135930
|
138221
|
138222
|
138224
|
138225
|
138226
|
138227
|
138228
|
138229
|
138230
|
141214
|
141215
|
141735
|
141736
|
141737
|
141738
|
141739
|
141740
|
141741
|
141742
|
141743
|
141744
|
141745
|
141746
|
141747
|
141748
|
141749
|
141750
|
142413
|
142414
|
142415
|
142416
|
142417
|
142418
|
142419
|
142420
|
142421
|
142422
|
142423
|
142424
|
142425
|
142426
|
142427
|
142428
|
142429
|
142430
|
142827
|
142955
|
142956
|
142957
|
142958
|
142959
|
142960
|
142961
|
142962
|
142963
|
142964
|
142965
|
142966
|
142967
|
142968
|
142969
|
142970
|
142971
|
142972
|
142973
|
142974
|
142975
|
142992
|
142993
|
142994
|
142995
|
142996
|
142997
|
142998
|
142999
|
143000
|
143001
|
143002
|
143003
|
143004
|
143005
|
143006
|
143007
|
143008
|
143009
|
143010
|
143011