mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
1. Use new web assets management 2. Set company currency in unit tests 3. Refactor payment transaction creation
31 lines
1.3 KiB
Python
31 lines
1.3 KiB
Python
from odoo import models, _
|
|
import logging
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class PaymentTransaction(models.Model):
|
|
_inherit = 'payment.transaction'
|
|
|
|
# Override to confirm payments totaling the amount_due_today
|
|
def _check_amount_and_confirm_order(self):
|
|
self.ensure_one()
|
|
for order in self.sale_order_ids.filtered(lambda so: so.state in ('draft', 'sent')):
|
|
amount = order.amount_due_today
|
|
if order.currency_id.compare_amounts(self.amount, amount) == 0:
|
|
order.with_context(send_email=True).action_confirm()
|
|
else:
|
|
_logger.warning(
|
|
'<%s> transaction AMOUNT MISMATCH for order %s (ID %s): expected %r, got %r',
|
|
self.acquirer_id.provider, order.name, order.id,
|
|
amount, self.amount,
|
|
)
|
|
order.message_post(
|
|
subject=_("Amount Mismatch (%s)") % self.acquirer_id.provider,
|
|
body=_(
|
|
"The order was not confirmed despite response from the acquirer (%s): order total is %r but acquirer replied with %r.") % (
|
|
self.acquirer_id.provider,
|
|
amount,
|
|
self.amount,
|
|
)
|
|
)
|