From 3cdf005fb069e170d6ec38db963294b92d025cad Mon Sep 17 00:00:00 2001 From: chris Date: Mon, 15 May 2000 22:09:19 +0000 Subject: [PATCH] working on requests --- C4/Acquisitions.pm | 26 +++++++++++++++++++++++++- C4/Reserves2.pm | 28 ++++++++++++++++++++++++---- modbibitem.pl | 8 +++++++- modrequest.pl | 8 +++++--- moredetail.pl | 3 ++- 5 files changed, 63 insertions(+), 10 deletions(-) diff --git a/C4/Acquisitions.pm b/C4/Acquisitions.pm index b0c2e4c..2ad27f2 100644 --- a/C4/Acquisitions.pm +++ b/C4/Acquisitions.pm @@ -15,7 +15,7 @@ $VERSION = 0.01; &newordernum &modbiblio &modorder &getsingleorder &invoice &receiveorder &bookfundbreakdown &curconvert &updatesup &insertsup &makeitems &modbibitem &getcurrencies &modsubtitle &modsubject &modaddauthor &moditem &countitems -&findall &needsmod &delitem); +&findall &needsmod &delitem &delbibitem); %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], # your exported package globals go here, @@ -706,6 +706,30 @@ sub delitem{ $dbh->disconnect; } +sub delbibitem{ + my ($itemnum)=@_; + my $dbh=C4Connect; + my $query="select * from biblioitems where biblioitemnumber=$itemnum"; + my $sth=$dbh->prepare($query); + $sth->execute; + my @data=$sth->fetchrow_array; + $sth->finish; + $query="Insert into deletedbibitems values ("; + foreach my $temp (@data){ + $query=$query."'$temp',"; + } + $query=~ s/\,$/\)/; +# print $query; + $sth=$dbh->prepare($query); + $sth->execute; + $sth->finish; + $query = "Delete from biblioitems where biblioitemnumber=$itemnum"; + $sth=$dbh->prepare($query); + $sth->execute; + $sth->finish; + $dbh->disconnect; +} + END { } # module clean-up code here (global destructor) diff --git a/C4/Reserves2.pm b/C4/Reserves2.pm index 31fc098..743de14 100755 --- a/C4/Reserves2.pm +++ b/C4/Reserves2.pm @@ -235,13 +235,33 @@ sub updatereserves{ $query.="set priority='$rank' where biblionumber=$biblio and borrowernumber=$borrower"; } else { - $query.="set cancellationdate=now() where biblionumber=$biblio - and borrowernumber=$borrower"; + $query="Select * from reserves where biblionumber=$biblio and + borrowernumber=$borrower"; + my $sth=$dbh->prepare($query); + $sth->execute; + my $data=$sth->fetchrow_hashref; + $sth->finish; + $query="Select * from reserves where biblionumber=$biblio and + priority > $data->{'priority'} and cancellationdate is NULL + order by priority"; + my $sth2=$dbh->prepare($query) || die $dbh->errstr; + $sth2->execute || die $sth2->errstr; + while (my $data=$sth2->fetchrow_hashref){ + $data->{'priority'}--; + $query="Update reserves set priority=$data->{'priority'} where + biblionumber=$data->{'biblionumber'} and + borrowernumber=$data->{'borrowernumber'}"; + my $sth3=$dbh->prepare($query); + $sth3->execute || die $sth3->errstr; + $sth3->finish; + } + $sth2->finish; + $query="update reserves set cancellationdate=now() where biblionumber=$biblio + and borrowernumber=$borrower"; } my $sth=$dbh->prepare($query); $sth->execute; - $sth->finish; - + $sth->finish; $dbh->disconnect; } diff --git a/modbibitem.pl b/modbibitem.pl index 8eca2bf..a217ac2 100755 --- a/modbibitem.pl +++ b/modbibitem.pl @@ -12,9 +12,15 @@ use CGI; use C4::Output; my $input = new CGI; -print $input->header; +# my $bibitemnum=$input->param('bibitem'); my $data=bibitemdata($bibitemnum); +my $biblio=$input->param('biblio'); +my $submit=$input->param('submit.x'); +if ($submit eq ''){ + print $input->redirect("/cgi-bin/koha/delbibitem.pl?bibitemnum=$bibitemnum&biblio=$biblio"); +} +print $input->header; #my ($count,$subject)=subject($data->{'biblionumber'}); #my ($count2,$subtitle)=subtitle($data->{'biblionumber'}); #my ($count3,$addauthor)=addauthor($data->{'biblionumber'}); diff --git a/modrequest.pl b/modrequest.pl index 4b71be6..ac50c74 100755 --- a/modrequest.pl +++ b/modrequest.pl @@ -21,12 +21,14 @@ my @biblio=$input->param('biblio'); my @borrower=$input->param('borrower'); my $count=@rank; - +my $del=0; for (my $i=0;$i<$count;$i++){ - if ($rank[$i] ne 'del'){ + if ($rank[$i] ne 'del' && $del == 0){ updatereserves($rank[$i],$biblio[$i],$borrower[$i],0); #from C4::Reserves2 - } else { + + } elsif ($rank[$i] eq 'del'){ updatereserves($rank[$i],$biblio[$i],$borrower[$i],1); #from C4::Reserves2 + $del=1; } } diff --git a/moredetail.pl b/moredetail.pl index 65a669e..36745ea 100755 --- a/moredetail.pl +++ b/moredetail.pl @@ -55,6 +55,7 @@ print <
+ @@ -63,7 +64,7 @@ print <
- +
Biblionumber: $bib