Newsgroup: it.comp.appl.access
Titolo: Verificatore per partite iva

Penso che a molti possa interessare un programma per utilizzare le api 
messe a disposizione dal sistema Vies
Ciapa ki
 
https://github.com/amusarra/VIESCheckVatService
 


-----------------------------------------
     Dim sURL As String
     Dim sEnv As String
     Dim xmlhttp As New MSXML2.XMLHTTP60
     Dim xmlDoc As New MSXML2.DOMDocument60
     Dim sCountryCode As String
     Dim sVATNo As String
     sURL = 
"
http://ec.europa.eu/taxation_customs/vies/services/checkVatService
"
     sEnv = "<soapenv:Envelope 
xmlns:soapenv=""
http://schemas.xmlsoap.org/soap/envelope/
"" 
xmlns:urn=""urn:ec.europa.eu:taxud:vies:services:checkVat:types"">"
     sEnv = sEnv & "<soapenv:Header/>"
     sEnv = sEnv & "<soapenv:Body>"
     sEnv = sEnv & "<urn:checkVat>"
     sEnv = sEnv & "<urn:countryCode>" & "IT" & "</urn:countryCode>"
     sEnv = sEnv & "<urn:vatNumber>" & "06382641006" & "</urn:vatNumber>"
     sEnv = sEnv & "</urn:checkVat>"
     sEnv = sEnv & "</soapenv:Body>"
     sEnv = sEnv & "</soapenv:Envelope>"
 
     xmlhttp.Open "POST", sURL, False
     xmlhttp.SetRequestHeader "Content-Type", "text/xml;"
     xmlhttp.Send sEnv
 
     xmlDoc.Load xmlhttp.ResponseText
 
     If LCase(xmlDoc.getElementsByTagName("valid").item(0).Text) = 
"true" Then
         MsgBox "Partita Iva valida"
         Else
         MsgBox "Partita Iva NON valida"
         End If
-----------------------------------------
 
Sapreste dirmi cosa c'e' di scorretto nel codice sopra?
Chiedo perche' sulla riga
 
xmlDoc.getElementsByTagName("valid").item(0).Text)
 
mi restituisce un errore 91 e pur rivedendo piu' volte il codice non 
riesco a scovare l'errore, mi sembra tutto corretto

 riesco a scovare l'errore, mi sembra tutto corretto
 
prova togliere il confronto con true:
 
 
If (LCase(xmlDoc.getElementsByTagName("valid").item(0).Text)) Then ....


No
Sembra che il getElementsByTagName  con la versione 6.0 delle librerie 
xml non si 'prendano'
 
http://help.prognoz.com/en/mergedProjects/ModXml/samples/work_using_msxml6.htm
 

Il 27/11/2018 16:22, RobertoA ha scritto:

Io ho questo codice:
*--------*
Dim PI2 As Integer
 
'Controllo dell'esattezza formale della Partita IVA
 
Dim n As Integer  ' contatore
 
Dim cd As Integer ' contributo cifre dispari
 
Dim cp As Integer ' contributo cifre pari
 
Dim ct As Integer ' contributo totale
 
' controlla la lunghezza del codice
 
If Len([CAMPO_PARTITA_IVA]) <> 11 Then
 
     Beep
     PI1 = False
 
 
 
End If
 
' controlla l'esattezza del carattere di controllo
 
ct = 0
 
For n = 1 To 9 Step 2
 
     cd = CInt(Mid([CAMPO_PARTITA_IVA], n, 1))
 
     cp = CInt(Mid([CAMPO_PARTITA_IVA], n + 1, 1)) * 2
 
     If cp > 9 Then cp = cp - 9
 
     ct = ct + cd + cp
 
Next n
 
If (10 - ct Mod 10) Mod 10 = CInt(Right([CAMPO_PARTITA_IVA], 1)) Then
 
     PI1 = True
 
Else
     Beep
     PI1 = False
     PI2 = MsgBox("Partita IVA Errata")
 
End If
 
*--------*
 
Ovviamente mi da' solo la correttezza della Partita IVA, ma a me tanto 
mi basta
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 


La verifica sintattica e' ovviamente il primo step da completare
Pero' se ci pensi, essendo tutta numerica, l'ultima cifra che funge da 
chek ha una probabilita' su 10 di essere giusta, qualsiasi sia la 
partita iva
Voglio dire, se nelle prime 10 cifre ce n'e' una scorretta, c'e' una 
probabilita' su 10 che l'undicesima cifra (il check) confermi la 
correttezza formale
Comunque, anche passato il controllo formale, su 100 invii una 
percentuale discreta ti ritorna indietro proprio a causa della partita 
iva inesistente o non attiva o altre cose simili
E proprio a questa verifica stavo pensando, per limitare il piu' 
possibile i ritorni dovuti alla partita iva
 

 
 
Sono d'accordo con te, pero', se ci pensi bene, alla fin fine a 
un'azienda importa piu' la correttezza sittattica della partita IVA, 
ossia se dal punto di vista della decodifica ci sono errori o meno.
 
Un'aggiunta interessante sarebbe eventualmente controllare da quale 
ufficio IVA dipende il soggetto giuridico; e allora in questo caso 
dovresti prelevare solo 7^, 8^ e 9^ cifra, che si riallacciano 
all'ufficio IVA dov'e' stata aperta la partita IVA (per esempio, una 
partita IVA con codice 01828740611, se prelevi le cifre 061, ti rendi 
conto che e' stata aperta a Caserta).
 
