Repository
OCA/account-closing · module folder · Try on Runboat
Module version
1.0.0
Category
Accounting & Finance
Folder size
0.62 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/account-closing
Last tracking update
2026-08-07 09:06:27
Authors
Odoo Community Association (OCA)
Maintainers
Odoo Community Association (OCA)
Committers
Weblate, OCA-git-bot, oca-ci, Borruso
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This module implements a generic fiscal year closing system for those
countries where closing/opening moves or other kind of closing
operations are mandatory in accounting books.

It includes a template mechanism that can be used in localizations for
providing the possible configurations to be used by the closing engine.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
view_account_fiscalyear_closing_form account.fiscalyear.closing.form account.fiscalyear.closing form New
view_account_fiscalyear_closing_search account.fiscalyear.closing.search account.fiscalyear.closing search New
view_account_fiscalyear_closing_template_form account.fiscalyear.closing.template form New
view_account_fiscalyear_closing_template_tree account.fiscalyear.closing.template list New
view_account_fiscalyear_closing_tree account.fiscalyear.closing.list account.fiscalyear.closing list New
view_account_fiscalyear_closing_unbalanced_move_form account.fiscalyear.closing.unbalanced.move form New
view_account_move_filter account.move.select account.move Inherits account.view_account_move_filter
view_move_form account.move.form account.move form Inherits account.view_move_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (15)

New fields (13)
  • calculation_date Datetime
    readonly=True string='Calculation date'
  • chart_template Selection
    readonly=True related='company_id.chart_template'
  • check_draft_moves Boolean
    readonly=True
  • closing_template_id Many2one → account.fiscalyear.closing.template
    comodel_name='account.fiscalyear.closing.template' domain="[('chart_template', '=', chart_template)]" readonly=True string='Closing template'
  • company_id Many2one
    default=<expr> readonly=True
  • date_end Date
    readonly=True required=True string='To date'
  • date_opening Date
    readonly=True required=True string='Opening date'
  • date_start Date
    readonly=True required=True string='From date'
  • move_config_ids One2many → account.fiscalyear.closing.config
    comodel_name='account.fiscalyear.closing.config' inverse_name='fyc_id' readonly=True string='Moves configuration'
  • move_ids One2many → account.move
    comodel_name='account.move' inverse_name='fyc_id' readonly=True string='Moves'
  • name Char
    readonly=True
  • state Selection
    default='draft' readonly=True selection=[('draft', 'Draft'), ('calculated', 'Processed'), ('posted', 'Posted'), ('cancelled', 'Cancelled')]
  • year Integer
    default=<expr> help='Introduce here the year to close. If the fiscal year is between several natural years, you have to put here the last one.' readonly=True
Public methods (10)
  • button_calculate(self)
  • button_cancel(self)
  • button_open_move_lines(self)
  • button_open_moves(self)
  • button_post(self)
  • button_recalculate(self)
  • button_recover(self)
  • calculate(self)
  • draft_moves_check(self)
  • onchange_template_id(self)
    @api.onchange('closing_template_id')

New fields (3)
  • check_draft_moves Boolean
    default=True help="Checks that there are no draft moves on the fiscal year that is being closed. Non-confirmed moves won't be taken in account on the closing operations." string='Check draft moves'
  • company_id Many2one → res.company
    comodel_name='res.company' ondelete='cascade' string='Company'
  • name Char
    required=True string='Description'
Public methods (0)

No public methods.

New fields (7)
  • closing_type_ids One2many → account.fiscalyear.closing.type
    comodel_name='account.fiscalyear.closing.type' inverse_name='fyc_config_id' string='Closing types'
  • date Date
    string='Move date'
  • enabled Boolean
    default=True
  • fyc_id Many2one → account.fiscalyear.closing
    comodel_name='account.fiscalyear.closing' index=True ondelete='cascade' readonly=True required=True string='Fiscal Year Closing'
  • journal_id Many2one
    required=True
  • mapping_ids One2many → account.fiscalyear.closing.mapping
    comodel_name='account.fiscalyear.closing.mapping' inverse_name='fyc_config_id' string='Account mappings'
  • move_id Many2one → account.move
    comodel_name='account.move' string='Move'
Public methods (5)
  • closing_type_get(self, account)
  • config_inverse_get(self)
  • inverse_move_prepare(self)
  • move_prepare(self, move_lines)
  • moves_create(self)

New fields (7)
  • closing_type_default Selection
    default='balance' required=True selection=[('balance', 'Balance'), ('unreconciled', 'Un-reconciled')] string='Default closing type'
  • code Char
    required=True string='Unique code'
  • inverse Char
    help='Configuration code to inverse its move' string='Inverse config'
  • journal_id Many2one → account.journal
    comodel_name='account.journal' string='Journal'
  • move_type Selection
    default='closing' selection=[('closing', 'Closing'), ('opening', 'Opening'), ('loss_profit', 'Loss & Profit'), ('other', 'Other')] string='Move type'
  • name Char
    required=True string='Description'
  • sequence Integer
    default=1 index=True
Public methods (0)

No public methods.

