[Koha-cvs] koha/reserve modrequest.pl placerequest.pl requ...

paul poulain paul at koha-fr.org
Fri Mar 9 16:13:57 CET 2007


CVSROOT:	/sources/koha
Module name:	koha
Changes by:	paul poulain <tipaul>	07/03/09 15:13:57

Modified files:
	reserve        : modrequest.pl placerequest.pl request.pl 

Log message:
	rel_3_0 moved to HEAD

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/reserve/modrequest.pl?cvsroot=koha&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/koha/reserve/placerequest.pl?cvsroot=koha&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/koha/reserve/request.pl?cvsroot=koha&r1=1.7&r2=1.8

Patches:
Index: modrequest.pl
===================================================================
RCS file: /sources/koha/koha/reserve/modrequest.pl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- modrequest.pl	11 Sep 2006 17:41:55 -0000	1.3
+++ modrequest.pl	9 Mar 2007 15:13:57 -0000	1.4
@@ -23,32 +23,41 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
-#use DBI;
-use C4::Search;
 use CGI;
 use C4::Output;
 use C4::Reserves2;
-use C4::Members;
+
 my $input = new CGI;
 #print $input->header;
 
-#print $input->Dump;
-
 my @rank=$input->param('rank-request');
 my @biblionumber=$input->param('biblionumber');
 my @borrower=$input->param('borrowernumber');
 my @branch=$input->param('pickup');
+my @itemnumber=$input->param('itemnumber');
 my $count=@rank;
