| Lines 137-144
          BEGIN {
      
      
        Link Here | 
        
          | 137 |         GetMaxPatronHoldsForRecord | 137 |         GetMaxPatronHoldsForRecord | 
        
          | 138 |  | 138 |  | 
        
          | 139 |         MergeHolds | 139 |         MergeHolds | 
            
              | 140 |  |  |  | 
            
              | 141 |         RevertWaitingStatus | 
        
          | 142 |     ); | 140 |     ); | 
        
          | 143 | } | 141 | } | 
        
          | 144 |  | 142 |  | 
  
    | Lines 2084-2093
          sub MoveReserve {
      
      
        Link Here | 
        
          | 2084 |             $hold->fill( { item_id => $item->id } ); | 2082 |             $hold->fill( { item_id => $item->id } ); | 
        
          | 2085 |         } | 2083 |         } | 
        
          | 2086 |  | 2084 |  | 
          
            
              | 2087 |         if ( $cancelreserve eq 'revert' ) {    ## Revert waiting reserve to priority 1 | 2085 |         $hold = Koha::Holds->find( $res->{reserve_id} ); | 
            
              | 2088 |             RevertWaitingStatus( { itemnumber => $item->id } ); | 2086 |         if ( $cancelreserve eq 'revert' ) { | 
            
              |  |  | 2087 |             $hold->revert_waiting(); | 
        
          | 2089 |         } elsif ( $cancelreserve eq 'cancel' || $cancelreserve ) {    # cancel reserves on this item | 2088 |         } elsif ( $cancelreserve eq 'cancel' || $cancelreserve ) {    # cancel reserves on this item | 
            
              | 2090 |             my $hold = Koha::Holds->find( $res->{reserve_id} ); |  |  | 
        
          | 2091 |             $hold->cancel; | 2089 |             $hold->cancel; | 
        
          | 2092 |         } | 2090 |         } | 
        
          | 2093 |     } | 2091 |     } | 
  
    | Lines 2134-2198
          sub MergeHolds {
      
      
        Link Here | 
        
          | 2134 |     } | 2132 |     } | 
        
          | 2135 | } | 2133 | } | 
        
          | 2136 |  | 2134 |  | 
            
              | 2137 | =head2 RevertWaitingStatus |  |  | 
            
              | 2138 |  | 
            
              | 2139 |   RevertWaitingStatus({ itemnumber => $itemnumber }); | 
            
              | 2140 |  | 
            
              | 2141 |   Reverts a 'waiting' hold back to a regular hold with a priority of 1. | 
            
              | 2142 |  | 
            
              | 2143 |   Caveat: Any waiting hold fixed with RevertWaitingStatus will be an | 
            
              | 2144 |           item level hold, even if it was only a bibliolevel hold to | 
            
              | 2145 |           begin with. This is because we can no longer know if a hold | 
            
              | 2146 |           was item-level or bib-level after a hold has been set to | 
            
              | 2147 |           waiting status. | 
            
              | 2148 |  | 
            
              | 2149 | =cut | 
            
              | 2150 |  | 
            
              | 2151 | sub RevertWaitingStatus { | 
            
              | 2152 |     my ($params) = @_; | 
            
              | 2153 |     my $itemnumber = $params->{'itemnumber'}; | 
            
              | 2154 |  | 
            
              | 2155 |     return unless ($itemnumber); | 
            
              | 2156 |  | 
            
              | 2157 |     my $dbh = C4::Context->dbh; | 
            
              | 2158 |  | 
            
              | 2159 |     ## Get the waiting reserve we want to revert | 
            
              | 2160 |     my $hold = Koha::Holds->search( | 
            
              | 2161 |         { | 
            
              | 2162 |             itemnumber => $itemnumber, | 
            
              | 2163 |             found      => { not => undef }, | 
            
              | 2164 |         } | 
            
              | 2165 |     )->next; | 
            
              | 2166 |  | 
            
              | 2167 |     my $original = C4::Context->preference('HoldsLog') ? $hold->unblessed : undef; | 
            
              | 2168 |  | 
            
              | 2169 |     ## Increment the priority of all other non-waiting | 
            
              | 2170 |     ## reserves for this bib record | 
            
              | 2171 |     my $holds = Koha::Holds->search( { biblionumber => $hold->biblionumber, priority => { '>' => 0 } } ) | 
            
              | 2172 |         ->update( { priority => \'priority + 1' }, { no_triggers => 1 } ); | 
            
              | 2173 |  | 
            
              | 2174 |     ## Fix up the currently waiting reserve | 
            
              | 2175 |     $hold->set( | 
            
              | 2176 |         { | 
            
              | 2177 |             priority       => 1, | 
            
              | 2178 |             found          => undef, | 
            
              | 2179 |             waitingdate    => undef, | 
            
              | 2180 |             expirationdate => $hold->patron_expiration_date, | 
            
              | 2181 |             itemnumber     => $hold->item_level_hold ? $hold->itemnumber : undef, | 
            
              | 2182 |         } | 
            
              | 2183 |     )->store( { hold_reverted => 1 } ); | 
            
              | 2184 |  | 
            
              | 2185 |     logaction( 'HOLDS', 'MODIFY', $hold->id, $hold, undef, $original ) | 
            
              | 2186 |         if C4::Context->preference('HoldsLog'); | 
            
              | 2187 |  | 
            
              | 2188 |     _FixPriority( { biblionumber => $hold->biblionumber } ); | 
            
              | 2189 |  | 
            
              | 2190 |     Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue->new->enqueue( { biblio_ids => [ $hold->biblionumber ] } ) | 
            
              | 2191 |         if C4::Context->preference('RealTimeHoldsQueue'); | 
            
              | 2192 |  | 
            
              | 2193 |     return $hold; | 
            
              | 2194 | } | 
            
              | 2195 |  | 
        
          | 2196 | =head2 ReserveSlip | 2135 | =head2 ReserveSlip | 
        
          | 2197 |  | 2136 |  | 
        
          | 2198 | ReserveSlip( | 2137 | ReserveSlip( |