LP#1479107 adjust to zero UI
authorBill Erickson <berickxx@gmail.com>
Mon, 11 Nov 2013 14:16:03 +0000 (09:16 -0500)
committerJason Stephenson <jstephenson@mvlc.org>
Wed, 19 Aug 2015 18:32:52 +0000 (14:32 -0400)
New "Adjust to Zero" option in patron billing UI.  Selected
transactions are updated to have a zero balance by rebilling
and/or adding adjustments as required.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/web/opac/locale/en-US/lang.dtd
Open-ILS/xul/staff_client/chrome/content/main/constants.js
Open-ILS/xul/staff_client/server/locale/en-US/patron.properties
Open-ILS/xul/staff_client/server/patron/bill2.js
Open-ILS/xul/staff_client/server/patron/bill2.xul

index 92f0ec5..a820074 100644 (file)
 <!ENTITY staff.patron.bill_interface.void_all_billings.accesskey "V">
 <!ENTITY staff.patron.bill_interface.refund.label "Refund">
 <!ENTITY staff.patron.bill_interface.refund.accesskey "R">
+<!ENTITY staff.patron.bill_interface.adjust_to_zero.label "Adjust to Zero">
+<!ENTITY staff.patron.bill_interface.adjust_to_zero.accesskey "Z">
 <!ENTITY staff.patron.bill_interface.full_details.label "Full Details">
 <!ENTITY staff.patron.bill_interface.full_details.accesskey "D">
 <!ENTITY staff.patron.bill_interface.show_in_catalog.label "Show in Catalog">
index d435afb..e17a897 100644 (file)
@@ -370,7 +370,8 @@ var api = {
     'USER_ORG_UNIT_OPT_IN_FEATURE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.org_unit_opt_in.enabled' },
     'USER_ORG_UNIT_OPT_IN_CHECK' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.org_unit_opt_in.check' },
     'USER_ORG_UNIT_OPT_IN_CREATE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.org_unit_opt_in.create' },
