Files
odoo-usability/sale_show_transaction/models/sale_order.py
2022-10-21 22:48:28 +02:00

31 lines
1.1 KiB
Python

# Copyright 2022 Akretion (https://www.akretion.com).
# @author Sébastien BEAU <sebastien.beau@akretion.com>
# 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',
'Online payment mode',
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