/* short-circuit this behavior. We don't want to mark an item damaged and still have it circulating. At least for now. Wait until someone asks for it. */
auto_checkin = true;
JSAN.use('patron.util');
+
+ if (!my_circ.usr()) {
+ // Since we are looking at copies that are still checked out,
+ // we should never get here. Best to be safe, though.
+ alert(
+ document.getElementById('catStrings')
+ .getFormattedString(
+ 'staff.cat.util.mark_item_damaged.item_no_linked_patron',
+ copies[i].barcode()
+ )
+ );
+ continue;
+ }
+
var patron_obj = patron.util.retrieve_fleshed_au_via_id( ses(), my_circ.usr() );
var patron_name = patron.util.format_name( patron_obj ) + ' : ' + patron_obj.card().barcode();
var msg = $("catStrings").getFormattedString('staff.cat.util.mark_item_damaged.item_circulating_to_patron', [
set("stop_fines", details.circ.stop_fines());
set("stop_fines_time", util.date.formatted_date( details.circ.stop_fines_time(), '%{localized}' ));
set("target_copy", details.circ.target_copy());
- set("circ_usr", details.circ.usr());
- network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ ses(), details.circ.usr() ], function(preq) {
- var r_au = preq.getResultObject();
- JSAN.use('patron.util');
- set(
- 'patron_name',
- patron.util.format_name( r_au ) + ' : ' + r_au.card().barcode(),
- details.circ.usr()
- );
+
+ if (details.circ.usr()) {
+ set("circ_usr", details.circ.usr());
+ network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',
+ [ ses(), details.circ.usr() ], function(preq) {
+ var r_au = preq.getResultObject();
+ JSAN.use('patron.util');
+ set(
+ 'patron_name',
+ patron.util.format_name( r_au ) + ' : ' + r_au.card().barcode(),
+ details.circ.usr()
+ );
+ set_tooltip('patron_name','circ id ' + details.circ.id());
+ });
+ } else {
+ set("circ_usr", "");
+ set('patron_name', document.getElementById(
+ 'circStrings').getString('staff.circ.aged_circ'));
set_tooltip('patron_name','circ id ' + details.circ.id());
- });
+ }
set("xact_finish", util.date.formatted_date( details.circ.xact_finish(), '%{localized}' ));
set("xact_start", util.date.formatted_date( details.circ.xact_start(), '%{localized}' ));
set("create_time", util.date.formatted_date( details.circ.create_time(), '%{localized}' ));
var robj = req.getResultObject();
if (!robj || typeof robj == 'null') { return; }
var summary = robj['summary'];
- network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ ses(), robj['usr'] ], function(preq) {
- var r_au = preq.getResultObject();
- JSAN.use('patron.util');
- set(
- 'prev_patron_name',
- patron.util.format_name( r_au ) + ' : ' + r_au.card().barcode(),
- robj['usr']
- );
+ if (robj['usr']) {
+ network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ ses(), robj['usr'] ], function(preq) {
+ var r_au = preq.getResultObject();
+ JSAN.use('patron.util');
+ set(
+ 'prev_patron_name',
+ patron.util.format_name( r_au ) + ' : ' + r_au.card().barcode(),
+ robj['usr']
+ );
+ set_tooltip('prev_patron_name','circ chain prior to circ id ' + details.circ.id());
+ });
+ } else {
+ set('prev_patron_name', document.getElementById(
+ 'circStrings').getString('staff.circ.aged_circ'));
set_tooltip('prev_patron_name','circ chain prior to circ id ' + details.circ.id());
- });
+ }
set("prev_num_circs", summary.num_circs());
set("prev_num_renewals", Number(summary.num_circs()) - 1);
set("prev_xact_start", util.date.formatted_date( summary.start_time(), '%{localized}' ));
for (var i = 0; i < obj.selection_list.length; i++) {
var circs = obj.network.simple_request('FM_CIRC_RETRIEVE_VIA_COPY',[ses(),obj.selection_list[i].copy_id,1]);
if (circs.length > 0) {
- patrons[circs[0].usr()] = 1;
+ if (circs[0].usr()) {
+ patrons[circs[0].usr()] = 1;
+ } else {
+ alert(
+ document.getElementById('circStrings')
+ .getFormattedString(
+ 'staff.circ.item_no_user',
+ [obj.selection_list[i].barcode])
+ );
+ }
} else {
alert(document.getElementById('circStrings').getFormattedString('staff.circ.item_no_circs', [obj.selection_list[i].barcode]));
}
if (get_bool(r_circ.opac_renewal() ) ) r += 'OPAC ';
if (get_bool(r_circ.phone_renewal() ) ) r += 'PHONE ';
$('renewal').value = r || document.getElementById('circStrings').getString('staff.circ.checkout.no.btn');
- g.patron_id = r_circ.usr(); $('add_billing').disabled = false;
- g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ ses(), r_circ.usr() ], function(preq) {
- var r_au = preq.getResultObject();
- JSAN.use('patron.util');
- $('patron_name').value = patron.util.format_name( r_au ) + ' : ' + r_au.card().barcode();
- patron.util.set_penalty_css(r_au);
- });
+ g.patron_id = r_circ.usr();
+ if (g.patron_id) {
+ $('add_billing').disabled = false;
+ g.network.simple_request(
+ 'FM_AU_FLESHED_RETRIEVE_VIA_ID',[ ses(), r_circ.usr() ], function(preq) {
+ var r_au = preq.getResultObject();
+ JSAN.use('patron.util');
+ $('patron_name').value = patron.util.format_name( r_au ) + ' : ' + r_au.card().barcode();
+ patron.util.set_penalty_css(r_au);
+ });
+ } else {
+ $('patron_name').value =
+ document.getElementById('circStrings')
+ .getString('staff.circ.aged_circ');
+ }
} catch(E) {
g.error.standard_unexpected_error_alert(document.getElementById('circStrings').getString('staff.circ.circ_brief.failure'), E);
}
if (g.circ_id) {
- g.network.simple_request( 'FM_CIRC_RETRIEVE_VIA_ID', [ ses(), g.circ_id ], circ_callback);
+ g.network.simple_request( 'FM_CIRC_RETRIEVE_VIA_ID', [ ses(), g.circ_id, true ], circ_callback);
} else {
g.circ = g.data.temp_circ; g.data.temp_circ = null; g.data.stash('temp_circ');
g.circ_id = g.data.temp_circ_id; g.data.temp_circ_id = null; g.data.stash('temp_circ_id');
if (g.circ) {
circ_callback( { 'getResultObject' : function() { return g.circ; } } );
} else {
- g.network.simple_request( 'FM_CIRC_RETRIEVE_VIA_ID', [ ses(), g.circ_id ], circ_callback);
+ g.network.simple_request( 'FM_CIRC_RETRIEVE_VIA_ID', [ ses(), g.circ_id, true ], circ_callback);
}
}
for (var i = 0; i < obj.selection_list.length; i++) {
var circs = obj.network.simple_request('FM_CIRC_RETRIEVE_VIA_COPY',[ses(),obj.selection_list[i].copy_id,1]);
if (circs.length > 0) {
- patrons[circs[0].usr()] = 1;
+ if (circs[0].usr()) {
+ patrons[circs[0].usr()] = 1;
+ } else {
+ alert(
+ document.getElementById('circStrings')
+ .getFormattedString(
+ 'staff.circ.item_no_user',
+ [obj.selection_list[i].barcode])
+ );
+ }
} else {
alert(document.getElementById('circStrings').getFormattedString('staff.circ.item_no_circs', [obj.selection_list[i].barcode]));
}
if (typeof my_xulG.retrieve_these_patrons == 'undefined') continue;
var patrons = my_xulG.retrieve_these_patrons;
for (var j = 0; j < patrons.length; j++) {
+
+ // combcirc objects may have a null value for user
+ if (!patrons[j]) continue;
+
if (typeof window.xulG == 'object' && typeof window.xulG.new_tab == 'function') {
try {
window.xulG.new_patron_tab( {}, { 'id' : patrons[j] } );
staff.circ.alert=Alert
staff.circ.item_no_circs=Item %1$s has never circulated.
+staff.circ.item_no_user=Item %1$s circulation is an aged circulation and has no linked user.
+staff.circ.aged_circ=<Aged Circulation>
staff.circ.invalid_date=Invalid Date
staff.circ.future_date=Future Date
staff.circ.process_item=Check In / Process Item