1 dump('entering patron/display.js\n');
3 if (typeof patron == 'undefined') patron = {};
4 patron.display = function (params) {
6 JSAN.use('util.error'); this.error = new util.error();
7 JSAN.use('main.window'); this.window = new main.window();
8 JSAN.use('main.network'); this.network = new main.network();
12 patron.display.prototype = {
14 'init' : function( params ) {
16 this.session = params['session'];
17 this.barcode = params['barcode'];
19 JSAN.use('OpenILS.data'); this.OpenILS = {};
20 this.OpenILS.data = new OpenILS.data( { 'session' : params.session } ); this.OpenILS.data.init(true);
23 obj.view = {}; obj.render_list = [];
28 function() { alert('Not Yet Implemented'); }
34 e.setAttribute('value',obj.patron.family_name() + ', '
35 + obj.patron.first_given_name());
43 e.setAttribute('value',
44 obj.OpenILS.data.hash.pgt[
55 JSAN.use('util.money');
56 e.setAttribute('value',
57 util.money.cents_as_dollars(
58 obj.patron.credit_forward_balance()
68 JSAN.use('util.money');
70 //FIXME//adjust when .bills becomes a virtual field
71 for (var i = 0; i < obj.patron.bills.length; i++) {
72 total += util.money.dollars_float_to_cents_integer(
73 obj.patron.bills[i].balance_owed()
76 e.setAttribute('value',
77 util.money.cents_as_dollars( total )
82 'patron_checkouts' : [
86 e.setAttribute('value',
87 obj.patron.checkouts.length
96 //FIXME//Get Bill to do this correctly on server side
97 JSAN.use('util.date');
99 for (var i = 0; i < obj.patron.checkouts().length; i++) {
100 var item = obj.patron.checkouts()[i];
101 var due_date = item.circ.due_date();
102 due_date = due_date.substr(0,4)
103 + due_date.substr(5,2) + due_date.substr(8,2);
104 var today = util.date.formatted_date( new Date() , '%Y%m%d' );
105 if (today > due_date) total++;
107 e.setAttribute('value',
117 e.setAttribute('value',
118 obj.patron.hold_requests.length
123 'patron_holds_available' : [
128 for (var i = 0; i < obj.patron.hold_requests().length; i++) {
129 var hold = obj.patron.hold_requests()[i];
130 if (hold.capture_time()) total++;
132 e.setAttribute('value',
142 e.setAttribute('value',
143 obj.patron.card().barcode()
148 'patron_ident_type_1' : [
151 return function() { };
154 'patron_ident_value_1' : [
157 return function() { };
160 'patron_ident_type_2' : [
163 return function() { };
166 'patron_date_of_birth' : [
169 return function() { };
172 'patron_day_phone' : [
175 return function() { };
178 'patron_evening_phone' : [
181 return function() { };
184 'patron_other_phone' : [
187 return function() { };
193 return function() { };
196 'patron_photo_url' : [
199 return function() { };
205 return function() { };
208 'patron_mailing_address_street1' : [
211 return function() { };
214 'patron_mailing_address_street2' : [
217 return function() { };
220 'patron_mailing_address_city' : [
223 return function() { };
226 'patron_mailing_address_state' : [
229 return function() { };
232 'patron_mailing_address_post_code' : [
235 return function() { };
238 'patron_physical_address_street1' : [
241 return function() { };
244 'patron_physical_address_street2' : [
247 return function() { };
250 'patron_physical_address_city' : [
253 return function() { };
256 'patron_physical_address_state' : [
259 return function() { };
262 'patron_physical_address_post_code' : [
265 return function() { };
270 for (var i in control_map) {
271 var cmd = this.w.document.getElementById(i);
273 for (var j in control_map[i][0]) {
274 if (control_map[i][1]) {
275 var ev_type = control_map[i][0][j];
278 obj.render_list.push( control_map[i][1](cmd) );
280 default: cmd.addEventListener(ev_type,control_map[i][1],false);
292 'retrieve' : function() {
301 // Retrieve the patron
305 var patron = obj.network.request(
307 'open-ils.actor.user.fleshed.retrieve_by_barcode',
308 [ obj.session, obj.barcode ]
312 if (instanceOf(patron,au)) {
318 throw('patron is not an au fm object');
322 throw('patron == false');
326 var error = ('patron.display.retrieve : ' + js2JSON(E));
327 obj.error.sdump('D_ERROR',error);
329 //FIXME// abort the chain
334 // Retrieve the bills
338 var bills = obj.network.request(
340 'open-ils.actor.user.transactions.have_balance',
341 [ obj.session, obj.patron.id() ]
343 //FIXME// obj.patron.bills( bills );
344 obj.patron.bills = bills;
346 var error = ('patron.display.retrieve : ' + js2JSON(E));
347 obj.error.sdump('D_ERROR',error);
349 //FIXME// abort the chain
354 // Retrieve the checkouts
358 var checkouts = obj.network.request(
360 'open-ils.circ.actor.user.checked_out',
361 [ obj.session, obj.patron.id() ]
363 obj.patron.checkouts( checkouts );
365 var error = ('patron.display.retrieve : ' + js2JSON(E));
366 obj.error.sdump('D_ERROR',error);
368 //FIXME// abort the chain
373 // Retrieve the holds
377 var holds = obj.network.request(
379 'open-ils.circ.holds.retrieve',
380 [ obj.session, obj.patron.id() ]
382 obj.patron.hold_requests( holds );
384 var error = ('patron.display.retrieve : ' + js2JSON(E));
385 obj.error.sdump('D_ERROR',error);
387 //FIXME// abort the chain
393 chain.push( function() { obj.render(); } );
396 JSAN.use('util.exec');
397 util.exec.chain( chain );
400 var error = ('patron.display.retrieve : ' + js2JSON(E));
401 this.error.sdump('D_ERROR',error);
406 'render' : function() {
408 for (var i in this.render_list) {
410 this.render_list[i]();
412 var error = 'Problem in patron.display.render with\n' + this.render_list[i] + '\n\n' + js2JSON(E);
413 this.error.sdump('D_ERROR',error);
421 dump('exiting patron/display.js\n');