Bug 6614: Remove newlines from order notes when exporting to CSV
[koha.git] / C4 / Review.pm
index 6d3f6c8..f94dbc8 100644 (file)
@@ -13,11 +13,13 @@ package C4::Review;
 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 use strict;
+use warnings;
+
 use C4::Context;
 
 use vars qw($VERSION @ISA @EXPORT);
@@ -27,7 +29,7 @@ BEGIN {
        $VERSION = 3.00;
        require Exporter;
        @ISA    = qw(Exporter);
-       @EXPORT = qw(getreview savereview updatereview numberofreviews
+       @EXPORT = qw(getreview savereview updatereview numberofreviews numberofreviewsbybiblionumber
                getreviews getallreviews approvereview deletereview);
 }
 
@@ -67,9 +69,7 @@ sub getreview {
       "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
     my $sth = $dbh->prepare($query);
     $sth->execute( $biblionumber, $borrowernumber );
-    my $review = $sth->fetchrow_hashref();
-    $sth->finish();
-    return $review;
+    return $sth->fetchrow_hashref();
 }
 
 sub savereview {
@@ -77,33 +77,36 @@ sub savereview {
     my $dbh   = C4::Context->dbh;
     my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
        review,approved,datereviewed) VALUES 
-  (?,?,?,?,now())";
+  (?,?,?,0,now())";
     my $sth = $dbh->prepare($query);
-    $sth->execute( $borrowernumber, $biblionumber, $review, 0 );
-    $sth->finish();
+    $sth->execute( $borrowernumber, $biblionumber, $review);
 }
 
 sub updatereview {
     my ( $biblionumber, $borrowernumber, $review ) = @_;
     my $dbh   = C4::Context->dbh;
-    my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=?
-  WHERE borrowernumber=? and biblionumber=?";
+    my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=0  WHERE borrowernumber=? and biblionumber=?";
     my $sth = $dbh->prepare($query);
-    $sth->execute( $review, 0, $borrowernumber, $biblionumber );
-    $sth->finish();
+    $sth->execute( $review, $borrowernumber, $biblionumber );
 }
 
 sub numberofreviews {
+    my $dbh            = C4::Context->dbh;
+    my $query          =
+      "SELECT count(*) FROM reviews WHERE approved=?";
+    my $sth = $dbh->prepare($query);
+    $sth->execute( 1 );
+  return $sth->fetchrow;
+}
+
+sub numberofreviewsbybiblionumber {
     my ($biblionumber) = @_;
     my $dbh            = C4::Context->dbh;
     my $query          =
       "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
     my $sth = $dbh->prepare($query);
     $sth->execute( $biblionumber, 1 );
-    my $count = $sth->fetchrow_hashref;
-
-    $sth->finish();
-    return ( $count->{'count(*)'} );
+       return $sth->fetchrow;
 }
 
 sub getreviews {
@@ -113,27 +116,18 @@ sub getreviews {
 "SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
     my $sth = $dbh->prepare($query) || warn $dbh->err_str;
     $sth->execute( $biblionumber, $approved );
-    my @results;
-    while ( my $data = $sth->fetchrow_hashref() ) {
-        push @results, $data;
-    }
-    $sth->finish();
-    return ( \@results );
+       return $sth->fetchall_arrayref({});
 }
 
 sub getallreviews {
-    my ($status) = @_;
+    my ($status, $offset, $row_count) = @_;
+    my @params = ($status,($offset ? $offset : 0),($row_count ? $row_count : 20));
     my $dbh      = C4::Context->dbh;
     my $query    =
-      "SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
-    my $sth = $dbh->prepare($query);
-    $sth->execute($status);
-    my @results;
-    while ( my $data = $sth->fetchrow_hashref() ) {
-        push @results, $data;
-    }
-    $sth->finish();
-    return ( \@results );
+      "SELECT * FROM reviews WHERE approved=? order by datereviewed desc LIMIT ?, ?";
+    my $sth = $dbh->prepare($query) || warn $dbh->err_str;
+    $sth->execute(@params);
+       return $sth->fetchall_arrayref({});
 }
 
 =head2 approvereview
@@ -152,7 +146,6 @@ sub approvereview {
                WHERE reviewid=?";
     my $sth = $dbh->prepare($query);
     $sth->execute( 1, $reviewid );
-    $sth->finish();
 }
 
 =head2 deletereview
@@ -170,7 +163,6 @@ sub deletereview {
                WHERE reviewid=?";
     my $sth = $dbh->prepare($query);
     $sth->execute($reviewid);
-    $sth->finish();
 }
 
 1;