[Koha-patches] [[HEAD][reconciliation][replace]] Findgroupreserve update : Factorizing code
Henri-Damien LAURENT
henridamien.laurent at biblibre.com
Mon Aug 31 12:23:05 CEST 2009
---
C4/Reserves.pm | 52 +++++++++-------------------------------------------
1 files changed, 9 insertions(+), 43 deletions(-)
diff --git a/C4/Reserves.pm b/C4/Reserves.pm
index 11846e7..8fdd6e2 100644
--- a/C4/Reserves.pm
+++ b/C4/Reserves.pm
@@ -1259,8 +1259,8 @@ sub _Findgroupreserve {
my ( $bibitem, $biblio, $itemnumber ) = @_;
my $dbh = C4::Context->dbh;
- # TODO: consolidate at least the SELECT portion of the first 2 queries to a common $select var.
# check for exact targetted match
+ # This select is valid for both item_level and biblio_level
my $item_level_target_query = qq/
SELECT reserves.biblionumber AS biblionumber,
reserves.borrowernumber AS borrowernumber,
@@ -1275,48 +1275,16 @@ sub _Findgroupreserve {
reserves.itemnumber AS itemnumber
FROM reserves
JOIN biblioitems USING (biblionumber)
- JOIN hold_fill_targets USING (biblionumber, borrowernumber, itemnumber)
- WHERE found IS NULL
- AND priority > 0
- AND item_level_request = 1
- AND itemnumber = ?
- /;
- my $sth = $dbh->prepare($item_level_target_query);
- $sth->execute($itemnumber);
- my @results;
- if ( my $data = $sth->fetchrow_hashref ) {
- push( @results, $data );
- }
- return @results if @results;
-
- # check for title-level targetted match
- my $title_level_target_query = qq/
- SELECT reserves.biblionumber AS biblionumber,
- reserves.borrowernumber AS borrowernumber,
- reserves.reservedate AS reservedate,
- reserves.branchcode AS branchcode,
- reserves.cancellationdate AS cancellationdate,
- reserves.found AS found,
- reserves.reservenotes AS reservenotes,
- reserves.priority AS priority,
- reserves.timestamp AS timestamp,
- biblioitems.biblioitemnumber AS biblioitemnumber,
- reserves.itemnumber AS itemnumber
- FROM reserves
- JOIN biblioitems USING (biblionumber)
JOIN hold_fill_targets USING (biblionumber, borrowernumber)
WHERE found IS NULL
AND priority > 0
- AND item_level_request = 0
- AND hold_fill_targets.itemnumber = ?
+ AND holds_fill_targets.itemnumber = ?
+
/;
- $sth = $dbh->prepare($title_level_target_query);
+ my $sth = $dbh->prepare($item_level_target_query);
$sth->execute($itemnumber);
- @results = ();
- if ( my $data = $sth->fetchrow_hashref ) {
- push( @results, $data );
- }
- return @results if @results;
+ my $data = $sth->fetchall_arrayref({});
+ return @$data if ($data);
my $query = qq/
SELECT reserves.biblionumber AS biblionumber,
@@ -1341,11 +1309,9 @@ sub _Findgroupreserve {
/;
$sth = $dbh->prepare($query);
$sth->execute( $biblio, $bibitem, $itemnumber );
- @results = ();
- while ( my $data = $sth->fetchrow_hashref ) {
- push( @results, $data );
- }
- return @results;
+ $data = $sth->fetchall_arrayref({});
+ return @$data if ($data);
+ return undef;
}
=item _koha_notify_reserve
--
1.6.0.4
More information about the Koha-patches
mailing list