koha-devel
[Top][All Lists]
Advanced

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

[Koha-devel] CVS: koha/C4 BookShelves.pm,NONE,1.1


From: Steve Tonnesen
Subject: [Koha-devel] CVS: koha/C4 BookShelves.pm,NONE,1.1
Date: Wed, 07 Feb 2001 12:27:19 -0800

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

Added Files:
        BookShelves.pm 
Log Message:
Start of code to implement virtual bookshelves in Koha.


--- NEW FILE ---
package C4::BookShelves; #asummes C4/BookShelves

#
# $Header: /cvsroot/koha/koha/C4/BookShelves.pm,v 1.1 2001/02/07 20:27:17 
tonnesen Exp $
#
#requires DBI.pm to be installed

use strict;
require Exporter;
use DBI;
use C4::Database;
use C4::Circulation::Circ2;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
  
# set the version for version checking
$VERSION = 0.01;
    
@ISA = qw(Exporter);
@EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &RemoveFromShelf 
&AddShelf &RemoveShelf);

sub AddShelf {
}

sub RemoveShelf {
}
%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;

my $dbh=C4Connect();

sub GetShelfList {
    my $sth=$dbh->prepare("select shelfnumber,shelfname from bookshelf");
    $sth->execute;
    my %shelflist;
    while (my ($shelfnumber, $shelfname) = $sth->fetchrow) {
        my $sti=$dbh->prepare("select count(*) from shelfcontents where 
shelfnumber=$shelfnumber");
        $sti->execute;
        my ($count) = $sti->fetchrow;
        $shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
        $shelflist{$shelfnumber}->{'count'}=$count;
    }
    return(\%shelflist);
}


sub GetShelfContents {
    my ($env, $shelfnumber) = @_;
    my @itemlist;
    my $sth=$dbh->prepare("select itemnumber from shelfcontents where 
shelfnumber=$shelfnumber order by itemnumber");
    $sth->execute;
    while (my ($itemnumber) = $sth->fetchrow) {
        my ($item) = getiteminformation($env, $itemnumber, 0);
        push (@itemlist, $item);
    }
    return (address@hidden);
}

sub AddToShelf {
    my ($env, $itemnumber, $shelfnumber) = @_;
    my $sth=$dbh->prepare("select * from shelfcontents where 
shelfnumber=$shelfnumber and itemnumber=$itemnumber");
    $sth->execute;
    if ($sth->rows) {
# already on shelf
    } else {
        $sth=$dbh->prepare("insert into shelfcontents (shelfnumber, itemnumber, 
flags) values ($shelfnumber, $itemnumber, 0)");
        $sth->execute;
    }
}

sub RemoveFromShelf {
    my ($env, $itemnumber, $shelfnumber) = @_;
    my $sth=$dbh->prepare("delete from shelfcontents where 
shelfnumber=$shelfnumber and itemnumber=$itemnumber");
    $sth->execute;
}

sub AddShelf {
    my ($env, $shelfname) = @_;
    my $q_shelfname=$dbh->quote($shelfname);
    my $sth=$dbh->prepare("select * from bookshelf where 
shelfname=$q_shelfname");
    $sth->execute;
    if ($sth->rows) {
        return(0, "Shelf \"$shelfname\" already exists");
    } else {
        $sth=$dbh->prepare("insert into bookshelf (shelfname) values 
($q_shelfname)");
        $sth->execute;
        return (1, "Done");
    }
}

sub RemoveShelf {
    my ($env, $shelfnumber) = @_;
    my $sth=$dbh->prepare("select count(*) from shelfcontents where 
shelfnumber=$shelfnumber");
    $sth->execute;
    my ($count)=$sth->fetchrow;
    if ($count) {
        return (0, "Shelf has $count items on it");
    } else {
        $sth=$dbh->prepare("delete from bookshelf where 
shelfnumber=$shelfnumber");
        $sth->execute;
        return (1, "Done");
    }
}

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


#
# $Log: BookShelves.pm,v $
# Revision 1.1  2001/02/07 20:27:17  tonnesen
# Start of code to implement virtual bookshelves in Koha.
#
#




reply via email to

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