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,768 All time: 2,218 This week: 64Up
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: 39
All time rank: 2491 in Ireland Ireland
Week rank: 178 Up2 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 (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,768
This week:0
All time:2,218
This week:64Up
User Ratings User Comments (3)
 All time
Utility:75%StarStarStarStar
Consistency:68%StarStarStarStar
Documentation:-
Examples:50%StarStarStar
Tests:-
Videos:-
Overall:49%StarStarStar
Rank:2832
 
Awsome.
7 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...
15 years ago (davide barlassina)
50%StarStarStar