lloricode / check-digit
Fund package maintenance!
Patreon
www.paypal.me/lloricode
Installs: 38 779
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 1
Requires
- php: ^8.0
- spatie/enum: ^3.13
Requires (Dev)
- laravel/pint: ^1.5
- pestphp/pest: ^1.23.1|^2.21
- phpstan/extension-installer: ^1.3.1
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-phpunit: ^1.3.14
README
Check digit formula base on https://www.gs1.org/services/how-calculate-check-digit-manually, and tested by https://www.gs1.org/services/check-digit-calculator
Installation
You can install the package via composer:
composer require lloricode/check-digit
Usage
// Sample usage in testing // tests/Feature/GenerateTest.php use Lloricode\CheckDigit\Enums\Format; use Lloricode\CheckDigit\Generator; # base in https://www.gs1.org/services/check-digit-calculator assertSame(2, Generator::new(9638527, Format::GTIN_8())->getCheckDigit()); assertSame(4, Generator::new(3216549, Format::GTIN_8())->getCheckDigit()); assertSame(2, Generator::new(91739456321, Format::GTIN_12())->getCheckDigit()); assertSame(8, Generator::new(74185245963, Format::GTIN_12())->getCheckDigit()); assertSame(3, Generator::new(629104150021, Format::GTIN_13())->getCheckDigit()); assertSame(6, Generator::new(123456789876, Format::GTIN_13())->getCheckDigit()); assertSame(6, Generator::new(7539514528423, Format::GTIN_14())->getCheckDigit()); assertSame(5, Generator::new(8563251459762, Format::GTIN_14())->getCheckDigit()); assertSame(0, Generator::new(7896541230123456, Format::GSIN())->getCheckDigit()); assertSame(3, Generator::new(7658485040650456, Format::GSIN())->getCheckDigit()); assertSame(6, Generator::new(95135623050123698, Format::SSCC())->getCheckDigit()); assertSame(7, Generator::new(87643802105978513, Format::SSCC())->getCheckDigit()); // get generated value assertSame('876438021059785137', Generator::new(87643802105978513, Format::SSCC())->getValue()); // starts with zero assertSame(7, Generator::new('0012345', Format::GTIN_8())->getCheckDigit()); assertSame(5, Generator::new('00123456789', Format::GTIN_12())->getCheckDigit()); assertSame(5, Generator::new('001234567890', Format::GTIN_13())->getCheckDigit()); assertSame(2, Generator::new('0012345678901', Format::GTIN_14())->getCheckDigit()); assertSame(3, Generator::new('0012345678901234', Format::GSIN())->getCheckDigit()); assertSame(2, Generator::new('00123456789012345', Format::SSCC())->getCheckDigit());
Testing
vendor/bin/pest
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email lloricode@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.