Sale Validity Auto-Cancel

sale_validity_auto_cancel
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/19.0/sale_validity_auto_cancel
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, OERP Canada
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, OERP Canada
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Yash Pathak
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a scheduled action that automatically cancels
quotations after their expiration date.

A company setting can be modified to decide how many days after the
expiration date the quotations are automatically cancelled.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
view_partner_form res.partner.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    default=True help="If unchecked, you will be able to restrict \nthis contact's expired SO from being auto-canceled." string='Auto Cancel Expired SaleOrder'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    related='partner_id.auto_cancel_expired_so' string='Auto Cancel'
Public methods (1)
  • cron_sale_validity_auto_cancel(self, company_ids=None)
    @api.model
    Auto cancel expired sale orders for companies in company_ids. If company_ids is None, all companies are considered. :param company_ids: list of company ids to consider
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/18.0/sale_validity_auto_cancel
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, OERP Canada
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, OERP Canada
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Stéphane Mangin, Bhavesh Heliconia, Parag
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a scheduled action that automatically cancels
quotations after their expiration date.

A company setting can be modified to decide how many days after the
expiration date the quotations are automatically cancelled.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
view_partner_form res.partner.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    default=True help="If unchecked, you will be able to restrict \nthis contact's expired SO from being auto-canceled." string='Auto Cancel Expired SaleOrder'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    related='partner_id.auto_cancel_expired_so' string='Auto Cancel'
Public methods (1)
  • cron_sale_validity_auto_cancel(self, company_ids=None)
    @api.model
    Auto cancel expired sale orders for companies in company_ids. If company_ids is None, all companies are considered. :param company_ids: list of company ids to consider
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/17.0/sale_validity_auto_cancel
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, OERP Canada
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, OERP Canada
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, fd-oerp
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a scheduled action that automatically cancels
quotations after their expiration date.

A company setting can be modified to decide how many days after the
expiration date the quotations are automatically cancelled.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
view_partner_form res.partner.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    default=True help="If unchecked, you will be able to restrict \nthis contact's expired SO from being auto-canceled." string='Auto Cancel Expired SaleOrder'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    related='partner_id.auto_cancel_expired_so' string='Auto Cancel'
Public methods (1)
  • cron_sale_validity_auto_cancel(self)
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/16.0/sale_validity_auto_cancel
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, OERP Canada
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, OERP Canada
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Roger, sygel
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a scheduled action that automatically cancels
quotations after their expiration date.

Added starting from v16: A checkbox has been added in the contact form under the Sales&Purchase tab. This checkbox is selected by default and controls whether quotations related to that contact will be automatically canceled. If unchecked, the scheduled action will not cancel quotations for that specific contact, allowing more control over the auto-cancellation process on a per-contact basis.

A company setting can be modified to decide how many days after the
expiration date the quotations are automatically cancelled.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
view_partner_form res.partner.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    default=True help="If unchecked, you will be able to restrict \nthis contact's expired SO from being auto-canceled." string='Auto Cancel Expired SaleOrder'
Public methods (0)

No public methods.

New fields (1)
  • auto_cancel_expired_so Boolean
    related='partner_id.auto_cancel_expired_so' string='Auto Cancel'
Public methods (1)
  • cron_sale_validity_auto_cancel(self)
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/15.0/sale_validity_auto_cancel
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSJordiMForgeFlow, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:33
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
Models touched (3)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • cron_sale_validity_auto_cancel(self)
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/14.0/sale_validity_auto_cancel
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Juany Davila
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
Models touched (3)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • cron_sale_validity_auto_cancel(self)
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/13.0/sale_validity_auto_cancel
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSJordiMForgeFlow, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form (in sale_validity_auto_cancel) res.config.settings xpath Inherits sale.res_config_settings_view_form
Models touched (3)

New fields (1)
  • sale_validity_auto_cancel_days Integer
    default=0 help='Quotations will be cancelled after the specified number of days since the expiration date.' string='Auto-cancel expired quotations after (days)'
Public methods (0)

No public methods.

New fields (1)
  • sale_validity_auto_cancel_days Integer
    readonly=False related='company_id.sale_validity_auto_cancel_days'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • cron_sale_validity_auto_cancel(self)