hedera-web/forms/ecomerce/orders/index.js

58 lines
1.2 KiB
JavaScript

import './style.scss';
export default new Class({
Extends: Hedera.Form,
Template: require('./ui.xml'),
activate() {
this.tpv = new Hedera.Tpv({
conn: this.conn,
hash: this.hash
});
const tpvStatus = this.tpv.check();
if (tpvStatus === 'ko') this.$.errorDialog.show();
},
onBasketClick() {
this.hash.setAll({form: 'ecomerce/basket'});
},
repeaterFunc(res, form) {
res.$.link.href = this.hash.make({
form: 'ecomerce/ticket',
ticket: form.$.id
});
},
// TPV
balanceConditionalFunc(_, value) {
if (value >= 0)
Vn.Node.removeClass(this.$.balance, 'negative');
else
Vn.Node.addClass(this.$.balance, 'negative');
},
async onPayButtonClick() {
var amount = -this.$.debt.value;
amount = amount <= 0 ? null : amount;
var defaultAmountStr = '';
if (amount !== null)
defaultAmountStr = Vn.Value.format(amount, '%.2d');
amount = prompt(_('AmountToPay:'), defaultAmountStr);
if (amount != null) {
amount = parseFloat(amount.replace(',', '.'));
await this.tpv.pay(amount, null);
}
},
async onDialogResponse(_, response) {
if (response == Htk.Dialog.Button.RETRY)
await this.tpv.retryPay();
}
});