X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;ds=sidebyside;f=opac%2Fopac-user.pl;h=9d0e97f71f4cce6563d879b6ca77d0a2e76ed1fd;hb=010a32d95f871853f5c597b2670f3de4c62cfa51;hp=eed4439f8aa26265392ab46d713bc5dbc529960d;hpb=25b2cd1c6526b10bc6a726c4ef8296b87a38de02;p=koha-ffzg.git diff --git a/opac/opac-user.pl b/opac/opac-user.pl index eed4439f8a..9d0e97f71f 100755 --- a/opac/opac-user.pl +++ b/opac/opac-user.pl @@ -3,24 +3,24 @@ # This file is part of Koha. # parts copyright 2010 BibLibre # -# 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 strict; #use warnings; FIXME - Bug 2505 -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; use C4::Koha; @@ -35,6 +35,7 @@ use C4::Items; use C4::Letters; use C4::Branch; # GetBranches use Koha::DateUtils; +use Koha::Borrower::Debarments qw(IsDebarred); use constant ATTRIBUTE_SHOW_BARCODE => 'SHOW_BCODE'; @@ -55,28 +56,33 @@ BEGIN { my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { - template_name => "opac-user.tmpl", + template_name => "opac-user.tt", query => $query, type => "opac", authnotrequired => 0, - flagsrequired => { borrow => 1 }, debug => 1, } ); -my $OPACDisplayRequestPriority = (C4::Context->preference("OPACDisplayRequestPriority")) ? 1 : 0; +my %renewed = map { $_ => 1 } split( ':', $query->param('renewed') ); + +my $show_priority; +for ( C4::Context->preference("OPACShowHoldQueueDetails") ) { + m/priority/ and $show_priority = 1; +} + my $patronupdate = $query->param('patronupdate'); my $canrenew = 1; +$template->param( shibbolethAuthentication => C4::Context->config('useshibboleth') ); + # get borrower information .... my ( $borr ) = GetMemberDetails( $borrowernumber ); my ( $today_year, $today_month, $today_day) = Today(); my ($warning_year, $warning_month, $warning_day) = split /-/, $borr->{'dateexpiry'}; -$borr->{'ethnicity'} = fixEthnicity( $borr->{'ethnicity'} ); - -my $debar = $borr->{'debarred'}; +my $debar = IsDebarred($borrowernumber); my $userdebarred; if ($debar) { @@ -106,6 +112,7 @@ if ( C4::Context->preference( 'OpacRenewalAllowed' ) && $borr->{amountoutstandi $canrenew = 0; $template->param( renewal_blocked_fines => sprintf( '%.02f', $no_renewal_amt ), + renewal_blocked_fines_amountoutstanding => sprintf( '%.02f', $borr->{amountoutstanding} ), ); } @@ -116,9 +123,6 @@ if ( $borr->{'amountoutstanding'} < 0 ) { $borr->{'amountoutstanding'} = sprintf "%.02f", $borr->{'amountoutstanding'}; -my @bordat; -$bordat[0] = $borr; - # Warningdate is the date that the warning starts appearing if ( $borr->{'dateexpiry'} && C4::Context->preference('NotifyBorrowerDeparture') ) { my $days_to_expiry = Date_to_Days( $warning_year, $warning_month, $warning_day ) - Date_to_Days( $today_year, $today_month, $today_day ); @@ -137,12 +141,11 @@ if ( $borr->{'dateexpiry'} && C4::Context->preference('NotifyBorrowerDeparture') # pass on any renew errors to the template for displaying my $renew_error = $query->param('renew_error'); -$template->param( BORROWER_INFO => \@bordat, +$template->param( BORROWER_INFO => $borr, borrowernumber => $borrowernumber, patron_flagged => $borr->{flagged}, OPACMySummaryHTML => (C4::Context->preference("OPACMySummaryHTML")) ? 1 : 0, surname => $borr->{surname}, - showname => $borr->{showname}, RENEW_ERROR => $renew_error, borrower => $borr, ); @@ -158,7 +161,7 @@ my $issues = GetPendingIssues($borrowernumber); if ($issues){ foreach my $issue ( sort { $b->{date_due}->datetime() cmp $a->{date_due}->datetime() } @{$issues} ) { # check for reserves - my ( $restype, $res, undef ) = CheckReserves( $issue->{'itemnumber'} ); + my $restype = GetReserveStatus( $issue->{'itemnumber'} ); if ( $restype ) { $issue->{'reserved'} = 1; } @@ -170,11 +173,14 @@ if ($issues){ $charges += $ac->{'amountoutstanding'} if $ac->{'accounttype'} eq 'F'; $charges += $ac->{'amountoutstanding'} + if $ac->{'accounttype'} eq 'FU'; + $charges += $ac->{'amountoutstanding'} if $ac->{'accounttype'} eq 'L'; } } $issue->{'charges'} = $charges; - $issue->{'subtitle'} = GetRecordValue('subtitle', GetMarcBiblio($issue->{'biblionumber'}), GetFrameworkCode($issue->{'biblionumber'})); + my $marcrecord = GetMarcBiblio( $issue->{'biblionumber'} ); + $issue->{'subtitle'} = GetRecordValue('subtitle', $marcrecord, GetFrameworkCode($issue->{'biblionumber'})); # check if item is renewable my ($status,$renewerror) = CanBookBeRenewed( $borrowernumber, $issue->{'itemnumber'} ); ($issue->{'renewcount'},$issue->{'renewsallowed'},$issue->{'renewsleft'}) = GetRenewCount($borrowernumber, $issue->{'itemnumber'}); @@ -182,9 +188,14 @@ if ($issues){ $issue->{'status'} = $status; } + $issue->{'renewed'} = $renewed{ $issue->{'itemnumber'} }; + if ($renewerror) { - $issue->{'too_many'} = 1 if $renewerror eq 'too_many'; - $issue->{'on_reserve'} = 1 if $renewerror eq 'on_reserve'; + $issue->{'too_many'} = 1 if $renewerror eq 'too_many'; + $issue->{'on_reserve'} = 1 if $renewerror eq 'on_reserve'; + $issue->{'norenew_overdue'} = 1 if $renewerror eq 'overdue'; + $issue->{'auto_renew'} = 1 if $renewerror eq 'auto_renew'; + $issue->{'auto_too_soon'} = 1 if $renewerror eq 'auto_too_soon'; if ( $renewerror eq 'too_soon' ) { $issue->{'too_soon'} = 1; @@ -216,6 +227,7 @@ if ($issues){ my $isbn = GetNormalizedISBN($issue->{'isbn'}); $issue->{normalized_isbn} = $isbn; + $issue->{normalized_upc} = GetNormalizedUPC( $marcrecord, C4::Context->preference('marcflavour') ); # My Summary HTML if (my $my_summary_html = C4::Context->preference('OPACMySummaryHTML')){ @@ -229,6 +241,8 @@ if ($issues){ } } } +my $overduesblockrenewing = C4::Context->preference('OverduesBlockRenewing'); +$canrenew = 0 if ($overduesblockrenewing ne 'allow' and $overdues_count == $count); $template->param( ISSUES => \@issuedat ); $template->param( issues_count => $count ); $template->param( canrenew => $canrenew ); @@ -272,10 +286,14 @@ foreach my $res (@reserves) { $res->{'branch'} = $branches->{ $res->{'branchcode'} }->{'branchname'}; my $biblioData = GetBiblioData($res->{'biblionumber'}); $res->{'reserves_title'} = $biblioData->{'title'}; - if ($OPACDisplayRequestPriority) { - $res->{'priority'} = '' if $res->{'priority'} eq '0'; + $res->{'author'} = $biblioData->{'author'}; + + if ($show_priority) { + $res->{'priority'} ||= ''; + } + if ( $res->{'suspend_until'} ) { + $res->{'suspend_until'} = output_pref({ dt => dt_from_string( $res->{'suspend_until'} , 'iso' ), dateonly => 1 }); } - $res->{'suspend_until'} = C4::Dates->new( $res->{'suspend_until'}, "iso")->output("syspref") if ( $res->{'suspend_until'} ); } # use Data::Dumper; @@ -283,7 +301,7 @@ foreach my $res (@reserves) { $template->param( RESERVES => \@reserves ); $template->param( reserves_count => $#reserves+1 ); -$template->param( showpriority=>1 ) if $OPACDisplayRequestPriority; +$template->param( showpriority=>$show_priority ); my @waiting; my $wcount = 0; @@ -293,6 +311,7 @@ foreach my $res (@reserves) { $res->{'holdingbranch'} = $branches->{ $item->{'holdingbranch'} }->{'branchname'}; $res->{'branch'} = $branches->{ $res->{'branchcode'} }->{'branchname'}; + $res->{'enumchron'} = $item->{'enumchron'} if $item->{'enumchron'}; # get document reserve status my $biblioData = GetBiblioData($res->{'biblionumber'}); $res->{'waiting_title'} = $biblioData->{'title'}; @@ -365,18 +384,15 @@ if ( $borr->{'opacnote'} ) { } $template->param( - bor_messages_loop => GetMessages( $borrowernumber, 'B', 'NONE' ), - waiting_count => $wcount, - patronupdate => $patronupdate, - OpacRenewalAllowed => C4::Context->preference("OpacRenewalAllowed"), - userview => 1, -); - -$template->param( - SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'), + bor_messages_loop => GetMessages( $borrowernumber, 'B', 'NONE' ), + waiting_count => $wcount, + patronupdate => $patronupdate, + OpacRenewalAllowed => C4::Context->preference("OpacRenewalAllowed"), + userview => 1, + SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'), AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'), - OpacHoldNotes => C4::Context->preference('OpacHoldNotes'), + OpacHoldNotes => C4::Context->preference('OpacHoldNotes'), + failed_holds => $query->param('failed_holds'), ); -output_html_with_http_headers $query, $cookie, $template->output; - +output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };