lytrax/afm

希腊AFM(TIN)验证器和生成器

1.0.0 2020-01-02 23:21 UTC

This package is auto-updated.

Last update: 2024-09-07 08:08:44 UTC


README

Linux Build Status Packagist

Logo

验证和生成希腊TIN(税号)/ AFM(Αριθμός Φορολογικού Μητρώου)。生成函数可以创建有效或无效的数字,包括旧格式、个人、法人实体和重复容差位控制参数。

在线演示和展示

https://lytrax.io/blog/projects/greek-tin-validator-generator

安装

composer require lytrax/afm

用法

使用一个或多个函数

use function Lytrax\AFM\validateAFM;
use function Lytrax\AFM\generateAFM;
use function Lytrax\AFM\generateValidAFM;
use function Lytrax\AFM\generateInvalidAFM;

验证一个数字

validateAFM('090000045');
bool(true)

validateAFM('123456789');
bool(false)

生成一个有效数字

generateValidAFM();
string(9) "731385437"

生成一个无效数字

generateInvalidAFM();
string(9) "853003357"

API

validateAFM ($afm, $params = [])

  • $afm: string - 要检查的数字
  • $params: array (optional) - 可选的命名参数关联数组
  • $params['extendedResult']: boolean = false - 返回一个 booleanarray
  • 返回值: booleanarray(关联数组,包含 valid: booleanerror: string ('length' 或 'nan' 或 'zero' 或 'invalid')

示例

validateAFM('ab1234', ['extendedResult' => true]);
array(2) {
  ["valid"]=>
  bool(false)
  ["error"]=>
  string(6) "length"
}

generateAFM ($params = [])

  • $params: array (optional) - 可选的命名参数关联数组
  • $params['forceFirstDigit']: null|int (optional) - 如果指定,则覆盖所有 pre99、legalEntity 和 individual
  • $params['pre99']: boolean = false - 1999年1月1日之前的AFM(以0开头),(如果为true,则覆盖 legalEntity 和 individual)
  • $params['individual']: boolean = false - 自然人,(以1-4开头)
  • $params['legalEntity']: boolean = false - 法人实体(以7-9开头)
  • $params['repeatTolerance']: null|int (optional) - 重复容差的最大数字(0表示无重复,未指定表示不检查)
  • $params['valid']: boolean = true - 生成有效或无效的AFM
  • 返回值: string - 一个有效或无效的9位AFM数字

示例

generateAFM([
  'forceFirstDigit' => 3,
  'repeatTolerance' => 1,
  'valid' => true
]);
string(9) "335151580"

generateValidAFM - 与 generateAFM 相同,但将 $params['valid'] 强制和覆盖为 true

  • 返回值: string - 一个有效的9位AFM数字

示例

generateValidAFM(['pre99' => true]);
string(9) "070825250"

generateInvalidAFM - 与 generateAFM 相同,但将 $params['valid'] 强制和覆盖为 false

  • 返回值: string - 一个无效的9位AFM数字

示例

generateInvalidAFM(['legalEntity' => true]);
string(9) "877577341"

测试

克隆此存储库,安装包并运行PHPUnit

git clone https://github.com/clytras/afm-php.git && cd afm-php
composer install
./vendor/bin/phpunit --testdox

运行演示

php ./demo/index.php

变更日志

CHANGELOG

许可证

MIT许可证 - 详细信息请参阅 LICENSE 文件