]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/bill_wizard.js
LP1615805 No inputs after submit in patron search (AngularJS)
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / patron / bill_wizard.js
1 function $(id) { return document.getElementById(id); }
2
3 function retrieve_mbts() {
4     g.network.simple_request('FM_MBTS_RETRIEVE.authoritative',[ses(),g.mbts_id],
5         function(req) {
6             try {
7                 g.mbts = req.getResultObject();
8                 $('mbts_id').value = g.mbts.id();
9                 $('mbts_xact_type').value = g.mbts.xact_type();
10                 $('mbts_xact_start').value = util.date.formatted_date( g.mbts.xact_start(), '%{localized}' );
11                 $('mbts_xact_finish').value = g.mbts.xact_finish() ? util.date.formatted_date( g.mbts.xact_finish(), '%{localized}' ) : '';
12                 $('mbts_total_owed').value = g.mbts.total_owed() ? util.money.sanitize( g.mbts.total_owed() ) : '';
13                 $('mbts_total_paid').value = g.mbts.total_paid() ? util.money.sanitize( g.mbts.total_paid() ) : '';
14                 $('mbts_balance_owed').value = g.mbts.balance_owed() ? util.money.sanitize( g.mbts.balance_owed() ) : '';
15                 $('xact_type').value = g.mbts.xact_type(); $('xact_type').disabled = true;
16             } catch(E) {
17                 g.error.sdump('D_ERROR',E);
18             }
19         }
20     );
21 }
22
23 function retrieve_circ() {
24     JSAN.use('util.widgets');
25
26     function render_circ(r_circ) {
27
28         $('title_label').hidden = false;
29         $('checked_out_label').hidden = false;
30         $('due_label').hidden = false;
31         $('checked_in_label').hidden = false;
32         $('checked_out').value = r_circ.xact_start() ? util.date.formatted_date( r_circ.xact_start(), '%{localized}' ) : '';
33         $('checked_in').value = r_circ.checkin_time() ? util.date.formatted_date( r_circ.checkin_time(), '%{localized}' ) : '';
34         $('due').value = r_circ.due_date() ? util.date.formatted_date( r_circ.due_date(), '%{localized}' ) : '';
35
36         g.network.simple_request(
37             'MODS_SLIM_RECORD_RETRIEVE_VIA_COPY.authoritative',
38             [ typeof r_circ.target_copy() == 'object' ? r_circ.target_copy().id() : r_circ.target_copy() ],
39             function (rreq) {
40                 var r_mvr = rreq.getResultObject();
41                 if (instanceOf(r_mvr,mvr)) {
42                     util.widgets.remove_children('title');
43                     $('title').appendChild( document.createTextNode( r_mvr.title() ) );
44                 } else {
45                     g.network.simple_request(
46                         'FM_ACP_RETRIEVE',
47                         [ typeof r_circ.target_copy() == 'object' ? r_circ.target_copy().id() : r_circ.target_copy() ],
48                         function (rrreq) {
49                             var r_acp = rrreq.getResultObject();
50                             if (instanceOf(r_acp,acp)) {
51                                 util.widgets.remove_children('title');
52                                 $('title').appendChild( document.createTextNode( r_acp.dummy_title() ) );
53                             }
54                         }
55                     );
56                 }
57             }
58         );
59
60     }
61
62     if (g.circ) {
63         render_circ(g.circ);
64     } else {
65         g.network.simple_request('FM_CIRC_RETRIEVE_VIA_ID', [ ses(), g.mbts_id ],
66             function (req) {
67                 var r_circ = req.getResultObject();
68                 if (instanceOf(r_circ,circ)) {
69                     render_circ(r_circ);
70                 }
71             }
72         );
73     }
74 }
75
76 function retrieve_patron() {
77     JSAN.use('patron.util'); 
78
79     g.patron_id = xul_param('patron_id');
80     g.au_obj = xul_param('patron');
81
82     if (! g.au_obj) {
83         g.au_obj = patron.util.retrieve_fleshed_au_via_id( ses(), g.patron_id );
84     }
85
86     if (g.au_obj) {
87         $('patron_name').setAttribute('value', 
88             patron.util.format_name( g.au_obj ) + ' : ' + g.au_obj.card().barcode() 
89         );
90     }
91
92 }
93
94 function patron_bill_init() {
95     try {
96         if (typeof JSAN == 'undefined') { throw( $("commonStrings").getString('common.jsan.missing') ); }
97         JSAN.errorLevel = "die"; // none, warn, or die
98         JSAN.addRepository('/xul/server/');
99         JSAN.use('util.error'); g.error = new util.error();
100         g.error.sdump('D_TRACE','my_init() for patron_display.xul');
101         g.OpenILS = {}; JSAN.use('OpenILS.data'); g.OpenILS.data = new OpenILS.data();
102         g.OpenILS.data.init({'via':'stash'});
103         JSAN.use('util.network'); g.network = new util.network();
104         JSAN.use('util.date');
105         JSAN.use('util.money');
106         JSAN.use('util.widgets');
107         JSAN.use('util.functional');
108         var override_default_billing_type = xul_param('override_default_billing_type');
109         var billing_list = util.functional.filter_list( g.OpenILS.data.list.cbt, function (x) { return x.id() >= 100 || x.id() == override_default_billing_type } );
110         var ml = util.widgets.make_menulist(
111             util.functional.map_list(
112                 billing_list.sort( function(a,b) { if (a.name()>b.name()) return 1; if (a.name()<b.name()) return -1; return 0; } ), //g.OpenILS.data.list.billing_type.sort(),
113                 function(obj) { return [ obj.name(), obj.id() ]; } //function(obj) { return [ obj, obj ]; }
114             ),
115             override_default_billing_type || billing_list.sort( function(a,b) { if (a.name()>b.name()) return 1; if (a.name()<b.name()) return -1; return 0; } )[0].id()
116         );
117         ml.setAttribute('id','billing_type');
118         document.getElementById('menu_placeholder').appendChild(ml);
119         window.bill_wizard_event_listeners = new EventListenerList();
120         window.bill_wizard_event_listeners.add(ml, 
121             'command',
122             function() {
123                 if ( g.OpenILS.data.hash.cbt[ ml.value ] ) {
124                     $('bill_amount').value = g.OpenILS.data.hash.cbt[ ml.value ].default_price();
125                 }
126             },
127             false
128         ); 
129
130         retrieve_patron();
131
132         $('wizard_billing_location').setAttribute('value', g.OpenILS.data.hash.aou[ g.OpenILS.data.list.au[0].ws_ou() ].name() );
133
134         if ( g.OpenILS.data.hash.cbt[ ml.value ] ) {
135             $('bill_amount').value = g.OpenILS.data.hash.cbt[ ml.value ].default_price();
136         }
137         var override_default_price = xul_param('override_default_price');
138         if (override_default_price) {
139             $('bill_amount').value = override_default_price;
140         }
141         $('bill_amount').select(); $('bill_amount').focus();
142
143         g.circ = xul_param('circ');
144         if (xul_param('xact_id')) { 
145             g.mbts_id = xul_param('xact_id');
146             $('summary').hidden = false; 
147             retrieve_mbts();
148             retrieve_circ();
149         }
150
151     } catch(E) {
152         var err_msg = $("commonStrings").getFormattedString('common.exception', ['patron/bill_wizard.xul', E]);
153         try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
154         alert(err_msg);
155     }
156
157 }
158
159 function patron_bill_cleanup() {
160     try {
161         window.bill_wizard_event_listeners.removeAll();
162     } catch(E) {
163         var err_msg = $("commonStrings").getFormattedString('common.exception', ['patron/bill_wizard.xul', E]);
164         try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
165         alert(err_msg);
166     }
167
168 }
169
170 function patron_bill_finish() {
171     try {
172         var do_not_process_bill = xul_param('do_not_process_bill');
173         var xact_id = xul_param('xact_id');
174
175         if (do_not_process_bill) {
176
177             xulG.proceed = true;
178             xulG.cbt_id = $('billing_type').value;
179             xulG.amount = $('bill_amount').value;
180             xulG.note = $('bill_note').value;
181
182         } else {
183
184             if (!xact_id) {
185                     var grocery = new mg();
186                         grocery.isnew('1');
187                         grocery.billing_location( g.OpenILS.data.list.au[0].ws_ou() );
188                         grocery.usr( g.au_obj.id() );
189                         grocery.note( $('bill_note').value );
190                     xact_id = g.network.request(
191                         api.FM_MG_CREATE.app,
192                         api.FM_MG_CREATE.method,
193                         [ ses(), grocery ]
194                     );
195             }
196             if (typeof xact_id.ilsevent == 'undefined') {
197                 JSAN.use('util.money');
198                 var billing = new mb();
199                     billing.isnew('1');
200                     billing.note( $('bill_note').value );
201                     billing.xact( xact_id );
202                     billing.amount( util.money.sanitize( $('bill_amount').value ) );
203                     billing.btype( $('billing_type').value );
204                     billing.billing_type( g.OpenILS.data.hash.cbt[$('billing_type').value].name() );
205                 var mb_id = g.network.request(
206                     api.FM_MB_CREATE.app,
207                     api.FM_MB_CREATE.method,
208                     [ ses(), billing ]
209                 );
210                 if (typeof mb_id.ilsevent != 'undefined') throw(mb_id);
211                 //alert($('patronStrings').getString('staff.patron.bill_wizard.patron_bill_finish.billing_added'));
212
213                 xulG.mb_id = mb_id;
214                 xulG.xact_id = xact_id;
215
216             } else {
217                 throw(xact_id);
218             }
219
220         }
221     } catch(E) {
222         g.error.standard_unexpected_error_alert('bill_wizard',E);
223     }
224 }
225
226