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 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Related Posts

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

Back To Top