| 
      
            Lines 577-605
          sub MapItemsToHoldRequests {
      
      
        Link Here
      
     | 
  
        
          | 577 | 
                      $pull_branches = [keys %items_by_branch];  | 
          577 | 
                      $pull_branches = [keys %items_by_branch];  | 
        
        
          | 578 | 
                      $holdingbranch = least_cost_branch( $pickup_branch, $pull_branches, $transport_cost_matrix );  | 
          578 | 
                      $holdingbranch = least_cost_branch( $pickup_branch, $pull_branches, $transport_cost_matrix );  | 
        
        
          | 579 | 
                      if ( $holdingbranch ) { | 
          579 | 
                      if ( $holdingbranch ) { | 
        
          
            
              | 580 | 
               | 
              580 | 
                              $itemnumber = get_least_cost_item( $priority_branch, $holdingbranch, \%items_by_branch, \%items_by_itemnumber, $libraries, $request );  | 
            
            
              | 581 | 
                              my $holding_branch_items = $items_by_branch{$holdingbranch}; | 
               | 
               | 
            
            
              | 582 | 
                              foreach my $item (@$holding_branch_items) { | 
            
            
              | 583 | 
                                  next if $request->{borrowerbranch} ne $item->{$priority_branch}; | 
            
            
              | 584 | 
                                  next unless $items_by_itemnumber{ $item->{itemnumber} }->{_object}->can_be_transferred( { to => $libraries->{ $request->{branchcode} } } ); | 
            
            
              | 585 | 
               | 
            
            
              | 586 | 
                                  # Don't fill item level holds that contravene the hold pickup policy at this time  | 
            
            
              | 587 | 
                                  next unless _checkHoldPolicy($item, $request);  | 
            
            
              | 588 | 
               | 
            
            
              | 589 | 
                                  # If hold itemtype is set, item's itemtype must match  | 
            
            
              | 590 | 
                                  next unless ( !$request->{itemtype} | 
            
            
              | 591 | 
                                      || $item->{itype} eq $request->{itemtype} ); | 
            
            
              | 592 | 
               | 
            
            
              | 593 | 
                                  # If hold item_group is set, item's item_group must match  | 
            
            
              | 594 | 
                                  next unless (  | 
            
            
              | 595 | 
                                      !$request->{item_group_id} | 
            
            
              | 596 | 
                                      || (   $item->{_object}->item_group | 
            
            
              | 597 | 
                                          && $item->{_object}->item_group->id eq $request->{item_group_id} ) | 
            
            
              | 598 | 
                                  );  | 
            
            
              | 599 | 
               | 
            
            
              | 600 | 
                                  $itemnumber = $item->{itemnumber}; | 
            
            
              | 601 | 
                                  last;  | 
            
            
              | 602 | 
                              }  | 
            
        
          | 603 | 
                      }  | 
          581 | 
                      }  | 
        
        
          | 604 | 
                      else { | 
          582 | 
                      else { | 
        
        
          | 605 | 
                          next;  | 
          583 | 
                          next;  | 
        
  
    | 
      
            Lines 959-962
          sub update_queue_for_biblio {
      
      
        Link Here
      
     | 
  
        
          | 959 | 
              return $result;  | 
          937 | 
              return $result;  | 
        
        
          | 960 | 
          }  | 
          938 | 
          }  | 
        
        
          | 961 | 
           | 
          939 | 
           | 
        
            
               | 
               | 
              940 | 
              sub get_least_cost_item { | 
            
            
              | 941 | 
                  my ( $priority_branch, $holdingbranch, $items_by_branch, $items_by_itemnumber, $libraries, $request ) = @_;  | 
            
            
              | 942 | 
                  my $holding_branch_items = $items_by_branch->{$holdingbranch}; | 
            
            
              | 943 | 
                  foreach my $item (@$holding_branch_items) { | 
            
            
              | 944 | 
                      next if $request->{borrowerbranch} ne $item->{$priority_branch}; | 
            
            
              | 945 | 
                      next  | 
            
            
              | 946 | 
                          unless $items_by_itemnumber->{ $item->{itemnumber} }->{_object} | 
            
            
              | 947 | 
                          ->can_be_transferred( { to => $libraries->{ $request->{branchcode} } } ); | 
            
            
              | 948 | 
               | 
            
            
              | 949 | 
                      # Don't fill item level holds that contravene the hold pickup policy at this time  | 
            
            
              | 950 | 
                      next unless _checkHoldPolicy( $item, $request );  | 
            
            
              | 951 | 
               | 
            
            
              | 952 | 
                      # If hold itemtype is set, item's itemtype must match  | 
            
            
              | 953 | 
                      next unless ( !$request->{itemtype} | 
            
            
              | 954 | 
                          || $item->{itype} eq $request->{itemtype} ); | 
            
            
              | 955 | 
               | 
            
            
              | 956 | 
                      # If hold item_group is set, item's item_group must match  | 
            
            
              | 957 | 
                      next  | 
            
            
              | 958 | 
                          unless (  | 
            
            
              | 959 | 
                          !$request->{item_group_id} | 
            
            
              | 960 | 
                          || (   $item->{_object}->item_group | 
            
            
              | 961 | 
                              && $item->{_object}->item_group->id eq $request->{item_group_id} ) | 
            
            
              | 962 | 
                          );  | 
            
            
              | 963 | 
               | 
            
            
              | 964 | 
                      return $item->{itemnumber}; | 
            
            
              | 965 | 
                  }  | 
            
            
              | 966 | 
              }  | 
            
            
              | 967 | 
               | 
            
        
          | 962 | 
          1;  | 
          968 | 
          1;  | 
        
            
              | 963 | 
              -   | 
               | 
               |