Hedera.Confirm = new Class({ Extends: Hedera.Form, open: function() { this.close(); this.isOpen = true; Hedera.BasketChecker.check(this.conn, this.onBasketCheck.bind(this)); }, onBasketCheck: function(isOk) { if (isOk) this.loadUi(); }, onOrderReady: function(form) { if (form.row < 0) return; if (form.get('method') != 'PICKUP') { Vn.Node.show(this.$.address); Vn.Node.setText(this.$.method, _('Agency')); } else { Vn.Node.hide(this.$.address); Vn.Node.setText(this.$.method, _('Warehouse')); } var total = form.get('taxableBase') + form.get('tax'); if (total === null) total = 0; var credit = form.get('credit'); var debt = form.get('debt'); var totalDebt = debt + total; var exceededCredit = totalDebt - credit; var creditExceededCond = exceededCredit > 0; if (creditExceededCond) Htk.Toast.showWarning( _('You have exceeded your credit.')); this.$.debt.value = debt; this.$.totalDebt.value = totalDebt; this.$.totalAmount.value = totalDebt; this.$.creditExcess.value = exceededCredit; this.$.excessAmount.value = exceededCredit; this.$.payAmount.value = 'ALL'; if (credit > 0) { this.$.creditInfo.style.display = 'table-row'; if (creditExceededCond) { this.$.amountSelector.style.display = 'block'; this.$.exceededInfo.style.display = 'table-row'; this.$.payAmount.value = 'EXCEEDED'; } } var methods = []; if (totalDebt <= 0) { methods = ['balance']; selectedMethod = 'BALANCE'; } else { methods = ['card', 'transfer', 'later']; if (!creditExceededCond) { methods.push('credit'); selectedMethod = 'CREDIT'; } else selectedMethod = 'CARD'; } for (var i = 0; i < methods.length; i++) this.$(methods[i] +'-method').style.display = 'block'; this.$.payMethod.value = selectedMethod; }, onPayMethodChange: function(payMethod) { var id = this.displayedInfo; if (id) Vn.Node.removeClass(this.$(id), 'selected'); switch (payMethod.value) { case 'BALANCE': id = 'balance-method'; break; case 'CREDIT': id = 'credit-method'; break; case 'CARD': id = 'card-method'; break; case 'TRANSFER': id = 'transfer-method'; break; default: id = null; } this.displayedInfo = id; if (id) Vn.Node.addClass(this.$(id), 'selected'); }, disableButtons: function(disable) { this.$.modify.disabled = disable; this.$.confirm.disabled = disable; }, onModifyClick: function() { window.history.back(); }, onConfirmClick: function() { this.disableButtons(true); this.$.confirmQuery.execute(); }, onConfirm: function(query, resultSet) { this.disableButtons(false); if (resultSet.fetchResult()) this.$.successDialog.show(); }, onDialogResponse: function() { if (this.$.payMethod.value === 'CARD') { if (this.$.payAmount.value === 'EXCEEDED') var payAmount = this.$.excessAmount.value; else var payAmount = this.$.totalAmount.value; var tpv = new Hedera.Tpv({conn: this.conn}); tpv.pay(payAmount, this.$.orderForm.get('companyFk')); } else this.hash.set({'form': 'ecomerce/orders'}); } });