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()