More aggressive recalc of standing penalties
authorJason Etheridge <jason@esilibrary.com>
Tue, 3 Jan 2012 20:46:25 +0000 (15:46 -0500)
committerBill Erickson <berick@esilibrary.com>
Tue, 10 Jan 2012 18:11:16 +0000 (13:11 -0500)
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>
Open-ILS/xul/staff_client/server/patron/display.js

index 3cf9f96..1eec41f 100644 (file)
@@ -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'); }
     },