From 6fc061a96dd36c6ea3f491786fc42f0296df6fa1 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 6 Sep 2018 14:25:23 +0200 Subject: [PATCH] [FIX] payment: force company when `post`ing payments --- addons/payment/models/payment_acquirer.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py index 3d11e31db0a..717dffaa50c 100644 --- a/addons/payment/models/payment_acquirer.py +++ b/addons/payment/models/payment_acquirer.py @@ -1,4 +1,5 @@ # coding: utf-8 +from collections import defaultdict import hashlib import hmac import logging @@ -721,19 +722,21 @@ class PaymentTransaction(models.Model): invoices.action_invoice_open() # Create & Post the payments. - payments = self.env['account.payment'] + payments = defaultdict(lambda: self.env['account.payment']) for trans in self: if trans.payment_id: payments += trans.payment_id continue payment_vals = trans._prepare_account_payment_vals() - payment = payments.create(payment_vals) - payments += payment + payment = self.env['account.payment'].create(payment_vals) + payments[trans.acquirer_id.company_id.id] += payment # Track the payment to make a one2one. trans.payment_id = payment - payments.post() + + for company in payments: + payments[company].with_context(force_company=company, company_id=company).post() self.write({'state': 'done', 'date': datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT)}) self._log_payment_transaction_received()