LP#
1205492: fix crash when attempting to renew deposit & rental loans in OPAC
This patch fixes a bug where attempting to renew a loan on an item
that requires a deposit or a rental fee can cause an Apache
internal server error.
In particular, this patch supplies descriptions for the following
events:
ITEM_DEPOSIT_REQUIRED
ITEM_RENTAL_FEE_REQUIRED
ITEM_DEPOSIT_PAID
It also normalizes how 'fail_part' is set in the renewal response,
as the payload of an event returned when a renewal fails can
be either a hash or an acp Fieldmapper object depending on the
type of event. In the former case, attempting to access an
nonexistent ->fail_part method is what causes the crash.
To test
-------
[1] Create an item that requires a deposit or a rental fee
and check it out.
[2] Attempt to renew the loan in the public catalog. Note
that an internal server error is returned.
[3] Apply the patch and attept step 2 again. This time, the
public catalog should display a notification to the patron
that the renewal cannot take place, rather than crashing.
[4] Set up other situations where a renewal should fail for
reasons other than a deposit/rental fee being required. Verify
that appropriate error messages are displayed in the public
catalog.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>