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); |