TIP: You can type at any time to perform a new search.
Account Financial Reports
account_financial_report · OCA/account-financial-reporting
- Repository
- OCA/account-financial-reporting · module folder · Try on Runboat
- Module version
- Category
- Reporting
- Folder size
- 2.85 MB
- License
- AGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://github.com/OCA/account-financial-reporting
- Last tracking update
- 2026-08-20 23:28:06
- Authors
- Camptocamp, Odoo Community Association (OCA), initOS GmbH, redCOR AG, ForgeFlow
- Maintainers
- Camptocamp, Odoo Community Association (OCA), initOS GmbH, redCOR AG, ForgeFlow
- Committers
- Pedro M. Baeza, Víctor Martínez, micheledic, Weblate, Michele Di Croce, OCA-git-bot, oca-ci, Andrii9090-tecnativa, adrip-s73, eduezerouali-tecnativa, maciej-wichowski, Reyes4711-S73, Asta
- Odoo dependencies
- Python dependencies
- xlrd, xlsxwriter
- System dependencies
- None
- Required by
- None
- Description
This module adds a set of financial reports. They are accessible under Invoicing / Reporting / OCA accounting reports. - General ledger - Trial Balance - Open Items - Aged Partner Balance - VAT Report - Journal Ledger Currently General ledger, Trial Balance and Open Items are fully compatible with a foreign currency set up in account in order to display balances. Moreover, any foreign currency used in account move lines is properly shown. In case that in an account has not been configured a second currency foreign currency balances are not available. Invoicing / Settings / Invoicing / OCA Aged Report Configuration you will be able to set dynamic intervals that will appear on the Aged Partner Balance. For further information, check CONFIGURE.rst
Code Analysis ⓘ
Views touched (56)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_financial_report.html_container |
account_financial_report.html_container | ir.ui.view | qweb | New |
account_financial_report.internal_layout |
account_financial_report.internal_layout | ir.ui.view | qweb | New |
account_financial_report.report_general_ledger_ending_cumul |
account_financial_report.report_general_ledger_ending_cumul | ir.ui.view | qweb | New |
account_financial_report.report_general_ledger_filters |
account_financial_report.report_general_ledger_filters | ir.ui.view | qweb | New |
account_financial_report.report_general_ledger_lines |
account_financial_report.report_general_ledger_lines | ir.ui.view | qweb | New |
account_financial_report.report_journal_all |
account_financial_report.report_journal_all | ir.ui.view | qweb | New |
account_financial_report.report_journal_all_taxes |
account_financial_report.report_journal_all_taxes | ir.ui.view | qweb | New |
account_financial_report.report_journal_ledger_journal |
account_financial_report.report_journal_ledger_journal | ir.ui.view | qweb | New |
account_financial_report.report_journal_ledger_journal_first_line |
account_financial_report.report_journal_ledger_journal_first_line | ir.ui.view | qweb | New |
account_financial_report.report_journal_ledger_journal_table_header |
account_financial_report.report_journal_ledger_journal_table_header | ir.ui.view | qweb | New |
account_financial_report.report_journal_ledger_journal_taxes |
account_financial_report.report_journal_ledger_journal_taxes | ir.ui.view | qweb | New |
account_financial_report.report_journal_move |
account_financial_report.report_journal_move | ir.ui.view | qweb | New |
account_financial_report.report_journal_move_line |
account_financial_report.report_journal_move_line | ir.ui.view | qweb | New |
account_financial_report.report_open_items_base |
account_financial_report.report_open_items_base | ir.ui.view | qweb | New |
account_financial_report.report_open_items_ending_cumul |
account_financial_report.report_open_items_ending_cumul | ir.ui.view | qweb | New |
account_financial_report.report_open_items_filters |
account_financial_report.report_open_items_filters | ir.ui.view | qweb | New |
account_financial_report.report_open_items_lines |
account_financial_report.report_open_items_lines | ir.ui.view | qweb | New |
account_financial_report.report_open_items_lines_header |
account_financial_report.report_open_items_lines_header | ir.ui.view | qweb | New |
account_financial_report.report_trial_balance_account_footer |
account_financial_report.report_trial_balance_account_footer | ir.ui.view | qweb | New |
account_financial_report.report_trial_balance_filters |
account_financial_report.report_trial_balance_filters | ir.ui.view | qweb | New |
account_financial_report.report_trial_balance_line |
account_financial_report.report_trial_balance_line | ir.ui.view | qweb | New |
account_financial_report.report_trial_balance_lines_header |
account_financial_report.report_trial_balance_lines_header | ir.ui.view | qweb | New |
account_financial_report.report_vat_report_base |
account_financial_report.report_vat_report_base | ir.ui.view | qweb | New |
account_financial_report.report_vat_report_filters |
account_financial_report.report_vat_report_filters | ir.ui.view | qweb | New |
aged_partner_balance |
aged_partner_balance | ir.ui.view | qweb | New |
aged_partner_balance_wizard |
Aged Partner Balance | aged.partner.balance.report.wizard | form | New |
aged_partner_report_configuration_form |
Age partner report configuration form | account.age.report.configuration | form | New |
aged_partner_report_configuration_tree |
Age partner report configuration list | account.age.report.configuration | list | New |
general_ledger |
general_ledger | ir.ui.view | qweb | New |
general_ledger_wizard |
General Ledger | general.ledger.report.wizard | form | New |
journal_ledger |
journal_ledger | ir.ui.view | qweb | New |
journal_ledger_wizard |
Journal Ledger | journal.ledger.report.wizard | form | New |
open_items |
open_items | ir.ui.view | qweb | New |
open_items_wizard |
Open Items | open.items.report.wizard | form | New |
report_aged_partner_balance |
report_aged_partner_balance | ir.ui.view | qweb | New |
report_aged_partner_balance_account_ending_cumul |
report_aged_partner_balance_account_ending_cumul | ir.ui.view | qweb | New |
report_aged_partner_balance_base |
report_aged_partner_balance_base | ir.ui.view | qweb | New |
report_aged_partner_balance_filters |
report_aged_partner_balance_filters | ir.ui.view | qweb | New |
report_aged_partner_balance_lines |
report_aged_partner_balance_lines | ir.ui.view | qweb | New |
report_aged_partner_balance_lines_header |
report_aged_partner_balance_lines_header | ir.ui.view | qweb | New |
report_aged_partner_balance_move_lines |
report_aged_partner_balance_move_lines | ir.ui.view | qweb | New |
report_aged_partner_balance_partner_ending_cumul |
report_aged_partner_balance_partner_ending_cumul | ir.ui.view | qweb | New |
report_general_ledger |
report_general_ledger | ir.ui.view | qweb | New |
report_general_ledger_base |
report_general_ledger_base | ir.ui.view | qweb | New |
report_journal_ledger |
report_journal_ledger | ir.ui.view | qweb | New |
report_journal_ledger_base |
report_journal_ledger_base | ir.ui.view | qweb | New |
report_open_items |
report_open_items | ir.ui.view | qweb | New |
report_trial_balance |
report_trial_balance | ir.ui.view | qweb | New |
report_trial_balance_base |
report_trial_balance_base | ir.ui.view | qweb | New |
report_vat_report |
report_vat_report | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | form | Inherits account.res_config_settings_view_form | |
trial_balance |
trial_balance | ir.ui.view | qweb | New |
trial_balance_wizard |
Trial Balance | trial.balance.report.wizard | form | New |
vat_report |
vat_report | ir.ui.view | qweb | New |
vat_report_wizard |
vat_report_wizard_view | vat.report.wizard | form | New |
view_account_specific_form |
account.account.form.inherit | account.account | form | Inherits account.view_account_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (28)
New fields (1)
-
centralizedBooleanhelp='If flagged, no details will be displayed in the General Ledger report (the webkit one only), only centralized amounts per period.'
No public methods.
New fields (3)
-
company_idMany2one → res.companydefault=<expr>readonly=True args: 'res.company' -
line_idsOne2many → account.age.report.configuration.lineargs: 'account.age.report.configuration.line', 'account_age_report_config_id' -
nameCharrequired=True
No public methods.
New fields (3)
-
account_age_report_config_idMany2one → account.age.report.configurationargs: 'account.age.report.configuration' -
inferior_limitInteger -
nameCharrequired=True
No public methods.
New fields (6)
-
account_idsOne2many → account.accountcomodel_name='account.account'compute='_compute_account_ids'store=Falsestring='Accounts' -
complete_codeCharcompute='_compute_complete_code'recursive=True args: 'Full Code' -
complete_nameCharcompute='_compute_complete_name'recursive=True args: 'Full Name' -
compute_account_idsMany2many → account.accountcompute='_compute_group_accounts'recursive=Truestore=Falsestring='Compute accounts' args: 'account.account' -
group_child_idsOne2many → account.groupcomodel_name='account.group'inverse_name='parent_id'string='Child Groups' -
levelIntegercompute='_compute_level'recursive=True
No public methods.
New fields (1)
-
analytic_account_idsMany2many → account.analytic.accountcompute='_compute_analytic_account_ids'store=True args: 'account.analytic.account'
-
init(self)The join between accounts_partners subquery and account_move_line can be heavy to compute on big databases. Join sample: JOIN account_move_line ml ON ap.account_id = ml.account_id AND ml.date < '2018-12-30' AND ap.partner_id = ml.partner_id AND ap.include_initial_balance = TRUE By adding the following index, performances are strongly increased. :return: -
search_count(self, domain, limit=None)@api.model
New fields (2)
-
company_idMany2one → res.companycomodel_name='res.company'default=<expr>required=Falsestring='Company' -
label_text_limitIntegerdefault=40
-
button_export_html(self) -
button_export_pdf(self) -
button_export_xlsx(self)
New fields (11)
-
account_code_fromMany2one → account.accountcomodel_name='account.account'help='Starting account in a range' -
account_code_toMany2one → account.accountcomodel_name='account.account'help='Ending account in a range' -
account_idsMany2many → account.accountcomodel_name='account.account'domain=[('reconcile', '=', True)]required=Truestring='Filter accounts' -
age_partner_config_idMany2one → account.age.report.configurationstring='Intervals configuration' args: 'account.age.report.configuration' -
date_atDatedefault=fields.Date.context_todayrequired=True -
date_fromDate -
partner_idsMany2many → res.partnercomodel_name='res.partner'string='Filter partners' -
payable_accounts_onlyBoolean -
receivable_accounts_onlyBoolean -
show_move_line_detailsBoolean -
target_moveSelectiondefault='posted'required=Truestring='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
-
on_change_account_range(self)@api.onchange('account_code_from', 'account_code_to') -
onchange_account_ids(self)@api.onchange('account_ids') -
onchange_company_id(self)@api.onchange('company_id')Handle company change. -
onchange_type_accounts_only(self)@api.onchange('receivable_accounts_only', 'payable_accounts_only')Handle receivable/payable accounts only change.
New fields (21)
-
account_code_fromMany2one → account.accountcomodel_name='account.account'help='Starting account in a range' -
account_code_toMany2one → account.accountcomodel_name='account.account'help='Ending account in a range' -
account_idsMany2many → account.accountcomodel_name='account.account'string='Filter accounts' -
account_journal_idsMany2many → account.journalcomodel_name='account.journal'string='Filter journals' -
centralizeBooleandefault=Truestring='Activate centralization' -
cost_center_idsMany2many → account.analytic.accountcomodel_name='account.analytic.account'string='Filter cost centers' -
date_fromDatedefault=<expr>required=True -
date_range_idMany2one → date.rangecomodel_name='date.range'string='Date range' -
date_toDatedefault=fields.Date.context_todayrequired=True -
domainChardefault=[]help='This domain will be used to select specific domain for Journal Items'string='Journal Items Domain' -
foreign_currencyBooleandefault=<expr>help='Display foreign currency for move lines, unless account currency is not setup through chart of accounts will display initial and final balance in that currency.'string='Show foreign currency' -
fy_start_dateDatecompute='_compute_fy_start_date' -
grouped_bySelectiondefault='partners'required=Trueselection=[('none', 'None'), ('partners', 'Partners'), ('taxes', 'Taxes')] -
hide_account_at_0Booleanhelp='Use this filter to hide an account or a partner with an ending balance at 0. If partners are filtered, debits and credits totals will not match the trial balance.'string='Hide account ending balance at 0' -
only_one_unaffected_earnings_accountBooleandefault=<expr>readonly=True -
partner_idsMany2many → res.partnercomodel_name='res.partner'default=<expr>string='Filter partners' -
payable_accounts_onlyBoolean -
receivable_accounts_onlyBoolean -
show_cost_centerBooleandefault=Truestring='Show Analytic Account' -
target_moveSelectiondefault='posted'required=Truestring='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')] -
unaffected_earnings_accountMany2one → account.accountcomodel_name='account.account'compute='_compute_unaffected_earnings_account'store=True
-
on_change_account_range(self)@api.onchange('account_code_from', 'account_code_to') -
onchange_company_id(self)@api.onchange('company_id')Handle company change. -
onchange_date_range_id(self)@api.onchange('date_range_id')Handle date range change. -
onchange_partner_ids(self)@api.onchange('partner_ids')Handle partners change. -
onchange_type_accounts_only(self)@api.onchange('receivable_accounts_only', 'payable_accounts_only')Handle receivable/payable accounts only change.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (10)
-
date_fromDaterequired=Truestring='Start date' -
date_range_idMany2one → date.rangecomodel_name='date.range'string='Date range' -
date_toDaterequired=Truestring='End date' -
foreign_currencyBoolean -
group_optionSelectiondefault='journal'required=Trueselection='_get_group_options'string='Group entries by' -
journal_idsMany2many → account.journalcomodel_name='account.journal'required=Falsestring='Journals' -
move_targetSelectiondefault='posted'required=Trueselection='_get_move_targets' -
sort_optionSelectiondefault='move_name'required=Trueselection='_get_sort_options'string='Sort entries by' -
with_account_nameBooleandefault=False -
with_auto_sequenceBooleandefault=Falsestring='Show Auto Sequence'
-
onchange_company_id(self)@api.onchange('company_id')Handle company change. -
onchange_date_range_id(self)@api.onchange('date_range_id')
New fields (13)
-
account_code_fromMany2one → account.accountcomodel_name='account.account' -
account_code_toMany2one → account.accountcomodel_name='account.account'help='Ending account in a range' -
account_idsMany2many → account.accountcomodel_name='account.account'domain=[('reconcile', '=', True)]required=Truestring='Filter accounts' -
date_atDatedefault=fields.Date.context_todayrequired=True -
date_fromDate -
foreign_currencyBooleandefault=<expr>help='Display foreign currency for move lines, unless account currency is not setup through chart of accounts will display initial and final balance in that currency.'string='Show foreign currency' -
grouped_bySelectiondefault='partners'selection=[('partners', 'Partners'), ('salesperson', 'Partner Salesperson')] -
hide_account_at_0Booleandefault=Truehelp='Use this filter to hide an account or a partner with an ending balance at 0. If partners are filtered, debits and credits totals will not match the trial balance.'string='Hide account ending balance at 0' -
partner_idsMany2many → res.partnercomodel_name='res.partner'default=<expr>string='Filter partners' -
payable_accounts_onlyBoolean -
receivable_accounts_onlyBoolean -
show_partner_detailsBooleandefault=True -
target_moveSelectiondefault='posted'required=Truestring='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')]
-
on_change_account_range(self)@api.onchange('account_code_from', 'account_code_to') -
onchange_account_ids(self)@api.onchange('account_ids') -
onchange_company_id(self)@api.onchange('company_id')Handle company change. -
onchange_type_accounts_only(self)@api.onchange('receivable_accounts_only', 'payable_accounts_only')Handle receivable/payable accounts only change.
New fields (0)
No new fields.
Public methods (2)-
write_account_footer_from_dict(self, report, account, label, field_name, string_format, amount_format, amount_is_percent, report_data)Specific function to write account footer for Aged Partner Balance -
write_ending_balance_from_dict(self, my_object, report_data)Specific function to write ending partner balance for Aged Partner Balance
New fields (0)
No new fields.
Public methods (2)-
write_ending_balance_from_dict(self, my_object, report_data)Specific function to write ending balance for General Ledger -
write_initial_balance_from_dict(self, my_object, report_data)Specific function to write initial balance for General Ledger
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (1)-
write_ending_balance_from_dict(self, my_object, type_object, total_amount, report_data, account_id=False, partner_id=False)Specific function to write ending balance for Open Items
New fields (0)
No new fields.
Public methods (3)-
write_account_footer(self, account, name_value, report_data)Specific function to write account footer for Trial Balance -
write_line(self, line_object, type_object, report_data)Write a line on current line using all defined columns field name. Columns are defined with `_get_report_columns` method. -
write_line_from_dict_order(self, total_amount, partner_data, report_data)
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 (8)-
generate_xlsx_report(self, workbook, data, objects) -
get_workbook_options(self) -
write_array_header(self, report_data)Write array header on current line using all defined columns name. Columns are defined with `_get_report_columns` method. -
write_array_title(self, title, report_data)Write array title on current line using all defined columns width. Columns are defined with `_get_report_columns` method. -
write_ending_balance_from_dict(self, my_object, name, label, report_data)Write a specific ending balance line on current line using defined columns field_final_balance name. Columns are defined with `_get_report_columns` method. -
write_initial_balance_from_dict(self, my_object, label, report_data)Write a specific initial balance line on current line using defined columns field_initial_balance name. Columns are defined with `_get_report_columns` method. -
write_line_from_dict(self, line_dict, report_data)Write a line on current line -
write_non_standard_column(self, cell_type, col_pos, value)Write columns out of the columns type defined here.
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 (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
age_partner_config_idMany2one → account.age.report.configurationstring='Intervals configuration' args: 'account.age.report.configuration'
-
get_values(self)@api.model -
set_values(self)
New fields (22)
-
account_code_fromMany2one → account.accountcomodel_name='account.account'help='Starting account in a range' -
account_code_toMany2one → account.accountcomodel_name='account.account'help='Ending account in a range' -
account_idsMany2many → account.accountcomodel_name='account.account'string='Filter accounts' -
date_fromDaterequired=True -
date_range_idMany2one → date.rangecomodel_name='date.range'string='Date range' -
date_toDaterequired=True -
foreign_currencyBooleanhelp='Display foreign currency for move lines, unless account currency is not setup through chart of accounts will display initial and final balance in that currency.'string='Show foreign currency' -
fy_start_dateDatecompute='_compute_fy_start_date' -
grouped_bySelectiondefault=Falseselection=[('analytic_account', 'Analytic Account')] -
hide_account_at_0Booleandefault=Truehelp='When this option is enabled, the trial balance will not display accounts that have initial balance = debit = credit = end balance = 0'string='Hide accounts at 0' -
hide_parent_hierarchy_levelBooleandefault=False args: 'Do not display parent levels' -
journal_idsMany2many → account.journalcomodel_name='account.journal' -
limit_hierarchy_levelBooleanargs: 'Limit hierarchy levels' -
only_one_unaffected_earnings_accountBooleandefault=<expr>readonly=True -
partner_idsMany2many → res.partnercomodel_name='res.partner'string='Filter partners' -
payable_accounts_onlyBoolean -
receivable_accounts_onlyBoolean -
show_hierarchyBooleanhelp='Use when your account groups are hierarchical'string='Show hierarchy' -
show_hierarchy_levelIntegerdefault=1 args: 'Hierarchy Levels to display' -
show_partner_detailsBoolean -
target_moveSelectiondefault='posted'required=Truestring='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')] -
unaffected_earnings_accountMany2one → account.accountcomodel_name='account.account'compute='_compute_unaffected_earnings_account'store=True
-
on_change_account_range(self)@api.onchange('account_code_from', 'account_code_to') -
onchange_company_id(self)@api.onchange('company_id')Handle company change. -
onchange_date_range_id(self)@api.onchange('date_range_id')Handle date range change. -
onchange_grouped_by(self)@api.onchange('grouped_by') -
onchange_show_partner_details(self)@api.onchange('show_partner_details')Handle partners change. -
onchange_type_accounts_only(self)@api.onchange('receivable_accounts_only', 'payable_accounts_only')Handle receivable/payable accounts only change.
New fields (6)
-
based_onSelectiondefault='taxtags'required=True args: [('taxtags', 'Tax Tags'), ('taxgroups', 'Tax Groups')] -
date_fromDaterequired=True args: 'Start Date' -
date_range_idMany2one → date.rangecomodel_name='date.range'string='Date range' -
date_toDaterequired=True args: 'End Date' -
target_moveSelectiondefault='posted'required=Truestring='Target Moves' args: [('posted', 'All Posted Entries'), ('all', 'All Entries')] -
tax_detailBooleanargs: 'Detail Taxes'
-
onchange_company_id(self)@api.onchange('company_id') -
onchange_date_range_id(self)@api.onchange('date_range_id')Handle date range change.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…