58 lines
1.2 KiB
JavaScript
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();
|
|
}
|
|
});
|