logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

CheckDigits::M11_015 - compute check digits for ESR5 (CH)

Author

       Mathias Weidner, "<mamawe@cpan.org>"

Description

ALGORITHM
       1.  Beginning right all digits are weighted with the repeating sequence 2, 3, 4, 5, 6, 7.

       2.  The weighted digits are added.

       3.  The sum from step 2 is taken modulo 11.

       4.  The checkdigit is 11 minus the sum from step 3.  If the difference is 11, the checkdigit is 00.

   METHODS
       is_valid($number)
           Returns  true only if $number consists solely of numbers (with or without space between them) and the
           first two digits are valid check digits according to the algorithm given above.

           Returns false otherwise,

       complete($number)
           The check digit for $number is computed and inserted before the $number.

           Returns the complete number with check digit or '' if $number does  not  consist  solely  of  digits,
           spaces.

       basenumber($number)
           Returns the basenumber of $number if $number has a valid check digit.

           Return '' otherwise.

       checkdigit($number)
           Returns the check digits of $number if $number has valid check digits.

           Return '' otherwise.

   EXPORT
       None by default.

Name

       CheckDigits::M11_015 - compute check digits for ESR5 (CH)

See Also

       perl,     CheckDigits,     http://www.pruefziffernberechnung.de/E/Einzahlungsschein-CH.shtml    (german),
       http://www.sic.ch/de/dl_tkicch_dta.pdf, page 52 (german)

perl v5.36.0                                       2022-10-13               Algorithm::CheckDigits::M11_015(3pm)

Synopsis

         use Algorithm::CheckDigits;

         $ustid = CheckDigits('esr5_ch');

         if ($ustid->is_valid('050001000012000 241170032660178 10304')) {
               # do something
         }

         $cn = $ustid->complete('0001000012000 241170032660178 10304');
         # $cn = '050001000012000 241170032660178 10304'

         $cd = $ustid->checkdigit('0001000012000 241170032660178 10304');
         # $cd = '05'

         $bn = $ustid->basenumber('050001000012000 241170032660178 10304');
         # $bn = '0001000012000 241170032660178 10304';

See Also