File Coverage

File:C4/Stats.pm
Coverage:42.9%

linestmtbrancondsubtimecode
1package 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
14
14
14
19547
216
489
use strict;
22
14
14
14
107
60
664
use warnings;
23require Exporter;
24
14
14
14
273
56
266
use C4::Context;
25
14
14
14
125
56
1518
use C4::Debug;
26
14
14
14
91
90
1508
use vars qw($VERSION @ISA @EXPORT);
27
28our $debug;
29
30BEGIN {
31        # set the version for version checking
32
14
75
        $VERSION = 3.01;
33
14
226
        @ISA = qw(Exporter);
34
14
4459
        @EXPORT = qw(
35                &UpdateStats
36                &TotalPaid
37        );
38}
39
40
41 - 70
=head1 NAME

C4::Stats - Update Koha statistics (log)

=head1 SYNOPSIS

  use C4::Stats;

=head1 DESCRIPTION

The C<&UpdateStats> function adds an entry to the statistics table in
the Koha database, which acts as an activity log.

=head1 FUNCTIONS

=over 2

=item UpdateStats

  &UpdateStats($branch, $type, $value, $other, $itemnumber,
               $itemtype, $borrowernumber);

Adds a line to the statistics table of the Koha database. In effect,
it logs an event.

C<$branch>, C<$type>, C<$value>, C<$other>, C<$itemnumber>,
C<$itemtype>, and C<$borrowernumber> correspond to the fields of the
statistics table in the Koha database.

=cut
71
72#'
73sub UpdateStats {
74
75    #module to insert stats data into stats table
76    my (
77
0
        $branch, $type,
78        $amount, $other, $itemnum,
79        $itemtype, $borrowernumber, $accountno
80      )
81      = @_;
82
0
    my $dbh = C4::Context->dbh;
83
0
    my $sth = $dbh->prepare(
84        "INSERT INTO statistics
85        (datetime, branch, type, value,
86         other, itemnumber, itemtype, borrowernumber, proccode)
87         VALUES (now(),?,?,?,?,?,?,?,?)"
88    );
89
0
    $sth->execute(
90        $branch, $type, $amount,
91        $other, $itemnum, $itemtype, $borrowernumber,
92                $accountno
93    );
94}
95
96# Otherwise, it'd need a POD.
97sub TotalPaid {
98
0
    my ( $time, $time2, $spreadsheet ) = @_;
99
0
    $time2 = $time unless $time2;
100
0
    my $dbh = C4::Context->dbh;
101
0
    my $query = "SELECT * FROM statistics
102  LEFT JOIN borrowers ON statistics.borrowernumber= borrowers.borrowernumber
103  WHERE (statistics.type='payment' OR statistics.type='writeoff') ";
104
0
    if ( $time eq 'today' ) {
105
0
        $query .= " AND datetime = now()";
106    } else {
107
0
        $query .= " AND datetime > '$time'"; # FIXME: use placeholders
108    }
109
0
    if ( $time2 ne '' ) {
110
0
        $query .= " AND datetime < '$time2'"; # FIXME: use placeholders
111    }
112
0
    if ($spreadsheet) {
113
0
        $query .= " ORDER BY branch, type";
114    }
115
0
    $debug and warn "TotalPaid query: $query";
116
0
    my $sth = $dbh->prepare($query);
117
0
    $sth->execute();
118
0
0
    return @{$sth->fetchall_arrayref({})};
119}
120
1211;