This commit is contained in:
merelendor 2024-02-16 16:47:40 +03:00
commit 39884f6cad

View File

@ -34,29 +34,32 @@ const is_valid_inn = (i) =>
{ {
if ( i.match(/\D/) ) return false; if ( i.match(/\D/) ) return false;
var inn = i.match(/(\d)/g); if(inn !== null)
{
var inn = i.match(/(\d)/g);
if ( inn.length == 10 ) if ( inn.length == 10 )
{ {
return inn[9] == String((( return inn[9] == String(((
2*inn[0] + 4*inn[1] + 10*inn[2] + 2*inn[0] + 4*inn[1] + 10*inn[2] +
3*inn[3] + 5*inn[4] + 9*inn[5] + 3*inn[3] + 5*inn[4] + 9*inn[5] +
4*inn[6] + 6*inn[7] + 8*inn[8] 4*inn[6] + 6*inn[7] + 8*inn[8]
) % 11) % 10); ) % 11) % 10);
} }
else if ( inn.length == 12 ) else if ( inn.length == 12 )
{ {
return inn[10] == String((( return inn[10] == String(((
7*inn[0] + 2*inn[1] + 4*inn[2] + 7*inn[0] + 2*inn[1] + 4*inn[2] +
10*inn[3] + 3*inn[4] + 5*inn[5] + 10*inn[3] + 3*inn[4] + 5*inn[5] +
9*inn[6] + 4*inn[7] + 6*inn[8] + 9*inn[6] + 4*inn[7] + 6*inn[8] +
8*inn[9] 8*inn[9]
) % 11) % 10) && inn[11] == String((( ) % 11) % 10) && inn[11] == String(((
3*inn[0] + 7*inn[1] + 2*inn[2] + 3*inn[0] + 7*inn[1] + 2*inn[2] +
4*inn[3] + 10*inn[4] + 3*inn[5] + 4*inn[3] + 10*inn[4] + 3*inn[5] +
5*inn[6] + 9*inn[7] + 4*inn[8] + 5*inn[6] + 9*inn[7] + 4*inn[8] +
6*inn[9] + 8*inn[10] 6*inn[9] + 8*inn[10]
) % 11) % 10); ) % 11) % 10);
}
} }
return false; return false;
@ -530,6 +533,7 @@ class Form_3_Signer extends QuestionnaireForm
"individual_executive_docnum", "individual_executive_docnum",
"individual_executive_docdate", "individual_executive_docdate",
]; ];
let ignore_kpp = false;
for(let i in main_check) for(let i in main_check)
{ {
@ -537,11 +541,35 @@ class Form_3_Signer extends QuestionnaireForm
if(main_check[i] === "individual_executive_inn") if(main_check[i] === "individual_executive_inn")
{ {
if(v !== null && !is_valid_inn(v.replace(/[^\d]+/g, ''))) if(v !== null)
{
const cleaned_inn = v.replace(/[^\d]+/g, '');
if(!is_valid_inn(cleaned_inn))
{
errors.push(`main.individual_executive_inn`);
}
if(cleaned_inn.length > 10)
{
ignore_kpp = true;
}
}
else
{ {
errors.push(`main.individual_executive_inn`); errors.push(`main.individual_executive_inn`);
} }
} }
else if(main_check[i] === "individual_executive_kpp")
{
if(!ignore_kpp)
{
if(v === "" || v === null)
{
errors.push(`main.${ main_check[i] }`);
}
}
}
else else
{ {
if(v === "" || v === null) if(v === "" || v === null)
@ -679,7 +707,6 @@ class Form_3_Signer extends QuestionnaireForm
//console.log({ errors }); //console.log({ errors });
let head_person_citizenship = { label: getCitizenshipTitleByCode(head_person.identity_document.citizenship.code), code: head_person.identity_document.citizenship.code }; let head_person_citizenship = { label: getCitizenshipTitleByCode(head_person.identity_document.citizenship.code), code: head_person.identity_document.citizenship.code };
let signatory_person_citizenship = { label: getCitizenshipTitleByCode(signatory_person.identity_document.citizenship.code), code: signatory_person.identity_document.citizenship.code }; let signatory_person_citizenship = { label: getCitizenshipTitleByCode(signatory_person.identity_document.citizenship.code), code: signatory_person.identity_document.citizenship.code };
@ -1041,7 +1068,7 @@ class Form_3_Signer extends QuestionnaireForm
name="main.individual_executive_inn" name="main.individual_executive_inn"
value={ this._checkStrValue(main.individual_executive_inn) } value={ this._checkStrValue(main.individual_executive_inn) }
placeholder="Введите ИНН" placeholder="Введите ИНН"
onChange={ (event) => { this._removeError(event.target.name); this._handle_onInnChange(event.target.value); } } onChange={ (event) => { this._removeError([ event.target.name, "main.individual_executive_kpp" ]); this._handle_onInnChange(event.target.value); } }
required={ true } required={ true }
disabled={ checking } disabled={ checking }
/> />