Also lets staff enter monetary values with comma or full stop separators.
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
'coust', 'description'),
'string', null)
+,( 'global.currency_symbol_fmt', 'glob',
+ oils_i18n_gettext('global.currency_symbol_fmt',
+ 'Currency symbol and formatting',
+ 'coust', 'label'),
+ oils_i18n_gettext('global.currency_symbol_fmt',
+ 'How OPAC and staff client show currency. For example: "$%.2f" or "%.2f€"',
+ 'coust', 'description'),
+ 'string', null)
+
,( 'global.default_locale', 'glob',
oils_i18n_gettext('global.default_locale',
'Global Default Locale',
--- /dev/null
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+INSERT INTO config.org_unit_setting_type (
+ name, label, description, grp, datatype
+) VALUES (
+ 'global.currency_symbol_fmt',
+ 'Currency symbol and formatting',
+ 'How OPAC and staff client show currency. For example: "$%.2f" or "%.2f€"',
+ 'glob',
+ 'string'
+);
+
+COMMIT;
</tr>
<tr>
<th>[% l('Total Estimated') %]</th>
- <td>[% l('$[_1]', '<span id="acq-po-view-total-estimated"></span>') %]</td>
+ <td><span id="acq-po-view-total-estimated"></span></td>
<th>[% l('History') %]</th>
<td>
<a class="hidden" href="javascript:void(0);"
</tr>
<tr>
<th>[% l('Total Encumbered') %]</th>
- <td>[% l('$[_1]', '<span id="acq-po-view-total-enc"></span>') %]</td>
+ <td><span id="acq-po-view-total-enc"></span></td>
<th id="acq-po-invoice-label" class="hidden">[% l('Invoicing') %]</th>
<td id="acq-po-invoice-stuff" class="hidden">
<button dojoType="dijit.form.Button"
</tr>
<tr>
<th>[% l('Total Spent') %]</th>
- <td>[% l('$[_1]', '<span id="acq-po-view-total-spent"></span>') %]</td>
+ <td><span id="acq-po-view-total-spent"></span></td>
<th id="acq-po-cancel-label"></th>
<td>
<span id="acq-po-view-cancel-reason"></span>
<script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/md5.js"></script>
<script type="text/javascript">var oilsBasePath = [% IF ctx.base_path.substr(0,1) == '/' %]location.href.replace(RegExp(location.pathname + '.*'),'') +[% END %] '[% ctx.base_path %]'</script>
<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/base.js"></script>
+ <script type="text/javascript" src="/xul/server/util/error.js"></script>
+ <script type="text/javascript" src="/xul/server/util/network.js"></script>
+ <script type="text/javascript" src="/xul/server/util/sound.js"></script>
+ <script type="text/javascript" src="/xul/server/OpenILS/data.js"></script>
+ <script type="text/javascript" src="/xul/server/main/JSAN.js"></script>
+ <script type="text/javascript" src="/opac/common/js/sprintf.js"></script>
+ <script type="text/javascript" src="/xul/server/util/money.js"></script>
<script type="text/javascript">
dojo.require("dijit.layout.LayoutContainer");
dojo.require("dijit.layout.ContentPane");
-[%- USE money = format(l('$%.2f'));
+[%- money_fmt = ctx.get_org_setting(ctx.user.home_ou.id || 1, 'global.currency_symbol_fmt') || l('$%.2f');
+ USE money = format(money_fmt);
USE date;
USE CGI = CGI_utf8;
USE POSIX;
dojo.require("dojo.string");
dojo.require('dijit.layout.ContentPane');
dojo.require('openils.PermaCrud');
+dojo.require('openils.User');
+dojo.require('fieldmapper.OrgUtils');
var pcrud = new openils.PermaCrud();
var PO = null;
PO.provider()
);
dojo.byId("acq-po-view-total-li").innerHTML = PO.lineitem_count();
- dojo.byId("acq-po-view-total-enc").innerHTML = PO.amount_encumbered().toFixed(2);
- dojo.byId("acq-po-view-total-spent").innerHTML = PO.amount_spent().toFixed(2);
+ dojo.byId("acq-po-view-total-enc").innerHTML = util.money.format(PO.amount_encumbered());
+ dojo.byId("acq-po-view-total-spent").innerHTML = util.money.format(PO.amount_spent());
dojo.byId("acq-po-view-state").innerHTML = po_state; // TODO i18n
if(PO.order_date()) {
},
oncomplete : function() {
- dojo.byId("acq-po-view-total-estimated").innerHTML = totalEstimated.toFixed(2);
+ dojo.byId("acq-po-view-total-estimated").innerHTML = util.money.format(totalEstimated);
if (liFocus) liTable.drawCopies(liFocus);
if(zeroLi) openils.Util.show('acq-po-no-lineitems');
}
if (my_field.datatype == 'money') {
JSAN.use('util.money');
def.render = function(my) {
- return util.money.sanitize( my[dataobj][datafield]() );
+ return util.money.format( my[dataobj][datafield]() );
}
def.sort_value = function(my) {
return util.money.dollars_float_to_cents_integer( my[dataobj][datafield]() );
util.money = {};
util.money.EXPORT_OK = [
- 'sanitize', 'dollars_float_to_cents_integer', 'cents_as_dollars'
+ 'sanitize', 'dollars_float_to_cents_integer', 'cents_as_dollars', 'format'
];
util.money.EXPORT_TAGS = { ':all' : util.money.EXPORT_OK };
if (money == '' || money == null || money == undefined) money = 0;
// careful to avoid fractions of pennies
var negative; negative = money.toString().match(/-/) ? -1 : 1;
- var money_s = money.toString().replace(/[^\.\d]/g, '');
- var marray = money_s.split(".");
+ var money_s = money.toString().replace(/[^\.,\d]/g, '');
+ var marray = money_s.split(/[\.,]/);
var dollars = marray[0];
var cents = marray[1];
+ if (marray.length > 2) {
+ cents = marray[marray.length-1];
+ marray.splice(-1, 1);
+ dollars = marray.join("").toString();
+ }
try {
if (cents.length < 2) {
cents = cents + '0';
try {
if (cents == '' || cents == null || cents == undefined) cents = 0;
var negative; negative = cents.toString().match(/-/) ? '-' : '';
- cents = cents.toString().replace(/[^\.\d]/g, '');
- if (cents.match(/\./)) cents = util.money.dollars_float_to_cents_integer( cents ).toString();
+ cents = cents.toString().replace(/[^\.,\d]/g, '');
+ if (cents.match(/\.,/)) cents = util.money.dollars_float_to_cents_integer( cents ).toString();
try {
switch( cents.length ) {
case 0: cents = '000'; break;
return util.money.cents_as_dollars( util.money.dollars_float_to_cents_integer( money ) );
}
+util.money.currency_fmt = undefined;
+
+util.money.format = function( money ) {
+ if (!util.money.currency_fmt) {
+ var fmt_aou = 'global.currency_symbol_fmt';
+ if (typeof JSAN != 'undefined' && typeof api != 'undefined') {
+ JSAN.use('OpenILS.data');
+ var data = new OpenILS.data();
+ data.stash_retrieve();
+ if (data.hash.aous[fmt_aou]) util.money.currency_fmt = data.hash.aous[fmt_aou];
+ } else if (typeof fieldmapper != 'undefined') {
+ var ouSettings = fieldmapper.aou.fetchOrgSettingBatch(1, [fmt_aou]);
+ if (ouSettings[fmt_aou] && ouSettings[fmt_aou].value) util.money.currency_fmt = ouSettings[fmt_aou].value;
+ } else {
+ dump("Could not get currency format from org settings.\n");
+ }
+ if (!util.money.currency_fmt) {
+ if (document.getElementById('commonStrings'))
+ util.money.currency_fmt = document.getElementById('commonStrings').getString('common.currency_format');
+ if (!util.money.currency_fmt) {
+ dump('No currency format, using fallback.\n');
+ util.money.currency_fmt = "$%.2f";
+ }
+ }
+ }
+ return util.money.currency_fmt.sprintf(util.money.sanitize(money));
+}
dump('exiting util/money.js\n');
<script type="text/javascript" src="/xul/server/circ/util.js" />
<script type="text/javascript" src="/xul/server/cat/util.js" />
<script type="text/javascript" src="/xul/server/patron/util.js" />
+ <script type='text/javascript' src='/opac/common/js/sprintf.js'/>
<script type="text/javascript" src="/opac/common/js/utils.js" />
<script type="text/javascript" src="/opac/common/js/CGI.js" />
<script type="text/javascript" src="/opac/common/js/md5.js" />
).concat([
{
'id' : 'balance_owed', 'label' : 'Balance Owed', 'sort_type' : 'money', 'render' : function(my) {
- return util.money.sanitize( my.balance_owed );
+ return util.money.format( my.balance_owed );
}
},
{
if (value == '') {
value = null;
} else {
- JSAN.use('util.money'); value = util.money.sanitize( value );
+ JSAN.use('util.money'); value = util.money.format( value );
}
}
for (var i = 0; i < g.copies.length; i++) {
[
$('catStrings').getString('staff.cat.copy_editor.field.deposit_amount.label'),
{
- render: 'if (fm.deposit_amount() == null) { $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"); } else { util.money.sanitize( fm.deposit_amount() ); }',
+ render: 'if (fm.deposit_amount() == null) { $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"); } else { util.money.format( fm.deposit_amount() ); }',
input: 'c = function(v){ g.apply("deposit_amount",v); if (typeof post_c == "function") post_c(v); }; x = document.createElement("textbox"); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
}
],
[
$('catStrings').getString('staff.cat.copy_editor.field.price.label'),
{
- render: 'if (fm.price() == null) { $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"); } else { util.money.sanitize( fm.price() ); }',
+ render: 'if (fm.price() == null) { $("catStrings").getString("staff.cat.copy_editor.field.unset_or_null"); } else { util.money.format( fm.price() ); }',
input: 'c = function(v){ g.apply("price",v); if (typeof post_c == "function") post_c(v); }; x = document.createElement("textbox"); x.addEventListener("apply",function(f){ return function(ev) { f(ev.target.value); } }(c), false);',
}
],
copies[i].barcode(),
patron_name,
util.date.formatted_date( circ_obj.checkin_time(), '%{localized}' ),
- util.money.sanitize(robj.payload.charge) ]),
+ util.money.format(robj.payload.charge) ]),
$("catStrings").getString('staff.cat.util.mark_item_damaged.charge_patron_prompt.title'),
$("catStrings").getString('staff.cat.util.mark_item_damaged.charge_patron_prompt.ok_label'),
$("catStrings").getString('staff.cat.util.mark_item_damaged.charge_patron_prompt.change_amount_label'),
'xact_id' : circ_obj.id(),
'do_not_process_bill' : true,
/* 'override_default_billing_type' : 7, FIXME: maybe reintroduce this with an org setting for the specific btype? */
- 'override_default_price' : util.money.sanitize( robj.payload.charge )
+ 'override_default_price' : util.money.format( robj.payload.charge )
}
);
var new_msg = document.getElementById('circStrings').getFormattedString(
'staff.circ.utils.billable.amount', [
row.my.acp.barcode(),
- util.money.sanitize(bill.balance_owed())
+ util.money.format(bill.balance_owed())
]
);
no_change_label.setAttribute(
document.getElementById('fine_tally').setAttribute('amount',amount);
document.getElementById('fine_tally').setAttribute(
'value',
- document.getElementById('circStrings').getFormattedString('staff.circ.utils.fine_tally_text', [ util.money.sanitize( amount ) ])
+ document.getElementById('circStrings').getFormattedString('staff.circ.utils.fine_tally_text', [ util.money.format( amount ) ])
);
document.getElementById('fine_tally').setAttribute('hidden','false');
}
'lib' : obj.data.hash.aou[ obj.data.list.au[0].ws_ou() ],
'staff' : obj.data.list.au[0],
'data' : {
- 'balance_owed' : util.money.sanitize( obj.most_recent_balance_owed ),
+ 'balance_owed' : util.money.format( obj.most_recent_balance_owed ),
},
'printer_context' : 'receipt',
'template' : 'checkout',
var m = document.getElementById('no_change_label').getAttribute('value');
document.getElementById('no_change_label').setAttribute(
'value',
- m + document.getElementById('circStrings').getFormattedString('staff.circ.utils.billable.amount', [params.row.my.acp.barcode(), util.money.sanitize(bill.balance_owed())]) + ' '
+ m + document.getElementById('circStrings').getFormattedString('staff.circ.utils.billable.amount', [params.row.my.acp.barcode(), util.money.format(bill.balance_owed())]) + ' '
);
document.getElementById('no_change_label').setAttribute('hidden','false');
}
document.getElementById('fine_tally').setAttribute('amount',amount);
document.getElementById('fine_tally').setAttribute(
'value',
- document.getElementById('circStrings').getFormattedString('staff.circ.utils.fine_tally_text', [ util.money.sanitize( amount ) ])
+ document.getElementById('circStrings').getFormattedString('staff.circ.utils.fine_tally_text', [ util.money.format( amount ) ])
);
document.getElementById('fine_tally').setAttribute('hidden','false');
}
if (my.acp.price() == null) {
return document.getElementById('circStrings').getString('staff.circ.utils.unset');
} else {
- return util.money.sanitize(my.acp.deposit_amount());
+ return util.money.format(my.acp.deposit_amount());
}
},
'sort_type' : 'money'
if (my.acp.price() == null) {
return document.getElementById('circStrings').getString('staff.circ.utils.unset');
} else {
- return util.money.sanitize(my.acp.price());
+ return util.money.format(my.acp.price());
}
},
'sort_type' : 'money'
staff.circ.utils.patron_first_given_name=Patron First Name
staff.circ.utils.checkin.override=Override Checkin Failure?
staff.circ.utils.checkin.override.item_deposit_paid.warning=A paid deposit will be owed to this patron if this action is overrided.
-staff.circ.utils.billable.amount=Transaction for %1$s billable $%2$s
-staff.circ.utils.fine_tally_text=Fine Tally: $%1$s
+staff.circ.utils.billable.amount=Transaction for %1$s billable %2$s
+staff.circ.utils.fine_tally_text=Fine Tally: %1$s
staff.circ.utils.transit_hold_cancelled=Original hold for transit cancelled.
staff.circ.utils.item_checked_in=%1$s was already checked in.
staff.circ.utils.item_not_cataloged=ITEM_NOT_CATALOGED event but copy status is %1$s
common.no=No
common.check_to_confirm=Check here to confirm this message
common.processing=Processing
+common.currency_format=$%.2f
lang.version=remote v1
openils.global_util.clear_cache.error=Problem clearing the cache: %1$s
openils.global_util.clipboard.error=Clipboard action failed: %1$s
staff.patron.bill_details.handle_edit_payment_note.note_dialog.prompt=Enter new note:
staff.patron.bill_details.handle_edit_payment_note.failure=Note for selected payments not likely updated.
staff.patron.bill_details.handle_void.voided_billings.alert=All selected billings have already voided.
-staff.patron.bill_details.handle_void.confirm_void_billing=Are you sure you would like to void $%1$s worth of line-item billings?
+staff.patron.bill_details.handle_void.confirm_void_billing=Are you sure you would like to void %1$s worth of line-item billings?
staff.patron.bill_details.handle_void.confirm_void_billing_title=Voiding Bills
staff.patron.bill_details.handle_void.confirm_void_billing_yes=Yes
staff.patron.bill_details.handle_void.confirm_void_billing_no=No
staff.patron.bills.info_box.label_value.void_all_billings=Void All Billings
staff.patron.bills.info_box.label_value.full_details=Full Details
staff.patron.bills.void_all_billings.all_voided=All billings already voided on this bill.
-staff.patron.bills.void_all_billings.void.message=Are you sure you would like to void $%1$s worth of line-item billings?
+staff.patron.bills.void_all_billings.void.message=Are you sure you would like to void %1$s worth of line-item billings?
staff.patron.bills.void_all_billings.void.title=Voiding Bills
staff.patron.bills.void_all_billings.void.yes=Yes
staff.patron.bills.void_all_billings.void.no=No
staff.patron.search_result.init.search_saving_columns=patron search saving columns
staff.patron.search_result.mailing_address_column_label_prefix=Mailing Addr:
staff.patron.search_result.billing_address_column_label_prefix=Billing Addr:
-staff.patron.summary.patron_bill.money=$ %1$s
staff.patron.summary.retrieve.no_barcode=summary: No barcode or ID
staff.patron.summary.patron_net_access=Internet
staff.patron.summary.create_date=Account created on
exec.on_error = function(E) { alert(E); return true; }
exec.timer(g.funcs,100);
+ $('currently_voided').setAttribute('value', util.money.format( 0 ));
+ $('change_due').setAttribute('value', util.money.format( 0 ));
+ $('pending_payment').setAttribute('value', util.money.format( 0 ));
+ $('pending_change').setAttribute('value', util.money.format( 0 ));
+
$('credit_forward').setAttribute('value','???');
if (!g.patron) {
refresh_patron();
} else {
- $('credit_forward').setAttribute('value',util.money.sanitize( g.patron.credit_forward_balance() ));
+ $('credit_forward').setAttribute('value',util.money.format( g.patron.credit_forward_balance() ));
}
if (g.data.hash.aous['ui.circ.billing.uncheck_bills_and_unfocus_payment_box']) {
}
}
var change_pending = payment_tendered - payment_pending;
- $('pending_payment').value = util.money.cents_as_dollars( payment_pending );
- $('pending_change').value = util.money.cents_as_dollars( change_pending );
- $('change_due').value = util.money.cents_as_dollars( change_pending );
+ $('pending_payment').value = util.money.format( payment_pending );
+ $('pending_change').value = util.money.format( change_pending );
+ $('change_due').value = util.money.format( change_pending );
return { 'payments' : payments, 'change' : util.money.cents_as_dollars( change_pending ) };
} catch(E) {
alert('Error in bill2.js, tally_pending(): ' + E);
var bv = util.money.dollars_float_to_cents_integer( billing.amount() );
voided_total += bv;
}
- $('currently_voided').setAttribute('value', util.money.cents_as_dollars( voided_total ) );
+ $('currently_voided').setAttribute('value', util.money.format( voided_total ) );
} catch(E) {
alert('Error in bill2.js, tally_voided(): ' + E);
}
checked_balance += bo;
}
}
- $('checked_billed').value = util.money.cents_as_dollars( checked_billed );
- $('checked_paid').value = util.money.cents_as_dollars( checked_paid );
- $('checked_owed').value = util.money.cents_as_dollars( checked_balance );
- $('checked_owed2').setAttribute('value', util.money.cents_as_dollars( checked_balance ) );
- $('total_billed').value = util.money.cents_as_dollars( total_billed );
- $('tb_total_paid').value = util.money.cents_as_dollars( total_paid );
- $('tb_total_owed').value = util.money.cents_as_dollars( total_balance );
- $('total_owed2').setAttribute('value', util.money.cents_as_dollars( total_balance ) );
- $('refunds_owed').setAttribute('value', util.money.cents_as_dollars( Math.abs( refunds_owed ) ) );
+ $('checked_billed').value = util.money.format( checked_billed / 100 );
+ $('checked_paid').value = util.money.format( checked_paid / 100 );
+ $('checked_owed').value = util.money.format( checked_balance / 100 );
+ $('checked_owed2').setAttribute('value', util.money.format( checked_balance / 100 ) );
+ $('total_billed').value = util.money.format( total_billed / 100 );
+ $('tb_total_paid').value = util.money.format( total_paid / 100 );
+ $('tb_total_owed').value = util.money.format( total_balance / 100 );
+ $('total_owed2').setAttribute('value', util.money.format( total_balance / 100 ) );
+ $('refunds_owed').setAttribute('value', util.money.format( Math.abs( refunds_owed ) ) );
// tally_selected();
} catch(E) {
alert('Error in bill2.js, tally_all(): ' + E);
function init_lists() {
JSAN.use('util.list'); JSAN.use('circ.util');
+ JSAN.use('util.money');
g.bill_list_selection = [];
{
'id' : 'payment_pending', 'editable' : false, 'sort_type' : 'money',
'label' : $('patronStrings').getString('staff.patron.bill_interface.payment_pending.column_header'),
- 'render' : function(my) { return my.payment_pending || '0.00'; },
+ 'render' : function(my) { return util.money.format(my.payment_pending || '0.00'); },
}
]
))),
for (var i = 0; i < mb_list.length; i++) sum += util.money.dollars_float_to_cents_integer( mb_list[i].amount() );
sum = util.money.cents_as_dollars( sum );
- var msg = $("patronStrings").getFormattedString('staff.patron.bills.void_all_billings.void.message', [sum]);
+ var msg = $("patronStrings").getFormattedString('staff.patron.bills.void_all_billings.void.message', [util.money.format(sum)]);
var r = g.error.yns_alert(msg,
$("patronStrings").getString('staff.patron.bills.void_all_billings.void.title'),
$("patronStrings").getString('staff.patron.bills.void_all_billings.void.yes'),
var au_obj = req.getResultObject();
if (typeof au_obj.ilsevent == 'undefined') {
g.patron = au_obj;
- $('credit_forward').setAttribute('value',util.money.sanitize( g.patron.credit_forward_balance() ));
+ $('credit_forward').setAttribute('value',util.money.format( g.patron.credit_forward_balance() ));
}
});
}
$('mbts_xact_type').value = g.mbts.xact_type();
$('mbts_xact_start').value = util.date.formatted_date( g.mbts.xact_start(), '%{localized}' );
$('mbts_xact_finish').value = g.mbts.xact_finish() ? util.date.formatted_date( g.mbts.xact_finish(), '%{localized}' ) : '';
- $('mbts_total_owed').value = g.mbts.total_owed() ? util.money.sanitize( g.mbts.total_owed() ) : '';
- $('mbts_total_paid').value = g.mbts.total_paid() ? util.money.sanitize( g.mbts.total_paid() ) : '';
- $('mbts_balance_owed').value = g.mbts.balance_owed() ? util.money.sanitize( g.mbts.balance_owed() ) : '';
+ $('mbts_total_owed').value = g.mbts.total_owed() ? util.money.format( g.mbts.total_owed() ) : '';
+ $('mbts_total_paid').value = g.mbts.total_paid() ? util.money.format( g.mbts.total_paid() ) : '';
+ $('mbts_balance_owed').value = g.mbts.balance_owed() ? util.money.format( g.mbts.balance_owed() ) : '';
switch(g.mbts.xact_type()) {
case 'circulation' : retrieve_circ(); break;
for (var i = 0; i < mb_list.length; i++) sum += util.money.dollars_float_to_cents_integer( mb_list[i].amount() );
sum = util.money.cents_as_dollars( sum );
- var msg = $("patronStrings").getFormattedString('staff.patron.bill_details.handle_void.confirm_void_billing', sum);
+ var msg = $("patronStrings").getFormattedString('staff.patron.bill_details.handle_void.confirm_void_billing', util.money.format(sum));
var r = g.error.yns_alert(msg,
$("patronStrings").getString('staff.patron.bill_details.handle_void.confirm_void_billing_title'),
$("patronStrings").getString('staff.patron.bill_details.handle_void.confirm_void_billing_yes'),
selected_billed += to;
selected_paid += tp;
}
- $('billed_tally').setAttribute('value', util.money.cents_as_dollars( selected_billed ) );
- $('paid_tally').setAttribute('value', util.money.cents_as_dollars( selected_paid ) );
+ $('billed_tally').setAttribute('value', util.money.format( selected_billed / 100 ) );
+ $('paid_tally').setAttribute('value', util.money.format( selected_paid / 100 ) );
} catch(E) {
alert('Error in bill_history.js, tally_selected(): ' + E);
}
var amount = util.money.dollars_float_to_cents_integer( payment.amount() );
selected_paid += amount;
}
- $('payments_paid_tally').setAttribute('value', util.money.cents_as_dollars( selected_paid ) );
+ $('payments_paid_tally').setAttribute('value', util.money.format( selected_paid / 100 ) );
} catch(E) {
alert('Error in bill_history.js, payments_tally_selected(): ' + E);
}
$('mbts_xact_type').value = g.mbts.xact_type();
$('mbts_xact_start').value = util.date.formatted_date( g.mbts.xact_start(), '%{localized}' );
$('mbts_xact_finish').value = g.mbts.xact_finish() ? util.date.formatted_date( g.mbts.xact_finish(), '%{localized}' ) : '';
- $('mbts_total_owed').value = g.mbts.total_owed() ? util.money.sanitize( g.mbts.total_owed() ) : '';
- $('mbts_total_paid').value = g.mbts.total_paid() ? util.money.sanitize( g.mbts.total_paid() ) : '';
- $('mbts_balance_owed').value = g.mbts.balance_owed() ? util.money.sanitize( g.mbts.balance_owed() ) : '';
+ $('mbts_total_owed').value = g.mbts.total_owed() ? util.money.format( g.mbts.total_owed() ) : '';
+ $('mbts_total_paid').value = g.mbts.total_paid() ? util.money.format( g.mbts.total_paid() ) : '';
+ $('mbts_balance_owed').value = g.mbts.balance_owed() ? util.money.format( g.mbts.balance_owed() ) : '';
$('xact_type').value = g.mbts.xact_type(); $('xact_type').disabled = true;
} catch(E) {
g.error.sdump('D_ERROR',E);
xulG.proceed = true;
xulG.cbt_id = $('billing_type').value;
- xulG.amount = $('bill_amount').value;
+ xulG.amount = util.money.sanitize( $('bill_amount').value );
xulG.note = $('bill_note').value;
} else {
$('total_owed').setAttribute(
'value',
- $('patronStrings').getFormattedString( 'staff.patron.info_group.total_owed.label', [ util.money.cents_as_dollars(sum) ] )
+ $('patronStrings').getFormattedString( 'staff.patron.info_group.total_owed.label', [ util.money.format(sum / 100) ] )
);
} catch(E) {
return function() {
JSAN.use('util.money');
util.widgets.set_text(e,
- '$' +
- util.money.sanitize(
+ util.money.format(
obj.patron.credit_forward_balance()
)
);
try {
util.widgets.set_text(
e,
- patronStrings.getFormattedString('staff.patron.summary.patron_bill.money', [util.money.sanitize( bs.balance_owed )])
+ util.money.format( bs.balance_owed )
);
if (under_btn) {
util.widgets.set_text(
under_btn,
- patronStrings.getFormattedString('staff.patron.summary.patron_bill.money', [util.money.sanitize( bs.balance_owed )])
+ util.money.format( bs.balance_owed )
);
}
var show_billing_tab_on_bills = String( obj.OpenILS.data.hash.aous['ui.circ.show_billing_tab_on_bills'] ) == 'true';
}
tab.setAttribute(
'label',
- patronStrings.getFormattedString('staff.patron.summary.tab.group_list_with_total_owed.label',[ util.money.cents_as_dollars( sum ) ])
+ patronStrings.getFormattedString('staff.patron.summary.tab.group_list_with_total_owed.label',[ util.money.format( sum / 100 ) ])
);
}
} catch(E) {
},
{
'persist' : 'hidden width ordinal', 'id' : 'balance_owed', 'label' : commonStrings.getString('staff.mbts_balance_owed_label'), 'flex' : 1,
- 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.sanitize( my.mbts.balance_owed() ); },
+ 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.format( my.mbts.balance_owed() ); },
'sort_type' : 'money'
},
{
'persist' : 'hidden width ordinal', 'id' : 'total_owed', 'label' : commonStrings.getString('staff.mbts_total_owed_label'), 'flex' : 1,
- 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.sanitize( my.mbts.total_owed() ); },
+ 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.format( my.mbts.total_owed() ); },
'sort_type' : 'money'
},
{
'persist' : 'hidden width ordinal', 'id' : 'total_paid', 'label' : commonStrings.getString('staff.mbts_total_paid_label'), 'flex' : 1,
- 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.sanitize( my.mbts.total_paid() ); },
+ 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.format( my.mbts.total_paid() ); },
'sort_type' : 'money'
},
{
},
{
'persist' : 'hidden width ordinal', 'id' : 'amount', 'label' : commonStrings.getString('staff.mb_amount_label'), 'flex' : 1,
- 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.sanitize( my.mb.amount() ); },
+ 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.format( my.mb.amount() ); },
'sort_type' : 'money'
},
{
},
{
'persist' : 'hidden width ordinal', 'id' : 'mp_amount', 'label' : commonStrings.getString('staff.mp_amount_label'), 'flex' : 1,
- 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.sanitize( my.mp.amount() ); },
+ 'primary' : false, 'hidden' : false, 'editable' : false, 'render' : function(my) { return util.money.format( my.mp.amount() ); },
'sort_type' : 'money'
},
{
/******************************************************************************************************/
/* Apply a value to a specific field on all the copies being edited */
- /* Don't forget to use util.money.sanitize if dealing with money values */
+ /* Don't forget to use util.money.{format,sanitize} if dealing with money values */
'editor_base_apply' : function(field, value, loop_func) {
var obj = this;