koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] CVS: koha/C4 Biblio.pm,NONE,1.1.2.1 Acquisitions.pm,1.5.2.9,1


From: Alan Millar
Subject: [Koha-cvs] CVS: koha/C4 Biblio.pm,NONE,1.1.2.1 Acquisitions.pm,1.5.2.9,1.5.2.10
Date: Fri, 14 Jun 2002 14:20:29 -0700

Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv30417/C4

Modified Files:
      Tag: rel-1-2
        Acquisitions.pm 
Added Files:
      Tag: rel-1-2
        Biblio.pm 
Log Message:
Split biblio functions in Acquisitions.pm out to new Biblio.pm

--- NEW FILE ---
package C4::Biblio; #assumes C4/Biblio.pm

use strict;
require Exporter;
use C4::Database;

use warnings;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);

# set the version for version checking
$VERSION = 0.01;

@ISA = qw(Exporter);
@EXPORT = qw(
        &newbiblio &newbiblioitem &newsubject &newsubtitle 
        &modbiblio &newitems &modbibitem
        &modsubtitle &modsubject &modaddauthor &moditem &countitems 
        &delitem &delbibitem &delbiblio 
        &checkitems &modnote &getitemtypes &getbiblio
        &findall &needsmod &updatecost 
        &getbiblioitem &getitemsbybiblioitem &isbnsearch &keywordsearch
        &websitesearch &addwebsite &updatewebsite &deletewebsite
);
%EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],

# your exported package globals go here,
# as well as any optionally exported functions

@EXPORT_OK   = qw($Var1 %Hashit);


# non-exported package globals go here
use vars qw(@more $stuff);

# initalize package globals, first exported ones

my $Var1   = '';
my %Hashit = ();



# then the others (which are still accessible as $Some::Module::stuff)
my $stuff  = '';
my @more   = ();

# all file-scoped lexicals must be created before
# the functions below that use them.

# file-private lexicals go here
my $priv_var    = '';
my %secret_hash = ();

# here's a file-private function as a closure,
# callable as &$priv_func;  it cannot be prototyped.
my $priv_func = sub {
  # stuff goes here.
  };
  
# make all your functions, whether exported or not;
#------------------------------------------------

# Create a new biblio entry
sub newbiblio {
  my ($biblio) = @_;    # input is ref to hash of fields
  my ($bibnum,$error);          # return resulting biblio number

  $error="";

  my $dbh    = &C4Connect;

  # Get next biblionumber in sequence
  my $query  = "Select max(biblionumber) from biblio";
  my $sth    = $dbh->prepare($query);
  $sth->execute;
  my $data   = $sth->fetchrow_arrayref;
  $bibnum = $$data[0] + 1;

  my $serial;           # is this item part of a series?

  if ($biblio->{'seriestitle'}) { $serial = 1 } else { $serial = 0 };

  $sth->finish;
  $query = "insert into biblio set
        biblionumber  = ?,
        title         = ?,
        author        = ?,
        copyrightdate = ?,
        serial        = ?,
        seriestitle   = ?,
        notes         = ?   ";

#  print $query;
  $sth = $dbh->prepare($query);
  if (  $sth->execute(
    $bibnum,
    $biblio->{'title'},
    $biblio->{'author'},
    $biblio->{'copyright'},
    $serial,
    $biblio->{'seriestitle'} ,
    $biblio->{'notes'}     
  )  ) {
        $error='';
  } else {
        $error=$sth->errstr;
        $bibnum = ""; 
  } # if exec error

  $sth->finish;
  $dbh->disconnect;

  return($bibnum,$error);
}

sub modbiblio {
  my 
($bibnum,$title,$author,$copyright,$seriestitle,$serial,$unititle,$notes)address@hidden;
  my $dbh=C4Connect;
  my $query = "Update biblio set
title         = '$title',
author        = '$author',
copyrightdate = '$copyright',
seriestitle   = '$seriestitle',
serial        = '$serial',
unititle      = '$unititle',
notes         = '$notes'
where biblionumber = $bibnum";
  my $sth=$dbh->prepare($query);

  $sth->execute;

  $sth->finish;
  $dbh->disconnect;
    return($bibnum);
}

