From 688a07fc5e6b0fe502fea3ac56dac3b1d3e30e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Fri, 21 Oct 2022 16:30:39 +0200 Subject: [PATCH 1/2] add sale_show_transaction, that make transaction really visible on sale order --- sale_show_transaction/__init__.py | 1 + sale_show_transaction/__manifest__.py | 25 ++++++++++ sale_show_transaction/models/__init__.py | 1 + sale_show_transaction/models/sale_order.py | 30 ++++++++++++ .../views/sale_order_view.xml | 46 +++++++++++++++++++ 5 files changed, 103 insertions(+) create mode 100644 sale_show_transaction/__init__.py create mode 100644 sale_show_transaction/__manifest__.py create mode 100644 sale_show_transaction/models/__init__.py create mode 100644 sale_show_transaction/models/sale_order.py create mode 100644 sale_show_transaction/views/sale_order_view.xml diff --git a/sale_show_transaction/__init__.py b/sale_show_transaction/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/sale_show_transaction/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_show_transaction/__manifest__.py b/sale_show_transaction/__manifest__.py new file mode 100644 index 0000000..418d091 --- /dev/null +++ b/sale_show_transaction/__manifest__.py @@ -0,0 +1,25 @@ +# Copyright 2022 Akretion (https://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Sale Show Transaction", + "summary": "Make transaction hyper visible on sale order", + "version": "14.0.1.0.0", + "development_status": "Alpha", + "category": "Uncategorized", + "website": "www.akretion.com", + "author": " Akretion", + "license": "AGPL-3", + "external_dependencies": { + "python": [], + "bin": [], + }, + "depends": [ + "sale", + ], + "data": [ + "views/sale_order_view.xml", + ], + "demo": [ + ], +} diff --git a/sale_show_transaction/models/__init__.py b/sale_show_transaction/models/__init__.py new file mode 100644 index 0000000..6aacb75 --- /dev/null +++ b/sale_show_transaction/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order diff --git a/sale_show_transaction/models/sale_order.py b/sale_show_transaction/models/sale_order.py new file mode 100644 index 0000000..a16c861 --- /dev/null +++ b/sale_show_transaction/models/sale_order.py @@ -0,0 +1,30 @@ +# Copyright 2022 Akretion (https://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import _, api, fields, models + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + main_acquirer_id = fields.Many2one( + 'payment.acquirer', + 'Acquirer', + compute="_compute_main_acquirer", + store=True) + + @api.depends("transaction_ids.state") + def _compute_main_acquirer(self): + for record in self: + if len(record.transaction_ids.acquirer_id) > 1: + for state in ["done", "authorized", "pending", "draft", "cancel", "error"]: + transaction = record.transaction_ids.filtered(lambda s: s.state == state) + if len(transaction.acquirer_id) > 1: + transaction.sorted("amount") + if transaction: + record.main_acquirer_id = transaction[0].acquirer_id + break + else: + record.main_acquirer_id = record.transaction_ids.acquirer_id + diff --git a/sale_show_transaction/views/sale_order_view.xml b/sale_show_transaction/views/sale_order_view.xml new file mode 100644 index 0000000..86bf0c1 --- /dev/null +++ b/sale_show_transaction/views/sale_order_view.xml @@ -0,0 +1,46 @@ + + + + + sale.order + + + + + + + + + + + + + + + + + + + sale.order + + + + + + + + + + sale.order + + + + + + + + + From d382aea22faa0984a9427b8a8f4497657921c7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Fri, 21 Oct 2022 22:48:05 +0200 Subject: [PATCH 2/2] sale_show_transaction: better naming --- sale_show_transaction/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sale_show_transaction/models/sale_order.py b/sale_show_transaction/models/sale_order.py index a16c861..7de4127 100644 --- a/sale_show_transaction/models/sale_order.py +++ b/sale_show_transaction/models/sale_order.py @@ -10,7 +10,7 @@ class SaleOrder(models.Model): main_acquirer_id = fields.Many2one( 'payment.acquirer', - 'Acquirer', + 'Online payment mode', compute="_compute_main_acquirer", store=True)