Sub renamed according to the coding guidelines
[koha.git] / C4 / Review.pm
1 package C4::Review;
2
3 # Copyright 2000-2002 Katipo Communications
4 #
5 # This file is part of Koha.
6 #
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 2 of the License, or (at your option) any later
10 # version.
11 #
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License along with
17 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
18 # Suite 330, Boston, MA  02111-1307 USA
19
20 use strict;
21 require Exporter;
22 use C4::Context;
23
24 use vars qw($VERSION @ISA @EXPORT);
25
26 $VERSION = 0.01;
27
28 =head1 NAME
29
30 C4::Review - Perl Module containing routines for dealing with reviews of items
31
32 =head1 SYNOPSIS
33
34   use C4::Review;
35
36
37   my $review=getreview($biblionumber,$borrowernumber);
38   savereview($biblionumber,$borrowernumber,$review);
39   updatereview($biblionumber,$borrowernumber,$review);
40   my $count=numberofreviews($biblionumber);
41   my $reviews=getreviews($biblionumber);
42   my $reviews=getallreviews($status);
43
44 =head1 DESCRIPTION
45
46 Review.pm provides many routines for manipulating reviews.
47
48 =head1 FUNCTIONS
49
50 =over 2
51
52 =cut
53
54 @ISA    = qw(Exporter);
55 @EXPORT = qw(getreview savereview updatereview numberofreviews
56   getreviews getallreviews approvereview deletereview);
57
58 use vars qw();
59
60 my $DEBUG = 0;
61
62 =head2 getreview
63
64   $review = getreview($biblionumber,$borrowernumber);
65
66 Takes a borrowernumber and a biblionumber and returns the review of that biblio
67
68
69 =cut
70
71 sub getreview {
72     my ( $biblionumber, $borrowernumber ) = @_;
73     my $dbh   = C4::Context->dbh;
74     my $query =
75       "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
76     my $sth = $dbh->prepare($query);
77     $sth->execute( $biblionumber, $borrowernumber );
78     my $review = $sth->fetchrow_hashref();
79     $sth->finish();
80     return $review;
81 }
82
83 sub savereview {
84     my ( $biblionumber, $borrowernumber, $review ) = @_;
85     my $dbh   = C4::Context->dbh;
86     my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
87         review,approved,datereviewed) VALUES 
88   (?,?,?,?,now())";
89     my $sth = $dbh->prepare($query);
90     $sth->execute( $borrowernumber, $biblionumber, $review, 0 );
91     $sth->finish();
92 }
93
94 sub updatereview {
95     my ( $biblionumber, $borrowernumber, $review ) = @_;
96     my $dbh   = C4::Context->dbh;
97     my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=?
98   WHERE borrowernumber=? and biblionumber=?";
99     my $sth = $dbh->prepare($query);
100     $sth->execute( $review, 0, $borrowernumber, $biblionumber );
101     $sth->finish();
102
103 }
104
105 sub numberofreviews {
106     my ($biblionumber) = @_;
107     my $dbh            = C4::Context->dbh;
108     my $query          =
109       "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
110     my $sth = $dbh->prepare($query);
111     $sth->execute( $biblionumber, 1 );
112     my $count = $sth->fetchrow_hashref;
113
114     $sth->finish();
115     return ( $count->{'count(*)'} );
116 }
117
118 sub getreviews {
119     my ( $biblionumber, $approved ) = @_;
120     my $dbh   = C4::Context->dbh;
121     my $query =
122 "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
123     my $sth = $dbh->prepare($query) || warn $dbh->err_str;
124     $sth->execute( $biblionumber, $approved );
125     my @results;
126     while ( my $data = $sth->fetchrow_hashref() ) {
127         push @results, $data;
128     }
129     $sth->finish();
130     return ( \@results );
131 }
132
133 sub getallreviews {
134     my ($status) = @_;
135     my $dbh      = C4::Context->dbh;
136     my $query    =
137       "SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
138     my $sth = $dbh->prepare($query);
139     $sth->execute($status);
140     my @results;
141     while ( my $data = $sth->fetchrow_hashref() ) {
142         push @results, $data;
143     }
144     $sth->finish();
145     return ( \@results );
146 }
147
148 =head2 approvereview
149
150   approvereview($reviewid);
151
152 Takes a reviewid and marks that review approved
153
154
155 =cut
156
157 sub approvereview {
158     my ($reviewid) = @_;
159     my $dbh        = C4::Context->dbh();
160     my $query      = "UPDATE reviews
161                SET approved=?
162                WHERE reviewid=?";
163     my $sth = $dbh->prepare($query);
164     $sth->execute( 1, $reviewid );
165     $sth->finish();
166 }
167
168 =head2 deletereview
169
170   deletereview($reviewid);
171
172 Takes a reviewid and deletes it
173
174
175 =cut
176
177 sub deletereview {
178     my ($reviewid) = @_;
179     my $dbh        = C4::Context->dbh();
180     my $query      = "DELETE FROM reviews
181                WHERE reviewid=?";
182     my $sth = $dbh->prepare($query);
183     $sth->execute($reviewid);
184     $sth->finish();
185 }
186
187 1;
188 __END__
189
190 =back
191
192 =head1 AUTHOR
193
194 Koha Team
195
196 =cut