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