From 60afc20ff202f66e6a00ca023d287c11f604ca66 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 7 Oct 2020 15:59:31 +0000 Subject: [PATCH] Bug 24488: (follow-up) Reduce repeated code --- circ/pendingreserves.pl | 109 +++++++----------------------------------------- 1 file changed, 16 insertions(+), 93 deletions(-) diff --git a/circ/pendingreserves.pl b/circ/pendingreserves.pl index 1d5cef3013..fb851d48c9 100755 --- a/circ/pendingreserves.pl +++ b/circ/pendingreserves.pl @@ -205,20 +205,17 @@ foreach my $bibnum ( @biblionumbers ){ my @issues = map { $_->itemnumber } Koha::Checkouts->search({}, { columns => [ 'itemnumber' ], collapse => 1 }); # get available item types for each biblio + my $res_items = Koha::Items->search( + { biblionumber => $bibnum, + itype => { '!=', undef }, + itemlost => 0, + withdrawn => 0, + notforloan => 0, + itemnumber => { -not_in => [ @branchtransfers, @issues ] }, + }); my $res_itemtypes; if ( C4::Context->preference('item-level_itypes') ){ - $res_itemtypes = Koha::Items->search( - { biblionumber => $bibnum, - itype => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'itype', - distinct => 1, - } - ); + $res_itemtypes = $res_items->search({},{ columns => 'itype', distinct => 1 }); } else { my $res_itemtypes = Koha::Biblioitems->search( { biblionumber => $bibnum, itemtype => { '!=', undef } }, @@ -230,105 +227,31 @@ foreach my $bibnum ( @biblionumbers ){ $reserves->{$bibnum}->{itemtypes} = $res_itemtypes; # get available locations for each biblio - my $res_locations = Koha::Items->search( - { biblionumber => $bibnum, - location => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'location', - distinct => 1, - } - ); + my $res_locations = $res_items->search({},{ columns => 'location', distinct => 1 }); $reserves->{$bibnum}->{locations} = $res_locations; # get available callnumbers for each biblio - my $res_callnumbers = Koha::Items->search( - { biblionumber => $bibnum, - itemcallnumber => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'itemcallnumber', - distinct => 1, - } - ); + my $res_callnumber = $res_items->search({},{ columns => 'itemcallnumber', distinct => 1 }); $reserves->{$bibnum}->{callnumbers} = $res_callnumbers; # get available enumchrons for each biblio - my $res_enumchrons = Koha::Items->search( - { biblionumber => $bibnum, - enumchron => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'enumchron', - distinct => 1, - } - ); + my $res_enumchrons = $res_items->search({},{ columns => 'enumchron', distinct => 1 }); $reserves->{$bibnum}->{enumchrons} = $res_enumchrons; # get available copynumbers for each biblio - my $res_copynumbers = Koha::Items->search( - { biblionumber => $bibnum, - copynumber => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'copynumber', - distinct => 1, - } - ); + my $res_copynumber = $res_items->search({},{ columns => 'copynumber', distinct => 1 }); $reserves->{$bibnum}->{copynumbers} = $res_copynumbers; # get available barcodes for each biblio - my $res_barcodes = Koha::Items->search( - { biblionumber => $bibnum, - barcode => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'barcode', - distinct => 1, - } - ); + my $res_barcodes = $res_items->search({},{ columns => 'barcode', distinct => 1 }); $reserves->{$bibnum}->{barcodes} = $res_barcodes; # get available holding branches for each biblio - my $res_holdingbranches = Koha::Items->search( - { biblionumber => $bibnum, - holdingbranch => { '!=', undef }, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { columns => 'holdingbranch', - distinct => 1, - } - ); + my $res_holdingbranches = $res_items->search({},{ columns => 'holdingbranch', distinct => 1 }); $reserves->{$bibnum}->{holdingbranches} = $res_holdingbranches; # items available - my $items_count = Koha::Items->search( - { biblionumber => $bibnum, - itemlost => 0, - withdrawn => 0, - notforloan => 0, - itemnumber => { -not_in => [ @branchtransfers, @issues ] }, - }, - { select => [ { distinct => 'itemnumber' } ] } - )->count; + my $items_count = $res_items->search({},{ columns => 'itemnumber', distinct => 1 })->count; $reserves->{$bibnum}->{items_count} = $items_count; # patrons with holds -- 2.11.0