Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 149 additions & 0 deletions mis_report_account_coverage_check/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=================================
MIS Report Account Coverage Check
=================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:d15b6b79010e83433bb3d45bca81fecc88cd9c794b0dc69f54db09a7b5b3784e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmis--builder-lightgray.png?logo=github
:target: https://github.com/OCA/mis-builder/tree/15.0/mis_report_account_coverage_check
:alt: OCA/mis-builder
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/mis-builder-15-0/mis-builder-15-0-mis_report_account_coverage_check
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/mis-builder&target_branch=15.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

A MIS Builder report (e.g. a balance sheet) only shows what its KPI
expressions explicitly reference. If an account within the report's range
receives postings during the period but no KPI expression covers it, the
report silently omits it -- typically the symptom is a balance sheet that
does not balance, with no obvious way to find out why.

This module adds a wizard that, given a MIS report instance and an account
code range, finds accounts in that range which have journal entries posted
during the report's period(s) but are not referenced by any KPI expression
of the report (including subreport KPIs). Each uncovered account is shown
with its period debit/credit/balance, with a direct drill-down to the
underlying journal items.

**Table of contents**

.. contents::
:local:

Configuration
=============

No configuration is needed. The wizard is available to users in the
``Accounting / Account User`` group.

Usage
=====

#. Open a MIS Report Instance (*Accounting > Reporting > MIS Reporting >
MIS Reports*) and click the *Check Account Coverage* button, or go to
*Accounting > Reporting > MIS Reporting > Account Coverage Check* and
pick the report instance manually.
#. Enter the account code range to check, e.g. ``100000`` to ``599999``.
#. Optionally restrict the periods to check; leave empty to check every
period column defined on the report instance.
#. Click *Check*. Any account in the range that has postings in a period
but is not referenced by any KPI expression of the report is listed with
its debit, credit and balance for that period.
#. Click *View Journal Items* on a line to open the underlying journal
entries causing that account to appear.

.. note::
The account range is compared as text (``account.account.code``), so it
is only reliable when the codes being compared have the same number of
digits (as is normally the case, e.g. 6-digit Spanish PGC codes). A range
like ``7`` to ``12`` would not behave as expected since ``"7" <= "12"``
is false as a string comparison.

.. note::
Coverage means "referenced by *any* KPI expression of the report",
including aggregate/rollup KPIs (e.g. a "Result for the year" line that
nets a whole P&L range like ``6%,7%`` into a single equity figure). That
is intentional: if an account is correctly summed into such a KPI it does
not put the report out of balance, so it should not be reported as
uncovered even though it has no individual detail line of its own.

.. note::
Without a chart's usual closing/opening entries, a balance-sheet
account's balance keeps accumulating from postings dated before the
period being checked. To match how mis_builder itself computes a
balance-sheet KPI ("ending balance" mode), an uncovered account's
debit/credit/balance are summed since the beginning of time for
balance-sheet accounts (asset/liability/equity), and since the start of
the fiscal year only for P&L accounts (income/expense), which do reset
every year. So a posting from a previous period can still make an
account show up as uncovered today.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/mis-builder/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/mis-builder/issues/new?body=module:%20mis_report_account_coverage_check%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Tecnativa

Contributors
~~~~~~~~~~~~

* `Tecnativa <https://www.tecnativa.com>`_

* Carlos Dauden

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-carlosdauden| image:: https://github.com/carlosdauden.png?size=40px
:target: https://github.com/carlosdauden
:alt: carlosdauden

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-carlosdauden|

