X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-reserve.pl;h=d89e60abe03ed5b55f7c084df29a512180730095;hb=7e8ff3f4b8d640db1fabf31d083c9c91a4decc11;hp=98fa43ff1f63975dda6e96023e951dad16d44915;hpb=9e7c94bf96b9029187dfdd957457b13c9dbed718;p=koha.git diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl index 98fa43ff1f..d89e60abe0 100755 --- a/opac/opac-reserve.pl +++ b/opac/opac-reserve.pl @@ -150,10 +150,13 @@ my %types; my %itemtypes; my @duedates; #die @items; +my %itemhash; +my $forloan; foreach my $itm (@items) { push @duedates, { date_due => format_date( $itm->{'date_due'} ) } if defined $itm->{'date_due'}; $itm->{ $itm->{'publictype'} } = 1; + warn $itm->{'notforloan'}; my $fee = GetReserveFee( undef, $borrowernumber, $itm->{'biblionumber'}, 'a', ( $itm->{'biblioitemnumber'} ) ); $fee = sprintf "%.02f", $fee; @@ -172,6 +175,10 @@ foreach my $itm (@items) { push @{ $types{$pty}->{'items'} }, $itm; } } + $itemhash{$itm->{'itemnumber'}}=$itm; + if (!$itm->{'notforloan'} && !$itm->{'itemnotforloan'}){ + $forloan=1; + } } $template->param( ITEMS => \@duedates ); @@ -236,7 +243,7 @@ if ( $query->param('place_reserve') ) { } else { AddReserve($branch,$borrowernumber,$biblionumber,'a',\@realbi,$rank,$notes,$bibdata->{'title'},$checkitem, $found); } - print $query->redirect("/cgi-bin/koha/opac-user.pl"); + print $query->redirect("/cgi-bin/koha/opac-user.pl#opac-user-holds"); } else { @@ -273,13 +280,13 @@ else { } my @reserves = GetReservesFromBorrowernumber( $borrowernumber ); $template->param( RESERVES => \@reserves ); - if ( scalar(@$reserves) >= $MAXIMUM_NUMBER_OF_RESERVES ) { + if ( scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RESERVES ) { $template->param( message => 1 ); $noreserves = 1; - $template->param( too_many_reserves => scalar($reserves)); + $template->param( too_many_reserves => scalar(@reserves)); } - foreach my $res (@$reserves) { - if ( $res->{'biblionumber'} == $biblionumber ) { + foreach my $res (@reserves) { + if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) { $template->param( message => 1 ); $noreserves = 1; $template->param( already_reserved => 1 ); @@ -322,7 +329,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) { foreach my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } ) { - my $item = $iteminfos_of->{$itemnumber}; + my $item = $itemhash{$itemnumber}; $item->{homebranchname} = $branches->{ $item->{homebranch} }{branchname}; @@ -360,7 +367,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) { } # Management of the notforloan document - if ( $item->{notforloan} ) { + if ( $item->{notforloan} || $item->{itemnotforloan}) { $item->{backgroundcolor} = 'other'; $item->{notforloanvalue} = $notforloan_label_of->{ $item->{notforloan} }; @@ -407,7 +414,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) { # FIXME: move this to a pm my $dbh = C4::Context->dbh; - my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W' AND cancellationdate IS NULL"); + my $sth2 = $dbh->prepare("SELECT * FROM reserves WHERE borrowernumber=? AND itemnumber=? AND found='W'"); $sth2->execute($item->{ReservedForBorrowernumber},$item->{itemnumber}); while (my $wait_hashref = $sth2->fetchrow_hashref) { $item->{waitingdate} = format_date($wait_hashref->{waitingdate}); @@ -421,6 +428,7 @@ foreach my $biblioitemnumber (@biblioitemnumbers) { # display infos $template->param( + forloan => $forloan, bibitemloop => \@bibitemloop, ); output_html_with_http_headers $query, $cookie, $template->output;