OdooWiki OCA HUB

Contract Line Successor

contract_line_successor folder_open OCA/contract open_in_new
Uncategorised License: AGPL-3

Contract Line Successor extends contract.line model to support advanced contract lifecycle management, including suspension, successor planning, cancellation, and renewal. It provides a flexible and robust framework for managing complex contract line scenarios in a clean and structured way.

Features

  • Successor and Predecessor Management
  • Link contract lines with successor and predecessor lines.
  • Plan successors automatically or manually after a stop or suspension.
  • Contract Line Lifecycle States
  • Manage contract lines with the following computed states:
  • Upcoming
  • In-Progress
  • To Renew
  • Upcoming Close
  • Closed
  • Canceled
  • Lifecycle Operations
  • Stop a contract line.
  • Plan a successor for a contract line.
  • Stop and plan a successor in one operation (useful for suspensions).
  • Cancel and un-cancel contract lines.
  • Renew contract lines automatically (new line or extension).
  • Auto-Renewal Handling
  • Auto-renewal based on company settings (extend existing line or create a new one).
  • Cron job to automate renewal of eligible contract lines.
  • Data Integrity and Validation
  • Prevent invalid successor or predecessor configurations.
  • Validate state transitions and date overlaps.
  • Ensure clean renewal and cancellation workflows.
  • Audit Trail
  • Automatic posting of chatter messages for lifecycle events like stops, renewals, suspensions, cancellations, etc.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Manage the full life of contract lines: stop, suspend, plan a successor, cancel, un-cancel and renew them, with automatic renewal and clear lifecycle states.

This module adds a complete lifecycle to contract lines on top of the standard Contracts app. Each line now shows a status such as Upcoming, In-progress, To renew, Upcoming Close, Closed or Canceled, and buttons appear only when an action is actually possible.

From a contract line you can: - Stop a line by setting an end date, optionally marking that a manual renewal is still needed. - Plan a successor: a copy of the line is created for a later period and linked to the original one. - Suspend a line: stop it and plan its successor in one operation, shifting dates automatically. - Cancel or un-cancel a line, with a wizard asking for the next invoice date when un-cancelling. - Renew a line, either by extending its end date or by creating a new successor line, depending on a company setting.

A scheduled job called "Renew Contract lines" renews auto-renewing lines whose termination notice date has passed. Contract templates carry auto-renew and termination-notice settings, and the company setting "Create New Line At Contract Line Renew" controls whether renewal extends the line or creates a new one. The module also prevents overlapping periods between a line and its predecessor or successor, and blocks impossible combinations such as an auto-renewing line with a successor or without an end date.

Depends on

Models and fields (7)
  • res.company · extends an existing modelcreate_new_line_at_contract_line_renew
  • contract.line · extends an existing modelstate, is_stop_allowed (Stop allowed?), is_cancel_allowed (Cancel allowed?), manual_renew_needed, is_un_cancel_allowed (Un-Cancel allowed?), termination_notice_date, is_plan_successor_allowed (Plan successor allowed?), successor_contract_line_id (Successor Contract Line), predecessor_contract_line_id (Predecessor Contract Line), is_stop_plan_successor_allowed (Stop/Plan successor allowed?)
  • contract.contract · extends an existing modelline_recurrence
  • contract.template · extends an existing modelis_auto_renew
  • res.config.settings · extends an existing modelcreate_new_line_at_contract_line_renew (Create New Line At Contract Line Renew)
  • contract.line.wizard · new modeldate_end, date_start, is_auto_renew, contract_line_id (Contract Line), manual_renew_needed, recurring_next_date (Next Invoice Date)
  • contract.template.line · extends an existing modelis_auto_renew (Auto Renew), auto_renew_interval (Renew Every), auto_renew_rule_type (Renewal type), termination_notice_interval (Termination Notice Before), termination_notice_rule_type (Termination Notice type)

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 19.0
  • Auto-Renewal Strategy In the company settings, define whether renewing a contract line:
  • Extends the current line (updates date_end),
  • or creates a new successor contract line. Field: Company > Configuration > Contracts > Create new contract line at renewal
  • Scheduled Actions Ensure the scheduled action Contract Line: Auto Renew is activated if you want automatic renewal without manual intervention.
  • Select a contract and enable the option "Recurrence at line level?".
  • Once enabled, you will have access to several actions at the contract line level:
  • Stop a contract line and optionally plan a successor.
  • Handle temporary suspensions and resume the contract line after the suspension period.
  • Cancel and un-cancel contract lines if necessary.
  • Renew contract lines either by extending the current line or by creating a new successor line automatically.

The contract lines list is colour-coded by their lifecycle state so the status is readable at a glance (mirroring the contract list and Odoo's own draft/expired conventions):

  • Upcoming — blue (like a draft order), the line has not started yet.
  • In-progress — normal, the line is currently running.
  • To renew / Upcoming close — purple, the line needs attention before its end date (distinct from orange/warning, which is kept for real problems).
  • Closed / Canceled — muted/grey, the line is no longer active.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.