Account Invoice Clearing

account_invoice_clearing
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/19.0/account_invoice_clearing
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Moduon
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Moduon
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Eduardo de Miguel
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module complements the functionality of *Automatic Entries* in
Accounting. It provides a Wizard to clear invoices by creating an
intermediate journal entry. It allows to clear any invoice with its
opposite types. *out\_* types are cleared with *in\_* types and vice
versa. The invoices to be cleared have to be not paid or partially paid.
The wizard will use the residual amount of the invoices in the clearing
process.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
account_invoice_clearing_wizard_form_view account.invoice.clearing.wizard.form.view account.invoice.clearing.wizard form New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (3)

New fields (15)
  • account_id Many2one
    readonly=True related='move_line_id.account_id'
  • amount_residual Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.amount_residual'
  • amount_to_clear Monetary
    currency_field='company_currency_id' default=0.0 readonly=True string='Clearing amount'
  • can_use_line Boolean
    compute='_compute_can_use_line' store=False
  • clearing_id Many2one → account.invoice.clearing.wizard
    comodel_name='account.invoice.clearing.wizard' string='Clearing'
  • company_currency_id Many2one
    readonly=True related='move_line_id.company_currency_id'
  • credit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.credit'
  • date Date
    readonly=True related='move_line_id.date'
  • date_maturity Date
    readonly=True related='move_line_id.date_maturity'
  • debit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.debit'
  • invoice_id Many2one
    readonly=True related='move_line_id.move_id'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' required=True string='Move Line'
  • name Char
    readonly=True related='move_line_id.name'
  • product_id Many2one
    readonly=True related='move_line_id.product_id'
  • sequence Integer
    default=10
Public methods (1)
  • action_use_all_amount_residual(self)
    Fill the amount to clear with the residual amount.

New fields (14)
  • amount_to_clear Monetary
    compute='_compute_amount_to_clear' currency_field='company_currency_id' store=False
  • commercial_partner_id Many2one → res.partner
    comodel_name='res.partner' compute='_compute_initial_data' store=True
  • company_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_initial_data' store=True
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_initial_data' store=True
  • date Date
    default=fields.Date.context_today required=True
  • invoice_ids Many2many → account.move
    comodel_name='account.move' domain=[('move_type', '!=', 'entry'), ('state', '=', 'posted')] required=True string='Invoices/Bills'
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=<expr> domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" required=True string='Journal'
  • line_ids One2many → account.invoice.clearing.lines.wizard
    comodel_name='account.invoice.clearing.lines.wizard' inverse_name='clearing_id' string='Lines'
  • move_data Text
    compute='_compute_move_data' help='JSON value of the moves to be created'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_initial_data' store=True
  • move_line_prefix Char
    default='Clearing operation' help='Prefix to be used in the name of the move lines generated by this wizard' string='Prefix for move lines'
  • move_name Char
    default='Clearing operation' help='Name of the move generated by this wizard'
  • move_type Char
    compute='_compute_initial_data' store=True
  • preview_move_data Text
    compute='_compute_preview_move_data' help='JSON value of the data to be displayed in the previewer'
Public methods (7)
  • action_fill_amount_to_clear(self)
    Fill the amount to clear in all lines until amount to clear is zero.
  • action_reopen_wizard(self)
    Reopen the wizard.
  • action_reset_lines(self)
    Reset all lines.
  • action_sort_by_date_due(self, reverse=False)
    Sort lines by date due.
  • action_sort_by_residual(self)
    Sort lines by residual amount.
  • button_confirm(self)
    Create the clearing move.
  • default_get(self, fields)

New fields (0)

No new fields.

Public methods (1)
  • action_open_invoice_clearing_wizard(self)
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/18.0/account_invoice_clearing
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Moduon
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Moduon
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Sabrina Martín
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:06
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 complements the functionality of *Automatic Entries* in
Accounting. It provides a Wizard to clear invoices by creating an
intermediate journal entry. It allows to clear any invoice with its
opposite types. *out\_* types are cleared with *in\_* types and vice
versa. The invoices to be cleared have to be not paid or partially paid.
The wizard will use the residual amount of the invoices in the clearing
process.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
account_invoice_clearing_wizard_form_view account.invoice.clearing.wizard.form.view account.invoice.clearing.wizard form New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (3)

New fields (15)
  • account_id Many2one
    readonly=True related='move_line_id.account_id'
  • amount_residual Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.amount_residual'
  • amount_to_clear Monetary
    currency_field='company_currency_id' default=0.0 readonly=True string='Clearing amount'
  • can_use_line Boolean
    compute='_compute_can_use_line' store=False
  • clearing_id Many2one → account.invoice.clearing.wizard
    comodel_name='account.invoice.clearing.wizard' string='Clearing'
  • company_currency_id Many2one
    readonly=True related='move_line_id.company_currency_id'
  • credit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.credit'
  • date Date
    readonly=True related='move_line_id.date'
  • date_maturity Date
    readonly=True related='move_line_id.date_maturity'
  • debit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.debit'
  • invoice_id Many2one
    readonly=True related='move_line_id.move_id'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' required=True string='Move Line'
  • name Char
    readonly=True related='move_line_id.name'
  • product_id Many2one
    readonly=True related='move_line_id.product_id'
  • sequence Integer
    default=10
