| Lines 532-541
          sub bookings {
      
      
        Link Here | 
        
          | 532 |  | 532 |  | 
        
          | 533 | Find the first booking that would conflict with the passed checkout dates for this item. | 533 | Find the first booking that would conflict with the passed checkout dates for this item. | 
        
          | 534 |  | 534 |  | 
          
            
              | 535 | FIXME: This can be simplified, it was originally intended to iterate all biblio level bookings  | 535 | FIXME: This can be simplified, it was originally intended to iterate all biblio level bookings | 
        
          | 536 | to catch cases where this item may be the last available to satisfy a biblio level only booking. | 536 | to catch cases where this item may be the last available to satisfy a biblio level only booking. | 
          
            
              | 537 | However, we dropped the biblio level functionality prior to push as bugs were found in it's  | 537 | However, we dropped the biblio level functionality prior to push as bugs were found in it's | 
            
              | 538 | implimentation. | 538 | implementation. | 
        
          | 539 |  | 539 |  | 
        
          | 540 | =cut | 540 | =cut | 
        
          | 541 |  | 541 |  | 
  
    | Lines 662-708
          sub check_booking {
      
      
        Link Here | 
        
          | 662 |     return $bookings_count ? 0 : 1; | 662 |     return $bookings_count ? 0 : 1; | 
        
          | 663 | } | 663 | } | 
        
          | 664 |  | 664 |  | 
            
              | 665 | =head3 place_booking |  |  | 
            
              | 666 |  | 
            
              | 667 |   my $booking = $item->place_booking( | 
            
              | 668 |     { | 
            
              | 669 |         patron     => $patron, | 
            
              | 670 |         start_date => $datetime, | 
            
              | 671 |         end_date   => $datetime | 
            
              | 672 |     } | 
            
              | 673 |   ); | 
            
              | 674 |  | 
            
              | 675 | Add a booking for this item for the dates passed. | 
            
              | 676 |  | 
            
              | 677 | Returns the Koha::Booking object or throws an exception if the item cannot be booked for the given dates. | 
            
              | 678 |  | 
            
              | 679 | =cut | 
            
              | 680 |  | 
            
              | 681 | sub place_booking { | 
            
              | 682 |     my ( $self, $params ) = @_; | 
            
              | 683 |  | 
            
              | 684 |     # check for mandatory params | 
            
              | 685 |     my @mandatory = ( 'start_date', 'end_date', 'patron' ); | 
            
              | 686 |     for my $param (@mandatory) { | 
            
              | 687 |         unless ( defined( $params->{$param} ) ) { | 
            
              | 688 |             Koha::Exceptions::MissingParameter->throw( error => "The $param parameter is mandatory" ); | 
            
              | 689 |         } | 
            
              | 690 |     } | 
            
              | 691 |     my $patron = $params->{patron}; | 
            
              | 692 |  | 
            
              | 693 |     # New booking object | 
            
              | 694 |     my $booking = Koha::Booking->new( | 
            
              | 695 |         { | 
            
              | 696 |             start_date => $params->{start_date}, | 
            
              | 697 |             end_date   => $params->{end_date}, | 
            
              | 698 |             patron_id  => $patron->borrowernumber, | 
            
              | 699 |             biblio_id  => $self->biblionumber, | 
            
              | 700 |             item_id    => $self->itemnumber, | 
            
              | 701 |         } | 
            
              | 702 |     )->store(); | 
            
              | 703 |     return $booking; | 
            
              | 704 | } | 
            
              | 705 |  | 
        
          | 706 | =head3 request_transfer | 665 | =head3 request_transfer | 
        
          | 707 |  | 666 |  | 
        
          | 708 |   my $transfer = $item->request_transfer( | 667 |   my $transfer = $item->request_transfer( | 
            
              | 709 | -  |  |  |