sub modsubtitle {
  my ($bibnum,$subtitle)address@hidden;
  my $dbh=C4Connect;
  my $query="update bibliosubtitle set subtitle='$subtitle' where 
biblionumber=$bibnum";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}

sub modaddauthor {
  my ($bibnum,$author)address@hidden;
  my $dbh=C4Connect;
  my $query="Delete from additionalauthors where biblionumber=$bibnum";
  my $sth=$dbh->prepare($query);

  $sth->execute;
  $sth->finish;

  if ($author ne ''){
        $query = "Insert into additionalauthors set
author       = '$author',
biblionumber = '$bibnum'";
    $sth=$dbh->prepare($query);

    $sth->execute;

    $sth->finish;
    } # if

  $dbh->disconnect;
} # sub modaddauthor


sub modsubject {
  my ($bibnum,$force,@subject)address@hidden;
  my $dbh=C4Connect;
  my address@hidden;
  my $error;
  for (my $i=0;$i<$count;$i++){
    $subject[$i]=~ s/^ //g;
    $subject[$i]=~ s/ $//g;
    my $query = "select * from catalogueentry
where entrytype = 's'
and catalogueentry = '$subject[$i]'";
    my $sth=$dbh->prepare($query);
    $sth->execute;
      
    if (my $data = $sth->fetchrow_hashref) {
    } else {
      if ($force eq $subject[$i]){

         #subject not in aut, chosen to force anway
         #so insert into cataloguentry so its in auth file
         $query = "Insert into catalogueentry
(entrytype,catalogueentry)
         values ('s','$subject[$i]')";
         my $sth2=$dbh->prepare($query);

         $sth2->execute;
         $sth2->finish;

      } else {      

        $error="$subject[$i]\n does not exist in the subject authority file";
        $query = "Select * from catalogueentry
where entrytype = 's'
and (catalogueentry like '$subject[$i] %'
or catalogueentry like '% $subject[$i] %'
or catalogueentry like '% $subject[$i]')";
        my $sth2=$dbh->prepare($query);

        $sth2->execute;
        while (my $data=$sth2->fetchrow_hashref){
          $error=$error."<br>$data->{'catalogueentry'}";
        } # while
        $sth2->finish;
      } # else
    } # else
    $sth->finish;
  } # else

  if ($error eq ''){  
    my $query="Delete from bibliosubject where biblionumber=$bibnum";
    my $sth=$dbh->prepare($query);

    $sth->execute;
    $sth->finish;

    for (my $i=0;$i<$count;$i++){
      $sth = $dbh->prepare("Insert into bibliosubject
values ('$subject[$i]', $bibnum)");

      $sth->execute;
      $sth->finish;
    } # for
  } # if

  $dbh->disconnect;
  return($error);
} # sub modsubject

sub modbibitem {
  my 
($bibitemnum,$itemtype,$isbn,$publishercode,$publicationdate,$classification,$dewey,$subclass,$illus,$pages,$volumeddesc,$notes,$size,$place)address@hidden;
  my $dbh=C4Connect;
  my $query="update biblioitems set itemtype='$itemtype',
  
isbn='$isbn',publishercode='$publishercode',publicationyear='$publicationdate',
  
classification='$classification',dewey='$dewey',subclass='$subclass',illus='$illus',
  
pages='$pages',volumeddesc='$volumeddesc',notes='$notes',size='$size',place='$place'
  where
  biblioitemnumber=$bibitemnum";
  my $sth=$dbh->prepare($query);
#    print $query;
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}

sub modnote {
  my ($bibitemnum,$note)address@hidden;
  my $dbh=C4Connect;
  my $query="update biblioitems set notes='$note' where
  biblioitemnumber='$bibitemnum'";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}

sub newbiblioitem {
  my ($biblioitem) = @_;
  my $dbh   = C4Connect;
  my $data;
  my $bibitemnum;
  my $error;
  
  # Get next unused number
  my $query = "Select max(biblioitemnumber) from biblioitems";
  my $sth   = $dbh->prepare($query);
  $sth->execute;
  $data       = $sth->fetchrow_arrayref;
  $bibitemnum = $$data[0] + 1;
  $sth->finish;

  $query = "insert into biblioitems set
        biblioitemnumber = ?,
        biblionumber     = ?,
        volume           = ?,
        number           = ?,
        classification   = ?,
        itemtype         = ?,
        url              = ?,
        isbn             = ?,
        issn             = ?,
        lccn             = ?,
        dewey            = ?,
        subclass         = ?,
        publicationyear  = ?,
        publishercode    = ?,
        volumedate       = ?,
        volumeddesc      = ?,
        illus            = ?,
        pages            = ?,
        notes            = ?,
        size             = ?,
        marc             = ?,
        place            = ?   ";

  $sth = $dbh->prepare($query);
  $sth->execute(
        $bibitemnum,
        $biblioitem->{'biblionumber'},
        $biblioitem->{'volume'},
        $biblioitem->{'number'},
        $biblioitem->{'classification'},
        $biblioitem->{'itemtype'},
        $biblioitem->{'url'},
        $biblioitem->{'isbn'},
        $biblioitem->{'issn'},
        $biblioitem->{'lccn'},
        $biblioitem->{'dewey'},
        $biblioitem->{'subclass'},
        $biblioitem->{'publicationyear'},
        $biblioitem->{'publishercode'},
        $biblioitem->{'volumedate'},
        $biblioitem->{'volumeddesc'},
        $biblioitem->{'illus'},
        $biblioitem->{'pages'},
        $biblioitem->{'notes'},
        $biblioitem->{'size'},
        $biblioitem->{'marc'},
        $biblioitem->{'place'},
  ) or $error=$sth->errstr;

  $sth->finish;
  $dbh->disconnect;
  return($bibitemnum);
} # sub newbiblioitem

sub newsubject {
  my ($bibnum)address@hidden;
  my $dbh=C4Connect;
  my $query="insert into bibliosubject (biblionumber) values
  ($bibnum)";
  my $sth=$dbh->prepare($query);
#  print $query;
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}

sub newsubtitle {
  my ($bibnum, $subtitle) = @_;
  my $dbh   = C4Connect;
  $subtitle = $dbh->quote($subtitle);
  my $query = "insert into bibliosubtitle set
biblionumber = $bibnum,
subtitle = $subtitle";
  my $sth   = $dbh->prepare($query);

  $sth->execute;

  $sth->finish;
  $dbh->disconnect;
}

sub newitems {
  my ($item, @barcodes) = @_;
  my $dbh=C4Connect;
  my $query = "Select max(itemnumber) from items";
  my $sth   = $dbh->prepare($query);
  my $data;
  my $itemnumber;
  my $error;

  $sth->execute;
  $data       = $sth->fetchrow_hashref;
  $itemnumber = $data->{'max(itemnumber)'} + 1;
  $sth->finish;
  
  $item->{'booksellerid'}     = $dbh->quote($item->{'bookselletid'});
  $item->{'homebranch'}       = $dbh->quote($item->{'homebranch'});
  $item->{'price'}            = $dbh->quote($item->{'price'});
  $item->{'replacementprice'} = $dbh->quote($item->{'replacementprice'});
  $item->{'itemnotes'}        = $dbh->quote($item->{'itemnotes'});

  foreach my $barcode (@barcodes) {
    $barcode = uc($barcode);
    $query   = "Insert into items set
itemnumber           = $itemnumber,
biblionumber         = $item->{'biblionumber'},
biblioitemnumber     = $item->{'biblioitemnumber'},
barcode              = $barcode,
booksellerid         = $item->{'booksellerid'},
dateaccessioned      = NOW(),
homebranch           = $item->{'homebranch'},
holdingbranch        = $item->{'homebranch'},
price                = $item->{'price'},
replacementprice     = $item->{'replacementprice'},
replacementpricedate = NOW(),
itemnotes            = $item->{'itemnotes'}";

    if ($item->{'loan'}) {
      $query .= ",
notforloan           = $item->{'loan'}";
    } # if

    $sth = $dbh->prepare($query);
    $sth->execute;

    $error=$sth->errstr;

    $sth->finish;
    $itemnumber++;
  } # for

  $dbh->disconnect;
  return($error);
}

sub checkitems{
  my ($count,@barcodes)address@hidden;
  my $dbh=C4Connect;
  my $error;
  for (my $i=0;$i<$count;$i++){
    $barcodes[$i]=uc $barcodes[$i];
    my $query="Select * from items where barcode='$barcodes[$i]'";
    my $sth=$dbh->prepare($query);
    $sth->execute;
    if (my $data=$sth->fetchrow_hashref){
      $error.=" Duplicate Barcode: $barcodes[$i]";
    }
    $sth->finish;
  }
  $dbh->disconnect;
  return($error);
}

sub moditem {
  my 
($loan,$itemnum,$bibitemnum,$barcode,$notes,$homebranch,$lost,$wthdrawn,$replacement)address@hidden;
  my $dbh=C4Connect;
  my $query="update items set biblioitemnumber=$bibitemnum,
  barcode='$barcode',itemnotes='$notes'
  where itemnumber=$itemnum";
  if ($barcode eq ''){
    $query="update items set biblioitemnumber=$bibitemnum,notforloan=$loan 
where itemnumber=$itemnum";
  }
  if ($lost ne ''){
    $query="update items set biblioitemnumber=$bibitemnum,
      barcode='$barcode',itemnotes='$notes',homebranch='$homebranch',
      itemlost='$lost',wthdrawn='$wthdrawn' where itemnumber=$itemnum";
  }
  if ($replacement ne ''){
    $query=~ s/ where/,replacementprice='$replacement' where/;
  }

  my $sth=$dbh->prepare($query);
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}

sub updatecost{
  my($price,$rrp,$itemnum)address@hidden;
  my $dbh=C4Connect;
  my $query="update items set price='$price',replacementprice='$rrp'
  where itemnumber=$itemnum";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}
sub countitems{
  my ($bibitemnum)address@hidden;
  my $dbh=C4Connect;
  my $query="Select count(*) from items where biblioitemnumber='$bibitemnum'";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  my $data=$sth->fetchrow_hashref;
  $sth->finish;
  $dbh->disconnect;
  return($data->{'count(*)'});
}

sub findall {
  my ($biblionumber)address@hidden;
  my $dbh=C4Connect;
  my $query="Select * from biblioitems,items,itemtypes where 
  biblioitems.biblionumber=$biblionumber 
  and biblioitems.biblioitemnumber=items.biblioitemnumber and
  itemtypes.itemtype=biblioitems.itemtype
  order by items.biblioitemnumber";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  my @results;
  my $i;
  while (my $data=$sth->fetchrow_hashref){
    $results[$i]=$data;
    $i++;
  }
  $sth->finish;
  $dbh->disconnect;
  return(@results);
}

sub needsmod{
  my ($bibitemnum,$itemtype)address@hidden;
  my $dbh=C4Connect;
  my $query="Select * from biblioitems where biblioitemnumber=$bibitemnum
  and itemtype='$itemtype'";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  my $result=0;
  if (my $data=$sth->fetchrow_hashref){
    $result=1;
  }
  $sth->finish;
  $dbh->disconnect;
  return($result);
}

sub delitem{
  my ($itemnum)address@hidden;
  my $dbh=C4Connect;
  my $query="select * from items where itemnumber=$itemnum";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  my @data=$sth->fetchrow_array;
  $sth->finish;
  $query="Insert into deleteditems values (";
  foreach my $temp (@data){
    $query=$query."'$temp',";
  }
  $query=~ s/\,$/\)/;
#  print $query;
  $sth=$dbh->prepare($query);
  $sth->execute;
  $sth->finish;
  $query = "Delete from items where itemnumber=$itemnum";
  $sth=$dbh->prepare($query);
  $sth->execute;
  $sth->finish;
  $dbh->disconnect;
}

sub delbibitem{
  my ($itemnum)address@hidden;
  my $dbh=C4Connect;
  my $query="select * from biblioitems where biblioitemnumber=$itemnum";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  if (my @data=$sth->fetchrow_array){
    $sth->finish;
    $query="Insert into deletedbiblioitems values (";
    foreach my $temp (@data){
      $temp=~ s/\'/\\\'/g;
      $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;
  }
  $sth->finish;
  $dbh->disconnect;
}

sub delbiblio{
  my ($biblio)address@hidden;
  my $dbh=C4Connect;
  my $query="select * from biblio where biblionumber=$biblio";
  my $sth=$dbh->prepare($query);
  $sth->execute;
  if (my @data=$sth->fetchrow_array){
    $sth->finish;
    $query="Insert into deletedbiblio values (";
    foreach my $temp (@data){
      $temp=~ s/\'/\\\'/g;
      $query=$query."'$temp',";
    }
    $query=~ s/\,$/\)/;
#   print $query;
    $sth=$dbh->prepare($query);
    $sth->execute;
    $sth->finish;
    $query = "Delete from biblio where biblionumber=$biblio";
    $sth=$dbh->prepare($query);
    $sth->execute;
    $sth->finish;
  }

  $sth->finish;
  $dbh->disconnect;
}

sub getitemtypes {
  my $dbh   = C4Connect;
  my $query = "select * from itemtypes";
  my $sth   = $dbh->prepare($query);
    # || die "Cannot prepare $query" . $dbh->errstr;
  my $count = 0;
  my @results;
  
  $sth->execute;
    # || die "Cannot execute $query\n" . $sth->errstr;
  while (my $data = $sth->fetchrow_hashref) {
    $results[$count] = $data;
    $count++;
  } # while
  
  $sth->finish;
  $dbh->disconnect;
  return($count, @results);
} # sub getitemtypes


sub getbiblio {
    my ($biblionumber) = @_;
    my $dbh   = C4Connect;
    my $query = "Select * from biblio where biblionumber = $biblionumber";
    my $sth   = $dbh->prepare($query);
      # || die "Cannot prepare $query\n" . $dbh->errstr;
    my $count = 0;
    my @results;
    
    $sth->execute;
      # || die "Cannot execute $query\n" . $sth->errstr;
    while (my $data = $sth->fetchrow_hashref) {
      $results[$count] = $data;
      $count++;
    } # while
    
    $sth->finish;
    $dbh->disconnect;
    return($count, @results);
} # sub getbiblio


sub getbiblioitem {
    my ($biblioitemnum) = @_;
    my $dbh   = C4Connect;
    my $query = "Select * from biblioitems where
biblioitemnumber = $biblioitemnum";
    my $sth   = $dbh->prepare($query);
    my $count = 0;
    my @results;

    $sth->execute;

    while (my $data = $sth->fetchrow_hashref) {
        $results[$count] = $data;
        $count++;
    } # while

    $sth->finish;
    $dbh->disconnect;
    return($count, @results);
} # sub getbiblioitem


sub getitemsbybiblioitem {
    my ($biblioitemnum) = @_;
    my $dbh   = C4Connect;
    my $query = "Select * from items, biblio where
biblio.biblionumber = items.biblionumber and biblioitemnumber
= $biblioitemnum";
    my $sth   = $dbh->prepare($query);
      # || die "Cannot prepare $query\n" . $dbh->errstr;
    my $count = 0;
    my @results;
    
    $sth->execute;
      # || die "Cannot execute $query\n" . $sth->errstr;
    while (my $data = $sth->fetchrow_hashref) {
      $results[$count] = $data;
      $count++;
    } # while
    
    $sth->finish;
    $dbh->disconnect;
    return($count, @results);
} # sub getitemsbybiblioitem


sub isbnsearch {
    my ($isbn) = @_;
    my $dbh   = C4Connect;
    my $count = 0;
    my $query;
    my $sth;
    my @results;
    
    $isbn  = $dbh->quote($isbn);
    $query = "Select * from biblioitems where isbn = $isbn";
    $sth   = $dbh->prepare($query);
    
    $sth->execute;
    while (my $data = $sth->fetchrow_hashref) {
        $results[$count] = $data;
        $count++;
    } # while

    $sth->finish;
    $dbh->disconnect;
    return($count, @results);
} # sub isbnsearch


sub keywordsearch {
  my ($keywordlist) = @_;
  my $dbh   = C4Connect;
  my $query = "Select * from biblio where";
  my $count = 0;
  my $sth;
  my @results;
  my @keywords = split(/ +/, $keywordlist);
  my $keyword = shift(@keywords);

  $keyword =~ s/%/\\%/g;
  $keyword =~ s/_/\\_/;
  $keyword = "%" . $keyword . "%";
  $keyword = $dbh->quote($keyword);
  $query  .= " (author like $keyword) or
(title like $keyword) or (unititle like $keyword) or
(notes like $keyword) or (seriestitle like $keyword) or
(abstract like $keyword)";

  foreach $keyword (@keywords) {
    $keyword =~ s/%/\\%/;
    $keyword =~ s/_/\\_/;
    $keyword = "%" . $keyword . "%";
    $keyword = $dbh->quote($keyword);
    $query  .= " or (author like $keyword) or
(title like $keyword) or (unititle like $keyword) or 
(notes like $keyword) or (seriestitle like $keyword) or
(abstract like $keyword)";
  } # foreach
  
  $sth = $dbh->prepare($query);
  $sth->execute;
  
  while (my $data = $sth->fetchrow_hashref) {
    $results[$count] = $data;
    $count++;
  } # while
  
  $sth->finish;
  $dbh->disconnect;
  return($count, @results);
} # sub keywordsearch


sub websitesearch {
    my ($keywordlist) = @_;
    my $dbh   = C4Connect;
    my $query = "Select distinct biblio.* from biblio, biblioitems where
biblio.biblionumber = biblioitems.biblionumber and (";
    my $count = 0;
    my $sth;
    my @results;
    my @keywords = split(/ +/, $keywordlist);
    my $keyword = shift(@keywords);

    $keyword =~ s/%/\\%/g;
    $keyword =~ s/_/\\_/;
    $keyword = "%" . $keyword . "%";
    $keyword = $dbh->quote($keyword);
    $query  .= " (url like $keyword)";

    foreach $keyword (@keywords) {
        $keyword =~ s/%/\\%/;
        $keyword =~ s/_/\\_/;
        $keyword = "%" . $keyword . "%";
        $keyword = $dbh->quote($keyword);
        $query  .= " or (url like $keyword)";
    } # foreach

    $query .= ")";
    $sth    = $dbh->prepare($query);
    $sth->execute;

    while (my $data = $sth->fetchrow_hashref) {
        $results[$count] = $data;
        $count++;
    } # while

    $sth->finish;
    $dbh->disconnect;
    return($count, @results);
} # sub websitesearch


sub addwebsite {
    my ($website) = @_;
    my $dbh = C4Connect;
    my $query;
    
    $website->{'biblionumber'} = $dbh->quote($website->{'biblionumber'});
    $website->{'title'}        = $dbh->quote($website->{'title'});
    $website->{'description'}  = $dbh->quote($website->{'description'});
    $website->{'url'}          = $dbh->quote($website->{'url'});
    
    $query = "Insert into websites set
biblionumber = $website->{'biblionumber'},
title        = $website->{'title'},
description  = $website->{'description'},
url          = $website->{'url'}";
    
    $dbh->do($query);
    
    $dbh->disconnect;
} # sub website


sub updatewebsite {
    my ($website) = @_;
    my $dbh = C4Connect;
    my $query;
    
    $website->{'title'}      = $dbh->quote($website->{'title'});
    $website->{'description'} = $dbh->quote($website->{'description'});
    $website->{'url'}        = $dbh->quote($website->{'url'});
    
    $query = "Update websites set
title       = $website->{'title'},
description = $website->{'description'},
url         = $website->{'url'}
where websitenumber = $website->{'websitenumber'}";

    $dbh->do($query);
    
    $dbh->disconnect;
} # sub updatewebsite


sub deletewebsite {
    my ($websitenumber) = @_;
    my $dbh = C4Connect;
    my $query = "Delete from websites where websitenumber = $websitenumber";
    
    $dbh->do($query);
    
    $dbh->disconnect;
} # sub deletewebsite


END { }       # module clean-up code here (global destructor)

Index: Acquisitions.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Acquisitions.pm,v
retrieving revision 1.5.2.9
retrieving revision 1.5.2.10
diff -C2 -r1.5.2.9 -r1.5.2.10
*** Acquisitions.pm     9 Jun 2002 05:28:25 -0000       1.5.2.9
--- Acquisitions.pm     14 Jun 2002 21:20:26 -0000      1.5.2.10
***************
*** 4,7 ****
--- 4,9 ----
  require Exporter;
  use C4::Database;
+ #use C4::Biblio;
+ 
  use warnings;
  use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
***************
*** 11,24 ****
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&getorders &bookseller &breakdown &basket &newbasket &bookfunds
! &ordersearch &newbiblio &newbiblioitem &newsubject &newsubtitle &neworder
!  &newordernum &modbiblio &modorder &getsingleorder &invoice &receiveorder
! &bookfundbreakdown &curconvert &updatesup &insertsup &newitems &modbibitem
! &getcurrencies &modsubtitle &modsubject &modaddauthor &moditem &countitems 
! &findall &needsmod &delitem &delbibitem &delbiblio &delorder &branches
! &getallorders &getrecorders &updatecurrencies &getorder &getcurrency 
&updaterecorder
! &updatecost &checkitems &modnote &getitemtypes &getbiblio
! &getbiblioitem &getitemsbybiblioitem &isbnsearch &keywordsearch
! &websitesearch &addwebsite &updatewebsite &deletewebsite);
  %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
  
--- 13,27 ----
  
  @ISA = qw(Exporter);
! @EXPORT = qw(
!       &getorders &bookseller &breakdown &basket &newbasket &bookfunds
!       &ordersearch &neworder &newordernum 
!       &modorder &getsingleorder &invoice &receiveorder
!       &delorder 
!       &bookfundbreakdown &curconvert &updatesup &insertsup 
!       &getcurrencies 
!       &branches &getallorders &getrecorders &updatecurrencies 
!       &getorder &getcurrency &updaterecorder
! 
! );
  %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
  
***************
*** 386,689 ****
        
  
- # Create a new biblio entry
- sub newbiblio {
-   my ($biblio) = @_;  # input is ref to hash of fields
-   my ($bibnum,$error);                # return resulting biblio number
- 
-   $error="";
- 
-   my $dbh    = &C4Connect;
- 
-   # Get next biblionumber in sequence
-   my $query  = "Select max(biblionumber) from biblio";
-   my $sth    = $dbh->prepare($query);
-   $sth->execute;
-   my $data   = $sth->fetchrow_arrayref;
-   $bibnum = $$data[0] + 1;
- 
-   my $serial;         # is this item part of a series?
- 
-   if ($biblio->{'seriestitle'}) { $serial = 1 } else { $serial = 0 };
- 
-   $sth->finish;
-   $query = "insert into biblio set
-       biblionumber  = ?,
-       title         = ?,
-       author        = ?,
-       copyrightdate = ?,
-       serial        = ?,
-       seriestitle   = ?,
-       notes         = ?   ";
- 
- #  print $query;
-   $sth = $dbh->prepare($query);
-   if (  $sth->execute(
-     $bibnum,
-     $biblio->{'title'},
-     $biblio->{'author'},
-     $biblio->{'copyright'},
-     $serial,
-     $biblio->{'seriestitle'} ,
-     $biblio->{'notes'}           
-   )  ) {
-       $error='';
-   } else {
-       $error=$sth->errstr;
-       $bibnum = ""; 
-   } # if exec error
- 
-   $sth->finish;
-   $dbh->disconnect;
- 
-   return($bibnum,$error);
- }
- 
- sub modbiblio {
-   my 
($bibnum,$title,$author,$copyright,$seriestitle,$serial,$unititle,$notes)address@hidden;
-   my $dbh=C4Connect;
-   my $query = "Update biblio set
- title         = '$title',
- author        = '$author',
- copyrightdate = '$copyright',
- seriestitle   = '$seriestitle',
- serial        = '$serial',
- unititle      = '$unititle',
- notes         = '$notes'
- where biblionumber = $bibnum";
-   my $sth=$dbh->prepare($query);
- 
-   $sth->execute;
- 
-   $sth->finish;
-   $dbh->disconnect;
-     return($bibnum);
- }
- 
- sub modsubtitle {
-   my ($bibnum,$subtitle)address@hidden;
-   my $dbh=C4Connect;
-   my $query="update bibliosubtitle set subtitle='$subtitle' where 
biblionumber=$bibnum";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub modaddauthor {
-   my ($bibnum,$author)address@hidden;
-   my $dbh=C4Connect;
-   my $query="Delete from additionalauthors where biblionumber=$bibnum";
-   my $sth=$dbh->prepare($query);
- 
-   $sth->execute;
-   $sth->finish;
- 
-   if ($author ne ''){
-         $query = "Insert into additionalauthors set
- author       = '$author',
- biblionumber = '$bibnum'";
-     $sth=$dbh->prepare($query);
- 
-     $sth->execute;
- 
-     $sth->finish;
-     } # if
- 
-   $dbh->disconnect;
- } # sub modaddauthor
- 
- 
- sub modsubject {
-   my ($bibnum,$force,@subject)address@hidden;
-   my $dbh=C4Connect;
-   my address@hidden;
-   my $error;
-   for (my $i=0;$i<$count;$i++){
-     $subject[$i]=~ s/^ //g;
-     $subject[$i]=~ s/ $//g;
-     my $query = "select * from catalogueentry
- where entrytype = 's'
- and catalogueentry = '$subject[$i]'";
-     my $sth=$dbh->prepare($query);
-     $sth->execute;
-       
-     if (my $data = $sth->fetchrow_hashref) {
-     } else {
-       if ($force eq $subject[$i]){
- 
-          #subject not in aut, chosen to force anway
-        #so insert into cataloguentry so its in auth file
-        $query = "Insert into catalogueentry
- (entrytype,catalogueentry)
-        values ('s','$subject[$i]')";
-        my $sth2=$dbh->prepare($query);
- 
-        $sth2->execute;
-        $sth2->finish;
- 
-       } else {      
- 
-         $error="$subject[$i]\n does not exist in the subject authority file";
-         $query = "Select * from catalogueentry
- where entrytype = 's'
- and (catalogueentry like '$subject[$i] %'
- or catalogueentry like '% $subject[$i] %'
- or catalogueentry like '% $subject[$i]')";
-         my $sth2=$dbh->prepare($query);
- 
-         $sth2->execute;
-         while (my $data=$sth2->fetchrow_hashref){
-           $error=$error."<br>$data->{'catalogueentry'}";
-         } # while
-         $sth2->finish;
-       } # else
-     } # else
-     $sth->finish;
-   } # else
- 
-   if ($error eq ''){  
-     my $query="Delete from bibliosubject where biblionumber=$bibnum";
-     my $sth=$dbh->prepare($query);
- 
-     $sth->execute;
-     $sth->finish;
- 
-     for (my $i=0;$i<$count;$i++){
-       $sth = $dbh->prepare("Insert into bibliosubject
- values ('$subject[$i]', $bibnum)");
- 
-       $sth->execute;
-       $sth->finish;
-     } # for
-   } # if
- 
-   $dbh->disconnect;
-   return($error);
- } # sub modsubject
- 
- sub modbibitem {
-   my 
($bibitemnum,$itemtype,$isbn,$publishercode,$publicationdate,$classification,$dewey,$subclass,$illus,$pages,$volumeddesc,$notes,$size,$place)address@hidden;
-   my $dbh=C4Connect;
-   my $query="update biblioitems set itemtype='$itemtype',
-   
isbn='$isbn',publishercode='$publishercode',publicationyear='$publicationdate',
-   
classification='$classification',dewey='$dewey',subclass='$subclass',illus='$illus',
-   
pages='$pages',volumeddesc='$volumeddesc',notes='$notes',size='$size',place='$place'
-   where
-   biblioitemnumber=$bibitemnum";
-   my $sth=$dbh->prepare($query);
- #    print $query;
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub modnote {
-   my ($bibitemnum,$note)address@hidden;
-   my $dbh=C4Connect;
-   my $query="update biblioitems set notes='$note' where
-   biblioitemnumber='$bibitemnum'";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub newbiblioitem {
-   my ($biblioitem) = @_;
-   my $dbh   = C4Connect;
-   my $data;
-   my $bibitemnum;
-   my $error;
-   
-   # Get next unused number
-   my $query = "Select max(biblioitemnumber) from biblioitems";
-   my $sth   = $dbh->prepare($query);
-   $sth->execute;
-   $data       = $sth->fetchrow_arrayref;
-   $bibitemnum = $$data[0] + 1;
-   $sth->finish;
- 
-   $query = "insert into biblioitems set
-       biblioitemnumber = ?,
-       biblionumber     = ?,
-       volume           = ?,
-       number           = ?,
-       classification   = ?,
-       itemtype         = ?,
-       url              = ?,
-       isbn             = ?,
-       issn             = ?,
-       lccn             = ?,
-       dewey            = ?,
-       subclass         = ?,
-       publicationyear  = ?,
-       publishercode    = ?,
-       volumedate       = ?,
-       volumeddesc      = ?,
-       illus            = ?,
-       pages            = ?,
-       notes            = ?,
-       size             = ?,
-       marc             = ?,
-       place            = ?   ";
- 
-   $sth = $dbh->prepare($query);
-   $sth->execute(
-       $bibitemnum,
-       $biblioitem->{'biblionumber'},
-       $biblioitem->{'volume'},
-       $biblioitem->{'number'},
-       $biblioitem->{'classification'},
-       $biblioitem->{'itemtype'},
-       $biblioitem->{'url'},
-       $biblioitem->{'isbn'},
-       $biblioitem->{'issn'},
-       $biblioitem->{'lccn'},
-       $biblioitem->{'dewey'},
-       $biblioitem->{'subclass'},
-       $biblioitem->{'publicationyear'},
-       $biblioitem->{'publishercode'},
-       $biblioitem->{'volumedate'},
-       $biblioitem->{'volumeddesc'},
-       $biblioitem->{'illus'},
-       $biblioitem->{'pages'},
-       $biblioitem->{'notes'},
-       $biblioitem->{'size'},
-       $biblioitem->{'marc'},
-       $biblioitem->{'place'},
-   ) or $error=$sth->errstr;
- 
-   $sth->finish;
-   $dbh->disconnect;
-   return($bibitemnum);
- } # sub newbiblioitem
- 
- sub newsubject {
-   my ($bibnum)address@hidden;
-   my $dbh=C4Connect;
-   my $query="insert into bibliosubject (biblionumber) values
-   ($bibnum)";
-   my $sth=$dbh->prepare($query);
- #  print $query;
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub newsubtitle {
-   my ($bibnum, $subtitle) = @_;
-   my $dbh   = C4Connect;
-   $subtitle = $dbh->quote($subtitle);
-   my $query = "insert into bibliosubtitle set
- biblionumber = $bibnum,
- subtitle = $subtitle";
-   my $sth   = $dbh->prepare($query);
- 
-   $sth->execute;
- 
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
  sub neworder {
    my 
($bibnum,$title,$ordnum,$basket,$quantity,$listprice,$supplier,$who,$notes,$bookfund,$bibitemnum,$rrp,$ecost,$gst,$budget,$cost,$sub,$invoice)address@hidden;
--- 389,392 ----
***************
*** 917,1405 ****
    return($data->{'id'});
  }
- 
- 
- sub newitems {
-   my ($item, @barcodes) = @_;
-   my $dbh=C4Connect;
-   my $query = "Select max(itemnumber) from items";
-   my $sth   = $dbh->prepare($query);
-   my $data;
-   my $itemnumber;
-   my $error;
- 
-   $sth->execute;
-   $data       = $sth->fetchrow_hashref;
-   $itemnumber = $data->{'max(itemnumber)'} + 1;
-   $sth->finish;
-   
-   $item->{'booksellerid'}     = $dbh->quote($item->{'bookselletid'});
-   $item->{'homebranch'}       = $dbh->quote($item->{'homebranch'});
-   $item->{'price'}            = $dbh->quote($item->{'price'});
-   $item->{'replacementprice'} = $dbh->quote($item->{'replacementprice'});
-   $item->{'itemnotes'}        = $dbh->quote($item->{'itemnotes'});
- 
-   foreach my $barcode (@barcodes) {
-     $barcode = uc($barcode);
-     $query   = "Insert into items set
- itemnumber           = $itemnumber,
- biblionumber         = $item->{'biblionumber'},
- biblioitemnumber     = $item->{'biblioitemnumber'},
- barcode              = $barcode,
- booksellerid         = $item->{'booksellerid'},
- dateaccessioned      = NOW(),
- homebranch           = $item->{'homebranch'},
- holdingbranch        = $item->{'homebranch'},
- price                = $item->{'price'},
- replacementprice     = $item->{'replacementprice'},
- replacementpricedate = NOW(),
- itemnotes            = $item->{'itemnotes'}";
- 
-     if ($item->{'loan'}) {
-       $query .= ",
- notforloan           = $item->{'loan'}";
-     } # if
- 
-     $sth = $dbh->prepare($query);
-     $sth->execute;
- 
-     $error=$sth->errstr;
- 
-     $sth->finish;
-     $itemnumber++;
-   } # for
- 
-   $dbh->disconnect;
-   return($error);
- }
- 
- sub checkitems{
-   my ($count,@barcodes)address@hidden;
-   my $dbh=C4Connect;
-   my $error;
-   for (my $i=0;$i<$count;$i++){
-     $barcodes[$i]=uc $barcodes[$i];
-     my $query="Select * from items where barcode='$barcodes[$i]'";
-     my $sth=$dbh->prepare($query);
-     $sth->execute;
-     if (my $data=$sth->fetchrow_hashref){
-       $error.=" Duplicate Barcode: $barcodes[$i]";
-     }
-     $sth->finish;
-   }
-   $dbh->disconnect;
-   return($error);
- }
- 
- sub moditem {
-   my 
($loan,$itemnum,$bibitemnum,$barcode,$notes,$homebranch,$lost,$wthdrawn,$replacement)address@hidden;
-   my $dbh=C4Connect;
-   my $query="update items set biblioitemnumber=$bibitemnum,
-   barcode='$barcode',itemnotes='$notes'
-   where itemnumber=$itemnum";
-   if ($barcode eq ''){
-     $query="update items set biblioitemnumber=$bibitemnum,notforloan=$loan 
where itemnumber=$itemnum";
-   }
-   if ($lost ne ''){
-     $query="update items set biblioitemnumber=$bibitemnum,
-       barcode='$barcode',itemnotes='$notes',homebranch='$homebranch',
-       itemlost='$lost',wthdrawn='$wthdrawn' where itemnumber=$itemnum";
-   }
-   if ($replacement ne ''){
-     $query=~ s/ where/,replacementprice='$replacement' where/;
-   }
- 
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub updatecost{
-   my($price,$rrp,$itemnum)address@hidden;
-   my $dbh=C4Connect;
-   my $query="update items set price='$price',replacementprice='$rrp'
-   where itemnumber=$itemnum";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- sub countitems{
-   my ($bibitemnum)address@hidden;
-   my $dbh=C4Connect;
-   my $query="Select count(*) from items where biblioitemnumber='$bibitemnum'";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my $data=$sth->fetchrow_hashref;
-   $sth->finish;
-   $dbh->disconnect;
-   return($data->{'count(*)'});
- }
- 
- sub findall {
-   my ($biblionumber)address@hidden;
-   my $dbh=C4Connect;
-   my $query="Select * from biblioitems,items,itemtypes where 
-   biblioitems.biblionumber=$biblionumber 
-   and biblioitems.biblioitemnumber=items.biblioitemnumber and
-   itemtypes.itemtype=biblioitems.itemtype
-   order by items.biblioitemnumber";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my @results;
-   my $i;
-   while (my $data=$sth->fetchrow_hashref){
-     $results[$i]=$data;
-     $i++;
-   }
-   $sth->finish;
-   $dbh->disconnect;
-   return(@results);
- }
- 
- sub needsmod{
-   my ($bibitemnum,$itemtype)address@hidden;
-   my $dbh=C4Connect;
-   my $query="Select * from biblioitems where biblioitemnumber=$bibitemnum
-   and itemtype='$itemtype'";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my $result=0;
-   if (my $data=$sth->fetchrow_hashref){
-     $result=1;
-   }
-   $sth->finish;
-   $dbh->disconnect;
-   return($result);
- }
- 
- sub delitem{
-   my ($itemnum)address@hidden;
-   my $dbh=C4Connect;
-   my $query="select * from items where itemnumber=$itemnum";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my @data=$sth->fetchrow_array;
-   $sth->finish;
-   $query="Insert into deleteditems values (";
-   foreach my $temp (@data){
-     $query=$query."'$temp',";
-   }
-   $query=~ s/\,$/\)/;
- #  print $query;
-   $sth=$dbh->prepare($query);
-   $sth->execute;
-   $sth->finish;
-   $query = "Delete from items where itemnumber=$itemnum";
-   $sth=$dbh->prepare($query);
-   $sth->execute;
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub delbibitem{
-   my ($itemnum)address@hidden;
-   my $dbh=C4Connect;
-   my $query="select * from biblioitems where biblioitemnumber=$itemnum";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   if (my @data=$sth->fetchrow_array){
-     $sth->finish;
-     $query="Insert into deletedbiblioitems values (";
-     foreach my $temp (@data){
-       $temp=~ s/\'/\\\'/g;
-       $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;
-   }
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub delbiblio{
-   my ($biblio)address@hidden;
-   my $dbh=C4Connect;
-   my $query="select * from biblio where biblionumber=$biblio";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   if (my @data=$sth->fetchrow_array){
-     $sth->finish;
-     $query="Insert into deletedbiblio values (";
-     foreach my $temp (@data){
-       $temp=~ s/\'/\\\'/g;
-       $query=$query."'$temp',";
-     }
-     $query=~ s/\,$/\)/;
- #   print $query;
-     $sth=$dbh->prepare($query);
-     $sth->execute;
-     $sth->finish;
-     $query = "Delete from biblio where biblionumber=$biblio";
-     $sth=$dbh->prepare($query);
-     $sth->execute;
-     $sth->finish;
-   }
- 
-   $sth->finish;
-   $dbh->disconnect;
- }
- 
- sub getitemtypes {
-   my $dbh   = C4Connect;
-   my $query = "select * from itemtypes";
-   my $sth   = $dbh->prepare($query);
-     # || die "Cannot prepare $query" . $dbh->errstr;
-   my $count = 0;
-   my @results;
-   
-   $sth->execute;
-     # || die "Cannot execute $query\n" . $sth->errstr;
-   while (my $data = $sth->fetchrow_hashref) {
-     $results[$count] = $data;
-     $count++;
-   } # while
-   
-   $sth->finish;
-   $dbh->disconnect;
-   return($count, @results);
- } # sub getitemtypes
- 
- 
- sub getbiblio {
-     my ($biblionumber) = @_;
-     my $dbh   = C4Connect;
-     my $query = "Select * from biblio where biblionumber = $biblionumber";
-     my $sth   = $dbh->prepare($query);
-       # || die "Cannot prepare $query\n" . $dbh->errstr;
-     my $count = 0;
-     my @results;
-     
-     $sth->execute;
-       # || die "Cannot execute $query\n" . $sth->errstr;
-     while (my $data = $sth->fetchrow_hashref) {
-       $results[$count] = $data;
-       $count++;
-     } # while
-     
-     $sth->finish;
-     $dbh->disconnect;
-     return($count, @results);
- } # sub getbiblio
- 
- 
- sub getbiblioitem {
-     my ($biblioitemnum) = @_;
-     my $dbh   = C4Connect;
-     my $query = "Select * from biblioitems where
- biblioitemnumber = $biblioitemnum";
-     my $sth   = $dbh->prepare($query);
-     my $count = 0;
-     my @results;
- 
-     $sth->execute;
- 
-     while (my $data = $sth->fetchrow_hashref) {
-         $results[$count] = $data;
-       $count++;
-     } # while
- 
-     $sth->finish;
-     $dbh->disconnect;
-     return($count, @results);
- } # sub getbiblioitem
- 
- 
- sub getitemsbybiblioitem {
-     my ($biblioitemnum) = @_;
-     my $dbh   = C4Connect;
-     my $query = "Select * from items, biblio where
- biblio.biblionumber = items.biblionumber and biblioitemnumber
- = $biblioitemnum";
-     my $sth   = $dbh->prepare($query);
-       # || die "Cannot prepare $query\n" . $dbh->errstr;
-     my $count = 0;
-     my @results;
-     
-     $sth->execute;
-       # || die "Cannot execute $query\n" . $sth->errstr;
-     while (my $data = $sth->fetchrow_hashref) {
-       $results[$count] = $data;
-       $count++;
-     } # while
-     
-     $sth->finish;
-     $dbh->disconnect;
-     return($count, @results);
- } # sub getitemsbybiblioitem
- 
- 
- sub isbnsearch {
-     my ($isbn) = @_;
-     my $dbh   = C4Connect;
-     my $count = 0;
-     my $query;
-     my $sth;
-     my @results;
-     
-     $isbn  = $dbh->quote($isbn);
-     $query = "Select * from biblioitems where isbn = $isbn";
-     $sth   = $dbh->prepare($query);
-     
-     $sth->execute;
-     while (my $data = $sth->fetchrow_hashref) {
-         $results[$count] = $data;
-       $count++;
-     } # while
- 
-     $sth->finish;
-     $dbh->disconnect;
-     return($count, @results);
- } # sub isbnsearch
- 
- 
- sub keywordsearch {
-   my ($keywordlist) = @_;
-   my $dbh   = C4Connect;
-   my $query = "Select * from biblio where";
-   my $count = 0;
-   my $sth;
-   my @results;
-   my @keywords = split(/ +/, $keywordlist);
-   my $keyword = shift(@keywords);
- 
-   $keyword =~ s/%/\\%/g;
-   $keyword =~ s/_/\\_/;
-   $keyword = "%" . $keyword . "%";
-   $keyword = $dbh->quote($keyword);
-   $query  .= " (author like $keyword) or
- (title like $keyword) or (unititle like $keyword) or
- (notes like $keyword) or (seriestitle like $keyword) or
- (abstract like $keyword)";
- 
-   foreach $keyword (@keywords) {
-     $keyword =~ s/%/\\%/;
-     $keyword =~ s/_/\\_/;
-     $keyword = "%" . $keyword . "%";
-     $keyword = $dbh->quote($keyword);
-     $query  .= " or (author like $keyword) or
- (title like $keyword) or (unititle like $keyword) or 
- (notes like $keyword) or (seriestitle like $keyword) or
- (abstract like $keyword)";
-   } # foreach
-   
-   $sth = $dbh->prepare($query);
-   $sth->execute;
-   
-   while (my $data = $sth->fetchrow_hashref) {
-     $results[$count] = $data;
-     $count++;
-   } # while
-   
-   $sth->finish;
-   $dbh->disconnect;
-   return($count, @results);
- } # sub keywordsearch
- 
- 
- sub websitesearch {
-     my ($keywordlist) = @_;
-     my $dbh   = C4Connect;
-     my $query = "Select distinct biblio.* from biblio, biblioitems where
- biblio.biblionumber = biblioitems.biblionumber and (";
-     my $count = 0;
-     my $sth;
-     my @results;
-     my @keywords = split(/ +/, $keywordlist);
-     my $keyword = shift(@keywords);
- 
-     $keyword =~ s/%/\\%/g;
-     $keyword =~ s/_/\\_/;
-     $keyword = "%" . $keyword . "%";
-     $keyword = $dbh->quote($keyword);
-     $query  .= " (url like $keyword)";
- 
-     foreach $keyword (@keywords) {
-         $keyword =~ s/%/\\%/;
-       $keyword =~ s/_/\\_/;
-       $keyword = "%" . $keyword . "%";
-         $keyword = $dbh->quote($keyword);
-       $query  .= " or (url like $keyword)";
-     } # foreach
- 
-     $query .= ")";
-     $sth    = $dbh->prepare($query);
-     $sth->execute;
- 
-     while (my $data = $sth->fetchrow_hashref) {
-         $results[$count] = $data;
-       $count++;
-     } # while
- 
-     $sth->finish;
-     $dbh->disconnect;
-     return($count, @results);
- } # sub websitesearch
- 
- 
- sub addwebsite {
-     my ($website) = @_;
-     my $dbh = C4Connect;
-     my $query;
-     
-     $website->{'biblionumber'} = $dbh->quote($website->{'biblionumber'});
-     $website->{'title'}        = $dbh->quote($website->{'title'});
-     $website->{'description'}  = $dbh->quote($website->{'description'});
-     $website->{'url'}          = $dbh->quote($website->{'url'});
-     
-     $query = "Insert into websites set
- biblionumber = $website->{'biblionumber'},
- title        = $website->{'title'},
- description  = $website->{'description'},
- url          = $website->{'url'}";
-     
-     $dbh->do($query);
-     
-     $dbh->disconnect;
- } # sub website
- 
- 
- sub updatewebsite {
-     my ($website) = @_;
-     my $dbh = C4Connect;
-     my $query;
-     
-     $website->{'title'}      = $dbh->quote($website->{'title'});
-     $website->{'description'} = $dbh->quote($website->{'description'});
-     $website->{'url'}        = $dbh->quote($website->{'url'});
-     
-     $query = "Update websites set
- title       = $website->{'title'},
- description = $website->{'description'},
- url         = $website->{'url'}
- where websitenumber = $website->{'websitenumber'}";
- 
-     $dbh->do($query);
-     
-     $dbh->disconnect;
- } # sub updatewebsite
- 
- 
- sub deletewebsite {
-     my ($websitenumber) = @_;
-     my $dbh = C4Connect;
-     my $query = "Delete from websites where websitenumber = $websitenumber";
-     
-     $dbh->do($query);
-     
-     $dbh->disconnect;
- } # sub deletewebsite
  
  
--- 620,623 ----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]