From f38c760c2d302bb6c47ed18f49f15afaeeeb4f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 3 Jan 2024 13:40:01 +0100 Subject: [PATCH] Append recalled lines from sale advance payment to invoice This prevents extra save of the invoice and lines by taking advantage of the process decomposition of bdbd8ba02e94. --- modules/sale_advance_payment/sale.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/modules/sale_advance_payment/sale.py b/modules/sale_advance_payment/sale.py index 6fbd2ec65c..0a06620d43 100644 --- a/modules/sale_advance_payment/sale.py +++ b/modules/sale_advance_payment/sale.py @@ -379,9 +379,6 @@ class Sale(metaclass=PoolMeta): return recall_lines def create_invoice(self): - pool = Pool() - InvoiceLine = pool.get('account.invoice.line') - invoice = super(Sale, self).create_invoice() if self.advance_payment_eligible(): @@ -389,14 +386,9 @@ class Sale(metaclass=PoolMeta): for condition in self.advance_payment_conditions: condition.create_invoice() elif invoice is not None: - invoice.save() - recall_lines = self.get_recall_lines(invoice) - if recall_lines: - for line in recall_lines: - line.invoice = invoice - InvoiceLine.save(recall_lines) - invoice.update_taxes() - + invoice.lines = ( + list(getattr(invoice, 'lines', ())) + + self.get_recall_lines(invoice)) return invoice def advance_payment_eligible(self, shipment_type=None):