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 patron_bills_list_box_init( p );
9 patron_bills_control_box_init( p );
11 p.control_box.bill_apply_payment.addEventListener(
13 function() { alert('Fatal error.. gasp.. arggg.. choke... cough.. sputter'); },
17 sdump('D_TRACE_EXIT',arg_dump(arguments));
21 function patron_bills_control_box_init( p ) {
23 p.control_box.node = p.node.nextSibling;
24 p.control_box.bill_total_owed = p.control_box.node.getElementsByAttribute('id','bill_total_owed')[0];
25 p.control_box.payment_type = p.control_box.node.getElementsByAttribute('id','payment_type_menulist')[0];
26 p.control_box.bill_payment_amount = p.control_box.node.getElementsByAttribute('id','bill_payment_amount_textbox')[0];
27 p.control_box.bill_change_amount = p.control_box.node.getElementsByAttribute('id','bill_change_amount_textbox')[0];
28 p.control_box.bill_credit_amount = p.control_box.node.getElementsByAttribute('id','bill_credit_amount_textbox')[0];
29 p.control_box.bill_apply_payment = p.control_box.node.getElementsByAttribute('id','bill_apply_payment')[0];
32 function patron_bills_list_box_init( p ) {
33 p.patron_bills_cols = [
35 'id' : 'checkbox', 'label' : '', 'flex' : 0, 'primary' : false, 'hidden' : false,
36 'render_xul' : 'checkbox'
39 'id' : 'xact_dates', 'label' : getString('bills_xact_dates_label'), 'flex' : 0,
40 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
41 'fm_field_render' : 'xact_dates_box($$)'
44 'id' : 'notes', 'label' : getString('mbts_xact_type_label'), 'flex' : 1,
45 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
46 'fm_field_render' : '.xact_type()'
49 'id' : 'money', 'label' : getString('bills_money_label'), 'flex' : 0,
50 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
51 'fm_field_render' : 'money_box($$)'
54 'id' : 'current_pay', 'label' : getString('bills_current_payment_label'), 'flex' : 0,
55 'render_xul' : 'textbox'
59 p.list_box = list_box_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_bills_cols, 'debug' : p.app } );
60 p.clear_patron_bills = p.list_box.clear_rows;
61 p.add_patron_bills = function (bills) {
62 sdump('D_PATRON_BILLS','p.add_patron_bills(' + bills + ')\n');
63 return patron_bills_add_patron_bills(p,bills);
67 function patron_bills_add_patron_bills(p, bills) {
68 sdump('D_PATRON_BILLS',arg_dump(arguments,{1:true}));
70 p.control_box.bill_total_owed.setAttribute('value','');
72 function xact_dates_box( mbts ) {
73 var grid = p.w.document.createElement('grid');
74 var cols = p.w.document.createElement('columns');
75 grid.appendChild( cols );
76 cols.appendChild( p.w.document.createElement('column') );
77 cols.appendChild( p.w.document.createElement('column') );
78 var rows = p.w.document.createElement('rows');
79 grid.appendChild( rows );
80 var row0 = p.w.document.createElement('row');
81 rows.appendChild( row0 );
82 var label_r0_1 = p.w.document.createElement('label');
83 row0.appendChild( label_r0_1 );
84 label_r0_1.setAttribute('value',getString('mbts_id_label'));
85 var label_r0_2 = p.w.document.createElement('label');
86 row0.appendChild( label_r0_2 );
87 label_r0_2.setAttribute('value',mbts.id());
88 var row1 = p.w.document.createElement('row');
89 rows.appendChild( row1 );
90 var label_r1_1 = p.w.document.createElement('label');
91 row1.appendChild( label_r1_1 );
92 label_r1_1.setAttribute('value',getString('mbts_xact_start_label'));
93 var label_r1_2 = p.w.document.createElement('label');
94 row1.appendChild( label_r1_2 );
95 label_r1_2.setAttribute('value',mbts.xact_start().toString().substr(0,10));
96 var row2 = p.w.document.createElement('row');
97 rows.appendChild( row2 );
98 var label_r2_1 = p.w.document.createElement('label');
99 row2.appendChild( label_r2_1 );
100 label_r2_1.setAttribute('value',getString('mbts_xact_finish_label'));
101 var label_r2_2 = p.w.document.createElement('label');
102 row2.appendChild( label_r2_2 );
103 try { label_r2_2.setAttribute('value',mbts.xact_finish().toString().substr(0,10));
109 function money_box( mbts ) {
110 var grid = p.w.document.createElement('grid');
111 var cols = p.w.document.createElement('columns');
112 grid.appendChild( cols );
113 cols.appendChild( p.w.document.createElement('column') );
114 cols.appendChild( p.w.document.createElement('column') );
115 var rows = p.w.document.createElement('rows');
116 grid.appendChild( rows );
117 var row1 = p.w.document.createElement('row');
118 rows.appendChild( row1 );
119 var label_r1_1 = p.w.document.createElement('label');
120 row1.appendChild( label_r1_1 );
121 label_r1_1.setAttribute('value',getString('mbts_total_owed_label'));
122 var label_r1_2 = p.w.document.createElement('label');
123 row1.appendChild( label_r1_2 );
124 label_r1_2.setAttribute('value',mbts.total_owed());
125 var row2 = p.w.document.createElement('row');
126 rows.appendChild( row2 );
127 var label_r2_1 = p.w.document.createElement('label');
128 row2.appendChild( label_r2_1 );
129 label_r2_1.setAttribute('value',getString('mbts_total_paid_label'));
130 var label_r2_2 = p.w.document.createElement('label');
131 row2.appendChild( label_r2_2 );
132 label_r2_2.setAttribute('value',mbts.total_paid());
133 var row3 = p.w.document.createElement('row');
134 rows.appendChild( row3 );
135 var label_r3_1 = p.w.document.createElement('label');
136 row3.appendChild( label_r3_1 );
137 label_r3_1.setAttribute('value',getString('mbts_balance_owed_label'));
138 label_r3_1.setAttribute('style','font-weight: bold');
139 var label_r3_2 = p.w.document.createElement('label');
140 row3.appendChild( label_r3_2 );
141 label_r3_2.setAttribute('value',mbts.balance_owed());
142 label_r3_2.setAttribute('style','font-weight: bold');
147 var obj_string ='mbts';
151 //p.list_box.clear_rows();
153 for (var i = 0; i < bills.length; i++) {
159 for (var j = 0; j < p.patron_bills_cols.length; j++) {
160 var hash = p.patron_bills_cols[j];
161 sdump('D_PATRON_BILLS','Considering ' + js2JSON(hash) + '\n');
162 var listcell = p.w.document.createElement('listcell');
163 listcell.setAttribute('pack','start');
164 listcell.setAttribute('align','start');
165 listcell.setAttribute('style','border-left: black solid thin');
167 if (hash.fm_field_render) {
170 switch( hash.fm_class ) {
171 case 'mvr' : obj_string = 'mvr'; break;
173 var cmd = parse_render_string( obj_string, hash.fm_field_render );
174 sdump('D_PATRON_BILLS','cmd = ' + cmd + '\n');
177 sdump('D_PATRON_BILLS','eval = ' + col + '\n');
179 sdump('D_ERROR',E + '\n');
181 if (typeof(col) == 'string') {
182 listcell.setAttribute('label',col);
184 listcell.appendChild( col );
187 if (hash.render_xul) {
188 var xul = p.w.document.createElement( hash.render_xul );
189 listcell.appendChild( xul );
190 if (hash.render_xul == 'checkbox') xul.setAttribute('checked', 'true');
192 cols.push( listcell );
194 p.list_box.add_row( cols, { 'record_id' : mbts.id() } );