X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=reserve%2Fplacerequest.pl;h=3fe459c2593025ffe3eaba40fa4054db3c2604f6;hb=de03c263f0579d28a735e3b1261121e439263a82;hp=dba43c424b939b35609b242561914a2972328829;hpb=3502810346d5e2b24417c47638f2ee42dd5c61d7;p=koha_fer diff --git a/reserve/placerequest.pl b/reserve/placerequest.pl index dba43c424b..3fe459c259 100755 --- a/reserve/placerequest.pl +++ b/reserve/placerequest.pl @@ -17,23 +17,25 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; use warnings; + +use CGI; use C4::Biblio; use C4::Items; -use CGI; use C4::Output; use C4::Reserves; use C4::Circulation; use C4::Members; +use C4::Auth qw/checkauth/; -my $input = new CGI; -#print $input->header; +my $input = CGI->new(); +checkauth($input, 0, { reserveforothers => 'place_holds' }, 'intranet'); my @bibitems=$input->param('biblioitem'); # FIXME I think reqbib does not exist anymore, it's used in line 82, to AddReserve of contraint type 'o' @@ -42,14 +44,14 @@ my @bibitems=$input->param('biblioitem'); # and probably remove the reserveconstraint table as well, I never could fill anything in this table. my @reqbib=$input->param('reqbib'); my $biblionumber=$input->param('biblionumber'); -my $borrower=$input->param('member'); +my $borrowernumber=$input->param('borrowernumber'); my $notes=$input->param('notes'); my $branch=$input->param('pickup'); my $startdate=$input->param('reserve_date') || ''; my @rank=$input->param('rank-request'); my $type=$input->param('type'); my $title=$input->param('title'); -my $borrowernumber=GetMember('cardnumber'=>$borrower); +my $borrower=GetMember('borrowernumber'=>$borrowernumber); my $checkitem=$input->param('checkitem'); my $expirationdate = $input->param('expiration_date'); @@ -79,7 +81,7 @@ if ($checkitem ne ''){ } } -if ($type eq 'str8' && $borrowernumber ne ''){ +if ($type eq 'str8' && $borrower){ foreach my $biblionumber (keys %bibinfos) { my $count=@bibitems; @@ -96,20 +98,29 @@ if ($type eq 'str8' && $borrowernumber ne ''){ } my $const; + if ($checkitem ne ''){ + my $item = GetItem($checkitem); + if ($item->{'biblionumber'} ne $biblionumber) { + $biblionumber = $item->{'biblionumber'}; + } + } + + + if ($multi_hold) { my $bibinfo = $bibinfos{$biblionumber}; - AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',[$biblionumber], + AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'a',[$biblionumber], $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found); } else { if ($input->param('request') eq 'any'){ # place a request on 1st available - AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem,$found); + AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem,$found); } elsif ($reqbib[0] ne ''){ # FIXME : elsif probably never reached, (see top of the script) # place a request on a given item - AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'o',\@reqbib,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found); + AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'o',\@reqbib,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found); } else { - AddReserve($branch,$borrowernumber->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found); + AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,'a',\@realbi,$rank[0],$startdate,$expirationdate,$notes,$title,$checkitem, $found); } } } @@ -122,8 +133,10 @@ if ($type eq 'str8' && $borrowernumber ne ''){ } else { print $input->redirect("request.pl?biblionumber=$biblionumber"); } -} elsif ($borrowernumber eq ''){ +} elsif ($borrower eq ''){ print $input->header(); - print "Invalid card number please try again"; - print $input->Dump; + print "Invalid borrower number please try again"; +# Not sure that Dump() does HTML escaping. Use firebug or something to trace +# instead. +# print $input->Dump; }