-    'GET_BARCODES' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.get_barcodes' }
+    'GET_BARCODES' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.get_barcodes' },
+    'ADJUST_BILLS_TO_ZERO' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.money.billable_xact.adjust_to_zero' }
 }
 
 var urls = {
index f7d7d5f..401f19d 100644 (file)
@@ -48,7 +48,14 @@ staff.patron.bills.handle_refund.message_singular=Are you sure you would like to
 staff.patron.bills.handle_refund.title=Refund Excess Payment
 staff.patron.bills.handle_refund.btn_yes=Yes
 staff.patron.bills.handle_refund.btn_no=No
-staff.patron.bills.handle_refund.confirm_message=Check here to confirm this message
+
+staff.patron.bills.handle_adjust_to_zero.confirm_message=Check here to confirm this message
+staff.patron.bills.handle_adjust_to_zero.message_plural=Are you sure you would like to adjust to zero the balance on bills %1$s?
+staff.patron.bills.handle_adjust_to_zero.message_singular=Are you sure you would like to adjust to zero the balance on bill %1$s?
+staff.patron.bills.handle_adjust_to_zero.title=Adjust to Zero
+staff.patron.bills.handle_adjust_to_zero.btn_yes=Yes
+staff.patron.bills.handle_adjust_to_zero.btn_no=No
+
 staff.patron.bill_history.print_bills.print_error=printing bills
 staff.patron.bill_history.column.xact_type.label=Transaction Type
 staff.patron.bill_history.column.last_billing_type.label=Last Billing Type
index 8a248f3..3db87f9 100644 (file)
@@ -108,6 +108,12 @@ function event_listeners() {
             false
         );
 
+        window.bill_event_listeners.add($('adjust_to_zero'),
+            'command',
+            handle_adjust_to_zero,
+            false
+        );
+
         window.bill_event_listeners.add($('opac'), 
             'command',
             handle_opac,
@@ -382,6 +388,48 @@ function handle_refund() {
     distribute_payment();
 }
 
+/**
+ * Calls open-ils.circ.money.billable_xact.adjust_to_zero on selected
+ * transactions to produce a zero-balance transaction.
+ * Successfully cleared transactions will disappear from the billing list.
+ */
+function handle_adjust_to_zero() {
+
+    var msgkey = g.bill_list_selection.length > 1 ?
+        'staff.patron.bills.handle_adjust_to_zero.message_plural' :
+        'staff.patron.bills.handle_adjust_to_zero.message_singular';
+
+    var msg = $("patronStrings").getFormattedString(
+        msgkey, [g.bill_list_selection]);
+
+    var r = g.error.yns_alert(msg,
+        $("patronStrings").getString(
+            'staff.patron.bills.handle_adjust_to_zero.title'),
+        $("patronStrings").getString(
+            'staff.patron.bills.handle_adjust_to_zero.btn_yes'),
+        $("patronStrings").getString(
+            'staff.patron.bills.handle_adjust_to_zero.btn_no'),null,
+        $("patronStrings").getString(
+            'staff.patron.bills.handle_adjust_to_zero.confirm_message'));
+
+    if (r == 0) {
+        var xact_ids = [];
+        for (var i = 0; i < g.bill_list_selection.length; i++) {
+            var bill_id = g.bill_list_selection[i];
+            xact_ids.push(bill_id);
+        }
+
+        var mod_ids = g.network.simple_request(
+            'ADJUST_BILLS_TO_ZERO', [ses(), xact_ids]);
+
+        g.error.sdump('D_DEBUG', 'adjusted to zero transactions ' + mod_ids);
+
+        refresh();
+        tally_all();
+        distribute_payment();
+    }
+}
+
 
 function check_all() {
     try {
@@ -524,6 +572,7 @@ function init_lists() {
             $('details').setAttribute('disabled', g.bill_list_selection.length == 0);
             $('add').setAttribute('disabled', g.bill_list_selection.length == 0);
             $('voidall').setAttribute('disabled', g.bill_list_selection.length == 0);
+            $('adjust_to_zero').setAttribute('disabled', g.bill_list_selection.length == 0);
             $('refund').setAttribute('disabled', g.bill_list_selection.length == 0);
             $('opac').setAttribute('disabled', g.bill_list_selection.length == 0);
             $('copy_details').setAttribute('disabled', g.bill_list_selection.length == 0);
index 2889b7b..6fbd90d 100644 (file)
@@ -41,6 +41,7 @@
         <command id="opac" label="&staff.patron.bill_interface.show_in_catalog.label;" accesskey="&staff.patron.bill_interface.show_in_catalog.accesskey;" disabled="true"/>
         <command id="copy_details" label="&staff.patron.items_overlay.sel_copy_details.label;" accesskey="&staff.patron.items_overlay.sel_copy_details.accesskey;" disabled="true"/>
         <command id="voidall" label="&staff.patron.bill_interface.void_all_billings.label;" accesskey="&staff.patron.bill_interface.void_all_billings.accesskey;" disabled="true"/>
+        <command id="adjust_to_zero" label="&staff.patron.bill_interface.adjust_to_zero.label;" accesskey="&staff.patron.bill_interface.adjust_to_zero.accesskey;" disabled="true"/>
         <command id="refund" label="&staff.patron.bill_interface.refund.label;" accesskey="&staff.patron.bill_interface.refund.accesskey;" disabled="true"/>
         <command id="add" label="&staff.patron.bill_interface.add_billing.label;" accesskey="&staff.patron.bill_interface.add_billing.accesskey;" disabled="true"/>
         <command id="details" label="&staff.patron.bill_interface.full_details.label;" accesskey="&staff.patron.bill_interface.full_details.accesskey;" disabled="true"/>
@@ -51,6 +52,7 @@
             <menuitem command="opac" />
             <menuitem command="copy_details" />
             <menuitem command="voidall" />
+            <menuitem command="adjust_to_zero" />
             <menuitem command="refund" />
             <menuitem command="add" />
             <menuitem command="details" />