Библиотека функций валидации данных юридического лица
npm i --save @utkonos/entrepreneur
функции включают в себя валидаторы данных:
- БИК
- Расчётный счёт
- Корр. счёт
- GS1
- GLN (global location number)
- ИНН (юр. лицо, физ.лицо/ИП)
- КПП
- ОГРН(ИП)
- ОКАТО
- OKPO
Любой метод представленный в библиотеки принимает значение и возвражает boolean
- isBIK(value: string) - проверка значения на БИК
- isPaymentAccount(value: string, bik: string) - проверка рассчётного счёта. Принимает собственное значение и значение БИК.
- isCorrespondentAccount(value: string, bik: string) - проверка корреспондентского счёта. Принимает собственное значение и значение БИК.
- isINN(value: string) - проверяет яляется ли значение ИНН независимо от типа владельца (физическое лицо или юридическое лицо).
- isINNIndividual(value: string) - проверяет является ли значение ИНН физического лица.
- isINNLegalEntity(value: string) - проверяет является ли значение ИНН юридического лица.
- isOGRN(value: string) - проверяет является ли значение ОГРН (для юридических лиц).
- isOGRNIP(value: string) - проверяет является ли значение ОГРНИП (для ИП).
- isOKATO(value: string) - проверяет является ли значение ОКАТО.
- isOKPO(value: string) - проверяет является ли значение ОКПО.
- isGLN(value: string) - проверяет является ли значение GLN (global location number). Частный случай GS1 и базируется на методе isGS1.
- isGS1(value: string) - проверяет является ли значение GS1. Реализует проверку контрольной суммы для любых маркировок стандарта GS1. На базе этого метода вы можете построить собственный валидаторы для различных маркировок, например для EAN (EAN-13, EAN-8) и другие. Правильность GS1 вы можете проверить с помощью сервиса ассоциации.
Пример для работы с yup. В данном примере используются 3 метода (isBIK, isPaymentAccount, isCorrespondentAccount). Обратите внимиание, что в методах yup'а test в некоторых случаях используется обычные функции, а не стрелочные. Это нужно для сохранения TestContext'а yup, который необходим для работы Ref.
// Импорт
import { isBIK, isPaymentAccount, isCorrespondentAccount } from '@utkonos/entrepreneur'
import * as yup from 'yup'
const validtionSchema = yup.object().shape({
bik: yup.string().test('bik', (value) => isBIK(value)),
paymentAccout: yup.string().test('payment', function (value) {
return isPaymentAccount(value, this.resolve(yup.ref('bik')))
}),
corrAccount: yup.string().test('corr', function (value) {
return isCorrespondentAccount(value, this.resolve(yup.ref('bik')))
}),
})
Библиотека utk-entrepreneur может валидировать разные типы ИНН. Возьмём 2 ИНН и сравним в чём разница методов. ИНН физического лица - 525696684324, ИНН юридического лица - 7097670129
import {isINN, isINNIndividual, isINNLegalEntity} from '@utkonos/entrepreneur'
console.log(isINN('7713527850'), isINN('447320913440')) // true, true
console.log(isINNIndividual('447320913440'), isINNIndividual('7713527850')) // true, false
console.log(isINNLegalEntity('447320913440'), isINNLegalEntity('7713527850')) // false, true