fixing help feature with new template structure
[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 # set the version for version checking
27 $VERSION = do { my @v = '$Revision$' =~ /\d+/g; shift(@v).".".join( "_", map { sprintf "%03d", $_ } @v ); };
28
29 =head1 NAME
30
31 C4::Review - Perl Module containing routines for dealing with reviews of items
32
33 =head1 SYNOPSIS
34
35   use C4::Review;
36
37
38   my $review=getreview($biblionumber,$borrowernumber);
39   savereview($biblionumber,$borrowernumber,$review);
40   updatereview($biblionumber,$borrowernumber,$review);
41   my $count=numberofreviews($biblionumber);
42   my $reviews=getreviews($biblionumber);
43   my $reviews=getallreviews($status);
44
45 =head1 DESCRIPTION
46
47 Review.pm provides many routines for manipulating reviews.
48
49 =head1 FUNCTIONS
50
51 =cut
52
53 @ISA    = qw(Exporter);
54 @EXPORT = qw(getreview savereview updatereview numberofreviews
55   getreviews getallreviews approvereview deletereview);
56
57 use vars qw();
58
59 my $DEBUG = 0;
60
61 =head2 getreview
62
63   $review = getreview($biblionumber,$borrowernumber);
64
65 Takes a borrowernumber and a biblionumber and returns the review of that biblio
66
67
68 =cut
69
70 sub getreview {
71     my ( $biblionumber, $borrowernumber ) = @_;
72     my $dbh   = C4::Context->dbh;
73     my $query =
74       "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
75     my $sth = $dbh->prepare($query);
76     $sth->execute( $biblionumber, $borrowernumber );
77     my $review = $sth->fetchrow_hashref();
78     $sth->finish();
79     return $review;
80 }
81
82 sub savereview {
83     my ( $biblionumber, $borrowernumber, $review ) = @_;
84     my $dbh   = C4::Context->dbh;
85     my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
86         review,approved,datereviewed) VALUES 
87   (?,?,?,?,now())";
88     my $sth = $dbh->prepare($query);
89     $sth->execute( $borrowernumber, $biblionumber, $review, 0 );
90     $sth->finish();
91 }
92
93 sub updatereview {
94     my ( $biblionumber, $borrowernumber, $review ) = @_;
95     my $dbh   = C4::Context->dbh;
96     my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=?
97   WHERE borrowernumber=? and biblionumber=?";
98     my $sth = $dbh->prepare($query);
99     $sth->execute( $review, 0, $borrowernumber, $biblionumber );
100     $sth->finish();
101 }
102
103 sub numberofreviews {
104     my ($biblionumber) = @_;
105     my $dbh            = C4::Context->dbh;
106     my $query          =
107       "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
108     my $sth = $dbh->prepare($query);
109     $sth->execute( $biblionumber, 1 );
110     my $count = $sth->fetchrow_hashref;
111
112     $sth->finish();
113     return ( $count->{'count(*)'} );
114 }
115
116 sub getreviews {
117     my ( $biblionumber, $approved ) = @_;
118     my $dbh   = C4::Context->dbh;
119     my $query =
120 "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
121     my $sth = $dbh->prepare($query) || warn $dbh->err_str;
122     $sth->execute( $biblionumber, $approved );
123     my @results;
124     while ( my $data = $sth->fetchrow_hashref() ) {
125         push @results, $data;
126     }
127     $sth->finish();
128     return ( \@results );
129 }
130
131 sub getallreviews {
132     my ($status) = @_;
133     my $dbh      = C4::Context->dbh;
134     my $query    =
135       "SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
136     my $sth = $dbh->prepare($query);
137     $sth->execute($status);
138     my @results;
139     while ( my $data = $sth->fetchrow_hashref() ) {
140         push @results, $data;
141     }
142     $sth->finish();
143     return ( \@results );
144 }
145
146 =head2 approvereview
147
148   approvereview($reviewid);
149
150 Takes a reviewid and marks that review approved
151
152 =cut
153
154 sub approvereview {
155     my ($reviewid) = @_;
156     my $dbh        = C4::Context->dbh();
157     my $query      = "UPDATE reviews
158                SET approved=?
159                WHERE reviewid=?";
160     my $sth = $dbh->prepare($query);
161     $sth->execute( 1, $reviewid );
162     $sth->finish();
163 }
164
165 =head2 deletereview
166
167   deletereview($reviewid);
168
169 Takes a reviewid and deletes it
170
171 =cut
172
173 sub deletereview {
174     my ($reviewid) = @_;
175     my $dbh        = C4::Context->dbh();
176     my $query      = "DELETE FROM reviews
177                WHERE reviewid=?";
178     my $sth = $dbh->prepare($query);
179     $sth->execute($reviewid);
180     $sth->finish();
181 }
182
183 1;
184 __END__
185
186 =head1 AUTHOR
187
188 Koha Team
189
190 =cut