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.
This commit is contained in:
Cédric Krier committed 2024-01-03 13:40:01 +01:00
1 parent 4841c130de
commit f38c760c2d
1 file changed
+3 -11
+3 -11
View File
@@ -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):