New fields (6)
  • closing_type_ids One2many → account.fiscalyear.closing.type.template
    comodel_name='account.fiscalyear.closing.type.template' inverse_name='template_config_id' string='Closing types'
  • journal_id Many2one
    company_dependent=True
  • mapping_ids One2many → account.fiscalyear.closing.mapping.template
    comodel_name='account.fiscalyear.closing.mapping.template' inverse_name='template_config_id' string='Account mappings'
  • move_date Selection
    default='last_ending' required=True selection=[('last_ending', 'Last date of the ending period'), ('first_opening', 'First date of the opening period')] string='Move date'
  • name Char
    translate=True
  • template_id Many2one → account.fiscalyear.closing.template
    comodel_name='account.fiscalyear.closing.template' index=True ondelete='cascade' readonly=True required=True string='Fiscal Year Closing Template'
Public methods (0)

No public methods.

New fields (3)
  • dest_account_id Many2one → account.account
    comodel_name='account.account' string='Destination account'
  • fyc_config_id Many2one → account.fiscalyear.closing.config
    comodel_name='account.fiscalyear.closing.config' index=True ondelete='cascade' readonly=True required=True string='Fiscal year closing config'
  • src_accounts Char
    required=True string='Source accounts'
Public methods (7)
  • account_lines_get(self, account)
  • account_partners_get(self, account)
  • create(self, vals_list)
    @api.model_create_multi
  • dest_move_line_prepare(self, dest, balance, partner_id=False)
  • move_line_partner_prepare(self, account, partner)
  • move_line_prepare(self, account, account_lines, partner_id=False)
  • write(self, vals)

New fields (1)
  • name Char
    string='Description'
Public methods (0)

No public methods.

New fields (4)
  • dest_account Char
    help='Account code pattern for the mapping destination account. Only the first match will be considered. If this field is not filled, the performed operation will be to remove any existing balance on the source accounts with an equivalent counterpart in the same account.' string='Destination account'
  • name Char
    translate=True
  • src_accounts Char
    help='Account code pattern for the mapping source accounts' required=True string='Source accounts'
  • template_config_id Many2one → account.fiscalyear.closing.config.template
    comodel_name='account.fiscalyear.closing.config.template' index=True ondelete='cascade' readonly=True required=True string='Fiscal year closing config template'
Public methods (0)

No public methods.

New fields (3)
  • chart_template Selection
    required=True selection=<expr> string='Available for'
  • move_config_ids One2many → account.fiscalyear.closing.config.template
    comodel_name='account.fiscalyear.closing.config.template' inverse_name='template_id' string='Moves configuration'
  • name Char
    translate=True
Public methods (0)

No public methods.

New fields (1)
  • fyc_config_id Many2one → account.fiscalyear.closing.config
    comodel_name='account.fiscalyear.closing.config' index=True ondelete='cascade' readonly=True required=True string='Fiscal year closing config'
Public methods (0)

No public methods.

New fields (2)
  • account_type Selection
    required=True selection=[('asset_receivable', 'Receivable'), ('asset_cash', 'Bank and Cash'), ('asset_current', 'Current Assets'), ('asset_non_current', 'Non-current Assets'), ('asset_prepayments', 'Prepayments'), ('asset_fixed', 'Fixed Assets'), ('liability_payable', 'Payable'), ('liability_credit_card', 'Credit Card'), ('liability_current', 'Current Liabilities'), ('liability_non_current', 'Non-current Liabilities'), ('equity', 'Equity'), ('equity_unaffected', 'Current Year Earnings'), ('income', 'Income'), ('income_other', 'Other Income'), ('expense', 'Expenses'), ('expense_depreciation', 'Depreciation'), ('expense_direct_cost', 'Cost of Revenue'), ('off_balance', 'Off-Balance Sheet')] string='Type'
  • closing_type Selection
    default='unreconciled' required=True selection=[('balance', 'Balance'), ('unreconciled', 'Un-reconciled')] string='Default closing type'
Public methods (0)

No public methods.

New fields (1)
  • template_config_id Many2one → account.fiscalyear.closing.config.template
    comodel_name='account.fiscalyear.closing.config.template' index=True ondelete='cascade' readonly=True required=True string='Fiscal year closing config template'
Public methods (0)

No public methods.

New fields (4)
  • date Date
    readonly=True
  • journal_id Many2one → account.journal
    comodel_name='account.journal' readonly=True string='Journal'
  • line_ids One2many → account.fiscalyear.closing.unbalanced.move.line
    comodel_name='account.fiscalyear.closing.unbalanced.move.line' inverse_name='move_id' readonly=True string='Unbalanced move lines'
  • ref Char
    readonly=True string='Reference'
Public methods (0)

No public methods.

New fields (7)
  • account_id Many2one → account.account
    comodel_name='account.account' string='Account'
  • credit Float
  • date Date
  • debit Float
  • move_id Many2one → account.fiscalyear.closing.unbalanced.move
    comodel_name='account.fiscalyear.closing.unbalanced.move' string='Unbalanced move'
  • name Char
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Partner'
Public methods (0)

No public methods.

New fields (2)
  • closing_type Selection
    default='none' selection=_selection_closing_type
  • fyc_id Many2one → account.fiscalyear.closing
    comodel_name='account.fiscalyear.closing' ondelete='cascade' readonly=True string='Fiscal year closing'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…