1 function PaymentForm() {}
2 var proto = (typeof(SelfCheckManager) == "undefined" ?
3 PaymentForm : SelfCheckManager).prototype;
5 proto.drawPayFinesPage = function(patron, total, xacts, onPaymentSubmit) {
6 if (typeof(this.authtoken) == "undefined")
7 this.authtoken = patron.session;
9 dojo.query("span", "oils-selfck-cc-payment-summary")[0].innerHTML = total;
11 oilsSelfckCCNumber.attr('value', '');
12 oilsSelfckCCCVV.attr('value', '');
13 oilsSelfckCCMonth.attr('value', '01');
14 oilsSelfckCCYear.attr('value', new Date().getFullYear());
15 oilsSelfckCCFName.attr('value', patron.first_given_name());
16 oilsSelfckCCLName.attr('value', patron.family_name());
18 var addr = patron.billing_address() || patron.mailing_address();
20 if (typeof(addr) != "object") {
21 /* still don't have usable address? try getting better user object. */
22 fieldmapper.standardRequest(
23 ["open-ils.actor", "open-ils.actor.user.fleshed.retrieve"], {
25 patron.session, patron.id(), [
26 "billing_address", "mailing_address"
30 "oncomplete": function(r) {
31 var usr = openils.Util.readResponse(r);
33 addr = usr.billing_address() || usr.mailing_address();
40 oilsSelfckCCStreet.attr('value', addr.street1()+' '+addr.street2());
41 oilsSelfckCCCity.attr('value', addr.city());
42 oilsSelfckCCState.attr('value', addr.state());
43 oilsSelfckCCZip.attr('value', addr.post_code());
46 dojo.connect(oilsSelfckEditDetails, 'onChange',
56 function(dij) { dij.attr('disabled', !newVal); }
63 dojo.connect(oilsSelfckCCSubmit, 'onClick',
65 /* XXX better to replace this check on progressDialog with some
66 * kind of passed-in function to support different use cases */
67 if (typeof(progressDialog) != "undefined")
68 progressDialog.show(true);
70 self.sendCCPayment(patron, xacts, onPaymentSubmit);
75 // In this form, this code only supports global on/off credit card
76 // payments and does not dissallow payments to transactions that started
77 // at remote locations or transactions that have accumulated billings at
78 // remote locations that dissalow credit card payments.
79 // TODO add per-transaction blocks for orgs that do not support CC payments
81 proto.sendCCPayment = function(patron, xacts, onPaymentSubmit) {
85 payment_type : 'credit_card_payment',
89 number : oilsSelfckCCNumber.attr('value'),
90 cvv2 : oilsSelfckCCCVV.attr('value'),
91 expire_year : oilsSelfckCCYear.attr('value'),
92 expire_month : oilsSelfckCCMonth.attr('value'),
93 billing_first : oilsSelfckCCFName.attr('value'),
94 billing_last : oilsSelfckCCLName.attr('value'),
95 billing_address : oilsSelfckCCStreet.attr('value'),
96 billing_city : oilsSelfckCCCity.attr('value'),
97 billing_state : oilsSelfckCCState.attr('value'),
98 billing_zip : oilsSelfckCCZip.attr('value')
102 var resp = fieldmapper.standardRequest(
103 ['open-ils.circ', 'open-ils.circ.money.payment'],
104 {params : [this.authtoken, args]}
107 if (typeof(progressDialog) != "undefined")
108 progressDialog.hide();
110 if (typeof(onPaymentSubmit) == "function") {
111 onPaymentSubmit(resp);
113 var evt = openils.Event.parse(resp);