koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] koha/C4 Suggestions.pm


From: Antoine Farnault
Subject: [Koha-cvs] koha/C4 Suggestions.pm
Date: Fri, 07 Jul 2006 08:44:57 +0000

CVSROOT:        /sources/koha
Module name:    koha
Changes by:     Antoine Farnault <toins>        06/07/07 08:44:57

Modified files:
        C4             : Suggestions.pm 

Log message:
        Code cleaning :
        Pod added or rewrited, Sub renamed...

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Suggestions.pm?cvsroot=koha&r1=1.10&r2=1.11

Patches:
Index: Suggestions.pm
===================================================================
RCS file: /sources/koha/koha/C4/Suggestions.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- Suggestions.pm      4 Jul 2006 14:36:51 -0000       1.10
+++ Suggestions.pm      7 Jul 2006 08:44:57 -0000       1.11
@@ -1,7 +1,5 @@
 package C4::Suggestions;
 
-# $Id: Suggestions.pm,v 1.10 2006/07/04 14:36:51 toins Exp $
-
 # Copyright 2000-2002 Katipo Communications
 #
 # This file is part of Koha.
@@ -19,25 +17,27 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
+# $Id: Suggestions.pm,v 1.11 2006/07/07 08:44:57 toins Exp $
+
 use strict;
 require Exporter;
 use DBI;
 use C4::Context;
 use C4::Output;
 use Mail::Sendmail;
-# use C4::Interface::CGI::Output;
 use vars qw($VERSION @ISA @EXPORT);
 
 # set the version for version checking
-$VERSION = 0.01;
+$VERSION = do { my @v = '$Revision: 1.11 $' =~ /\d+/g;
+  shift(@v) . "." . join("_", map {sprintf "%03d", $_ } @v); };
 
 =head1 NAME
 
-C4::Accounts - Functions for dealing with Koha authorities
+C4::Suggestions - Some useful functions for dealings with suggestions.
 
 =head1 SYNOPSIS
 
-  use C4::Suggestions;
+use C4::Suggestions;
 
 =head1 DESCRIPTION
 
@@ -58,21 +58,22 @@
 =cut
 
 @ISA = qw(Exporter);
