Repository
OCA/account-reconcile · module folder · Try on Runboat
Module version
1.0.0
Category
Finance
Folder size
2.23 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/account-reconcile
Last tracking update
2026-08-19 05:17:57
Authors
Camptocamp, Akretion, Odoo Community Association (OCA)
Maintainers
Camptocamp, Akretion, Odoo Community Association (OCA)
Committers
Florian da Costa, Weblate, OCA-git-bot, oca-ci, Karthik, Sodexis
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This is a shared work between Akretion and Camptocamp in order to
provide:

- Reconciliation facilities for big volume of transactions.
- Setup different profiles of reconciliation by account.
- Each profile can use many methods of reconciliation.
- This module is also a base to create others reconciliation methods
  which can plug in the profiles.
- A profile a reconciliation can be run manually or by a cron.
- Monitoring of reconciliation runs with an history which keep track of
  the reconciled Journal items.

2 simple reconciliation methods are integrated in this module, the
simple reconciliations works on 2 lines (1 debit / 1 credit) and do not
allow partial reconciliation, they also match on 1 key, partner or
Journal item name. There is also an option for 'most recent move line'
or 'oldest move line' which is used to choose the move to be reconciled
if more than one is found.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
account_mass_reconcile_form account.mass.reconcile.form account.mass.reconcile form New
account_mass_reconcile_method_tree account.mass.reconcile.method.list account.mass.reconcile.method list New
account_mass_reconcile_tree account.mass.reconcile.list account.mass.reconcile list New
mass_reconcile_history_form mass.reconcile.history.form mass.reconcile.history form New
mass_reconcile_history_tree mass.reconcile.history.list mass.reconcile.history list New
view_account_config account settings res.config.settings form Inherits account.res_config_settings_view_form
view_mass_reconcile_history_search mass.reconcile.history.search mass.reconcile.history search New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (14)

New fields (7)
  • account_id Many2one → account.account
    check_company=True required=True args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • history_ids One2many → mass.reconcile.history
    readonly=True string='History' args: 'mass.reconcile.history', 'mass_reconcile_id'
  • last_history Many2one → mass.reconcile.history
    compute='_compute_last_history' readonly=True string='Last history' args: 'mass.reconcile.history'
  • name Char
    required=True
  • reconcile_method One2many → account.mass.reconcile.method
    string='Method' args: 'account.mass.reconcile.method', 'task_id'
  • unreconciled_count Integer
    compute='_compute_total_unrec' string='Unreconciled Items'
Public methods (4)
  • last_history_reconcile(self)
    Get the last history record for this reconciliation profile and return the action which opens move lines reconciled
  • open_unreconcile(self)
    Open the view of move line with the unreconciled move lines
  • run_reconcile(self)
  • run_scheduler(self, run_all=None)
    @api.model
    Launch the reconcile with the oldest run This function is mostly here to be used with cron task :param run_all: if set it will ignore lookup and launch all reconciliation :returns: True in case of success or raises an exception

New fields (4)
  • company_id Many2one → res.company
    readonly=True related='task_id.company_id' store=True string='Company' args: 'res.company'
  • name Selection
    required=True string='Type' args: '_selection_name'
  • sequence Integer
    default=1 help='The sequence field is used to order the reconcile method' required=True
  • task_id Many2one → account.mass.reconcile
    ondelete='cascade' required=True string='Task' args: 'account.mass.reconcile'
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 (2)
  • account_id Many2one → account.account
    required=True string='Account' args: 'account.account'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Restrict on partners'
Public methods (2)
  • automatic_reconcile(self)
    Reconciliation method called from the view. :return: list of reconciled ids
  • create_write_off(self, lines, amount, amount_curr, same_curr)

New fields (5)
  • company_id Many2one → res.company
    readonly=True related='mass_reconcile_id.company_id' store=True string='Company' args: 'res.company'
  • date Datetime
    readonly=True required=True string='Run date'
  • mass_reconcile_id Many2one → account.mass.reconcile
    readonly=True string='Reconcile Profile' args: 'account.mass.reconcile'
  • reconcile_ids Many2many → account.full.reconcile
    comodel_name='account.full.reconcile' readonly=True relation='account_full_reconcile_history_rel' string='Full Reconciliations'
  • reconcile_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_reconcile_line_ids' relation='account_move_line_history_rel' string='Reconciled Items'
Public methods (1)
  • open_reconcile(self)
    For an history record, open the view of move line with the reconciled move lines :param history_ids: id of the record as int or long Accept a list with 1 id too to be used from the client.

New fields (7)
  • _filter Text
    string='Accounting Entries Domain'
  • account_lost_id Many2one → account.account
    check_company=True string='Account Lost' args: 'account.account'
  • account_profit_id Many2one → account.account
    check_company=True string='Account Profit' args: 'account.account'
  • company_id Many2one → res.company
    args: 'res.company'
  • date_base_on Selection
    default='newest' required=True string='Date of reconciliation' args: '_get_rec_base_date'
  • journal_id Many2one → account.journal
    check_company=True string='Journal' args: 'account.journal'
  • write_off Float
    default=0.0 args: 'Write off allowed'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • rec_auto_lines_simple(self, lines)

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 (1)
  • reconciliation_commit_every Integer
    help='Leave zero to commit only at the end of the process.' string='How often to commit when performing automatic reconciliation.'
Public methods (0)

No public methods.

New fields (1)
  • reconciliation_commit_every Integer
    help='Leave zero to commit only at the end of the process.' readonly=False related='company_id.reconciliation_commit_every' string='How often to commit when performing automatic reconciliation.'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…