Bug 15839: Koha::Reviews - Remove deletereview
[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 }
32
33 =head1 NAME
34
35 C4::Review - Perl Module containing routines for dealing with reviews of items
36
37 =head1 SYNOPSIS
38
39   use C4::Review;
40
41   my $review=getreview($biblionumber,$borrowernumber);
42   savereview($biblionumber,$borrowernumber,$review);
43   updatereview($biblionumber,$borrowernumber,$review);
44   my $count=numberofreviews($status);
45   my $count=numberofreviewsbybiblionumber($biblionumber);
46
47 =head1 DESCRIPTION
48
49 Review.pm provides many routines for manipulating reviews.
50
51 =head1 FUNCTIONS
52
53 =head2 getreview
54
55   $review = getreview($biblionumber,$borrowernumber);
56
57 Takes a borrowernumber and a biblionumber and returns the review of that biblio
58
59 =cut
60
61 sub getreview {
62     my ( $biblionumber, $borrowernumber ) = @_;
63     my $dbh   = C4::Context->dbh;
64     my $query = "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
65     my $sth   = $dbh->prepare($query);
66     $sth->execute( $biblionumber, $borrowernumber );
67     return $sth->fetchrow_hashref();
68 }
69
70 =head2 savereview
71
72   savereview($biblionumber,$borrowernumber, $review);
73
74 Save a review in the 'reviews' database
75
76 =cut
77
78 sub savereview {
79     my ( $biblionumber, $borrowernumber, $review ) = @_;
80     my $dbh   = C4::Context->dbh;
81     my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
82   review,approved,datereviewed) VALUES
83   (?,?,?,0,now())";
84     my $sth = $dbh->prepare($query);
85     $sth->execute( $borrowernumber, $biblionumber, $review );
86 }
87
88 =head2 updatereview
89
90   updateview($biblionumber,$borrowernumber, $review);
91
92 Update the review description in the 'reviews' database
93
94 =cut
95
96 sub updatereview {
97     my ( $biblionumber, $borrowernumber, $review ) = @_;
98     my $dbh   = C4::Context->dbh;
99     my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=0  WHERE borrowernumber=? and biblionumber=?";
100     my $sth   = $dbh->prepare($query);
101     $sth->execute( $review, $borrowernumber, $biblionumber );
102 }
103
104 =head2 numberofreviews
105
106   my $count=numberofreviews( [$status] );
107
108 Return the number of reviews where in the 'reviews' database : 'approved' = $status
109 (By default $status = 1)
110
111 =cut
112
113 sub numberofreviews {
114     my ($param) = @_;
115     my $status = ( defined($param) ? $param : 1 );
116     my $dbh    = C4::Context->dbh;
117     my $query  = "SELECT count(*) FROM reviews WHERE approved=?";
118     my $sth    = $dbh->prepare($query);
119     $sth->execute($status);
120     return $sth->fetchrow;
121 }
122
123 =head2 numberofreviewsbybiblionumber
124
125   my $count=numberofreviewsbybiblionumber($biblionumber);
126
127 Return the number of reviews approved for a given biblionumber
128
129 =cut
130
131 sub numberofreviewsbybiblionumber {
132     my ($biblionumber) = @_;
133     my $dbh            = C4::Context->dbh;
134     my $query          = "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
135     my $sth            = $dbh->prepare($query);
136     $sth->execute( $biblionumber, 1 );
137     return $sth->fetchrow;
138 }
139
140 1;
141 __END__
142
143 =head1 AUTHOR
144
145 Koha Team
146
147 =cut