Bug 20724: Move the ReservesNeedReturns logic to AddReserve
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 10 May 2018 14:40:11 +0000 (11:40 -0300)
committerFridolin Somers <fridolin.somers@biblibre.com>
Mon, 24 Sep 2018 13:07:22 +0000 (15:07 +0200)
Signed-off-by: Victor Grousset <victor.grousset@biblibre.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 1798d22e764bebf46e2915e1c0b7c3360ea8dd51)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 04ca9e923f4b5d0f0c8f78b9e08742b899dd7d3f)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

C4/Reserves.pm
opac/opac-reserve.pl
reserve/placerequest.pl

index 2f480ca..ec555c8 100644 (file)
@@ -178,6 +178,16 @@ sub AddReserve {
 
     $expdate = output_pref({ str => $expdate, dateonly => 1, dateformat => 'iso' });
 
+    # if we have an item selectionned, and the pickup branch is the same as the holdingbranch
+    # of the document, we force the value $priority and $found .
+    if ( $checkitem and not C4::Context->preference('ReservesNeedReturns') ) {
+        $priority = 0;
+        my $item = Koha::Items->find( $checkitem ); # FIXME Prevent bad calls
+        if ( $item->holdingbranch eq $branch ) {
+            $found = 'W';
+        }
+    }
+
     if ( C4::Context->preference('AllowHoldDateInFuture') ) {
 
         # Make room in reserves for this before those of a later reserve date
index 7de7b97..f1baf46 100755 (executable)
@@ -268,12 +268,6 @@ if ( $query->param('place_reserve') ) {
         my $rank = $biblioData->{rank};
         if ( $itemNum ne '' ) {
             $canreserve = 1 if CanItemBeReserved( $borrowernumber, $itemNum ) eq 'OK';
-            $rank = '0' unless C4::Context->preference('ReservesNeedReturns');
-            my $item = GetItem($itemNum);
-            if ( $item->{'holdingbranch'} eq $branch ) {
-                $found = 'W'
-                  unless C4::Context->preference('ReservesNeedReturns');
-            }
         }
         else {
             $canreserve = 1 if CanBookBeReserved( $borrowernumber, $biblioNum ) eq 'OK';
index 92f3c48..b5d4ed9 100755 (executable)
@@ -69,18 +69,6 @@ foreach my $bibnum (@biblionumbers) {
 
 my $found;
 
-# if we have an item selectionned, and the pickup branch is the same as the holdingbranch
-# of the document, we force the value $rank and $found .
-if (defined $checkitem && $checkitem ne ''){
-    $holds_to_place_count = 1;
-    $rank[0] = '0' unless C4::Context->preference('ReservesNeedReturns');
-    my $item = $checkitem;
-    $item = GetItem($item);
-    if ( $item->{'holdingbranch'} eq $branch ){
-        $found = 'W' unless C4::Context->preference('ReservesNeedReturns');
-    }
-}
-
 if ( $type eq 'str8' && $borrower ) {
 
     foreach my $biblionumber ( keys %bibinfos ) {