Repository
OCA/account-financial-tools · module folder · Try on Runboat
Module version
1.1.5
Category
Accounting
Folder size
2.62 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/account-financial-tools
Last tracking update
2026-08-07 09:06:24
Authors
Odoo Community Association (OCA), Tecnativa, BCIM, Okia
Maintainers
Odoo Community Association (OCA), Tecnativa, BCIM, Okia
Committers
Pedro M. Baeza, Jairo Llopis, Weblate, OCA-git-bot, Raf Ven, oca-ci, Andrii9090-tecnativa
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This is a pretty useful tool to update Odoo installations after tax
reforms on the official charts of accounts, or to apply fixes performed
on the chart template.

The wizard:

- Allows the user to compare a chart and a template showing differences
  on accounts, taxes, tax codes and fiscal positions.
- It may create the new account, taxes, tax codes and fiscal positions
  detected on the template.
- It can also update (overwrite) the accounts, taxes, tax codes and
  fiscal positions that got modified on the template.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form Open Account Chart Update Wizard 2 res.config.settings form Inherits account.res_config_settings_view_form
view_update_multi_chart Update Chart of Accounts from a Chart Template wizard.update.charts.accounts form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (14)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • matching_value Selection
    selection='_get_matching_selection'
  • sequence Integer
    default=1 required=True
  • update_chart_wizard_id Many2one → wizard.update.charts.accounts
    comodel_name='wizard.update.charts.accounts' ondelete='cascade' required=True string='Update chart wizard'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (38)
  • account_field_ids Many2many → ir.model.fields
    comodel_name='ir.model.fields' default=<expr> domain=<expr> relation='wizard_update_charts_account_fields_rel' string='Account fields'
  • account_group_field_ids Many2many → ir.model.fields
    comodel_name='ir.model.fields' default=<expr> domain=<expr> relation='wizard_update_charts_account_group_fields_rel' string='Account groups fields'
  • account_group_ids One2many → wizard.update.charts.accounts.account.group
    comodel_name='wizard.update.charts.accounts.account.group' inverse_name='update_chart_wizard_id' string='Account Groups'
  • account_group_matching_ids One2many → wizard.account.group.matching
    comodel_name='wizard.account.group.matching' default=<expr> inverse_name='update_chart_wizard_id' string='Account groups matching'
  • account_ids One2many → wizard.update.charts.accounts.account
    comodel_name='wizard.update.charts.accounts.account' inverse_name='update_chart_wizard_id' string='Accounts'
  • account_matching_ids One2many → wizard.account.matching
    comodel_name='wizard.account.matching' default=<expr> inverse_name='update_chart_wizard_id' string='Accounts matching'
  • chart_template Selection
    required=True selection='_chart_template_selection'
  • code_digits Integer
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=True string='Company'
  • deleted_taxes Integer
    compute='_compute_deleted_taxes_count' string='Deactivated taxes'
  • fiscal_position_ids One2many → wizard.update.charts.accounts.fiscal.position
    comodel_name='wizard.update.charts.accounts.fiscal.position' inverse_name='update_chart_wizard_id' string='Fiscal positions'
  • fp_field_ids Many2many → ir.model.fields
    comodel_name='ir.model.fields' default=<expr> domain=<expr> relation='wizard_update_charts_fp_fields_rel' string='Fiscal position fields'
  • fp_matching_ids One2many → wizard.fp.matching
    comodel_name='wizard.fp.matching' default=<expr> inverse_name='update_chart_wizard_id' string='Fiscal positions matching'
  • log Text
    readonly=True string='Messages and Errors'
  • new_account_groups Integer
    compute='_compute_new_account_groups_count'
  • new_accounts Integer
    compute='_compute_new_accounts_count'
  • new_fps Integer
    compute='_compute_new_fps_count' string='New fiscal positions'
  • new_tax_groups Integer
    compute='_compute_new_tax_group_count'
  • new_taxes Integer
    compute='_compute_new_taxes_count'
  • rejected_new_account_number Integer
  • rejected_updated_account_number Integer
  • state Selection
    default='init' readonly=True selection=[('init', 'Configuration'), ('ready', 'Select records to update'), ('done', 'Wizard completed')] string='Status'
  • tax_field_ids Many2many → ir.model.fields
    comodel_name='ir.model.fields' default=<expr> domain=<expr> relation='wizard_update_charts_tax_fields_rel' string='Tax fields'
  • tax_group_field_ids Many2many → ir.model.fields
    comodel_name='ir.model.fields' default=<expr> domain=<expr> relation='wizard_update_charts_tax_group_fields_rel' string='Tax group fields'
  • tax_group_ids One2many → wizard.update.charts.accounts.tax.group
    comodel_name='wizard.update.charts.accounts.tax.group' inverse_name='update_chart_wizard_id' string='Taxe Groups'
  • tax_group_matching_ids One2many → wizard.tax.group.matching
    comodel_name='wizard.tax.group.matching' default=<expr> inverse_name='update_chart_wizard_id' string='Tax goups matching'
  • tax_ids One2many → wizard.update.charts.accounts.tax
    comodel_name='wizard.update.charts.accounts.tax' inverse_name='update_chart_wizard_id' string='Taxes'
  • tax_matching_ids One2many → wizard.tax.matching
    comodel_name='wizard.tax.matching' default=<expr> inverse_name='update_chart_wizard_id' string='Taxes matching'
  • update_account Boolean
    default=True help='Existing accounts are updated. Accounts are searched by code.' string='Update accounts'
  • update_account_group Boolean
    default=True help='Existing account groups are updated. Account groups are searched by prefix_code_start.' string='Update account groups'
  • update_fiscal_position Boolean
    default=True help='Existing fiscal positions are updated. Fiscal positions are searched by name.' string='Update fiscal positions'
  • update_tax Boolean
    default=True help='Existing taxes are updated. Taxes are searched by name.' string='Update taxes'
  • update_tax_group Boolean
    default=True help='Existing tax groups are updated. Tax group are searched by name.' string='Update tax groups'
  • updated_account_groups Integer
    compute='_compute_updated_account_groups_count'
  • updated_accounts Integer
    compute='_compute_updated_accounts_count'
  • updated_fps Integer
    compute='_compute_updated_fps_count' string='Updated fiscal positions'
  • updated_tax_groups Integer
    compute='_compute_updated_tax_groups_count'
  • updated_taxes Integer
    compute='_compute_updated_taxes_count'
