@@ -249,7 +249,7 @@ def _l10n_it_edi_get_extra_info(
249249 if sender := get_text (body_tree , "//SoggettoEmittente" ):
250250 self .l10n_it_edi_sender = sender
251251
252- if element_stabile_organizzazione := xml_tree .xpath ("//StabileOrganizzazione" ):
252+ if element_stabile_organizzazione := body_tree .xpath ("//StabileOrganizzazione" ):
253253 self .write (
254254 {
255255 "l10n_it_edi_stabile_organizzazione_indirizzo" : get_text (
@@ -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