oca-ocb-pos/odoo-bringout-oca-ocb-pos_adyen/pos_adyen/static/src/js/PaymentScreen.js
2025-08-29 15:20:50 +02:00

36 lines
1.6 KiB
JavaScript

odoo.define('pos_adyen.PaymentScreen', function(require) {
"use strict";
const PaymentScreen = require('point_of_sale.PaymentScreen');
const Registries = require('point_of_sale.Registries');
const { onMounted } = owl;
const PosAdyenPaymentScreen = PaymentScreen => class extends PaymentScreen {
setup() {
super.setup();
onMounted(() => {
const pendingPaymentLine = this.currentOrder.paymentlines.find(
paymentLine => paymentLine.payment_method.use_payment_terminal === 'adyen' &&
(!paymentLine.is_done() && paymentLine.get_payment_status() !== 'pending')
);
if (pendingPaymentLine) {
const paymentTerminal = pendingPaymentLine.payment_method.payment_terminal;
paymentTerminal.set_most_recent_service_id(pendingPaymentLine.terminalServiceId);
pendingPaymentLine.set_payment_status('waiting');
paymentTerminal.start_get_status_polling().then(isPaymentSuccessful => {
if (isPaymentSuccessful) {
pendingPaymentLine.set_payment_status('done');
pendingPaymentLine.can_be_reversed = paymentTerminal.supports_reversals;
} else {
pendingPaymentLine.set_payment_status('retry');
}
});
}
});
}
};
Registries.Component.extend(PaymentScreen, PosAdyenPaymentScreen);
return PaymentScreen;
});