1 package C4::BookShelves; #asummes C4/BookShelves
6 #requires DBI.pm to be installed
12 use C4::Circulation::Circ2;
13 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
15 # set the version for version checking
19 @EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &RemoveFromShelf &AddShelf &RemoveShelf);
26 %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
28 # your exported package globals go here,
29 # as well as any optionally exported functions
31 @EXPORT_OK = qw($Var1 %Hashit);
34 # non-exported package globals go here
35 use vars qw(@more $stuff);
37 # initalize package globals, first exported ones
42 # then the others (which are still accessible as $Some::Module::stuff)
46 # all file-scoped lexicals must be created before
47 # the functions below that use them.
49 # file-private lexicals go here
53 # here's a file-private function as a closure,
54 # callable as &$priv_func; it cannot be prototyped.
59 # make all your functions, whether exported or not;
64 my $sth=$dbh->prepare("select shelfnumber,shelfname from bookshelf");
67 while (my ($shelfnumber, $shelfname) = $sth->fetchrow) {
68 my $sti=$dbh->prepare("select count(*) from shelfcontents where shelfnumber=$shelfnumber");
70 my ($count) = $sti->fetchrow;
71 $shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
72 $shelflist{$shelfnumber}->{'count'}=$count;
78 sub GetShelfContents {
79 my ($env, $shelfnumber) = @_;
81 my $sth=$dbh->prepare("select itemnumber from shelfcontents where shelfnumber=$shelfnumber order by itemnumber");
83 while (my ($itemnumber) = $sth->fetchrow) {
84 my ($item) = getiteminformation($env, $itemnumber, 0);
85 push (@itemlist, $item);
91 my ($env, $itemnumber, $shelfnumber) = @_;
92 my $sth=$dbh->prepare("select * from shelfcontents where shelfnumber=$shelfnumber and itemnumber=$itemnumber");
97 $sth=$dbh->prepare("insert into shelfcontents (shelfnumber, itemnumber, flags) values ($shelfnumber, $itemnumber, 0)");
102 sub RemoveFromShelf {
103 my ($env, $itemnumber, $shelfnumber) = @_;
104 my $sth=$dbh->prepare("delete from shelfcontents where shelfnumber=$shelfnumber and itemnumber=$itemnumber");
109 my ($env, $shelfname) = @_;
110 my $q_shelfname=$dbh->quote($shelfname);
111 my $sth=$dbh->prepare("select * from bookshelf where shelfname=$q_shelfname");
114 return(0, "Shelf \"$shelfname\" already exists");
116 $sth=$dbh->prepare("insert into bookshelf (shelfname) values ($q_shelfname)");
123 my ($env, $shelfnumber) = @_;
124 my $sth=$dbh->prepare("select count(*) from shelfcontents where shelfnumber=$shelfnumber");
126 my ($count)=$sth->fetchrow;
128 return (0, "Shelf has $count items on it");
130 $sth=$dbh->prepare("delete from bookshelf where shelfnumber=$shelfnumber");
137 END { } # module clean-up code here (global destructor)
142 # Revision 1.1 2001/02/07 20:27:17 tonnesen
143 # Start of code to implement virtual bookshelves in Koha.