emcvlt / documents
负责文档验证的类
v1.2
2019-02-12 18:19 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: ^4.0
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 许可证。请参阅 许可证文件 获取更多信息。