koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] CVS: koha/C4 BookShelves.pm,1.12,1.13


From: Paul POULAIN
Subject: [Koha-cvs] CVS: koha/C4 BookShelves.pm,1.12,1.13
Date: Thu, 11 Mar 2004 08:06:23 -0800

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

Modified Files:
        BookShelves.pm 
Log Message:


Index: BookShelves.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/BookShelves.pm,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** BookShelves.pm      11 Feb 2004 08:40:09 -0000      1.12
--- BookShelves.pm      11 Mar 2004 16:06:20 -0000      1.13
***************
*** 54,61 ****
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &RemoveFromShelf 
&AddShelf &RemoveShelf);
  
  my $dbh = C4::Context->dbh;
  
  =item GetShelfList
  
--- 54,87 ----
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &AddToShelfFromBiblio
!                               &RemoveFromShelf &AddShelf &RemoveShelf
!                               &ShelfPossibleAction);
  
  my $dbh = C4::Context->dbh;
  
+ =item ShelfPossibleAction
+ 
+ =over 4
+ 
+ =item C<$loggedinuser,$shelfnumber,$action>
+ 
+ $action can be "view" or "manage".
+ 
+ Returns 1 if the user can do the $action in the $shelfnumber shelf.
+ Returns 0 otherwise.
+ 
+ =back
+ 
+ =cut
+ sub ShelfPossibleAction {
+       my ($loggedinuser,$shelfnumber,$action)= @_;
+       my $sth = $dbh->prepare("select owner,category from bookshelf where 
shelfnumber=?");
+       $sth->execute($shelfnumber);
+       my ($owner,$category) = $sth->fetchrow;
+       return 1 if (($category>=3 or $owner eq $loggedinuser) && $action eq 
'manage');
+       return 1 if (($category>= 2 or $owner eq $loggedinuser) && $action eq 
'view');
+       return 0;
+ }
+ 
  =item GetShelfList
  
***************
*** 86,106 ****
  # 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;
      }
      return(\%shelflist);
--- 112,134 ----
  # hash.
  sub GetShelfList {
!       my ($owner,$mincategory) = @_;
!       # mincategory : 2 if the list is for "look". 3 if the list is for 
"Select bookshelf for adding a book".
!       # bookshelves of the owner are always selected, whatever the category
!       my $sth=$dbh->prepare("SELECT           bookshelf.shelfnumber, 
bookshelf.shelfname,owner,surname,firstname,
!                                                       
count(shelfcontents.itemnumber) as count
!                                                               FROM            
bookshelf
!                                                               LEFT JOIN       
shelfcontents
!                                                               ON              
bookshelf.shelfnumber = shelfcontents.shelfnumber
!                                                               left join 
borrowers on bookshelf.owner = borrowers.borrowernumber
!                                                               where owner=? 
or category>=?
!                                                               GROUP BY        
bookshelf.shelfnumber order by shelfname");
!     $sth->execute($owner,$mincategory);
      my %shelflist;
!     while (my ($shelfnumber, $shelfname,$owner,$surname,$firstname,$count) = 
$sth->fetchrow) {
        $shelflist{$shelfnumber}->{'shelfname'}=$shelfname;
        $shelflist{$shelfnumber}->{'count'}=$count;
+       $shelflist{$shelfnumber}->{'owner'}=$owner;
+       $shelflist{$shelfnumber}->{surname} = $surname;
+       $shelflist{$shelfnumber}->{firstname} = $firstname;
      }
      return(\%shelflist);
***************
*** 157,160 ****
--- 185,203 ----
        }
  }
+ 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
***************
*** 193,197 ****
  # as well?
  sub AddShelf {
!     my ($env, $shelfname) = @_;
      my $sth=$dbh->prepare("select * from bookshelf where shelfname=?");
        $sth->execute($shelfname);
--- 236,240 ----
  # as well?
  sub AddShelf {
!     my ($env, $shelfname,$owner,$category) = @_;
      my $sth=$dbh->prepare("select * from bookshelf where shelfname=?");
        $sth->execute($shelfname);
***************
*** 199,204 ****
        return(1, "Shelf \"$shelfname\" already exists");
      } else {
!       $sth=$dbh->prepare("insert into bookshelf (shelfname) values (?)");
!       $sth->execute($shelfname);
        return (0, "Done");
      }
--- 242,247 ----
        return(1, "Shelf \"$shelfname\" already exists");
      } else {
!       $sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) 
values (?,?,?)");
!       $sth->execute($shelfname,$owner,$category);
        return (0, "Done");
      }
***************
*** 240,245 ****
  #
  # $Log$
! # Revision 1.12  2004/02/11 08:40:09  tipaul
! # synch'ing 2.0.0 branch and head
  #
  # Revision 1.11.2.1  2004/02/06 14:16:55  tipaul
--- 283,291 ----
  #
  # $Log$
! # Revision 1.13  2004/03/11 16:06:20  tipaul
! # *** empty log message ***
! #
! # 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




reply via email to

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