https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=41728

--- Comment #2 from Tomás Cohen Arazi (tcohen) <[email protected]> ---
Created attachment 192131
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=192131&action=edit
Bug 41728: Add Koha::Item::Checkin::Availability class

This patch introduces a new class to centralize and extract check-in
validation logic from C4::Circulation::AddReturn. The class provides
a clean interface for checking whether an item can be checked in,
returning a Koha::Availability::Result object.

The class is designed with the item as the subject of the check-in
operation, following the pattern: "Can THIS ITEM be checked in?"

The class extracts the following validation logic from AddReturn:
- Withdrawn item handling (BlockedWithdrawn blocker)
- Lost item handling (BlockedLost blocker)
- Branch check-in policy validation (Wrongbranch blocker)
- Not issued detection (NotIssued confirmation)

This separation enables:
- Reusable validation logic for REST API and legacy code
- Pre-flight availability checks without side effects
- Structured responses for confirmation flow implementation
- Better testability and maintainability

The check() method accepts an item object and returns a
Koha::Availability::Result object with blockers, confirmations,
warnings, and context (checkout, patron).

A convenience instance method is added to Koha::Item:
  $item->checkin_availability({ branch => $branch })

Test plan:
1. Apply patch
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/Koha/Item/Checkin/Availability.t
=> SUCCESS: Tests pass!
3. Verify all validation scenarios work correctly:
   - Withdrawn items blocked when syspref enabled
   - Lost items blocked when syspref enabled
   - Wrong branch returns blocked per AllowReturnToBranch
   - Not issued items handled correctly
   - Checked out items return checkout and patron objects
4. Sign off :-D

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to