From f48cb3e7b19775dfde87aca83095e89e26c4d302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 15 Jun 2026 15:25:20 +0200 Subject: [PATCH] Allow to customize the storage of invoice report --- modules/account_invoice/invoice.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index 1004e70bb1..ecd32f7cd5 100644 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -3783,15 +3783,18 @@ class InvoiceReport(Report): invoice.invoice_report_cache) else: result = super()._execute(records, header, data, action) - if invoice.invoice_report_versioned: - format_, data = result - if isinstance(data, str): - data = bytes(data, 'utf-8') - invoice.invoice_report_format = format_ - invoice.invoice_report_cache = \ - Invoice.invoice_report_cache.cast(data) - invoice.save() - return result + return cls.store(invoice, *result) + + @classmethod + def store(cls, invoice, format_, data): + if invoice.invoice_report_versioned: + if isinstance(data, str): + data = bytes(data, 'utf-8') + invoice.invoice_report_format = format_ + invoice.invoice_report_cache = \ + Invoice.invoice_report_cache.cast(data) + invoice.save() + return format_, data @classmethod def render(cls, *args, **kwargs):