Community Add-Ons
NIF
for osCommerce Online Merchant v2.2
This module add 1 field to Customers page in order to get the NIF from it. This module is only in spanish, because I think that the NIF number is not very useful out of the Spain borders ;)
[castellano]
Este módulo añade un campo en las páginas de petición y modificación de datos de los clientes para obtener el NIF y así poder realizar facturas correctas. El módulo está realizado sólo para castellano, ya que creo que sea muy útil fuera de nuestras fronteras ;)
Para las SC el NIF empieza por J, y no lo reconocía. Para ello sólo se debe añadir esta letra en la función y quedará como esta
// NIF CIF NIE
function tep_valida_nif_cif_nie($cif) {
//returns: 1 = NIF ok, 2 = CIF ok, 3 = NIE ok, -1 = NIF bad, -2 = CIF bad, -3 = NIE bad, 0 = ??? bad
//función creada por David Vidal Serra, Copyleft 2005
$cif=strtoupper($cif);
if (!ereg('((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)',$cif)) {return 0;}
for ($i=0;$i<9;$i++) {$num[$i]=substr($cif,$i,1);}
$suma=$num[2]+$num[4]+$num[6];
for ($i=1;$i<8;$i+=2) {$suma+=substr((2*$num[$i]),0,1)+substr((2*$num[$i]),1,1);}
$n=10-substr($suma,strlen($suma)-1,1);
if (ereg('^[ABCDEFGHNPQSJ]{1}',$cif)) {
if ($num[8]==chr(64+$n) || $num[8]==substr($n,strlen($n)-1,1)){return 2;} else {return -2;}}
if (ereg('^[KLM]{1}',$cif)) {
if ($num[8]==chr(64+$n)) {return 2;} else {return -2;}}
if (ereg('^[TX]{1}',$cif)) {
if ($num[8]==substr('TRWAGMYFPDXBNJZSQVHLCKE',substr(ereg_replace('X','0',$cif),0,8)%23,1) || ereg('^[T]{1}[A-Z0-9]{8}$',$cif)) {return 3;} else {return -3;}}
if (ereg('(^[0-9]{8}[A-Z]{1}$)',$cif)) {
if ($num[8]==substr('TRWAGMYFPDXBNJZSQVHLCKE',substr($cif,0,8)%23,1)) {return 1;} else {return -1;}}
return 0;
}
//
Gracias a todos los que lo habeis creado. Un saludo desde Barna
