TIP: You can type at any time to perform a new search.
Account Mass Reconcile
account_mass_reconcile · OCA/account-reconcile
🛠 Migration considerations
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `SELECT id FROM account_mass_reconcile WHERE id = %s FOR UPDATE NOWAIT` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
Found by automated static analysis: patterns worth a look before/after upgrading this module to a newer Odoo version.
- 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 ID | Name | Model | Type | Status |
|---|---|---|---|---|
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_idMany2one → account.accountcheck_company=Truerequired=True args: 'account.account' -
company_idMany2one → res.companydefault=<expr>readonly=Truerequired=Truestring='Company' args: 'res.company' -
history_idsOne2many → mass.reconcile.historyreadonly=Truestring='History' args: 'mass.reconcile.history', 'mass_reconcile_id' -
last_historyMany2one → mass.reconcile.historycompute='_compute_last_history'readonly=Truestring='Last history' args: 'mass.reconcile.history' -
nameCharrequired=True -
reconcile_methodOne2many → account.mass.reconcile.methodstring='Method' args: 'account.mass.reconcile.method', 'task_id' -
unreconciled_countIntegercompute='_compute_total_unrec'string='Unreconciled Items'
-
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.modelLaunch 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_idMany2one → res.companyreadonly=Truerelated='task_id.company_id'store=Truestring='Company' args: 'res.company' -
nameSelectionrequired=Truestring='Type' args: '_selection_name' -
sequenceIntegerdefault=1help='The sequence field is used to order the reconcile method'required=True -
task_idMany2one → account.mass.reconcileondelete='cascade'required=Truestring='Task' args: 'account.mass.reconcile'
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_idMany2one → account.accountrequired=Truestring='Account' args: 'account.account' -
partner_idsMany2many → res.partnercomodel_name='res.partner'string='Restrict on partners'
-
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_idMany2one → res.companyreadonly=Truerelated='mass_reconcile_id.company_id'store=Truestring='Company' args: 'res.company' -
dateDatetimereadonly=Truerequired=Truestring='Run date' -
mass_reconcile_idMany2one → account.mass.reconcilereadonly=Truestring='Reconcile Profile' args: 'account.mass.reconcile' -
reconcile_idsMany2many → account.full.reconcilecomodel_name='account.full.reconcile'readonly=Truerelation='account_full_reconcile_history_rel'string='Full Reconciliations' -
reconcile_line_idsMany2many → account.move.linecomodel_name='account.move.line'compute='_compute_reconcile_line_ids'relation='account_move_line_history_rel'string='Reconciled Items'
-
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)
-
_filterTextstring='Accounting Entries Domain' -
account_lost_idMany2one → account.accountcheck_company=Truestring='Account Lost' args: 'account.account' -
account_profit_idMany2one → account.accountcheck_company=Truestring='Account Profit' args: 'account.account' -
company_idMany2one → res.companyargs: 'res.company' -
date_base_onSelectiondefault='newest'required=Truestring='Date of reconciliation' args: '_get_rec_base_date' -
journal_idMany2one → account.journalcheck_company=Truestring='Journal' args: 'account.journal' -
write_offFloatdefault=0.0 args: 'Write off allowed'
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_everyIntegerhelp='Leave zero to commit only at the end of the process.'string='How often to commit when performing automatic reconciliation.'
No public methods.
New fields (1)
-
reconciliation_commit_everyIntegerhelp='Leave zero to commit only at the end of the process.'readonly=Falserelated='company_id.reconciliation_commit_every'string='How often to commit when performing automatic reconciliation.'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…