+++ /dev/null
-function PaymentForm() {}
-var proto = (typeof(SelfCheckManager) == "undefined" ?
- PaymentForm : SelfCheckManager).prototype;
-
-proto.drawPayFinesPage = function(patron, total, xacts, onPaymentSubmit) {
- if (typeof(this.authtoken) == "undefined")
- this.authtoken = patron.session;
-
- dojo.query("span", "oils-selfck-cc-payment-summary")[0].innerHTML = total;
-
- oilsSelfckCCNumber.attr('value', '');
- oilsSelfckCCCVV.attr('value', '');
- oilsSelfckCCMonth.attr('value', '01');
- oilsSelfckCCYear.attr('value', new Date().getFullYear());
- oilsSelfckCCFName.attr('value', patron.first_given_name());
- oilsSelfckCCLName.attr('value', patron.family_name());
-
- var addr = patron.billing_address() || patron.mailing_address();
-
- if (typeof(addr) != "object") {
- /* still don't have usable address? try getting better user object. */
- fieldmapper.standardRequest(
- ["open-ils.actor", "open-ils.actor.user.fleshed.retrieve"], {
- "params": [
- patron.session, patron.id(), [
- "billing_address", "mailing_address"
- ]
- ],
- "async": false,
- "oncomplete": function(r) {
- var usr = openils.Util.readResponse(r);
- if (usr)
- addr = usr.billing_address() || usr.mailing_address();
- }
- }
- );
- }
-
- if (addr) {
- oilsSelfckCCStreet.attr('value', addr.street1()+' '+addr.street2());
- oilsSelfckCCCity.attr('value', addr.city());
- oilsSelfckCCState.attr('value', addr.state());
- oilsSelfckCCZip.attr('value', addr.post_code());
- }
-
- dojo.connect(oilsSelfckEditDetails, 'onChange',
- function(newVal) {
- dojo.forEach(
- [ oilsSelfckCCFName,
- oilsSelfckCCLName,
- oilsSelfckCCStreet,
- oilsSelfckCCCity,
- oilsSelfckCCState,
- oilsSelfckCCZip
- ],
- function(dij) { dij.attr('disabled', !newVal); }
- );
- }
- );
-
-
- var self = this;
- dojo.connect(oilsSelfckCCSubmit, 'onClick',
- function() {
- /* XXX better to replace this check on progressDialog with some
- * kind of passed-in function to support different use cases */
- if (typeof(progressDialog) != "undefined")
- progressDialog.show(true);
-
- self.sendCCPayment(patron, xacts, onPaymentSubmit);
- }
- );
-}
-
-// In this form, this code only supports global on/off credit card
-// payments and does not dissallow payments to transactions that started
-// at remote locations or transactions that have accumulated billings at
-// remote locations that dissalow credit card payments.
-// TODO add per-transaction blocks for orgs that do not support CC payments
-
-proto.sendCCPayment = function(patron, xacts, onPaymentSubmit) {
-
- var args = {
- userid : patron.id(),
- payment_type : 'credit_card_payment',
- payments : xacts,
- cc_args : {
- where_process : 1,
- //type : oilsSelfckCCType.attr('value'),
- number : oilsSelfckCCNumber.attr('value'),
- cvv2 : oilsSelfckCCCVV.attr('value'),
- expire_year : oilsSelfckCCYear.attr('value'),
- expire_month : oilsSelfckCCMonth.attr('value'),
- billing_first : oilsSelfckCCFName.attr('value'),
- billing_last : oilsSelfckCCLName.attr('value'),
- billing_address : oilsSelfckCCStreet.attr('value'),
- billing_city : oilsSelfckCCCity.attr('value'),
- billing_state : oilsSelfckCCState.attr('value'),
- billing_zip : oilsSelfckCCZip.attr('value')
- }
- }
-
- var resp = fieldmapper.standardRequest(
- ['open-ils.circ', 'open-ils.circ.money.payment'],
- {params : [this.authtoken, args, patron.last_xact_id()]}
- );
-
- if (typeof(progressDialog) != "undefined")
- progressDialog.hide();
-
- if (typeof(onPaymentSubmit) == "function") {
- onPaymentSubmit(resp);
- } else {
- var evt = openils.Event.parse(resp);
- if (evt) alert(evt);
- }
-}