datitecnologia/sped-gtin

用于验证GTIN代码的类。

v1.0 2023-04-18 15:22 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:28:25 UTC


README

从NFe (e NFCe)的4.00版布局开始,当存在时,产品GTIN变为强制项。因此,在包含具有商业条码(GTIN 8、12、13或14)的产品所有NFe(e NFCe)中,都应在其发票中指示相同的GTIN。

这些GTIN必须是正确的并经过验证,在将其插入到系统中之前,以避免SEFAZ的拒绝。

NT 2021.003_v1_00 GTIN验证

本技术规范自9月起生效,规定只能使用国家GTIN,即以789或790开头的GTIN,此外,只能使用已在全国产品登记 - CNP登记的产品。

需要强调的是,集中注册还将比较其他信息,例如

  • GTIN
  • 品牌
  • GTIN类型(8、12、13或14位)
  • 产品描述
  • 品牌所有者识别(CNPJ或CPF)
  • 产品分类数据(细分、系列、类别和子类别/块)
  • NCM
  • CEST(如有)
  • 毛重和净重
  • 毛重和净重的计量单位

这些数据应与NFe或NFCe中提供的数据兼容。

请验证https://gepir.gs1.org/index.php/search-by-gtin

注意:如果制造商/进口商未能正确登记其产品,则可能会出现拒绝,这不会影响商家,因为将无法发出NFe的将是制造商/进口商。

这个类正是做这个,验证GTIN号码的正确性,包括其结构、前缀、地区和校验位。

SEFAZ将对全国产品登记 - CNP进行额外查询,但尚未提供API供我们进行查询,因此如果您的数据与CNP不匹配,仍可能出现拒绝。

Actions Status

PHP Latest Stable Version Latest Version on Packagist License Total Downloads

Issues Forks Stars

用法说明

use NFePHP\Gtin\Gtin;

try {
    $gtin = new Gtin('78935761');
    $region = $gtin->region;
    $prefix = $gtin->prefix;
    $digitoVerificador = $gtin->checkDigit;

    if ($gtin->isValid()) {
        echo "Valido";
    }
} catch (\Exception $e) {
    echo $e->getMessage();
}

Gtin类具有多个属性

region - (字符串) 表示数字的使用区域,例如GS1巴西

prefix - (字符串) 表示地区前缀,例如789

checkDigit - (整数) 表示特定数字序列的校验位(计算得出)

restricted - (布尔值) 表示前缀是否为限制性使用

type - (整数) 表示GTIN类型(8、12、13或14)

该类的主要功能是

function isValid()

该函数不接受任何参数,如果GTIN在原则上有效,则返回TRUE。

该类也可以静态实例化。

use NFePHP\Gtin\Gtin;

try {
    $gtin = Gtin::check('78935761');
    $region = $gtin->region;
    $prefix = $gtin->prefix;
    $digitoVerificador = $gtin->checkDigit;

    if ($gtin->isValid()) {
        echo "Válido";
    }
} catch (\Exception $e) {
    echo $e->getMessage();
}

或者

use NFePHP\Gtin\Gtin;

$gtin = "78935761";

try {
    if (Gtin::check($gtin)->isValid()) {
        echo "Válido";
    }
} catch (\Exception $e) {
    echo $e->getMessage();
}

注意:如果GTIN是“SEM GTIN”,则验证将返回TRUE(有效),格式完全如此,任何其他格式都会导致拒绝。

验证和异常

如果提供的数字不符合某些限制条件,将返回异常。

本包符合PSR-1PSR-2PSR-4。如果您发现任何不合规之处,请通过pull request发送补丁。

不要错过在NFePHP 讨论组注册,以跟踪其开发进程并参与讨论,解答疑问!

安装

此软件包在Packgist上有列出,专为Composer使用而开发,因此不会明确提供安装的替代方案。

必须使用以下命令进行安装:

composer require nfephp-org/sped-gtin

或者,还可以通过更改您应用的composer.json文件来安装:

"require": {
    "nfephp-org/sped-gtin" : "^1.0"
}

为了使用该软件包的开发分支(master分支)必须使用以下命令安装:

composer require nfephp-org/sped-gtin:dev-master

或者,还可以通过更改您应用的composer.json文件来安装:

"require": {
    "nfephp-org/sped-gtin" : "dev-master"
}

注意:当在使用开发版本(development version)时,不要忘记将您应用的composer.json中的"minimum-stability"属性从"stable"更改为"dev",以接受开发版本软件包。

"minimum-stability": "dev"

需求

为了使此软件包能够运行,需要以下PHP和其他依赖软件包的要求。

  • PHP >= 7.x(推荐PHP 7.2.x)(包括对PHP 8.0.x的支持)

贡献

为了对BUG进行修正、改善代码、编写文档、编写测试或提供任何其他技术或编程支持,请参考CONTRIBUTING行为准则以获取更多详细信息。

变更日志

请关注CHANGELOG以获取有关最新更改的更多信息。

测试

所有测试都是为与PHPUNIT一起运行而开发的。

安全

如果您发现任何与安全相关的问题,请直接向软件包维护者发送电子邮件,而不是创建一个ISSUE。

致谢

Roberto L. Machado(所有者和开发者) Gustavo Lidani(开发者)

许可证

此软件包可在LGPLv3或MIT许可证(MIT)下使用。请参阅许可文件以获取更多信息。