Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63

    dal codice fiscale ai dati anagrafici

    Ciao, provo a chiedere anche su questo forum!... Ho la necessità di estrarre dal codice fiscale il comune la data di nascita ed il sesso della persona. Dovrò compilare dei form di anagrafica di soci che si tesserano che contengano oltre al codice fiscale anche questi dati distinti... pertanto (per velocizzare il lavoro) inserendo il campo codice fiscale per primo e trovando precompilati i campi di nascita e sesso basterà un colpo d'occhio di controllo veloce per confrontare l'esattezza o correggere.... CON NOTEVOLE RISPARMIO DI TEMPO!!! C'è qualcuno che mi può aiutare?... Specifico anche che ho del codice con relative tabelle che su inserimento dei dati anagrafici restituisce il codice fiscale o inserendo il codice fiscale restituisce i dati anagrafici, necessità della quale ripeto che sono solo luogo data di nascita e sesso... forse si potrebbero utilizzare! se serve vi posso segnalare il link essendo un db free!

  2. #2
    Non capisco, dici che vuoi estrarre dal codice fiscale comune/data di nascita e sesso e poi dici che hai gia' del codice che lo fa... E noi come possiamo aiutarti?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    Eh sì capisco la perplessità! forse mi sono spiegato male o sono stato incompleto... il software che o crea codice fiscale dai dati anagrafici oppure fa il contrario lo fa su un form a se stante ed io non so come fare ad inserire questo codice nella mia maschera creando poi delle caselle combinate (luogo e data di nascita e sesso) che in automatico si compilano. Di seguito scrivo il link al software free che ho detto poc'anzi http://www.rgpsoft.it/free/download_...hp?software=28

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    mi potete aiutare?

  5. #5
    Quote Originariamente inviata da Eurialo Visualizza il messaggio
    Eh sì capisco la perplessità! forse mi sono spiegato male o sono stato incompleto... il software che o crea codice fiscale dai dati anagrafici oppure fa il contrario lo fa su un form a se stante ed io non so come fare ad inserire questo codice nella mia maschera creando poi delle caselle combinate (luogo e data di nascita e sesso) che in automatico si compilano. Di seguito scrivo il link al software free che ho detto poc'anzi http://www.rgpsoft.it/free/download_...hp?software=28
    Non puoi.

    Ovvero, non c'è nessun modo in cui tu possa inserire l'algoritmo che è stato già compilato dentro un certo applicativo in un'altro applicativo, quindi quel software di rpgsoft non ti è utile per questo scopo.

    Altrettanto, a meno che il software in cui devi andare ad inserire i dati (non ci hai detto quale è e con che linguaggio è sviluppato, tra l'altro) non sia da te sviluppato e quindi tu ne abbia i sorgenti, non potresti nemmeno modificare questo per inserirgli un eventuale codice che faccia quello che chiedi, anche recuperato da altrove.

    Potresti utilizzare un software di automazione come Windows scripting o AutoIt per cercare di controllare entrambi i programmi, ma ti garantisco che non è cosa semplice e i risultati sono tutto fuorché affidabili.

    Insomma: in cosa è scritto il programma di cui vorresti modificare il comportamento? Ne hai i sorgenti? Sai programmare in quel linguaggio?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    è fatto in access...è un'anagrafica... e sì ho i sorgenti, nel senso che ho iniziato da un programma free di anagrafica per avere una base ma poi l'ho completamente trasformato, ed ora lo sto rifinendo

  7. #7
    Ok, quel che posso fare se vuoi è postarti uno spezzone di codice php che fa la stessa cosa.

    Non ti dovrebbe essere difficile capire come funziona e tradurlo in Access, ma probabilmente se c'è qualcuno che ha già quel codice in access vai più agevole...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    beh se puoi! spero di capirlo! sai non sono molto ferrato e provo a fare un po' di programmazione, solo quella che mi serve e stop

  9. #9
    Codice PHP:
        //mappa per gli omocodici
        
    $omomap=array("L","M","N","P","Q","R","S","T","U","V");
        switch (
    $datodaestrarre):
            case (
    "data"):
                
    //leggo cifre anno
                
    $yearstr=_substr($codicefiscale,6,1);
                
    $yearstr2=_substr($codicefiscale,7,1);
                
    //correggo eventuale omocodia
                
    $yearstr=(array_search($yearstr,$omomap)!==false?trim(array_search($yearstr,$omomap)):$yearstr);
                
    $yearstr2=(array_search($yearstr2,$omomap)!==false?trim(array_search($yearstr2,$omomap)):$yearstr2);
                
    //ricavo l'anno
                
    $year=1900+intval($yearstr.$yearstr2);
                
    //ricavo il mese
                
    $monthmap=array("a","b","c","d","e","h","l","m","p","r","s","t");
                
    $month=array_search(_strtolower(_substr($codicefiscale,8,1)),$monthmap)+1;
                
    //leggo cifre giorno
                
    $daystr=_substr($codicefiscale,9,1);
                
    $daystr2=_substr($codicefiscale,10,1);
                
    //correggo eventuale omocodia
                
    $daystr=(array_search($daystr,$omomap)!==false?trim(array_search($daystr,$omomap)):$daystr);
                
    $daystr2=(array_search($daystr2,$omomap)!==false?trim(array_search($daystr2,$omomap)):$daystr2);
                
    //ricavo il giorno
                
    $day=intval($daystr.$daystr2);
                if (
    $day>40):
                    
    $day=$day-40;
                endif;
                
    //$objDebug->Messages="Autofilled value: ".date($widget->MascheraIO,mktime(0,0,0,$month,$day,$year));
                
    $valoretrovato=date($widget->MascheraIO,mktime(0,0,0,$month,$day,$year));
                break;
            case (
    "maschio"):
                
    //leggo cifre giorno
                
    $daystr=_substr($codicefiscale,9,1);
                
    $daystr2==_substr($codicefiscale,10,1);
                
    //correggo eventuale omocodia
                
    $daystr=(array_search($daystr,$omomap)!==false?trim(array_search($daystr,$omomap)):$daystr);
                
    $daystr2=(array_search($daystr2,$omomap)!==false?trim(array_search($daystr2,$omomap)):$daystr2);
                
    //ricavo il giorno
                
    $day=intval($daystr.$daystr2);
                
    //è maschi se day < 40
                
    $valoretrovato=(($day>40)?"0":"1");
                break;
            case (
    "comune"):
                
    $daticomune=_substr($codicefiscale,11,4);
                if (
    _substr($daticomune,0,1)=="Z"):
                    
    //è uno stato estero il comune non lo so
                    
    $valoretrovato="";
                else:
                    
    $valoretrovato=$daticomune;
                endif;
                
    //qui devo convertire al l'id del comune se sto riempiendo un campo extid, al nome altrimenti
                
    if ($valoretrovato!=""):
                    if (
    $widget->TipoValore=="extid"):
                        
    $sSQL="SELECT id FROM comuni WHERE codfisc=\"".$valoretrovato."\"";
                    else:
                        
    $sSQL="SELECT nome FROM comuni WHERE codfisc=\"".$valoretrovato."\"";
                    endif;
                    
    $objConn=ConnessioneHL::Init();
                    
    $record=$objConn->OttieniRecord($sSQL);
                    if (
    is_array($record)):
                        if (
    $widget->TipoValore=="extid"):
                            
    $valoretrovato=$record["id"];
                        else:
                            
    $valoretrovato=$record["nome"];
                        endif;
                    endif;
                endif;
                break;
            case (
    "provincia"):
                
    $daticomune=_substr($codicefiscale,11,4);
                if (
    _substr($daticomune,0,1)=="Z"):
                    
    //è uno stato estero la provincia non la so
                    
    $valoretrovato="";
                else:
                    
    $valoretrovato=$daticomune;
                endif;
                
    //qui devo convertire al l'id della prov se sto riempiendo un campo extid, al nome della prov altrimenti
                
    if ($valoretrovato!=""):
                    if (
    $widget->TipoValore=="extid"):
                        
    $sSQL="SELECT idprovincia FROM comuni WHERE codfisc=\"".$valoretrovato."\"";
                    else:
                        
    $sSQL="SELECT province.nome as nomeprovincia FROM comuni LEFT JOIN province ON comuni.idprovincia=province.id WHERE codfisc=\"".$valoretrovato."\"";
                    endif;
                    
    $objConn=ConnessioneHL::Init();
                    
    $record=$objConn->OttieniRecord($sSQL);
                    if (
    is_array($record)):
                        if (
    $widget->TipoValore=="extid"):
                            
    $valoretrovato=$record["idprovincia"];
                        else:
                            
    $valoretrovato=$record["nomeprovincia"];
                        endif;
                    endif;
                endif;
                break;
            case (
    "stato"):
            case (
    "nazione"):
                
    $valoretrovato="it";
                
    $datistato=_substr($codicefiscale,11,4);
                
    //$objDebug->Messages="Dati stato: ".$datistato;
                
    if (_substr($datistato,0,1)=="Z"):
                    
    //è uno stato estero devo guardare nella codifica degli stati esteri
                    
    $valoretrovato="ee";
                    
    $sSQL="SELECT iso2 FROM nazcodfisc WHERE cod=\"".$datistato."\"";
                    
    $objConn=ConnessioneHL::Init();
                    
    $record=$objConn->OttieniRecord($sSQL);
                    if (
    is_array($record)):
                        
    $valoretrovato=$record["iso2"];
                    endif;
                endif;
                
    //qui dovrei convertire all'id numerico della nazione se è un campo extid quello in cui inserisco il valore
                
    if ($widget->TipoValore=="extid"):
                    
    $sSQL="SELECT id FROM nazioni WHERE iso2=\"".$valoretrovato."\"";
                    
    $objConn=ConnessioneHL::Init();
                    
    $record=$objConn->OttieniRecord($sSQL);
                    if (
    is_array($record)):
                        
    $valoretrovato=$record["id"];
                    endif;
                endif;
                break;
            case (
    "check"):
                
    $valoretrovato=_substr($codicefiscale,15,1);
                break; 

    Che utilizza due tabelle fate così:

    CREATE TABLE `comuni` (
    `id` bigint(20) unsigned NOT NULL,
    `esiste` tinyint(1) NOT NULL DEFAULT '1',
    `idprovincia` bigint(20) unsigned NOT NULL,
    `nome` varchar(100) NOT NULL,
    `istat` varchar(7) DEFAULT NULL,
    `codfisc` varchar(4) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Elenco comuni italiani';


    CREATE TABLE `province` (
    `id` bigint(20) unsigned NOT NULL,
    `nome` varchar(100) NOT NULL,
    `sigla` varchar(3) DEFAULT NULL,
    `istat` varchar(3) DEFAULT NULL,
    `idregione` bigint(20) unsigned NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `nome` (`nome`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Elenco province italiane';
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.