| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/contract |
| GIT | |
| GIT | https://github.com/OCA/contract.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/contract/tree/18.0/contract_refund_on_stop |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | sbejaoui, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/contract |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/contract: - contract_line_successor - contract - contract_variable_qty_prorated - contract_variable_quantity odoo/odoo: - base - account - base_setup - web - onboarding - product - 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 allows stopping a contract line even after it has been invoiced. When the stop date is earlier than the last invoiced date, the system will: - Automatically create a refund invoice for the period between the stop date and the last invoiced date. - Adjust the `last_date_invoiced` of the contract line to match the stop date. - Proceed with the normal stop process. To accurately compute the refund amount, the module depends on **`contract_variable_qty_prorated`**, which provides the prorating logic used to determine how much of the previously invoiced quantity should be refunded based on the actual number of days covered by the refund period. Without this dependency, it would not be possible to proportionally calculate the part of the invoiced quantity corresponding to unused service time when a contract is stopped mid-period. This ensures that users can gracefully handle early contract terminations without manual refund management, while maintaining accurate prorated invoicing and accounting consistency. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_form_view |
res.config.settings | xpath | Inherits contract.res_config_settings_form_view |
No new fields.
Public methods (1)stop(self, date_end, manual_renew_needed=False, post_message=True)
enable_contract_line_refund_on_stop
Boolean
help='If enabled, users can stop a contract line even after it has been invoiced. A refund will automatically be created for the invoiced period beyond the stop date.'
No public methods.
enable_contract_line_refund_on_stop
Boolean
readonly=False
related='company_id.enable_contract_line_refund_on_stop'
No public methods.
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/contract |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] contract_refund_on_stop (#1369) |