Newsgroup: it.lavoro.professioni.webmaster
Titolo: Re: Codice fiscale..

 
Sei un grande.. farò proprio così.. ;))) Tanto non ci guadagno una cippa 
lippa.. ;)
Grazie, DigiART ;)

 Cooper.
Andrea

 Come no :)
Io aggiungerei soltanto che: durante questi anni su internet mi son 
registrato a vari portali, negozi, email.... come tutti del resto, e non 
ho mai visto il codice fiscale automatico...al solito esco il portafogli 
e copio..., deduco che è uno sforzo inutile in un form... se non lo 
hanno messo i grandi nei loro portali perchè dovrebbe porsi il problema 
qualcosa di molto più piccolo? Se poi vogliamo fare esperimenti per i 
fatti propri è un altro discorso. Mi sembra che basti. Punto.
-- 
Bye Folks, Sayonara yo.
www.nyoworks.com
 - Work & Fun
www.nyosources.com
 - Fun Only
Cambiare gli zeri con la lettera "o" per scrivermi.
Ryoma Echizen: "Mada mada dane" - "Never Give Up"

 qualcosa di molto più piccolo? 
Il ragionamento non fa una piega.. onde evitare casini.. rinuncio 
all'idea.. era solo una cosa che mi avevano detto di mettere.. ma domani 
gli spiego le ragioni per cui è meglio evitare.. e tutto a posto.. 
grazie a tutti ;))
DigiART ;)

 
Salve, al limite puoi effettuare un controllo di validità del codice
fiscale fine a se stesso.
Ti allego una funzione in PHP che effettua il controllo che potresti fare.
---------------------------------------------------------
function controllocf ($c_f) {
	if (strlen($c_f)==0){
		$messaggio = "Errore, il campo è vuoto.";
		return array ($messaggio);
	}
	elseif (ereg("^[0-9]{11}$", $c_f)) {
		$messaggio = "Il codice fiscale inserito è relativo ad una persona
giuridica.";
		return array ($messaggio);
	}
	elseif
(!ereg("^[a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1}$",
$c_f)) {
		$messaggio = "Errore, il codice fiscale contiene caratteri non validi o
non è della lunghezza esatta.";
		return array ($messaggio);
	}
	else {
		$s=0;
		for ($i = 1; $i <= 13; $i += 2 ){
			$c = $c_f[$i];
			if ('0' <= $c && $c <= '9') {
				$s += ord($c) - ord('0');
			}
			else {
				$s += ord($c) - ord('A');
			}
		}
		for ($i = 0; $i <= 14; $i += 2 ) {
			$c = $c_f[$i];
			switch( $c ){
				case '0':  $s += 1;  break;
				case '1':  $s += 0;  break;
				case '2':  $s += 5;  break;
				case '3':  $s += 7;  break;
				case '4':  $s += 9;  break;
				case '5':  $s += 13;  break;
				case '6':  $s += 15;  break;
				case '7':  $s += 17;  break;
				case '8':  $s += 19;  break;
				case '9':  $s += 21;  break;
				case 'A':  $s += 1;  break;
				case 'B':  $s += 0;  break;
				case 'C':  $s += 5;  break;
				case 'D':  $s += 7;  break;
				case 'E':  $s += 9;  break;
				case 'F':  $s += 13;  break;
				case 'G':  $s += 15;  break;
				case 'H':  $s += 17;  break;
				case 'I':  $s += 19;  break;
				case 'J':  $s += 21;  break;
				case 'K':  $s += 2;  break;
				case 'L':  $s += 4;  break;
				case 'M':  $s += 18;  break;
				case 'N':  $s += 20;  break;
				case 'O':  $s += 11;  break;
				case 'P':  $s += 3;  break;
				case 'Q':  $s += 6;  break;
				case 'R':  $s += 8;  break;
				case 'S':  $s += 12;  break;
				case 'T':  $s += 14;  break;
				case 'U':  $s += 16;  break;
				case 'V':  $s += 10;  break;
				case 'W':  $s += 22;  break;
				case 'X':  $s += 25;  break;
				case 'Y':  $s += 24;  break;
				case 'Z':  $s += 23;  break;
			}
		}
		if (chr($s%26 + ord('A')) != $c_f[15]) {
			$messaggio = "Errore, il codice fiscale inserito non è formalmente
corretto in quanto il codice di controllo non corrisponde.";
		}
		else {
			$messaggio = "Ok";
                        return array ($messaggio);
		}
	}
}
---------------------------------------------------------
Ciao e buona giornata.
-- 
Effe8


