PHP Classes

Calcolo Codice Fiscale: Generate the fiscal code for people in Italy

Recommend this page to a friend!
  Info   View files Example   View files View files (3)   DownloadInstall with Composer Download .zip   Reputation   Support forum (10)   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStar 54%Total: 1,756 All time: 2,235 This week: 122Up
Version License PHP version Categories
codicefiscale 2.0Free for non-comm...5.3Finances
Description 

Author

This package is specific mainly for applications used in Italy Italy .

This class can be used the generate the fiscal code for people living in Italy.

It takes as parameters the name, surname, birth date, gender, city and region of a person.

The class processes the parameters and generates the person fiscal code.

The code and comments are in Italian.

In Italian:
Classe per il calcolo del codice fiscale.

Picture of Michele Brodoloni
  Performance   Level  
Name: Michele Brodoloni <contact>
Classes: 6 packages by
Country: Ireland Ireland
Age: 38
All time rank: 2491 in Ireland Ireland
Week rank: 683 Down2 in Ireland Ireland Down
Innovation award
Innovation award
Nominee: 3x

Example

<?php

require_once 'codicefiscale.class.php';

/**
 * In questo esempio ho esteso la classe CodiceFiscale_Abstract ed ho
 * implementato il metodo astratto _calcolaCatastale() per andare a leggere
 * un file contenente un array nel formato [CODICE_PROVINCIA][NOME_COMUNE]
 * e caricarlo in una variabile..
 *
 * Ovviamente √® possibile implementare il metodo per recuperare il catastale
 * a piacimento (database, webservice, ecc...)
 */
class CodiceFiscale extends CodiceFiscale_Abstract {
   
    private
$_db;
   
    public function
leggiCatastali($filename) {
       
$this->_db = unserialize(file_get_contents($filename));
    }
   
    protected function
_calcolaCatastale() {
        if (!
$this->_db) {
            throw new
CodiceFiscale_Exception('impossibile caricare il file dei catastali');
        }
       
$comune = strtoupper($this->comune);
       
$provincia = strtoupper($this->provincia);
        if (!isset(
$this->_db[$provincia][$comune])) {
           
$message = sprintf("codice catastale non trovato (provincia: %s, comune: %s)", $provincia, $comune);
            throw new
CodiceFiscale_Exception($message);
        }
        return
$this->_db[$provincia][$comune];
    }
}

// funzione di comodità per generare un array da passare alla classe
function componi($nome, $cognome, $data, $comune, $provincia, $sesso) {
    return [
      
'nome' => $nome,
      
'cognome' => $cognome,
      
'data' => $data,
      
'comune' => $comune,
      
'provincia' => $provincia,
      
'sesso' => $sesso
   
];
}

// istanzio la classe e carico il db dei catastali
$cf = new CodiceFiscale();
$cf->leggiCatastali('catastali.txt');
$dati = array();

// Non validi
$dati[] = componi(null, 'cognome', '01-01-1970', 'milano', 'mi', 'm');
$dati[] = componi('nome', null, '01-01-1970', 'milano', 'mi', 'm');
$dati[] = componi('nome', 'cognome', null, 'milano', 'mi', 'm');
$dati[] = componi('nome', 'cognome', '01-01-1970', null, 'mi', 'm');
$dati[] = componi('nome', 'cognome', '01-01-1970', 'milano', null, 'm');
$dati[] = componi('nome', 'cognome', '01-01-1970', 'milano', 'mi', null);
$dati[] = componi('nome', 'cognome', '565-55-5555', 'milano', 'mi', 'm');

// Validi
$dati[] = componi('A', 'B', '01-05-1977', 'rho', 'mi', 'm');
$dati[] = componi('A', 'B', '01-05-1977', 'rho', 'mi', 'f');
$dati[] = componi('Matteo', 'De Gasperi', '15-09-2001', 'roma', 'rm', 'm');
$dati[] = componi('Ramona', 'Si', '21-12-1982', 'senago', 'mi', 'f');
$dati[] = componi('Babbo', 'Natale', '25-12-1938', 'Cinisello Balsamo', 'MI', 'm');

foreach(
$dati as $persona) {
    try {
       
$cf->importa($persona);
        print
"Codice Fiscale: ". $cf->calcola() . "\n";
    } catch (
CodiceFiscale_Exception $e) {
        print
"Errore: ". $e->getMessage() . "\n";
        continue;
    }
}

// Metodo alternativo
$cf->nome = 'Me';
$cf->cognome = 'Medesimo';
$cf->data = '09-09-1982';
$cf->comune = 'senago';
$cf->provincia = 'mi';
$cf->sesso = 'm';

print
"Codice Fiscale (alternativo): ". $cf->calcola() . "\n";

$cf->formatoData('d/m/Y');
$cf->data = '09/09/1982';

print
"Codice Fiscale (alternativo): ". $cf->calcola() . "\n";





  Files folder image Files  
File Role Description
Accessible without login Plain text file catastali.txt Data database catastali serializzato
Plain text file codicefiscale.class.php Class Classe astratta Codice Fiscale
Accessible without login Plain text file esempio.php Example Script di esempio

 Version Control Unique User Downloads Download Rankings  
 0%
Total:1,756
This week:0
All time:2,235
This week:122Up
User Ratings User Comments (3)
 All time
Utility:83%StarStarStarStarStar
Consistency:75%StarStarStarStar
Documentation:-
Examples:50%StarStarStar
Tests:-
Videos:-
Overall:54%StarStarStar
Rank:1992
 
Awsome.
6 years ago (Bruno Piras)
70%StarStarStarStar
example not work :(
15 years ago (jokers)
45%StarStarStar
it works! but the packege doesn't include the file with the c...
14 years ago (davide barlassina)
50%StarStarStar