From 5cace2edd84de41d02ef1cf143a899bf2e44eead Mon Sep 17 00:00:00 2001 From: Lucas Gass Date: Fri, 7 Mar 2025 00:02:30 +0000 Subject: [PATCH] Bug 39270: Check to make sure checkouts are not already booked To test: 1. Find an item that is bookable, I turned on Bookable at the item type level for BK. I am using biblionumber=28 in k-t-d with 3 items 2. Book item with barcode ( 39999000001297 ). I did March 7 - April 1 3. Book item with barcode ( 39999000001259 ). I did March 7 - April 1 4. Now checkout 39999000001297 to the patron is was booked to. When asked about early collection say yes. 5. Now item with barcode ( 39999000001273 ) is not checked out or booked. It should be bookable 6. Try to book it, it is not available till April 2, though it should be available right now. 7. APPLY PATCH 8. Try the bookings again. 9. You should correctly not be able to book 39999000001297 or 39999000001259. 10. You should be able to book 39999000001273. --- .../prog/js/modals/place_booking.js | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js b/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js index 8bbb4547e91..bf3d9f9baed 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js +++ b/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js @@ -353,15 +353,20 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { // Merge current checkouts into bookings for (checkout of checkouts) { - let booking = { - biblio_id: biblionumber, - booking_id: null, - end_date: checkout.due_date, - item_id: checkout.item_id, - patron_id: checkout.patron_id, - start_date: new Date().toISOString(), - }; - bookings.unshift(booking); + let already_booked = bookings.some( + b => b.item_id === checkout.item_id + ); + if (!already_booked) { + let booking = { + biblio_id: biblionumber, + booking_id: null, + end_date: checkout.due_date, + item_id: checkout.item_id, + patron_id: checkout.patron_id, + start_date: new Date().toISOString(), + }; + bookings.unshift(booking); + } } // Update flatpickr mode -- 2.39.5