From f1452ecadbb98c1842ce2eabb8283b8058fe59db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 19 Oct 2012 13:17:39 +0200 Subject: [PATCH] Use root to process/search sales from Invoice review567002 --- invoice.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/invoice.py b/invoice.py index 04873c0714..30d7886233 100644 --- a/invoice.py +++ b/invoice.py @@ -31,9 +31,10 @@ class Invoice: @classmethod def get_sale_exception_state(cls, invoices, name): Sale = Pool().get('sale.sale') - sales = Sale.search([ - ('invoices', 'in', [i.id for i in invoices]), - ]) + with Transaction().set_user(0, set_context=True): + sales = Sale.search([ + ('invoices', 'in', [i.id for i in invoices]), + ]) recreated = tuple(i for p in sales for i in p.invoices_recreated) ignored = tuple(i for p in sales for i in p.invoices_ignored) @@ -69,23 +70,25 @@ class Invoice: pool = Pool() Sale = pool.get('sale.sale') super(Invoice, cls).paid(invoices) - Sale.process([s for i in invoices for s in i.sales]) + with Transaction().set_user(0, set_context=True): + Sale.process([s for i in cls.browse(invoices) for s in i.sales]) @classmethod def cancel(cls, invoices): pool = Pool() Sale = pool.get('sale.sale') super(Invoice, cls).cancel(invoices) - Sale.process([s for i in invoices for s in i.sales]) + with Transaction().set_user(0, set_context=True): + Sale.process([s for i in cls.browse(invoices) for s in i.sales]) @classmethod @Workflow.transition('draft') def draft(cls, invoices): Sale = Pool().get('sale.sale') - sales = Sale.search([ - ('invoices', 'in', [i.id for i in invoices]), - ]) - + with Transaction().set_user(0, set_context=True): + sales = Sale.search([ + ('invoices', 'in', [i.id for i in invoices]), + ]) if sales: cls.raise_user_error('reset_invoice_sale')