Hedera.Confirm = new Class({ Extends: Hedera.Form, open: function() { this.close(); this.isOpen = true; Hedera.BasketChecker.check(this.conn, this.hash, this.onBasketCheck.bind(this)); }, onBasketCheck: function(isOk) { if (isOk) this.loadUi(); }, onOrderReady: function(form) { if (form.row < 0) return; if (form.$.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.$.taxableBase + form.$.tax; if (total === null) total = 0; var credit = form.$.credit; var debt = form.$.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 = 'balanceMethod'; break; case 'CREDIT': id = 'creditMethod'; break; case 'CARD': id = 'cardMethod'; break; case 'TRANSFER': id = 'transferMethod'; 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, hash: this.hash }); tpv.pay(payAmount, this.$.orderForm.$.companyFk); } else this.hash.setAll({'form': 'ecomerce/orders'}); } });