Stock Disallow Negative

stock_no_negative
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/19.0/stock_no_negative
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
By default, Odoo allows negative stock. The advantage of negative stock
is that, if some stock levels are wrong in the ERP, you will not be
blocked when validating the picking for a customer... so you will still
be able to ship the products on time (it's an example !). The problem is
that, after you forced the stock level to negative, you are supposed to
fix the stock level later via an inventory ; but this action is often
forgotten by users, so you end up with negative stock levels in your ERP
and it can stay like this forever (or at least until the next full
inventory).

If you disallow negative stock in Odoo with this module, you will be
blocked when trying to validate a stock operation that will set the
stock level of a product and/or location as negative. So you will have
to fix the wrong stock level of that product without delay, in order to
validate the stock operation in Odoo...you can't forget it anymore !

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category."
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/18.0/stock_no_negative
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, micheledic, oca-ci, Bert Van Groenendael, wout
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
By default, Odoo allows negative stock. The advantage of negative stock
is that, if some stock levels are wrong in the ERP, you will not be
blocked when validating the picking for a customer... so you will still
be able to ship the products on time (it's an example !). The problem is
that, after you forced the stock level to negative, you are supposed to
fix the stock level later via an inventory ; but this action is often
forgotten by users, so you end up with negative stock levels in your ERP
and it can stay like this forever (or at least until the next full
inventory).

If you disallow negative stock in Odoo with this module, you will be
blocked when trying to validate a stock operation that will set the
stock level of a product and/or location as negative. So you will have
to fix the wrong stock level of that product without delay, in order to
validate the stock operation in Odoo...you can't forget it anymore !

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template xpath Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category."
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/17.0/stock_no_negative
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, fd-oerp
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
By default, Odoo allows negative stock. The advantage of negative stock
is that, if some stock levels are wrong in the ERP, you will not be
blocked when validating the picking for a customer... so you will still
be able to ship the products on time (it's an example !). The problem is
that, after you forced the stock level to negative, you are supposed to
fix the stock level later via an inventory ; but this action is often
forgotten by users, so you end up with negative stock levels in your ERP
and it can stay like this forever (or at least until the next full
inventory).

If you disallow negative stock in Odoo with this module, you will be
blocked when trying to validate a stock operation that will set the
stock level of a product and/or location as negative. So you will have
to fix the wrong stock level of that product without delay, in order to
validate the stock operation in Odoo...you can't forget it anymore !

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category."
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_no_negative
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Aungkokolin1997
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category."
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/15.0/stock_no_negative
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSOCA Transbot, Weblate, OCA-git-bot, oca-ci, Joan Mateu Jordi
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:37
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category."
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/14.0/stock_no_negative
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSOCA Transbot, Víctor Martínez, Vishnu Vanneri, oca-travis, Weblate, OCA-git-bot, Ethan Hildick
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category." string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/13.0/stock_no_negative
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSmreficent, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Ethan Hildick, HviorForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category." string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/12.0/stock_no_negative
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSJairo Llopis, Luis González, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Abraham Anes, Deivis Laya, Gonzalo González Domínguez
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category." string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.multi@api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/11.0/stock_no_negative
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Enric Tobella, Jordi Ballester Alomar, OCA Transbot, oca-travis, OCA-git-bot, nicomacr, rgarnau
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category." string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.multi@api.constrains('product_id', 'quantity')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/10.0/stock_no_negative
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, OCA Transbot, oca-travis, OCA-git-bot, Abraham Anes
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_location_form stock.location.form.allow_negative_stock stock.location field Inherits stock.view_location_form
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (4)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category." string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='Allow negative stock levels for the stockable products attached to this location.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.multi@api.constrains('product_id', 'qty')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/9.0/stock_no_negative
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYInventory, Logistic, Storage
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSsebalix, mreficent, OCA Transbot, oca-travis, OCA-git-bot, SerpentCS
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product_category_form_view_inherit stock_no_negative.product.category.form product.category field Inherits stock.product_category_form_view_inherit
view_template_property_form stock_no_negative.product.template.form product.template field Inherits stock.view_template_property_form
Models touched (3)

New fields (1)
  • allow_negative_stock Boolean
    help="Allow negative stock levels for the stockable products attached to this category. The options doesn't apply to products attached to sub-categories of this category." string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (1)
  • allow_negative_stock Boolean
    help='If this option is not active on this product nor on its product category and that this product is a stockable product, then the validation of the related stock moves will be blocked if the stock level becomes negative with the stock move.' string='Allow Negative Stock'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_negative_qty(self)
    @api.multi@api.constrains('product_id', 'qty')
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/8.0/stock_no_negative
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Vauxoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Vauxoo
COMMITTERS
COMMITTERSGitHub, OCA Transbot, Roel Adriaans, oca-travis, Weblate, OCA-git-bot, Osval Reyes, Pedro
WEBSITE
WEBSITEhttp://www.vauxoo.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
    - procurement
    - board
    - web_kanban_gauge
    - web_kanban_sparkline
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_product_no_negative_form view.product.no.negative.form product.template xpath Inherits stock.view_template_property_form
Models touched (2)

New fields (1)
  • check_no_negative Boolean
    help='If this field is True can not move this product in negative quantity available in the internal location source' args: 'Check no negative'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • action_done(self, cr, uid, ids, context=None)
    Method to enable check operation or move We need this check after of process move to get real quantity after of this moves and we need this check before of process move to validate with no real quantity
  • check_after_action_done(self, cr, uid, operation_or_move, context=None)
    Method to check operation or move plus lot_id easiest inherit cases after action done
  • check_before_action_done(self, cr, uid, operation_or_move, context=None)
    Method to check operation or move plus lot_id easiest inherit cases before action done
  • check_before_done_no_negative(self, cr, uid, product_id, product_uom, product_qty, location_id, lot_id=None, context=None)
    Check quantity no negative from a location. if product has active check_no_negative and location is internal Use lot_id if exists to get quantity available @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in @param product_id: integer with product.product to check @param location_id: integer with stock.location to check @param lot_id: optional integer with stock.production.lot to check @param context: A standard dictionary @return: True if quantity available >= 0 triggers an exception if quantity available <0
  • get_operations_as_action_done(self, cr, uid, ids, context=None)
    Get stock.pack.operation from stock move Copied from 'action_done' original method I don't know if use directly move.linked_move_operation_ids or move.pack_operation_ids is a good idea. But I prefer use native extract data. Move don't exists 'lot_id', then this is necessary to get it