Account Invoice Advance Compensation

account_invoice_advance_compensation
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_advance_compensation
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Invoicing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Escodoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Escodoo
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Kaynnan Lemes
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 provides a comprehensive solution for managing advance payments and their compensation in Odoo. It enables businesses to efficiently handle prepayments and their application against regular invoices through a user-friendly interface.

Key Features:
- Dedicated advance payment tracking for both customers and suppliers
- Flexible compensation wizard for applying advances against invoices
- Automatic reconciliation of advance payments with regular invoices
- Configurable advance payment journals
- Multi-currency support for advance payments

The module streamlines the advance payment process by providing a structured workflow for recording, tracking, and compensating advance payments, ensuring accurate financial records and improved cash flow management.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
account_invoice_advance_compensation_wizard_view_form account.invoice.advance.compensation.wizard.form account.invoice.advance.compensation.wizard form New
view_account_journal_form_inherit account.journal.form.inherit.advance account.journal xpath Inherits account.view_account_journal_form
view_move_form_inherit account.move.form.inherit.advance.compensation account.move xpath Inherits account.view_move_form
Models touched (4)

New fields (9)
  • advance_balance Monetary
    compute='_compute_advance_balance' currency_field='currency_id' help='The available balance in the selected advance line' readonly=True string='Available Balance'
  • advance_line_id Many2one → account.move.line
    comodel_name='account.move.line' domain="[('id', 'in', available_advance_line_ids)]" help='The advance line to be used for compensation' required=True string='Advance Line'
  • amount Monetary
    currency_field='currency_id' help='The amount to be compensated' required=True string='Compensation Amount'
  • available_advance_line_ids Many2many → account.move.line
    comodel_name='account.move.line' compute='_compute_available_advance_lines' help='Available advance lines for compensation'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' compute='_compute_currency' help='The currency of the compensation' readonly=False store=True string='Currency'
  • date Date
    default=fields.Date.context_today help='The date of the compensation' required=True string='Compensation Date'
  • invoice_line_id Many2one → account.move.line
    comodel_name='account.move.line' domain="[('move_id', '=', move_id), ('amount_residual', '!=', 0)]" help='The invoice line to be compensated' required=True string='Invoice Line'
  • journal_id Many2one → account.journal
    comodel_name='account.journal' domain="[('is_advance_journal', '=', True)]" help='The journal to be used for the compensation entry' required=True string='Journal'
  • move_id Many2one → account.move
    comodel_name='account.move' default=<expr> help='Invoice to be compensated with an advance.' readonly=True required=True string='Invoice'
Public methods (1)
  • action_confirm_compensation(self)

New fields (1)
  • is_advance_journal Boolean
    help='Check this box if this journal is for compensation advances' string='Is Compensation Advance Journal'
Public methods (0)

No public methods.

New fields (1)
  • advance_invoice Boolean
    compute='_compute_advance_invoice' help='Indicates whether this invoice has eligible advance payments available' string='Has Advance Payments'
Public methods (1)
  • action_open_advance_compensation(self)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)