Go to file
Paul Derscheid 1f45a43f1d
Bug 41898: (QA follow-up) Skip clash detection when collecting a booking
Transitioning a booking to 'issued' no longer skipped clash detection,
and Item::check_booking treats any live checkout on the item as a
clash. Switching an on-site checkout of a booked item to a regular
checkout (SwitchOnSiteCheckouts) therefore crashed AddIssue with an
unhandled Koha::Exceptions::Booking::Clash; collection could fail the
same way whenever the biblio's bookable item pool had shrunk since the
booking was placed.

- short-circuit no-op stores before validation; circulation issues
  redundant status writes that must not re-trigger the checks
- rename _is_final_status_transition to _skip_clash_detection and also
  skip when transitioning to 'issued' from an active status, as long
  as the booked period and item are unchanged
- keep validating period/item changes and reactivations of terminal
  bookings
- cover the on-site switch in Circulation.t and the store() semantics
  in Booking.t

Test plan:
1. Enable OnSiteCheckouts and SwitchOnSiteCheckouts
2. Place a booking starting today for a patron
3. Check the booked item out to that patron from Circulation > Check
   out with 'On-site checkout' ticked. Do NOT use the bookings page's
   'Transform to checkout' button: it submits a fixed field set that
   does not carry the on-site flag (Bug 36789), so the checkout would
   silently be a regular one and step 4 could not reproduce the switch
4. The booking shows 'Issued'. Scan the same barcode for the same
   patron again to switch the on-site checkout to a regular one; this
   crashed with Koha::Exceptions::Booking::Clash before the patch and
   now succeeds with the booking still 'Issued'
