Lp 1843079: Distinguish between auto and regular renewals user/jboyer/lp1843079_renewal_remaining_proposed
authorJason Boyer <JBoyer@equinoxinitiative.org>
Fri, 31 Jul 2020 17:57:25 +0000 (13:57 -0400)
committerJason Boyer <JBoyer@equinoxinitiative.org>
Fri, 31 Jul 2020 18:08:20 +0000 (14:08 -0400)
Make the number of potential remaining autorenewals available
in addtion to the total number of renewals remaining. This
prevents situations where fewer autorenewals are available than
intentional renewals.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm
docs/RELEASE_NOTES_NEXT/Circulation/autorenewnotify-renewal-field.adoc

index f091995..4add52d 100644 (file)
@@ -66,7 +66,8 @@ sub handler {
         my $is_renewed = $evt->{textcode} eq 'SUCCESS' ? 1 : 0;
 
         my $new_circ_due = $is_renewed ? $evt->{payload}->{circ}->due_date : '';
-        my $renewal_remaining = $is_renewed ? $evt->{payload}->{circ}->renewal_remaining : $_->renewal_remaining;
+        my $total_remaining = $is_renewed ? $evt->{payload}->{circ}->renewal_remaining : $_->renewal_remaining;
+        my $auto_remaining = $is_renewed ? $evt->{payload}->{circ}->auto_renewal_remaining : $_->auto_renewal_remaining;
 
         my %user_data = (
             copy => $_->target_copy(),
@@ -75,7 +76,8 @@ sub handler {
             new_due_date => $is_renewed ? $evt->{payload}->{circ}->due_date : '',
             old_due_date => !$is_renewed ? $_->due_date() : '',
             textcode => $evt->{textcode},
-            renewal_remaining => $renewal_remaining,
+            total_renewal_remaining => $total_remaining,
+            renewal_remaining => ($auto_remaining < $total_remaining) ? $auto_remaining : $total_remaining,
         );
 
         # Create the event from the source circ instead of the
index fdc2857..e992b2a 100644 (file)
@@ -1,14 +1,16 @@
 New Field for AutorenewNotify Eevent Template
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-A new field, `renewal_remaining`, has been added to the
-AutorenewNotify action/trigger event code.  It will report the number
-of renewals remaining on the new circulation, if renewed, or on the
-old circulation, if not renewed.  This is provided as a convenience to
-avoid possibly inaccurate math in the template.  You may access it in
-the template via the `udata`:
+Two new fields, `renewal_remaining`, and `total_renewal_remaining` have
+been added to the AutorenewNotify action/trigger event code.  They will
+report the number of autorenewals and regular renewals, respectively,
+remaining on the new circulation if renewed, or on the old circulation
+if not renewed.  This is provided as a convenience to avoid possibly
+inaccurate math in the template.  You may access them in the template via
+the `udata`:
 
 .................................................
-Renewals Remaining: [% udata.renewal_remaining %]
+Automatic Renewals Remaining: [% udata.renewal_remaining %]
+Total Renewals Remaining: [% udata.total_renewal_remaining %]
 .................................................