@@ -, +, @@
Koha::Biblio->holds
- C4::Biblio::DelBiblio
-tools/batch_delete_records.pl
- acqui/parcel.pl
- serials/routing-preview.pl
- C4::ILSDI::Services::GetRecords
- C4::SIP::ILS::Item->new
---
C4/Biblio.pm | 8 +++---
C4/ILSDI/Services.pm | 8 +++---
C4/SIP/ILS/Item.pm | 12 +++------
acqui/parcel.pl | 12 +++++----
catalogue/ISBDdetail.pl | 8 +++---
catalogue/MARCdetail.pl | 8 +++---
catalogue/detail.pl | 6 +++--
catalogue/imageviewer.pl | 8 +++---
catalogue/labeledMARCdetail.pl | 7 +++---
catalogue/moredetail.pl | 8 +++---
.../prog/en/modules/tools/batch_delete_records.tt | 4 +--
opac/opac-detail.pl | 18 ++++++++------
opac/opac-reserve.pl | 10 ++++----
serials/routing-preview.pl | 27 ++++++++++----------
t/db_dependent/Holds.t | 29 +++++++++++-----------
t/db_dependent/Reserves.t | 25 +++++++++----------
t/db_dependent/UsageStats.t | 7 +++---
tools/batch_delete_records.pl | 19 +++++++++-----
18 files changed, 123 insertions(+), 101 deletions(-)
--- a/C4/Biblio.pm
+++ a/C4/Biblio.pm
@@ -41,6 +41,7 @@ use C4::Debug;
use Koha::Caches;
use Koha::Authority::Types;
use Koha::Acquisition::Currencies;
+use Koha::Holds;
use Koha::SearchEngine;
use Koha::Libraries;
@@ -439,10 +440,11 @@ sub DelBiblio {
}
# We delete any existing holds
+ my $biblio = Koha::Biblios->find( $biblionumber );
+ my $holds = $biblio->holds;
require C4::Reserves;
- my $reserves = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber });
- foreach my $res ( @$reserves ) {
- C4::Reserves::CancelReserve({ reserve_id => $res->{'reserve_id'} });
+ while ( my $hold = $holds->next ) {
+ C4::Reserves::CancelReserve({ reserve_id => $hold->reserve_id }); # TODO Replace with $hold->cancel
}
# Delete in Zebra. Be careful NOT to move this line after _koha_delete_biblio
--- a/C4/ILSDI/Services.pm
+++ a/C4/ILSDI/Services.pm
@@ -25,7 +25,7 @@ use C4::Items;
use C4::Circulation;
use C4::Accounts;
use C4::Biblio;
-use C4::Reserves qw(AddReserve GetReservesFromBiblionumber GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved IsAvailableForItemLevelRequest);
+use C4::Reserves qw(AddReserve GetReservesFromBorrowernumber CanBookBeReserved CanItemBeReserved IsAvailableForItemLevelRequest);
use C4::Context;
use C4::AuthoritiesMarc;
use XML::Simple;
@@ -35,6 +35,7 @@ use DateTime;
use C4::Auth;
use C4::Members::Attributes qw(GetBorrowerAttributes);
+use Koha::Biblios;
use Koha::Libraries;
=head1 NAME
@@ -207,7 +208,8 @@ sub GetRecords {
# Get most of the needed data
my $biblioitemnumber = $biblioitem->{'biblioitemnumber'};
- my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber });
+ my $biblio = Koha::Biblios->find( $biblionumber );
+ my $holds = $biblio->holds_placed_before_today->unblessed;
my $issues = GetBiblioIssues($biblionumber);
my $items = GetItemsByBiblioitemnumber($biblioitemnumber);
@@ -226,7 +228,7 @@ sub GetRecords {
# Hashref building...
$biblioitem->{'items'}->{'item'} = $items;
- $biblioitem->{'reserves'}->{'reserve'} = $reserves;
+ $biblioitem->{'reserves'}->{'reserve'} = $holds;
$biblioitem->{'issues'}->{'issue'} = $issues;
push @records, $biblioitem;
--- a/C4/SIP/ILS/Item.pm
+++ a/C4/SIP/ILS/Item.pm
@@ -22,6 +22,7 @@ use C4::Circulation;
use C4::Members;
use C4::Reserves;
use Koha::Database;
+use Koha::Biblios;
=encoding UTF-8
@@ -65,12 +66,6 @@ use Koha::Database;
);
=cut
-sub priority_sort {
- defined $a->{priority} or return -1;
- defined $b->{priority} or return 1;
- return $a->{priority} <=> $b->{priority};
-}
-
sub new {
my ($class, $item_id) = @_;
my $type = ref($class) || $class;
@@ -99,8 +94,9 @@ sub new {
}
my $borrower = GetMember(borrowernumber=>$issue->{'borrowernumber'});
$item->{patron} = $borrower->{'cardnumber'};
- my $reserves = GetReservesFromBiblionumber({ biblionumber => $item->{biblionumber} });
- $item->{hold_queue} = [ sort priority_sort @$reserves ];
+ my $biblio = Koha::Biblios->find( $item->{biblionumber } );
+ my $holds = $biblio->holds_placed_before_today->unblessed;
+ $item->{hold_queue} = $holds;
$item->{hold_shelf} = [( grep { defined $_->{found} and $_->{found} eq 'W' } @{$item->{hold_queue}} )];
$item->{pending_queue} = [( grep {(! defined $_->{found}) or $_->{found} ne 'W' } @{$item->{hold_queue}} )];
$self = $item;
--- a/acqui/parcel.pl
+++ a/acqui/parcel.pl
@@ -65,10 +65,10 @@ use C4::Items;
use CGI qw ( -utf8 );
use C4::Output;
use C4::Suggestions;
-use C4::Reserves qw/GetReservesFromBiblionumber/;
use Koha::Acquisition::Bookseller;
use Koha::DateUtils;
+use Koha::Biblios;
use JSON;
@@ -139,10 +139,12 @@ for my $order ( @orders ) {
$line{invoice} = $invoice->{invoicenumber};
$line{holds} = 0;
my @itemnumbers = GetItemnumbersFromOrder( $order->{ordernumber} );
- for my $itemnumber ( @itemnumbers ) {
- my $holds = GetReservesFromBiblionumber({ biblionumber => $line{biblionumber}, itemnumber => $itemnumber });
- $line{holds} += scalar( @$holds );
- }
+ my $biblio = Koha::Biblios->find( $order->{ordernumber} );
+ $line{holds} = $biblio->holds_placed_before_today->search(
+ {
+ itemnumber => { -in => \@itemnumbers },
+ }
+ )->count;
$line{budget} = GetBudgetByOrderNumber( $line{ordernumber} );
$line{tax_value} = $line{tax_value_on_receiving};
--- a/catalogue/ISBDdetail.pl
+++ a/catalogue/ISBDdetail.pl
@@ -47,6 +47,8 @@ use C4::Members; # to use GetMember
use C4::Serials; # CountSubscriptionFromBiblionumber
use C4::Search; # enabled_staff_search_views
use C4::Acquisition qw(GetOrdersByBiblionumber);
+
+use Koha::Biblios;
use Koha::RecordProcessor;
@@ -165,9 +167,9 @@ $template->param (countorders => $count_orders_using_biblio);
my $count_deletedorders_using_biblio = scalar @deletedorders_using_biblio ;
$template->param (countdeletedorders => $count_deletedorders_using_biblio);
-my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
-my $holdcount = scalar( @$holds );
-$template->param( holdcount => scalar ( @$holds ) );
+my $biblio = Koha::Biblios->find( $biblionumber );
+my $holds = $biblio->holds;
+$template->param( holdcount => $holds->count );
output_html_with_http_headers $query, $cookie, $template->output;
--- a/catalogue/MARCdetail.pl
+++ a/catalogue/MARCdetail.pl
@@ -59,6 +59,8 @@ use C4::Acquisition;
use C4::Members; # to use GetMember
use C4::Serials; #uses getsubscriptionsfrombiblionumber GetSubscriptionsFromBiblionumber
use C4::Search; # enabled_staff_search_views
+
+use Koha::Biblios;
use Koha::BiblioFrameworks;
use List::MoreUtils qw( uniq );
@@ -340,8 +342,8 @@ $template->param (countorders => $count_orders_using_biblio);
my $count_deletedorders_using_biblio = scalar @deletedorders_using_biblio ;
$template->param (countdeletedorders => $count_deletedorders_using_biblio);
-my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
-my $holdcount = scalar( @$holds );
-$template->param( holdcount => scalar ( @$holds ) );
+$biblio = Koha::Biblios->find( $biblionumber );
+my $holds = $biblio->holds;
+$template->param( holdcount => $holds->count );
output_html_with_http_headers $query, $cookie, $template->output;
--- a/catalogue/detail.pl
+++ a/catalogue/detail.pl
@@ -42,6 +42,7 @@ use C4::HTML5Media;
use C4::CourseReserves qw(GetItemCourseReservesInfo);
use C4::Acquisition qw(GetOrdersByBiblionumber);
use Koha::AuthorisedValues;
+use Koha::Biblios;
use Koha::Patrons;
use Koha::Virtualshelves;
@@ -461,8 +462,9 @@ if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->pref
}
#we only need to pass the number of holds to the template
-my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
-$template->param( holdcount => scalar ( @$holds ) );
+my $biblio = Koha::Biblios->find( $biblionumber );
+my $holds = $biblio->holds;
+$template->param( holdcount => $holds->count );
my $StaffDetailItemSelection = C4::Context->preference('StaffDetailItemSelection');
if ($StaffDetailItemSelection) {
--- a/catalogue/imageviewer.pl
+++ a/catalogue/imageviewer.pl
@@ -29,6 +29,8 @@ use C4::Images;
use C4::Search;
use C4::Acquisition qw(GetOrdersByBiblionumber);
+use Koha::Biblios;
+
my $query = new CGI;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
@@ -107,8 +109,8 @@ $template->param (countorders => $count_orders_using_biblio);
my $count_deletedorders_using_biblio = scalar @deletedorders_using_biblio ;
$template->param (countdeletedorders => $count_deletedorders_using_biblio);
-my $holds= C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
-my $holdcount = scalar( @$holds );
-$template->param( holdcount => scalar ( @$holds ) );
+$biblio = Koha::Biblios->find( $biblionumber );
+my $holds = $biblio->holds;
+$template->param( holdcount => $holds->count );
output_html_with_http_headers $query, $cookie, $template->output;
--- a/catalogue/labeledMARCdetail.pl
+++ a/catalogue/labeledMARCdetail.pl
@@ -31,6 +31,7 @@ use C4::Members; # to use GetMember
use C4::Search; # enabled_staff_search_views
use C4::Acquisition qw(GetOrdersByBiblionumber);
+use Koha::Biblios;
use Koha::BiblioFrameworks;
my $query = new CGI;
@@ -151,8 +152,8 @@ $template->param (countorders => $count_orders_using_biblio);
my $count_deletedorders_using_biblio = scalar @deletedorders_using_biblio ;
$template->param (countdeletedorders => $count_deletedorders_using_biblio);
-my $holds= C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
-my $holdcount = scalar( @$holds );
-$template->param( holdcount => scalar ( @$holds ) );
+$biblio = Koha::Biblios->find( $biblionumber );
+my $holds = $biblio->holds;
+$template->param( holdcount => $holds->count );
output_html_with_http_headers $query, $cookie, $template->output;
--- a/catalogue/moredetail.pl
+++ a/catalogue/moredetail.pl
@@ -32,10 +32,10 @@ use C4::Auth;
use C4::Serials;
use C4::Members; # to use GetMember
use C4::Search; # enabled_staff_search_views
-use C4::Reserves qw(GetReservesFromBiblionumber);
use Koha::Acquisition::Bookseller;
use Koha::AuthorisedValues;
+use Koha::Biblios;
use Koha::DateUtils;
use Koha::Items;
use Koha::Patrons;
@@ -258,9 +258,9 @@ $template->param (countorders => $count_orders_using_biblio);
my $count_deletedorders_using_biblio = scalar @deletedorders_using_biblio ;
$template->param (countdeletedorders => $count_deletedorders_using_biblio);
-my $holds = GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
-my $holdcount = scalar( @$holds );
-$template->param( holdcount => scalar ( @$holds ) );
+my $biblio = Koha::Biblios->find( $biblionumber );
+my $holds = $biblio->holds;
+$template->param( holdcount => $holds->count );
output_html_with_http_headers $query, $cookie, $template->output;
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_delete_records.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_delete_records.tt
@@ -173,11 +173,11 @@ $(document).ready(function() {
[% FOR biblio IN records %]
-
+
[% INCLUDE 'biblio-default-view.inc' biblionumber=biblio.biblionumber %][% biblio.title %][% IF ( biblio.subtitle ) %][% FOREACH subtitle IN biblio.subtitle %] [% subtitle.subfield |html %][% END %][% END %]