Merge remote-tracking branch 'origin/new/bug_7412'
[koha.git] / C4 / Stats.pm
1 package C4::Stats;
2
3
4 # Copyright 2000-2002 Katipo Communications
5 #
6 # This file is part of Koha.
7 #
8 # Koha is free software; you can redistribute it and/or modify it under the
9 # terms of the GNU General Public License as published by the Free Software
10 # Foundation; either version 2 of the License, or (at your option) any later
11 # version.
12 #
13 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
14 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License along
18 # with Koha; if not, write to the Free Software Foundation, Inc.,
19 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
21 use strict;
22 use warnings;
23 require Exporter;
24 use C4::Context;
25 use C4::Debug;
26 use vars qw($VERSION @ISA @EXPORT);
27
28 our $debug;
29
30 BEGIN {
31         # set the version for version checking
32     $VERSION = 3.07.00.049;
33         @ISA    = qw(Exporter);
34         @EXPORT = qw(
35                 &UpdateStats
36                 &TotalPaid
37         );
38 }
39
40
41 =head1 NAME
42
43 C4::Stats - Update Koha statistics (log)
44
45 =head1 SYNOPSIS
46
47   use C4::Stats;
48
49 =head1 DESCRIPTION
50
51 The C<&UpdateStats> function adds an entry to the statistics table in
52 the Koha database, which acts as an activity log.
53
54 =head1 FUNCTIONS
55
56 =over 2
57
58 =item UpdateStats
59
60   &UpdateStats($branch, $type, $value, $other, $itemnumber,
61                $itemtype, $borrowernumber);
62
63 Adds a line to the statistics table of the Koha database. In effect,
64 it logs an event.
65
66 C<$branch>, C<$type>, C<$value>, C<$other>, C<$itemnumber>,
67 C<$itemtype>, and C<$borrowernumber> correspond to the fields of the
68 statistics table in the Koha database.
69
70 =cut
71
72 #'
73 sub UpdateStats {
74
75     #module to insert stats data into stats table
76     my (
77         $branch,         $type,
78         $amount,   $other,          $itemnum,
79         $itemtype, $borrowernumber, $accountno, $ccode
80       )
81       = @_;
82     my $dbh = C4::Context->dbh;
83     my $sth = $dbh->prepare(
84         "INSERT INTO statistics
85         (datetime, branch, type, value,
86          other, itemnumber, itemtype, borrowernumber, proccode, ccode)
87          VALUES (now(),?,?,?,?,?,?,?,?,?)"
88     );
89     $sth->execute(
90         $branch,    $type,    $amount,
91         $other,     $itemnum, $itemtype, $borrowernumber,
92                 $accountno, $ccode
93     );
94 }
95
96 # Otherwise, it'd need a POD.
97 sub TotalPaid {
98     my ( $time, $time2, $spreadsheet ) = @_;
99     $time2 = $time unless $time2;
100     my $dbh   = C4::Context->dbh;
101     my $query = "SELECT * FROM statistics 
102   LEFT JOIN borrowers ON statistics.borrowernumber= borrowers.borrowernumber
103   WHERE (statistics.type='payment' OR statistics.type='writeoff') ";
104     if ( $time eq 'today' ) {
105         $query .= " AND datetime = now()";
106     } else {
107         $query .= " AND datetime > '$time'";    # FIXME: use placeholders
108     }
109     if ( $time2 ne '' ) {
110         $query .= " AND datetime < '$time2'";   # FIXME: use placeholders
111     }
112     if ($spreadsheet) {
113         $query .= " ORDER BY branch, type";
114     }
115     $debug and warn "TotalPaid query: $query";
116     my $sth = $dbh->prepare($query);
117     $sth->execute();
118     return @{$sth->fetchall_arrayref({})};
119 }
120
121 1;
122 __END__
123
124 =back
125
126 =head1 AUTHOR
127
128 Koha Development Team <http://koha-community.org/>
129
130 =cut
131