Skip to content

Commit 8535d1f

Browse files
committed
[REF] l10n_it_edi_extension: refactor update partner from FatturaPA attachment
1 parent 63c54cf commit 8535d1f

1 file changed

Lines changed: 9 additions & 69 deletions

File tree

l10n_it_edi_extension/models/account_move.py

Lines changed: 9 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -360,47 +360,6 @@ def _l10n_it_edi_get_extra_info(
360360
extra_info["l10n_it_edi_ext_body_tree"] = body_tree
361361
return extra_info, message_to_log
362362

363-
def _l10n_it_edi_create_partner(
364-
self, xml_tree, partner_section_xpath, vat, codice_fiscale
365-
):
366-
is_company = bool(get_text(xml_tree, partner_section_xpath + "//Denominazione"))
367-
eori_code = get_text(xml_tree, partner_section_xpath + "//CodEORI")
368-
369-
if country_code := get_text(xml_tree, partner_section_xpath + "//IdPaese"):
370-
country_id = (
371-
self.env["res.country"]
372-
.search([("code", "=", country_code)], limit=1)
373-
.id
374-
)
375-
if not country_id:
376-
raise UserError(
377-
self.env._("Country Code %s not found in system.", country_code)
378-
)
379-
380-
vals = {
381-
"vat": country_code + vat,
382-
"l10n_it_codice_fiscale": codice_fiscale,
383-
"is_company": is_company,
384-
"l10n_edi_it_eori_code": eori_code,
385-
"country_id": country_id,
386-
}
387-
388-
if value := get_text(xml_tree, partner_section_xpath + "//Denominazione"):
389-
vals["name"] = value
390-
else:
391-
# Remove fields check when module partner_firstname
392-
# is migrated and added as a dependency
393-
partner_fields = self.env["res.partner"]._fields.keys()
394-
first_name = get_text(xml_tree, partner_section_xpath + "//Nome")
395-
last_name = get_text(xml_tree, partner_section_xpath + "//Cognome")
396-
if "firstname" in partner_fields:
397-
vals["firstname"] = first_name
398-
vals["lastname"] = last_name
399-
else:
400-
vals["name"] = " ".join(filter(None, [first_name, last_name]))
401-
402-
return self.env["res.partner"].create(vals)
403-
404363
def _l10n_it_edi_update_partner(self, xml_tree, partner_section_xpath, partner):
405364
vals = {}
406365

@@ -473,34 +432,6 @@ def _l10n_it_edi_update_partner(self, xml_tree, partner_section_xpath, partner):
473432
partner.write(vals)
474433
return partner
475434

476-
def _l10n_it_edi_search_partner(self, company, vat, codice_fiscale, email):
477-
partner = super()._l10n_it_edi_search_partner(
478-
company, vat, codice_fiscale, email
479-
)
480-
edi_attachment = self.l10n_it_edi_attachment_id
481-
if edi_attachment and not partner:
482-
try:
483-
xml_tree = edi_attachment._decode_edi_l10n_it_edi(
484-
edi_attachment.name, edi_attachment.raw
485-
)[0]["xml_tree"]
486-
except Exception as e:
487-
raise UserError(self.env._("Error parsing XML: %s") % str(e)) from e
488-
489-
buyer_seller_info = self._l10n_it_buyer_seller_info()
490-
partner_info = buyer_seller_info[
491-
"seller" if self.is_purchase_document() else "buyer"
492-
]
493-
494-
partner = self._l10n_it_edi_create_partner(
495-
xml_tree, partner_info["section_xpath"], vat, codice_fiscale
496-
)
497-
if not partner.l10n_edi_it_electronic_invoice_no_contact_update:
498-
partner = self._l10n_it_edi_update_partner(
499-
xml_tree, partner_info["section_xpath"], partner
500-
)
501-
502-
return partner
503-
504435
def _l10n_it_edi_ext_import_summary_line(self, element, extra_info=None):
505436
messages_to_log = []
506437
company = self.company_id
@@ -820,6 +751,15 @@ def _l10n_it_edi_import_invoice(self, invoice, data, is_new):
820751
partner = self._l10n_it_edi_extension_create_partner(body_tree)
821752
invoice.partner_id = partner
822753

754+
if not invoice.partner_id.l10n_edi_it_electronic_invoice_no_contact_update:
755+
buyer_seller_info = self._l10n_it_buyer_seller_info()
756+
partner_info = buyer_seller_info[
757+
"seller" if self.is_purchase_document() else "buyer"
758+
]
759+
self._l10n_it_edi_update_partner(
760+
body_tree, partner_info["section_xpath"], invoice.partner_id
761+
)
762+
823763
if body_tree.xpath("//RappresentanteFiscale"):
824764
tax_representative = self._l10n_it_edi_extension_create_partner(
825765
body_tree, section_xpath="//RappresentanteFiscale"

0 commit comments

Comments
 (0)