Benvenuto!
Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.
Errore import XML fornitore
Buongiorno.
Sto cercando di importare un xml di un fornitore ma sono incappato nel seguente errore:
ValidationError: ('ValidateError', u"La convalida del campo(i) 'vat' non \xe8 riuscita a causa del vincolo: \nLa P.IVA [IT00233599054] del partner [SDA] non sembra valida. \nNota: il formato atteso \xe8 IT12345670017")
con un po di ricerche ho capito che questo errore è dovuto in una errato inserimento della P.IVA da parte del fornitore nella sezione DatiTrasporto come di seguito mostrato:
<DatiTrasporto>
<DatiAnagraficiVettore>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>0233599054</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>SDA</Denominazione>
</Anagrafica>
</DatiAnagraficiVettore>
<MezzoTrasporto> VETTORE</MezzoTrasporto>
<CausaleTrasporto> VENDITA</CausaleTrasporto>
<NumeroColli>1</NumeroColli>
<PesoLordo>8.00</PesoLordo>
</DatiTrasporto>
esiste un modo per prevenire la cosa, oppure del codice per verificare l'autenticità della P.IVA da inserire nel modulo odoo in modo da prevenire l'errore?
Grazie
Alla fine ho optato per questa modifica:
def getPartnerBase(self, DatiAnagrafici):
if not DatiAnagrafici:
return False
partner_model = self.env['res.partner']
cf = DatiAnagrafici.CodiceFiscale or False
vat = False
if DatiAnagrafici.IdFiscaleIVA:
# Format Italian VAT ID to always have 11 char
# to avoid validation error when creating the given partner
if DatiAnagrafici.IdFiscaleIVA.IdPaese.upper() == 'IT':
vat = "%s%s" % (
DatiAnagrafici.IdFiscaleIVA.IdPaese,
DatiAnagrafici.IdFiscaleIVA.IdCodice.rjust(11, '0')
)
else:
vat = "%s%s" % (
DatiAnagrafici.IdFiscaleIVA.IdPaese,
DatiAnagrafici.IdFiscaleIVA.IdCodice
)
partners = partner_model
if vat:
is_vat = vatnumber.check_vies(vat)
if is_vat:
partners = partner_model.search([
('vat', '=', vat),
])
else:
self.log_inconsistency(
_(
'The VAT number %s of the carrier/transporter %s is not valid'
)
% (
vat,
DatiAnagrafici.Anagrafica.Denominazione
)
)
return False
[.....]
Se avete una soluzione migliore sono tutto orecchi
Riesci mica a fornire un diff o ancora meglio a fare una PR?
Purtroppo mi becchi sempre sul mio lato debole. Non mi risulta facile fare una diff perché quella modifica l'ho testata su un modulo che sto rifacendo per comodità, stavo facendo dei test sulle fatture ricevute fino qui e sono incappato in questo errore. Il modulo si basa su quello originale basta che cerchi def getPartnerBase(self, DatiAnagrafici): su wizard_import_fatturapa.py il codice modificato è quello dopo
if vat:
Poi se proprio devo ci riprovo a fare una PR ma, da esperienze passare, ho sempre fatto casino.
Se non avete paura delle conseguenze lo faccio. Non è una minaccia è che sono proprio negato con git :)
Fai come ti senti, danni non puoi farne :-)
Se hai voglia, puoi iniziare a guardare qui https://www.odoo-italia.org/documentazione/sviluppo/come_contribuire.html e per qualunque problema chiedere in mailing list sviluppo https://www.odoo-italia.org/groups
Andando indietro nel codice si potrebbe mettere un controllo qui:
# 2.1.9
Delivery = FatturaBody.DatiGenerali.DatiTrasporto
if Delivery:
e se la p.iva non è valida fargli saltare completamente l'inserimento.
Probabilmente il trasportatore per SDI non è importante ai fini fiscali anche perché la p.iva scritta sopra è di soli 10 caratteri e in qualsiasi modo uno la vuole vedere, questo xml dovrebbe non passare il test dell'SDI
Ho trovato questa funzione simple_vat_check() in base_vat.py, sto parlando di odoo 8, questa sera lo studio con calma per implementare una soluzione.
Purtroppo si deve modificare il codice anche su odoo 8 non solo su 12 come da PR. Penso , arrivato a questo punto che tutte le versioni ne sono afflitte.Sembra che sia necessario modificare il modulo di importazione.
Ho creato la PR https://github.com/OCA/l10n-italy/pull/1342 per riprodurre il problema.
Resta informato
Informazioni sulla comunità
Strumenti di richiesta
Statistiche
Richiesta del: 09/07/19, 13:55 |
Vista: 1523 volte |
Ultimo aggiornamento: 10/07/19, 12:31 |