Skip to content
do- edited this page Sep 21, 2024 · 7 revisions

OKPO — класс-наследник ScalarProduct с фиксированным набором коэффициентов и некоторыми переопределёнными методами.

Конструктор

 const c = new OKPO (valueLength)

Поля

Имя Описание
coefficients Массив коэффициентов
valueLength Длина массива коэффициентов
checkSumLength Количество цифр в контрольной сумме (1)
totalLength Общее количество цифр в коде (valueLength + 1)
modulus1 11
modulus2 10
scalarProduct2 Резервный ScalarProduct на случай this.sum % 11 === 10

Методы

adjustSum (str)

Рассчитывает this.sum с резервным набором коэффициентов: 3, 4, 5... вместо основного 1, 2, 3...

verify (str)

Поскольку коды ОКПО принято печатать без лидирующих нулей, дополняет str нулями до totalLength, после чего вызывает унаследованный метод.

random (options)

Поскольку коды ОКПО принято печатать без лидирующих нулей, то при генерации значения, начинающегося на единственный '0' — удаляет его. Значения с лидирующими '00' не выдаёт, в этом случае генерирует значение повторно.

Clone this wiki locally