From 6e4cc41e90adcb440a005c3ff582a4cb84c7ecd5 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 20 Dec 2013 17:09:22 +0100 Subject: [PATCH] Bug 11336: WIP add GetOldReserve --- C4/Reserves.pm | 28 ++++++++++++++++++++-------- t/db_dependent/Holds.t | 5 ++++- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 5a91d27..9532a74 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -95,6 +95,7 @@ BEGIN { &AddReserve &GetReserve + &GetOldReserve &GetReservesFromItemnumber &GetReservesFromBiblionumber &GetReservesFromBorrowernumber @@ -252,7 +253,7 @@ sub AddReserve { $res = GetReserve( $reserve_id ); - Return the current reserve or the old reserve. + Return the current reserve. =cut @@ -263,15 +264,24 @@ sub GetReserve { my $query = "SELECT * FROM reserves WHERE reserve_id = ?"; my $sth = $dbh->prepare( $query ); $sth->execute( $reserve_id ); - my $res = $sth->fetchrow_hashref(); + return $sth->fetchrow_hashref(); +} - unless ( $res ) { - $res = $dbh->selectrow_hashref(q| - SELECT * FROM old_reserves WHERE reserve_id = ? - |, {}, $reserve_id); - } +=head2 GetOldReserve + + $res = GetOldReserve( $reserve_id ); + + Return a old reserve. + +=cut + +sub GetOldReserve { + my ($reserve_id) = @_; - return $res; + my $dbh = C4::Context->dbh; + return $dbh->selectrow_hashref(q| + SELECT * FROM old_reserves WHERE reserve_id = ? + |, {}, $reserve_id); } =head2 GetReservesFromBiblionumber @@ -1618,6 +1628,8 @@ sub _FixPriority { my $res = GetReserve( $reserve_id ); + $res = GetOldReserve( $reserve_id ) unless $res; + if ( $rank eq "del" ) { CancelReserve({ reserve_id => $reserve_id }); } diff --git a/t/db_dependent/Holds.t b/t/db_dependent/Holds.t index 2c28c07..bae31cb 100755 --- a/t/db_dependent/Holds.t +++ b/t/db_dependent/Holds.t @@ -6,7 +6,7 @@ use t::lib::Mocks; use C4::Context; use C4::Branch; -use Test::More tests => 25; +use Test::More tests => 26; use MARC::Record; use C4::Biblio; use C4::Items; @@ -278,6 +278,9 @@ ModReserve({ reserve_id => $reserveid2, rank => 'del' }); $reserve3 = GetReserve( $reserveid3 ); is( $reserve3->{priority}, 1, "After ModReserve, the 3rd reserve becomes the first on the waiting list" ); +my $oldreserve2 = GetOldReserve( $reserveid2 ); +is_deeply( $oldreserve2->{reserve_id}, $reserve2->{reserve_id} ); + # Helper method to set up a Biblio. sub create_helper_biblio { -- 1.7.10.4