Use fixed location type to compute quantity to invoice for sale and purchase

Using the computed location to get the expected type is not reliable because
for return order, the location can be of different type and the stock move can
change of location type.

Closes #12203
(grafted from ce0b073cd8e637b8052ae3fa5e9bb4d8a7f6ea53)

--HG--
branch : 6.0
This commit is contained in:
Cédric Krier committed 2023-04-13 17:45:09 +02:00
1 parent 2aeb4c8412
commit cce1a6658f
2 files changed
+2 -6

No files matched your search

+1 -3
View File
@@ -1594,15 +1594,13 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
qty = Uom.compute_qty(move.uom, move.quantity, self.unit)
# Test only against from_location
# as it is what matters for purchase
src_type = self.from_location.type
src_type = 'supplier'
if (move.from_location.type == src_type
and move.to_location.type != src_type):
quantity += qty
elif (move.to_location.type == src_type
and move.from_location.type != src_type):
quantity -= qty
if self.quantity < 0:
quantity *= -1
return quantity
def _get_invoiced_quantity(self):
+1 -3
View File
@@ -1545,15 +1545,13 @@ class SaleLine(TaxableMixin, sequence_ordered(), ModelSQL, ModelView):
qty = Uom.compute_qty(move.uom, move.quantity, self.unit)
# Test only against to_location
# as it is what matters for sale
dest_type = self.to_location.type
dest_type = 'customer'
if (move.to_location.type == dest_type
and move.from_location.type != dest_type):
quantity += qty
elif (move.from_location.type == dest_type
and move.to_location.type != dest_type):
quantity -= qty
if self.quantity < 0:
quantity *= -1
return quantity
def _get_invoiced_quantity(self):