]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/patron/patron_bills.js
just a snapshot
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / patron / patron_bills.js
1 sdump('D_TRACE','Loading patron_bills.js\n');
2
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));
6
7         p.patron_bills_cols = [
8                 {
9                         'id' : 'checkbox', 'label' : '', 'flex' : 0, 'primary' : false, 'hidden' : false,
10                         'render_xul' : 'checkbox'
11                 },
12                 {
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($$)'
16                 },
17                 {
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()'
21                 },
22                 {
23                         'id' : 'money', 'label' : getString('bills_money_label'), 'flex' : 0,
24                         'primary' : false, 'hidden' : false, 'fm_class' : 'mbts', 
25                         'fm_field_render' : 'money_box($$)'
26                 },
27                 {
28                         'id' : 'current_pay', 'label' : getString('bills_current_payment_label'), 'flex' : 0, 
29                         'render_xul' : 'textbox'
30                 }
31         ];
32
33         p.list_box = list_box_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_bills_cols, 'debug' : p.app } );
34
35         p.clear_patron_bills = p.list_box.clear_rows;
36
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);
40         }
41
42         sdump('D_TRACE_EXIT',arg_dump(arguments));
43         return p;
44 }
45
46 function patron_bills_add_patron_bills(p, bills) {
47         sdump('D_PATRON_BILLS',arg_dump(arguments,{1:true}));
48
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));
81                                         } catch(E) {}
82
83                 return grid;
84         }
85
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');
120
121                 return grid;
122         }
123
124         var obj_string ='mbts';
125
126         setTimeout(
127                 function() {
128         //p.list_box.clear_rows();
129
130         for (var i = 0; i < bills.length; i++) {
131
132                 var mbts = bills[i];
133
134                 var cols = [];
135
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');
143                         var col = '';
144                         if (hash.fm_field_render) {
145
146                                 var obj = 'mbts';
147                                 switch( hash.fm_class ) {
148                                         case 'mvr' : obj_string = 'mvr'; break;
149                                 }
150                                 var cmd = parse_render_string( obj_string, hash.fm_field_render );
151                                 sdump('D_PATRON_BILLS','cmd = ' + cmd + '\n');
152                                 try {
153                                         col = eval( cmd );
154                                         sdump('D_PATRON_BILLS','eval = ' + col + '\n');
155                                 } catch(E) {
156                                         sdump('D_ERROR',E + '\n');
157                                 }
158                                 if (typeof(col) == 'string') {
159                                         listcell.setAttribute('label',col);
160                                 } else {
161                                         listcell.appendChild( col );
162                                 }
163                         }
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');
168                         }
169                         cols.push( listcell );
170                 }
171                 p.list_box.add_row( cols, { 'record_id' : mbts.id() } ); 
172         }
173                 }, 0
174         );
175 }