Public methods (1)
  • action_use_all_amount_residual(self)
    Fill the amount to clear with the residual amount.

New fields (14)
  • amount_to_clear Monetary
    compute='_compute_amount_to_clear' currency_field='company_currency_id' store=False
  • commercial_partner_id Many2one → res.partner
    comodel_name='res.partner' compute='_compute_initial_data' store=True
  • company_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_initial_data' store=True
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_initial_data' store=True
  • date Date
    default=fields.Date.context_today required=True
  • invoice_ids Many2many → account.move
    comodel_name='account.move' domain=[('move_type', '!=', 'entry'), ('state', '=', 'posted')] required=True string='Invoices/Bills'
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=_get_default_journal domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" required=True string='Journal'
  • line_ids One2many → account.invoice.clearing.lines.wizard
    comodel_name='account.invoice.clearing.lines.wizard' inverse_name='clearing_id' string='Lines'
  • move_data Text
    compute='_compute_move_data' help='JSON value of the moves to be created'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_initial_data' store=True
  • move_line_prefix Char
    default='Clearing operation' help='Prefix to be used in the name of the move lines generated by this wizard' string='Prefix for move lines'
  • move_name Char
    default='Clearing operation' help='Name of the move generated by this wizard'
  • move_type Char
    compute='_compute_initial_data' store=True
  • preview_move_data Text
    compute='_compute_preview_move_data' help='JSON value of the data to be displayed in the previewer'
Public methods (9)
  • action_fill_amount_to_clear(self)
    Fill the amount to clear in all lines until amount to clear is zero.
  • action_reopen_wizard(self)
    Reopen the wizard.
  • action_reset_lines(self)
    Reset all lines.
  • action_sort_by_date_due_asc(self)
    Sort lines by date due ascending.
  • action_sort_by_date_due_desc(self)
    Sort lines by date due descending.
  • action_sort_by_residual_asc(self)
    Sort lines by residual amount ascending.
  • action_sort_by_residual_desc(self)
    Sort lines by residual amount descending.
  • button_confirm(self)
    Create the clearing move.
  • default_get(self, fields)

New fields (0)

No new fields.

Public methods (1)
  • action_open_invoice_clearing_wizard(self)
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/16.0/account_invoice_clearing
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Moduon
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Moduon
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Eduardo De Miguel
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:52
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 (2)
XML IDNameModelTypeStatus
account_invoice_clearing_wizard_form_view account.invoice.clearing.wizard.form.view account.invoice.clearing.wizard form New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (3)

New fields (15)
  • account_id Many2one
    readonly=True related='move_line_id.account_id'
  • amount_residual Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.amount_residual'
  • amount_to_clear Monetary
    currency_field='company_currency_id' default=0.0 readonly=True string='Clearing amount'
  • can_use_line Boolean
    compute='_compute_can_use_line' store=False
  • clearing_id Many2one → account.invoice.clearing.wizard
    comodel_name='account.invoice.clearing.wizard' string='Clearing'
  • company_currency_id Many2one
    readonly=True related='move_line_id.company_currency_id'
  • credit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.credit'
  • date Date
    readonly=True related='move_line_id.date'
  • date_maturity Date
    readonly=True related='move_line_id.date_maturity'
  • debit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.debit'
  • invoice_id Many2one
    readonly=True related='move_line_id.move_id'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' required=True string='Move Line'
  • name Char
    readonly=True related='move_line_id.name'
  • product_id Many2one
    readonly=True related='move_line_id.product_id'
  • sequence Integer
    default=10
Public methods (1)
  • action_use_all_amount_residual(self)
    Fill the amount to clear with the residual amount.

New fields (14)
  • amount_to_clear Monetary
    compute='_compute_amount_to_clear' currency_field='company_currency_id' store=False
  • commercial_partner_id Many2one → res.partner
    comodel_name='res.partner' compute='_compute_initial_data' store=True
  • company_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_initial_data' store=True
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_initial_data' store=True
  • date Date
    default=fields.Date.context_today required=True
  • invoice_ids Many2many → account.move
    comodel_name='account.move' domain=[('move_type', '!=', 'entry'), ('state', '=', 'posted')] required=True string='Invoices/Bills'
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=_get_default_journal domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" required=True string='Journal'
  • line_ids One2many → account.invoice.clearing.lines.wizard
    comodel_name='account.invoice.clearing.lines.wizard' inverse_name='clearing_id' string='Lines'
  • move_data Text
    compute='_compute_move_data' help='JSON value of the moves to be created'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_initial_data' store=True
  • move_line_prefix Char
    default='Clearing operation' help='Prefix to be used in the name of the move lines generated by this wizard' string='Prefix for move lines'
  • move_name Char
    default='Clearing operation' help='Name of the move generated by this wizard'
  • move_type Char
    compute='_compute_initial_data' store=True
  • preview_move_data Text
    compute='_compute_preview_move_data' help='JSON value of the data to be displayed in the previewer'
