X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=tools%2Fviewlog.pl;h=e9e9f423ef6c090f11463a4e1764f37f7c64821a;hb=249736a67f7ed0e2130c620e10bcbc01b14b1829;hp=9f68a8ae5ab23605553797f9f8f1ff4d5704a2a1;hpb=fad7daf10261d59e5e40ea84d4caaae9bd87d4e0;p=koha.git diff --git a/tools/viewlog.pl b/tools/viewlog.pl index 9f68a8ae5a..e9e9f423ef 100755 --- a/tools/viewlog.pl +++ b/tools/viewlog.pl @@ -5,33 +5,32 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use Modern::Perl; use C4::Auth; -use CGI; +use CGI qw ( -utf8 ); use Text::CSV::Encoded; use C4::Context; use C4::Koha; -use C4::Dates; use C4::Output; use C4::Log; use C4::Items; -use C4::Branch; use C4::Debug; use C4::Search; # enabled_staff_search_views +use Koha::Patrons; use vars qw($debug $cgi_debug); @@ -45,16 +44,17 @@ my $input = new CGI; $debug or $debug = $cgi_debug; my $do_it = $input->param('do_it'); -my @modules = $input->param("modules"); -my $user = $input->param("user"); -my @action = $input->param("action"); +my @modules = $input->multi_param("modules"); +my $user = $input->param("user") // ''; +my @actions = $input->multi_param("actions"); +my @interfaces = $input->multi_param("interfaces"); my $object = $input->param("object"); my $info = $input->param("info"); my $datefrom = $input->param("from"); my $dateto = $input->param("to"); my $basename = $input->param("basename"); my $output = $input->param("output") || "screen"; -my $src = $input->param("src"); # this param allows us to be told where we were called from -fbcit +my $src = $input->param("src") || ""; # this param allows us to be told where we were called from -fbcit my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { @@ -70,66 +70,41 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( if ( $src eq 'circ' ) { # if we were called from circulation, use the circulation menu and get data to populate it -fbcit - use C4::Members; use C4::Members::Attributes qw(GetBorrowerAttributes); my $borrowernumber = $object; - my $data = GetMember( 'borrowernumber' => $borrowernumber ); - my ( $picture, $dberror ) = GetPatronImage( $data->{'borrowernumber'} ); - $template->param( picture => 1 ) if $picture; - + my $patron = Koha::Patrons->find( $borrowernumber ); + unless ( $patron ) { + print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber"); + exit; + } if ( C4::Context->preference('ExtendedPatronAttributes') ) { - my $attributes = GetBorrowerAttributes( $data->{'borrowernumber'} ); + my $attributes = GetBorrowerAttributes( $borrowernumber ); $template->param( ExtendedPatronAttributes => 1, extendedattributes => $attributes ); } - # Computes full borrower address - my $roadtype = C4::Koha::GetAuthorisedValueByCode( 'ROADTYPE', $data->{streettype} ); - my $address = $data->{'streetnumber'} . " $roadtype " . $data->{'address'}; - $template->param( - menu => 1, - title => $data->{'title'}, - initials => $data->{'initials'}, - surname => $data->{'surname'}, - othernames => $data->{'othernames'}, - borrowernumber => $borrowernumber, - firstname => $data->{'firstname'}, - cardnumber => $data->{'cardnumber'}, - categorycode => $data->{'categorycode'}, - category_type => $data->{'category_type'}, - categoryname => $data->{'description'}, - address => $address, - address2 => $data->{'address2'}, - city => $data->{'city'}, - state => $data->{'state'}, - zipcode => $data->{'zipcode'}, - country => $data->{'country'}, - phone => $data->{'phone'}, - phonepro => $data->{'phonepro'}, - mobile => $data->{'mobile'}, - email => $data->{'email'}, - emailpro => $data->{'emailpro'}, - branchcode => $data->{'branchcode'}, - branchname => GetBranchName( $data->{'branchcode'} ), - RoutingSerials => C4::Context->preference('RoutingSerials'), + patron => $patron, + circulation => 1, ); } $template->param( debug => $debug, C4::Search::enabled_staff_search_views, + object => $object, ); if ($do_it) { my @data; - my ( $results, $modules, $action ); - if ( $action[0] ne '' ) { $action = \@action; } # match All means no limit + my ( $results, $modules, $actions, $interfaces ); + if ( defined $actions[0] && $actions[0] ne '' ) { $actions = \@actions; } # match All means no limit if ( $modules[0] ne '' ) { $modules = \@modules; } # match All means no limit - $results = GetLogs( $datefrom, $dateto, $user, $modules, $action, $object, $info ); + if ( defined $interfaces[0] && $interfaces[0] ne '' ) { $interfaces = \@interfaces; } # match All means no limit + $results = GetLogs( $datefrom, $dateto, $user, $modules, $actions, $object, $info, $interfaces ); @data = @$results; foreach my $result (@data) { @@ -137,10 +112,6 @@ if ($do_it) { $result->{'biblionumber'} = q{}; $result->{'biblioitemnumber'} = q{}; $result->{'barcode'} = q{}; - $result->{'userfirstname'} = q{}; - $result->{'usersurname'} = q{}; - $result->{'borrowerfirstname'} = q{}; - $result->{'borrowersurname'} = q{}; if ( substr( $result->{'info'}, 0, 4 ) eq 'item' || $result->{module} eq "CIRCULATION" ) { @@ -157,20 +128,18 @@ if ($do_it) { #always add firstname and surname for librarian/user if ( $result->{'user'} ) { - my $userdetails = C4::Members::GetMemberDetails( $result->{'user'} ); - if ($userdetails) { - $result->{'userfirstname'} = $userdetails->{'firstname'}; - $result->{'usersurname'} = $userdetails->{'surname'}; + my $patron = Koha::Patrons->find( $result->{'user'} ); + if ($patron) { + $result->{librarian} = $patron; } } #add firstname and surname for borrower, when using the CIRCULATION, MEMBERS, FINES if ( $result->{module} eq "CIRCULATION" || $result->{module} eq "MEMBERS" || $result->{module} eq "FINES" ) { if ( $result->{'object'} ) { - my $borrowerdetails = C4::Members::GetMemberDetails( $result->{'object'} ); - if ($borrowerdetails) { - $result->{'borrowerfirstname'} = $borrowerdetails->{'firstname'}; - $result->{'borrowersurname'} = $borrowerdetails->{'surname'}; + my $patron = Koha::Patrons->find( $result->{'object'} ); + if ($patron) { + $result->{patron} = $patron; } } } @@ -187,10 +156,11 @@ if ($do_it) { datefrom => $datefrom, dateto => $dateto, user => $user, - object => $object, - action => \@action, info => $info, src => $src, + modules => \@modules, + actions => \@actions, + interfaces => \@interfaces ); # Used modules @@ -211,7 +181,7 @@ if ($do_it) { # First line with heading # Exporting bd id seems useless - my @headings = grep { $_ ne 'action_id' } sort keys $data[0]; + my @headings = grep { $_ ne 'action_id' } sort keys %{$data[0]}; if ( $csv->combine(@headings) ) { $content .= $csv->string() . "\n"; }