sqginfo/sped-gtin

用于验证GTIN代码的类。

v1.0.7 2018-09-25 19:27 UTC

This package is auto-updated.

Last update: 2024-09-15 19:24:56 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验证

这项技术指南于九月生效,规定只能使用国家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 - (string) 表示数字的使用区域,例如GS1巴西

prefix - (string) 表示地区前缀,例如789

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

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

type - (int) 表示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是“无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"
}

注意:在使用此包的开发版本时,不要忘记将您应用程序的 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)下使用。请阅读 许可证文件 获取更多信息。