X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-user.pl;h=18dfec64e189a9d1e336fb055592ee4b18c0f1f8;hb=9381c95dc3fe4fce53cd45f2526b752a36a1e3a2;hp=f4273cbece4c29513adc2fb0a32c8bb20a1e493e;hpb=9b8a5274732edd0bbcf3dd80b82c00b182a292da;p=koha.git diff --git a/opac/opac-user.pl b/opac/opac-user.pl index f4273cbece..18dfec64e1 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; @@ -30,12 +30,12 @@ use C4::Members; use C4::Members::AttributeTypes; use C4::Members::Attributes qw/GetBorrowerAttributeValue/; use C4::Output; -use C4::Overdues qw/CheckBorrowerDebarred/; use C4::Biblio; 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'; @@ -56,7 +56,7 @@ 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, @@ -65,13 +65,18 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( } ); +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 ); @@ -80,7 +85,7 @@ my ($warning_year, $warning_month, $warning_day) = split /-/, $borr->{'dateexpir $borr->{'ethnicity'} = fixEthnicity( $borr->{'ethnicity'} ); -my $debar = CheckBorrowerDebarred($borrowernumber); +my $debar = IsDebarred($borrowernumber); my $userdebarred; if ($debar) { @@ -105,7 +110,7 @@ if ( 5 >= $borr->{'amountoutstanding'} && $borr->{'amountoutstanding'} > 0 ) { my $no_renewal_amt = C4::Context->preference( 'OPACFineNoRenewals' ); $no_renewal_amt ||= 0; -if ( $borr->{amountoutstanding} > $no_renewal_amt ) { +if ( C4::Context->preference( 'OpacRenewalAllowed' ) && $borr->{amountoutstanding} > $no_renewal_amt ) { $borr->{'flagged'} = 1; $canrenew = 0; $template->param( @@ -125,19 +130,22 @@ my @bordat; $bordat[0] = $borr; # Warningdate is the date that the warning starts appearing -if ( $borr->{dateexpiry} && Date_to_Days( $today_year, $today_month, $today_day ) > Date_to_Days( $warning_year, $warning_month, $warning_day ) ) { - $borr->{'warnexpired'} = 1; -} -elsif ( $borr->{dateexpiry} && C4::Context->preference('NotifyBorrowerDeparture') && - Date_to_Days(Add_Delta_Days($warning_year, $warning_month, $warning_day,- C4::Context->preference('NotifyBorrowerDeparture'))) < - Date_to_Days( $today_year, $today_month, $today_day ) ) { +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 ); + if ( $days_to_expiry < 0 ) { + #borrower card has expired, warn the borrower + $borr->{'warnexpired'} = $borr->{'dateexpiry'}; + } elsif ( $days_to_expiry < C4::Context->preference('NotifyBorrowerDeparture') ) { # borrower card soon to expire, warn the borrower $borr->{'warndeparture'} = $borr->{dateexpiry}; if (C4::Context->preference('ReturnBeforeExpiry')){ $borr->{'returnbeforeexpiry'} = 1; } + } } +# pass on any renew errors to the template for displaying +my $renew_error = $query->param('renew_error'); $template->param( BORROWER_INFO => \@bordat, borrowernumber => $borrowernumber, @@ -145,6 +153,8 @@ $template->param( BORROWER_INFO => \@bordat, OPACMySummaryHTML => (C4::Context->preference("OPACMySummaryHTML")) ? 1 : 0, surname => $borr->{surname}, showname => $borr->{showname}, + RENEW_ERROR => $renew_error, + borrower => $borr, ); #get issued items .... @@ -158,7 +168,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; } @@ -176,15 +186,32 @@ if ($issues){ } } $issue->{'charges'} = $charges; - + $issue->{'subtitle'} = GetRecordValue('subtitle', GetMarcBiblio($issue->{'biblionumber'}), 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'}); if($status && C4::Context->preference("OpacRenewalAllowed")){ $issue->{'status'} = $status; } - $issue->{'too_many'} = 1 if $renewerror and $renewerror eq 'too_many'; - $issue->{'on_reserve'} = 1 if $renewerror and $renewerror eq 'on_reserve'; + + $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->{'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; + $issue->{'soonestrenewdate'} = output_pref( + C4::Circulation::GetSoonestRenewDate( + $issue->{borrowernumber}, + $issue->{itemnumber} + ) + ); + } + } if ( $issue->{'overdue'} ) { push @overdues, $issue; @@ -256,11 +283,13 @@ foreach my $res (@reserves) { if ( $res->{'expirationdate'} eq '0000-00-00' ) { $res->{'expirationdate'} = ''; } - + $res->{'subtitle'} = GetRecordValue('subtitle', GetMarcBiblio($res->{'biblionumber'}), GetFrameworkCode($res->{'biblionumber'})); $res->{'waiting'} = 1 if $res->{'found'} eq 'W'; $res->{'branch'} = $branches->{ $res->{'branchcode'} }->{'branchname'}; my $biblioData = GetBiblioData($res->{'biblionumber'}); $res->{'reserves_title'} = $biblioData->{'title'}; + $res->{'author'} = $biblioData->{'author'}; + if ($show_priority) { $res->{'priority'} ||= ''; } @@ -282,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'}; @@ -364,6 +394,7 @@ $template->param( $template->param( SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'), AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'), + OpacHoldNotes => C4::Context->preference('OpacHoldNotes'), ); output_html_with_http_headers $query, $cookie, $template->output;