From 4c3bdbcca1718cf84a443489fde2955c8b7afc5d Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Thu, 25 Jan 2018 17:31:33 +0100 Subject: [PATCH] Do not process same sale multiple times when it's invoice lines are deleted issue7084 review41011002 --- invoice.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/invoice.py b/invoice.py index 1339a6882f..9608d42376 100644 --- a/invoice.py +++ b/invoice.py @@ -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)