Bug 31112: CanBookBeRenewed: take into account patrons with more than 1 hold to a...
authorJoonas Kylmälä <joonas.kylmala@iki.fi>
Mon, 18 Jul 2022 16:29:06 +0000 (16:29 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Fri, 26 Aug 2022 18:59:03 +0000 (15:59 -0300)
commit15f622ecc1b3d425bf460527398975447cbee62e
tree63274890b805e504005983d628b974fbb92cb84d
parent8ba1a9a5345310c54d9225049d470544b56eeb11
Bug 31112: CanBookBeRenewed: take into account patrons with more than 1 hold to a biblio

If a single patron had more than 1 hold to a biblio and there was only one
available item we allowed incorrectly renewing the checkout when
AllowRenewalIfOtherItemsAvailable was set to "Allow". This
changes CanBookBeRenewed so that it makes sure all the holds are
filled and not just one per patron.

To test:
 1) prove t/db_dependent/Circulation.t
 2) (Optional, as unit test is provided)
    - Set AllowRenewalIfOtherItemsAvailable = Allow
    - Create biblio with three items
    - Checkout one item to patron A
    - Add two biblio-level holds for patron B
    - Try to renew patron A's checkout with and without this patch.
    - Notice that without this patch the renewal succeeds even though we
      one unfilled hold left. After applying the patch the renewal should
      fail.

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
C4/Circulation.pm
t/db_dependent/Circulation.t