Bug 40644

Summary: Bookings biblio checks erroneously if multiple check-outs and bookings exist
Product: Koha Reporter: Pedro Amorim <pedro.amorim>
Component: CirculationAssignee: Pedro Amorim <pedro.amorim>
Status: Signed Off --- QA Contact: Martin Renvoize (ashimema) <martin.renvoize>
Severity: normal    
Priority: P5 - low CC: gmcharlt, kyle, martin.renvoize, pedro.amorim
Version: Main   
Hardware: All   
OS: All   
GIT URL: Change sponsored?: ---
Patch complexity: --- Documentation contact:
Documentation submission: Text to go in the release notes:
Version(s) released in:
Circulation function:
Attachments: Bug 40644: Only count checkouts that have not yet been counted as bookings
Bug 40644: Only count checkouts that have not yet been counted as bookings
Bug 40644: Only count checkouts that have not yet been counted as bookings
Bug 40644: Only count checkouts that have not yet been counted as bookings

Description Pedro Amorim 2025-08-13 11:25:45 UTC

    
Comment 1 Pedro Amorim 2025-08-13 11:32:21 UTC Comment hidden (obsolete)
Comment 2 Pedro Amorim 2025-08-13 11:43:00 UTC Comment hidden (obsolete)
Comment 3 Pedro Amorim 2025-08-13 11:43:50 UTC
Created attachment 185360 [details] [review]
Bug 40644: Only count checkouts that have not yet been counted as bookings

Test plan:
1) Have a record with 8 items.
2) Place a booking on 6 of the items (6 bookings total) for a full month
   (e.g. August)
3) Check-out all 6 of those bookings
4) Attempt to place a new booking for one of the 2 free items for end of month, e.g. (Aug 26 -> Aug 28).
5) It will fail with error "Booking conflicts". This is because the code
   is adding 6 checkouts with 6 bookings = 12 which is higher than 8
bookable items.
6) With this patch, check-outs that refer to an existing booking are
   excluded, so the check becomes if 8 - 6 > 0 (which passes the check) rather than 8 - 12 > 0 (which fails the check)

Run existing tests:
prove t/db_dependent/Koha/Item.t
prove t/db_dependent/Koha/Biblio.t
prove t/db_dependent/Koha/Booking.t
Comment 4 Pedro Amorim 2025-08-13 11:44:31 UTC
Adding Martin as QA here for when he's available.
Comment 5 Andrew Fuerste-Henry 2025-08-14 18:09:32 UTC
Created attachment 185417 [details] [review]
Bug 40644: Only count checkouts that have not yet been counted as bookings

Test plan:
1) Have a record with 8 items.
2) Place a booking on 6 of the items (6 bookings total) for a full month
   (e.g. August)
3) Check-out all 6 of those bookings
4) Attempt to place a new booking for one of the 2 free items for end of month, e.g. (Aug 26 -> Aug 28).
5) It will fail with error "Booking conflicts". This is because the code
   is adding 6 checkouts with 6 bookings = 12 which is higher than 8
bookable items.
6) With this patch, check-outs that refer to an existing booking are
   excluded, so the check becomes if 8 - 6 > 0 (which passes the check) rather than 8 - 12 > 0 (which fails the check)

Run existing tests:
prove t/db_dependent/Koha/Item.t
prove t/db_dependent/Koha/Biblio.t
prove t/db_dependent/Koha/Booking.t

Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>