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++;
114 e.setAttribute('value',
115 obj.patron.hold_requests.length
120 'patron_holds_available' : [
123 return function() { };
129 return function() { };
132 'patron_ident_type_1' : [
135 return function() { };
138 'patron_ident_value_1' : [
141 return function() { };
144 'patron_ident_type_2' : [
147 return function() { };
150 'patron_date_of_birth' : [
153 return function() { };
156 'patron_day_phone' : [
159 return function() { };
162 'patron_evening_phone' : [
165 return function() { };
168 'patron_other_phone' : [
171 return function() { };
177 return function() { };
180 'patron_photo_url' : [
183 return function() { };
189 return function() { };
192 'patron_mailing_address_street1' : [
195 return function() { };
198 'patron_mailing_address_street2' : [
201 return function() { };
204 'patron_mailing_address_city' : [
207 return function() { };
210 'patron_mailing_address_state' : [
213 return function() { };
216 'patron_mailing_address_post_code' : [
219 return function() { };
222 'patron_physical_address_street1' : [
225 return function() { };
228 'patron_physical_address_street2' : [
231 return function() { };
234 'patron_physical_address_city' : [
237 return function() { };
240 'patron_physical_address_state' : [
243 return function() { };
246 'patron_physical_address_post_code' : [
249 return function() { };
254 for (var i in control_map) {
255 var cmd = this.w.document.getElementById(i);
257 for (var j in control_map[i][0]) {
258 if (control_map[i][1]) {
259 var ev_type = control_map[i][0][j];
262 obj.render_list.push( control_map[i][1](cmd) );
264 default: cmd.addEventListener(ev_type,control_map[i][1],false);
276 'retrieve' : function() {
285 // Retrieve the patron
289 var patron = obj.network.request(
291 'open-ils.actor.user.fleshed.retrieve_by_barcode',
292 [ obj.session, obj.barcode ]
296 if (instanceOf(patron,au)) {
302 throw('patron is not an au fm object');
306 throw('patron == false');
310 var error = ('patron.display.retrieve : ' + js2JSON(E));
311 obj.error.sdump('D_ERROR',error);
313 //FIXME// abort the chain
318 // Retrieve the bills
322 var bills = obj.network.request(
324 'open-ils.actor.user.transactions.have_balance',
325 [ obj.session, obj.patron.id() ]
327 //FIXME// obj.patron.bills( bills );
328 obj.patron.bills = bills;
330 var error = ('patron.display.retrieve : ' + js2JSON(E));
331 obj.error.sdump('D_ERROR',error);
333 //FIXME// abort the chain
338 // Retrieve the checkouts
342 var checkouts = obj.network.request(
344 'open-ils.circ.actor.user.checked_out',
345 [ obj.session, obj.patron.id() ]
347 obj.patron.checkouts( checkouts );
349 var error = ('patron.display.retrieve : ' + js2JSON(E));
350 obj.error.sdump('D_ERROR',error);
352 //FIXME// abort the chain
357 // Retrieve the holds
361 var holds = obj.network.request(
363 'open-ils.circ.holds.retrieve',
364 [ obj.session, obj.patron.id() ]
366 obj.patron.hold_requests( holds );
368 var error = ('patron.display.retrieve : ' + js2JSON(E));
369 obj.error.sdump('D_ERROR',error);
371 //FIXME// abort the chain
377 chain.push( function() { obj.render(); } );
380 JSAN.use('util.exec');
381 util.exec.chain( chain );
384 var error = ('patron.display.retrieve : ' + js2JSON(E));
385 this.error.sdump('D_ERROR',error);
390 'render' : function() {
392 for (var i in this.render_list) {
394 this.render_list[i]();
396 var error = 'Problem in patron.display.render with\n' + this.render_list[i] + '\n\n' + js2JSON(E);
397 this.error.sdump('D_ERROR',error);
405 dump('exiting patron/display.js\n');