[Top][All Lists]
[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
- [Koha-cvs] koha/C4 Suggestions.pm,
Antoine Farnault <=