-my $cataloger=$input->param('loggedinuser');
-# goes through and manually changes the reserves record....
-# no attempt is made to check consistency.
-for (my $i=0;$i<$count;$i++){
-    UpdateReserves($rank[$i],$biblionumber[$i],$borrower[$i],$branch[$i],$cataloger); #from C4::Reserves2
+
+my $CancelBiblioNumber=$input->param('CancelBiblioNumber');
+my $CancelBorrowerNumber=$input->param('CancelBorrowerNumber');
+my $CancelItemnumber=$input->param('CancelItemnumber');
+
+# 2 possibilitys : cancel an item reservation, or modify or cancel the queded list
+
+# 1) cancel an item reservation by fonction GlobalCancel (in reserves2.pm)
+if ($CancelBorrowerNumber) {
+	GlobalCancel($CancelItemnumber, $CancelBorrowerNumber);
+	$biblionumber[0] = $CancelBiblioNumber,
 }
 
+# 2) Cancel or modify the queue list of reserves (without item linked)
+else {
+	for (my $i=0;$i<$count;$i++){
+		UpdateReserve($rank[$i],$biblionumber[$i],$borrower[$i],$branch[$i],$itemnumber[$i]); #from C4::Reserves2
+	}
+}
 my $from=$input->param('from');
 if ($from eq 'borrower'){
-  print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$borrower[0]");
+  print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrower[0]");
  } else {
    print $input->redirect("/cgi-bin/koha/reserve/request.pl?biblionumber=$biblionumber[0]");
 }

Index: placerequest.pl
===================================================================
RCS file: /sources/koha/koha/reserve/placerequest.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- placerequest.pl	11 Sep 2006 17:41:55 -0000	1.4
+++ placerequest.pl	9 Mar 2007 15:13:57 -0000	1.5
@@ -22,15 +22,16 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
-#use DBI;
-use C4::Search;
+use C4::Biblio;
 use CGI;
 use C4::Output;
 use C4::Reserves2;
+use C4::Circulation::Circ2;
 use C4::Members;
+
 my $input = new CGI;
 #print $input->header;
-my $itemnumber=$input->param('itemnumber');
+
 my @bibitems=$input->param('biblioitem');
 my @reqbib=$input->param('reqbib');
 my $biblionumber=$input->param('biblionumber');
@@ -40,37 +41,51 @@
 my @rank=$input->param('rank-request');
 my $type=$input->param('type');
 my $title=$input->param('title');
-my $bornum=borrdata($borrower,'');
-my $cataloger=$input->param('loggedinuser');
+my $borrowernumber=borrdata($borrower,'');
+my $checkitem=$input->param('checkitem');
+my $found;
+
+#new op : if we have an item selectionned, and the pickup branch is the same as the holdingbranch of the document, we force the value $rank and $found .
+if ($checkitem ne ''){
+		$rank[0] = '0';
+		my $item = $checkitem;
+		$item = getiteminformation($item);
+		if ( $item->{'holdingbranch'} eq $branch ){
+		$found = 'W';	
+		}
+
 
-if ($type eq 'str8' && $bornum ne ''){
+}
+
+# END of new op .
+
+if ($type eq 'str8' && $borrowernumber ne ''){
     my $count=@bibitems;
     @bibitems=sort @bibitems;
     my $i2=1;
     my @realbi;
     $realbi[0]=$bibitems[0];
-for (my $i=1;$i<$count;$i++){
+	for (my $i=1;$i<$count;$i++) {
     my $i3=$i2-1;
-    if ($realbi[$i3] ne $bibitems[$i]){
+		if ($realbi[$i3] ne $bibitems[$i]) {
 	$realbi[$i2]=$bibitems[$i];
 	$i2++;
     }
-}
-
-my $env;
-
-my $const;
-
-
-for (my $i=0; $i<@reqbib; $i++){
-if ($reqbib[$i] ne ''){
+	}
+	my $env;
+	my $const;
+	if ($input->param('request') eq 'any'){
+	$const='a';
+  CreateReserve(\$env,$branch,$borrowernumber->{'borrowernumber'},$biblionumber,$const,\@realbi,$rank[0],$notes,$title,$checkitem,$found);
+	} elsif ($reqbib[0] ne ''){
   $const='o';
-  CreateReserve(\$env,$bornum->{'borrowernumber'},$cataloger,$biblionumber,'','',$branch,$const,$rank[0],$notes,$title,"",$reqbib[$i]);
-}
-}
+  CreateReserve(\$env,$branch,$borrowernumber->{'borrowernumber'},$biblionumber,$const,\@reqbib,$rank[0],$notes,$title,$checkitem, $found);
+	} else {
+  CreateReserve(\$env,$branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$notes,$title,$checkitem, $found);
+	}
 
 print $input->redirect("request.pl?biblionumber=$biblionumber");
-} elsif ($bornum eq ''){
+} elsif ($borrowernumber eq ''){
   print $input->header();
   print "Invalid card number please try again";
   print $input->Dump;

Index: request.pl
===================================================================
RCS file: /sources/koha/koha/reserve/request.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- request.pl	11 Sep 2006 17:41:55 -0000	1.7
+++ request.pl	9 Mar 2007 15:13:57 -0000	1.8
@@ -1,11 +1,8 @@
 #!/usr/bin/perl
 
-# $Id: request.pl,v 1.7 2006/09/11 17:41:55 tgarip1957 Exp $
+# $Id: request.pl,v 1.8 2007/03/09 15:13:57 tipaul Exp $
 
-#script to place reserves/requests
 #writen 2/1/00 by chris at katipo.oc.nz
-
-
 # Copyright 2000-2002 Katipo Communications
 #
 # This file is part of Koha.
@@ -23,8 +20,17 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
+=head1 request.pl
+
+script to place reserves/requests
+
+=cut
+
 use strict;
-use C4::Search;
+use C4::Branch; # GetBranches get_branchinfos_of
+use CGI;
+use List::MoreUtils qw/uniq/;
+use Date::Calc qw/Today Date_to_Days/;
 use C4::Output;
 use C4::Interface::CGI::Output;
 use C4::Auth;
@@ -32,174 +38,401 @@
 use C4::Biblio;
 use C4::Koha;
 use C4::Circulation::Circ2;
-use C4::Acquisition;
-use CGI;
 use C4::Date;
+use C4::Members;
 
+my $dbh = C4::Context->dbh;
+my $sth;
 my $input = new CGI;
-my $dbh=C4::Context->dbh;
+my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
+    {
+        template_name   => "reserve/request.tmpl",
+        query           => $input,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { reserveforothers => 1 },
+    }
+);
+
 # get biblio information....
 my $biblionumber = $input->param('biblionumber');
-my ($record) = XMLgetbiblio($dbh,$biblionumber);
-$record=XML_xml2hash_onerecord($record);
-my $dat=XMLmarc2koha_onerecord($dbh,$record,"biblios");
+my $dat          = GetBiblioData($biblionumber);
+
+# Select borrowers infos
+my $findborrower = $input->param('findborrower');
+$findborrower =~ s|,| |g;
+my $cardnumber = $input->param('cardnumber');
+my %env;
+my $borrowerslist;
+my $messageborrower;
+
+my $date = sprintf( '%04d-%02d-%02d', Today() );
+
+if ($findborrower) {
+    my ( $count, $borrowers ) =
+      BornameSearch( \%env, $findborrower, 'cardnumber', 'web' );
+
+    my @borrowers = @$borrowers;
+
+    if ( $#borrowers == -1 ) {
+        $input->param( 'findborrower', '' );
+        $messageborrower = "'$findborrower'";
+    }
+    elsif ( $#borrowers == 0 ) {
+        $input->param( 'cardnumber', $borrowers[0]->{'cardnumber'} );
+        $cardnumber = $borrowers[0]->{'cardnumber'};
+    }
+    else {
+        $borrowerslist = \@borrowers;
+    }
+}
+
+if ($cardnumber) {
+    my $borrowerinfo = getpatroninformation( \%env, 0, $cardnumber );
+    my $expiry;
+    my $diffbranch;
+    my @getreservloop;
+    my $count_reserv = 0;
+    my $maxreserves;
+
+# 	we check the reserves of the borrower, and if he can reserv a document
+# 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'} );
+
+    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 ) {
+        $expiry = 1;
+    }
+
+    # check if the borrower make the reserv in a different branch
+    if ( $borrowerinfo->{'branchcode'} ne C4::Context->userenv->{'branch'} ) {
+        $diffbranch = 1;
+    }
+
+    $template->param(
+        borrowersurname   => $borrowerinfo->{'surname'},
+        borrowerfirstname => $borrowerinfo->{'firstname'},
+        borrowerreservs   => $count_reserv,
+        maxreserves       => $maxreserves,
+        expiry            => $expiry,
+        diffbranch        => $diffbranch
+    );
+}
+
+$template->param( messageborrower => $messageborrower );
+
+my $CGIselectborrower;
+if ($borrowerslist) {
+    my @values;
+    my %labels;
+
+    foreach my $borrower (
+        sort {
+                $a->{surname}
+              . $a->{firstname} cmp $b->{surname}
+              . $b->{firstname}
+        } @{$borrowerslist}
+      )
+    {
+        push @values, $borrower->{cardnumber};
+
+        $labels{ $borrower->{cardnumber} } = sprintf(
+            '%s, %s ... (%s - %s) ... %s',
+            $borrower->{surname},    $borrower->{firstname},
+            $borrower->{cardnumber}, $borrower->{categorycode},
+            $borrower->{streetaddress},
+        );
+    }
+
+    $CGIselectborrower = CGI::scrolling_list(
+        -name     => 'cardnumber',
+        -values   => \@values,
+        -labels   => \%labels,
+        -size     => 7,
+        -multiple => 0,
+    );
+}
+
 # get existing reserves .....
-my ($count,$reserves) = FindReserves($biblionumber);
+my ( $count, $reserves ) = FindReserves($biblionumber);
 my $totalcount = $count;
+my $alreadyreserved;
+
+# FIXME launch another time getpatroninformation perhaps until
+my $borrowerinfo = getpatroninformation( \%env, 0, $cardnumber );
+
 foreach my $res (@$reserves) {
-    if ($res->{'found'} eq 'W') {
+    if ( ( $res->{found} eq 'W' ) or ( $res->{priority} == 0 ) ) {
 	$count--;
     }
+
+    if ( $borrowerinfo->{borrowernumber} eq $res->{borrowernumber} ) {
+        $alreadyreserved = 1;
+    }
 }
 
+$template->param( alreadyreserved => $alreadyreserved );
+
+# FIXME think @optionloop, is maybe obsolete, or  must be switchable by a systeme preference fixed rank or not
 # make priorities options
-my $num = $count + 1;
 
-#priorityoptions building
 my @optionloop;
-for (my $i=1; $i<=$num; $i++){
-	my %option;
-	$option{num}=$i;
-	$option{selected}=($i==$num);
-	push(@optionloop, \%option);
+for ( 1 .. $count + 1 ) {
+    push(
+        @optionloop,
+        {
+            num      => $_,
+            selected => ( $_ == $count + 1 ),
+        }
+    );
 }
+# adding a fixed value for priority options
+my $fixedRank = $count+1;
 
-# todays date
-my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
-$year=$year+1900;
-$mon++;
-my $date=format_date("$year-$mon-$mday");
+my @branchcodes;
+my %itemnumbers_of_biblioitem;
+my @itemnumbers  = @{ get_itemnumbers_of($biblionumber)->{$biblionumber} };
+my $iteminfos_of = GetItemInfosOf(@itemnumbers);
+
+foreach my $itemnumber (@itemnumbers) {
+    push( @branchcodes,
+        $iteminfos_of->{$itemnumber}->{homebranch},
+        $iteminfos_of->{$itemnumber}->{holdingbranch} );
+
+    my $biblioitemnumber = $iteminfos_of->{$itemnumber}->{biblioitemnumber};
+    push( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} }, $itemnumber );
+}
+
+ at branchcodes = uniq @branchcodes;
+
+my @biblioitemnumbers = keys %itemnumbers_of_biblioitem;
+
+my $branchinfos_of      = get_branchinfos_of(@branchcodes);
+my $notforloan_label_of = get_notforloan_label_of();
+my $biblioiteminfos_of  = GetBiblioItemInfosOf(@biblioitemnumbers);
+
+my @itemtypes;
+foreach my $biblioitemnumber (@biblioitemnumbers) {
+    push @itemtypes, $biblioiteminfos_of->{$biblioitemnumber}{itemtype};
+}
+
+my $itemtypeinfos_of = get_itemtypeinfos_of(@itemtypes);
+
+my $return_date_of = get_current_return_date_of(@itemnumbers);
 
 my @bibitemloop;
 
-	my %abibitem;
-	my @barcodeloop;
-    my @barcodes = barcodes($biblionumber);
-#warn @barcodes;
-    foreach my $num (@barcodes) {
-		my %barcode;
-		$barcode{'date_due'}=$num->{'date_due'} if $num->{'date_due'} gt "0000-00-00" ;
-		$barcode{'barcode'}=$num->{'barcode'};
-		$barcode{'itemnumber'}=$num->{'itemnumber'};
-		$barcode{'message'}=$num->{'itemlost'} == 1 ? "(lost)" :
-	  	$num->{'itemlost'} == 2 ? "(long overdue)" : "";
-		$barcode{'class'}=$num->{'itemcallnumber'};
-		$abibitem{'itemlost'}=(($num->{'notforloan'})|| ($num->{'itemlost'} == 1)) ;
-		$abibitem{'itemlost'}=($num->{'wthdrawn'}) ;
-		push(@barcodeloop, \%barcode);
+foreach my $biblioitemnumber (@biblioitemnumbers) {
+    my $biblioitem = $biblioiteminfos_of->{$biblioitemnumber};
+
+    $biblioitem->{description} =
+      $itemtypeinfos_of->{ $biblioitem->{itemtype} }{description};
+
+    foreach
+      my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } )
+    {
+        my $item = $iteminfos_of->{$itemnumber};
+
+        $item->{homebranchname} =
+          $branchinfos_of->{ $item->{homebranch} }{branchname};
+
+        # if the holdingbranch is different than the homebranch, we show the
+        # holdingbranch of the document too
+        if ( $item->{homebranch} ne $item->{holdingbranch} ) {
+            $item->{holdingbranchname} =
+              $branchinfos_of->{ $item->{holdingbranch} }{branchname};
     }
-#	
-    	$abibitem{'class'}="$dat->{'classification'}$dat->{'dewey'}$dat->{'subclass'}";
-	$abibitem{'biblionumber'}=$dat->{'biblionumber'};
-	$abibitem{'description'}=$dat->{'itemtype'};
-	$abibitem{'volumeddesc'}=$dat->{'volumeddesc'};
-	$abibitem{'publicationyear'}=$dat->{'publicationyear'};
 
-	$abibitem{'barcodeloop'}=\@barcodeloop;
-	push(@bibitemloop,\%abibitem);
+# 	add inforrmation
+	$item->{itemcallnumber} = $item->{itemcallnumber};
 
+        # if the item is currently on loan, we display its return date and
+        # change the background color
+        my $date_due;
+
+        if ( defined $return_date_of->{$itemnumber} ) {
+            $date_due = format_date( $return_date_of->{$itemnumber} );
+            $item->{date_due} = $date_due;
+            $item->{backgroundcolor} = 'onloan';
+        }
 
+        # checking reserve
+        my ($reservedate,$reservedfor,$expectedAt) = GetFirstReserveDateFromItem($itemnumber);
+        my $ItemBorrowerReserveInfo = getpatroninformation( \%env, $reservedfor, 0);
+
+        if ( defined $reservedate ) {
+            $item->{backgroundcolor} = 'reserved';
+            $item->{reservedate}     = format_date($reservedate);
+            $item->{ReservedForBorrowernumber}     = $reservedfor;
+            $item->{ReservedForSurname}     = $ItemBorrowerReserveInfo->{'surname'};
+            $item->{ReservedForFirstname}     = $ItemBorrowerReserveInfo->{'firstname'};
+            $item->{ExpectedAtLibrary}     = $expectedAt;
 
+        }
 
-#existingreserves building
-my @reserveloop;
-my $branches = GetBranches();
+        # Management of the notforloan document
+        if ( $item->{notforloan} ) {
+            $item->{backgroundcolor} = 'other';
+            $item->{notforloanvalue} =
+              $notforloan_label_of->{ $item->{notforloan} };
+        }
 
-foreach my $res (sort {$a->{'found'} cmp $b->{'found'}} @$reserves){
-	my %reserve;
-if ($res->{'priority'}>$totalcount){$totalcount=$res->{'priority'};}
-#    my $prioropt = priorityoptions($totalcount, $res->{'priority'});
-	my @optionloop;
-	for (my $i=1; $i<=$totalcount; $i++){
-		my %option;
-		$option{num}=$i;
-		$option{selected}=($i==$res->{'priority'});
-		push(@optionloop, \%option);
+        # Management of lost or long overdue items
+        if ( $item->{itemlost} ) {
+
+            # FIXME localized strings should never be in Perl code
+            $item->{message} =
+                $item->{itemlost} == 1 ? "(lost)"
+              : $item->{itemlost} == 2 ? "(long overdue)"
+              : "";
+            $item->{backgroundcolor} = 'other';
 	}
-	my @branchloop;
 
-	foreach my $br (keys %$branches) {
+        # Check of the transfered documents
+        my ( $transfertwhen, $transfertfrom, $transfertto ) =
+          get_transfert_infos($itemnumber);
+
+        if ( $transfertwhen ne '' ) {
+            $item->{transfertwhen} = format_date($transfertwhen);
+            $item->{transfertfrom} =
+              $branchinfos_of->{$transfertfrom}{branchname};
+            $item->{transfertto} = $branchinfos_of->{$transfertto}{branchname};
+		$item->{nocancel} = 1;
+        }
 
+        # If there is no loan, return and transfer, we show a checkbox.
+        $item->{notforloan} = $item->{notforloan} || 0;
 
+        # An item is available only if:
+        if (
+            not defined $reservedate    # not reserved yet
+            and $date_due eq ''         # not currently on loan
+            and not $item->{itemlost}   # not lost
+            and not $item->{notforloan} # not forbidden to loan
+            and $transfertwhen eq ''    # not currently on transfert
+          )
+        {
+            $item->{available} = 1;
+        }
 
-		(next) unless $branches->{$br}->{'IS'};
+        push @{ $biblioitem->{itemloop} }, $item;
+    }
+
+    push @bibitemloop, $biblioitem;
+}
 
-				# Only branches with the 'IS' branchrelation
-				# can issue books
+# existingreserves building
+my @reserveloop;
+my $branches = GetBranches();
+my ( $count, $reserves ) = FindReservesInQueue($biblionumber);
+foreach my $res ( sort { $a->{found} cmp $b->{found} } @$reserves ) {
+    my %reserve;
+    my @optionloop;
+    for ( my $i = 1 ; $i <= $totalcount ; $i++ ) {
+        push(
+            @optionloop,
+            {
+                num      => $i,
+                selected => ( $i == $res->{priority} ),
+            }
+        );
+    }
+    my @branchloop;
+    foreach my $br ( keys %$branches ) {
 		my %abranch;
-		$abranch{'selected'}=($br eq $res->{'branchcode'});
-		$abranch{'branch'}=$br;
-		$abranch{'branchname'}=$branches->{$br}->{'branchname'};
-		push(@branchloop,\%abranch);
+        $abranch{'selected'}   = ( $br eq $res->{'branchcode'} );
+        $abranch{'branch'}     = $br;
+        $abranch{'branchname'} = $branches->{$br}->{'branchname'};
+        push( @branchloop, \%abranch );
 	}
-my %env;
-#		my $item = $res->{'itemnumber'};
-#		$item = getiteminformation(\%env,$item);
 
-    if ($res->{'found'} eq 'W') {
-		
-		$reserve{'holdingbranch'}=$res->{'holdingbranch'};
-		$reserve{'barcode'}=$res->{'barcode'};
-		$reserve{'biblionumber'}=$res->{'biblionumber'};
+    if ( ( $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) ) {
+        my %env;
+        my $item = $res->{'itemnumber'};
+        $item = getiteminformation($item,undef);
+        $reserve{'wait'}= 1; 
+        $reserve{'holdingbranch'}=$item->{'holdingbranch'};
+        $reserve{'biblionumber'}=$item->{'biblionumber'};
+        $reserve{'barcodenumber'}	= $item->{'barcode'};
 		$reserve{'wbrcode'} = $res->{'branchcode'};
+        $reserve{'itemnumber'}	= $res->{'itemnumber'};
 		$reserve{'wbrname'} = $branches->{$res->{'branchcode'}}->{'branchname'};
 		if($reserve{'holdingbranch'} eq $reserve{'wbrcode'}){
 			$reserve{'atdestination'} = 1;
 		}
     }
-	$reserve{'barcode'}=$res->{'barcode'};
-  	$reserve{'date'} = format_date($res->{'reservedate'});
-	$reserve{'borrowernumber'}=$res->{'borrowernumber'};
-	$reserve{'biblionumber'}=$res->{'biblionumber'};
-	$reserve{'bornum'}=$res->{'borrowernumber'};
-	$reserve{'firstname'}=$res->{'firstname'};
-	$reserve{'surname'}=$res->{'surname'};
-	$reserve{'bornum'}=$res->{'borrowernumber'};
-	$reserve{'notes'}=$res->{'reservenotes'};
-	$reserve{'wait'}=($res->{'found'} eq 'W');
-	$reserve{'constrainttypea'}=($res->{'constrainttype'} eq 'a');
-	$reserve{'constrainttypeo'}=($res->{'constrainttype'} eq 'o');
-	$reserve{'voldesc'}=$res->{'volumeddesc'};
-	$reserve{'itemtype'}=$res->{'itemtype'};
-	$reserve{'branchloop'}=\@branchloop;
-	$reserve{'optionloop'}=\@optionloop;
-	push(@reserveloop,\%reserve);
-}
-
-my @branches;
-my @select_branch;
-my %select_branches;
-my $branches=GetBranches;
-#my $count2=scalar(@branches);
-foreach my $br (keys %$branches) {
-
-	push @select_branch, $br;
-	$select_branches{$br}= $branches->{$br}->{'branchname'};
-}
-my $CGIbranch=CGI::scrolling_list( -name     => 'pickup',
-			-values   => \@select_branch,
-			-labels   => \%select_branches,
+    
+#     get borrowers reserve info
+my $reserveborrowerinfo = getpatroninformation( \%env, $res->{'borrowernumber'}, 0);
+
+    $reserve{'date'}           = format_date( $res->{'reservedate'} );
+    $reserve{'borrowernumber'} = $res->{'borrowernumber'};
+    $reserve{'biblionumber'}   = $res->{'biblionumber'};
+    $reserve{'borrowernumber'} = $res->{'borrowernumber'};
+    $reserve{'firstname'}      = $reserveborrowerinfo->{'firstname'};
+    $reserve{'surname'}        = $reserveborrowerinfo->{'surname'};
+    $reserve{'notes'}          = $res->{'reservenotes'};
+    $reserve{'wait'}           =
+      ( ( $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) );
+    $reserve{'constrainttypea'} = ( $res->{'constrainttype'} eq 'a' );
+    $reserve{'constrainttypeo'} = ( $res->{'constrainttype'} eq 'o' );
+    $reserve{'voldesc'}         = $res->{'volumeddesc'};
+    $reserve{'ccode'}           = $res->{'ccode'};
+    $reserve{'barcode'}         = $res->{'barcode'};
+    $reserve{'priority'}	= $res->{'priority'};
+    $reserve{'branchloop'} = \@branchloop;
+    $reserve{'optionloop'} = \@optionloop;
+
+    push( @reserveloop, \%reserve );
+}
+
+my $default = C4::Context->userenv->{branch};
+my @values;
+my %label_of;
+
+foreach my $branchcode ( keys %{$branches} ) {
+    push @values, $branchcode;
+    $label_of{$branchcode} = $branches->{$branchcode}->{branchname};
+}
+my $CGIbranch = CGI::scrolling_list(
+    -name     => 'pickup',
+    -values   => \@values,
+    -default  => $default,
+    -labels   => \%label_of,
 			-size     => 1,
-			-multiple => 0 );
+    -multiple => 0,
+);
 
-#get the time for the form name...
+# get the time for the form name...
 my $time = time();
 
-#setup colours
-my ($template, $borrowernumber, $cookie)
-    = get_template_and_user({template_name => "reserve/request.tmpl",
-							query => $input,
-                            type => "intranet",
-                            authnotrequired => 0,
-                            flagsrequired => {borrowers => 1},
-                         });
-$template->param(	optionloop =>\@optionloop,
+$template->param(
 								CGIbranch => $CGIbranch,
 								reserveloop => \@reserveloop,
-								'time' => $time,
+    time        => $time,
+    fixedRank	=> $fixedRank,
+);
+
+# display infos
+$template->param(
+    optionloop        => \@optionloop,
 								bibitemloop => \@bibitemloop,
 								date => $date,
 								biblionumber => $biblionumber,
-								title =>$dat->{title});
+    findborrower      => $findborrower,
+    cardnumber        => $cardnumber,
+    CGIselectborrower => $CGIselectborrower,
+    title             => $dat->{title},
+    author            => $dat->{author}
+);
+
 # printout the page
 output_html_with_http_headers $input, $cookie, $template->output;
\ No newline at end of file





More information about the Koha-cvs mailing list