From 58daa7afde48093a5ef1844b7eef1a8a3e8c6f3e Mon Sep 17 00:00:00 2001 From: Mazen Abdo Date: Sun, 28 Sep 2025 12:44:43 +0300 Subject: [PATCH] updata --- .../models/purchase_order.py | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/odex25_purchase/purchase_requisition_custom/models/purchase_order.py b/odex25_purchase/purchase_requisition_custom/models/purchase_order.py index d7e699191..f08fc1f2b 100644 --- a/odex25_purchase/purchase_requisition_custom/models/purchase_order.py +++ b/odex25_purchase/purchase_requisition_custom/models/purchase_order.py @@ -648,19 +648,17 @@ class PurchaseOrderCustom(models.Model): def _compute_delviery_order(self): precision = self.env['decimal.precision'].precision_get('Product Unit of Measure') for order in self: - if any( - not float_is_zero(line.product_qty - line.qty_received, precision_digits=precision) - for line in order.order_line.filtered(lambda l: not l.display_type) - ): + lines = order.order_line.filtered(lambda l: not l.display_type) + if all(float_is_zero(line.product_qty - line.qty_received, precision_digits=precision) for line in lines): + order.state_of_delivery = 'Fully Received' + + elif all(float_is_zero(line.qty_received, precision_digits=precision) for line in lines): + order.state_of_delivery = 'Not Received' + + elif any(not float_is_zero(line.product_qty - line.qty_received, precision_digits=precision) for line in + lines): order.state_of_delivery = 'Partially Received' - elif ( - all( - float_is_zero(line.product_qty - line.qty_received, precision_digits=precision) - for line in order.order_line.filtered(lambda l: not l.display_type) - ) - and order.picking_ids - ): - order.state_of_delivery = ' Fully Received ' + else: order.state_of_delivery = 'Not Received'