From fc9334919b253d7092795eaa5676909e3cdd4569 Mon Sep 17 00:00:00 2001 From: PicchiSeba Date: Fri, 28 Jun 2024 12:39:42 +0200 Subject: [PATCH] [IMP]l10n_it_fatturapa_in: copy changing values only --- .../wizard/wizard_import_fatturapa.py | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py index bdacd4b0e4fb..6dd08b183bd3 100644 --- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py +++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py @@ -1183,6 +1183,23 @@ def _prepare_invoice_values(self, fatt, fatturapa_attachment, FatturaBody, partn self.set_e_invoice_lines(FatturaBody, invoice_data) return invoice_data + def _new_write_vals(self, invoice): + """ + Update only changing values + """ + to_return = invoice._convert_to_write(invoice._cache) + to_remove = set() + for k, val in to_return.items(): + if k.endswith("_ids"): + if val[0][0] == 6 and val[0][2] == invoice[k].ids: + to_remove.add(k) + else: + if invoice[k] == val: + to_remove.add(k) + for k in to_remove: + del to_return[k] + return to_return + def invoiceCreate(self, fatt, fatturapa_attachment, FatturaBody, partner_id): partner_model = self.env["res.partner"] partner = partner_model.browse(partner_id) @@ -1227,7 +1244,8 @@ def invoiceCreate(self, fatt, fatturapa_attachment, FatturaBody, partner_id): invoice._onchange_invoice_line_wt_ids() invoice._recompute_dynamic_lines() - invoice.write(invoice._convert_to_write(invoice._cache)) + write_vals = self._new_write_vals(invoice) + invoice.write(write_vals) rel_docs_dict = { # 2.1.2