/documents

Um manipulador de documentos (RG, CPF, Inscrição Estadual, etc)

Primary LanguagePHPMIT LicenseMIT

documents

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.