webhub / vat
kdeldycke的增值税率封装在PHP库中
0.7.0
2019-03-26 08:56 UTC
Requires
- php: ^7.1
- nesbot/carbon: ^2.16
Requires (Dev)
- guzzlehttp/guzzle: ^6.3
- league/csv: ^9.2
- phpunit/phpunit: ^7.5
- zendframework/zend-code: ^3.3
README
这是kdeldycke/vat-rates的封装。
🛠 使用方法
安装
composer require webhub/vat
基本使用
use Webhub\Vat\Rates; $rate = (new Rates)->in('NL')->current()->get(); $rate->rate(); // 0.21 $rate->currencyCode(); // 'EUR' $rate = (new Rates)->in('BE')->at('1990-01-01')->get(); $rate->rate(); // 0.12
税率
Rates
实例是一组税率。
可以过滤税率
->in(string $territory)
一个地区,例如DE
或NL
->at(string|Carbon $when)
一个日期,例如2018-01-05
,支持Carbon->current()
等同于->at(Carbon::now())
->type(string $type)
税率类型,目前数据库仅包含标准税率。
当只剩下一个税率时,->get() : Rate
方法将检索它,否则会抛出。通过->all() : array
获取所有税率。
税率
Rate
具有以下属性:
->rate() : string
税率的十进制分数表示,例如20%表示为'0.20'->rateType() : string
税率类型,目前为standard
。->(start|stop)Date() : Carbon
首个有效日和后续第一个无效日的Carbon日期实例。->currencyCode() : string
货币,如SEK
或EUR
->description() : ?string
税率的可选描述
Rates
将方法调用代理到底层的Rate
,如果它存在且唯一。
// with ->get() (new Rates)->in('DE')->current()->get()->rate(); // equals shorter: (new Rates)->in('DE')->current()->rate(); // non unique (new Rates)->in('FR')->rate(); // throws AmbiguousResultException (new Rates)->in('XX')->get(); // throws NoResultException
税率数组访问
Rate
实现了ArrayAccess
,因此在使用例如Laravel的Collection时,这是完全可能的
collect((new Rates)->in('NL')->all()) ->sortBy('start_date') ->pluck('rate', 'start_date');
📝 编译新数据集
数据从kdeldycke/vat-rates
获取并写入到包含在Rates
中的PHP文件data.php
中。
composer install
composer run build // runs Generator::generate()