X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=circ%2Fbookcount.pl;h=eaca8c4d04099f3470cfdc1c9e7b5cf6e20204ba;hb=f41f272ff087d65ed11d760e6c7c58818c3a24d4;hp=610fd5e30883ee3d65ea55beb87b838211b1ecfe;hpb=790ef7052b1f0068892081b2280bbd6d78ab0783;p=koha-ffzg.git diff --git a/circ/bookcount.pl b/circ/bookcount.pl index 610fd5e308..eaca8c4d04 100755 --- a/circ/bookcount.pl +++ b/circ/bookcount.pl @@ -20,35 +20,39 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -#use warnings; FIXME - Bug 2505 +use Modern::Perl; use CGI qw ( -utf8 ); -use C4::Debug; use C4::Context; -use C4::Circulation; -use C4::Output; -use C4::Koha; -use C4::Auth; -use C4::Branch; # GetBranches -use C4::Biblio; # GetBiblioItemData -use Koha::DateUtils; - -my $input = new CGI; +use C4::Output qw( output_and_exit output_html_with_http_headers ); +use C4::Auth qw( get_template_and_user ); +use Koha::Biblios; +use Koha::Libraries; + +my $input = CGI->new; my $itm = $input->param('itm'); -my $bi = $input->param('bi'); my $biblionumber = $input->param('biblionumber'); -my $branches = GetBranches; -my $idata = itemdatanum($itm); -my $data = GetBiblioItemData($bi); +my $biblio = Koha::Biblios->find( $biblionumber ); +my $item = Koha::Items->find( $itm ); -my $homebranch = $branches->{ $idata->{'homebranch'} }->{'branchname'}; -my $holdingbranch = $branches->{ $idata->{'holdingbranch'} }->{'branchname'}; -my $lastmove = lastmove($itm); +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "circ/bookcount.tt", + query => $input, + type => "intranet", + flagsrequired => { circulate => "circulate_remaining_permissions" }, + } +); + +output_and_exit( $input, $cookie, $template, 'unknown_biblio') + unless $biblio; +output_and_exit( $input, $cookie, $template, 'unknown_item') + unless $item; my $lastdate; my $count; +my $lastmove = lastmove($itm); if ( not $lastmove ) { $count = issuessince( $itm, 0 ); } else { @@ -56,51 +60,28 @@ if ( not $lastmove ) { $count = issuessince( $itm, $lastdate ); } -# make the page ... - -my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { - template_name => "circ/bookcount.tt", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => { circulate => "circulate_remaining_permissions" }, - debug => 1, - } -); - -my $branchloop = GetBranchesLoop(C4::Context->userenv->{branch}); -foreach (@$branchloop) { - my $date = lastseenat( $itm, $_->{value} ); - my ($datechunk, $timechunk) = slashdate($date); - $_->{issues} = issuesat($itm, $_->{value}); - $_->{seen} = $datechunk; - $_->{seentime} = $timechunk; +my $libraries = Koha::Libraries->search({}, { order_by => ['branchname'] })->unblessed; +for my $library ( @$libraries ) { + $library->{selected} = 1 if $library->{branchcode} eq C4::Context->userenv->{branch}; + $library->{issues} = issuesat($itm, $library->{branchcode}); + $library->{seen} = lastseenat( $itm, $library->{branchcode} ) || undef; } $template->param( biblionumber => $biblionumber, - title => $data->{'title'}, - author => $data->{'author'}, - barcode => $idata->{'barcode'}, - biblioitemnumber => $bi, - homebranch => $homebranch, - holdingbranch => $holdingbranch, + title => $biblio->title, + author => $biblio->author, + barcode => $item->barcode, + homebranch => $item->homebranch, + holdingbranch => $item->holdingbranch, lastdate => $lastdate ? $lastdate : 0, count => $count, - branchloop => $branchloop, + libraries => $libraries, ); output_html_with_http_headers $input, $cookie, $template->output; exit; -sub itemdatanum { - my ($itemnumber) = @_; - my $sth = C4::Context->dbh->prepare("SELECT * FROM items WHERE itemnumber=?"); - $sth->execute($itemnumber); - return $sth->fetchrow_hashref; -} - sub lastmove { my ($itemnumber) = @_; my $dbh = C4::Context->dbh; @@ -170,14 +151,3 @@ sub lastseenat { my $date = ( $date1 lt $date2 ) ? $date2 : $date1 ; return ($date); } - -##################################################### -# return date and time from timestamp -sub slashdate { - my ($date) = @_; - $date or return; - return ( - output_pref({ dt => dt_from_string( $date ), dateonly => 1 }), - substr($date,11,5) - ); -}