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.$('total-debt').value = totalDebt; this.$('total-amount').value = totalDebt; this.$('credit-excess').value = exceededCredit; this.$('excess-amount').value = exceededCredit; this.$('pay-amount').value = 'ALL'; if (credit > 0) { this.$('credit-info').style.display = 'table-row'; if (creditExceededCond) { this.$('amount-selector').style.display = 'block'; this.$('exceeded-info').style.display = 'table-row'; this.$('pay-amount').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.$('pay-method').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.$('confirm-query').execute(); }, onConfirm: function(query, resultSet) { this.disableButtons(false); if (resultSet.fetchResult()) this.$('success-dialog').show(); }, onDialogResponse: function() { if (this.$('pay-method').value === 'CARD') { if (this.$('pay-amount').value === 'EXCEEDED') var payAmount = this.$('excess-amount').value; else var payAmount = this.$('total-amount').value; var tpv = new Hedera.Tpv({conn: this.conn}); tpv.pay(payAmount, this.$('order-form').get('companyFk')); } else this.hash.set({'form': 'ecomerce/orders'}); } });