From 7d2362e545e64d5b58bebb74e2927118ab074855 Mon Sep 17 00:00:00 2001 From: merelendor Date: Fri, 16 Feb 2024 16:47:12 +0300 Subject: [PATCH] HOTFIX: questionnaire form signer, fix kpp empty error when private ent. inn provided --- .../forms/Form_3_Signer/index.js | 77 +++++++++++++------ 1 file changed, 52 insertions(+), 25 deletions(-) diff --git a/components/questionnaire/forms/Form_3_Signer/index.js b/components/questionnaire/forms/Form_3_Signer/index.js index 6f3f8ff..863cf65 100644 --- a/components/questionnaire/forms/Form_3_Signer/index.js +++ b/components/questionnaire/forms/Form_3_Signer/index.js @@ -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 } />