一个用于在Teamleader CRM中处理增值税号的库

1.3.0 2022-06-09 11:47 UTC

This package is auto-updated.

Last update: 2024-09-09 16:36:51 UTC


README

这个库可以帮助您以受控的方式处理增值税号。它首先使用DragonBe/vies包来验证欧盟增值税号的格式。之后,您可以使用VIES验证器来验证该号码是否已签发。

安装

此包需要PHP 7.1或更高版本。

composer require weareantenna/vat 

使用

<?php

use Antenna\Vat\VatNumber;
use Antenna\Vat\ViesValidator\SoapViesValidator;

$vatNumber = new VatNumber('BE0123 456 749');
$validator = new SoapViesValidator();

echo $vatNumber->toString(); // BE0123 456 749
echo $vatNumber->toNormalizedString(); // BE0123456749

if ($vatNumber->isFormatValid()) {
    try {
        $isRegistered = $validator->isValid($vatNumber); 
    } catch (RuntimeException $e) {
        // something went wrong when trying to validate against VIES
    }
}

您应该将应用程序中的VIES服务不可用的支持构建进去。无论是VIES本身还是VIES使用的底层服务,有时都可能出现不可用的情况。您可以选择信任用户或实现某种重试方法。

格式化

VatNumber类保留了输入的增值税号的格式。当您想保存用户输入的确切内容或处理旧数据时,这很有用。

提供了一个用于标准化数字的方法,该方法将整个增值税号转换为大写,并删除所有非字母数字字符。

如果您想进一步格式化增值税号,可以实现一个Antenna\Formatter\Formatter接口。

本包包含一个TeamleaderFormatter。此格式化器将增值税号格式化得与Teamleader CRM内部处理的方式完全一致。

<?php

use Antenna\Vat\VatNumber;
use Antenna\Vat\Formatter\TeamleaderFormatter;

$formatter = new TeamleaderFormatter();

echo $formatter->format(new VatNumber('BE0123456749')); // BE 0123.456.749
echo $formatter->format(new VatNumber('NL001632553B28')); // NL 0016.32.553.B28

这可以帮助您通过它们的API找到公司,因为增值税号需要按照它们的格式进行格式化。