]> git.evergreen-ils.org Git - working/Evergreen.git/commit
LP1819542 Hanging transits can cause checkins to fail
authorJason Etheridge <jason@EquinoxInitiative.org>
Fri, 5 Jun 2020 13:00:53 +0000 (09:00 -0400)
committerChris Burton <cburton@nflibrary.ca>
Thu, 10 Sep 2020 16:01:35 +0000 (12:01 -0400)
commit3337014e85ff502ca0e8fa2ae52a7ac4728fe005
treea392a2ceb87392e9a4d9783b3e9267eb849ecd1d
parent974bbeafa9ac8122502543e3035c1467b7c92cbb
LP1819542 Hanging transits can cause checkins to fail

So two bits of defensive programming for do_checkin:

    sub fix_broken_transit_status
    sub cancel_transit_if_circ_exists

I don't know if the first one does anything useful, but the idea is that it'll
at least temporarily set the copy status to In Transit for any status checks
within the do_checkin method that test for that.  It doesn't actually repair
the status permanently (at least in the case of, say, an existing transit being
re-used for a ROUTE_ITEM event).  We may want to do that.

The second one will abort an associated transit (including retargeting a hold
for a hold transit) if both an active transit and an active circulation exist
for the item.  This handles the situation I've been using to test the bug:

    1) transit an item (CONC90000436 in Concerto)
    2) artificially change its status directly in the database (for example, to
       Available)
    3) check it out to a patron (99999376864 in Concerto), noting
       that the Cancel Transit prompt does not get triggered
    4) check in the item

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm