|
|
@ -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' |
|
|
|