Account Cut-off Base

account_cutoff_base
REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/18.0/account_cutoff_base
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci, vbnext
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains the technical basis for other cut-off modules ; it
doesn't provide useful features by itself. You need to install other
cut-off modules to get the useful features:

- the module *account_cutoff_start_end_dates* will manage cut-offs based
  on start date and end date of invoice/move lines,
- the module *account_cutoff_picking* will manage cut-offs based on the
  pickings.
- the module *account_cutoff_accrual_subscription* will manage cut-offs
  based on subscriptions.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_search account.cutoff.line.search account.cutoff.line search New
account_cutoff_line_tree account.cutoff.line.list account.cutoff.line list New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.list account.cutoff.mapping list New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.list account.cutoff.tax.line list New
account_cutoff_tree account.cutoff.list account.cutoff list New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
view_tax_form account.cutoff.accrual.view_tax_form account.tax field Inherits account.view_tax_form
Models touched (7)

New fields (15)
  • auto_reverse Boolean
    help='Automatically reverse created move on following day. Use this if you accrue a value end of period that you want to reverse begin of next period'
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True comodel_name='account.account' compute='_compute_cutoff_account_id' domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" precompute=True readonly=False store=True string='Cut-off Account' tracking=True
  • cutoff_date Date
    compute='_compute_cutoff_date' copy=False precompute=True readonly=False store=True string='Cut-off Date' tracking=True
  • cutoff_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' compute='_compute_cutoff_journal_id' domain="[('company_id', '=', company_id), ('type', '=', 'general')]" precompute=True readonly=False store=True string='Cut-off Account Journal' tracking=True
  • cutoff_type Selection
    required=True selection='_selection_cutoff_type' string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' string='Cut-off Lines'
  • move_id Many2one → account.move
    check_company=True copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_partner Boolean
    compute='_compute_move_partner' precompute=True readonly=False store=True string='Partner on Journal Items' tracking=True
  • move_ref Char
    compute='_compute_move_ref' precompute=True readonly=False store=True string='Reference of the Cut-off Journal Entry'
  • move_reversal_id Many2one → account.move
    compute='_compute_move_reversal_id' string='Cut-off Journal Entry Reversal' args: 'account.move'
  • source_move_state Selection
    default='posted' required=True string='Source Entries' tracking=True args: [('posted', 'Posted Entries'), ('draft_posted', 'Draft and Posted Entries')]
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' string='Total Cut-off Amount' tracking=True
Public methods (6)
  • back2draft(self)
  • button_line_list(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (20)
  • account_id Many2one → account.account
    check_company=True readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help='Amount that is used as base to compute the Cut-off Amount.' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • company_id Many2one → res.company
    related='parent_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True string='Currency' args: 'res.currency'
  • cutoff_account_code Char
    related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    check_company=True readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • cutoff_type Selection
    related='parent_id.cutoff_type'
  • name Char
    args: 'Description'
  • notes Html
  • origin_move_date Date
    related='origin_move_line_id.move_id.date' string='Origin Journal Entry Date'
  • origin_move_id Many2one
    related='origin_move_line_id.move_id' string='Origin Journal Entry'
  • origin_move_line_id Many2one → account.move.line
    readonly=True string='Origin Journal Item' args: 'account.move.line'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • price_origin Char
    readonly=True
  • price_unit Float
    digits='Product Price' help="Price per unit (discount included) without taxes in the default unit of measure of the product in the currency of the 'Currency' field." readonly=True string='Unit Price w/o Tax'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    default='all' required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' readonly=True string='Tax Amount'
  • base Monetary
    currency_field='currency_id' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • company_id Many2one → res.company
    related='parent_id.company_id' store=True args: 'res.company'
  • currency_id Many2one
    related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    check_company=True readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    check_company=True required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (2)
  • account_accrued_expense_id Many2one → account.account
    check_company=True comodel_name='account.account' domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" string='Accrued Expense Tax Account'
  • account_accrued_revenue_id Many2one → account.account
    check_company=True comodel_name='account.account' domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" string='Accrued Revenue Tax Account'
Public methods (0)

No public methods.

New fields (10)
  • accrual_taxes Boolean
    default=True string='Accrual On Taxes'
  • default_accrued_expense_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Expenses'
  • default_accrued_expense_tax_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Tax Account for Accrued Expense'
  • default_accrued_revenue_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Revenues'
  • default_accrued_revenue_tax_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Tax Account for Accrued Revenue'
  • default_cutoff_journal_id Many2one → account.journal
    check_company=True string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Journal Items by Default'
  • default_prepaid_expense_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Expense' args: 'account.account'
  • default_prepaid_revenue_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Revenue' args: 'account.account'
  • post_cutoff_move Boolean
    string='Post Cut-off Journal Entry'
Public methods (0)

No public methods.

New fields (10)
  • accrual_taxes Boolean
    readonly=False related='company_id.accrual_taxes'
  • dft_accrued_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" readonly=False related='company_id.default_accrued_expense_account_id'
  • dft_accrued_expense_tax_account_id Many2one
    domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" readonly=False related='company_id.default_accrued_expense_tax_account_id'
  • dft_accrued_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" readonly=False related='company_id.default_accrued_revenue_account_id'
  • dft_accrued_revenue_tax_account_id Many2one
    domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" readonly=False related='company_id.default_accrued_revenue_tax_account_id'
  • dft_cutoff_journal_id Many2one
    domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
  • dft_prepaid_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" readonly=False related='company_id.default_prepaid_expense_account_id'
  • dft_prepaid_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_ids', 'in', company_id)]" readonly=False related='company_id.default_prepaid_revenue_account_id'
  • post_cutoff_move Boolean
    readonly=False related='company_id.post_cutoff_move'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/17.0/account_cutoff_base
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, oca-ci, thaolt
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains the technical basis for other cut-off modules ; it
doesn't provide useful features by itself. You need to install other
cut-off modules to get the useful features:

- the module *account_cutoff_start_end_dates* will manage cut-offs based
  on start date and end date of invoice/move lines,
- the module *account_cutoff_picking* will manage cut-offs based on the
  pickings.
- the module *account_cutoff_accrual_subscription* will manage cut-offs
  based on subscriptions.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_search account.cutoff.line.search account.cutoff.line search New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
view_tax_form account.cutoff.accrual.view_tax_form account.tax field Inherits account.view_tax_form
Models touched (7)

New fields (13)
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True comodel_name='account.account' default=<expr> domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" string='Cut-off Account' tracking=True
  • cutoff_date Date
    copy=False default=<expr> string='Cut-off Date' tracking=True
  • cutoff_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=<expr> domain="[('company_id', '=', company_id)]" string='Cut-off Account Journal' tracking=True
  • cutoff_type Selection
    required=True selection='_selection_cutoff_type' string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' string='Cut-off Lines'
  • move_id Many2one → account.move
    check_company=True copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_partner Boolean
    default=<expr> string='Partner on Journal Items' tracking=True
  • move_ref Char
    default=<expr> string='Reference of the Cut-off Journal Entry'
  • source_move_state Selection
    default='posted' required=True string='Source Entries' tracking=True args: [('posted', 'Posted Entries'), ('draft_posted', 'Draft and Posted Entries')]
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' string='Total Cut-off Amount' tracking=True
Public methods (6)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (20)
  • account_id Many2one → account.account
    check_company=True readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help='Amount that is used as base to compute the Cut-off Amount.' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • company_id Many2one → res.company
    related='parent_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True string='Currency' args: 'res.currency'
  • cutoff_account_code Char
    related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    check_company=True readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • cutoff_type Selection
    related='parent_id.cutoff_type'
  • name Char
    args: 'Description'
  • notes Text
  • origin_move_date Date
    related='origin_move_line_id.move_id.date' string='Origin Journal Entry Date'
  • origin_move_id Many2one
    related='origin_move_line_id.move_id' string='Origin Journal Entry'
  • origin_move_line_id Many2one → account.move.line
    readonly=True string='Origin Journal Item' args: 'account.move.line'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • price_origin Char
    readonly=True
  • price_unit Float
    digits='Product Price' help="Price per unit (discount included) without taxes in the default unit of measure of the product in the currency of the 'Currency' field." readonly=True string='Unit Price w/o Tax'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    default='all' required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' readonly=True string='Tax Amount'
  • base Monetary
    currency_field='currency_id' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • company_id Many2one → res.company
    related='parent_id.company_id' store=True args: 'res.company'
  • currency_id Many2one
    related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    check_company=True readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    check_company=True required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (2)
  • account_accrued_expense_id Many2one → account.account
    check_company=True comodel_name='account.account' domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" string='Accrued Expense Tax Account'
  • account_accrued_revenue_id Many2one → account.account
    check_company=True comodel_name='account.account' domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" string='Accrued Revenue Tax Account'
Public methods (0)

No public methods.

New fields (10)
  • accrual_taxes Boolean
    default=True string='Accrual On Taxes'
  • default_accrued_expense_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Expenses'
  • default_accrued_expense_tax_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Tax Account for Accrued Expense'
  • default_accrued_revenue_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Revenues'
  • default_accrued_revenue_tax_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Tax Account for Accrued Revenue'
  • default_cutoff_journal_id Many2one → account.journal
    check_company=True string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Journal Items by Default'
  • default_prepaid_expense_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Expense' args: 'account.account'
  • default_prepaid_revenue_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Revenue' args: 'account.account'
  • post_cutoff_move Boolean
    string='Post Cut-off Journal Entry'
Public methods (0)

No public methods.

New fields (10)
  • accrual_taxes Boolean
    readonly=False related='company_id.accrual_taxes'
  • dft_accrued_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_account_id'
  • dft_accrued_expense_tax_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_tax_account_id'
  • dft_accrued_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_account_id'
  • dft_accrued_revenue_tax_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_tax_account_id'
  • dft_cutoff_journal_id Many2one
    domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
  • dft_prepaid_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_expense_account_id'
  • dft_prepaid_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_revenue_account_id'
  • post_cutoff_move Boolean
    readonly=False related='company_id.post_cutoff_move'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/16.0/account_cutoff_base
VERSION
VERSION 1.6.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Jacques-Etienne Baudoux, Denis Roussel, Weblate, OCA-git-bot, oca-ci, Dũng (Trần Đình)
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES openupgradelib
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_search account.cutoff.line.search account.cutoff.line search New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
view_tax_form account.cutoff.accrual.view_tax_form account.tax field Inherits account.view_tax_form
Models touched (7)

New fields (15)
  • auto_reverse Boolean
    help='Automatically reverse created move on following day. Use this if you accrue a value end of period that you want to reverse begin of next period'
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> required=True states={'done': [('readonly', True)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True comodel_name='account.account' default=<expr> domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" states={'done': [('readonly', True)]} string='Cut-off Account' tracking=True
  • cutoff_date Date
    copy=False default=<expr> states={'done': [('readonly', True)]} string='Cut-off Date' tracking=True
  • cutoff_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=<expr> domain="[('company_id', '=', company_id)]" states={'done': [('readonly', True)]} string='Cut-off Account Journal' tracking=True
  • cutoff_type Selection
    required=True selection='_selection_cutoff_type' states={'done': [('readonly', True)]} string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' states={'done': [('readonly', True)]} string='Cut-off Lines'
  • move_id Many2one → account.move
    check_company=True copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_partner Boolean
    default=<expr> states={'done': [('readonly', True)]} string='Partner on Journal Items' tracking=True
  • move_ref Char
    default=<expr> states={'done': [('readonly', True)]} string='Reference of the Cut-off Journal Entry'
  • move_reversal_id Many2one → account.move
    compute='_compute_move_reversal_id' string='Cut-off Journal Entry Reversal' args: 'account.move'
  • source_move_state Selection
    default='posted' required=True states={'done': [('readonly', True)]} string='Source Entries' tracking=True args: [('posted', 'Posted Entries'), ('draft_posted', 'Draft and Posted Entries')]
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' string='Total Cut-off Amount' tracking=True
Public methods (7)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • name_get(self)
  • unlink(self)

New fields (20)
  • account_id Many2one → account.account
    check_company=True readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help='Amount that is used as base to compute the Cut-off Amount.' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • company_id Many2one → res.company
    related='parent_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    readonly=True string='Currency' args: 'res.currency'
  • cutoff_account_code Char
    related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    check_company=True readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • cutoff_type Selection
    related='parent_id.cutoff_type'
  • name Char
    args: 'Description'
  • notes Text
  • origin_move_date Date
    related='origin_move_line_id.move_id.date' string='Origin Journal Entry Date'
  • origin_move_id Many2one
    related='origin_move_line_id.move_id' string='Origin Journal Entry'
  • origin_move_line_id Many2one → account.move.line
    index=True readonly=True string='Origin Journal Item' args: 'account.move.line'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • price_origin Char
    readonly=True
  • price_unit Float
    digits='Product Price' help="Price per unit (discount included) without taxes in the default unit of measure of the product in the currency of the 'Currency' field." readonly=True string='Unit Price w/o Tax'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    default='all' required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' readonly=True string='Tax Amount'
  • base Monetary
    currency_field='currency_id' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • company_id Many2one → res.company
    related='parent_id.company_id' store=True args: 'res.company'
  • currency_id Many2one
    related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    check_company=True readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    check_company=True required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (2)
  • account_accrued_expense_id Many2one → account.account
    check_company=True comodel_name='account.account' domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" string='Accrued Expense Tax Account'
  • account_accrued_revenue_id Many2one → account.account
    check_company=True comodel_name='account.account' domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" string='Accrued Revenue Tax Account'
Public methods (0)

No public methods.

New fields (12)
  • accrual_taxes Boolean
    default=True string='Accrual On Taxes'
  • default_accrued_expense_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Expenses'
  • default_accrued_expense_return_account_id Many2one → account.account
    check_company=True string='Default Account for Accrued Expenses Refunds' args: 'account.account'
  • default_accrued_expense_tax_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Tax Account for Accrued Expense'
  • default_accrued_revenue_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Revenues'
  • default_accrued_revenue_return_account_id Many2one → account.account
    check_company=True string='Default Account for Accrued Revenues Refunds' args: 'account.account'
  • default_accrued_revenue_tax_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Tax Account for Accrued Revenue'
  • default_cutoff_journal_id Many2one → account.journal
    check_company=True string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Journal Items by Default'
  • default_prepaid_expense_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Expense' args: 'account.account'
  • default_prepaid_revenue_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Revenue' args: 'account.account'
  • post_cutoff_move Boolean
    string='Post Cut-off Journal Entry'
Public methods (0)

No public methods.

New fields (12)
  • accrual_taxes Boolean
    readonly=False related='company_id.accrual_taxes'
  • dft_accrued_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_account_id'
  • dft_accrued_expense_return_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_return_account_id'
  • dft_accrued_expense_tax_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_tax_account_id'
  • dft_accrued_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_account_id'
  • dft_accrued_revenue_return_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_return_account_id'
  • dft_accrued_revenue_tax_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_tax_account_id'
  • dft_cutoff_journal_id Many2one
    domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
  • dft_prepaid_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_expense_account_id'
  • dft_prepaid_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_revenue_account_id'
  • post_cutoff_move Boolean
    readonly=False related='company_id.post_cutoff_move'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/15.0/account_cutoff_base
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, Weblate, OCA-git-bot, oca-ci, Maksym Yankin
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_search account.cutoff.line.search account.cutoff.line search New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
view_tax_form account.cutoff.accrual.view_tax_form account.tax field Inherits account.view_tax_form
Models touched (7)

New fields (12)
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True comodel_name='account.account' default=<expr> domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account' tracking=True
  • cutoff_date Date
    copy=False default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' tracking=True
  • cutoff_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=<expr> domain="[('company_id', '=', company_id)]" readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal' tracking=True
  • cutoff_type Selection
    readonly=True required=True selection='_selection_cutoff_type' states={'draft': [('readonly', False)]} string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines'
  • move_id Many2one → account.move
    check_company=True copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=<expr> help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • move_partner Boolean
    default=<expr> string='Partner on Move Line'
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' tracking=True
Public methods (6)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (19)
  • account_id Many2one → account.account
    readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True
  • analytic_account_id Many2one → account.analytic.account
    readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    readonly=True related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • notes Text
  • origin_move_date Date
    related='origin_move_line_id.move_id.date' string='Origin Journal Entry Date'
  • origin_move_id Many2one
    related='origin_move_line_id.move_id' string='Origin Journal Entry'
  • origin_move_line_id Many2one → account.move.line
    readonly=True string='Origin Journal Item' args: 'account.move.line'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • price_origin Char
    readonly=True
  • price_unit Float
    digits='Product Price' help="Price per unit (discount included) without taxes in the default unit of measure of the product in the currency of the 'Currency' field." readonly=True string='Unit Price w/o Tax'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    default='all' required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one
    readonly=True related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (2)
  • account_accrued_expense_id Many2one → account.account
    check_company=True comodel_name='account.account' domain=[('deprecated', '=', False)] string='Accrued Expense Tax Account'
  • account_accrued_revenue_id Many2one → account.account
    check_company=True comodel_name='account.account' domain=[('deprecated', '=', False)] string='Accrued Revenue Tax Account'
Public methods (0)

No public methods.

New fields (7)
  • accrual_taxes Boolean
    default=True string='Accrual On Taxes'
  • default_accrued_expense_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Expenses'
  • default_accrued_revenue_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Revenues'
  • default_cutoff_journal_id Many2one → account.journal
    check_company=True string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Move Line by Default'
  • default_prepaid_expense_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Expense' args: 'account.account'
  • default_prepaid_revenue_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Revenue' args: 'account.account'
Public methods (0)

No public methods.

New fields (7)
  • accrual_taxes Boolean
    readonly=False related='company_id.accrual_taxes'
  • dft_accrued_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_account_id'
  • dft_accrued_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_account_id'
  • dft_cutoff_journal_id Many2one
    domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
  • dft_prepaid_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_expense_account_id'
  • dft_prepaid_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_revenue_account_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/14.0/account_cutoff_base
VERSION
VERSION 2.0.1
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Denis Roussel, OCA Transbot, Sébastien Alix, oca-travis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_search account.cutoff.line.search account.cutoff.line search New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
view_tax_form account.cutoff.accrual.view_tax_form account.tax field Inherits account.view_tax_form
Models touched (7)

New fields (13)
  • company_currency_id Many2one
    related='company_id.currency_id' store=True string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True comodel_name='account.account' default=<expr> domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account' tracking=True
  • cutoff_date Date
    copy=False default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' tracking=True
  • cutoff_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=<expr> domain="[('company_id', '=', company_id)]" readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal' tracking=True
  • cutoff_type Selection
    readonly=True required=True selection='_selection_cutoff_type' states={'draft': [('readonly', False)]} string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines'
  • move_id Many2one → account.move
    check_company=True copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=<expr> help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • move_partner Boolean
    default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Partner on Move Line' tracking=True
  • source_move_state Selection
    default='posted' readonly=True required=True states={'draft': [('readonly', False)]} string='Source Entries' tracking=True args: [('posted', 'Posted Entries'), ('draft_posted', 'Draft and Posted Entries')]
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' tracking=True
Public methods (6)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (19)
  • account_id Many2one → account.account
    readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True
  • analytic_account_id Many2one → account.analytic.account
    readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    related='parent_id.company_currency_id' store=True string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    related='cutoff_account_id.code' store=True string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • notes Text
  • origin_move_date Date
    related='origin_move_line_id.move_id.date' string='Origin Journal Entry Date'
  • origin_move_id Many2one
    related='origin_move_line_id.move_id' string='Origin Journal Entry'
  • origin_move_line_id Many2one → account.move.line
    readonly=True string='Origin Journal Item' args: 'account.move.line'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • price_origin Char
    readonly=True
  • price_unit Float
    digits='Product Price' help="Price per unit (discount included) without taxes in the default unit of measure of the product in the currency of the 'Currency' field." readonly=True string='Unit Price w/o Tax'
  • quantity Float
    digits='Product Unit of Measure' readonly=True string='Quantity'
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    check_company=True domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    default='all' required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' store=True string='Company Currency'
  • currency_id Many2one
    related='parent_id.currency_id' store=True string='Currency'
  • cutoff_account_id Many2one → account.account
    readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (2)
  • account_accrued_expense_id Many2one → account.account
    check_company=True comodel_name='account.account' domain=[('deprecated', '=', False)] string='Accrued Expense Tax Account'
  • account_accrued_revenue_id Many2one → account.account
    check_company=True comodel_name='account.account' domain=[('deprecated', '=', False)] string='Accrued Revenue Tax Account'
Public methods (0)

No public methods.

New fields (8)
  • accrual_taxes Boolean
    default=True string='Accrual On Taxes'
  • default_accrued_expense_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Expenses'
  • default_accrued_revenue_account_id Many2one → account.account
    check_company=True comodel_name='account.account' string='Default Account for Accrued Revenues'
  • default_cutoff_journal_id Many2one → account.journal
    check_company=True string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Move Line by Default'
  • default_prepaid_expense_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Expense' args: 'account.account'
  • default_prepaid_revenue_account_id Many2one → account.account
    check_company=True string='Default Account for Prepaid Revenue' args: 'account.account'
  • post_cutoff_move Boolean
    string='Post Cut-off Entry'
Public methods (0)

No public methods.

New fields (8)
  • accrual_taxes Boolean
    readonly=False related='company_id.accrual_taxes'
  • dft_accrued_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_expense_account_id'
  • dft_accrued_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_accrued_revenue_account_id'
  • dft_cutoff_journal_id Many2one
    domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
  • dft_prepaid_expense_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_expense_account_id'
  • dft_prepaid_revenue_account_id Many2one
    domain="[('deprecated', '=', False), ('company_id', '=', company_id)]" readonly=False related='company_id.default_prepaid_revenue_account_id'
  • post_cutoff_move Boolean
    readonly=False related='company_id.post_cutoff_move'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/13.0/account_cutoff_base
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, GitHub, OCA Transbot, JordiMForgeFlow, oca-travis, Weblate, OCA-git-bot, oca-ci, jim.hoefnagels, Darius Martinkus
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_search account.cutoff.line.search account.cutoff.line search New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
Models touched (6)

New fields (13)
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    comodel_name='account.account' default=<expr> domain=[('deprecated', '=', False)] readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account'
  • cutoff_date Date
    copy=False default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' tracking=True
  • cutoff_journal_id Many2one → account.journal
    comodel_name='account.journal' default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal'
  • cutoff_type Selection
    default=<expr> readonly=True required=True selection='_selection_cutoff_type' states={'draft': [('readonly', False)]} string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines'
  • move_id Many2one → account.move
    copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=<expr> help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • move_partner Boolean
    default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Partner on Move Line' tracking=True
  • source_move_state Selection
    default='posted' readonly=True required=True states={'draft': [('readonly', False)]} string='Source Entries' tracking=True args: [('posted', 'Posted Entries'), ('draft_posted', 'Draft and Posted Entries')]
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] tracking=True
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' tracking=True
Public methods (6)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (14)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    readonly=True related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • notes Text
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • tax_ids Many2many → account.tax
    column1='cutoff_line_id' column2='tax_id' readonly=True string='Taxes' args: 'account.tax'
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one
    readonly=True related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (3)
  • default_cutoff_journal_id Many2one → account.journal
    string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Move Line by Default'
  • post_cutoff_move Boolean
    string='Post Cut-off Entry'
Public methods (0)

No public methods.

New fields (3)
  • dft_cutoff_journal_id Many2one
    domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
  • post_cutoff_move Boolean
    readonly=False related='company_id.post_cutoff_move'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/12.0/account_cutoff_base
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, Lara Baggio, Jeroen Evens
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
res_config_settings_view_form cutoff.res.config.settings.form res.config.settings xpath Inherits account.res_config_settings_view_form
Models touched (6)

New fields (12)
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    comodel_name='account.account' default=<expr> domain=[('deprecated', '=', False)] readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account'
  • cutoff_date Date
    copy=False readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' track_visibility='onchange'
  • cutoff_journal_id Many2one → account.journal
    comodel_name='account.journal' default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal'
  • cutoff_type Selection
    default=<expr> oldname='type' readonly=True required=True selection='_selection_cutoff_type' states={'draft': [('readonly', False)]} string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines'
  • move_id Many2one → account.move
    copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=<expr> help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • move_partner Boolean
    default=<expr> string='Partner on Move Line'
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] track_visibility='onchange'
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' track_visibility='onchange'
Public methods (6)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • cutoff_type_label_map(self)
    @property
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (14)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True
  • analytic_account_code Char
    related='analytic_account_id.code'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    readonly=True related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • tax_ids Many2many → account.tax
    column1='cutoff_line_id' column2='tax_id' readonly=True string='Taxes' args: 'account.tax'
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True
  • company_currency_id Many2one
    related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one
    related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True
  • tax_id Many2one → account.tax
    required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (2)
  • default_cutoff_journal_id Many2one → account.journal
    string='Default Cut-off Journal' args: 'account.journal'
  • default_cutoff_move_partner Boolean
    string='Partner on Move Line by Default'
Public methods (0)

No public methods.

New fields (2)
  • dft_cutoff_journal_id Many2one
    readonly=False related='company_id.default_cutoff_journal_id'
  • dft_cutoff_move_partner Boolean
    readonly=False related='company_id.default_cutoff_move_partner'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/11.0/account_cutoff_base
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSBhavesh Odedra, OCA Transbot, oca-travis, Weblate, mpanarin, oleksandrpaziuk
WEBSITE
WEBSITEhttps://github.com/OCA/account-closing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
view_company_form cutoff.company.form res.company xpath Inherits base.view_company_form
Models touched (5)

New fields (11)
  • company_currency_id Many2one
    readonly=True related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    comodel_name='account.account' default=<expr> domain=[('deprecated', '=', False)] readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account'
  • cutoff_date Date
    copy=False readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' track_visibility='onchange'
  • cutoff_journal_id Many2one → account.journal
    comodel_name='account.journal' default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal'
  • cutoff_type Selection
    default=<expr> oldname='type' readonly=True required=True selection='_selection_cutoff_type' states={'draft': [('readonly', False)]} string='Type'
  • line_ids One2many → account.cutoff.line
    comodel_name='account.cutoff.line' inverse_name='parent_id' readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines'
  • move_id Many2one → account.move
    copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=<expr> help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True selection=[('draft', 'Draft'), ('done', 'Done')] string='State' track_visibility='onchange'
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' track_visibility='onchange'
Public methods (3)
  • back2draft(self)
    @api.multi
  • create_move(self)
    @api.multi
  • cutoff_type_label_map(self)
    @property

New fields (14)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True string='Amount'
  • analytic_account_code Char
    readonly=True related='analytic_account_id.code' string='Analytic Account Code'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    readonly=True related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • tax_ids Many2many → account.tax
    column1='cutoff_line_id' column2='tax_id' readonly=True string='Taxes' args: 'account.tax'
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True string='Base'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one
    readonly=True related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True string='Sequence'
  • tax_id Many2one → account.tax
    required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (1)
  • default_cutoff_journal_id Many2one → account.journal
    string='Default Cut-off Journal' args: 'account.journal'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/10.0/account_cutoff_base
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Adrien Peiffer (ACSONE), oca-travis, Weblate
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_accountant
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
view_account_config_settings cutoff.account.config.settings.form account.config.settings group Inherits account.view_account_config_settings
Models touched (6)

New fields (1)
  • default_cutoff_journal_id Many2one
    related='company_id.default_cutoff_journal_id'
Public methods (0)

No public methods.

New fields (11)
  • company_currency_id Many2one
    readonly=True related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    default=<expr> domain=[('deprecated', '=', False)] readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account' args: 'account.account'
  • cutoff_date Date
    copy=False default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' track_visibility='onchange'
  • cutoff_journal_id Many2one → account.journal
    default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal' args: 'account.journal'
  • line_ids One2many → account.cutoff.line
    readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines' args: 'account.cutoff.line', 'parent_id'
  • move_id Many2one → account.move
    copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=<expr> help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True string='State' track_visibility='onchange' args: [('draft', 'Draft'), ('done', 'Done')]
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' track_visibility='onchange'
  • type Selection
    readonly=True required=True states={'draft': [('readonly', False)]} string='Type' args: [('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (5)
  • back2draft(self)
  • button_line_tree(self)
  • create_move(self)
  • get_lines(self)
    This method is designed to be inherited in other modules
  • unlink(self)

New fields (15)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True string='Amount'
  • analytic_account_code Char
    readonly=True related='analytic_account_id.code' string='Analytic Account'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    readonly=True related='cutoff_account_id.code' string='Cut-off Account'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • notes Text
    string='Notes'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • tax_ids Many2many → account.tax
    column1='cutoff_line_id' column2='tax_id' readonly=True string='Taxes' args: 'account.tax'
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True string='Base'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one
    readonly=True related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True string='Sequence'
  • tax_id Many2one → account.tax
    readonly=True required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (1)
  • default_cutoff_journal_id Many2one → account.journal
    string='Default Cut-off Journal' args: 'account.journal'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/9.0/account_cutoff_base
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, OCA Transbot, Adrien Peiffer (ACSONE), oca-travis, Weblate
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_accountant
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
view_company_form cutoff.company.form res.company group Inherits base.view_company_form
Models touched (5)

New fields (11)
  • company_currency_id Many2one
    readonly=True related='company_id.currency_id' string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    default=_default_cutoff_account_id domain=[('deprecated', '=', False)] readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account' args: 'account.account'
  • cutoff_date Date
    copy=False readonly=True states={'draft': [('readonly', False)]} string='Cut-off Date' track_visibility='onchange'
  • cutoff_journal_id Many2one → account.journal
    default=<expr> readonly=True states={'draft': [('readonly', False)]} string='Cut-off Account Journal' args: 'account.journal'
  • line_ids One2many → account.cutoff.line
    readonly=True states={'draft': [('readonly', False)]} string='Cut-off Lines' args: 'account.cutoff.line', 'parent_id'
  • move_id Many2one → account.move
    copy=False readonly=True string='Cut-off Journal Entry' args: 'account.move'
  • move_label Char
    default=_default_move_label help="This label will be written in the 'Name' field of the Cut-off Account Move Lines and in the 'Reference' field of the Cut-off Account Move." readonly=True states={'draft': [('readonly', False)]} string='Label of the Cut-off Journal Entry'
  • state Selection
    copy=False default='draft' help="State of the cutoff. When the Journal Entry is created, the state is set to 'Done' and the fields become read-only." index=True readonly=True string='State' track_visibility='onchange' args: [('draft', 'Draft'), ('done', 'Done')]
  • total_cutoff_amount Monetary
    compute='_compute_total_cutoff' currency_field='company_currency_id' readonly=True string='Total Cut-off Amount' track_visibility='onchange'
  • type Selection
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Type' args: [('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (2)
  • back2draft(self)
    @api.multi
  • create_move(self)
    @api.multi

New fields (14)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True args: 'account.account', 'Account'
  • amount Monetary
    currency_field='currency_id' help="Amount that is used as base to compute the Cut-off Amount. This Amount is in the 'Amount Currency', which may be different from the 'Company Currency'." readonly=True string='Amount'
  • analytic_account_code Char
    readonly=True related='analytic_account_id.code' string='Analytic Account Code'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one → res.currency
    help="Currency of the 'Amount' field." readonly=True string='Amount Currency' args: 'res.currency'
  • cutoff_account_code Char
    readonly=True related='cutoff_account_id.code' string='Cut-off Account Code'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Cut-off Amount without taxes in the Company Currency.' readonly=True string='Cut-off Amount'
  • name Char
    args: 'Description'
  • parent_id Many2one → account.cutoff
    ondelete='cascade' string='Cut-off' args: 'account.cutoff'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • tax_ids Many2many → account.tax
    id1='cutoff_line_id' id2='tax_id' readonly=True string='Taxes' args: 'account.tax'
  • tax_line_ids One2many → account.cutoff.tax.line
    readonly=True string='Cut-off Tax Lines' args: 'account.cutoff.tax.line', 'parent_id'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Regular Account' args: 'account.account'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] required=True string='Cut-off Account' args: 'account.account'
  • cutoff_type Selection
    required=True string='Cut-off Type' args: [('all', 'All Cut-off Types'), ('accrued_revenue', 'Accrued Revenue'), ('accrued_expense', 'Accrued Expense'), ('prepaid_revenue', 'Prepaid Revenue'), ('prepaid_expense', 'Prepaid Expense')]
Public methods (0)

No public methods.

New fields (10)
  • amount Monetary
    currency_field='currency_id' help='Tax Amount in the currency of the PO.' readonly=True string='Tax Amount'
  • analytic_account_id Many2one → account.analytic.account
    domain=[('account_type', '!=', 'closed')] readonly=True string='Analytic Account' args: 'account.analytic.account'
  • base Monetary
    currency_field='currency_id' help='Base Amount in the currency of the PO.' readonly=True string='Base'
  • company_currency_id Many2one
    readonly=True related='parent_id.company_currency_id' string='Company Currency'
  • currency_id Many2one
    readonly=True related='parent_id.currency_id' string='Currency'
  • cutoff_account_id Many2one → account.account
    domain=[('deprecated', '=', False)] readonly=True required=True string='Cut-off Account' args: 'account.account'
  • cutoff_amount Monetary
    currency_field='company_currency_id' help='Tax Cut-off Amount in the company currency.' readonly=True string='Cut-off Tax Amount'
  • parent_id Many2one → account.cutoff.line
    ondelete='cascade' required=True string='Account Cut-off Line' args: 'account.cutoff.line'
  • sequence Integer
    readonly=True string='Sequence'
  • tax_id Many2one → account.tax
    required=True string='Tax' args: 'account.tax'
Public methods (0)

No public methods.

New fields (1)
  • default_cutoff_journal_id Many2one → account.journal
    string='Default Cut-off Journal' args: 'account.journal'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/8.0/account_cutoff_base
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Yannick Vaucher, Alexandre Fayolle, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Adrien Peiffer (ACSONE), oca-travis, Weblate
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-tools:
    - account_reversal
odoo/odoo:
    - account_accountant
    - account_voucher
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains objets, fields and menu entries that are used by other
cut-off modules. So you need to install other cut-off modules to get the
additionnal functionalities :

* the module *account_cutoff_prepaid* will manage prepaid cut-offs based on
  start date and end date,
* the module *account_cutoff_accrual_picking* will manage the accruals based
  on the status of the pickings.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.
    

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
view_company_form cutoff.company.form res.company group Inherits base.view_company_form
Models touched (5)

New fields (0)

No new fields.

Public methods (4)
  • back2draft(self, cr, uid, ids, context=None)
  • copy(self, cr, uid, id, default=None, context=None)
  • create_move(self, cr, uid, ids, context=None)
  • cutoff_date_onchange(self, cr, uid, ids, type, cutoff_date, move_label, context=None)

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.

REPOSITORY
REPOSITORYOCA/account-closing
GIT
GIThttps://github.com/OCA/account-closing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-closing/tree/7.0/account_cutoff_base
VERSION
VERSION 0.1
CATEGORY
CATEGORYAccounting & Finance
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Alexandre Fayolle, Pedro M. Baeza, Rudolf Schnapka
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account_accountant
    - account_voucher
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module contains objets, fields and menu entries that are used by other
cut-off modules. So you need to install other cut-off modules to get the
additionnal functionalities :

* the module *account_cutoff_prepaid* will manage prepaid cut-offs based on
  start date and end date,
* the module *account_cutoff_accrual_picking* will manage the accruals based
  on the status of the pickings.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.
    

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_cutoff_filter account.cutoff.filter account.cutoff search New
account_cutoff_form account.cutoff.form account.cutoff form New
account_cutoff_line_form account.cutoff.line.form account.cutoff.line form New
account_cutoff_line_tree account.cutoff.line.tree account.cutoff.line tree New
account_cutoff_mapping_form account.cutoff.mapping.form account.cutoff.mapping form New
account_cutoff_mapping_tree account.cutoff.mapping.tree account.cutoff.mapping tree New
account_cutoff_tax_line_form account.cutoff.tax.line.form account.cutoff.tax.line form New
account_cutoff_tax_line_tree account.cutoff.tax.line.tree account.cutoff.tax.line tree New
account_cutoff_tree account.cutoff.tree account.cutoff tree New
view_company_form cutoff.company.form res.company group Inherits base.view_company_form
Models touched (5)

New fields (0)

No new fields.

Public methods (4)
  • back2draft(self, cr, uid, ids, context=None)
  • copy(self, cr, uid, id, default=None, context=None)
  • create_move(self, cr, uid, ids, context=None)
  • cutoff_date_onchange(self, cr, uid, ids, type, cutoff_date, move_label)

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.