Do not process same sale multiple times when it's invoice lines are deleted

issue7084
review41011002
This commit is contained in:
Sergi Almacellas Abellana committed 2018-01-25 17:31:33 +01:00
1 parent abe6b645d7
commit 4c3bdbcca1
1 file changed
+3 -2
+3 -2
View File
@@ -18,7 +18,8 @@ def process_sale(func):
pool = Pool()
Sale = pool.get('sale.sale')
with Transaction().set_context(_check_access=False):
sales = [s for i in cls.browse(invoices) for s in i.sales]
sales = Sale.browse(
set(s for i in cls.browse(invoices) for s in i.sales))
func(cls, invoices)
with Transaction().set_context(_check_access=False):
Sale.process(sales)
@@ -158,7 +159,7 @@ class InvoiceLine:
lines = cls.browse(lines)
invoices = (l.invoice for l in lines
if l.type == 'line' and l.invoice)
sales = [s for i in invoices for s in i.sales]
sales = Sale.browse(set(s for i in invoices for s in i.sales))
super(InvoiceLine, cls).delete(lines)
with Transaction().set_context(_check_access=False):
Sale.process(sales)