TIP: You can type at any time to perform a new search.
Brazilian Account Installment Renegotiation
l10n_br_account_renegotiation · OCA/l10n-brazil
🛠 Migration considerations
view_installment_renegotiation_wizard_form— View 'view_installment_renegotiation_wizard_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceview_move_form_renegotiation— View 'view_move_form_renegotiation' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · source
Found by automated static analysis: patterns worth a look before/after upgrading this module to a newer Odoo version.
- Repository
- OCA/l10n-brazil · module folder · Try on Runboat
- Module version
- Category
- Localization
- Folder size
- 0.08 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-brazil
- Last tracking update
- 2026-08-18 17:07:43
- Authors
- Akretion, Odoo Community Association (OCA)
- Maintainers
- Akretion, Odoo Community Association (OCA)
- Committers
- Raphaël Valyi, OCA-git-bot, oca-ci, CristianoMafraJunior
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- 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)
Code Analysis ⓘ
Views touched (2)
| 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 | form | Inherits account.view_move_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (9)
-
company_idMany2one → res.companycomodel_name='res.company'readonly=Truerelated='move_id.company_id' -
currency_idMany2one → res.currencycomodel_name='res.currency'readonly=Truerelated='move_id.currency_id' -
differenceMonetarycompute='_compute_totals'currency_field='currency_id'help='Difference between original and new totals (must be zero)' -
line_idsOne2many → account.installment.renegotiation.wizard.linecomodel_name='account.installment.renegotiation.wizard.line'inverse_name='wizard_id'string='Installments' -
move_idMany2one → account.movecomodel_name='account.move'ondelete='cascade'readonly=Truerequired=Truestring='Invoice' -
new_totalMonetarycompute='_compute_totals'currency_field='currency_id'help='Total amount of new installments' -
original_totalMonetarycompute='_compute_totals'currency_field='currency_id'help='Total amount of unreconciled installments before renegotiation' -
payment_term_idMany2one → account.payment.termcomodel_name='account.payment.term'help='Select a payment term to automatically regenerate the installments.'string='New Payment Term' -
starting_dateDatehelp="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)Apply the renegotiation to the invoice. -
create(self, vals_list)@api.model_create_multiOverride create to auto-populate fields and installment lines.
New fields (7)
-
amountMonetarycurrency_field='currency_id'required=True -
company_idMany2onerelated='wizard_id.company_id' -
currency_idMany2one → res.currencycomodel_name='res.currency'readonly=Truerelated='wizard_id.currency_id' -
date_maturityDaterequired=Truestring='Due Date' -
original_line_idMany2one → account.move.linecomodel_name='account.move.line'help='The original invoice line this installment is based on (if any)'readonly=Truestring='Original Line' -
payment_mode_idMany2one → account.payment.modecomodel_name='account.payment.mode'domain="[('company_id', '=', company_id)]"string='Payment Mode' -
wizard_idMany2one → account.installment.renegotiation.wizardcomodel_name='account.installment.renegotiation.wizard'ondelete='cascade'required=Truestring='Wizard'
No public methods.
New fields (1)
-
can_renegotiate_installmentsBooleancompute='_compute_can_renegotiate_installments'help='Technical field to determine if installment renegotiation is available'
-
action_renegotiate_installments(self)Open the installment renegotiation wizard. Only available for posted invoices with unreconciled payment_term lines.
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 121 days ago
- Last activity
- 9 days ago
- Repository
- OCA/l10n-brazil
- Pull request
- [18.0][MIG] l10n_br_account_renegotiation (#4498)