X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=circ%2Frenew.pl;h=f495a4061f2f342482a1d315ad00c4bb522cc424;hb=0bc83b3673659f347979ad998dfc9d9400d4c024;hp=a431a2c4a35f7961e99013f60fa778591cc790b2;hpb=c48af49ded481f498087eaf8e4cb530c4cc0a8e9;p=koha-ffzg.git diff --git a/circ/renew.pl b/circ/renew.pl index a431a2c4a3..f495a4061f 100755 --- a/circ/renew.pl +++ b/circ/renew.pl @@ -4,57 +4,56 @@ # # 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 3 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 CGI qw ( -utf8 ); use C4::Context; -use C4::Auth qw/:DEFAULT get_session/; -use C4::Output; -use C4::Circulation; -use C4::Koha; -use Koha::DateUtils; +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use C4::Circulation qw( barcodedecode CanBookBeRenewed GetLatestAutoRenewDate AddRenewal ); +use Koha::DateUtils qw( dt_from_string ); use Koha::Database; use Koha::BiblioFrameworks; -my $cgi = new CGI; +my $cgi = CGI->new; my ( $template, $librarian, $cookie, $flags ) = get_template_and_user( { template_name => "circ/renew.tt", query => $cgi, type => "intranet", - authnotrequired => 0, flagsrequired => { circulate => "circulate_remaining_permissions" }, } ); my $schema = Koha::Database->new()->schema(); -my $barcode = $cgi->param('barcode'); -$barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespae -$barcode = barcodedecode($barcode) if( $barcode && C4::Context->preference('itemBarcodeInputFilter')); +my $barcode = $cgi->param('barcode') // ''; +my $unseen = $cgi->param('unseen') || 0; +$barcode = barcodedecode($barcode) if $barcode; my $override_limit = $cgi->param('override_limit'); my $override_holds = $cgi->param('override_holds'); +my $hard_due_date = $cgi->param('hard_due_date'); my ( $item, $issue, $borrower ); my $error = q{}; my ( $soonest_renew_date, $latest_auto_renew_date ); if ($barcode) { - $barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespace + $barcode = barcodedecode($barcode) if $barcode; $item = $schema->resultset("Item")->single( { barcode => $barcode } ); if ($item) { @@ -63,11 +62,12 @@ if ($barcode) { if ($issue) { - $borrower = $issue->borrower(); + $borrower = $issue->patron(); if ( ( $borrower->debarred() || q{} ) lt dt_from_string()->ymd() ) { my $can_renew; - ( $can_renew, $error ) = + my $info; + ( $can_renew, $error, $info ) = CanBookBeRenewed( $borrower->borrowernumber(), $item->itemnumber(), $override_limit ); @@ -82,10 +82,7 @@ if ($barcode) { } if ( $error && ($error eq 'too_soon' or $error eq 'auto_too_soon') ) { - $soonest_renew_date = C4::Circulation::GetSoonestRenewDate( - $borrower->borrowernumber(), - $item->itemnumber(), - ); + $soonest_renew_date = $info->{soonest_renew_date}; } if ( $error && ( $error eq 'auto_too_late' ) ) { $latest_auto_renew_date = C4::Circulation::GetLatestAutoRenewDate( @@ -95,7 +92,21 @@ if ($barcode) { } if ($can_renew) { my $branchcode = C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef; - my $date_due = AddRenewal( undef, $item->itemnumber(), $branchcode, dt_from_string( scalar $cgi->param('renewonholdduedate')) ); + my $date_due = + ( C4::Context->preference('SpecifyDueDate') + && $hard_due_date ) + ? $hard_due_date + : $cgi->param('renewonholdduedate'); + + $date_due = AddRenewal( + undef, + $item->itemnumber(), + $branchcode, + $date_due, + undef, + undef, + !$unseen + ); $template->param( date_due => $date_due ); } } @@ -121,6 +132,7 @@ if ($barcode) { ); } +$template->param( hard_due_date => $hard_due_date ); # Checking if there is a Fast Cataloging Framework $template->param( fast_cataloging => 1 ) if Koha::BiblioFrameworks->find( 'FA' );