Public methods (11)
  • action_find_records(self)
    Searchs for records to update/create and shows them.
  • action_init(self)
    Initial action that sets the initial state.
  • action_update_records(self)
    Action that creates/updates/deletes the selected elements.
  • diff_fields(self, record_values, real)
    @api.model
    Get fields that are different in record values and real records. :param odoo.models.Model record_values: Record values values. :param odoo.models.Model real: Real record. :return dict: Fields that are different in both records, and the expected value.
  • diff_notes(self, record_values, real)
    @api.model
    Get notes for humans on why this record is going to be updated. Shows each differing field with a concise "actual → expected" detail so the user can audit the proposed change before accepting it.
  • fields_to_ignore(self, name)
    @api.model@tools.ormcache('name')
    Get fields that will not be used when checking differences. :param str name: The name of the template model. :return set: Fields to ignore in diff.
  • get_default_unchecked_fields(self, name)
    @api.model
    Get fields that should be unchecked by default for a given model. :param str name: The name of the template model. :return set: Fields to uncheck by default.
  • get_uncheck_fields_domain(self, name)
  • missing_xml_id(self, record, xml_id)
  • padded_code(self, code)
    @api.model@tools.ormcache('code')
    Return a right-zero-padded code with the chosen digits. Similar to what is done in the _pre_load_data() method of chart.template
  • recreate_xml_id(self, record, xml_id)
    Recreate the xml_id if it is different than expected, otherwise chart.template won't do it correctly.

New fields (5)
  • notes Text
    readonly=True
  • type Selection
    readonly=False selection=[('new', 'New account'), ('updated', 'Updated account')]
  • update_account_id Many2one → account.account
    comodel_name='account.account' ondelete='set null' required=False string='Account to update'
  • update_chart_wizard_id Many2one → wizard.update.charts.accounts
    comodel_name='wizard.update.charts.accounts' ondelete='cascade' required=True string='Update chart wizard'
  • xml_id Char
Public methods (0)

No public methods.

New fields (5)
  • notes Text
    readonly=True
  • type Selection
    readonly=False selection=[('new', 'New account group'), ('updated', 'Updated accoung group')]
  • update_account_group_id Many2one → account.group
    comodel_name='account.group' ondelete='set null' required=False string='Account group to update'
  • update_chart_wizard_id Many2one → wizard.update.charts.accounts
    comodel_name='wizard.update.charts.accounts' ondelete='cascade' required=True string='Update chart wizard'
  • xml_id Char
Public methods (0)

No public methods.

New fields (5)
  • notes Text
    readonly=True
  • type Selection
    readonly=False selection=[('new', 'New fiscal position'), ('updated', 'Updated fiscal position')]
  • update_chart_wizard_id Many2one → wizard.update.charts.accounts
    comodel_name='wizard.update.charts.accounts' ondelete='cascade' required=True string='Update chart wizard'
  • update_fiscal_position_id Many2one → account.fiscal.position
    comodel_name='account.fiscal.position' ondelete='set null' required=False string='Fiscal position to update'
  • xml_id Char
Public methods (0)

No public methods.

New fields (6)
  • notes Text
    readonly=True
  • type Selection
    readonly=False selection=[('new', 'New tax'), ('updated', 'Updated tax'), ('deleted', 'Tax to deactivate')]
  • type_tax_use Selection
    readonly=True selection='_get_account_tax_type_tax_uses'
  • update_chart_wizard_id Many2one → wizard.update.charts.accounts
    comodel_name='wizard.update.charts.accounts' ondelete='cascade' required=True string='Update chart wizard'
  • update_tax_id Many2one → account.tax
    comodel_name='account.tax' ondelete='set null' required=False string='Tax to update'
  • xml_id Char
Public methods (0)

No public methods.

New fields (5)
  • notes Text
    readonly=True
  • type Selection
    readonly=False selection=[('new', 'New tax group'), ('updated', 'Updated tax group')]
  • update_chart_wizard_id Many2one → wizard.update.charts.accounts
    comodel_name='wizard.update.charts.accounts' ondelete='cascade' required=True string='Update chart wizard'
  • update_tax_group_id Many2one → account.tax.group
    comodel_name='account.tax.group' ondelete='set null' required=False string='Tax group to update'
  • xml_id Char
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…