update for digital certificates list reading, update for download PDF generation, hotfix for digiral var in send
This commit is contained in:
parent
31a9c78bbb
commit
38092fdaf9
@ -85,7 +85,7 @@ export const getQuestionnaire = ({ dispatch, id }) =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const questionnaire = JSON.parse(JSON.stringify(global.store.getState().questionnaire));
|
const questionnaire = JSON.parse(JSON.stringify(global.store.getState().questionnaire));
|
||||||
if(questionnaire.status === "empty")
|
if(questionnaire.status === "empty")
|
||||||
{
|
{
|
||||||
@ -102,35 +102,64 @@ export const getQuestionnaire = ({ dispatch, id }) =>
|
|||||||
questionnaire.contacts.postal_address = response.data.postal_address !== null ? response.data.postal_address : { name: null, fias_id: null };
|
questionnaire.contacts.postal_address = response.data.postal_address !== null ? response.data.postal_address : { name: null, fias_id: null };
|
||||||
questionnaire.contacts.legal_address = response.data.legal_address !== null ? response.data.legal_address : { name: null, fias_id: null };
|
questionnaire.contacts.legal_address = response.data.legal_address !== null ? response.data.legal_address : { name: null, fias_id: null };
|
||||||
|
|
||||||
|
const head_person_identity_document = questionnaire.head_person.identity_document;
|
||||||
questionnaire.head_person = { ...questionnaire.head_person, ...response.data.head_person };
|
questionnaire.head_person = { ...questionnaire.head_person, ...response.data.head_person };
|
||||||
|
if(questionnaire.head_person.identity_document === null)
|
||||||
|
{
|
||||||
|
questionnaire.head_person.identity_document = head_person_identity_document;
|
||||||
|
}
|
||||||
questionnaire.head_person.identity_document.citizenship = {
|
questionnaire.head_person.identity_document.citizenship = {
|
||||||
title: response.data.head_person !== null ? getCitizenshipTitleByCode(response.data.head_person.identity_document.citizenship_code) : null,
|
title: response.data.head_person !== null && response.data.head_person.identity_document !== null ? getCitizenshipTitleByCode(response.data.head_person.identity_document.citizenship_code) : null,
|
||||||
code: response.data.head_person !== null ? response.data.head_person.identity_document.citizenship_code : null,
|
code: response.data.head_person !== null && response.data.head_person.identity_document !== null ? response.data.head_person.identity_document.citizenship_code : 643,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const signatory_person_identity_document = questionnaire.signatory_person.identity_document;
|
||||||
questionnaire.signatory_person = { ...questionnaire.signatory_person, ...response.data.signatory_person };
|
questionnaire.signatory_person = { ...questionnaire.signatory_person, ...response.data.signatory_person };
|
||||||
questionnaire.signatory_person.identity_document.citizenship = {
|
questionnaire.signatory_person.identity_document.citizenship = {
|
||||||
title: response.data.signatory_person !== null ? getCitizenshipTitleByCode(response.data.signatory_person.identity_document.citizenship_code) : null,
|
title: response.data.signatory_person !== null && response.data.signatory_person.identity_document !== null ? getCitizenshipTitleByCode(response.data.signatory_person.identity_document.citizenship_code) : null,
|
||||||
code: response.data.signatory_person !== null ? response.data.signatory_person.identity_document.citizenship_code : null,
|
code: response.data.signatory_person !== null && response.data.signatory_person.identity_document !== null ? response.data.signatory_person.identity_document.citizenship_code : 643,
|
||||||
};
|
};
|
||||||
|
if(questionnaire.signatory_person.identity_document === null)
|
||||||
|
{
|
||||||
|
questionnaire.signatory_person.identity_document = signatory_person_identity_document;
|
||||||
|
}
|
||||||
|
|
||||||
for(let i in response.data.founder_persons)
|
for(let i in response.data.founder_persons)
|
||||||
{
|
{
|
||||||
console.log("response.data.founder_persons", response.data.founder_persons);
|
|
||||||
questionnaire.founder_persons[i] = response.data.founder_persons[i];
|
questionnaire.founder_persons[i] = response.data.founder_persons[i];
|
||||||
questionnaire.founder_persons[i].identity_document.citizenship = {
|
if(questionnaire.founder_persons[i] !== null)
|
||||||
title: getCitizenshipTitleByCode(response.data.founder_persons[i].identity_document.citizenship_code),
|
{
|
||||||
code: response.data.founder_persons[i].identity_document.citizenship_code,
|
if(questionnaire.founder_persons[i].identity_document !== null)
|
||||||
};
|
{
|
||||||
|
questionnaire.founder_persons[i].identity_document.citizenship = {
|
||||||
|
title: getCitizenshipTitleByCode(response.data.founder_persons[i].identity_document.citizenship_code),
|
||||||
|
code: response.data.founder_persons[i].identity_document.citizenship_code,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questionnaire.founder_persons[i].identity_document = { ...founder_persons_template.identity_document };
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(let i in response.data.client_contacts)
|
for(let i in response.data.client_contacts)
|
||||||
{
|
{
|
||||||
questionnaire.client_contacts[i] = response.data.client_contacts[i];
|
questionnaire.client_contacts[i] = response.data.client_contacts[i];
|
||||||
questionnaire.client_contacts[i].identity_document.citizenship = {
|
if(questionnaire.client_contacts[i] !== null)
|
||||||
title: getCitizenshipTitleByCode(response.data.client_contacts[i].identity_document.citizenship_code),
|
{
|
||||||
code: response.data.client_contacts[i].identity_document.citizenship_code,
|
if(questionnaire.client_contacts[i].identity_document !== null)
|
||||||
};
|
{
|
||||||
|
questionnaire.client_contacts[i].identity_document.citizenship = {
|
||||||
|
title: getCitizenshipTitleByCode(response.data.client_contacts[i].identity_document.citizenship_code),
|
||||||
|
code: response.data.client_contacts[i].identity_document.citizenship_code,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questionnaire.client_contacts[i].identity_document = { ...founder_persons_template.identity_document };
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//questionnaire.founder_persons = { ...questionnaire.head_person, ...response.data.head_person };
|
//questionnaire.founder_persons = { ...questionnaire.head_person, ...response.data.head_person };
|
||||||
|
|||||||
@ -38,11 +38,15 @@ export default class DigitalSignaturesList extends React.Component
|
|||||||
for(let i in certificates)
|
for(let i in certificates)
|
||||||
{
|
{
|
||||||
const certificate = certificates[i];
|
const certificate = certificates[i];
|
||||||
let today = moment();
|
|
||||||
if(today < moment(certificate.info.validToDate))
|
if(certificate?.info?.subjectFields['ИНН ЮЛ'] !== null || certificate?.info?.subjectFields['ИНН'] !== null)
|
||||||
{
|
{
|
||||||
certificate.info.validToDate = moment(certificate.info.validToDate).format('DD.MM.YYYY');
|
let today = moment();
|
||||||
certificates_list.push(certificate);
|
if(today < moment(certificate.info.validToDate))
|
||||||
|
{
|
||||||
|
certificate.info.validToDate = moment(certificate.info.validToDate).format('DD.MM.YYYY');
|
||||||
|
certificates_list.push(certificate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,7 +178,16 @@ export default class DigitalSignaturesList extends React.Component
|
|||||||
<p className="item_title">{ certificate?.info?.subjectName.replace(/\""/g, '@').replace(/"/g, '').replace(/@/g, '"') }</p>
|
<p className="item_title">{ certificate?.info?.subjectName.replace(/\""/g, '@').replace(/"/g, '').replace(/@/g, '"') }</p>
|
||||||
<p className="item_desc">
|
<p className="item_desc">
|
||||||
{ certificate.info.subjectFields['SN'] || certificate.info.subjectFields['SN'] ? (<span>{ certificate.info.subjectFields['SN'] } { certificate.info.subjectFields['G'] }</span>) : null }
|
{ certificate.info.subjectFields['SN'] || certificate.info.subjectFields['SN'] ? (<span>{ certificate.info.subjectFields['SN'] } { certificate.info.subjectFields['G'] }</span>) : null }
|
||||||
<span>Подпись действительна до { certificate?.info?.validToDate }</span>
|
</p>
|
||||||
|
<p className="item_desc">
|
||||||
|
<span>ИНН { certificate?.info?.subjectFields['ИНН ЮЛ'] !== null ? certificate?.info?.subjectFields['ИНН ЮЛ'] : certificate.info.subjectFields['ИНН'] }</span>
|
||||||
|
</p>
|
||||||
|
<p className="item_desc">
|
||||||
|
{ certificate?.info?.subjectFields['ОГРНИП'] && (<span>ОГРНИП { certificate.info.subjectFields['ОГРНИП'] }</span>) }
|
||||||
|
{ certificate?.info?.subjectFields['ОГРН'] && (<span>ОГРНИП { certificate.info.subjectFields['ОГРН'] }</span>) }
|
||||||
|
</p>
|
||||||
|
<p className="item_desc">
|
||||||
|
<span>Подпись действительна до { certificate?.info?.validToDate }</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -23,7 +23,6 @@ class Form_2_Contacts extends QuestionnaireForm
|
|||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
contacts: {
|
contacts: {
|
||||||
mail_delivery_address_type: 100000000,
|
|
||||||
loading: false,
|
loading: false,
|
||||||
|
|
||||||
fact_address: {
|
fact_address: {
|
||||||
@ -144,38 +143,38 @@ class Form_2_Contacts extends QuestionnaireForm
|
|||||||
<div className="form_field checkbox">
|
<div className="form_field checkbox">
|
||||||
<input type="radio" hidden=""
|
<input type="radio" hidden=""
|
||||||
value={ 100000000 }
|
value={ 100000000 }
|
||||||
id="contacts.address_type_legal"
|
id="main.mail_delivery_address_type.legal"
|
||||||
name="main.mail_delivery_address_type"
|
name="main.mail_delivery_address_type"
|
||||||
checked={ parseInt(mail_delivery_address_type, 10) === 100000000 ? true : false }
|
checked={ parseInt(mail_delivery_address_type, 10) === 100000000 ? true : false }
|
||||||
onChange={ (event) => { this._removeError("contacts.postal_address"); this._handle_onCheckboxFieldChange(event.target.name, event.target.value); } }
|
onChange={ (event) => { this._removeError("contacts.postal_address"); this._handle_onCheckboxFieldChange(event.target.name, parseInt(event.target.value, 10)); } }
|
||||||
disabled={ checking }
|
disabled={ checking }
|
||||||
/>
|
/>
|
||||||
<label htmlFor="contacts.address_type_legal" className="unselectable">По юридическому адресу, указанному в ЕГРЮЛ</label>
|
<label htmlFor="main.mail_delivery_address_type.legal" className="unselectable">По юридическому адресу, указанному в ЕГРЮЛ</label>
|
||||||
</div>
|
</div>
|
||||||
) }
|
) }
|
||||||
|
|
||||||
<div className="form_field checkbox">
|
<div className="form_field checkbox">
|
||||||
<input type="radio" hidden=""
|
<input type="radio" hidden=""
|
||||||
value={ 100000001 }
|
value={ 100000001 }
|
||||||
id="contacts.address_type_fact"
|
id="main.mail_delivery_address_type.fact"
|
||||||
name="main.mail_delivery_address_type"
|
name="main.mail_delivery_address_type"
|
||||||
checked={ parseInt(mail_delivery_address_type, 10) === 100000001 ? true : false }
|
checked={ parseInt(mail_delivery_address_type, 10) === 100000001 ? true : false }
|
||||||
onChange={ (event) => { this._removeError("contacts.postal_address"); this._handle_onCheckboxFieldChange(event.target.name, event.target.value); } }
|
onChange={ (event) => { this._removeError("contacts.postal_address"); this._handle_onCheckboxFieldChange(event.target.name, parseInt(event.target.value, 10)); } }
|
||||||
disabled={ checking }
|
disabled={ checking }
|
||||||
/>
|
/>
|
||||||
<label htmlFor="contacts.address_type_fact" className="unselectable">По фактическому адресу, указанному в настоящей анкете</label>
|
<label htmlFor="main.mail_delivery_address_type.fact" className="unselectable">По фактическому адресу, указанному в настоящей анкете</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="form_field checkbox">
|
<div className="form_field checkbox">
|
||||||
<input type="radio" hidden=""
|
<input type="radio" hidden=""
|
||||||
value={ 100000002 }
|
value={ 100000002 }
|
||||||
id="contacts.address_type_postal"
|
id="main.mail_delivery_address_type.postal"
|
||||||
name="main.mail_delivery_address_type"
|
name="main.mail_delivery_address_type"
|
||||||
checked={ parseInt(mail_delivery_address_type, 10) === 100000002 ? true : false }
|
checked={ parseInt(mail_delivery_address_type, 10) === 100000002 ? true : false }
|
||||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, event.target.value) }
|
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, parseInt(event.target.value, 10)) }
|
||||||
disabled={ checking }
|
disabled={ checking }
|
||||||
/>
|
/>
|
||||||
<label htmlFor="contacts.address_type_postal" className="unselectable" style={{ width: "100%" }}>
|
<label htmlFor="main.mail_delivery_address_type.postal" className="unselectable" style={{ width: "100%" }}>
|
||||||
<span>По следующему адресу { parseInt(mail_delivery_address_type, 10) === 100000002 && <sup className="required_label">*</sup> }</span>
|
<span>По следующему адресу { parseInt(mail_delivery_address_type, 10) === 100000002 && <sup className="required_label">*</sup> }</span>
|
||||||
<AddressSuggests
|
<AddressSuggests
|
||||||
className={ errors.indexOf("contacts.postal_address") > -1 ? "error" : "" }
|
className={ errors.indexOf("contacts.postal_address") > -1 ? "error" : "" }
|
||||||
|
|||||||
@ -547,6 +547,8 @@ class Form_3_Signer extends QuestionnaireForm
|
|||||||
delegation_files,
|
delegation_files,
|
||||||
} = this.state;
|
} = this.state;
|
||||||
|
|
||||||
|
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 };
|
||||||
|
|
||||||
|
|||||||
@ -323,7 +323,7 @@ class ShareholderForm extends React.Component
|
|||||||
id={ `founder_persons[${ index }].is_beneficial_1` }
|
id={ `founder_persons[${ index }].is_beneficial_1` }
|
||||||
name={ `founder_persons[${ index }].is_beneficial` }
|
name={ `founder_persons[${ index }].is_beneficial` }
|
||||||
checked={ shareholder.is_beneficial ? true : false }
|
checked={ shareholder.is_beneficial ? true : false }
|
||||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, parseInt(event.target.value, 10)) }
|
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, true) }
|
||||||
disabled={ checking }
|
disabled={ checking }
|
||||||
/>
|
/>
|
||||||
<label className="unselectable" htmlFor={ `founder_persons[${ index }].is_beneficial_1` }>Да</label>
|
<label className="unselectable" htmlFor={ `founder_persons[${ index }].is_beneficial_1` }>Да</label>
|
||||||
@ -334,7 +334,7 @@ class ShareholderForm extends React.Component
|
|||||||
id={ `founder_persons[${ index }].is_beneficial_0` }
|
id={ `founder_persons[${ index }].is_beneficial_0` }
|
||||||
name={ `founder_persons[${ index }].is_beneficial` }
|
name={ `founder_persons[${ index }].is_beneficial` }
|
||||||
checked={ shareholder.is_beneficial ? false : true }
|
checked={ shareholder.is_beneficial ? false : true }
|
||||||
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, parseInt(event.target.value, 10)) }
|
onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, false) }
|
||||||
disabled={ checking }
|
disabled={ checking }
|
||||||
/>
|
/>
|
||||||
<label className="unselectable" htmlFor={ `founder_persons[${ index }].is_beneficial_0` }>Нет</label>
|
<label className="unselectable" htmlFor={ `founder_persons[${ index }].is_beneficial_0` }>Нет</label>
|
||||||
@ -504,7 +504,7 @@ class Form_4_Shareholders extends QuestionnaireForm
|
|||||||
placebirth: null,
|
placebirth: null,
|
||||||
citizenship: {
|
citizenship: {
|
||||||
title: null,
|
title: null,
|
||||||
code: null,
|
code: 643,
|
||||||
},
|
},
|
||||||
registration_address: {
|
registration_address: {
|
||||||
name: null,
|
name: null,
|
||||||
|
|||||||
@ -221,8 +221,19 @@ export default async function handler(req, res)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if(group === "signatory_person" && !questionnaire[group].not_head_person) { continue; }
|
||||||
|
|
||||||
for(let field in fields[group])
|
for(let field in fields[group])
|
||||||
{
|
{
|
||||||
|
if(group === "main")
|
||||||
|
{
|
||||||
|
if(!questionnaire[group].is_individual_executive)
|
||||||
|
{
|
||||||
|
const r = ["individual_executive_oop", "individual_executive_inn", "individual_executive_kpp", "individual_executive_docnum", "individual_executive_docdate"];
|
||||||
|
if(r.indexOf(field) > -1) { continue; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(field === "fullname")
|
if(field === "fullname")
|
||||||
{
|
{
|
||||||
fields[group][field].bind = form.getTextField(fields[group][field].name);
|
fields[group][field].bind = form.getTextField(fields[group][field].name);
|
||||||
|
|||||||
@ -54,7 +54,9 @@ export default async function handler(req, res)
|
|||||||
upload.single("file")(req, {}, async (err) =>
|
upload.single("file")(req, {}, async (err) =>
|
||||||
{
|
{
|
||||||
const { file } = req;
|
const { file } = req;
|
||||||
const { id, digital } = req.body;
|
|
||||||
|
const id = parseInt(req.body.id, 10);
|
||||||
|
const digital = req.body.digital == "true" ? true : false;
|
||||||
console.log("id, digital", { id, digital });
|
console.log("id, digital", { id, digital });
|
||||||
|
|
||||||
const path = `${ process.env.CRM_API_HOST }/lk/Questionnaire/PreQuestionnaire/`;
|
const path = `${ process.env.CRM_API_HOST }/lk/Questionnaire/PreQuestionnaire/`;
|
||||||
@ -83,7 +85,7 @@ export default async function handler(req, res)
|
|||||||
//const main = _pick(parsed.main, ["title", "inn", "kpp", "email", "telephone", "websiteurl", "financial_loan"]);
|
//const main = _pick(parsed.main, ["title", "inn", "kpp", "email", "telephone", "websiteurl", "financial_loan"]);
|
||||||
|
|
||||||
let payload = { ...parsed.main, ...{ head_person: parsed.head_person }, ...{ signatory_person: parsed.signatory_person }, };
|
let payload = { ...parsed.main, ...{ head_person: parsed.head_person }, ...{ signatory_person: parsed.signatory_person }, };
|
||||||
|
payload.mail_delivery_address_type = parseInt(payload.mail_delivery_address_type, 10);
|
||||||
payload.questionnaire_sign_type = digital ? "eds" : "paper";
|
payload.questionnaire_sign_type = digital ? "eds" : "paper";
|
||||||
|
|
||||||
payload.telephone = checkNullEmpty(payload.telephone) ? payload.telephone.replace(/[^0-9]/g, '') : null;
|
payload.telephone = checkNullEmpty(payload.telephone) ? payload.telephone.replace(/[^0-9]/g, '') : null;
|
||||||
@ -267,7 +269,7 @@ export default async function handler(req, res)
|
|||||||
});
|
});
|
||||||
|
|
||||||
await RedisClient.del(key);
|
await RedisClient.del(key);
|
||||||
res.status(200).send();
|
res.status(200).json({ payload, id, digital });
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
@ -275,7 +277,7 @@ export default async function handler(req, res)
|
|||||||
{
|
{
|
||||||
console.error("crm_send_error", { status: crm_send_error.response.status, data: crm_send_error.response.data });
|
console.error("crm_send_error", { status: crm_send_error.response.status, data: crm_send_error.response.data });
|
||||||
|
|
||||||
res.status(500).json({ payload });
|
res.status(500).json({ payload, id, digital });
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -286,7 +288,7 @@ export default async function handler(req, res)
|
|||||||
console.error("upload_single_error");
|
console.error("upload_single_error");
|
||||||
console.error(upload_single_error);
|
console.error(upload_single_error);
|
||||||
|
|
||||||
res.status(500).send();
|
res.status(500).json({ id, digital });
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -22,10 +22,10 @@ export const questionnaire_template = {
|
|||||||
other_control: null,
|
other_control: null,
|
||||||
nko: false,
|
nko: false,
|
||||||
accept: false,
|
accept: false,
|
||||||
|
mail_delivery_address_type: 100000000,
|
||||||
},
|
},
|
||||||
delegation_files: [],
|
delegation_files: [],
|
||||||
contacts: {
|
contacts: {
|
||||||
mail_delivery_address_type: 100000000,
|
|
||||||
legal_address: {
|
legal_address: {
|
||||||
name: null,
|
name: null,
|
||||||
fias_id: null,
|
fias_id: null,
|
||||||
@ -58,7 +58,7 @@ export const questionnaire_template = {
|
|||||||
placebirth: null,
|
placebirth: null,
|
||||||
citizenship: {
|
citizenship: {
|
||||||
title: null,
|
title: null,
|
||||||
code: null,
|
code: 643,
|
||||||
},
|
},
|
||||||
registration_address: {
|
registration_address: {
|
||||||
name: null,
|
name: null,
|
||||||
@ -95,7 +95,7 @@ export const questionnaire_template = {
|
|||||||
placebirth: null,
|
placebirth: null,
|
||||||
citizenship: {
|
citizenship: {
|
||||||
title: null,
|
title: null,
|
||||||
code: null,
|
code: 643,
|
||||||
},
|
},
|
||||||
registration_address: {
|
registration_address: {
|
||||||
name: null,
|
name: null,
|
||||||
|
|||||||
@ -73,7 +73,7 @@ export function getCertificates()
|
|||||||
index: i+1,
|
index: i+1,
|
||||||
certificate: certificate,
|
certificate: certificate,
|
||||||
info: {
|
info: {
|
||||||
subjectName: parseSubjectNameToObj(yield certificate.SubjectName)['name'],
|
subjectName: parseSubjectNameToObj(yield certificate.SubjectName)['CN'],
|
||||||
subjectFields: parseSubjectNameToObj(yield certificate.SubjectName), //parseSubjectNameToArray(yield certificate.SubjectName),
|
subjectFields: parseSubjectNameToObj(yield certificate.SubjectName), //parseSubjectNameToArray(yield certificate.SubjectName),
|
||||||
issuerName: yield certificate.IssuerName,
|
issuerName: yield certificate.IssuerName,
|
||||||
validFromDate: yield certificate.ValidFromDate,
|
validFromDate: yield certificate.ValidFromDate,
|
||||||
@ -185,37 +185,82 @@ function parseSubjectNameToArray(string)
|
|||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function parseSubjectNameToObj(string)
|
function parseSubjectNameToObj(string)
|
||||||
{
|
{
|
||||||
let outputData = [];
|
console.log("parseSubjectNameToObj", string);
|
||||||
|
|
||||||
let fieldsNames = {
|
const marks = [
|
||||||
'CN': 'name',
|
|
||||||
'E': 'email',
|
|
||||||
'C': 'country',
|
|
||||||
'S': 'state',
|
|
||||||
'L': 'city',
|
|
||||||
'O': 'organization',
|
|
||||||
'OU': 'subdivision',
|
|
||||||
'SN': 'SN',
|
|
||||||
'G': 'G',
|
|
||||||
};
|
|
||||||
|
|
||||||
// 'C=RU, S="Область, штат"' -> [['C', 'RU'], ['S', '"Область, штат"']]
|
|
||||||
let reg = RegExp('[а-яА-Я\\w]*=.*?((?=, [а-яА-Я\\w]+=)|$)','g');
|
|
||||||
let fields = string.matchAll(reg);
|
|
||||||
fields = Array.from(fields, x => x[0]);
|
|
||||||
fields = fields.map(field => field.split('='));
|
|
||||||
|
|
||||||
fields.forEach(field => {
|
|
||||||
if (field[0] in fieldsNames)
|
|
||||||
{
|
{
|
||||||
let fieldName = fieldsNames[field[0]];
|
r: new RegExp(/CN\=\"{0,}(.*?)\"{0,},\s{0,}/gm),
|
||||||
outputData[fieldName] = field[1];
|
field: "CN",
|
||||||
}
|
},
|
||||||
});
|
{
|
||||||
|
r: new RegExp(/\sSN\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "SN",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sG\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "G",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sC\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "C",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sS\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "S",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sL\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "L",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sSTREET\=\"(.*?)\"[,\s]|[$]/gm),
|
||||||
|
field: "STREET",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sO\=\"(.*?)\"[,\s]|[$]/gm),
|
||||||
|
field: "O",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sT\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "T",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sОГРН\=(\d+)[,\s]|[$]/gm),
|
||||||
|
field: "ОГРН",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sОГРНИП\=(\d+)[,\s]|[$]/gm),
|
||||||
|
field: "ОГРНИП",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sСНИЛС\=(\d+)[,\s]|[$]/gm),
|
||||||
|
field: "СНИЛС",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sИНН\=(\d+)[,\s]|[$]/gm),
|
||||||
|
field: "ИНН",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sE\=(.*?)[,\s]|[$]/gm),
|
||||||
|
field: "E",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
r: new RegExp(/\sИНН ЮЛ\=(\d+)[,\s]|[$]/gm),
|
||||||
|
field: "ИНН ЮЛ",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
return outputData;
|
const fields = {};
|
||||||
|
for(let i in marks)
|
||||||
|
{
|
||||||
|
const chunk = Array.from(`${ string }, `.matchAll(marks[i].r));
|
||||||
|
fields[marks[i].field] = chunk[0] !== undefined ? chunk[0][1] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user