Comment 3 for bug 1819540

Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

EG 3.3.4 - just had this behavior reported today. The shelf expire report just happened to have been run after the time the pull list items had been checked in 10 days ago. "None of these expired holds will clear today Josh!"

If one of the goals is to allow shorter expiration periods, shouldn't we be changing the 'today' in
https://git.evergreen-ils.org/?p=Evergreen.git;a=blob;f=Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm;hb=HEAD#l2215

to 'now' so that all holds that have expired get cleared?

I wonder if a better spot to control precise vs day granularity is when the shelf_expire_time gets set, that way the decision doesn't need to be checked in two spots, one for view clearable holds and one for clearing the holds.

The set_hold_shelf_expire_time seems like a good spot to check an org unit setting. How about 'circ.holds.shelf_expire_push_end' "Push the shelf expire date to the end of the day it falls on. If not set, shelf_expire_time will be set precisely based on the default shelf expire interval". Set to true by default to match xul client behavior.

https://git.evergreen-ils.org/?p=Evergreen.git;a=blob;f=Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm;hb=HEAD#l1124

There is already an example there for pushing the expire time to the end of the last closed day.

This would allow locations that like the old behavior of giving customers the whole day that their holds expire to make it in, to continue with that behavior. If an organization had a special org unit with a hold shelf for high demand items and they only wanted to give someone 4 hours to pickup, and they cleared the shelf every hour, then that should work fine also.

If this seems like an ok approach, I can work on it.

Josh