Bug 3928: Modified date should follow syspref
[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
17 # with Koha; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20 use strict;
21 use warnings;
22
23 use C4::Context;
24
25 use vars qw($VERSION @ISA @EXPORT);
26
27 BEGIN {
28         # set the version for version checking
29         $VERSION = 3.00;
30         require Exporter;
31         @ISA    = qw(Exporter);
32         @EXPORT = qw(getreview savereview updatereview numberofreviews
33                 getreviews getallreviews approvereview deletereview);
34 }
35
36 =head1 NAME
37
38 C4::Review - Perl Module containing routines for dealing with reviews of items
39
40 =head1 SYNOPSIS
41
42   use C4::Review;
43
44   my $review=getreview($biblionumber,$borrowernumber);
45   savereview($biblionumber,$borrowernumber,$review);
46   updatereview($biblionumber,$borrowernumber,$review);
47   my $count=numberofreviews($biblionumber);
48   my $reviews=getreviews($biblionumber);
49   my $reviews=getallreviews($status);
50
51 =head1 DESCRIPTION
52
53 Review.pm provides many routines for manipulating reviews.
54
55 =head1 FUNCTIONS
56
57 =head2 getreview
58
59   $review = getreview($biblionumber,$borrowernumber);
60
61 Takes a borrowernumber and a biblionumber and returns the review of that biblio
62
63 =cut
64
65 sub getreview {
66     my ( $biblionumber, $borrowernumber ) = @_;
67     my $dbh   = C4::Context->dbh;
68     my $query =
69       "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
70     my $sth = $dbh->prepare($query);
71     $sth->execute( $biblionumber, $borrowernumber );
72     return $sth->fetchrow_hashref();
73 }
74
75 sub savereview {
76     my ( $biblionumber, $borrowernumber, $review ) = @_;
77     my $dbh   = C4::Context->dbh;
78     my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
79         review,approved,datereviewed) VALUES 
80   (?,?,?,0,now())";
81     my $sth = $dbh->prepare($query);
82     $sth->execute( $borrowernumber, $biblionumber, $review);
83 }
84
85 sub updatereview {
86     my ( $biblionumber, $borrowernumber, $review ) = @_;
87     my $dbh   = C4::Context->dbh;
88     my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=0  WHERE borrowernumber=? and biblionumber=?";
89     my $sth = $dbh->prepare($query);
90     $sth->execute( $review, $borrowernumber, $biblionumber );
91 }
92
93 sub numberofreviews {
94     my ($biblionumber) = @_;
95     my $dbh            = C4::Context->dbh;
96     my $query          =
97       "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
98     my $sth = $dbh->prepare($query);
99     $sth->execute( $biblionumber, 1 );
100         return $sth->fetchrow;
101 }
102
103 sub getreviews {
104     my ( $biblionumber, $approved ) = @_;
105     my $dbh   = C4::Context->dbh;
106     my $query =
107 "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
108     my $sth = $dbh->prepare($query) || warn $dbh->err_str;
109     $sth->execute( $biblionumber, $approved );
110         return $sth->fetchall_arrayref({});
111 }
112
113 sub getallreviews {
114     my ($status) = @_;
115     my $dbh      = C4::Context->dbh;
116     my $query    =
117       "SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
118     my $sth = $dbh->prepare($query);
119     $sth->execute($status);
120         return $sth->fetchall_arrayref({});
121 }
122
123 =head2 approvereview
124
125   approvereview($reviewid);
126
127 Takes a reviewid and marks that review approved
128
129 =cut
130
131 sub approvereview {
132     my ($reviewid) = @_;
133     my $dbh        = C4::Context->dbh();
134     my $query      = "UPDATE reviews
135                SET approved=?
136                WHERE reviewid=?";
137     my $sth = $dbh->prepare($query);
138     $sth->execute( 1, $reviewid );
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