Non e' come il Codice Fiscale, da cui, per esempio, puoi estrapolare 
sesso, data e luogo di nascita del soggetto ...
 
Non so se mi sono spiegato :-)



No, non credo di aver capito
Forse intendi dire che e' possibile distinguere aziende terrone dalle 
polentone?
Se cosi' fosse direi che e' poco importante, le brave persone, come i 
delinquenti, ci sono sia sotto che sopra (e a destra ed a sinistra, 
davanti e dietro)
 
Credo che uan cosa importante, in questo momento di preparazione al 
cambio fattura elettronica, sarebbe avere uno strumento che consenta di 
verificare se la partita iva che stai inserendo nell'xml sara' accettata 
da Agenzia Entrate oppure no
E questo strumento attualmente non esiste
Basterebbe fare un web service tipo il Vies, accessibile dopo 
registrazione, non e' che servirebbe molto poi dal punto di vista 
impegno realizzativo
Il fatto e' che stiamo parlando di 'pubblico'
Che e' un mondo nettamente separato dal reale
Ma vedo che qualcosa sta cambiando negli ultimi anni, forse troppo 
lentamente rispetto alle reali necessita' ma almeno un'inversione di 
tendeza c'e' stata

 E questo strumento attualmente non esiste
 
Appunto.
 
Comunque, guarda: io saro' un po' retrogado, ma tutta sta storia della 
fatturazione elettronica mi sta facendo davvero girare le scatole, oltre 
che causarmi dei grandi dolori di testa per capire come preparare il 
tracciato xml (ho delle gravissime lacune); cosa che a mio avviso non 
serve per combattere l'evasione fiscale, ma paradossalmente la incentiva 
ancora di piu', perche' se una persona e' abituata ad evadere con delle 
fatture cartacee normali, immagina un poco se, col nuovo formato (tra 
l'altro gradirei sapere a chi e' venuto in mente di usare un tracciato 
del genere!!!) non e' tentato maggiormente ....
 
Ma non era meglio effettuare un tracciato record unico, magari 
distinguendolo con un carattere iniziale, giusto per distinguere il 
riepilogo della fattura dal dettaglio?
 
Una volta io preparavo dei (all'epoca) dischetti con un file .txt che 
avevano stringhe alfanumeriche che raggruppavano tantissimi dati utili 
(mi occupavo di erogazione Premio CEE su tabacco); bastava acquisirli, 
scompattarli, destinarli alle varie tabelle e il gioco era fatto, 
semplice e coinciso.


 semplice e coinciso.
 
Mi sembra sia quello che ha fatto Agenzia Entrate
Uniformare il formato fatture vendita

 Uniformare il formato fatture vendita
 
Si' ma non e' quello che dicevo io.
Le fatture come la FE si fanno una per una, in un codice XML e con una 
struttura che a me, personalmente, sta facendo perdere tempo e pazienza 
per come fare per realizzarla (personalmente non ci sono ancora riuscito).
 
Quello che intendevo io era un file .txt, che puo' contenere anche 
diverse fatture (nello stesso file), senza andare li' a caricarne una 
per una.
 
Magari usando un record che comincia per 1 per il riepilogo fattura, 
tanti record che iniziano per 2 per i dettagli della fattura, un record 
che inizia per 3 per inserire i dati del venditore e un record che 
inizia per 4 per inserire i dati del cliente, magari aggiungendo anche 
un record che inizia per 5 per inserire i dati bancari.
 
Questa e' praticamente la codifica che usavo io all'epoca e che, in 
access, si puo' realizzare molto piu' rapidamente.


 access, si puo' realizzare molto piu' rapidamente.
 
Mi sembra tu stia descrivendo quasi esattamente il file xml previsto per 
la fe da agenzia entrate, che e' un file di testo in tutto e per tutto
 
Un singolo xml PUO' contenere diverse fatture, se vedi la sezione 2 
FatturaElettronicaBody vedrai un 1.N a fianco che significa 'da 1 a N 
ripetizioni (fatture)'
 
Le tue sezioni 2,3,4,5 corrispondono esattamente alle sezioni 2.1, 1.2, 
1.4, 2.4
Che poi non sia esattamente come era il tuo tracciato record, beh mi 
pare comprensibile, e' un sistema che dovrebbe essere sufficiente per 
descrivere con sufficiente accuratezza le vendite di tutta Italia
Magari non lo e' ancora perche' ci saranno dettagli da 
aggiungere/modificare ma la via e' stata tracciata e permettera' una 
completa automazione dello scambio documenti vendita
 
Quello che a mio parere e' incomprensibile e' la mancanza di supporto 
che viene offerto per un sistema che sara' obbligatorio adottare
Se provi ad accreditarti per usare lo sdiftp o sdicoop, vedrai che la 
documentazione fornita e' largamente insufficiente per completare le 
procedure, chiami l'assistenza al telefono e ti rispondo che la 
documentazione e' sul sito 
fatturapa.gov.it
, strumenti, norme e regole

 documentazione e' sul sito 
fatturapa.gov.it
, strumenti, norme e regole
 
Per la serie "Armatevi e partite"


 
Della serie "vai avanti tu che a me vien da ridere"
(si copriva la bocca con la mano perche' aveva appena preso un bastonata 
sui denti)