[Koha-cvs] CVS: koha/C4 BookShelves.pm,1.2.2.2,1.2.2.3

Steve Tonnesen tonnesen at users.sourceforge.net
Mon Oct 28 18:45:17 CET 2002


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

Modified Files:
      Tag: rel-1-2
	BookShelves.pm 
Log Message:
Merging from trunk to rel-1-2


Index: BookShelves.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/BookShelves.pm,v
retrieving revision 1.2.2.2
retrieving revision 1.2.2.3
diff -C2 -r1.2.2.2 -r1.2.2.3
*** BookShelves.pm	14 Aug 2002 18:30:50 -0000	1.2.2.2
--- BookShelves.pm	28 Oct 2002 17:45:15 -0000	1.2.2.3
***************
*** 6,9 ****
--- 6,10 ----
  #requires DBI.pm to be installed
  
+ # $Id$
  
  # Copyright 2000-2002 Katipo Communications
***************
*** 29,77 ****
  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);
- %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;
--- 30,71 ----
  use C4::Database;
  use C4::Circulation::Circ2;
! use vars qw($VERSION @ISA @EXPORT);
! 
  # set the version for version checking
  $VERSION = 0.01;
! 
! =head1 NAME
! 
! C4::BookShelves - Functions for manipulating Koha virtual bookshelves
! 
! =head1 SYNOPSIS
! 
!   use C4::BookShelves;
! 
! =head1 DESCRIPTION
! 
! This module provides functions for manipulating virtual bookshelves,
! including creating and deleting bookshelves, and adding and removing
! items to and from bookshelves.
! 
! =head1 FUNCTIONS
! 
! =over 2
! 
! =cut
! 
  @ISA = qw(Exporter);
  @EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &RemoveFromShelf &AddShelf &RemoveShelf);
  
  my $dbh=C4Connect();
  
  sub GetShelfList {
+     # FIXME - These two database queries can be combined into one:
+     #	SELECT		bookshelf.shelfnumber, bookshelf.shelfname,
+     #			count(shelfcontents.itemnumber)
+     #	FROM		bookshelf
+     #	LEFT JOIN	shelfcontents
+     #	ON		bookshelf.shelfnumber = shelfcontents.shelfnumber
+     #	GROUP BY	bookshelf.shelfnumber
      my $sth=$dbh->prepare("select shelfnumber,shelfname from bookshelf");
      $sth->execute;
***************
*** 79,82 ****
--- 73,77 ----
      while (my ($shelfnumber, $shelfname) = $sth->fetchrow) {
  	my $sti=$dbh->prepare("select count(*) from shelfcontents where shelfnumber=$shelfnumber");
+ 		# FIXME - Should there be an "order by" in here somewhere?
  	$sti->execute;
  	my ($count) = $sti->fetchrow;
***************
*** 87,91 ****
--- 82,99 ----
  }
  
+ =item GetShelfContents
  
+   $itemlist = &GetShelfContents($env, $shelfnumber);
+ 
+ Looks up information about the contents of virtual bookshelf number
+ C<$shelfnumber>.
+ 
+ Returns a reference-to-array, whose elements are references-to-hash,
+ as returned by C<&getiteminformation>.
+ 
+ I don't know what C<$env> is.
+ 
+ =cut
+ #'
  sub GetShelfContents {
      my ($env, $shelfnumber) = @_;
***************
*** 98,103 ****
--- 106,124 ----
      }
      return (\@itemlist);
+ 		# FIXME - Wouldn't it be more intuitive to return a list,
+ 		# rather than a reference-to-list?
  }
  
+ =item AddToShelf
+ 
+   &AddToShelf($env, $itemnumber, $shelfnumber);
+ 
+ Adds item number C<$itemnumber> to virtual bookshelf number
+ C<$shelfnumber>, unless that item is already on that shelf.
+ 
+ C<$env> is ignored.
+ 
+ =cut
+ #'
  sub AddToShelf {
      my ($env, $itemnumber, $shelfnumber) = @_;
***************
*** 108,115 ****
--- 129,150 ----
      } else {
  	$sth=$dbh->prepare("insert into shelfcontents (shelfnumber, itemnumber, flags) values ($shelfnumber, $itemnumber, 0)");
+ 			# FIXME - The default for 'flags' is NULL.
+ 			# Why set it to 0?
  	$sth->execute;
      }
  }
  
+ =item RemoveFromShelf
+ 
+   &RemoveFromShelf($env, $itemnumber, $shelfnumber);
+ 
+ Removes item number C<$itemnumber> from virtual bookshelf number
+ C<$shelfnumber>. If the item wasn't on that bookshelf to begin with,
+ nothing happens.
+ 
+ C<$env> is ignored.
+ 
+ =cut
+ #'
  sub RemoveFromShelf {
      my ($env, $itemnumber, $shelfnumber) = @_;
***************
*** 118,121 ****
--- 153,172 ----
  }
  
+ =item AddShelf
+ 
+   ($status, $msg) = &AddShelf($env, $shelfname);
+ 
+ Creates a new virtual bookshelf with name C<$shelfname>.
+ 
+ Returns a two-element array, where C<$status> is 0 if the operation
+ was successful, or non-zero otherwise. C<$msg> is "Done" in case of
+ success, or an error message giving the reason for failure.
+ 
+ C<$env> is ignored.
+ 
+ =cut
+ #'
+ # FIXME - Perhaps this could/should return the number of the new bookshelf
+ # as well?
  sub AddShelf {
      my ($env, $shelfname) = @_;
***************
*** 132,135 ****
--- 183,201 ----
  }
  
+ =item RemoveShelf
+ 
+   ($status, $msg) = &RemoveShelf($env, $shelfnumber);
+ 
+ Deletes virtual bookshelf number C<$shelfnumber>. The bookshelf must
+ be empty.
+ 
+ Returns a two-element array, where C<$status> is 0 if the operation
+ was successful, or non-zero otherwise. C<$msg> is "Done" in case of
+ success, or an error message giving the reason for failure.
+ 
+ C<$env> is ignored.
+ 
+ =cut
+ #'
  sub RemoveShelf {
      my ($env, $shelfnumber) = @_;
***************
*** 146,155 ****
  }
  
- 			
  END { }       # module clean-up code here (global destructor)
  
  
  #
  # $Log$
  # Revision 1.2.2.2  2002/08/14 18:30:50  tonnesen
  # Adding copyright statements to all .pl and .pm files in rel-1-2 branch
--- 212,224 ----
  }
  
  END { }       # module clean-up code here (global destructor)
  
+ 1;
  
  #
  # $Log$
+ # Revision 1.2.2.3  2002/10/28 17:45:15  tonnesen
+ # Merging from trunk to rel-1-2
+ #
  # Revision 1.2.2.2  2002/08/14 18:30:50  tonnesen
  # Adding copyright statements to all .pl and .pm files in rel-1-2 branch
***************
*** 159,160 ****
--- 228,243 ----
  #
  #
+ 
+ __END__
+ 
+ =back
+ 
+ =head1 AUTHOR
+ 
+ Koha Developement team <info at koha.org>
+ 
+ =head1 SEE ALSO
+ 
+ C4::Circulation::Circ2(3)
+ 
+ =cut





More information about the Koha-cvs mailing list