This module is part of the `OCA/mis-builder <https://github.com/OCA/mis-builder/tree/15.0/mis_report_account_coverage_check>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions mis_report_account_coverage_check/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import wizard
18 changes: 18 additions & 0 deletions mis_report_account_coverage_check/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2026 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "MIS Report Account Coverage Check",
"version": "15.0.1.0.0",
"category": "Accounting",
"author": "Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/mis-builder",
"license": "AGPL-3",
"depends": ["account", "mis_builder"],
"data": [
"security/ir.model.access.csv",
"wizard/mis_report_account_coverage_check_views.xml",
"views/mis_report_instance_views.xml",
],
"installable": True,
"maintainers": ["carlosdauden"],
}
209 changes: 209 additions & 0 deletions mis_report_account_coverage_check/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mis_report_account_coverage_check
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-24 15:06+0000\n"
"PO-Revision-Date: 2026-07-24 15:06+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__account_id
msgid "Account"
msgstr "Cuenta"

#. module: mis_report_account_coverage_check
#: model:ir.ui.menu,name:mis_report_account_coverage_check.mis_report_account_coverage_check_menu
msgid "Account Coverage Check"
msgstr "Comprobación de cobertura de cuentas"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__account_name
msgid "Account Name"
msgstr "Nombre de la cuenta"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__account_code_from
msgid "Account code from"
msgstr "Código de cuenta desde"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__account_code_to
msgid "Account code to"
msgstr "Código de cuenta hasta"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__balance
msgid "Balance"
msgstr "Saldo"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__check_id
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "Check"
msgstr "Comprobar"

#. module: mis_report_account_coverage_check
#: model:ir.actions.act_window,name:mis_report_account_coverage_check.action_mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_instance_view_form
msgid "Check Account Coverage"
msgstr "Comprobar cobertura de cuentas"

#. module: mis_report_account_coverage_check
#: model:ir.model,name:mis_report_account_coverage_check.model_mis_report_account_coverage_check
msgid "Check accounts used in postings but not covered by a MIS report"
msgstr ""
"Comprueba las cuentas usadas en apuntes pero no cubiertas por un informe MIS"

#. module: mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "Close"
msgstr "Cerrar"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__account_code
msgid "Code"
msgstr "Código"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields.selection,name:mis_report_account_coverage_check.selection__mis_report_account_coverage_check__state__init
msgid "Configuration"
msgstr "Configuración"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__create_uid
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__create_date
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__create_date
msgid "Created on"
msgstr "Creado el"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__credit
msgid "Credit"
msgstr "Haber"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__currency_id
msgid "Currency"
msgstr "Moneda"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__debit
msgid "Debit"
msgstr "Debe"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__display_name
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__display_name
msgid "Display Name"
msgstr "Nombre mostrado"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__id
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__id
msgid "ID"
msgstr "ID"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__move_line_count
msgid "Journal Items"
msgstr "Apuntes contables"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check____last_update
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line____last_update
msgid "Last Modified on"
msgstr "Última modificación en"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__write_uid
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__write_date
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__write_date
msgid "Last Updated on"
msgstr "Última actualización el"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,help:mis_report_account_coverage_check.field_mis_report_account_coverage_check__period_ids
msgid "Leave empty to check all periods of the instance."
msgstr "Déjelo vacío para comprobar todos los periodos de la instancia."

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__report_instance_id
msgid "MIS Report Instance"
msgstr "Instancia de informe MIS"

#. module: mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "Modify criteria"
msgstr "Modificar criterios"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check_line__period_id
msgid "Period"
msgstr "Periodo"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__period_ids
msgid "Periods to check"
msgstr "Periodos a comprobar"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields.selection,name:mis_report_account_coverage_check.selection__mis_report_account_coverage_check__state__done
msgid "Results"
msgstr "Resultados"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__state
msgid "Status"
msgstr "Estado"

#. module: mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "Total Balance"
msgstr "Saldo total"

#. module: mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "Total Credit"
msgstr "Total haber"

#. module: mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "Total Debit"
msgstr "Total debe"

#. module: mis_report_account_coverage_check
#: model:ir.model,name:mis_report_account_coverage_check.model_mis_report_account_coverage_check_line
msgid "Uncovered account found during a MIS report coverage check"
msgstr ""
"Cuenta no cubierta encontrada durante una comprobación de cobertura de un "
"informe MIS"

#. module: mis_report_account_coverage_check
#: model:ir.model.fields,field_description:mis_report_account_coverage_check.field_mis_report_account_coverage_check__line_ids
msgid "Uncovered accounts"
msgstr "Cuentas no cubiertas"

#. module: mis_report_account_coverage_check
#: model_terms:ir.ui.view,arch_db:mis_report_account_coverage_check.mis_report_account_coverage_check_view_form
msgid "View Journal Items"
msgstr "Ver apuntes contables"
Loading
Loading