|
Lines 26-36
use Text::CSV::Encoded;
Link Here
|
| 26 |
use C4::Context; |
26 |
use C4::Context; |
| 27 |
use C4::Koha; |
27 |
use C4::Koha; |
| 28 |
use C4::Output; |
28 |
use C4::Output; |
| 29 |
use C4::Log; |
|
|
| 30 |
use C4::Items; |
29 |
use C4::Items; |
| 31 |
use C4::Serials; |
30 |
use C4::Serials; |
| 32 |
use C4::Debug; |
31 |
use C4::Debug; |
| 33 |
use C4::Search; # enabled_staff_search_views |
32 |
use C4::Search; # enabled_staff_search_views |
|
|
33 |
use Koha::ActionLogs; |
| 34 |
use Koha::Database; |
| 35 |
use Koha::DateUtils; |
| 34 |
use Koha::Patrons; |
36 |
use Koha::Patrons; |
| 35 |
|
37 |
|
| 36 |
use vars qw($debug $cgi_debug); |
38 |
use vars qw($debug $cgi_debug); |
|
Lines 100-125
$template->param(
Link Here
|
| 100 |
); |
102 |
); |
| 101 |
|
103 |
|
| 102 |
if ($do_it) { |
104 |
if ($do_it) { |
|
|
105 |
my $dtf = Koha::Database->new->schema->storage->datetime_parser; |
| 106 |
my %search_params; |
| 107 |
|
| 108 |
if ($datefrom and $dateto ) { |
| 109 |
my $dateto_endday = dt_from_string($dateto); |
| 110 |
$dateto_endday->set( # We set last second of day to see all log from that day |
| 111 |
hour => 23, |
| 112 |
minute => 59, |
| 113 |
second => 59 |
| 114 |
); |
| 115 |
$search_params{'timestamp'} = { |
| 116 |
-between => [ |
| 117 |
$dtf->format_datetime( dt_from_string($datefrom) ), |
| 118 |
$dtf->format_datetime( $dateto_endday ), |
| 119 |
] |
| 120 |
}; |
| 121 |
} elsif ($datefrom) { |
| 122 |
$search_params{'timestamp'} = { |
| 123 |
'>=' => $dtf->format_datetime( dt_from_string($datefrom) ) |
| 124 |
}; |
| 125 |
} elsif ($dateto) { |
| 126 |
my $dateto_endday = dt_from_string($dateto); |
| 127 |
$dateto_endday->set( # We set last second of day to see all log from that day |
| 128 |
hour => 23, |
| 129 |
minute => 59, |
| 130 |
second => 59 |
| 131 |
); |
| 132 |
$search_params{'timestamp'} = { |
| 133 |
'<=' => $dtf->format_datetime( $dateto_endday ) |
| 134 |
}; |
| 135 |
} |
| 136 |
$search_params{user} = $user if $user; |
| 137 |
$search_params{module} = { -in => [ @modules ] } if ( defined $modules[0] and $modules[0] ne '' ) ; |
| 138 |
$search_params{action} = { -in => [ @actions ] } if ( defined $actions[0] && $actions[0] ne '' ); |
| 139 |
$search_params{object} = $object if $object; |
| 140 |
$search_params{info} = $info if $info; |
| 141 |
$search_params{interface} = { -in => [ @interfaces ] } if ( defined $interfaces[0] && $interfaces[0] ne '' ); |
| 103 |
|
142 |
|
| 104 |
my @data; |
143 |
my @logs = Koha::ActionLogs->search(\%search_params); |
| 105 |
my ( $results, $modules, $actions, $interfaces ); |
|
|
| 106 |
if ( defined $actions[0] && $actions[0] ne '' ) { $actions = \@actions; } # match All means no limit |
| 107 |
if ( $modules[0] ne '' ) { $modules = \@modules; } # match All means no limit |
| 108 |
if ( defined $interfaces[0] && $interfaces[0] ne '' ) { $interfaces = \@interfaces; } # match All means no limit |
| 109 |
$results = GetLogs( $datefrom, $dateto, $user, $modules, $actions, $object, $info, $interfaces ); |
| 110 |
@data = @$results; |
| 111 |
foreach my $result (@data) { |
| 112 |
|
144 |
|
|
|
145 |
my @data; |
| 146 |
foreach my $log (@logs) { |
| 147 |
my $result = $log->unblessed; |
| 113 |
# Init additional columns for CSV export |
148 |
# Init additional columns for CSV export |
| 114 |
$result->{'biblionumber'} = q{}; |
149 |
$result->{'biblionumber'} = q{}; |
| 115 |
$result->{'biblioitemnumber'} = q{}; |
150 |
$result->{'biblioitemnumber'} = q{}; |
| 116 |
$result->{'barcode'} = q{}; |
151 |
$result->{'barcode'} = q{}; |
| 117 |
|
152 |
|
| 118 |
if ( substr( $result->{'info'}, 0, 4 ) eq 'item' || $result->{module} eq "CIRCULATION" ) { |
153 |
if ( substr( $log->info, 0, 4 ) eq 'item' || $log->module eq "CIRCULATION" ) { |
| 119 |
|
154 |
|
| 120 |
# get item information so we can create a working link |
155 |
# get item information so we can create a working link |
| 121 |
my $itemnumber = $result->{'object'}; |
156 |
my $itemnumber = $log->object; |
| 122 |
$itemnumber = $result->{'info'} if ( $result->{module} eq "CIRCULATION" ); |
157 |
$itemnumber = $log->info if ( $log->module eq "CIRCULATION" ); |
| 123 |
my $item = GetItem($itemnumber); |
158 |
my $item = GetItem($itemnumber); |
| 124 |
if ($item) { |
159 |
if ($item) { |
| 125 |
$result->{'biblionumber'} = $item->{'biblionumber'}; |
160 |
$result->{'biblionumber'} = $item->{'biblionumber'}; |
|
Lines 129-152
if ($do_it) {
Link Here
|
| 129 |
} |
164 |
} |
| 130 |
|
165 |
|
| 131 |
#always add firstname and surname for librarian/user |
166 |
#always add firstname and surname for librarian/user |
| 132 |
if ( $result->{'user'} ) { |
167 |
if ( $log->user ) { |
| 133 |
my $patron = Koha::Patrons->find( $result->{'user'} ); |
168 |
my $patron = Koha::Patrons->find( $log->user ); |
| 134 |
if ($patron) { |
169 |
if ($patron) { |
| 135 |
$result->{librarian} = $patron; |
170 |
$result->{librarian} = $patron; |
| 136 |
} |
171 |
} |
| 137 |
} |
172 |
} |
| 138 |
|
173 |
|
| 139 |
#add firstname and surname for borrower, when using the CIRCULATION, MEMBERS, FINES |
174 |
#add firstname and surname for borrower, when using the CIRCULATION, MEMBERS, FINES |
| 140 |
if ( $result->{module} eq "CIRCULATION" || $result->{module} eq "MEMBERS" || $result->{module} eq "FINES" ) { |
175 |
if ( $log->module eq "CIRCULATION" || $log->module eq "MEMBERS" || $log->module eq "FINES" ) { |
| 141 |
if ( $result->{'object'} ) { |
176 |
if ( $log->object ) { |
| 142 |
my $patron = Koha::Patrons->find( $result->{'object'} ); |
177 |
my $patron = Koha::Patrons->find( $log->object ); |
| 143 |
if ($patron) { |
178 |
if ($patron) { |
| 144 |
$result->{patron} = $patron; |
179 |
$result->{patron} = $patron; |
| 145 |
} |
180 |
} |
| 146 |
} |
181 |
} |
| 147 |
} |
182 |
} |
|
|
183 |
push @data, $result; |
| 148 |
} |
184 |
} |
| 149 |
|
|
|
| 150 |
if ( $output eq "screen" ) { |
185 |
if ( $output eq "screen" ) { |
| 151 |
|
186 |
|
| 152 |
# Printing results to screen |
187 |
# Printing results to screen |
|
Lines 169-175
if ($do_it) {
Link Here
|
| 169 |
foreach my $module (@modules) { |
204 |
foreach my $module (@modules) { |
| 170 |
$template->param( $module => 1 ); |
205 |
$template->param( $module => 1 ); |
| 171 |
} |
206 |
} |
| 172 |
|
|
|
| 173 |
output_html_with_http_headers $input, $cookie, $template->output; |
207 |
output_html_with_http_headers $input, $cookie, $template->output; |
| 174 |
} |
208 |
} |
| 175 |
else { |
209 |
else { |
| 176 |
- |
|
|