Public methods (9)
  • action_fill_amount_to_clear(self)
    Fill the amount to clear in all lines until amount to clear is zero.
  • action_reopen_wizard(self)
    Reopen the wizard.
  • action_reset_lines(self)
    Reset all lines.
  • action_sort_by_date_due_asc(self)
    Sort lines by date due ascending.
  • action_sort_by_date_due_desc(self)
    Sort lines by date due descending.
  • action_sort_by_residual_asc(self)
    Sort lines by residual amount ascending.
  • action_sort_by_residual_desc(self)
    Sort lines by residual amount descending.
  • button_confirm(self)
    Create the clearing move.
  • default_get(self, fields)

New fields (0)

No new fields.

Public methods (1)
  • action_open_invoice_clearing_wizard(self)
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/15.0/account_invoice_clearing
VERSION
VERSION 0.1.3
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Moduon
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Moduon
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Eduardo De Miguel
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:38
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 (2)
XML IDNameModelTypeStatus
account_invoice_clearing_wizard_form_view account.invoice.clearing.wizard.form.view account.invoice.clearing.wizard form New
view_move_form account.move.form account.move xpath Inherits account.view_move_form
Models touched (3)

New fields (17)
  • account_id Many2one
    readonly=True related='move_line_id.account_id'
  • amount_residual Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.amount_residual'
  • amount_to_clear Monetary
    currency_field='company_currency_id' default=0.0 readonly=True string='Clearing amount'
  • analytic_account_id Many2one
    readonly=True related='move_line_id.analytic_account_id'
  • analytic_tag_ids Many2many
    readonly=True related='move_line_id.analytic_tag_ids'
  • can_use_line Boolean
    compute='_compute_can_use_line' store=False
  • clearing_id Many2one → account.invoice.clearing.wizard
    comodel_name='account.invoice.clearing.wizard' string='Clearing'
  • company_currency_id Many2one
    readonly=True related='move_line_id.company_currency_id'
  • credit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.credit'
  • date Date
    readonly=True related='move_line_id.date'
  • date_maturity Date
    readonly=True related='move_line_id.date_maturity'
  • debit Monetary
    currency_field='company_currency_id' readonly=True related='move_line_id.debit'
  • invoice_id Many2one
    readonly=True related='move_line_id.move_id'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' required=True string='Move Line'
  • name Char
    readonly=True related='move_line_id.name'
  • product_id Many2one
    readonly=True related='move_line_id.product_id'
  • sequence Integer
    default=10
Public methods (1)
  • action_use_all_amount_residual(self)
    Fill the amount to clear with the residual amount.

New fields (14)
  • amount_to_clear Monetary
    compute='_compute_amount_to_clear' currency_field='company_currency_id' store=False
  • commercial_partner_id Many2one → res.partner
    comodel_name='res.partner' compute='_compute_initial_data' store=True
  • company_currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_initial_data' store=True
  • company_id Many2one → res.company
    comodel_name='res.company' compute='_compute_initial_data' store=True
  • date Date
    default=fields.Date.context_today required=True
  • invoice_ids Many2many → account.move
    comodel_name='account.move' domain=[('move_type', '!=', 'entry'), ('state', '=', 'posted')] required=True string='Invoices/Bills'
  • journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' default=_get_default_journal domain="[('type', '=', 'general'), ('company_id', '=', company_id)]" required=True string='Journal'
  • line_ids One2many → account.invoice.clearing.lines.wizard
    comodel_name='account.invoice.clearing.lines.wizard' inverse_name='clearing_id' string='Lines'
  • move_data Text
    compute='_compute_move_data' help='JSON value of the moves to be created'
  • move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_initial_data' store=True
  • move_line_prefix Char
    default='Clearing operation' help='Prefix to be used in the name of the move lines generated by this wizard' string='Prefix for move lines'
  • move_name Char
    default='Clearing operation' help='Name of the move generated by this wizard'
  • move_type Char
    compute='_compute_initial_data' store=True
  • preview_move_data Text
    compute='_compute_preview_move_data' help='JSON value of the data to be displayed in the previewer'
Public methods (13)
  • action_add_lines(self)
    Add all possible lines.
  • action_fill_amount_to_clear(self)
    Fill the amount to clear in all lines until amount to clear is zero.
  • action_reopen_wizard(self)
    Reopen the wizard.
  • action_reset_lines(self)
    Reset all lines.
  • action_sort_by_date_due(self, reverse=False)
    Sort lines by date due.
  • action_sort_by_date_due_asc(self)
    Sort lines by date due ascending.
  • action_sort_by_date_due_desc(self)
    Sort lines by date due descending.
  • action_sort_by_residual(self, reverse=False)
    Sort lines by residual amount.
  • action_sort_by_residual_asc(self)
    Sort lines by residual amount ascending.
  • action_sort_by_residual_desc(self)
    Sort lines by residual amount descending.
  • action_unlink_lines(self)
    Unlink all lines.
  • button_confirm(self)
    Create the clearing move.
  • default_get(self, fields)

New fields (0)

No new fields.

Public methods (1)
  • action_open_invoice_clearing_wizard(self)