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',
141 return function() { };
144 'patron_ident_type_1' : [
147 return function() { };
150 'patron_ident_value_1' : [
153 return function() { };
156 'patron_ident_type_2' : [
159 return function() { };
162 'patron_date_of_birth' : [
165 return function() { };
168 'patron_day_phone' : [
171 return function() { };
174 'patron_evening_phone' : [
177 return function() { };
180 'patron_other_phone' : [
183 return function() { };
189 return function() { };
192 'patron_photo_url' : [
195 return function() { };
201 return function() { };
204 'patron_mailing_address_street1' : [
207 return function() { };
210 'patron_mailing_address_street2' : [
213 return function() { };
216 'patron_mailing_address_city' : [
219 return function() { };
222 'patron_mailing_address_state' : [
225 return function() { };
228 'patron_mailing_address_post_code' : [
231 return function() { };
234 'patron_physical_address_street1' : [
237 return function() { };
240 'patron_physical_address_street2' : [
243 return function() { };
246 'patron_physical_address_city' : [
249 return function() { };
252 'patron_physical_address_state' : [
255 return function() { };
258 'patron_physical_address_post_code' : [
261 return function() { };
266 for (var i in control_map) {
267 var cmd = this.w.document.getElementById(i);
269 for (var j in control_map[i][0]) {
270 if (control_map[i][1]) {
271 var ev_type = control_map[i][0][j];
274 obj.render_list.push( control_map[i][1](cmd) );
276 default: cmd.addEventListener(ev_type,control_map[i][1],false);
288 'retrieve' : function() {
297 // Retrieve the patron
301 var patron = obj.network.request(
303 'open-ils.actor.user.fleshed.retrieve_by_barcode',
304 [ obj.session, obj.barcode ]
308 if (instanceOf(patron,au)) {
314 throw('patron is not an au fm object');
318 throw('patron == false');
322 var error = ('patron.display.retrieve : ' + js2JSON(E));
323 obj.error.sdump('D_ERROR',error);
325 //FIXME// abort the chain
330 // Retrieve the bills
334 var bills = obj.network.request(
336 'open-ils.actor.user.transactions.have_balance',
337 [ obj.session, obj.patron.id() ]
339 //FIXME// obj.patron.bills( bills );
340 obj.patron.bills = bills;
342 var error = ('patron.display.retrieve : ' + js2JSON(E));
343 obj.error.sdump('D_ERROR',error);
345 //FIXME// abort the chain
350 // Retrieve the checkouts
354 var checkouts = obj.network.request(
356 'open-ils.circ.actor.user.checked_out',
357 [ obj.session, obj.patron.id() ]
359 obj.patron.checkouts( checkouts );
361 var error = ('patron.display.retrieve : ' + js2JSON(E));
362 obj.error.sdump('D_ERROR',error);
364 //FIXME// abort the chain
369 // Retrieve the holds
373 var holds = obj.network.request(
375 'open-ils.circ.holds.retrieve',
376 [ obj.session, obj.patron.id() ]
378 obj.patron.hold_requests( holds );
380 var error = ('patron.display.retrieve : ' + js2JSON(E));
381 obj.error.sdump('D_ERROR',error);
383 //FIXME// abort the chain
389 chain.push( function() { obj.render(); } );
392 JSAN.use('util.exec');
393 util.exec.chain( chain );
396 var error = ('patron.display.retrieve : ' + js2JSON(E));
397 this.error.sdump('D_ERROR',error);
402 'render' : function() {
404 for (var i in this.render_list) {
406 this.render_list[i]();
408 var error = 'Problem in patron.display.render with\n' + this.render_list[i] + '\n\n' + js2JSON(E);
409 this.error.sdump('D_ERROR',error);
417 dump('exiting patron/display.js\n');