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);
20 %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
22 # your exported package globals go here,
23 # as well as any optionally exported functions
25 @EXPORT_OK = qw($Var1 %Hashit);
28 # non-exported package globals go here
29 use vars qw(@more $stuff);
31 # initalize package globals, first exported ones
36 # then the others (which are still accessible as $Some::Module::stuff)
40 # all file-scoped lexicals must be created before
41 # the functions below that use them.
43 # file-private lexicals go here
47 # here's a file-private function as a closure,
48 # callable as &$priv_func; it cannot be prototyped.
53 # make all your functions, whether exported or not;
58 my $sth=$dbh->prepare("select shelfnumber,shelfname from bookshelf");
61 while (my ($shelfnumber, $shelfname) = $sth->fetchrow) {
62 my $sti=$dbh->prepare("select count(*) from shelfcontents where shelfnumber=$shelfnumber");
64 my ($count) = $sti->fetchrow;
65 $shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
66 $shelflist{$shelfnumber}->{'count'}=$count;
72 sub GetShelfContents {
73 my ($env, $shelfnumber) = @_;
75 my $sth=$dbh->prepare("select itemnumber from shelfcontents where shelfnumber=$shelfnumber order by itemnumber");
77 while (my ($itemnumber) = $sth->fetchrow) {
78 my ($item) = getiteminformation($env, $itemnumber, 0);
79 push (@itemlist, $item);
85 my ($env, $itemnumber, $shelfnumber) = @_;
86 my $sth=$dbh->prepare("select * from shelfcontents where shelfnumber=$shelfnumber and itemnumber=$itemnumber");
91 $sth=$dbh->prepare("insert into shelfcontents (shelfnumber, itemnumber, flags) values ($shelfnumber, $itemnumber, 0)");
97 my ($env, $itemnumber, $shelfnumber) = @_;
98 my $sth=$dbh->prepare("delete from shelfcontents where shelfnumber=$shelfnumber and itemnumber=$itemnumber");
103 my ($env, $shelfname) = @_;
104 my $q_shelfname=$dbh->quote($shelfname);
105 my $sth=$dbh->prepare("select * from bookshelf where shelfname=$q_shelfname");
108 return(1, "Shelf \"$shelfname\" already exists");
110 $sth=$dbh->prepare("insert into bookshelf (shelfname) values ($q_shelfname)");
117 my ($env, $shelfnumber) = @_;
118 my $sth=$dbh->prepare("select count(*) from shelfcontents where shelfnumber=$shelfnumber");
120 my ($count)=$sth->fetchrow;
122 return (1, "Shelf has $count items on it. Please remove all items before deleting this shelf.");
124 $sth=$dbh->prepare("delete from bookshelf where shelfnumber=$shelfnumber");
131 END { } # module clean-up code here (global destructor)
136 # Revision 1.3 2002/07/02 17:48:06 tonnesen
137 # Merged in updates from rel-1-2
139 # Revision 1.2.2.1 2002/06/26 20:46:48 tonnesen
140 # Inserting some changes I made locally a while ago.