1 sdump('D_TRACE','Loading patron_bills.js\n');
3 function patron_bills_init(p) {
4 sdump('D_PATRON_BILLS',"TESTING: patron_bills.js: " + mw.G['main_test_variable'] + '\n');
5 sdump('D_CONSTRUCTOR',arg_dump(arguments));
7 p.patron_bills_cols = [
9 'id' : 'checkbox', 'label' : '', 'flex' : 0, 'primary' : false, 'hidden' : false,
10 'render_xul' : 'checkbox'
13 'id' : 'xact_dates', 'label' : getString('bills_xact_dates_label'), 'flex' : 0,
14 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
15 'fm_field_render' : 'xact_dates_box($$)'
18 'id' : 'notes', 'label' : getString('mbts_xact_type_label'), 'flex' : 1,
19 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
20 'fm_field_render' : '.xact_type()'
23 'id' : 'money', 'label' : getString('bills_money_label'), 'flex' : 0,
24 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
25 'fm_field_render' : 'money_box($$)'
28 'id' : 'current_pay', 'label' : getString('bills_current_payment_label'), 'flex' : 0,
29 'render_xul' : 'textbox'
33 p.list_box = list_box_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_bills_cols, 'debug' : p.app } );
35 p.clear_patron_bills = p.list_box.clear_rows;
37 p.add_patron_bills = function (bills) {
38 sdump('D_PATRON_BILLS','p.add_patron_bills(' + bills + ')\n');
39 return patron_bills_add_patron_bills(p,bills);
42 sdump('D_TRACE_EXIT',arg_dump(arguments));
46 function patron_bills_add_patron_bills(p, bills) {
47 sdump('D_PATRON_BILLS',arg_dump(arguments,{1:true}));
49 function xact_dates_box( mbts ) {
50 var grid = p.w.document.createElement('grid');
51 var cols = p.w.document.createElement('columns');
52 grid.appendChild( cols );
53 cols.appendChild( p.w.document.createElement('column') );
54 cols.appendChild( p.w.document.createElement('column') );
55 var rows = p.w.document.createElement('rows');
56 grid.appendChild( rows );
57 var row0 = p.w.document.createElement('row');
58 rows.appendChild( row0 );
59 var label_r0_1 = p.w.document.createElement('label');
60 row0.appendChild( label_r0_1 );
61 label_r0_1.setAttribute('value',getString('mbts_id_label'));
62 var label_r0_2 = p.w.document.createElement('label');
63 row0.appendChild( label_r0_2 );
64 label_r0_2.setAttribute('value',mbts.id());
65 var row1 = p.w.document.createElement('row');
66 rows.appendChild( row1 );
67 var label_r1_1 = p.w.document.createElement('label');
68 row1.appendChild( label_r1_1 );
69 label_r1_1.setAttribute('value',getString('mbts_xact_start_label'));
70 var label_r1_2 = p.w.document.createElement('label');
71 row1.appendChild( label_r1_2 );
72 label_r1_2.setAttribute('value',mbts.xact_start().toString().substr(0,10));
73 var row2 = p.w.document.createElement('row');
74 rows.appendChild( row2 );
75 var label_r2_1 = p.w.document.createElement('label');
76 row2.appendChild( label_r2_1 );
77 label_r2_1.setAttribute('value',getString('mbts_xact_finish_label'));
78 var label_r2_2 = p.w.document.createElement('label');
79 row2.appendChild( label_r2_2 );
80 try { label_r2_2.setAttribute('value',mbts.xact_finish().toString().substr(0,10));
86 function money_box( mbts ) {
87 var grid = p.w.document.createElement('grid');
88 var cols = p.w.document.createElement('columns');
89 grid.appendChild( cols );
90 cols.appendChild( p.w.document.createElement('column') );
91 cols.appendChild( p.w.document.createElement('column') );
92 var rows = p.w.document.createElement('rows');
93 grid.appendChild( rows );
94 var row1 = p.w.document.createElement('row');
95 rows.appendChild( row1 );
96 var label_r1_1 = p.w.document.createElement('label');
97 row1.appendChild( label_r1_1 );
98 label_r1_1.setAttribute('value',getString('mbts_total_owed_label'));
99 var label_r1_2 = p.w.document.createElement('label');
100 row1.appendChild( label_r1_2 );
101 label_r1_2.setAttribute('value',mbts.total_owed());
102 var row2 = p.w.document.createElement('row');
103 rows.appendChild( row2 );
104 var label_r2_1 = p.w.document.createElement('label');
105 row2.appendChild( label_r2_1 );
106 label_r2_1.setAttribute('value',getString('mbts_total_paid_label'));
107 var label_r2_2 = p.w.document.createElement('label');
108 row2.appendChild( label_r2_2 );
109 label_r2_2.setAttribute('value',mbts.total_paid());
110 var row3 = p.w.document.createElement('row');
111 rows.appendChild( row3 );
112 var label_r3_1 = p.w.document.createElement('label');
113 row3.appendChild( label_r3_1 );
114 label_r3_1.setAttribute('value',getString('mbts_balance_owed_label'));
115 label_r3_1.setAttribute('style','font-weight: bold');
116 var label_r3_2 = p.w.document.createElement('label');
117 row3.appendChild( label_r3_2 );
118 label_r3_2.setAttribute('value',mbts.balance_owed());
119 label_r3_2.setAttribute('style','font-weight: bold');
124 var obj_string ='mbts';
128 //p.list_box.clear_rows();
130 for (var i = 0; i < bills.length; i++) {
136 for (var j = 0; j < p.patron_bills_cols.length; j++) {
137 var hash = p.patron_bills_cols[j];
138 sdump('D_PATRON_BILLS','Considering ' + js2JSON(hash) + '\n');
139 var listcell = p.w.document.createElement('listcell');
140 listcell.setAttribute('pack','start');
141 listcell.setAttribute('align','start');
142 listcell.setAttribute('style','border-left: black solid thin');
144 if (hash.fm_field_render) {
147 switch( hash.fm_class ) {
148 case 'mvr' : obj_string = 'mvr'; break;
150 var cmd = parse_render_string( obj_string, hash.fm_field_render );
151 sdump('D_PATRON_BILLS','cmd = ' + cmd + '\n');
154 sdump('D_PATRON_BILLS','eval = ' + col + '\n');
156 sdump('D_ERROR',E + '\n');
158 if (typeof(col) == 'string') {
159 listcell.setAttribute('label',col);
161 listcell.appendChild( col );
164 if (hash.render_xul) {
165 var xul = p.w.document.createElement( hash.render_xul );
166 listcell.appendChild( xul );
167 if (hash.render_xul == 'checkbox') xul.setAttribute('checked', 'true');
169 cols.push( listcell );
171 p.list_box.add_row( cols, { 'record_id' : mbts.id() } );