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 <kelly@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 6e56e4a0d1)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
d6bdada36d
commit
94a261e3db
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -345,7 +345,7 @@
|
|||
[% IF ( INVALID_DATE ) %]
|
||||
<p>
|
||||
<input type="text" size="20" id="duedatespec" name="duedatespec" value="[% duedatespec | html %]" class="flatpickr" data-flatpickr-enable-time="true" data-flatpickr-on-close-focus="#barcode" />
|
||||
<label for="duedatespec">Due date</label>
|
||||
<label for="duedatespec">Due date</label>
|
||||
</p>
|
||||
[% ELSE %]
|
||||
<input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
|
||||
|
|
@ -354,7 +354,7 @@
|
|||
[% IF ( BOOKED_TO_ANOTHER ) %]
|
||||
<p>
|
||||
<label for="reduceddue">Reducing due date to: <label>
|
||||
<input type="text" size="20" id="reudceddue" name="reduceddue" value="[% reduceddue | $KohaDates with_hours => 1 %]" readonly="readonly">
|
||||
<input type="text" size="20" id="reduceddue" name="reduceddue" value="[% reduceddue | html %]" class="flatpickr" data-flatpickr-futuredate="true" data-flatpickr-maxdate="[% reduceddue | html %]" required="required">
|
||||
</p>
|
||||
[% END %]
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue