DRAFT: BE | Support business logic for reading room / in-house circulation loan. Extend check-out-by-barcode and check-in-by-barcode to accommodate Reading room / In-house circulation loan

Description

Overview:

NLS' work flow for reading room / in-house circulation loan is following:
1) the patron has 7 days to show up the first time (check out and check in)
2) the patron then needs to check out / check in the material at least every 7 day
3) the current due date is 30 days but is automatically renewed up to a year (365 days) if no other patron is on hold for the same item. But the user still has to check out / check in the material every 7 day

Screenshot 2025-03-21 at 14.26.14.png

 

Use case:

As a staff member, I require the check-in app to handle items that have a Reading room circulation request on it to be handled differently from other items, both with and without requests. If the item has no other hold request, beyond the current users reading room / in-house circulation request, then the loan at NLS can be extended from the original 30 days up to 1 year, if the patron checks in every 7th day.

NOTE: These loan periode can vary from library to library, and is therefor defined in loan policies, and circulation rules.

The main workflow difference is that when an item with an Reading room circulation request in place is checked out, the request is not closed, but instead left open. A normal loan is opened for the patron and the request is moved to "Open - checked out to patron" https://folio-org.atlassian.net/browse/UXPROD-5035 . Upon return the request will either remain open (moved back to "Open - awaiting pickup") or closed based on input form the staff member. Requests will be identified by a flag as specified in https://folio-org.atlassian.net/browse/UXPROD-5037%7Chttps://folio-org.atlassian.net/browse/UXPROD-5037%7Csmart-link%5D.

The expectation is that hold shelf expiration date is reset every time a user checks in the book for keeping on the shelf, and for the hold shelf clearance report to work for books not checked out at all and for books kept on shelf for 8 days or more.

Kajsa Bäckius points to alternative solutions:

Settings: Maybe can it be covered by the already existing Loan period settings in the Loan policy and the Shelf expiration period in the Servicepoint setting?

https://nls-dev.folio-dev.indexdata.com/settings/circulation/loan-policies/16011292-75f8-4f0a-a957-4699a3321428

Screenshot 2025-03-21 at 15.46.34.png

I think the proposed solution from RA-SIG working group lead by Thomas Trutt  was that loan period and shelf expiration period was the same. I think this could work for NLS if this period could be renewed if there are no Holds. We are open to other solutions than we current have

In scope:

Extend the check-out-by-barcode endpoint

  • If a item has an active request that is flagged as being a Reading room circulation request and being charged out to the requestor:

    • The request is not closed

    • The request is moved to the status of “Open - checked out to patron”; JIRA:UXPROD-5035

    • The hold shelf expiration date is retained

    • A loan record is generated based on the settings in the loan policy and the current circulation rules

    • All notices, fee/fine polices, etc are unchanged from established workflows

    • The request UUID is added to the loan object

  • All other item / patron / request / hold shelf clearance reports follow the currently established workflows

Extend the check-in-by-barcode endpoint

  • If the item has an active request that is flagged as being a Reading room circulation request and being checked in by the requestor:

    • Two separate workflows must be accommodated based on a variable passed from he front end; “Close request & return item” and “Keep on hold shelf” (below)

    • A 7 day cycle (or what value is set in Settings) is to kick in. The loan periode can be extended up to 1 year

    • the hold shelf expiration date is reset every time a user checks in the book for keeping on the shelf, and for the hold shelf clearance report to work for books not checked out at all and for books kept on shelf for 8 days or more

  • All other item / patron / request combinations follow the established workflows.

Workflows check-in-by-barcode

  • Keep on hold shelf

    • The request is moved to the status of “Open - awaiting pickup”

    • The current hold shelf expiration date is retained (is not changed/recalculated)

    • Notices; “Item available for pick” notice is not generated and or sent to the patron (Emails are suppressed)

    • The active loan is closed

      • Any fee/fines are calculated based on established workflows

      • The loan is a standard loan item

  • Close request & return item

    • The request is moved to “Closed - filled”

      • The request is closed and the item is returned to the collection

    • The active loan is closed

      • All established workflows remain intact

    • The item is routed if required

    • New hold slips are printed for the next request in the queue

Permissions:

No extra permissions are needed to check-in or check-out items.

Notes:

This backend ticket covers

  • extend check-in-by-barcode

    • Ticket suppress availability notifications

  • extend check-out-by-barcode


  • Ticket Extend the loan object to hold the requests UUID (mod-circulation-storage - see Jira ticket-XXX)

  • Ticket extend the loan API to expose the request UUID and handle if there is no id present (mod-circulation - see Jira ticket-XXX - to be done before CIRC-2308)

Frontend:

Environment

None

Potential Workaround

None

Attachments

4
  • 21 Mar 2025, 02:48 PM
  • 21 Mar 2025, 02:18 PM
  • 21 Mar 2025, 01:52 PM
  • 21 Mar 2025, 01:50 PM

Confluence content

Checklist

hide

Activity

Show:

Details

Assignee

Reporter

Priority

Development Team

Klemming

Release

Trillium (R2 2025)

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created last week
Updated last week
TestRail: Cases
TestRail: Runs

Flag notifications