View | Details | Raw Unified | Return to bug 22363
Collapse All | Expand All

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

Return to bug 22363