diff --git a/addons/account/controllers/portal.py b/addons/account/controllers/portal.py index 0da2bd0ce5d..e66e6a68d35 100644 --- a/addons/account/controllers/portal.py +++ b/addons/account/controllers/portal.py @@ -3,6 +3,7 @@ from odoo import http, _ from odoo.addons.portal.controllers.portal import CustomerPortal, pager as portal_pager +from odoo.addons.payment.controllers.portal import PaymentProcessing from odoo.exceptions import AccessError, MissingError from odoo.http import request @@ -87,6 +88,7 @@ class PortalAccount(CustomerPortal): return self._show_report(model=invoice_sudo, report_type=report_type, report_ref='account.account_invoices', download=download) values = self._invoice_get_page_view_values(invoice_sudo, access_token, **kw) + PaymentProcessing.remove_payment_transaction(invoice_sudo.transaction_ids) return request.render("account.portal_invoice_page", values) # ------------------------------------------------------------ diff --git a/addons/account_payment/controllers/payment.py b/addons/account_payment/controllers/payment.py index 5c3f6f0ea31..c9ef4530f99 100644 --- a/addons/account_payment/controllers/payment.py +++ b/addons/account_payment/controllers/payment.py @@ -3,6 +3,7 @@ from odoo import http, _ from odoo.addons.portal.controllers.portal import _build_url_w_params +from odoo.addons.payment.controllers.portal import PaymentProcessing from odoo.http import request, route @@ -31,16 +32,17 @@ class PaymentPortal(http.Controller): save_token = False # we avoid to create a token for the public user vals = { 'acquirer_id': acquirer_id, + 'return_url': success_url, } if save_token: vals['type'] = 'form_save' transaction = invoice_sudo._create_payment_transaction(vals) + PaymentProcessing.add_payment_transaction(transaction) return transaction.render_invoice_button( invoice_sudo, - success_url, submit_txt=_('Pay & Confirm'), render_values={ 'type': 'form_save' if save_token else 'form', @@ -75,9 +77,11 @@ class PaymentPortal(http.Controller): vals = { 'payment_token_id': token.id, 'type': 'server2server', + 'return_url': success_url, } - invoice_sudo._create_payment_transaction(vals) + tx = invoice_sudo._create_payment_transaction(vals) + PaymentProcessing.add_payment_transaction(tx) params['success'] = 'pay_invoice' return request.redirect(_build_url_w_params(success_url, params)) diff --git a/addons/account_payment/models/payment.py b/addons/account_payment/models/payment.py index 5669d2b300d..7d20ec0d6b0 100644 --- a/addons/account_payment/models/payment.py +++ b/addons/account_payment/models/payment.py @@ -12,9 +12,8 @@ _logger = logging.getLogger(__name__) class PaymentTransaction(models.Model): _inherit = 'payment.transaction' - def render_invoice_button(self, invoice, return_url, submit_txt=None, render_values=None): + def render_invoice_button(self, invoice, submit_txt=None, render_values=None): values = { - 'return_url': return_url, 'partner_id': invoice.partner_id.id, } if render_values: diff --git a/addons/account_payment/views/account_portal_templates.xml b/addons/account_payment/views/account_portal_templates.xml index ffcbb7f99c6..0c7ddc0ce88 100644 --- a/addons/account_payment/views/account_portal_templates.xml +++ b/addons/account_payment/views/account_portal_templates.xml @@ -45,7 +45,7 @@