[IMP] iap: add automatic deletion of accounts without token
Since the accounts without token are useless and could create errors afterwards, we should delete them and automatically create a new one with a new token in case force_create is set to True. closes odoo/odoo#99155 X-original-commit: 637df81a22bf4adbb685f78a59072b110c30a546 Signed-off-by: Florian Daloze (fda) <fda@odoo.com> Signed-off-by: Alex Thuyls (alt) <alt@odoo.com>
This commit is contained in:
@@ -31,6 +31,17 @@ class IapAccount(models.Model):
|
||||
('company_ids', '=', False)
|
||||
]
|
||||
accounts = self.search(domain, order='id desc')
|
||||
accounts_without_token = accounts.filtered(lambda acc: not acc.account_token)
|
||||
if accounts_without_token:
|
||||
with self.pool.cursor() as cr:
|
||||
# In case of a further error that will rollback the database, we should
|
||||
# use a different SQL cursor to avoid undo the accounts deletion.
|
||||
|
||||
# Flush the pending operations to avoid a deadlock.
|
||||
self.flush()
|
||||
IapAccount = self.with_env(self.env(cr=cr))
|
||||
IapAccount.search(domain + [('account_token', '=', False)]).unlink()
|
||||
accounts = accounts - accounts_without_token
|
||||
if not accounts:
|
||||
with self.pool.cursor() as cr:
|
||||
# Since the account did not exist yet, we will encounter a NoCreditError,
|
||||
|
||||
Reference in New Issue
Block a user