-
analytic_account_id
-
analytic_account_id.id
|
query = self.env['account.move.line']._search([('move_id.move_type', 'in', ['out_invoice', 'out_refund'])])
query.add_where(
SQL(
"%s && %s",
[str(project.analytic_account_id.id) for project in self],
self.env['account.move.line']._query_analytic_accounts(),
)
)
query.order = None
query_string, query_param = query.select(
r"""DISTINCT move_id, (regexp_matches(jsonb_object_keys(account_move_line.analytic_distribution), '\d+', 'g'))[1]::int as account_id"""
)
query_string = f"""
SELECT account_id, count(move_id) FROM
({query_string}) distribution
GROUP BY account_id
"""
self._cr.execute(query_string, query_param)
data = {res['account_id']: res['count'] for res in self._cr.dictfetchall()}
for project in self:
project.invoice_count = data.get(project.analytic_account_id.id, 0)
|
|