Esatto, questa è la procedura che io utilizzavo ritenendola la più esatta, e 
non tanto fine a se stesso -)
L'utente inserisce i suoi dati compreso il suo codice fiscale.
Il programma esegue un controllo e in caso di incongruenza avvisa l'utente 
di controllare il dato inserito
e se l'utente conferma .. quello è.
Io utilizzavo il codice fiscale ai fini fiscali, e per evitare problemi, in 
caso di incongruenza chiedevo al cliente di inviare un fax del codice 
fiscale.
sicampa 


Se se, questo lo dici te, ma io sono ben lontano da questa idea.... per me 
hai visto che era troppo complicato e hai lasciato perdere (lo hai detto 
testualmente anche te).
Cooper
PS: Sul sito delle finanze trovi il programmino che genera il codice 
fiscale.... dagli una bella lettura, noterai che i tuoi presupposti non sono 
fondati.
-- 
BlueWare Web Agency
   [http:] 
www.blueware.it
   [msn:] 
coo...@blueware.it
   [icq:] 146781935 

 
In effetti la casistica ci dimostra che su decine di milioni di abitanti è
frequente che in uno stesso comune ci siano persone con il medesimo codice
fiscale, anche perchè possono esserci nomi e/o cognomi che sono diversi, ma
hanno le prime tre consonanti identiche (ad esempio ALESSIO e ALESSANDRO),
oppure nomi e cognomi composti da più parole.
Il Ministero delle Finanze prevede i casi di "omocodia", infatti prima di
rilasciare un CF controlla che lo stesso non sia gia stato assegnato,
altrimenti genera un CF con un 'algoritmo ad hoc' che tiene conto
dell'omocodia.
Qui se ne parla.
http://www.agenziaentrate.it/documentazione/annuario/2003/annuario_html/capitolo_05.htm
Buona giornata.
-- 
Effe8


Infatti, è quello che dicevo:
<quoto>
 infine, l'ultimo carattere (casella di controllo) è calcolato dall'Anagrafe 
tributaria secondo uno specifico algoritmo.
</quoto>
e ancora, in riferimento all'ultimo post:
<quoto>
Omocodia, cos'è e come si risolve
    Può accadere, anzi accade abbastanza di frequente, che due persone 
abbiano cognomi simili e condividano anche altri dati anagrafici in modo 
tale che, in base alle regole generali, dovrebbe essere attribuito loro lo 
stesso codice fiscale (omocodia).
    In questi casi, il sistema informativo dell'Agenzia delle Entrate 
attribuisce, utilizzando criteri particolari (che portano anche a una 
diversa composizione del codice: l'ultimo numero diventa una lettera) un 
codice diverso a ciascuna delle persone alle quali con i criteri standard 
verrebbe attribuito lo stesso codice fiscale.
</quoto>
Come si può facilmente notare, in caso di omocodia, entra in gioco l'ultima 
lettera del codice fiscale, per cui il rischio che si abbiano codici fiscali 
identici è nullo.
Non dimentichiamo che il codice fiscale è fatto di 16 caratteri non di 15... 
se i primi 15 sono uguali, indubbiamente il 16esimo sarà diverso.
Cooper.


 Cooper.
Andrea


il soggetto di "variazione"  è l'algoritmo quindi concludi che l'agenzia 
delle entrate varia l'algoritmo.... vedi che pasticci uscirebbero fuori :)
Normalmente un algoritmo usato a larga scala (esempio questo del codice 
fiscale) è un algoritmo standard, come lo sono algoritmi standard quelli di 
ordinamento, etc.
Se poi lo si varia a piacimento, non è piu standard :)))


 del genere sembra essere quella di due gemellini...
no, è troppo semplicistica.
basta che siano nello stesso "riferimento ISTAT" cioè in un insieme di
città/paesini che finiscono sotto lo stesso codice istat, che abbiano
nome e cognome "simili" considerando che non vengono prese tutte le
lettere.
Ti assicuro che certi casi esistono, infatti penso che siamo tutti in
attesa di un webservice dell'anagrafe che dando in pasto un cf ci dica se
esiste (non se è valido) o non nella banca dati italiana.
nelle applicazioni che maneggio il cf è calcolato in base ai dati
inseriti dall'utente, se poi ci sono dei casi anomali (capitato solo uno
di un tizio del nord-est che era uno dei tuoi "gemellini") mandano una
email all'assistenza e lo inserisco io a manina.
IMHO
se poi fai solo forum per community al massimo metti un avviso dicendo "il
cf inserito sembra non essere valido, sei sicuro di voler proseguire?"
ciao!

 Se poi lo si varia a piacimento, non è piu standard
infatti non ha questa pretesa

pure nate nello stesso comune :)
Diglielo ad un mio amico che lui e il suo omografo di CF sono entita'
impossibili e non esistono :-)
Se non ricordo male, in casi del genere viene cambiata una lettera
nella parte del CF relativa al nome.
'bye

 
Il 16° carattere, detto anche carattere di controllo viene calcolato sempre
mediante il medesimo algoritmo, l'unica variazione in caso di omocodia è
che il 15° carattere da numero diventa una lettera, con conseguente
ricalcolo anche del 16° carattere, almeno questo è quello che mi pare di
capire leggendo dal sito del Ministero delle Finanze.
http://www.agenziaentrate.it/documentazione/annuario/2003/annuario_html/capitolo_05.htm
bye. :-)
-- 
Effe8

 ha scritto nel messaggio 
news:10foa278...@effe8.it...

grazie del link, questo addirittura è molto più preciso e toglie ogni 
dubbio,
<quoto>
 infine, l'ultimo carattere (casella di controllo) è calcolato dall'Anagrafe 
tributaria secondo uno specifico algoritmo.
</quoto>
dunque esiste "uno specifico algoritmo" per il calcolo del 16° carattere.
che è quanto volevasi dimostrare.
Che poi sia calcolato dalle anagrafe tributaria o da chissà chi, non 
importa, importa il fatto che c'è uno specifico algoritmo.


 
http://www.agenziaentrate.it/documentazione/annuario/2003/annuario_html/capitolo_05.htm
grazie mille per il chiarimento.
giusto per curiosità... come decidono con cosa sostituire l'ultimo
numero? è segreto di stato o no?
questa parte però la sento da troppo tempo
"Per evitare rischi di circolazione di codici fiscali errati, l'Agenzia
delle Entrate ha allo studio la possibilità di mettere in distribuzione
un programma di scambio dati e collegamenti telematici con tutti gli Enti
pubblici. Diventerà più facile, quindi, l'immediato controllo."
mah?! avverrà mai?

 
E' gia avvenuto... :-)
http://www.agenziaentrate.it/servizi/duplicatocf/controllo_formale.htm
Tra parentesi ho trovato anche un programmino free e "non ufficiale" per il
calcolo dei CF e delle omocodie.
http://www.algoritmosoftware.com/codfree/codfreeinfo.asp
-- 
Effe8

 
http://www.algoritmosoftware.com/codfree/codfreeinfo.asp
questo non capisco come funzioni... ha al suo interno ubn database delle
omocodie?
e perchè cappero non è pubblico?
a me (ripeto) basterebbe un webservice "dello stato" che dato un codice
fiscale mi dica:
	- se è valido o no
	- se è valido ma facente parte di una omocodia
e mi pare che il programmmillo in questione dica di farlo... ma come mai
non è pubblicato nulla dal Ministero?
ciau8zz