emcvlt / documents
Classe responsável pela validação de documentos
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: ^4.0
This package is auto-updated.
Last update: 2025-06-13 13:30:50 UTC
README
Um manipulador de documentos (RG, CPF, Inscrição Estadual, etc)
Instalar
Usando Composer
$ composer require emcvlt/documents
Uso
Para validar um número de inscrição, basta você realizar uma chamada à classe passando como parâmetros o número da inscrição e a UF a qual pertence este número.
// Aqui definimos valores fictícios, porém válidos $number = '01.140.812/690-10'; $stateOfRegistration = 'AC'; // Verificar se uma inscrição estadual é válida if StateRegistration::isValid($number, $stateOfRegistration) { echo "A inscrição estadual {$number} / {$stateOfRegistration} é válida"; } else { echo "A inscrição estadual {$number} / {$stateOfRegistration} não é válida. Verifique e tente novamente."; }
UF inválida
Caso o estado informado seja inválido (UF inexistente), a classe irá gerar uma exceção do tipo 'InvalidArgumentException'. Você pode tratar este comportamento facilmente.
// Aqui definimos valores fictícios, porém inválidos $number = '01.140.812/690-10'; $stateOfRegistration = 'XX'; try { // Verificar se uma inscrição estadual é válida if StateRegistration::isValid($number, $stateOfRegistration) { echo "A inscrição estadual {$number} / {$stateOfRegistration} é válida"; } else { echo "A inscrição estadual {$number} / {$stateOfRegistration} não é válida. Verifique e tente novamente."; } } catch (\InvalidArgumentException $e) { // Aqui tratamos os casos de UF inválida echo 'Exceção capturada: ', $e->getMessage(), "\n"; }
Lidando com isenções de inscrição estadual
Nos casos em que ocorrer a isenção da inscrição estadual, você pode simplesmente fornecer no número o valor 'ISENTO' ou 'ISENTA'. A classe lida com letras maiúsculas e minúsculas normalmente, tanto no número da inscrição estadual quanto na UF.
Por exemplo são válidos:
- 'SP', 'Sp' ou 'sp' para o estado de São Paulo
- 'ISENTO', 'Isento' ou 'isento' para isentos
Lidando com números abreviados (sem zeros à esquerda) e formatação
Você precisa lidar antecipadamente com relação à quantidade de algarismos exigidos na inscrição estadual. Algumas UFs não usam dígitos identificadores da UF (os dois primeiros dígitos) e os usuários tendem à representar o número sem os zeros à esquerda. Nestes casos esta classe não saberá lidar com estes valores e poderá indicar um 'falso' resultado.
Também são usados sinais de pontuação na inscrição estadual e até letras. Nestes casos a classe irá lidar corretamente com estes valores, ignorando as pontuações e tratando os demais caracteres (letras e números).
Por exemplo são valores válidos para inscrições de São Paulo (SP):
- 'P-01100424.3/002' ou 'P011004243002'
Em caso de dúvidas, consulte a documentação de cada estado ou o site do Sintegra (http://www.sintegra.gov.br) para esclarecer suas dúvidas.
Testes
Incluí uma rotina de testes com valores válidos de todas as unidades da federação.
$ phpunit --verbose --testdox tests/StateRegistrationTest.php
Créditos
Licença
A Licença MIT (MIT). Por favor veja License File para maiores informações.