emcvlt/documents

负责文档验证的类

v1.2 2019-02-12 18:19 UTC

This package is auto-updated.

Last update: 2024-09-13 11:57:08 UTC


README

一个文档处理器(如:税号、身份证号、州注册号等)

安装

使用 Composer

$ composer require emcvlt/documents

使用

要验证一个注册号,只需调用该类,并传递注册号和该号所属的州。

// 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.";
}

无效的州代码

如果提供的州代码无效(不存在的州代码),该类将抛出一个 'InvalidArgumentException' 类型的异常。您可以轻松地处理这种行为。

// 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";
}

处理州注册号的豁免

在州注册号豁免的情况下,您只需在号码中提供 'ISENTO' 或 'ISENTA' 的值。该类通常处理大写和小写字母,无论是在州注册号还是在州代码中。

例如,以下都是有效的

  • 'SP', 'Sp' 或 'sp' 代表圣保罗州
  • 'ISENTO', 'Isento' 或 'isento' 代表豁免

处理缩写号码(没有左边的零)和格式

您需要提前处理州注册号中所需数字的位数。一些州不使用州标识符数字(前两位数字)并且用户倾向于表示号码时不包括左边的零。在这些情况下,该类无法处理这些值并可能显示一个“错误”的结果。

州注册号中也使用了标点符号和字母。在这些情况下,该类将正确处理这些值,忽略标点符号并处理其他字符(字母和数字)。

例如,对于圣保罗州(SP)的注册号,以下都是有效的

  • 'P-01100424.3/002' 或 'P011004243002'

如有疑问,请参阅每个州的相关文档或 Sintegra 网站(http://www.sintegra.gov.br)以澄清疑问。

测试

包含了一个包含所有联邦单位有效值的测试程序。

$ phpunit --verbose --testdox tests/StateRegistrationTest.php

致谢

许可证

MIT 许可证。请参阅 许可证文件 获取更多信息。