Validar número contribuinte PT

Como necessitei de criar um utilitário para a validação do numero de contribuinte, coloco aqui a função que criei em PHP para esse fim.

/**
      * Função que valida se a estrutura do numero de contribuinte português é válida
      *
      * @todo validar se caracteres são todos digitos…
      *
      * Devolve os valores:
      * – 0 se o numero é válido
      * – 1 se o numero é inválido
      * – 2 se o numero tem comprimento errado
      *
      *
      */
    function calcularNif($string_nif){
        if(strlen($string_nif)==9){
            $nif_temp=str_split($string_nif);
            $soma_controlo=0;
            $digito_controlo_calculado=0;
            for($indice=0;$indice<8;$indice++){
                $soma_controlo+=$nif_temp[$indice]*($indice+2);
            }
            $calculo_parcial=intval($soma_controlo/11);
            $calculo_parcial2=11*$calculo_parcial;
            $digito_controlo_calculado=$soma_controlo-$calculo_parcial2;
            if($digito_controlo_calculado==10)
                $digito_controlo_calculado=0;
            if($digito_controlo_calculado==$nif_temp[8])
                return 0; //Devolve 0 se o numero é válido
            else
                return 1; //Devolve 1 se o numero é inválido

        }
        return 2; // Devolve 2 se numero com comprimento invalido
    }

?>
Nota: Como é óbvio deverão usar o código à vossa responsabilidade e deverão validar a sua correcção.

Não terei nem aceito qualquer responsabilidade sobre o seu uso e eventuais prejuízos pela sua utilização.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top