diff --git a/sales_order_delivery_status/__manifest__.py b/sales_order_delivery_status/__manifest__.py index 29e437f45..456806766 100644 --- a/sales_order_delivery_status/__manifest__.py +++ b/sales_order_delivery_status/__manifest__.py @@ -28,7 +28,7 @@ 'maintainer': 'Cybrosys Techno Solutions', 'website': "https://www.cybrosys.com", 'category': 'Sales', - 'version': '14.0.1.0.1', + 'version': '14.0.1.0.2', 'depends': ['sale_stock', 'sale_management'], 'data': ['views/sales_order.xml'], 'images': ['static/description/banner.png'], diff --git a/sales_order_delivery_status/models/sales_order.py b/sales_order_delivery_status/models/sales_order.py index 99709b92a..47bbcc69b 100644 --- a/sales_order_delivery_status/models/sales_order.py +++ b/sales_order_delivery_status/models/sales_order.py @@ -17,8 +17,9 @@ class SalesOrder(models.Model): def _compute_delivery_status(self): for rec in self: pickings = self.env['stock.picking'].search([('sale_id', '=', rec.id)]) - orderlines = rec.mapped('order_line') - if not pickings and not orderlines.filtered(lambda x:x.product_id.type == 'service'): + orderlines = rec.mapped('order_line').filtered(lambda x:x.product_id.type != 'service') + service_orderlines = rec.mapped('order_line').filtered(lambda x:x.product_id.type == 'service') + if not pickings and not service_orderlines: rec.delivery_status = 'nothing' elif all(o.qty_delivered == 0 for o in orderlines): rec.delivery_status = 'to_deliver' @@ -28,3 +29,5 @@ class SalesOrder(models.Model): rec.delivery_status = 'delivered' elif any(p.state in ('waiting', 'confirmed') for p in pickings): rec.delivery_status = 'processing' + if not orderlines and service_orderlines and rec.state == 'sale': + rec.delivery_status = 'delivered'