=cut
@ISA = qw(Exporter);
-@EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &AddToShelfFromBiblio
- &RemoveFromShelf &AddShelf &RemoveShelf
- &ShelfPossibleAction);
+@EXPORT = qw(&GetShelfList &GetShelfContents &GetShelf
+ &AddToShelf &AddToShelfFromBiblio
+ &RemoveFromShelf &AddShelf &ModifShelf
+ &RemoveShelf &ShelfPossibleAction
+ );
my $dbh = C4::Context->dbh;
my ($owner,$mincategory) = @_;
# mincategory : 2 if the list is for "look". 3 if the list is for "Select bookshelf for adding a book".
# bookshelves of the owner are always selected, whatever the category
- my $sth=$dbh->prepare("SELECT bookshelf.shelfnumber, bookshelf.shelfname,owner,surname,firstname,
+ my $sth=$dbh->prepare("SELECT bookshelf.shelfnumber, bookshelf.shelfname,owner,surname,firstname,category,
count(shelfcontents.itemnumber) as count
FROM bookshelf
LEFT JOIN shelfcontents
GROUP BY bookshelf.shelfnumber order by shelfname");
$sth->execute($owner,$mincategory);
my %shelflist;
- while (my ($shelfnumber, $shelfname,$owner,$surname,$firstname,$count) = $sth->fetchrow) {
+ while (my ($shelfnumber, $shelfname,$owner,$surname,$firstname,$category,$count) = $sth->fetchrow) {
$shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
$shelflist{$shelfnumber}->{'count'}=$count;
+ $shelflist{$shelfnumber}->{'category'}=$category;
$shelflist{$shelfnumber}->{'owner'}=$owner;
$shelflist{$shelfnumber}->{surname} = $surname;
$shelflist{$shelfnumber}->{firstname} = $firstname;
return(\%shelflist);
}
+sub GetShelf {
+ my ($shelfnumber) = @_;
+ my $sth=$dbh->prepare("select shelfnumber,shelfname,owner,category from bookshelf where shelfnumber=?");
+ $sth->execute($shelfnumber);
+ return $sth->fetchrow;
+}
=item GetShelfContents
$itemlist = &GetShelfContents($env, $shelfnumber);
C<$env> is ignored.
=cut
-#'
-# FIXME - Perhaps this could/should return the number of the new bookshelf
-# as well?
+
sub AddShelf {
- my ($env, $shelfname,$owner,$category) = @_;
+ my ($env, $shelfname, $owner, $category) = @_;
my $sth=$dbh->prepare("select * from bookshelf where shelfname=?");
$sth->execute($shelfname);
if ($sth->rows) {
- return(1, "Shelf \"$shelfname\" already exists");
+ return(1, "Shelf \"$shelfname\" already exists");
} else {
- $sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) values (?,?,?)");
- $sth->execute($shelfname,$owner,$category);
- return (0, "Done");
+ $sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) values (?,?,?)");
+ $sth->execute($shelfname,$owner,$category);
+ my $shelfnumber = $dbh->{'mysql_insertid'};
+ return (0, "Done",$shelfnumber);
}
}
+sub ModifShelf {
+ my ($shelfnumber, $shelfname, $owner, $category) = @_;
+ my $sth = $dbh->prepare("update bookshelf set shelfname=?,owner=?,category=? where shelfnumber=?");
+ $sth->execute($shelfname,$owner,$category,$shelfnumber);
+}
+
=item RemoveShelf
($status, $msg) = &RemoveShelf($env, $shelfnumber);
#
# $Log$
+# Revision 1.15 2004/12/16 11:30:58 tipaul
+# adding bookshelf features :
+# * create bookshelf on the fly
+# * modify a bookshelf name & status
+#
+# Revision 1.14 2004/12/15 17:28:23 tipaul
+# adding bookshelf features :
+# * create bookshelf on the fly
+# * modify a bookshelf (this being not finished, will commit the rest soon)
+#
# Revision 1.13 2004/03/11 16:06:20 tipaul
# *** empty log message ***
#