TIP: You can type at any time to perform a new search.
Brazilian Account Installment Renegotiation
l10n_br_account_renegotiation · OCA/l10n-brazil
Security findings
Migration considerations
view_installment_renegotiation_wizard_form— For a target of Odoo 17.0+: view 'view_installment_renegotiation_wizard_form' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · sourceview_move_form_renegotiation— For a target of Odoo 17.0+: view 'view_move_form_renegotiation' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- 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
- 166 days ago
- Last activity
- 54 days ago
- Repository
- OCA/l10n-brazil
- Pull request
- [18.0][MIG] l10n_br_account_renegotiation (#4498)