2
0
account-financial-tools/account_asset_batch_compute/models/account_asset_asset.py
2023-05-29 08:23:29 +02:00

49 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2016 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import api, models, _
import logging
_logger = logging.getLogger(__name__)
try:
from openerp.addons.connector.session import ConnectorSession
from openerp.addons.connector.queue.job import job
except ImportError:
_logger.debug('Can not `import connector`.')
def empty_decorator(func):
return func
job = empty_decorator
class AccountAssetAsset(models.Model):
_inherit = 'account.asset.asset'
@api.multi
def _compute_entries(self, period_id, check_triggers=False):
if self.env.context.get('asset_batch_processing'):
for record in self:
session = ConnectorSession.from_env(self.env)
description =\
_("Creating move for asset with id %s on period %s") %\
(record.id, period_id)
async_compute_entries.delay(
session, record.id, period_id,
check_triggers=check_triggers, description=description)
return []
else:
self.env.context = self.env.context.copy()
return super(AccountAssetAsset, self)._compute_entries(
period_id, check_triggers=check_triggers)
@job(default_channel='root.account_asset_batch_compute')
def async_compute_entries(session, asset_id, period_id,
check_triggers=False):
asset = session.env['account.asset.asset'].browse([asset_id])[0]
asset.with_context(asset_batch_processing=False)\
._compute_entries(period_id, check_triggers=check_triggers)