Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Invoicing

Entity: account.journal

Compute Method: _compute_has_entries

Inputs Method Outputs
  • id
sql_query = SQL(
            """
                       SELECT j.id,
                              has_posted_entries.val,
                              has_entries.val
                         FROM account_journal j
            LEFT JOIN LATERAL (
                                  SELECT bool(m.id) as val
                                    FROM account_move m
                                   WHERE m.journal_id = j.id
                                     AND m.state = 'posted'
                                   LIMIT 1
                              ) AS has_posted_entries ON true
            LEFT JOIN LATERAL (
                                  SELECT bool(m.id) as val
                                    FROM account_move m
                                   WHERE m.journal_id = j.id
                                   LIMIT 1
                              ) AS has_entries ON true
                        WHERE j.id in %(journal_ids)s
            """,
            journal_ids=tuple(self.ids),
        )
self.env.cr.execute(sql_query)
res = {journal_id: (has_posted, has_entries) for journal_id, has_posted, has_entries in self.env.cr.fetchall()}
for journal in self:
            r = res.get(journal.id, (False, False))
            journal.has_posted_entries = bool(r[0])
            journal.has_entries = bool(r[1])

Back to entity