| 
      
            Lines 22-27
          use Modern::Perl;
      
      
        Link Here
      
     | 
  
        
          | 22 | 
           | 
          22 | 
           | 
        
        
          | 23 | 
          use Carp;  | 
          23 | 
          use Carp;  | 
        
        
          | 24 | 
          use Data::Dumper qw(Dumper);  | 
          24 | 
          use Data::Dumper qw(Dumper);  | 
        
            
               | 
               | 
              25 | 
              use List::MoreUtils qw(any);  | 
            
        
          | 25 | 
           | 
          26 | 
           | 
        
        
          | 26 | 
          use C4::Context qw(preference);  | 
          27 | 
          use C4::Context qw(preference);  | 
        
        
          | 27 | 
          use C4::Letters;  | 
          28 | 
          use C4::Letters;  | 
        
  
    | 
      
            Lines 221-226
          sub set_waiting {
      
      
        Link Here
      
     | 
  
        
          | 221 | 
              return $self;  | 
          222 | 
              return $self;  | 
        
        
          | 222 | 
          }  | 
          223 | 
          }  | 
        
        
          | 223 | 
           | 
          224 | 
           | 
        
            
               | 
               | 
              225 | 
              =head3 set_pickup_location  | 
            
            
              | 226 | 
               | 
            
            
              | 227 | 
                  $hold->set_pickup_location({ library_id => $library->id }); | 
            
            
              | 228 | 
               | 
            
            
              | 229 | 
              Updates the hold pickup location. It throws a I<Koha::Exceptions::Hold::InvalidPickupLocation> if  | 
            
            
              | 230 | 
              the passed pickup location is not valid.  | 
            
            
              | 231 | 
               | 
            
            
              | 232 | 
              =cut  | 
            
            
              | 233 | 
               | 
            
            
              | 234 | 
              sub set_pickup_location { | 
            
            
              | 235 | 
                  my ( $self, $params ) = @_;  | 
            
            
              | 236 | 
               | 
            
            
              | 237 | 
                  Koha::Exceptions::MissingParameter->throw('The library_id parameter is mandatory') | 
            
            
              | 238 | 
                      unless $params->{library_id}; | 
            
            
              | 239 | 
               | 
            
            
              | 240 | 
                  my @pickup_locations;  | 
            
            
              | 241 | 
               | 
            
            
              | 242 | 
                  if ( $self->itemnumber ) { # item-level | 
            
            
              | 243 | 
                      @pickup_locations = $self->item->pickup_locations({ patron => $self->patron }); | 
            
            
              | 244 | 
                  }  | 
            
            
              | 245 | 
                  else { # biblio-level | 
            
            
              | 246 | 
                      @pickup_locations = $self->biblio->pickup_locations({ patron => $self->patron }); | 
            
            
              | 247 | 
                  }  | 
            
            
              | 248 | 
               | 
            
            
              | 249 | 
                  if ( any { $_->branchcode eq $params->{library_id} } @pickup_locations ) { | 
            
            
              | 250 | 
                      # all good, set the new pickup location  | 
            
            
              | 251 | 
                      $self->branchcode( $params->{library_id} )->store; | 
            
            
              | 252 | 
                  }  | 
            
            
              | 253 | 
                  else { | 
            
            
              | 254 | 
                      Koha::Exceptions::Hold::InvalidPickupLocation->throw;  | 
            
            
              | 255 | 
                  }  | 
            
            
              | 256 | 
               | 
            
            
              | 257 | 
                  return $self;  | 
            
            
              | 258 | 
              }  | 
            
            
              | 259 | 
               | 
            
        
          | 224 | 
          =head3 set_processing  | 
          260 | 
          =head3 set_processing  | 
        
        
          | 225 | 
           | 
          261 | 
           | 
        
        
          | 226 | 
          $hold->set_processing;  | 
          262 | 
          $hold->set_processing;  | 
        
            
              | 227 | 
              -   | 
               | 
               |