HOTFIX: questionnaire form signer, fix kpp empty error when private ent. inn provided

This commit is contained in:
merelendor 2024-02-16 16:47:12 +03:00
parent 5f3e1816dd
commit 7d2362e545

View File

@ -34,29 +34,32 @@ const is_valid_inn = (i) =>
{
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 )
{
return inn[9] == String(((
2*inn[0] + 4*inn[1] + 10*inn[2] +
3*inn[3] + 5*inn[4] + 9*inn[5] +
4*inn[6] + 6*inn[7] + 8*inn[8]
) % 11) % 10);
}
else if ( inn.length == 12 )
{
return inn[10] == String(((
7*inn[0] + 2*inn[1] + 4*inn[2] +
10*inn[3] + 3*inn[4] + 5*inn[5] +
9*inn[6] + 4*inn[7] + 6*inn[8] +
8*inn[9]
) % 11) % 10) && inn[11] == String(((
3*inn[0] + 7*inn[1] + 2*inn[2] +
4*inn[3] + 10*inn[4] + 3*inn[5] +
5*inn[6] + 9*inn[7] + 4*inn[8] +
6*inn[9] + 8*inn[10]
) % 11) % 10);
if ( inn.length == 10 )
{
return inn[9] == String(((
2*inn[0] + 4*inn[1] + 10*inn[2] +
3*inn[3] + 5*inn[4] + 9*inn[5] +
4*inn[6] + 6*inn[7] + 8*inn[8]
) % 11) % 10);
}
else if ( inn.length == 12 )
{
return inn[10] == String(((
7*inn[0] + 2*inn[1] + 4*inn[2] +
10*inn[3] + 3*inn[4] + 5*inn[5] +
9*inn[6] + 4*inn[7] + 6*inn[8] +
8*inn[9]
) % 11) % 10) && inn[11] == String(((
3*inn[0] + 7*inn[1] + 2*inn[2] +
4*inn[3] + 10*inn[4] + 3*inn[5] +
5*inn[6] + 9*inn[7] + 4*inn[8] +
6*inn[9] + 8*inn[10]
) % 11) % 10);
}
}
return false;
@ -530,6 +533,7 @@ class Form_3_Signer extends QuestionnaireForm
"individual_executive_docnum",
"individual_executive_docdate",
];
let ignore_kpp = false;
for(let i in main_check)
{
@ -537,11 +541,35 @@ class Form_3_Signer extends QuestionnaireForm
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`);
}
}
else if(main_check[i] === "individual_executive_kpp")
{
if(!ignore_kpp)
{
if(v === "" || v === null)
{
errors.push(`main.${ main_check[i] }`);
}
}
}
else
{
if(v === "" || v === null)
@ -679,7 +707,6 @@ class Form_3_Signer extends QuestionnaireForm
//console.log({ errors });
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 };
@ -1041,7 +1068,7 @@ class Form_3_Signer extends QuestionnaireForm
name="main.individual_executive_inn"
value={ this._checkStrValue(main.individual_executive_inn) }
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 }
disabled={ checking }
/>