| 
      
            Lines 46-51
          BEGIN {
      
      
        Link Here
      
     | 
  
        
          | 46 | 
           | 
          46 | 
           | 
        
        
          | 47 | 
                  &TransportCostMatrix  | 
          47 | 
                  &TransportCostMatrix  | 
        
        
          | 48 | 
                  &UpdateTransportCostMatrix  | 
          48 | 
                  &UpdateTransportCostMatrix  | 
        
            
               | 
               | 
              49 | 
               | 
            
            
              | 50 | 
                      &MarkHoldPrinted  | 
            
            
              | 51 | 
                      &GetItemNumberFromTmpHold  | 
            
        
          | 49 | 
               );  | 
          52 | 
               );  | 
        
        
          | 50 | 
          }  | 
          53 | 
          }  | 
        
        
          | 51 | 
           | 
          54 | 
           | 
        
  
    | 
      
            Lines 116-122
          Returns hold queue for a holding branch. If branch is omitted, then whole queue
      
      
        Link Here
      
     | 
  
        
          | 116 | 
          =cut  | 
          119 | 
          =cut  | 
        
        
          | 117 | 
           | 
          120 | 
           | 
        
        
          | 118 | 
          sub GetHoldsQueueItems { | 
          121 | 
          sub GetHoldsQueueItems { | 
        
          
            
              | 119 | 
                  my ($branchlimit) = @_;  | 
              122 | 
                  my ($branchlimit, $printstatus) = @_;  | 
            
        
          | 120 | 
              my $dbh   = C4::Context->dbh;  | 
          123 | 
              my $dbh   = C4::Context->dbh;  | 
        
        
          | 121 | 
           | 
          124 | 
           | 
        
        
          | 122 | 
              my @bind_params = ();  | 
          125 | 
              my @bind_params = ();  | 
        
  
    | 
      
            Lines 130-135
          sub GetHoldsQueueItems {
      
      
        Link Here
      
     | 
  
        
          | 130 | 
                  $query .=" WHERE tmp_holdsqueue.holdingbranch = ?";  | 
          133 | 
                  $query .=" WHERE tmp_holdsqueue.holdingbranch = ?";  | 
        
        
          | 131 | 
                  push @bind_params, $branchlimit;  | 
          134 | 
                  push @bind_params, $branchlimit;  | 
        
        
          | 132 | 
              }  | 
          135 | 
              }  | 
        
            
               | 
               | 
              136 | 
                  if (C4::Context->preference('printSlipFromHoldsQueue')){ | 
            
            
              | 137 | 
                      $query .= $branchlimit ? " AND" : " WHERE";  | 
            
            
              | 138 | 
                      $query .= " tmp_holdsqueue.print_status = ?";  | 
            
            
              | 139 | 
                      push @bind_params, $printstatus;  | 
            
            
              | 140 | 
                  }  | 
            
        
          | 133 | 
              $query .= " ORDER BY ccode, location, cn_sort, author, title, pickbranch, reservedate";  | 
          141 | 
              $query .= " ORDER BY ccode, location, cn_sort, author, title, pickbranch, reservedate";  | 
        
        
          | 134 | 
              my $sth = $dbh->prepare($query);  | 
          142 | 
              my $sth = $dbh->prepare($query);  | 
        
        
          | 135 | 
              $sth->execute(@bind_params);  | 
          143 | 
              $sth->execute(@bind_params);  | 
        
  
    | 
      
            Lines 267-274
          sub GetPendingHoldRequestsForBib {
      
      
        Link Here
      
     | 
  
        
          | 267 | 
           | 
          275 | 
           | 
        
        
          | 268 | 
              my $dbh = C4::Context->dbh;  | 
          276 | 
              my $dbh = C4::Context->dbh;  | 
        
        
          | 269 | 
           | 
          277 | 
           | 
        
          
            
              | 270 | 
                  my $request_query = "SELECT biblionumber, borrowernumber, itemnumber, priority, reserves.branchcode,  | 
              278 | 
                  my $request_query = "SELECT reserve_id, biblionumber, borrowernumber, itemnumber, priority, reserves.branchcode,  | 
            
            
              | 271 | 
                                              reservedate, reservenotes, borrowers.branchcode AS borrowerbranch  | 
              279 | 
                                              reservedate, reservenotes, borrowers.branchcode AS borrowerbranch, print_status  | 
            
        
          | 272 | 
                                   FROM reserves  | 
          280 | 
                                   FROM reserves  | 
        
        
          | 273 | 
                                   JOIN borrowers USING (borrowernumber)  | 
          281 | 
                                   JOIN borrowers USING (borrowernumber)  | 
        
        
          | 274 | 
                                   WHERE biblionumber = ?  | 
          282 | 
                                   WHERE biblionumber = ?  | 
        
  
    | 
      
            Lines 387-392
          sub MapItemsToHoldRequests {
      
      
        Link Here
      
     | 
  
        
          | 387 | 
                      if (exists $items_by_itemnumber{$request->{itemnumber}} and | 
          395 | 
                      if (exists $items_by_itemnumber{$request->{itemnumber}} and | 
        
        
          | 388 | 
                          not exists $allocated_items{$request->{itemnumber}}) { | 
          396 | 
                          not exists $allocated_items{$request->{itemnumber}}) { | 
        
        
          | 389 | 
                          $item_map{$request->{itemnumber}} = { | 
          397 | 
                          $item_map{$request->{itemnumber}} = { | 
        
            
               | 
               | 
              398 | 
                                  reserve_id => $request->{reserve_id}, | 
            
        
          | 390 | 
                              borrowernumber => $request->{borrowernumber}, | 
          399 | 
                              borrowernumber => $request->{borrowernumber}, | 
        
        
          | 391 | 
                              biblionumber => $request->{biblionumber}, | 
          400 | 
                              biblionumber => $request->{biblionumber}, | 
        
        
          | 392 | 
                              holdingbranch =>  $items_by_itemnumber{$request->{itemnumber}}->{holdingbranch}, | 
          401 | 
                              holdingbranch =>  $items_by_itemnumber{$request->{itemnumber}}->{holdingbranch}, | 
        
  
    | 
      
            Lines 394-399
          sub MapItemsToHoldRequests {
      
      
        Link Here
      
     | 
  
        
          | 394 | 
                              item_level => 1,  | 
          403 | 
                              item_level => 1,  | 
        
        
          | 395 | 
                              reservedate => $request->{reservedate}, | 
          404 | 
                              reservedate => $request->{reservedate}, | 
        
        
          | 396 | 
                              reservenotes => $request->{reservenotes}, | 
          405 | 
                              reservenotes => $request->{reservenotes}, | 
        
            
               | 
               | 
              406 | 
                                  print_status => $request->{print_status}, | 
            
        
          | 397 | 
                          };  | 
          407 | 
                          };  | 
        
        
          | 398 | 
                          $allocated_items{$request->{itemnumber}}++; | 
          408 | 
                          $allocated_items{$request->{itemnumber}}++; | 
        
        
          | 399 | 
                          $num_items_remaining--;  | 
          409 | 
                          $num_items_remaining--;  | 
        
  
    | 
      
            Lines 493-498
          sub MapItemsToHoldRequests {
      
      
        Link Here
      
     | 
  
        
          | 493 | 
                      delete $items_by_branch{$holdingbranch} unless @$holding_branch_items; | 
          503 | 
                      delete $items_by_branch{$holdingbranch} unless @$holding_branch_items; | 
        
        
          | 494 | 
           | 
          504 | 
           | 
        
        
          | 495 | 
                      $item_map{$itemnumber} = { | 
          505 | 
                      $item_map{$itemnumber} = { | 
        
            
               | 
               | 
              506 | 
                              reserve_id => $request->{reserve_id}, | 
            
        
          | 496 | 
                          borrowernumber => $request->{borrowernumber}, | 
          507 | 
                          borrowernumber => $request->{borrowernumber}, | 
        
        
          | 497 | 
                          biblionumber => $request->{biblionumber}, | 
          508 | 
                          biblionumber => $request->{biblionumber}, | 
        
        
          | 498 | 
                          holdingbranch => $holdingbranch,  | 
          509 | 
                          holdingbranch => $holdingbranch,  | 
        
  
    | 
      
            Lines 500-505
          sub MapItemsToHoldRequests {
      
      
        Link Here
      
     | 
  
        
          | 500 | 
                          item_level => 0,  | 
          511 | 
                          item_level => 0,  | 
        
        
          | 501 | 
                          reservedate => $request->{reservedate}, | 
          512 | 
                          reservedate => $request->{reservedate}, | 
        
        
          | 502 | 
                          reservenotes => $request->{reservenotes}, | 
          513 | 
                          reservenotes => $request->{reservenotes}, | 
        
            
               | 
               | 
              514 | 
                              print_status => $request->{print_status}, | 
            
        
          | 503 | 
                      };  | 
          515 | 
                      };  | 
        
        
          | 504 | 
                      $num_items_remaining--;  | 
          516 | 
                      $num_items_remaining--;  | 
        
        
          | 505 | 
                  }  | 
          517 | 
                  }  | 
        
  
    | 
      
            Lines 517-530
          sub CreatePicklistFromItemMap {
      
      
        Link Here
      
     | 
  
        
          | 517 | 
              my $dbh = C4::Context->dbh;  | 
          529 | 
              my $dbh = C4::Context->dbh;  | 
        
        
          | 518 | 
           | 
          530 | 
           | 
        
        
          | 519 | 
              my $sth_load=$dbh->prepare(" | 
          531 | 
              my $sth_load=$dbh->prepare(" | 
        
          
            
              | 520 | 
                      INSERT INTO tmp_holdsqueue (biblionumber,itemnumber,barcode,surname,firstname,phone,borrowernumber,  | 
              532 | 
                      INSERT INTO tmp_holdsqueue (reserve_id,biblionumber,itemnumber,barcode,surname,firstname,phone,borrowernumber,  | 
            
        
          | 521 | 
                                              cardnumber,reservedate,title, itemcallnumber,  | 
          533 | 
                                              cardnumber,reservedate,title, itemcallnumber,  | 
        
          
            
              | 522 | 
                                                  holdingbranch,pickbranch,notes, item_level_request)  | 
              534 | 
                                                  holdingbranch,pickbranch,notes, item_level_request,print_status)  | 
            
            
              | 523 | 
                      VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)  | 
              535 | 
                      VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)  | 
            
        
          | 524 | 
              ");  | 
          536 | 
              ");  | 
        
        
          | 525 | 
           | 
          537 | 
           | 
        
        
          | 526 | 
              foreach my $itemnumber  (sort keys %$item_map) { | 
          538 | 
              foreach my $itemnumber  (sort keys %$item_map) { | 
        
        
          | 527 | 
                  my $mapped_item = $item_map->{$itemnumber}; | 
          539 | 
                  my $mapped_item = $item_map->{$itemnumber}; | 
        
            
               | 
               | 
              540 | 
                      my $reserve_id = $mapped_item->{reserve_id}; | 
            
        
          | 528 | 
                  my $biblionumber = $mapped_item->{biblionumber}; | 
          541 | 
                  my $biblionumber = $mapped_item->{biblionumber}; | 
        
        
          | 529 | 
                  my $borrowernumber = $mapped_item->{borrowernumber}; | 
          542 | 
                  my $borrowernumber = $mapped_item->{borrowernumber}; | 
        
        
          | 530 | 
                  my $pickbranch = $mapped_item->{pickup_branch}; | 
          543 | 
                  my $pickbranch = $mapped_item->{pickup_branch}; | 
        
  
    | 
      
            Lines 532-537
          sub CreatePicklistFromItemMap {
      
      
        Link Here
      
     | 
  
        
          | 532 | 
                  my $reservedate = $mapped_item->{reservedate}; | 
          545 | 
                  my $reservedate = $mapped_item->{reservedate}; | 
        
        
          | 533 | 
                  my $reservenotes = $mapped_item->{reservenotes}; | 
          546 | 
                  my $reservenotes = $mapped_item->{reservenotes}; | 
        
        
          | 534 | 
                  my $item_level = $mapped_item->{item_level}; | 
          547 | 
                  my $item_level = $mapped_item->{item_level}; | 
        
            
               | 
               | 
              548 | 
                      my $print_status = $mapped_item->{print_status}; | 
            
        
          | 535 | 
           | 
          549 | 
           | 
        
        
          | 536 | 
                  my $item = GetItem($itemnumber);  | 
          550 | 
                  my $item = GetItem($itemnumber);  | 
        
        
          | 537 | 
                  my $barcode = $item->{barcode}; | 
          551 | 
                  my $barcode = $item->{barcode}; | 
        
  
    | 
      
            Lines 546-554
          sub CreatePicklistFromItemMap {
      
      
        Link Here
      
     | 
  
        
          | 546 | 
                  my $bib = GetBiblioData($biblionumber);  | 
          560 | 
                  my $bib = GetBiblioData($biblionumber);  | 
        
        
          | 547 | 
                  my $title = $bib->{title}; | 
          561 | 
                  my $title = $bib->{title}; | 
        
        
          | 548 | 
           | 
          562 | 
           | 
        
          
            
              | 549 | 
                      $sth_load->execute($biblionumber, $itemnumber, $barcode, $surname, $firstname, $phone, $borrowernumber,  | 
              563 | 
                      $sth_load->execute($reserve_id,$biblionumber, $itemnumber, $barcode, $surname, $firstname, $phone, $borrowernumber,  | 
            
        
          | 550 | 
                                     $cardnumber, $reservedate, $title, $itemcallnumber,  | 
          564 | 
                                     $cardnumber, $reservedate, $title, $itemcallnumber,  | 
        
          
            
              | 551 | 
                                         $holdingbranch, $pickbranch, $reservenotes, $item_level);  | 
              565 | 
                                         $holdingbranch, $pickbranch, $reservenotes, $item_level,$print_status);  | 
            
        
          | 552 | 
              }  | 
          566 | 
              }  | 
        
        
          | 553 | 
          }  | 
          567 | 
          }  | 
        
        
          | 554 | 
           | 
          568 | 
           | 
        
  
    | 
      
            Lines 637-642
          sub least_cost_branch {
      
      
        Link Here
      
     | 
  
        
          | 637 | 
              # XXX return a random @branch with minimum cost instead of the first one;  | 
          651 | 
              # XXX return a random @branch with minimum cost instead of the first one;  | 
        
        
          | 638 | 
              # return $branch[0] if @branch == 1;  | 
          652 | 
              # return $branch[0] if @branch == 1;  | 
        
        
          | 639 | 
          }  | 
          653 | 
          }  | 
        
            
               | 
               | 
              654 | 
              =head2 MarkHoldPrinted  | 
            
            
              | 655 | 
                  MarkHoldPrinted($reserve_id)  | 
            
            
              | 656 | 
                  Change print status as printed.  | 
            
            
              | 657 | 
              =cut  | 
            
            
              | 658 | 
               | 
            
            
              | 659 | 
              sub MarkHoldPrinted { | 
            
            
              | 660 | 
                 my ( $reserve_id ) = @_;  | 
            
            
              | 661 | 
                 my $dbh = C4::Context->dbh;  | 
            
            
              | 662 | 
                 my $strsth="UPDATE reserves INNER JOIN tmp_holdsqueue USING (reserve_id)  | 
            
            
              | 663 | 
                              SET reserves.print_status = 1 , tmp_holdsqueue.print_status = 1  | 
            
            
              | 664 | 
                              WHERE reserve_id = ?  | 
            
            
              | 665 | 
              		";  | 
            
            
              | 666 | 
                  my $sth = $dbh->prepare($strsth);  | 
            
            
              | 667 | 
              	$sth->execute($reserve_id);  | 
            
            
              | 668 | 
               | 
            
            
              | 669 | 
                  return 1;  | 
            
            
              | 670 | 
              }  | 
            
        
          | 640 | 
           | 
          671 | 
           | 
        
            
               | 
               | 
              672 | 
              =head2 GetItemNumberFromTmpHold  | 
            
            
              | 673 | 
                  $itemnumber = GetItemNumberFromTmpHold($reserve_id)  | 
            
            
              | 674 | 
                  Returns itemnumber associated with hold.  | 
            
            
              | 675 | 
                  Item number is taken from tmp_holdsqueue table, which is  | 
            
            
              | 676 | 
                  populated by bulid_holds_queue.pl script.  | 
            
            
              | 677 | 
               | 
            
            
              | 678 | 
              =cut  | 
            
            
              | 679 | 
              sub	GetItemNumberFromTmpHold{ | 
            
            
              | 680 | 
              	my ( $reserve_id ) = @_;  | 
            
            
              | 681 | 
              	my $dbh = C4::Context->dbh;  | 
            
            
              | 682 | 
              	my $strsth="SELECT itemnumber  | 
            
            
              | 683 | 
                                FROM tmp_holdsqueue  | 
            
            
              | 684 | 
                              WHERE reserve_id = ?  | 
            
            
              | 685 | 
              		";  | 
            
            
              | 686 | 
              	my $sth = $dbh->prepare($strsth);  | 
            
            
              | 687 | 
              	$sth->execute($reserve_id);  | 
            
            
              | 688 | 
               | 
            
            
              | 689 | 
              	my $data = $sth->fetchrow;  | 
            
            
              | 690 | 
              	return $data;  | 
            
            
              | 691 | 
              }  | 
            
        
          | 641 | 
           | 
          692 | 
           | 
        
        
          | 642 | 
          1;  | 
          693 | 
          1;  |