address@hidden = qw(    &newsuggestion
-                               &searchsuggestion
-                               &getsuggestion
-                               &delsuggestion
-                               &countsuggestion
-                               &changestatus
-                               &connectSuggestionAndBiblio
-                               &findsuggestion_from_biblionumber
address@hidden = qw(
+    &NewSuggestion
+    &SearchSuggestion
+    &GetSuggestion
+    &DelSuggestion
+    &CountSuggestion
+    &ModStatus
+    &ConnectSuggestionAndBiblio
+    &GetSuggestionFromBiblionumber
                        );
 
 =item SearchSuggestion
 
-  (address@hidden) = &SearchSuggestion($user)
+(address@hidden) = &SearchSuggestion($user)
 
-  searches for a suggestion
+searches for a suggestion
 
 C<$user> is the user code (used as suggestor filter)
 
@@ -83,16 +84,20 @@
 * as parameter ( for example ASKED => 1, or REJECTED => 1) . This is for 
template & translation purposes.
 
 =cut
-sub searchsuggestion  {
+sub SearchSuggestion  {
        my 
($user,$author,$title,$publishercode,$status,$suggestedbyme)address@hidden;
        my $dbh = C4::Context->dbh;
-       my $query="Select suggestions.*,
-                                               U1.surname as 
surnamesuggestedby,U1.firstname as firstnamesuggestedby,
-                                               U2.surname as 
surnamemanagedby,U2.firstname as firstnamemanagedby 
-                                               from suggestions
-                                               left join borrowers as U1 on 
suggestedby=U1.borrowernumber
-                                               left join borrowers as U2  on 
managedby=U2.borrowernumber
-                                               where 1=1";
+    my $query = qq|
+    SELECT suggestions.*,
+        U1.surname   AS surnamesuggestedby,
+        U1.firstname AS firstnamesuggestedby,
+        U2.surname   AS surnamemanagedby,
+        U2.firstname AS firstnamemanagedby
+    FROM suggestions
+    LEFT JOIN borrowers AS U1 ON suggestedby=U1.borrowernumber
+    LEFT JOIN borrowers AS U2 ON managedby=U2.borrowernumber
+    WHERE 1=1 |;
+
        my @sql_params;
        if ($author) {
                push @sql_params,"%".$author."%";
@@ -121,7 +126,7 @@
                }
        }
        if ($suggestedbyme) {
-               if ($suggestedbyme eq -1) {
+        if ($suggestedbyme eq -1) {        # FIXME ! what's this strange code ?
                } else {
                        push @sql_params,$user;
                        $query .= " and suggestedby=?";
@@ -146,89 +151,196 @@
        return (address@hidden);
 }
 
-sub newsuggestion {
+=item NewSuggestion
+
+&NewSuggestion($borrowernumber,$title,$author,$publishercode,$note,$copyrightdate,$volumedesc,$publicationyear,$place,$isbn,$biblionumber)
+
+Insert a new suggestion on database with value given on input arg.
+
+=cut
+sub NewSuggestion {
        my 
($borrowernumber,$title,$author,$publishercode,$note,$copyrightdate,$volumedesc,$publicationyear,$place,$isbn,$biblionumber)
 = @_;
        my $dbh = C4::Context->dbh;
-       my $sth = $dbh->prepare("insert into suggestions 
(status,suggestedby,title,author,publishercode,note,copyrightdate,volumedesc,publicationyear,place,isbn,biblionumber)
 values ('ASKED',?,?,?,?,?,?,?,?,?,?,?)");
+    my $query = qq |
+        INSERT INTO suggestions
+            (status,suggestedby,title,author,publishercode,note,copyrightdate,
+            volumedesc,publicationyear,place,isbn,biblionumber)
+        VALUES ('ASKED',?,?,?,?,?,?,?,?,?,?,?)
+    |;
+    my $sth = $dbh->prepare($query);
        
$sth->execute($borrowernumber,$title,$author,$publishercode,$note,$copyrightdate,$volumedesc,$publicationyear,$place,$isbn,$biblionumber);
      
 }
 
-sub getsuggestion {
+=item GetSuggestion
+
+\%sth = &GetSuggestion($suggestionid)
+
+this function get a suggestion from $suggestionid given on input arg.
+
+return :
+    the result of the SQL query as a hash : $sth->fetchrow_hashref.
+=cut
+sub GetSuggestion {
        my ($suggestionid) = @_;
        my $dbh = C4::Context->dbh;
-       my $sth = $dbh->prepare("select * from suggestions where 
suggestionid=?");
+    my $query = qq|
+        SELECT *
+        FROM   suggestions
+        WHERE  suggestionid=?
+    |;
+    my $sth = $dbh->prepare($query);
        $sth->execute($suggestionid);
        return($sth->fetchrow_hashref);
 }
 
-sub delsuggestion {
+=item DelSuggestion
+
+&DelSuggestion($borrowernumber,$suggestionid)
+
+Delete a suggestion. A borrower can delete a suggestion only if he is its 
owner.
+
+=cut
+sub DelSuggestion {
        my ($borrowernumber,$suggestionid) = @_;
        my $dbh = C4::Context->dbh;
        # check that the suggestion comes from the suggestor
-       my $sth = $dbh->prepare("select suggestedby from suggestions where 
suggestionid=?");
+    my $query = qq |
+        SELECT suggestedby
+        FROM   suggestions
+        WHERE  suggestionid=?
+    |;
+    my $sth = $dbh->prepare($query);
        $sth->execute($suggestionid);
        my ($suggestedby) = $sth->fetchrow;
        if ($suggestedby eq $borrowernumber) {
-               $sth = $dbh->prepare("delete from suggestions where 
suggestionid=?");
+        my $queryDelete = qq|
+            DELETE FROM suggestions
+            WHERE suggestionid=?
+        |;
+        $sth = $dbh->prepare($queryDelete);
                $sth->execute($suggestionid);
        }
 }
+=item CountSuggestion
+
+&CountSuggestion($status)
+
+Count the number of suggestions with the status given on input argument.
+
+return :
+the number of suggestion with this status.
 
-sub countsuggestion {
+=cut
+sub CountSuggestion {
        my ($status) = @_;
        my $dbh = C4::Context->dbh;
        my $sth;
        if (C4::Context->preference("IndependantBranches")){
                my $userenv = C4::Context->userenv;
                if ($userenv->{flags} == 1){
-                       $sth = $dbh->prepare("select count(*) from suggestions 
where status=?");
+            my $query = qq |
+                SELECT count(*)
+                FROM   suggestions
+                WHERE  status=?
+            |;
+            $sth = $dbh->prepare($query);
                        $sth->execute($status);
-               } else {
-                       $sth = $dbh->prepare("select count(*) from 
suggestions,borrowers where status=? and 
borrowers.borrowernumber=suggestions.suggestedby and (borrowers.branchcode='' 
or borrowers.branchcode =?)");
+        }
+        else {
+            my $query = qq |
+                SELECT count(*)
+                FROM suggestions,borrowers
+                WHERE status=?
+                AND borrowers.borrowernumber=suggestions.suggestedby
+                AND (borrowers.branchcode='' OR borrowers.branchcode =?)
+            |;
+            $sth = $dbh->prepare($query);
                        $sth->execute($status,$userenv->{branch});
                }
-       } else {
-               $sth = $dbh->prepare("select count(*) from suggestions where 
status=?");
+    }
+    else {
+        my $query = qq |
+            SELECT count(*)
+            FROM suggestions
+            WHERE status=?
+        |;
+         $sth = $dbh->prepare($query);
                $sth->execute($status);
        }
        my ($result) = $sth->fetchrow;
        return $result;
 }
 
-sub changestatus {
+=item ModStatus
+
+&ModStatus($suggestionid,$status,$managedby,$biblionumber)
+
+Modify the status (status can be 'ASKED', 'ACCEPTED', 'REJECTED'...)
+and send a mail to notify the librarian.
+=cut
+sub ModStatus {
        my ($suggestionid,$status,$managedby,$biblionumber) = @_;
        my $dbh = C4::Context->dbh;
        my $sth;
        if ($managedby>0) {
                if ($biblionumber) {
-                       $sth = $dbh->prepare("update suggestions set 
status=?,managedby=?,biblionumber=? where suggestionid=?");
+        my $query = qq|
+            UPDATE suggestions
+            SET    status=?,managedby=?,biblionumber=?
+            WHERE  suggestionid=?
+        |;
+        $sth = $dbh->prepare($query);
                        
$sth->execute($status,$managedby,$biblionumber,$suggestionid);
                } else {
-                       $sth = $dbh->prepare("update suggestions set 
status=?,managedby=? where suggestionid=?");
+            my $query = qq|
+                UPDATE suggestions
+                SET    status=?,managedby=?
+                WHERE  suggestionid=?
+            |;
+            $sth = $dbh->prepare($query);
                        $sth->execute($status,$managedby,$suggestionid);
                }
        } else {
                if ($biblionumber) {
-                       $sth = $dbh->prepare("update suggestions set 
status=?,biblionumber=? where suggestionid=?");
+            my $query = qq|
+                UPDATE suggestions
+                SET    status=?,biblionumber=?
+                WHERE  suggestionid=?
+            |;
+            $sth = $dbh->prepare($query);
                        $sth->execute($status,$biblionumber,$suggestionid);
-               } else {
-                       $sth = $dbh->prepare("update suggestions set status=? 
where suggestionid=?");
+        }
+        else {
+            my $query = qq|
+                UPDATE suggestions
+                SET    status=?
+                WHERE  suggestionid=?
+            |;
+            $sth = $dbh->prepare($query);
                        $sth->execute($status,$suggestionid);
                }
-
        }
        # check mail sending.
-       $sth = $dbh->prepare("select suggestions.*,
-                                                       boby.surname as 
bysurname, boby.firstname as byfirstname, boby.emailaddress as byemail,
-                                                       lib.surname as 
libsurname,lib.firstname as libfirstname,lib.emailaddress as libemail
-                                               from suggestions left join 
borrowers as boby on boby.borrowernumber=suggestedby left join borrowers as lib 
on lib.borrowernumber=managedby where suggestionid=?");
+    my $queryMail = qq|
+        SELECT suggestions.*,
+            boby.surname AS bysurname,
+            boby.firstname AS byfirstname,
+            boby.emailaddress AS byemail,
+            lib.surname AS libsurname,
+            lib.firstname AS libfirstname,
+            lib.emailaddress AS libemail
+        FROM suggestions
+            LEFT JOIN borrowers AS boby ON boby.borrowernumber=suggestedby
+            LEFT JOIN borrowers AS lib ON lib.borrowernumber=managedby
+        WHERE suggestionid=?
+    |;
+    $sth = $dbh->prepare($queryMail);
        $sth->execute($suggestionid);
        my $emailinfo = $sth->fetchrow_hashref;
        my $template = 
gettemplate("suggestion/mail_suggestion_$status.tmpl","intranet");
-#                               query =>'',
-#                           authnotrequired => 1,
-#                       });
-       $template->param(byemail => $emailinfo->{byemail},
+
+    $template->param(
+        byemail => $emailinfo->{byemail},
                                        libemail => $emailinfo->{libemail},
                                        status => $emailinfo->{status},
                                        title => $emailinfo->{title},
@@ -238,28 +350,52 @@
                                        byfirstname => 
$emailinfo->{byfirstname},
                                        bysurname => $emailinfo->{bysurname},
                                        );
-       my %mail = ( To => $emailinfo->{byemail},
+    my %mail = (
+        To => $emailinfo->{byemail},
                                 From => $emailinfo->{libemail},
                                 Subject => 'Koha suggestion',
                                 Message => "".$template->output
                                 );
-sendmail(%mail);
-#      warn "sending email to $emailinfo->{byemail} from 
$emailinfo->{libemail} to notice new status $emailinfo->{status} for 
$emailinfo->{title} / $emailinfo->{author}";
+    sendmail(%mail);
 }
+=item GetSuggestionFromBiblionumber
+
+$suggestionid = &GetSuggestionFromBiblionumber($dbh,$biblionumber)
+
+Get a suggestion from the biblionumber.
+
+return :
+ the id of the suggestion which has the biblionumber given on input args.
 
-sub findsuggestion_from_biblionumber {
+=cut
+sub GetSuggestionFromBiblionumber {
        my ($dbh,$biblionumber) = @_;
-       my $sth = $dbh->prepare("select suggestionid from suggestions where 
biblionumber=?");
+    my $query = qq|
+        SELECT suggestionid
+        FROM   suggestions
+        WHERE  biblionumber=?
+    |;
+    my $sth = $dbh->prepare($query);
        $sth->execute($biblionumber);
        my ($suggestionid) = $sth->fetchrow;
        return $suggestionid;
 }
+=item ConnectSuggestionAndBiblio
+
+&ConnectSuggestionAndBiblio($suggestionid,$biblionumber)
 
-# connect a suggestion to an existing biblio
-sub connectSuggestionAndBiblio {
+ connect a suggestion to an existing biblio
+
+=cut
+sub ConnectSuggestionAndBiblio {
        my ($suggestionid,$biblionumber) = @_;
        my $dbh=C4::Context->dbh;
-       my $sth = $dbh->prepare("update suggestions set biblionumber=? where 
suggestionid=?");
+    my $query = qq |
+        UPDATE suggestions
+        SET    biblionumber=?
+        WHERE  suggestionid=?
+    |;
+    my $sth = $dbh->prepare($query);
        $sth->execute($biblionumber,$suggestionid);
 }
 =back




reply via email to

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