From 66e2a9e8b89f99cf1e38658daeeb520b0f0fdbfa 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. Signed-off-by: Kelly --- 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 da5e2b566a..55628512ab 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -422,7 +422,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 f027552053..e3de0dde7c 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 7707a7587f..84d37fbb7f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -344,7 +344,7 @@ [% IF ( INVALID_DATE ) %]

- +

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

[% END %] -- 2.30.2