Bug 15839: Koha::Reviews - Remove approvereview & unapprovereview
[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
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20 use strict;
21 use warnings;
22
23 use C4::Context;
24
25 use vars qw(@ISA @EXPORT);
26
27 BEGIN {
28     require Exporter;
29     @ISA    = qw(Exporter);
30     @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
31       deletereview);
32 }
33
34 =head1 NAME
35
36 C4::Review - Perl Module containing routines for dealing with reviews of items
37
38 =head1 SYNOPSIS
39
40   use C4::Review;
41
42   my $review=getreview($biblionumber,$borrowernumber);
43   savereview($biblionumber,$borrowernumber,$review);
44   updatereview($biblionumber,$borrowernumber,$review);
45   my $count=numberofreviews($status);
46   my $count=numberofreviewsbybiblionumber($biblionumber);
47
48 =head1 DESCRIPTION
49
50 Review.pm provides many routines for manipulating reviews.
51
52 =head1 FUNCTIONS
53
54 =head2 getreview
55
56   $review = getreview($biblionumber,$borrowernumber);
57
58 Takes a borrowernumber and a biblionumber and returns the review of that biblio
59
60 =cut
61
62 sub getreview {
63     my ( $biblionumber, $borrowernumber ) = @_;
64     my $dbh   = C4::Context->dbh;
65     my $query = "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
66     my $sth   = $dbh->prepare($query);
67     $sth->execute( $biblionumber, $borrowernumber );
68     return $sth->fetchrow_hashref();
69 }
70
71 =head2 savereview
72
73   savereview($biblionumber,$borrowernumber, $review);
74
75 Save a review in the 'reviews' database
76
77 =cut
78
79 sub savereview {
80     my ( $biblionumber, $borrowernumber, $review ) = @_;
81     my $dbh   = C4::Context->dbh;
82     my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
83   review,approved,datereviewed) VALUES
84   (?,?,?,0,now())";
85     my $sth = $dbh->prepare($query);
86     $sth->execute( $borrowernumber, $biblionumber, $review );
87 }
88
89 =head2 updatereview
90
91   updateview($biblionumber,$borrowernumber, $review);
92
93 Update the review description in the 'reviews' database
94
95 =cut
96
97 sub updatereview {
98     my ( $biblionumber, $borrowernumber, $review ) = @_;
99     my $dbh   = C4::Context->dbh;
100     my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=0  WHERE borrowernumber=? and biblionumber=?";
101     my $sth   = $dbh->prepare($query);
102     $sth->execute( $review, $borrowernumber, $biblionumber );
103 }
104
105 =head2 numberofreviews
106
107   my $count=numberofreviews( [$status] );
108
109 Return the number of reviews where in the 'reviews' database : 'approved' = $status
110 (By default $status = 1)
111
112 =cut
113
114 sub numberofreviews {
115     my ($param) = @_;
116     my $status = ( defined($param) ? $param : 1 );
117     my $dbh    = C4::Context->dbh;
118     my $query  = "SELECT count(*) FROM reviews WHERE approved=?";
119     my $sth    = $dbh->prepare($query);
120     $sth->execute($status);
121     return $sth->fetchrow;
122 }
123
124 =head2 numberofreviewsbybiblionumber
125
126   my $count=numberofreviewsbybiblionumber($biblionumber);
127
128 Return the number of reviews approved for a given biblionumber
129
130 =cut
131
132 sub numberofreviewsbybiblionumber {
133     my ($biblionumber) = @_;
134     my $dbh            = C4::Context->dbh;
135     my $query          = "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
136     my $sth            = $dbh->prepare($query);
137     $sth->execute( $biblionumber, 1 );
138     return $sth->fetchrow;
139 }
140
141 =head2 deletereview
142
143   deletereview($reviewid);
144
145 Takes a reviewid and deletes it
146
147 =cut
148
149 sub deletereview {
150     my ($reviewid) = @_;
151     my $dbh        = C4::Context->dbh();
152     my $query      = "DELETE FROM reviews
153                WHERE reviewid=?";
154     my $sth = $dbh->prepare($query);
155     $sth->execute($reviewid);
156 }
157
158 1;
159 __END__
160
161 =head1 AUTHOR
162
163 Koha Team
164
165 =cut