NAME
Business::PFR - validate Russian pension fund number
VERSION
version 1.0.0
SYNOPSIS
my $bp = Business::PFR->new(
value => '112-233-445 95',
);
$bp->is_valid();
DESCRIPTION
This module checks if the Russian pension fund number PFR (ПФР) is valid.
The algorithm is taken from the document: http://www.pfrf.ru/userdata/rabotodatelyam/persuchet/otchet_per/pravila_proverki_3.doc
Business::PFR version numbers uses Semantic Versioning standart. Please visit http://semver.org/ to find out all about this great thing.
ALGORITHM (in Russian language)
Алгоритм формирования контрольного числа Страхового номера
Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001-001-998
Контрольное число Страхового номера рассчитывается следующим образом:
каждая цифра Страхового номера умножается на номер своей позиции (позиции отсчитываются с конца)
полученные произведения суммируются
сумма делится на 101
последние две цифры остатка от деления является Контрольным числом.
Например: Указан страховой номер 112-233-445 95
Проверяем правильность контрольного числа:
цифры номера 1 1 2 2 3 3 4 4 5
номер позиции 9 8 7 6 5 4 3 2 1
1х9+1х8+2х7+2х6+3х5+3х4+4х3+4х2+5х1=95
95 / !101! =95
Контрольное число=95 - указано верно
Некоторые частные случаи:
99 / !101! = 99
100 / !101! = 00
101 / !101! = 00
102 / !101! = 01
METHODS
new
my $bp = Business::PFR->new(
value => '112-233-445 95',
);
is_valid
Returns true or false value for PFR number in the object.
True value means that PFR is coorect.
$bp->is_valid();
AUTHOR
Ivan Bessarabov <ivan@bessarabov.ru>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Ivan Bessarabov.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.