| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-brazil |
| GIT | |
| GIT | https://github.com/OCA/l10n-brazil.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_account_renegotiation |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Raphaël Valyi, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-brazil |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:11:56 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/bank-payment: - account_payment_partner - account_payment_mode odoo/odoo: - account - base_setup - base - web - product - 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 allows renegotiating payment installments on posted invoices without having to reset them to draft. In Brazilian fiscal scenarios, it's common to need to adjust payment due dates and amounts after an invoice (NFe) has been validated. This module provides a wizard to modify the payment terms while keeping the fiscal document unchanged. Features: - Renegotiate payment installments on posted invoices - Modify due dates and amounts while keeping the total unchanged - Re-generate all installments from the payment term if needed - Edit the payment mode on installments (supports heterogenous payment modes) - Automatically logs changes in the invoice's chatter - Does not affect the fiscal document (NFe) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_installment_renegotiation_wizard_form |
account.installment.renegotiation.wizard.form | account.installment.renegotiation.wizard | form | New |
view_move_form_renegotiation |
account.move.form.renegotiation | account.move | xpath | Inherits account.view_move_form |
company_id
Many2one → res.company
comodel_name='res.company'
readonly=True
related='move_id.company_id'
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
related='move_id.currency_id'
difference
Monetary
compute='_compute_totals'
currency_field='currency_id'
help='Difference between original and new totals (must be zero)'
line_ids
One2many → account.installment.renegotiation.wizard.line
comodel_name='account.installment.renegotiation.wizard.line'
inverse_name='wizard_id'
string='Installments'
move_id
Many2one → account.move
comodel_name='account.move'
ondelete='cascade'
readonly=True
required=True
string='Invoice'
new_total
Monetary
compute='_compute_totals'
currency_field='currency_id'
help='Total amount of new installments'
original_total
Monetary
compute='_compute_totals'
currency_field='currency_id'
help='Total amount of unreconciled installments before renegotiation'
payment_term_id
Many2one → account.payment.term
comodel_name='account.payment.term'
help='Select a payment term to automatically regenerate the installments.'
string='New Payment Term'
starting_date
Date
help="Base date for computing the new payment term. Leave as the Invoice Date for corrections, or change to today's date for debt renegotiations."
action_apply(self)
create(self, vals_list)
amount
Monetary
currency_field='currency_id'
required=True
company_id
Many2one
related='wizard_id.company_id'
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
related='wizard_id.currency_id'
date_maturity
Date
required=True
string='Due Date'
original_line_id
Many2one → account.move.line
comodel_name='account.move.line'
help='The original invoice line this installment is based on (if any)'
readonly=True
string='Original Line'
payment_mode_id
Many2one → account.payment.mode
comodel_name='account.payment.mode'
domain="[('company_id', '=', company_id)]"
string='Payment Mode'
wizard_id
Many2one → account.installment.renegotiation.wizard
comodel_name='account.installment.renegotiation.wizard'
ondelete='cascade'
required=True
string='Wizard'
No public methods.
can_renegotiate_installments
Boolean
compute='_compute_can_renegotiate_installments'
help='Technical field to determine if installment renegotiation is available'
action_renegotiate_installments(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/l10n-brazil |
| PULL REQUEST | |
| PULL REQUEST | [18.0][MIG] l10n_br_account_renegotiation (#4498) |