From 16213187d91695babb08da4301aeffb2517bf753 Mon Sep 17 00:00:00 2001 From: Eivin Giske Skaaren Date: Mon, 25 May 2015 17:10:54 +0000 Subject: [PATCH] Bug 10067: decreaseLoanHighHolds messes with specify due date To test: 1. On a branch up to date with master: apply the patch. 2. Try to check out items both with and without holds. (The decreaseLoanHighHolds function should be configured and kick in when testing an item. 3. Expected results are: The due date date field should be cleared after checkout if "Remember for session" is not selected. If it is selected then the chosen date should stay in the field even if the warning about reduced loan time for an item with too many holds is displayed. Also the correct due dates are shown in the table after a checkout. Known limitation: Does not work too well when jumping between different parts of the system as it relies on the values sent to the circulation.pl script. Sponsored-by: Halland County Library Refactored to both fix specific issue where date is changed and still have the old behaviour with date kept intact. Rebase Remove code whitespace cleanup Remove one more code whitespace cleanup Removed duplicate tag Refactored stickyduedate session parameter Fix datefield set by highholds if blanc Signed-off-by: Nicole Engard Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi --- circ/circulation.pl | 24 ++++++++++++------- .../prog/en/modules/circ/circulation.tt | 21 +++++++++------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/circ/circulation.pl b/circ/circulation.pl index c8e787257e..f16475eb0f 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -55,7 +55,6 @@ use Date::Calc qw( ); use List::MoreUtils qw/uniq/; - # # PARAMETERS READING # @@ -156,7 +155,6 @@ $findborrower =~ s|,| |g; $branch = C4::Context->userenv->{'branch'}; $printer = C4::Context->userenv->{'branchprinter'}; - # If AutoLocation is not activated, we show the Circulation Parameters to chage settings of librarian if (C4::Context->preference("AutoLocation") != 1) { $template->param(ManualLocation => 1); @@ -176,7 +174,10 @@ my $stickyduedate = $query->param('stickyduedate') || $session->param('stickydu my $duedatespec = $query->param('duedatespec') || $session->param('stickyduedate'); $duedatespec = eval { output_pref( { dt => dt_from_string( $duedatespec ), dateformat => 'iso' }); } if ( $duedatespec ); - +my $restoreduedatespec = $query->param('restoreduedatespec') || $session->param('stickyduedate') || $duedatespec; +if ($restoreduedatespec eq "highholds_empty") { + undef $restoreduedatespec; +} my $issueconfirmed = $query->param('issueconfirmed'); my $cancelreserve = $query->param('cancelreserve'); my $print = $query->param('print') || q{}; @@ -577,6 +578,17 @@ my $roadtype = C4::Koha::GetAuthorisedValueByCode( 'ROADTYPE', $borrower->{stree $template->param(%$borrower); +# Restore date if changed by holds and/or save stickyduedate to session +if ($restoreduedatespec || $stickyduedate) { + $duedatespec = $restoreduedatespec || $duedatespec; + + if ($stickyduedate) { + $session->param( 'stickyduedate', $duedatespec ); + } +} elsif (defined($duedatespec) && !defined($restoreduedatespec)) { + undef $duedatespec; +} + $template->param( lib_messages_loop => $lib_messages_loop, bor_messages_loop => $bor_messages_loop, @@ -595,6 +607,7 @@ $template->param( barcodes => $barcodes, stickyduedate => $stickyduedate, duedatespec => $duedatespec, + restoreduedatespec => $restoreduedatespec, message => $message, totaldue => sprintf('%.2f', $total), inprocess => $inprocess, @@ -612,11 +625,6 @@ $template->param( relatives_borrowernumbers => \@relatives, ); -# save stickyduedate to session -if ($stickyduedate) { - $session->param( 'stickyduedate', $duedatespec ); -} - my ($picture, $dberror) = GetPatronImage($borrower->{'borrowernumber'}); $template->param( picture => 1 ) if $picture; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index 07ef6cef50..19ba9fa3a1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -315,13 +315,19 @@ $(document).ready(function() { [% IF HIGHHOLDS %] [% END %] [% IF CAN_user_circulate_force_checkout or HIGHHOLDS %]
+ [% IF (forceallow) %][% END %] @@ -366,6 +372,7 @@ $(document).ready(function() { [% IF ( RESERVED ) %] + @@ -375,6 +382,7 @@ $(document).ready(function() { [% IF ( RESERVE_WAITING ) %] + @@ -386,6 +394,7 @@ $(document).ready(function() { [% IF (forceallow) %][% END %] + [% IF CAN_user_circulate_force_checkout or HIGHHOLDS %] [% IF ( RENEW_ISSUE ) %] @@ -430,6 +439,7 @@ $(document).ready(function() {
[% IF (forceallow) %][% END %] + @@ -538,11 +548,11 @@ No patron matched [% message %] [% END %] - [% IF ( borrowers ) %] [% INCLUDE 'patron-toolbar.inc' %] +
Patron selection @@ -598,8 +608,8 @@ No patron matched [% message %] [% END %] - + [% IF ( issue ) %]
[% ELSE %] @@ -784,8 +794,6 @@ No patron matched [% message %] [% END %] - - @@ -853,7 +861,6 @@ No patron matched [% message %] [% END %] - @@ -969,8 +976,6 @@ No patron matched [% message %] [% END %] - - [% UNLESS ( borrowers ) %][% IF ( borrowernumber ) %]
-- 2.39.5