Fix for rank being set to zero if a specific item is selected
[koha_fer] / reserve / request.pl
index f461519..65983ab 100755 (executable)
@@ -1,6 +1,5 @@
 #!/usr/bin/perl
 
-# $Id$
 
 #writen 2/1/00 by chris@katipo.oc.nz
 # Copyright 2000-2002 Katipo Communications
@@ -97,18 +96,22 @@ if ($cardnumber) {
 # FIXME At this time we have a simple count of reservs, but, later, we could improve the infos "title" ...
 
     my $number_reserves =
-      CountReservesFromBorrower( $borrowerinfo->{'borrowernumber'} );
+      GetReserveCount( $borrowerinfo->{'borrowernumber'} );
 
     if ( $number_reserves > C4::Context->preference('maxreserves') ) {
         $maxreserves = 1;
     }
 
-    # we check the date expiricy of the borrower
-    my $warning = (Date_to_Days(split /-/,$date) > Date_to_Days( split /-/,$borrowerinfo->{'dateexpiry'}));
-     
-    if ( $warning > 0 ) {
+    # we check the date expiricy of the borrower (only if there is an expiry date, otherwise, set to 1 (warn)
+    if ($borrowerinfo->{'dateexpiry'} ne '0000-00-00') {
+        my $warning = (Date_to_Days(split /-/,$date) > Date_to_Days( split /-/,$borrowerinfo->{'dateexpiry'}));
+        if ( $warning > 0 ) {
+            $expiry = 1;
+        }
+    } else {
         $expiry = 1;
     }
+     
 
     # check if the borrower make the reserv in a different branch
     if ( $borrowerinfo->{'branchcode'} ne C4::Context->userenv->{'branch'} ) {
@@ -116,12 +119,22 @@ if ($cardnumber) {
     }
 
     $template->param(
-        borrowersurname   => $borrowerinfo->{'surname'},
-        borrowerfirstname => $borrowerinfo->{'firstname'},
-        borrowerreservs   => $count_reserv,
-        maxreserves       => $maxreserves,
-        expiry            => $expiry,
-        diffbranch        => $diffbranch
+                borrowernumber => $borrowerinfo->{'borrowernumber'},
+                borrowersurname   => $borrowerinfo->{'surname'},
+                borrowerfirstname => $borrowerinfo->{'firstname'},
+                borrowerstreetaddress => $borrowerinfo->{'address'},
+                borrowercity => $borrowerinfo->{'city'},
+                borrowerphone => $borrowerinfo->{'phone'},
+                               borrowermobile => $borrowerinfo->{'mobile'},
+                               borrowerfax => $borrowerinfo->{'fax'},
+                               borrowerphonepro => $borrowerinfo->{'phonepro'},
+                borroweremail => $borrowerinfo->{'email'},
+                borroweremailpro => $borrowerinfo->{'emailpro'},
+                borrowercategory => $borrowerinfo->{'category'},
+                borrowerreservs   => $count_reserv,
+                maxreserves       => $maxreserves,
+                expiry            => $expiry,
+                diffbranch        => $diffbranch
     );
 }
 
@@ -160,7 +173,7 @@ if ($borrowerslist) {
 }
 
 # get existing reserves .....
-my ( $count, $reserves ) = FindReserves($biblionumber);
+my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber);
 my $totalcount = $count;
 my $alreadyreserved;
 
@@ -209,7 +222,7 @@ foreach my $itemnumber (@itemnumbers) {
     push( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} }, $itemnumber );
 }
 
-@branchcodes = uniq @branchcodes;
+@branchcodes = uniq @branchcodes;
 
 my @biblioitemnumbers = keys %itemnumbers_of_biblioitem;
 
@@ -259,7 +272,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
         }
 
         # checking reserve
-        my ($reservedate,$reservedfor,$expectedAt) = GetFirstReserveDateFromItem($itemnumber);
+        my ($reservedate,$reservedfor,$expectedAt) = GetReservesFromItemnumber($itemnumber);
         my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
 
         if ( defined $reservedate ) {
@@ -326,7 +339,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) {
 # existingreserves building
 my @reserveloop;
 my $branches = GetBranches();
-my ( $count, $reserves ) = FindReservesInQueue($biblionumber);
+my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber);
 foreach my $res ( sort { $a->{found} cmp $b->{found} } @$reserves ) {
     my %reserve;
     my @optionloop;
@@ -350,7 +363,7 @@ foreach my $res ( sort { $a->{found} cmp $b->{found} } @$reserves ) {
 
     if ( ( $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) ) {
         my $item = $res->{'itemnumber'};
-        $item = getiteminformation($item,undef);
+        $item = GetBiblioFromItemNumber($item,undef);
         $reserve{'wait'}= 1; 
         $reserve{'holdingbranch'}=$item->{'holdingbranch'};
         $reserve{'biblionumber'}=$item->{'biblionumber'};
@@ -361,6 +374,8 @@ foreach my $res ( sort { $a->{found} cmp $b->{found} } @$reserves ) {
         if($reserve{'holdingbranch'} eq $reserve{'wbrcode'}){
             $reserve{'atdestination'} = 1;
         }
+        # set found to 1 if reserve is waiting for patron pickup
+        $reserve{'found'} = 1 if $res->{'found'} eq 'W';
     }
     
 #     get borrowers reserve info
@@ -397,6 +412,7 @@ foreach my $branchcode ( keys %{$branches} ) {
 }
 my $CGIbranch = CGI::scrolling_list(
     -name     => 'pickup',
+       -id          => 'pickup',
     -values   => \@values,
     -default  => $default,
     -labels   => \%label_of,