5. prove t/db_dependent/Koha/Booking.t t/db_dependent/Circulation.t

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
2026-07-27 15:53:38 +00:00
.github/workflows Bug 40027: Use GitHub workflow to automatically close PRs opened on the Koha repo there 2025-10-06 09:15:26 -06:00
C4 Bug 41898: Introduce 'issued' status and update booking display/filtering 2026-07-27 15:53:33 +00:00
Koha Bug 41898: (QA follow-up) Skip clash detection when collecting a booking 2026-07-27 15:53:38 +00:00
acqui Bug 42225: (QA follow-up) Use configured unitprice field in outer SELECT 2026-07-16 10:54:38 +00:00
admin Bug 41898: Introduce 'issued' status and update booking display/filtering 2026-07-27 15:53:33 +00:00
api Bug 43119: Restore item and hold links to the log viewer 2026-07-27 12:13:00 +00:00
authorities Bug 21453: Copy data to the correct subfields when linking authorities with authorities 2026-04-23 09:24:58 -06:00
basket Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
bin Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
bookings Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
catalogue Bug 42282: (QA follow-up) restore searchid in stockrotation 2026-06-29 16:20:07 +00:00
cataloguing Bug 42512: Pass already checked/cleaned MARC::Record to Metadata Extractor 2026-07-16 10:54:18 +00:00
circ Bug 42930: Replace title with borrowertitle 2026-07-27 12:12:51 +00:00
clubs Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
course_reserves Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
debian Bug 42861: System warning about missing encryption_key on a fresh instance 2026-07-27 12:13:01 +00:00
docs Bug 42726: Add 26.11 release team 2026-06-02 15:07:16 +00:00
erm Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
errors Bug 28146: Respect ReplytoDefault in error pages 2025-10-09 14:58:41 -06:00
etc Bug 37762: VueJS ILL Module 2026-05-08 12:25:38 -06:00
ill Bug 37762: Circulation: Hook to checkouts/checkins 2026-05-08 12:25:43 -06:00
installer Bug 41898: Add atomicupdate and update schema for 'issued' booking status 2026-07-27 15:53:31 +00:00
koha-tmpl Bug 41898: (QA follow-up) Only list uncollected bookings on the pending list 2026-07-27 15:53:37 +00:00
labels Bug 42764: Fix spelling errors across the codebase 2026-06-03 16:09:04 +00:00
lib Bug 41521: Silent perlcritic warnings 2026-03-24 09:55:54 +01:00
members Bug 42396: Remove C4::Stats::UpdateStats and delete module 2026-07-27 15:53:22 +00:00
misc Bug 42396: Adjust 'use' statements 2026-07-27 15:53:23 +00:00
offline_circ Bug 42396: Remove C4::Stats::UpdateStats and delete module 2026-07-27 15:53:22 +00:00
opac Bug 41084: Allow utf8 export format when EnableZotero is enabled 2026-07-17 13:49:08 +00:00
patron_lists Bug 32176: Remove duplicated code to select patron from autocomplete 2025-10-31 15:26:25 -06:00
patroncards Bug 42764: Fix spelling errors across the codebase 2026-06-03 16:09:04 +00:00
plugins Bug 25952: Skip invalid repositories when searching for plugins 2025-11-21 08:41:52 -07:00
pos Bug 40445: (QA follow-up) Show cashup summary modal when completing from registers.pl 2026-07-27 12:12:41 +00:00
preservation Bug 35267: Apply preferences to preview and mailing 2026-04-17 09:18:06 -06:00
recalls Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
reports Bug 8127: Fix filters use in 'Most-circulated items report' 2026-07-16 17:05:12 +00:00
reserve Bug 42999: Fix $valid_items flag contamination in reserve/request.pl 2026-07-16 17:05:21 +00:00
reviews Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
rotating_collections Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
serials Bug 42699: Display Koha error message when attempting to save non-unique barcode in Edit serials 2026-07-27 12:13:09 +00:00
services Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
sip2 Bug 37893: Fix http links 2025-11-18 11:21:20 -07:00
skel
…
suggestion Bug 42919: Retain suggestion form values when duplicate warning is shown 2026-07-16 17:05:13 +00:00
svc Bug 42084: (QA follow-up) Simplify 2026-06-03 12:08:17 +00:00
t Bug 41898: (QA follow-up) Skip clash detection when collecting a booking 2026-07-27 15:53:38 +00:00
tags Bug 42254: (QA follow-up) Remove unused var, fixing a FIXME 2026-04-28 15:48:24 -06:00
tools Bug 41358: Apply consistent JSON logging to holds (Bug 40866) 2026-07-16 10:54:22 +00:00
virtualshelves Bug 40916: Fix another occurance 2025-10-06 09:15:22 -06:00
xt Bug 42886: Add missing rtl 2026-07-16 10:54:35 +00:00
.codespell-ignore Bug 42764: Fix false positives caused by POD letter-code formatting 2026-06-03 16:09:05 +00:00
.editorconfig
…
.git-blame-ignore-revs Bug 39096: Add 'tidy all' commits to a git blame ignore file 2025-02-17 13:10:25 +01:00
.gitignore Bug 26355: Add a Vue island for the self-renewal modal 2026-05-01 09:30:00 -06:00
.htaccess
…
.mailmap Bug 40041: (follow-up) Fix periods and add Robert Fox 2025-12-05 09:29:04 -07:00
.nvmrc Bug 42353: Store the node version in .nvmrc 2026-04-15 09:14:53 -06:00
.perlcriticrc
…
.perltidyrc
…
.prettierrc.js Bug 38664: Treat .vue files like other JS files 2025-02-11 14:58:25 +01:00
.proverc.dist
…
.stylelintrc.json
…
INSTALL
…
Koha.pm Bug 42489: DBRev 26.06.00.005 2026-07-27 12:12:48 +00:00
LICENSE Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
MANIFEST.SKIP
…
Makefile.PL Bug 42886: Add missing rtl 2026-07-16 10:54:35 +00:00
README
…
README.md Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
README.robots
…
SECURITY.md Bug 40527: Initial draft of SECURITY.md 2025-10-09 14:58:41 -06:00
about.pl Bug 42453: Remove warning 2026-06-29 15:39:07 +00:00
app.psgi Bug 38365: Integrate CSP middleware into Plack apps 2026-03-16 11:57:12 +01:00
build-resources.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
changelanguage.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
cpanfile Revert "Bug 41717: Bump PDF::Reuse and PDF::Reuse::Barcode versions" 2026-07-17 13:49:00 +00:00
cypress.config.ts Bug 42772: Cypress.env => cy.env 2026-07-20 12:45:01 +00:00
eslint.config.mjs
…
fix-perl-path.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
gulpfile.js Bug 42356: Silence Sass if-function deprecation warning 2026-04-17 09:18:15 -06:00
help.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
kohaversion.pl Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
mainpage.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
package.json Bug 42772: Upgrade Cypress to 15.16.0 2026-07-20 12:44:59 +00:00
rewrite-config.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
rspack.config.js Bug 37762: VueJS ILL Module 2026-05-08 12:25:38 -06:00
tsconfig.json
…
yarn.lock Bug 42772: Adjust yarn.lock 2026-07-20 12:45:02 +00:00

README.md

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit https://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

https://koha-community.org/

Koha Logo