Latest Version on Packagist Tests Total Downloads codecov
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
You can install the package via composer:
composer require lloricode/check-digit
// 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());
vendor/bin/pest
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email lloricode@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.