From: Jason Etheridge <jason@esilibrary.com>
Date: Tue, 3 Jan 2012 20:46:25 +0000 (-0500)
Subject: More aggressive recalc of standing penalties
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=05679cce8d1b4903f65262bebbdc384f88238b9d;p=evergreen%2Fmasslnc.git

More aggressive recalc of standing penalties

In the staff client, the Refresh button in the patron display will explicitly
ask the server to recalculate standing penalties for the patron. Other automatic
refresh-like behavior meant to synchronize parts of the patron display will not
do this.

This change tweaks the logic to ask for a recalculation with all refresh-like
behavior in the patron display, and will catch such things as staff changing the
user's permisssion profile.

An example of how you might test this:

Admin -> Local Administration -> Group Penalty Thresholds

New Penalty Threshold

Group: Volunteers
Org Unit: CONS
Penalty: PATRON_EXCEEDS_FINES
Threshold: 1

Save

Register user with Profile of Patrons

Load patron, Bills, Bill Patron, Amount: 5, Submit this Bill

Edit

Main (Profile) Permission Group: Volunteers, Save

The interface should refresh and show a Maximum Bills penalty in the patron
summary.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
---

diff --git a/Open-ILS/xul/staff_client/server/patron/display.js b/Open-ILS/xul/staff_client/server/patron/display.js
index 3cf9f96f69..1eec41fb5f 100644
--- a/Open-ILS/xul/staff_client/server/patron/display.js
+++ b/Open-ILS/xul/staff_client/server/patron/display.js
@@ -174,10 +174,6 @@ patron.display.prototype = {
                         ['command'],
                         function(ev) {
                             try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible( document.getElementById("PatronNavBar_refresh" ) ); } catch(E) {};
-                            obj.network.simple_request(
-                                'RECALCULATE_STANDING_PENALTIES',
-                                [ ses(), obj.patron.id() ]
-                            );
                             obj.refresh_all();
                         }
                     ],
@@ -805,6 +801,10 @@ patron.display.prototype = {
         var obj = this;
         obj.controller.view.patron_name.setAttribute('value', $("patronStrings").getString('staff.patron.display.init.retrieving'));
         document.documentElement.setAttribute('class','');
+        obj.network.simple_request(
+            'RECALCULATE_STANDING_PENALTIES',
+            [ ses(), obj.patron.id() ]
+        );
         try { obj.summary_window.refresh(); } catch(E) { obj.error.sdump('D_ERROR', E + '\n'); }
         try { obj.refresh_deck(); } catch(E) { obj.error.sdump('D_ERROR', E + '\n'); }
     },