altre destinazioni

vedi anche

ultimi post

ultimi commenti

tag principali

categorie

archivi

powered by

  • WPFrontman + WP

friends

copyright

  • © 2004-2011
    Ludovico Magnocavallo
    tutti i diritti riservati

Codice "nazazionale"?

3 ottobre 2012

5 commenti

tag

categorie

Non so se avete mai avuto la sfiga di dover scrivere un algoritmo per il calcolo del codice fiscale. Io si, lo sto facendo ora, e anche se in rete ce ne sono mille esempi, farlo per bene non è semplice come potrebbe sembrare.

Un pezzetto del codice fiscale è infatti composto da un codicino alfanumerico, il cosiddetto “codice dei Comuni d’Italia e degli Stati Esteri”, univocamente assegnato in base al luogo di nascita. Embè, direte voi? Embè, appunto: i codici seguono ovviamente le evoluzioni geopolitiche del territorio. Non hanno quindi, come in tutti gli esempi che ho trovato in rete, una sola dimensione — il nome del luogo — ma ne hanno due: il nome del luogo in un preciso momento temporale.

Una persona nata a Belgrado trent’anni fa ad esempio ha un codice per lo stato jugoslavo che ovviamente non esiste più, una nata nella stessa Belgrado in anni più recenti ha un codice per lo stato serbo. Una persona nata quando il comune di Abbiate Guazzone non era ancora stato accorpato con il comune di Tradate ha un codice, una nata ora ad Abbiate Guazzone — che non esiste più ma immagino continui ad esistere nell’uso comune — ha un codice diverso. Eccetera eccetera.

Di nuovo, embè? direte voi: ci saranno delle tabelle pubblicate dal ministero, basta trovarle, importarle, controllare il codice in base alla data di nascita e alla località, e il gioco è fatto. Embè, appunto di nuovo: le tabelle ci sono, sul sito dell’Agenzia del Territorio, ma sono un bell’esempio di burocratese applicato ai dati.


Ad esempio, uno si aspetterebbe che tabelle pubblicate per “caricamento/aggiornamento banche dati” [testuale] fossero strutturate, appunto, per permettere un caricamento o un aggiornamento di una banca dati piuttosto semplice, con i due parametri del nome del luogo e del momento temporale per cui un codice è valido. E invece no. Le tabelle sono strutturate come uno storico delle variazioni, forse utili — una volta decodificate le convenzioni abbastanza criptiche e macchinose con cui sono strutturate — all’Agenzia per tenere traccia di cosa è successo a quale comune quando, ma molto complesse da trasformare in dati di utilizzo pratico.

Un esempio? Il comune di Abbadia (CO) è marcato con codice di modifica ‘VED’, che il documento allegato ci illumina stare per quei “comuni che dopo aver cambiato denominazione (la successiva denominazione è indicata in corrispondenza della sigla VED nella colonna Variazione comune), siano stati oggetto di altri cambiamenti, specificati in corrispondenza delle dette nuove denominazioni, con le modalità già esposte”.

Abbadia è diventato Abbadia sopra Adda, ma oltre al fatto che il codice (ricordate, lo scopo è il codice per il calcolo del codice fiscale) non è variato (A002), non c’è nemmeno una data di variazione. Abbadia sopra Adda a sua volta è marcata come AGG, che indica “i comuni soppressi, in cui il territorio sia stato integralmente incorporato nella circoscrizione territoriale di un altro comune”. Abbadia sopra Adda è quindi stato aggregato in Abbadia Lariana, cambiando codice. Abbadia Lariana a sua volta è marcata come ORA (“contraddistingue i comuni che abbiano cambiato denominazione” ecc. ecc.) quando è passato dalla provincia di Como a quella di Lecco, mantenendo però il codice. Eccetera eccetera, questo è solo un esempio che ho trovato nelle prime dieci righe di dati, figuratevi più sotto nelle alte 13.800 e rotte.

E se non bastasse, il foglio ha anche un po’ di errori, cosa che mi fa pensare sia compilato a mano su un banale foglio Excel (rabbrividisco a pensare che è la base del calcolo per il codice fiscale). A parte l’intestazione della colonna “Codice nazazionale”, che è proprio lì in bella vista appena uno apre il foglio, ci sono errori marchiani tipo Budoni (OT) per cui è segnata una variazione del codice nazionale da B248 a V2AQ, valore impossibile perchè è fuori dalla convenzione, ed è invece il codice catastale della colonna a fianco, e altri che non sto qui a riportarvi.

La conclusione è che un lavoretto “facile” come l’algoritmo per il calcolo del codice fiscale si trasforma in un lavoro lungo, palloso, monotono, in cui va scritto un programma solo per decodificare e controllare le costanti necessarie, compilate e gestite dalla nostra Pubblica Amministrazione.

5 commenti

  • marcoscud
    3 ottobre 2012 #

    Mia figlia è nata in USA (404) ma un sacco di applicazioni scritte da cazzoni pretendono che lei poi RISULTI pure cittadina USA. A Brera il primo anno ci si dovette iscrivere così perché il "cantinaro" che aveva scritto il programma era più stupido degli altri. Che Federica sia poi anche Cittadina USA è fuori dalla discussione. Fatica poi a correggere dal 2° anno. A me chiedono (Marco Maria) come mai il mio codice SCDMRC non tenga conto del Maria. E pretendono una copia patente che porta solo MARCO. Come vedi c'è più follia di quanto non si creda.

  • Luca Mearelli
    4 ottobre 2012 #

    come ti capisco ... Io comunque sono sempre piu' convinto che l'unico modo sano di trattare il codice fiscale sia come un identificativo personale senza alcuna semantica, evitando proprio di calcolarlo. Fra l'altro non e' banale il problema dell'omocodia in cui due persone avrebbero ottenuto lo stesso codice fiscale dall'algoritmo e quindi lo stato assegna ad una delle due un diverso codice (che NON si ottiene dall'algoritmo): http://it.wikipedia.org/wiki/Omocodia ...........

  • Walter Franzini
    4 ottobre 2012 #

    Sicuro che il problema sia calcolare il codice fiscale e non verificare che un certo codice fiscale sia corretto?

  • ludo
    4 ottobre 2012 #

    Walter, purtroppo si: sto rifacendo una app scritta secoli fa in Access (!) che ha la funzione di generazione del codice fiscale.

    Luca si, sono perfettamente d’accordo: dovremmo fare come gli americani, il Social Security Number è un numero e basta.

    Marco verissimo, i "cantinari" fanno anche la cappella di usare la residenza per il calcolo del codice fiscale, che invece va calcolato sul luogo di nascita.

  • zuck
    2 gennaio 2013 #

    La possibilità dell'omocodia rende impossibile determinare il codice fiscale a partire dalle informazioni personali. Inoltre, il codice fiscale è quello che ti viene dato dall'agenzia delle entrate. Che potrebbe anche sbagliare e assegnartene uno che non c'entra niente coi tuoi dati personali. E quindi bisogna ricordare di controllare sempre il codice fiscale determinato automaticamente e lasciarlo modificabile nei csai sopracitati.