1 function PaymentForm() {}
\r
2 var proto = (typeof(SelfCheckManager) == "undefined" ?
\r
3 PaymentForm : SelfCheckManager).prototype;
\r
5 proto.drawPayFinesPage = function(patron, total, xacts, onPaymentSubmit) {
\r
6 if (typeof(this.authtoken) == "undefined")
\r
7 this.authtoken = patron.session;
\r
9 dojo.query("span", "oils-selfck-cc-payment-summary")[0].innerHTML = total;
\r
11 var d = new Date().getFullYear();
\r
12 oilsSelfckCCNumber.attr('value', '');
\r
13 oilsSelfckCCCVV.attr('value', '');
\r
14 oilsSelfckCCMonth.attr('value', '01');
\r
15 oilsSelfckCCYear.attr('value', d);
\r
16 oilsSelfckCCFName.attr('value', patron.first_given_name());
\r
17 oilsSelfckCCLName.attr('value', patron.family_name());
\r
18 oilsSelfckCCYear.constraints.min=d;
\r
19 oilsSelfckCCYear.constraints.max=d+10;
\r
21 var addr = patron.billing_address() || patron.mailing_address();
\r
23 if (typeof(addr) != "object") {
\r
24 /* still don't have usable address? try getting better user object. */
\r
25 fieldmapper.standardRequest(
\r
26 ["open-ils.actor", "open-ils.actor.user.fleshed.retrieve"], {
\r
28 patron.session, patron.id(), [
\r
29 "billing_address", "mailing_address"
\r
33 "oncomplete": function(r) {
\r
34 var usr = openils.Util.readResponse(r);
\r
36 addr = usr.billing_address() || usr.mailing_address();
\r
43 oilsSelfckCCStreet.attr('value', addr.street1()+' '+addr.street2());
\r
44 oilsSelfckCCCity.attr('value', addr.city());
\r
45 oilsSelfckCCState.attr('value', addr.state());
\r
46 oilsSelfckCCZip.attr('value', addr.post_code());
\r
49 dojo.connect(oilsSelfckEditDetails, 'onChange',
\r
52 [ oilsSelfckCCFName,
\r
59 function(dij) { dij.attr('disabled', !newVal); }
\r
66 dojo.connect(oilsSelfckCCSubmit, 'onClick',
\r
68 /* XXX better to replace this check on progressDialog with some
\r
69 * kind of passed-in function to support different use cases */
\r
70 if (typeof(progressDialog) != "undefined")
\r
71 progressDialog.show(true);
\r
73 self.sendCCPayment(patron, xacts, onPaymentSubmit);
\r
78 // In this form, this code only supports global on/off credit card
\r
79 // payments and does not dissallow payments to transactions that started
\r
80 // at remote locations or transactions that have accumulated billings at
\r
81 // remote locations that dissalow credit card payments.
\r
82 // TODO add per-transaction blocks for orgs that do not support CC payments
\r
84 proto.sendCCPayment = function(patron, xacts, onPaymentSubmit) {
\r
85 this.keepMeLoggedIn();
\r
87 userid : patron.id(),
\r
88 payment_type : 'credit_card_payment',
\r
92 //type : 'MasterCard',//oilsSelfckCCType.attr('value'),
\r
93 number : oilsSelfckCCNumber.attr('value'),
\r
94 cvv2 : oilsSelfckCCCVV.attr('value'),
\r
95 expire_year : oilsSelfckCCYear.attr('value'),
\r
96 expire_month : oilsSelfckCCMonth.attr('value'),
\r
97 billing_first : oilsSelfckCCFName.attr('value'),
\r
98 billing_last : oilsSelfckCCLName.attr('value'),
\r
99 billing_address : oilsSelfckCCStreet.attr('value'),
\r
100 billing_city : oilsSelfckCCCity.attr('value'),
\r
101 billing_state : oilsSelfckCCState.attr('value'),
\r
102 billing_zip : oilsSelfckCCZip.attr('value')
\r
106 var resp = fieldmapper.standardRequest(
\r
107 ['open-ils.circ', 'open-ils.circ.money.payment'],
\r
108 {params : [this.authtoken, args, patron.last_xact_id()]}
\r
111 if (typeof(progressDialog) != "undefined")
\r
112 progressDialog.hide();
\r
114 if (typeof(onPaymentSubmit) == "function") {
\r
115 onPaymentSubmit(resp);
\r
117 var evt = openils.Event.parse(resp);
\r
118 if (evt) alert(evt);
\r