LP#1193204 Fixes error with generate_fines user/ldw/lp1193204_rel_2_4
authorLiam Whalen <whalen.ld@gmail.com>
Mon, 15 Jul 2013 04:30:13 +0000 (21:30 -0700)
committerLiam Whalen <whalen.ld@gmail.com>
Mon, 15 Jul 2013 04:30:13 +0000 (21:30 -0700)
commit4ebe23d19244752f532bc7b2794303add0a65c1a
tree6977479842b9f03db029a1d00f6e9b56a8673772
parentb75e50b76884419714f05ac95f239220e2894d68
LP#1193204 Fixes error with generate_fines

If an overdue is returned after a closed date, the generate_fines code
will not generate fines for those items because the section of code that
checks for closed dates returns from the function if a closed date is
encountered.

For example, if an item is due on June 29th, but is not returned until
after July 1st (Canada Day), then when fines are generated for the item,
generate_fines creates a fine for the 30th of June, but when it
gets to the 1st of July it encouters a closed date and executes a
'return' statement which exits the generate_fines code causing the
fine from June 30th to be rolled back as well as preventing further
fines from being created.

This fix replaces the 'return' statements insisde the 'for' loop
that is nested within the eval with 'next' statements.  The next
statements were changed into return statements to prevent excessive
warning messages.  However, after testing locally, next statements
within a for loop nested within an eval do not generate warnings.  If my
tests are incorrect, "no warnings 'exiting';" at the start of the eval
should also address this problem while maintaining the necessary next
statements within the internal for loop.

Signed-off-by: Liam Whalen <whalen.ld@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm