Problema script codice fiscale

Problema script codice fiscale

Categoria:
0
0

Buona sera a tutti. Utilizzo questo script per il calcolo del codice fiscale...

 

Dichiara ([ _preparacognome = RefilaTutto( ParoleaSinistra ( Cognome ; 1 ) ;1;3) ;
_cc = Filtro(Maiuscolo(_preparacognome);"ZYXWVTSRQPNMLKJHGFDCB") ;
_vc = Filtro(Maiuscolo(_preparacognome);"EOUIA") ;
_lcc = Lunghezza(_cc) ;
_lvc = Lunghezza(_vc) ;
_sc = Casi(_lcc=0 and _lvc>=2;Sinistra(_vc;2) & "X";_lcc=1 and _lvc=1; _cc & _vc & "X";_lcc=1 and _lvc>= 2;_cc & Sinistra(_vc;2);_lcc=2 and _lvc>= 1;_cc & Sinistra(_vc;1); _lcc>=3;Sinistra(_cc;3); "???") ;
_preparanome = RefilaTutto(ParoleaSinistra (Nome ; 1 );1;3) ;
_cnn = Filtro(Maiuscolo(_preparanome);"ZYXWVTSRQPNMLKJHGFDCB") ;
_vn = Filtro(Maiuscolo(_preparanome);"EOUIA") ;
_lcn = Lunghezza(_cnn) ;
_lvn = Lunghezza(_vn) ;
_sn = Casi(_lcn=0 and _lvn>=2;Sinistra(_vn;2) & "X";_lcn=1 and _lvn=1;_cnn & _vn & "X";_lcn=1 and _lvn>= 2; _cnn & Sinistra(_vn;2);_lcn=2 and _lvn>=1; _cnn & Sinistra(_vn;1); _lcn=3;Sinistra(_cnn;3);_lcn>3;Sinistra(_cnn;1) & Mezzo(_cnn; 3; 2 ); "???") ;
_anno = Destra(Anno(DOB);2) ;
_letteramese = Mezzo( "ABCDEHLMPRST"; Mese(DOB); 1 ) ;
_giorno = Casi(Sesso = "M" ;
If(Giorno(DOB) < 10 ; "0" ; "") & Giorno (DOB) ;
Sesso = "F" ; Giorno(DOB) + 40 ) ;
_cfparz = _sc & _sn & _anno & _letteramese & _giorno & (codistat) ;
_carpari = Sost(Sost(Sost(Sost(Sost(Sost(Sost(Sost(_cfparz;15;1;"");13;1;"");11;1;"");9;1;"");7;1;"");5;1;"");3;1;"");1;1;"") ;
_cardispari = Sost(Sost(Sost(Sost(Sost(Sost(Sost(_cfparz;14;1;"");12;1;"");10;1;"");8;1;"");6;1;"");4;1;"");2;1;"") ;
_sommacar = (ContaRicorrenze(_cardispari;"A")*1)+

(ContaRicorrenze(_cardispari;"0")*1)+

(ContaRicorrenze(_cardispari;"B")*0)+

(ContaRicorrenze(_cardispari;"1")*0)+

(ContaRicorrenze(_cardispari;"C")*5)+

(ContaRicorrenze(_cardispari;"2")*5)+

(ContaRicorrenze(_cardispari;"D")*7)+

(ContaRicorrenze(_cardispari;"3")*7)+

(ContaRicorrenze(_cardispari;"E")*9)+

(ContaRicorrenze(_cardispari;"4")*9)+

(ContaRicorrenze(_cardispari;"F")*13)+

(ContaRicorrenze(_cardispari;"5")*13)+

(ContaRicorrenze(_cardispari;"G")*15)+

(ContaRicorrenze(_cardispari;"6")*15)+

(ContaRicorrenze(_cardispari;"H")*17)+

(ContaRicorrenze(_cardispari;"7")*17)+

(ContaRicorrenze(_cardispari;"I")*19)+

(ContaRicorrenze(_cardispari;"8")*19)+

(ContaRicorrenze(_cardispari;"J")*21)+

(ContaRicorrenze(_cardispari;"9")*21)+

(ContaRicorrenze(_cardispari;"K")*2)+

(ContaRicorrenze(_cardispari;"L")*4)+

(ContaRicorrenze(_cardispari;"M")*18)+

(ContaRicorrenze(_cardispari;"N")*20)+

(ContaRicorrenze(_cardispari;"O")*11)+

(ContaRicorrenze(_cardispari;"P")*3)+

(ContaRicorrenze(_cardispari;"Q")*6)+

(ContaRicorrenze(_cardispari;"R")*8)+

(ContaRicorrenze(_cardispari;"S")*12)+

(ContaRicorrenze(_cardispari;"T")*14)+

(ContaRicorrenze(_cardispari;"U")*16)+

(ContaRicorrenze(_cardispari;"V")*10)+

(ContaRicorrenze(_cardispari;"W")*22)+

(ContaRicorrenze(_cardispari;"X")*25)+

(ContaRicorrenze(_cardispari;"Y")*24)+

(ContaRicorrenze(_cardispari;"Z")*23)+

(ContaRicorrenze(_carpari;"A")*0)+

(ContaRicorrenze(_carpari;"0")*0)+

(ContaRicorrenze(_carpari;"B")*1)+

(ContaRicorrenze(_carpari;"1")*1)+

(ContaRicorrenze(_carpari;"C")*2)+

(ContaRicorrenze(_carpari;"2")*2)+

(ContaRicorrenze(_carpari;"D")*3)+

(ContaRicorrenze(_carpari;"3")*3)+

(ContaRicorrenze(_carpari;"E")*4)+

(ContaRicorrenze(_carpari;"4")*4)+

(ContaRicorrenze(_carpari;"F")*5)+

(ContaRicorrenze(_carpari;"5")*5)+

(ContaRicorrenze(_carpari;"G")*6)+

(ContaRicorrenze(_carpari;"6")*6)+

(ContaRicorrenze(_carpari;"H")*7)+

(ContaRicorrenze(_carpari;"7")*7)+

(ContaRicorrenze(_carpari;"I")*8)+

(ContaRicorrenze(_carpari;"8")*8)+

(ContaRicorrenze(_carpari;"J")*9)+

(ContaRicorrenze(_carpari;"9")*9)+

(ContaRicorrenze(_carpari;"K")*10)+

(ContaRicorrenze(_carpari;"L")*11)+

(ContaRicorrenze(_carpari;"M")*12)+

(ContaRicorrenze(_carpari;"N")*13)+

(ContaRicorrenze(_carpari;"O")*14)+

(ContaRicorrenze(_carpari;"P")*15)+

(ContaRicorrenze(_carpari;"Q")*16)+

(ContaRicorrenze(_carpari;"R")*17)+

(ContaRicorrenze(_carpari;"S")*18)+

(ContaRicorrenze(_carpari;"T")*19)+

(ContaRicorrenze(_carpari;"U")*20)+

(ContaRicorrenze(_carpari;"V")*21)+

(ContaRicorrenze(_carpari;"W")*22)+

(ContaRicorrenze(_carpari;"X")*23)+

(ContaRicorrenze(_carpari;"Y")*24)+

(ContaRicorrenze(_carpari;"Z")*25) ;
_caratterecontrollo = Mezzo("ABCDEFGHIJKLMNOPQRSTUVWXYZ?";Modulo(_sommacar;26)+1;1)] ;
_sc & _sn & _anno & _letteramese & _giorno & codistat & _caratterecontrollo)

 

tutto perfetto fino al momento in cui ho una persona con due nomi e/o cognomi... prendiamo Maria Luisa(nome corretto) genera codice fiscale sbagliato (MRA anziché del corretto MLS) se però metto MariaLuisa (tutto attaccato) il codice fiscale è corretto in tutto... c'è sicuro un problema con lo spazio tra un nome e l'altro e sicuro tra i cognomi nel caso di cognomi doppi... soluzioni? Grazie anticipatamente

Segnalato come spam
Pubblicato da (Domande: 6, Risposte: 6)
Domandato il 23 Settembre 2021 18:11
44 visualizzazioni
0
Domanda privata

Buongiorno, Filippo.

il problema è qui:

_preparanome = RefilaTutto(ParoleaSinistra (Nome ; 1 );1;3) ;

in questo modo prendi solo la prima parola del nome. tuttavia,  onestamente il calcolo mi sembra parecchio involuto. Posso proporti una alternativa?

qui trovi il nostro corso gratuito su come creare un codice fiscale (completo di slide ed esempio):

https://www.fmguru.it/corsi/creare-un-codice-fiscale-in-filemaker/

facci sapere!

.g.

Segnalata come spam
Pubblicato da (Domande: 0, Risposte: 2387)
Risposto il 23 Settembre 2021 18:34
0
Domanda privata

Ok ho provato a togliere parole a sinistra e sembra funzionare ora

Segnalata come spam
Pubblicato da (Domande: 6, Risposte: 6)
Risposto il 23 Settembre 2021 18:54