Ignore cancelled moves to calculate productions cost

Closes #12093
This commit is contained in:
Òscar Queraltó Aguilera committed 2023-02-24 12:09:39 +00:00
1 parent 4e3b817b81
commit 8e305c7dc3
1 file changed
+8 -2
+8 -2
View File
@@ -454,6 +454,8 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
def get_cost(self, name):
cost = Decimal(0)
for input_ in self.inputs:
if input_.state == 'cancelled':
continue
if input_.cost_price is not None:
cost_price = input_.cost_price
else:
@@ -472,7 +474,8 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
for input_ in self.inputs:
if (input_.product is None
or input_.uom is None
or input_.quantity is None):
or input_.quantity is None
or input_.state == 'cancelled'):
continue
product = input_.product
quantity = Uom.compute_qty(input_.uom, input_.quantity,
@@ -551,6 +554,8 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
input_quantities = defaultdict(Decimal)
input_costs = defaultdict(Decimal)
for input_ in production.inputs:
if input_.state == 'cancelled':
continue
if input_.cost_price is not None:
cost_price = input_.cost_price
else:
@@ -561,7 +566,8 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView):
Decimal(str(input_.internal_quantity)) * cost_price)
outputs = []
for output in production.outputs:
if output.to_location.type == 'lost_found':
if (output.to_location.type == 'lost_found'
or output.state == 'cancelled'):
continue
product = output.product
if input_quantities.get(output.product):