From 26bfa028d1a951e934df0c181283a8ea3cab3622 Mon Sep 17 00:00:00 2001 From: snt Date: Tue, 7 Apr 2026 23:39:00 +0200 Subject: [PATCH] [IMP] website_sale_aplicoop: use virtual_available for stock check instead of qty_available Use forecasted quantity (virtual_available) instead of on-hand quantity (qty_available) for out-of-stock and low-stock calculations, so pending incoming/outgoing moves are taken into account. --- website_sale_aplicoop/models/product_extension.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/website_sale_aplicoop/models/product_extension.py b/website_sale_aplicoop/models/product_extension.py index f518fd1..1fc4f6c 100644 --- a/website_sale_aplicoop/models/product_extension.py +++ b/website_sale_aplicoop/models/product_extension.py @@ -23,14 +23,14 @@ class ProductProduct(models.Model): string="Is Out of Stock", compute="_compute_stock_ribbons", store=False, - help="True if qty_available <= 0", + help="True if virtual_available <= 0", ) is_low_stock = fields.Boolean( string="Is Low Stock", compute="_compute_stock_ribbons", store=False, - help="True if 0 < qty_available <= threshold", + help="True if 0 < virtual_available <= threshold", ) dynamic_ribbon_id = fields.Many2one( @@ -41,13 +41,13 @@ class ProductProduct(models.Model): help="Auto-assigned ribbon based on stock levels", ) - @api.depends("qty_available", "type", "allow_out_of_stock_order") + @api.depends("virtual_available", "type", "allow_out_of_stock_order") def _compute_stock_ribbons(self): """Compute stock-based ribbons dynamically. A product is considered out of stock only when: - It is a storable product (type='consu') - - qty_available <= 0 + - virtual_available <= 0 - allow_out_of_stock_order is False If allow_out_of_stock_order is True, the product can always be sold @@ -76,7 +76,7 @@ class ProductProduct(models.Model): product.dynamic_ribbon_id = False continue - qty = product.qty_available + qty = product.virtual_available # Check if product allows selling when out of stock # If True, never block add-to-cart based on stock