eventix / eu-vat
欧洲增值税格式化和验证 Laravel 扩展包
v1.0.1
2019-08-28 13:39 UTC
Requires
- php: ^7.2
- ext-soap: *
- laravel/framework: ^5.7
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-08-29 00:28:44 UTC
README
此 Laravel 扩展包能够实现 (EU) 增值税号码的格式化和验证。
对于验证,它使用欧洲委员会的增值税信息交换服务 (VIES) 的端点 http://ec.europa.eu/taxation_customs/vies/faq.html
目录
安装
通过 Composer
$ composer require eventix/eu-vat
使用
当该包包含在 Laravel 项目中时,Composer 自动加载功能已自动发现一个服务提供者。这将扩展 Laravel 验证器,并添加一个验证规则(vat_number)。
还注册了一个 Facade 的别名。此 Facade(EuVat)将允许对增值税号码进行手动格式化和验证。
支持的国家
EuVat::codes(): array; // List of supported country codes EuVat::supports(string $countryCode): bool; // Determines if a given country code is supported EuVat::name(string $countryCode): ?string; // Returns the (english) name associated with a country code if it is supported) EuVat::inferCountry(string $vatNumber): ?string; // (Try to) guess the country of a vat number.
增值税号码
EuVat::format(string $vatNumber, ?string $countryCode = null): ?string // (Try to) format a vat number by the formatting rules of a given country, or a guessed country EuVat::validate(string $vatNumber, ?string $countryCode = null): ?string // (Try to) validate a vat number by the formatting rules of a given country, or a guessed country
验证器
通过推断其国家验证增值税号码
$data = [ 'vat_nr' => 'NL123456789B01', ]; $validator = Validator::make($data, [ 'vat_nr' => 'required|vat_number', ]);
验证给定国家的增值税号码
$data = [ 'vat_nr' => 'NL123456789B01', ]; $validator = Validator::make($data, [ 'vat_nr' => 'required|vat_number:NL', ]);
验证由另一个字段确定的国家的增值税号码
$data = [ 'country' => 'NL', 'vat_nr' => 'NL123456789B01', ]; $validator = Validator::make($data, [ 'vat_nr' => 'required|vat_number:country', ]);
仅在增值税号码更改时进行验证
如果值没有更改……它应该已经是有效的。这将减少对 VIES 的调用。注意:验证规则需要原始值才能正常工作。
验证推断国家的更改增值税号码
$data = [ 'vat_nr' => 'NL123456789B01', ]; $validator = Validator::make($data, [ 'vat_nr' => 'required|vat_number:NULL,NL123456789B01', ]);
验证由另一个字段确定的国家的更改增值税号码
$data = [ 'country' => 'NL', 'vat_nr' => 'NL123456789B01', ]; $validator = Validator::make($data, [ 'vat_nr' => 'required|vat_number:country,NL123456789B01', ]);
验证给定国家的更改增值税号码
$data = [ 'vat_nr' => 'NL123456789B01', ]; $validator = Validator::make($data, [ 'vat_nr' => 'required|vat_number:NL,NL123456789B01', ]);
测试
注意,为了测试,需要首先克隆项目并安装所有依赖项。
$ cd /packages/directory
$ git clone git@github.com:Eventix/eu-vat.git
$ composer install
$ composer test
许可
请参阅 许可文件。
无责任,实现者负责审查代码!
问题
请 提交问题。
贡献
请使用 Github Flow 进行贡献。Fork 项目,创建分支,添加提交,并 打开 pull request。
机会
- 测试覆盖率尚未达到 100%。
潜力
- 本地化国家名称的机会
- 3 位国家代码的机会
- 欧盟外国家/地区的机遇