PHP Classes

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

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStar 49%Total: 1,770 All time: 2,212 This week: 35Up
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
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 (3)  
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

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 0%
Total:1,770
This week:0
All time:2,212
This week:35Up
User Ratings User Comments (3)
 All time
Utility:75%StarStarStarStar
Consistency:68%StarStarStarStar
Documentation:-
Examples:50%StarStarStar
Tests:-
Videos:-
Overall:49%StarStarStar
Rank:2847
 
Awsome.
8 years ago (Bruno Piras)
70%StarStarStarStar
example not work :(
16 years ago (jokers)
45%StarStarStar
it works! but the packege doesn't include the file with the c...
16 years ago (davide barlassina)
50%StarStarStar