reworked error handling for setting claimed returned. added PATRON_EXCEEDS_CLAIMS_RET...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 18 Sep 2009 22:58:20 +0000 (22:58 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 18 Sep 2009 22:58:20 +0000 (22:58 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@14066 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/locale/en-US/patron.properties
Open-ILS/xul/staff_client/server/patron/items.js

index fe9b56b..542ab20 100644 (file)
@@ -228,6 +228,7 @@ staff.patron.items.items_claimed_returned.date_cannot_be_in_future=Claims Return
 staff.patron.items.items_claimed_returned.claimed_returned=Claimed Returned
 staff.patron.items.items_claimed_returned.enter_returned_date=Enter a claimed returned date for these items: %1$s
 staff.patron.items.items_claimed_returned.not_marked_claimed_returned=The items were not likely marked Claimed Returned.
+staff.patron.items.set_claim_returned_failure=Override set claimed returned failure?
 staff.patron.items.items_checkin.confirm_item_check_in.singular=Are you sure you would like to check in item %1$s?
 staff.patron.items.items_checkin.confirm_item_check_in.plural=Are you sure you would like to check in items %1$s?
 staff.patron.items.items_checkin.no_checkin=Checkin probably did not happen.
index ce474f7..2f282c3 100644 (file)
@@ -444,15 +444,33 @@ patron.items.prototype = {
                        if (backdate) {
                                backdate = util.date.formatted_date(backdate + ' 00:00:00','%{iso8601}');
                                var barcodes = util.functional.map_list(retrieve_ids,function(o){return o.barcode;});
+                var do_not_move_these = {};
                                for (var i = 0; i < barcodes.length; i++) {
                                        var robj = obj.network.simple_request(
                                                'MARK_ITEM_CLAIM_RETURNED', 
-                                               [ ses(), { barcode: barcodes[i], backdate: backdate } ]
+                                               [ ses(), { barcode: barcodes[i], backdate: backdate } ],
+                        null,
+                        {
+                            'title' : $("patronStrings").getString('staff.patron.items.set_claim_returned_failure'),
+                            'overridable_events' : [
+                                'PATRON_EXCEEDS_CLAIMS_RETURN_COUNT'                                
+                            ]
+                        }
                                        );
-                                       if (typeof robj.ilsevent != 'undefined') { if (robj.ilsevent != 0) throw(robj); }
+                                       if (typeof robj.ilsevent != 'undefined') { 
+                        if (robj.ilsevent != 0 && robj.textcode != 'PATRON_EXCEEDS_CLAIMS_RETURN_COUNT' ) {
+                            do_not_move_these[ barcodes[i] ] = true;
+                            obj.error.standard_unexpected_error_alert($("patronStrings").getString('staff.patron.items.items_claimed_returned.not_marked_claimed_returned'),E);
+                        }
+                        if (robj.textcode == 'PATRON_EXCEEDS_CLAIMS_RETURN_COUNT') {
+                            do_not_move_these[ barcodes[i] ] = true;
+                        }
+                    }
                                }
                        }
-                       for (var i = 0; i < retrieve_ids.length; i++) obj.refresh(retrieve_ids[i].circ_id,true);
+                       for (var i = 0; i < retrieve_ids.length; i++) {
+                obj.refresh(retrieve_ids[i].circ_id, !do_not_move_these[ retrieve_ids[i].barcode ]);
+            }
                } catch(E) {
                        obj.error.standard_unexpected_error_alert($("patronStrings").getString('staff.patron.items.items_claimed_returned.not_marked_claimed_returned'),E);
                }