Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lloricode/check-digit

Repository files navigation

Check Digit

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

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.

Sponsor this project

Contributors 3

Languages

AltStyle によって変換されたページ (->オリジナル) /