From d490c21e2f0d505be82acdb896d81c40320e7d93 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 29 Feb 2024 11:28:24 +0000 Subject: [PATCH] Bug 36175: Corrections to reduced due for booked items This patch fixes a mistake in the circulation controller such that the proper reduceddue date is passed to the template when a checkout would overlap with a booking. I also take the oportunity to enhance the functionality to allow librarians to set their own reduceddue date between now and the hard reduceddue as required for the existing booking. Test plan 1) Set an item to 'bookable' 2) Add a booking to that item for user A for a few days time. 3) Attempt to checkout the item to user B and note the warning that the item is booked for another user. 4) With the patch applied, a reduced due date of 1 day prior to the booking should be defaulted to in the displayed date picker. 5) You should be able to select any date between today and the day before the booking starts 6) Confirm you can checkout with the reduceddue date set. 7) Bonus point, confirm the field is required, so if you try to wipe it and then checkout, you will be blocked. --- circ/circulation.pl | 2 +- koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc | 4 ++++ koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/circ/circulation.pl b/circ/circulation.pl index 9296d9e642e..87d977d72b5 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -425,7 +425,7 @@ if (@$barcodes) { $template_params->{getBarcodeMessageIteminfo} = $item->barcode; $template_params->{NEEDSCONFIRMATION} = 1; $confirm_required = 1; - if ( $needsconfirmation eq 'BOOKED_TO_ANOTHER' ) { + if ( $needsconfirmation_key eq 'BOOKED_TO_ANOTHER' ) { my $reduceddue = dt_from_string( $$needsconfirmation{$needsconfirmation_key}->start_date )->subtract( days => 1 ); $template_params->{reduceddue} = $reduceddue; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc index f0275520539..e3de0dde7c1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc @@ -181,6 +181,10 @@ options['dateFormat'] = "Y-m-d H:i"; options['altFormat'] = flatpickr_dateformat_string + " " + flatpickr_timeformat_string; } + let maxDate = $(input).data("flatpickr-maxdate"); + if( typeof maxDate !== 'undefined' ) { + options['maxDate'] = new Date(maxDate); + } let fp = $(input).flatpickr(options); 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 979f916cd82..baddf3dc450 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -345,7 +345,7 @@ [% IF ( INVALID_DATE ) %]

- +

[% ELSE %] @@ -354,7 +354,7 @@ [% IF ( BOOKED_TO_ANOTHER ) %]

[% END %] -- 2.44.0