From 670733a363d02e01b3b6c6101b923ca318bd0537 Mon Sep 17 00:00:00 2001 From: carlosgalvez-nan Date: Fri, 17 Jan 2020 09:49:10 +0100 Subject: [PATCH] Avoid dividing by zero Check if a operation has the work_center field --- operation.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/operation.py b/operation.py index f8ce181..663c85f 100644 --- a/operation.py +++ b/operation.py @@ -221,7 +221,7 @@ class OperationTracking(ModelSQL, ModelView): @fields.depends('_parent_operation.id', 'operation') def on_change_with_uom(self): - if self.operation and self.operation.work_center: + if self.operation and getattr(self.operation, 'work_center', None): return self.operation.work_center.uom.id @fields.depends('uom') @@ -317,11 +317,12 @@ class Production(metaclass=PoolMeta): continue total_quantity = Decimal(str(sum(o.quantity for o in production.outputs))) - added_unit_price = Decimal(operation_cost / total_quantity - ).quantize(Decimal(str(10 ** -digits[1]))) - for output in production.outputs: - output.unit_price += added_unit_price - output.save() + if total_quantity: + added_unit_price = Decimal(operation_cost / total_quantity + ).quantize(Decimal(str(10 ** -digits[1]))) + for output in production.outputs: + output.unit_price += added_unit_price + output.save() super(Production, cls).done(productions)