[Koha-cvs] CVS: koha/C4 BookShelves.pm,1.11.2.1,1.11.2.2

Paul POULAIN tipaul at users.sourceforge.net
Thu Feb 19 11:15:44 CET 2004


Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22735/C4

Modified Files:
      Tag: rel_2_0
	BookShelves.pm 
Log Message:
new feature : adding book to bookshelf from biblio detail screen.

Index: BookShelves.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/BookShelves.pm,v
retrieving revision 1.11.2.1
retrieving revision 1.11.2.2
diff -C2 -r1.11.2.1 -r1.11.2.2
*** BookShelves.pm	6 Feb 2004 14:16:55 -0000	1.11.2.1
--- BookShelves.pm	19 Feb 2004 10:15:41 -0000	1.11.2.2
***************
*** 54,58 ****
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &RemoveFromShelf &AddShelf &RemoveShelf);
  
  my $dbh = C4::Context->dbh;
--- 54,59 ----
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &AddToShelfFromBiblio
! 				&RemoveFromShelf &AddShelf &RemoveShelf);
  
  my $dbh = C4::Context->dbh;
***************
*** 86,104 ****
  # hash.
  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;
      my %shelflist;
!     while (my ($shelfnumber, $shelfname) = $sth->fetchrow) {
! 	my $sti=$dbh->prepare("select count(*) from shelfcontents where shelfnumber=?");
! 		# FIXME - Should there be an "order by" in here somewhere?
! 	$sti->execute($shelfnumber);
! 	my ($count) = $sti->fetchrow;
  	$shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
  	$shelflist{$shelfnumber}->{'count'}=$count;
--- 87,99 ----
  # hash.
  sub GetShelfList {
!     my $sth=$dbh->prepare("SELECT		bookshelf.shelfnumber, bookshelf.shelfname,
! 							count(shelfcontents.itemnumber) as count
! 								FROM		bookshelf
! 								LEFT JOIN	shelfcontents
! 								ON		bookshelf.shelfnumber = shelfcontents.shelfnumber
! 								GROUP BY	bookshelf.shelfnumber order by shelfname");
      $sth->execute;
      my %shelflist;
!     while (my ($shelfnumber, $shelfname,$count) = $sth->fetchrow) {
  	$shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
  	$shelflist{$shelfnumber}->{'count'}=$count;
***************
*** 157,160 ****
--- 152,170 ----
  	}
  }
+ sub AddToShelfFromBiblio {
+ 	my ($env, $biblionumber, $shelfnumber) = @_;
+ 	return unless $biblionumber;
+ 	my $sth = $dbh->prepare("select itemnumber from items where biblionumber=?");
+ 	$sth->execute($biblionumber);
+ 	my ($itemnumber) = $sth->fetchrow;
+ 	$sth=$dbh->prepare("select * from shelfcontents where shelfnumber=? and itemnumber=?");
+ 	$sth->execute($shelfnumber, $itemnumber);
+ 	if ($sth->rows) {
+ # already on shelf
+ 	} else {
+ 		$sth=$dbh->prepare("insert into shelfcontents (shelfnumber, itemnumber, flags) values (?, ?, 0)");
+ 		$sth->execute($shelfnumber, $itemnumber);
+ 	}
+ }
  
  =item RemoveFromShelf
***************
*** 240,243 ****
--- 250,256 ----
  #
  # $Log$
+ # Revision 1.11.2.2  2004/02/19 10:15:41  tipaul
+ # new feature : adding book to bookshelf from biblio detail screen.
+ #
  # Revision 1.11.2.1  2004/02/06 14:16:55  tipaul
  # fixing bugs in bookshelves management.





More information about the Koha-cvs mailing list