From 87819d35b1c13e1adda0067f3ad307a147e0567c Mon Sep 17 00:00:00 2001 From: tipaul Date: Wed, 3 Dec 2003 17:47:14 +0000 Subject: [PATCH] bugfixes for biblio deletion --- C4/Biblio.pm | 120 +++++++++++++++++++++-------------------- updater/updatedatabase | 6 ++- 2 files changed, 68 insertions(+), 58 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 43adae4bee..dc60565530 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -1498,25 +1498,26 @@ $item->{'itemnum'}=$item->{'itemnumber'} unless $item->{'itemnum'}; } sub OLDdelitem{ - my ($dbh,$itemnum)=@_; -# my $dbh=C4Connect; - my $sth=$dbh->prepare("select * from items where itemnumber=?"); - $sth->execute($itemnum); - my $data=$sth->fetchrow_hashref; - $sth->finish; - my $query="Insert into deleteditems set "; - my @bind = (); - foreach my $temp (keys %$data){ - $query .= "$temp = ?," - push(@bind,$data->{$temp}); - } + my ($dbh,$itemnum)=@_; + # my $dbh=C4Connect; + my $sth=$dbh->prepare("select * from items where itemnumber=?"); + $sth->execute($itemnum); + my $data=$sth->fetchrow_hashref; + $sth->finish; + my $query="Insert into deleteditems set "; + my @bind = (); + foreach my $temp (keys %$data){ + $query .= "$temp = ?,"; + push(@bind,$data->{$temp}); + } + $query =~ s/\,$//; # print $query; - $sth=$dbh->prepare($query); - $sth->execute(@bind); - $sth->finish; - $sth=$dbh->prepare("Delete from items where itemnumber=?"); - $sth->execute($itemnum); - $sth->finish; + $sth=$dbh->prepare($query); + $sth->execute(@bind); + $sth->finish; + $sth=$dbh->prepare("Delete from items where itemnumber=?"); + $sth->execute($itemnum); + $sth->finish; # $dbh->disconnect; } @@ -1544,48 +1545,51 @@ where biblioitemnumber = ?"); } # if $sth->finish; # Now delete all the items attached to the biblioitem - $sth = $dbh->prepare("Select * from items where biblioitemnumber = ?"); - $sth->execute($biblioitemnumber); - my @results; - while (@results = $sth->fetchrow_array) { - my $query = "Insert into deleteditems values ("; - foreach my $value (@results) { - $query .= "?,"; - } # foreach - $query =~ s/\,$/\)/; - my $sth2= $dbh->prepare($query); - $sth2->execute(@results); - $sth2->finish() - } # while - $sth->finish; - $sth = $dbh->prepare("Delete from items where biblioitemnumber = ?"); - $sth->execute($biblioitemnumber); - $sth->finish(); + $sth = $dbh->prepare("Select * from items where biblioitemnumber = ?"); + $sth->execute($biblioitemnumber); + my @results; + while (my $data = $sth->fetchrow_hashref) { + my $query="Insert into deleteditems set "; + my @bind = (); + foreach my $temp (keys %$data){ + $query .= "$temp = ?,"; + push(@bind,$data->{$temp}); + } + $query =~ s/\,$//; + warn "Q 1560 : $query"; + my $sth2=$dbh->prepare($query); + $sth2->execute(@bind); + } # while + $sth->finish; + $sth = $dbh->prepare("Delete from items where biblioitemnumber = ?"); + $sth->execute($biblioitemnumber); + $sth->finish(); # $dbh->disconnect; } # sub deletebiblioitem sub OLDdelbiblio{ - my ($dbh,$biblio)=@_; - my $sth=$dbh->prepare("select * from biblio where biblionumber=?"); - $sth->execute($biblio); - if (my @data=$sth->fetchrow_array){ - $sth->finish; -# FIXME => replace insert values by insert (field) values ($value) - $query="Insert into deletedbiblio values ("; - foreach my $temp (@data){ - $temp=~ s/\'/\\\'/g; - $query .= "?,"; - } - #replacing the last , by ",?)" - $query=~ s/\,$/\,\?\)/; - $sth=$dbh->prepare($query); - $sth->execute(@data); - $sth->finish; - $sth=$dbh->prepare("Delete from biblio where biblionumber=?"); - $sth->execute($biblio); - $sth->finish; - } - $sth->finish; + my ($dbh,$biblio)=@_; + my $sth=$dbh->prepare("select * from biblio where biblionumber=?"); + $sth->execute($biblio); + if (my $data=$sth->fetchrow_hashref){ + $sth->finish; + my $query="Insert into deletedbiblio set "; + my @bind =(); + foreach my $temp (keys %$data){ + $query .= "$temp = ?,"; + push(@bind,$data->{$temp}); + } + #replacing the last , by ",?)" + $query=~ s/\,$//; + warn "Q olddelbiblio : $query"; + $sth=$dbh->prepare($query); + $sth->execute(@bind); + $sth->finish; + $sth=$dbh->prepare("Delete from biblio where biblionumber=?"); + $sth->execute($biblio); + $sth->finish; + } + $sth->finish; } # @@ -2188,6 +2192,9 @@ Paul POULAIN paul.poulain@free.fr # $Id$ # $Log$ +# Revision 1.77 2003/12/03 17:47:14 tipaul +# bugfixes for biblio deletion +# # Revision 1.76 2003/12/03 01:43:41 slef # conflict markers? # @@ -2521,7 +2528,6 @@ Paul POULAIN paul.poulain@free.fr # In Biblio.pm, there are some subs that permits to build a old-style record from a MARC::Record, and the opposite. There is also a sub finding a MARC-bibid from a old-biblionumber and the opposite too. # Note we have decided with steve that a old-biblio <=> a MARC-Biblio. # -<<<<<<< Biblio.pm sub itemcount{ my ($biblio)=@_; diff --git a/updater/updatedatabase b/updater/updatedatabase index dbb663f647..2a2dd22af0 100755 --- a/updater/updatedatabase +++ b/updater/updatedatabase @@ -213,7 +213,7 @@ my %requiretables = ( my %requirefields = ( biblio => { 'abstract' => 'text' }, deletedbiblio => { 'abstract' => 'text', 'marc' => 'blob' }, - deleteditems => { 'marc' => 'blob' }, + deleteditems => { 'marc' => 'blob', 'paidfor' => 'text' }, biblioitems => { 'lccn' => 'char(25)', 'url' => 'varchar(255)', @@ -240,6 +240,7 @@ my %requirefields = ( }, aqorders => { 'budgetdate' => 'date' }, aqbudget => {'aqbudgetid' => 'tinyint(4) auto_increment primary key'}, + items => {'paidfor' => 'text'}, #added so that reference items are not available for reserves... itemtypes => { 'notforloan' => 'smallint(6)' }, @@ -970,6 +971,9 @@ $sth->finish; exit; # $Log$ +# Revision 1.68 2003/12/03 17:47:14 tipaul +# bugfixes for biblio deletion +# # Revision 1.67 2003/11/28 10:08:33 tipaul # * removing too verbose messages. # * creating a fulltext index on bibliothesaurus -- 2.39.5