|
Lines 35-41
use vars qw(@ISA @EXPORT);
Link Here
|
| 35 |
BEGIN { |
35 |
BEGIN { |
| 36 |
require Exporter; |
36 |
require Exporter; |
| 37 |
@ISA = qw(Exporter); |
37 |
@ISA = qw(Exporter); |
| 38 |
@EXPORT = qw(&logaction &cronlogaction &GetLogStatus &displaylog &GetLogs); |
38 |
@EXPORT = qw(&logaction &cronlogaction &GetLogs); |
| 39 |
} |
39 |
} |
| 40 |
|
40 |
|
| 41 |
=head1 NAME |
41 |
=head1 NAME |
|
Lines 120-230
sub cronlogaction {
Link Here
|
| 120 |
logaction( 'CRONJOBS', 'Run', undef, $loginfo ) if C4::Context->preference('CronjobLog'); |
120 |
logaction( 'CRONJOBS', 'Run', undef, $loginfo ) if C4::Context->preference('CronjobLog'); |
| 121 |
} |
121 |
} |
| 122 |
|
122 |
|
| 123 |
|
|
|
| 124 |
=item GetLogStatus |
| 125 |
|
| 126 |
$status = GetLogStatus; |
| 127 |
|
| 128 |
C<$status> is a hasref like this example: |
| 129 |
$hash = { |
| 130 |
BorrowersLog => 1, |
| 131 |
CataloguingLog => 0, |
| 132 |
IssueLog => 0, |
| 133 |
... |
| 134 |
} |
| 135 |
|
| 136 |
=cut |
| 137 |
|
| 138 |
#' |
| 139 |
sub GetLogStatus { |
| 140 |
my %hash; |
| 141 |
$hash{BorrowersLog} = C4::Context->preference("BorrowersLog"); |
| 142 |
$hash{CataloguingLog} = C4::Context->preference("CataloguingLog"); |
| 143 |
$hash{HoldsLog} = C4::Context->preference("HoldsLog"); |
| 144 |
$hash{IssueLog} = C4::Context->preference("IssueLog"); |
| 145 |
$hash{ReturnLog} = C4::Context->preference("ReturnLog"); |
| 146 |
$hash{SubscriptionLog} = C4::Context->preference("SubscriptionLog"); |
| 147 |
$hash{LetterLog} = C4::Context->preference("LetterLog"); |
| 148 |
$hash{FinesLog} = C4::Context->preference("FinesLog"); |
| 149 |
return \%hash; |
| 150 |
} |
| 151 |
|
| 152 |
=item displaylog |
| 153 |
|
| 154 |
&displaylog($modulename, @filters); |
| 155 |
$modulename is the name of the module on which the user wants to display logs |
| 156 |
@filters is an optional table of hash containing : |
| 157 |
- name : the name of the variable to filter |
| 158 |
- value : the value of the filter.... May be with * joker |
| 159 |
|
| 160 |
returns a table of hash containing who did what on which object at what time |
| 161 |
|
| 162 |
=cut |
| 163 |
|
| 164 |
#' |
| 165 |
sub displaylog { |
| 166 |
my ($modulename, @filters) = @_; |
| 167 |
my $dbh = C4::Context->dbh; |
| 168 |
my $strsth=qq| |
| 169 |
SELECT action_logs.timestamp, action_logs.action, action_logs.info, |
| 170 |
borrowers.cardnumber, borrowers.surname, borrowers.firstname, borrowers.userid, |
| 171 |
biblio.biblionumber, biblio.title, biblio.author |
| 172 |
FROM action_logs |
| 173 |
LEFT JOIN borrowers ON borrowers.borrowernumber=action_logs.user |
| 174 |
LEFT JOIN biblio ON action_logs.object=biblio.biblionumber |
| 175 |
WHERE action_logs.module = 'cataloguing' |
| 176 |
|; |
| 177 |
my %filtermap = (); |
| 178 |
if ($modulename eq "catalogue" or $modulename eq "acqui") { |
| 179 |
%filtermap = ( |
| 180 |
user => 'borrowers.surname', |
| 181 |
title => 'biblio.title', |
| 182 |
author => 'biblio.author', |
| 183 |
); |
| 184 |
} elsif ($modulename eq "members") { |
| 185 |
$strsth=qq| |
| 186 |
SELECT action_logs.timestamp, action_logs.action, action_logs.info, |
| 187 |
borrowers.cardnumber, borrowers.surname, borrowers.firstname, borrowers.userid, |
| 188 |
bor2.cardnumber, bor2.surname, bor2.firstname, bor2.userid |
| 189 |
FROM action_logs |
| 190 |
LEFT JOIN borrowers ON borrowers.borrowernumber=action_logs.user |
| 191 |
LEFT JOIN borrowers as bor2 ON action_logs.object=bor2.borrowernumber |
| 192 |
WHERE action_logs.module = 'members' |
| 193 |
|; |
| 194 |
%filtermap = ( |
| 195 |
user => 'borrowers.surname', |
| 196 |
surname => 'bor2.surname', |
| 197 |
firstname => 'bor2.firstname', |
| 198 |
cardnumber => 'bor2.cardnumber', |
| 199 |
); |
| 200 |
} else { |
| 201 |
return 0; |
| 202 |
} |
| 203 |
|
| 204 |
if (@filters) { |
| 205 |
foreach my $filter (@filters) { |
| 206 |
my $tempname = $filter->{name} or next; |
| 207 |
(grep {/^$tempname$/} keys %filtermap) or next; |
| 208 |
$filter->{value} =~ s/\*/%/g; |
| 209 |
$strsth .= " AND " . $filtermap{$tempname} . " LIKE " . $filter->{value}; |
| 210 |
} |
| 211 |
} |
| 212 |
my $sth=$dbh->prepare($strsth); |
| 213 |
$sth->execute; |
| 214 |
my @results; |
| 215 |
my $count; |
| 216 |
my $hilighted=1; |
| 217 |
while (my $data = $sth->fetchrow_hashref){ |
| 218 |
$data->{hilighted} = ($hilighted>0); |
| 219 |
$data->{info} =~ s/\n/<br\/>/g; |
| 220 |
$data->{day} = output_pref({ str => $data->{timestamp} }); |
| 221 |
push @results, $data; |
| 222 |
$count++; |
| 223 |
$hilighted = -$hilighted; |
| 224 |
} |
| 225 |
return ($count, \@results); |
| 226 |
} |
| 227 |
|
| 228 |
=item GetLogs |
123 |
=item GetLogs |
| 229 |
|
124 |
|
| 230 |
$logs = GetLogs($datefrom,$dateto,$user,\@modules,$action,$object,$info); |
125 |
$logs = GetLogs($datefrom,$dateto,$user,\@modules,$action,$object,$info); |