From 094bd6b936d9f1fb502f744582d4db45596d7c2d Mon Sep 17 00:00:00 2001 From: Katrin Fischer Date: Thu, 8 Aug 2013 11:11:49 +0200 Subject: [PATCH] Bug 10697: Revert from using GetReserveStatus to use CheckReserves Patch reverts switch from CheckReserves to GetReserveStatus done by 9367 in various places. Note: You will need the patches from bug 10663 to check renewal related functionality. Note: When the check is only done for "Waiting" it will work the same before and after applying this patch as this part of GetReserveStatus works fine. In order to test this, create item and title level holds on some records, make sure that there are holds not yet pulled and items waiting for pickup in the library. Search.pm - searchResult XSLT.pm - buildKohaItemsNamespace Check item status in search result list are shown correctly using XSLT and non-XSLT views. Only checked for 'Waiting', so verify no regressions. opac-detail.pl Check on item status is shown correctly on detail pages in OPAC. if( $reserve_status eq "Reserved"){ $itm->{'onhold'} = 1; } seems to be not used, verify no regressions. circulation.pl - build_issue_data opac-user.pl Check items on hold are properly marked in the list of checkouts and can not be renewed for - patron account pages in the staff interface - patron account pages in the OPAC $it->{'renew_error'} = ( $restype eq "Waiting" or $restype eq "Reserved" ) ? 1 : 0; seems to be not used, verify no regressions. Run unit tests from first patch and any additional tests you can think of. Signed-off-by: Katrin Fischer --- C4/Search.pm | 5 +++-- C4/XSLT.pm | 2 +- circ/circulation.pl | 3 ++- opac/opac-detail.pl | 3 ++- opac/opac-user.pl | 2 +- t/db_dependent/Reserves.t | 6 +++--- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/C4/Search.pm b/C4/Search.pm index aec024b..d154d81 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -28,7 +28,7 @@ use C4::Dates qw(format_date); use C4::Members qw(GetHideLostItemsPreference); use C4::XSLT; use C4::Branch; -use C4::Reserves; # GetReserveStatus +use C4::Reserves; # CheckReserves use C4::Debug; use C4::Charset; use YAML; @@ -1901,6 +1901,7 @@ sub searchResults { # is item on the reserve shelf? my $reservestatus = ''; + my $reserveitem; unless ($item->{wthdrawn} || $item->{itemlost} @@ -1921,7 +1922,7 @@ sub searchResults { # should map transit status to record indexed in Zebra. # ($transfertwhen, $transfertfrom, $transfertto) = C4::Circulation::GetTransfers($item->{itemnumber}); - $reservestatus = C4::Reserves::GetReserveStatus( $item->{itemnumber}, $oldbiblio->{biblionumber} ); + ($reservestatus, $reserveitem, undef) = C4::Reserves::CheckReserves( $item->{itemnumber}, $oldbiblio->{biblionumber} ); } # item is withdrawn, lost, damaged, not for loan, reserved or in transit diff --git a/C4/XSLT.pm b/C4/XSLT.pm index 53f07d3..710616a 100644 --- a/C4/XSLT.pm +++ b/C4/XSLT.pm @@ -264,7 +264,7 @@ sub buildKohaItemsNamespace { my ( $transfertwhen, $transfertfrom, $transfertto ) = C4::Circulation::GetTransfers($item->{itemnumber}); - my $reservestatus = C4::Reserves::GetReserveStatus( $item->{itemnumber} ); + my ( $reservestatus, $reserveitem, undef ) = C4::Reserves::CheckReserves($item->{itemnumber}); if ( $itemtypes->{ $item->{itype} }->{notforloan} || $item->{notforloan} || $item->{onloan} || $item->{wthdrawn} || $item->{itemlost} || $item->{damaged} || (defined $transfertwhen && $transfertwhen ne '') || $item->{itemnotforloan} || (defined $reservestatus && $reservestatus eq "Waiting") ){ diff --git a/circ/circulation.pl b/circ/circulation.pl index efd533e..c9f46b7 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -488,7 +488,8 @@ sub build_issue_data { $it->{'borrowernumber'},$it->{'itemnumber'} ); $it->{"renew_error_${can_renew_error}"} = 1 if defined $can_renew_error; - my $restype = C4::Reserves::GetReserveStatus( $it->{'itemnumber'} ); + my ( $restype, $reserves, undef ) = CheckReserves( $it->{'itemnumber'} ); + $it->{'can_renew'} = $can_renew; $it->{'can_confirm'} = !$can_renew && !$restype; $it->{'renew_error'} = ( $restype eq "Waiting" or $restype eq "Reserved" ) ? 1 : 0; diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 9d0851f..8e84a84 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -589,7 +589,8 @@ for my $itm (@items) { $itm->{'lostimageurl'} = $lostimageinfo->{ 'imageurl' }; $itm->{'lostimagelabel'} = $lostimageinfo->{ 'label' }; } - my $reserve_status = C4::Reserves::GetReserveStatus($itm->{itemnumber}); + + my ( $reserve_status, $res, undef ) = CheckReserves( $itm->{'itemnumber'} ); if( $reserve_status eq "Waiting"){ $itm->{'waiting'} = 1; } if( $reserve_status eq "Reserved"){ $itm->{'onhold'} = 1; } diff --git a/opac/opac-user.pl b/opac/opac-user.pl index 5c01ae2..8c8186e 100755 --- a/opac/opac-user.pl +++ b/opac/opac-user.pl @@ -158,7 +158,7 @@ my $issues = GetPendingIssues($borrowernumber); if ($issues){ foreach my $issue ( sort { $b->{date_due}->datetime() cmp $a->{date_due}->datetime() } @{$issues} ) { # check for reserves - my $restype = GetReserveStatus( $issue->{'itemnumber'} ); + my ( $restype, $res, undef ) = CheckReserves( $issue->{'itemnumber'} ); if ( $restype ) { $issue->{'reserved'} = 1; } diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t index 089976c..7916b72 100755 --- a/t/db_dependent/Reserves.t +++ b/t/db_dependent/Reserves.t @@ -107,7 +107,7 @@ $biblionumber = $bibnum2; AddReserve ($branch, $borrowernumber, $biblionumber, $constraint, $bibitems, $priority, $resdate, $expdate, $notes, $title, $checkitem, $found); - + ($status, $reserve, $all_reserves) = CheckReserves($itemnumber2); is($status, "Reserved", "Reserved - item level hold, still on shelf"); @@ -160,7 +160,7 @@ AddReserve ($branch, $borrowernumber, $biblionumber, # Check first item ($status, $reserve, $all_reserves) = CheckReserves($itemnumber2); -is($status, "Reserved", "Reserved - item level hold on this item"); +is($status, "Reserved", "Reserved - item level hold on this item"); # Check second item ($status, $reserve, $all_reserves) = CheckReserves($itemnumber3); @@ -177,7 +177,7 @@ AddReserve ($branch, $borrowernumber, $biblionumber, $title, undef, $found); ($status, $reserve, $all_reserves) = CheckReserves($itemnumber2); -is($status, "Reserved", "Reserved - first item can fill title level hold"); +is($status, "Reserved", "Reserved - first item can fill title level hold"); ($status, $reserve, $all_reserves) = CheckReserves($itemnumber2); is($status, "Reserved", "Reserved - second item can also fill title level hold"); -- 1.7.10.4