pre-release hotfixes
This commit is contained in:
parent
c8d6de0556
commit
3e2309feb4
@ -48,9 +48,16 @@ export default class DigitalCertificates extends React.Component
|
||||
this.cryptopro.certificateInfo(certificate.id)
|
||||
.then((cert) =>
|
||||
{
|
||||
if(cert.IsValid)
|
||||
if(cert.Subject['INNLE'] !== undefined && cert.Subject['INNLE'] !== null && cert.Subject['INNLE'] !== "")
|
||||
{
|
||||
callback(null, [ { id: certificate.id, fields: cert.Subject, valid_to_date: moment(cert.ValidToDate).format("DD.MM.YYYY") } ]);
|
||||
if(cert.IsValid)
|
||||
{
|
||||
callback(null, [ { id: certificate.id, fields: cert.Subject, valid_to_date: moment(cert.ValidToDate).format("DD.MM.YYYY") } ]);
|
||||
}
|
||||
else
|
||||
{
|
||||
callback(null, []);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -87,7 +94,7 @@ export default class DigitalCertificates extends React.Component
|
||||
this.setState({ signing: true }, () =>
|
||||
{
|
||||
const { company, main, onSignDigital } = this.props;
|
||||
const filename = `${ main.inn }_questionnaire_${ moment().format("DDMMYYYY_HHmmss") }.pdf`;
|
||||
const filename = `${ main.inn }_questionnaire_${ moment().format("DDMMYYYY_HHmmss") }.sig`;
|
||||
|
||||
downloadQuestionnaire({ filename, download: false, base64: true })
|
||||
.then(({ file }) =>
|
||||
@ -98,7 +105,9 @@ export default class DigitalCertificates extends React.Component
|
||||
this.cryptopro.signData(file_to_sign, this.state.certificate_selected.id)
|
||||
.then(signature =>
|
||||
{
|
||||
uploadSignedFile(signature, company.questionnaire_id, true)
|
||||
console.log({ signature });
|
||||
let signature_file = new File([ signature ], filename);
|
||||
uploadSignedFile(signature_file, company.questionnaire_id, true)
|
||||
.then(() =>
|
||||
{
|
||||
onSignDigital();
|
||||
@ -163,11 +172,11 @@ export default class DigitalCertificates extends React.Component
|
||||
{ certificate.fields['SN'] ? (<span>{ certificate.fields['SN'] } { certificate.fields['G'] }</span>) : null }
|
||||
</p>
|
||||
<p className="item_desc">
|
||||
<span>ИНН { certificate.fields['INN'] }</span>
|
||||
<span>ИНН { certificate.fields['INNLE'] }</span>
|
||||
</p>
|
||||
<p className="item_desc">
|
||||
{ certificate.fields['OGRNIP'] && (<span>ОГРНИП { certificate.fields['OGRNIP'] }</span>) }
|
||||
{ certificate.fields['OGRN'] && (<span>ОГРН { certificate.fields['ОГРН'] }</span>) }
|
||||
{ certificate.fields['OGRN'] && (<span>ОГРН { certificate.fields['OGRN'] }</span>) }
|
||||
</p>
|
||||
<p className="item_desc">
|
||||
<span>Подпись действительна до { certificate.valid_to_date }</span>
|
||||
|
||||
@ -11,13 +11,26 @@ export default class FormMessage extends React.Component
|
||||
|
||||
render()
|
||||
{
|
||||
const { type, title, message } = this.props;
|
||||
const { type, title, message, style } = this.props;
|
||||
|
||||
return (
|
||||
<div className={`questionnaire message ${ type }`}>
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
<div className={`questionnaire message ${ type }`} style={ style }>
|
||||
{ type === "success" && (
|
||||
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z" fill="white"/>
|
||||
<path d="M29.5625 17.875L19.4791 27.5L14.4375 22.6875" stroke="#5FB158" strokeWidth="4" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
) }
|
||||
{ type === "moderate" && (
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
) }
|
||||
{ type === "error" && (
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
) }
|
||||
<p><b>{ title }</b>
|
||||
{ message }
|
||||
</p>
|
||||
|
||||
@ -608,21 +608,21 @@ class Form_3_Signer extends QuestionnaireForm
|
||||
errors.push(`signatory_person.identity_document.docnumber`);
|
||||
}
|
||||
}
|
||||
|
||||
if(head_person.lastname !== null && head_person.lastname !== "" && head_person.firstname !== null && head_person.firstname !== "")
|
||||
{
|
||||
if(signatory_person.lastname !== null && signatory_person.lastname !== "" && signatory_person.firstname !== null && signatory_person.firstname !== "")
|
||||
{
|
||||
if(head_person.lastname === signatory_person.lastname && head_person.firstname === signatory_person.firstname)
|
||||
{
|
||||
errors.push(`signatory_person.identical`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(head_person_files.length === 0) { errors.push(`head_person_files`); }
|
||||
|
||||
if(head_person.lastname !== null && head_person.lastname !== "" && head_person.firstname !== null && head_person.firstname !== "")
|
||||
{
|
||||
if(signatory_person.lastname !== null && signatory_person.lastname !== "" && signatory_person.firstname !== null && signatory_person.firstname !== "")
|
||||
{
|
||||
if(head_person.lastname === signatory_person.lastname && head_person.firstname === signatory_person.firstname)
|
||||
{
|
||||
errors.push(`signatory_person.identical`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.setState({ errors, loading: false }, () =>
|
||||
{
|
||||
window.scroll(0, 0);
|
||||
|
||||
@ -14,8 +14,7 @@ import NoSSR from "@mpth/react-no-ssr";
|
||||
import QuestionnaireForm from "../QuestionnaireForm";
|
||||
import { MatchMedia } from '../../../../utils/mediaqueries';
|
||||
import { reduxWrapper } from '../../../../store';
|
||||
import DigitalSignaturesList from "../DigitalSignaturesList";
|
||||
import { downloadQuestionnaire } from "../../../../actions";
|
||||
import { downloadQuestionnaire, saveQuestionnaire } from "../../../../actions";
|
||||
import DigitalCertificates from "../DigitalCertificates";
|
||||
import FormMessage from "../FormMessage";
|
||||
|
||||
@ -25,6 +24,7 @@ class Form_8_Signing extends QuestionnaireForm
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
loading: true,
|
||||
main: {},
|
||||
signatory_person: {},
|
||||
sign_digital: true,
|
||||
@ -35,6 +35,7 @@ class Form_8_Signing extends QuestionnaireForm
|
||||
downloading: false,
|
||||
error: false,
|
||||
digital_disabled: false,
|
||||
sign: {},
|
||||
};
|
||||
}
|
||||
|
||||
@ -43,21 +44,37 @@ class Form_8_Signing extends QuestionnaireForm
|
||||
return {
|
||||
main: nextProps.questionnaire.main,
|
||||
signatory_person: nextProps.questionnaire.signatory_person,
|
||||
sign: nextProps.questionnaire.sign,
|
||||
company: nextProps.company,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount()
|
||||
{
|
||||
const { main, signatory_person } = this.state;
|
||||
const update = { filename: `${ main.inn }_questionnaire_${ moment().format("DDMMYYYY_HHmmss") }.pdf` };
|
||||
if(signatory_person.not_head_person)
|
||||
{
|
||||
update.sign_digital = false;
|
||||
update.digital_disabled = true;
|
||||
}
|
||||
console.log("Form_8_Signing", "CDM");
|
||||
|
||||
this.setState({ ...this.state, ...update });
|
||||
//setTimeout(() =>
|
||||
//{
|
||||
console.log("Form_8_Signing", "CDM", { state: this.state });
|
||||
|
||||
const { main, signatory_person } = this.state;
|
||||
const update = { filename: `${ main.inn }_questionnaire_${ moment().format("DDMMYYYY_HHmmss") }.pdf` };
|
||||
let digital = true;
|
||||
|
||||
if(signatory_person.not_head_person)
|
||||
{
|
||||
update.digital_disabled = true;
|
||||
digital = false;
|
||||
}
|
||||
|
||||
this.setState({ ...this.state, ...update, ...{ loading: false } }, () =>
|
||||
{
|
||||
this._handle_onBranchChange([
|
||||
{ name: `sign.digital`, value: digital },
|
||||
]);
|
||||
});
|
||||
|
||||
//}, 50);
|
||||
}
|
||||
|
||||
_handle_onFormSubmit = (event) =>
|
||||
@ -86,129 +103,147 @@ class Form_8_Signing extends QuestionnaireForm
|
||||
{
|
||||
this.setState({ downloading: true }, () =>
|
||||
{
|
||||
downloadQuestionnaire({ filename, download: true })
|
||||
saveQuestionnaire()
|
||||
.then(() =>
|
||||
{
|
||||
this._handle_onCheckboxFieldChange("step", 9);
|
||||
setTimeout(() =>
|
||||
downloadQuestionnaire({ filename, download: true })
|
||||
.then(() =>
|
||||
{
|
||||
this.props.onNextStep("status");
|
||||
this.props.onSuccess();
|
||||
}, 10);
|
||||
this._handle_onCheckboxFieldChange("step", 9);
|
||||
setTimeout(() =>
|
||||
{
|
||||
this.props.onNextStep("status");
|
||||
}, 10);
|
||||
})
|
||||
.catch(() =>
|
||||
{
|
||||
this.setState({ downloading: false, error: true, })
|
||||
});
|
||||
})
|
||||
.catch(() =>
|
||||
{
|
||||
this.setState({ downloading: false, error: true, })
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
_handle_onChangeSignMethod = () =>
|
||||
{
|
||||
const { sign_digital } = this.state;
|
||||
this.setState({ sign_digital: sign_digital ? false : true }, () =>
|
||||
{
|
||||
window.scrollTo(0, 0);
|
||||
});
|
||||
const { sign } = this.state;
|
||||
this._handle_onBranchChange([
|
||||
{ name: `sign.digital`, value: sign.digital ? false : true },
|
||||
]);
|
||||
window.scrollTo(0, 0);
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
const { filename, sign_digital, mobile, company, main, downloading, error, digital_disabled } = this.state;
|
||||
const { loading, filename, sign_digital, sign, mobile, company, main, downloading, error, digital_disabled } = this.state;
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
<form onSubmit={ this._handle_onFormSubmit } className="questionnaire questionnaire_8">
|
||||
<p className="title">8. Выбор метода подписания</p>
|
||||
console.log({ sign });
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden=""
|
||||
id="sign_digital"
|
||||
name="sign_digital"
|
||||
checked={ sign_digital }
|
||||
onChange={ this._handle_onChangeSignMethod }
|
||||
/>
|
||||
<label htmlFor="sign_digital">
|
||||
<b>Подписать онлайн используя ЭЦП</b>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
if(loading)
|
||||
{
|
||||
return (
|
||||
<div style={{ minHeight: 200, display: "flex", justifyContent: "center", alignItems: "center", }}>
|
||||
<SpinnerCircular size={ 90 } thickness={ 51 } speed={ 100 } color="rgba(28, 1, 169, 1)" secondaryColor="rgba(236, 239, 244, 1)" />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (
|
||||
<React.Fragment>
|
||||
<form onSubmit={ this._handle_onFormSubmit } className="questionnaire questionnaire_8">
|
||||
<p className="title">8. Выбор метода подписания</p>
|
||||
|
||||
{ sign_digital && (
|
||||
<>
|
||||
{ digital_disabled ? (
|
||||
<div className="questionnaire message moderate">
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
<p><b>Внимание</b>
|
||||
Подписант отличается от Единоличного исполнительного органа. Подписание посредством ЭЦП недоступно.
|
||||
</p>
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden=""
|
||||
id="sign_digital"
|
||||
name="sign_digital"
|
||||
checked={ sign.digital }
|
||||
onChange={ this._handle_onChangeSignMethod }
|
||||
/>
|
||||
<label htmlFor="sign_digital">
|
||||
<b>Подписать онлайн используя ЭЦП</b>
|
||||
</label>
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
{ mobile ? (
|
||||
<div className="questionnaire message moderate">
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
<p><b>Внимание</b>
|
||||
Для подписания анкеты посредством ЭЦП пожалуйста воспользуйтесь стационарным компьютером или ноутбуком с установленной программой КриптоПро CSP.
|
||||
</p>
|
||||
</div>
|
||||
) : (
|
||||
<NoSSR>
|
||||
<DigitalCertificates main={ main } company={ company } onSignDigital={ this._handle_onSignDigital }/>
|
||||
</NoSSR>
|
||||
|
||||
) }
|
||||
{/*<DigitalSignaturesList form={ null } main={ main } company={ company } onSignDigital={ this._handle_onSignDigital }/>*/}
|
||||
</>
|
||||
)}
|
||||
</>
|
||||
) }
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden=""
|
||||
id="sign_print"
|
||||
name="sign_print"
|
||||
checked={ !sign_digital }
|
||||
onChange={ this._handle_onChangeSignMethod }
|
||||
/>
|
||||
<label htmlFor="sign_print">
|
||||
<b>Подписать в бумажном виде</b>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ error && (
|
||||
<FormMessage type="error" title="Ошибка" message="К сожалению в процессе создания документа возникла ошибка. Пожалуйста, обратитесь к сотруднику Отдела по работе с клиентами или попробуйте еще раз."/>
|
||||
)}
|
||||
{ !sign_digital && (
|
||||
<div className="dosc_list medium-icon">
|
||||
<div className="row">
|
||||
<p className="doc_name i-pdf extension">
|
||||
{ filename }
|
||||
<span style={{ width: "100%" }}>Анкета клиента</span>
|
||||
</p>
|
||||
<a className="button button-blue " onClick={ this._handle_onDownload }>
|
||||
{ downloading ? (
|
||||
<SpinnerCircular size={ 24 } thickness={ 50 } speed={ 100 } color="rgba(28, 1, 169, 1)" secondaryColor="rgba(236, 239, 244, 1)" />
|
||||
) : "Скачать" }
|
||||
</a>
|
||||
{ sign.digital && (
|
||||
<>
|
||||
{ digital_disabled ? (
|
||||
<div className="questionnaire message moderate">
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
<p><b>Внимание</b>
|
||||
Подписант отличается от Единоличного исполнительного органа. Подписание посредством ЭЦП недоступно.
|
||||
</p>
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
{ mobile ? (
|
||||
<div className="questionnaire message moderate">
|
||||
<svg width="44" height="45" viewBox="0 0 44 45" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M40.5425 31.1863L25.7969 8.08116C24.9653 6.77804 23.5459 6 22 6C20.4539 6 19.0345 6.77804 18.2032 8.08116L3.45741 31.1862C2.57234 32.5732 2.51363 34.3313 3.30467 35.7746C4.09572 37.2173 5.60918 38.1137 7.25444 38.1137H36.7456C38.3909 38.1137 39.9044 37.2175 40.6956 35.7742C41.4863 34.3313 41.4276 32.5733 40.5425 31.1863ZM22 34.2245C20.644 34.2245 19.5448 33.1252 19.5448 31.7694C19.5448 30.4133 20.6441 29.3141 22 29.3141C23.356 29.3141 24.4551 30.4133 24.4551 31.7694C24.4551 33.1252 23.3559 34.2245 22 34.2245ZM25.403 17.1635L24.1937 25.3052C24.0157 26.5037 22.8999 27.3309 21.7016 27.1529C20.7334 27.0091 20.0075 26.25 19.8582 25.333L18.5451 17.2074C18.2394 15.3155 19.5251 13.534 21.417 13.2283C23.3089 12.9226 25.0904 14.2083 25.3962 16.1002C25.4536 16.4565 25.4517 16.8243 25.403 17.1635Z" fill="white"/>
|
||||
</svg>
|
||||
<p><b>Внимание</b>
|
||||
Для подписания анкеты посредством ЭЦП пожалуйста воспользуйтесь стационарным компьютером или ноутбуком с установленной программой КриптоПро CSP.
|
||||
</p>
|
||||
</div>
|
||||
) : (
|
||||
<NoSSR>
|
||||
<DigitalCertificates main={ main } company={ company } onSignDigital={ this._handle_onSignDigital }/>
|
||||
</NoSSR>
|
||||
) }
|
||||
</>
|
||||
)}
|
||||
</>
|
||||
) }
|
||||
|
||||
<div className="form_field">
|
||||
<div style={{ width: "100%" }}>
|
||||
<div className="form_field checkbox">
|
||||
<input type="radio" hidden=""
|
||||
id="sign_print"
|
||||
name="sign_print"
|
||||
checked={ !sign.digital }
|
||||
onChange={ this._handle_onChangeSignMethod }
|
||||
/>
|
||||
<label htmlFor="sign_print">
|
||||
<b>Подписать в бумажном виде</b>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
) }
|
||||
</form>
|
||||
</React.Fragment>
|
||||
);
|
||||
|
||||
{ error && (
|
||||
<FormMessage type="error" title="Ошибка" message="К сожалению в процессе создания документа возникла ошибка. Пожалуйста, обратитесь к сотруднику Отдела по работе с клиентами или попробуйте еще раз."/>
|
||||
)}
|
||||
{ !sign.digital && (
|
||||
<div className="dosc_list medium-icon">
|
||||
<div className="row">
|
||||
<p className="doc_name i-pdf extension">
|
||||
{ filename }
|
||||
<span style={{ width: "100%" }}>Анкета клиента</span>
|
||||
</p>
|
||||
<a className="button button-blue " onClick={ this._handle_onDownload }>
|
||||
{ downloading ? (
|
||||
<SpinnerCircular size={ 24 } thickness={ 50 } speed={ 100 } color="rgba(28, 1, 169, 1)" secondaryColor="rgba(236, 239, 244, 1)" />
|
||||
) : "Скачать" }
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
) }
|
||||
</form>
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ import QuestionnaireForm from "../QuestionnaireForm";
|
||||
import { reduxWrapper } from '../../../../store';
|
||||
import DigitalSignaturesList from "../DigitalSignaturesList";
|
||||
import { downloadQuestionnaire, uploadSignedFile } from "../../../../actions";
|
||||
import FormMessage from "../FormMessage";
|
||||
|
||||
class Form_9_Status extends QuestionnaireForm
|
||||
{
|
||||
@ -26,6 +27,7 @@ class Form_9_Status extends QuestionnaireForm
|
||||
file: null,
|
||||
sent: null,
|
||||
company: {},
|
||||
error_file_size: false,
|
||||
};
|
||||
|
||||
this.ref_file_input = React.createRef();
|
||||
@ -46,26 +48,20 @@ class Form_9_Status extends QuestionnaireForm
|
||||
|
||||
_handle_onFileUpload = () =>
|
||||
{
|
||||
console.log("_handle_onFileUpload");
|
||||
console.log(this.ref_file_input);
|
||||
|
||||
this.ref_file_input.current.click();
|
||||
}
|
||||
|
||||
_handle_onFileChange = (event) =>
|
||||
{
|
||||
console.log("_handle_onFileChange");
|
||||
console.log(event);
|
||||
console.log("file", file);
|
||||
|
||||
{
|
||||
const file = event.target.files[0];
|
||||
this.setState({ file: file });
|
||||
|
||||
const error_file_size = file.size > ( 1024 * 1024 * process.env.NEXT_PUBLIC_UPLOAD_SCAN_FILESIZE_LIMIT_MB) ? true : false;
|
||||
this.setState({ file: file, error_file_size, filename: file.name });
|
||||
}
|
||||
|
||||
_handle_onSend = () =>
|
||||
{
|
||||
const { file, company, uploading } = this.state;
|
||||
console.log("company", company);
|
||||
|
||||
if(!uploading)
|
||||
{
|
||||
@ -89,48 +85,36 @@ class Form_9_Status extends QuestionnaireForm
|
||||
|
||||
render()
|
||||
{
|
||||
const { sign, file, uploading, sent } = this.state;
|
||||
console.log( {sign} );
|
||||
const { sign, file, uploading, sent, error_file_size, filename } = this.state;
|
||||
console.log("Form_9_Status", "render", { sign });
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
{ sign.digital && (
|
||||
<React.Fragment>
|
||||
<div className="questionnaire message success">
|
||||
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z" fill="white"/>
|
||||
<path d="M29.5625 17.875L19.4791 27.5L14.4375 22.6875" stroke="#5FB158" strokeWidth="4" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
<p>
|
||||
<b>Анкета заполнена и подписана</b>
|
||||
Вы заполнили и подписали анкету лизингополучателя посредством
|
||||
ЭЦП. Анкета передана в обрабатывающий центр. Если у
|
||||
сотрудников возникнут вопросы мы свяжемся с Вами. Спасибо!
|
||||
</p>
|
||||
</div>
|
||||
<FormMessage
|
||||
type="success"
|
||||
title="Анкета заполнена и подписана"
|
||||
message="Вы заполнили и подписали анкету лизингополучателя посредством ЭЦП. Анкета передана в обрабатывающий центр. Если у сотрудников возникнут вопросы мы свяжемся с Вами. Спасибо!"
|
||||
/>
|
||||
<div className="questionnaire status_action">
|
||||
<button className="button button-blue" style={{ width: "100%", minWidth: "255px" }} onClick={ () => this.props.router.push("/") }>Перейти на главную страницу </button>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
) }
|
||||
{ sign.print && (
|
||||
{ !sign.digital && (
|
||||
<React.Fragment>
|
||||
<input type="file" id="file" multiple={ false } ref={ this.ref_file_input } style={{ display: "none" }} onChange={ this._handle_onFileChange }/>
|
||||
{ file === null ? (
|
||||
<React.Fragment>
|
||||
<div className="questionnaire message moderate">
|
||||
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z" fill="white"/>
|
||||
<path d="M23.0322 14.699L28.301 19.9678L29.0537 22.9785L25.2903 26.7419M14.0478 23.779L19.221 28.9522M18.957 29H14.7527C14.5531 29 14.3616 28.9207 14.2205 28.7795C14.0793 28.6384 14 28.4469 14 28.2473V24.043C14 23.9441 14.0195 23.8463 14.0573 23.7549C14.0951 23.6636 14.1506 23.5806 14.2205 23.5107L25.5107 12.2205C25.6519 12.0793 25.8433 12 26.043 12C26.2426 12 26.434 12.0793 26.5752 12.2205L30.7795 16.4248C30.9207 16.566 31 16.7574 31 16.957C31 17.1567 30.9207 17.3481 30.7795 17.4893L19.4893 28.7795C19.4194 28.8494 19.3364 28.9049 19.2451 28.9427C19.1537 28.9805 19.0559 29 18.957 29Z" stroke="#8E94A7" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
<p>
|
||||
<b>Анкета заполнена и ожидает вашего подписания</b>
|
||||
Вы заполнили анкету лизингополучателя для подписания в режиме загрузки скана анкеты. Пожалуйста, загрузите скан подписанной анкеты.
|
||||
</p>
|
||||
</div>
|
||||
<FormMessage
|
||||
type="moderate"
|
||||
title="Анкета заполнена и ожидает вашего подписания"
|
||||
message="Вы заполнили анкету лизингополучателя для подписания в режиме загрузки скана анкеты. Пожалуйста, загрузите скан подписанной анкеты."
|
||||
/>
|
||||
<div className="questionnaire status_action">
|
||||
<>
|
||||
<button className="button button-blue" style={{ width: "100%", minWidth: "255px" }} onClick={ this._handle_onFileUpload }>Загрузить подписанный документ</button>
|
||||
<input type="file" id="file" multiple={ false } ref={ this.ref_file_input } style={{ display: "none" }} onChange={ this._handle_onFileChange }/>
|
||||
</>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
@ -138,16 +122,20 @@ class Form_9_Status extends QuestionnaireForm
|
||||
<React.Fragment>
|
||||
{ !sent ? (
|
||||
<React.Fragment>
|
||||
<div className="questionnaire message moderate">
|
||||
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z" fill="white"/>
|
||||
<path d="M23.0322 14.699L28.301 19.9678L29.0537 22.9785L25.2903 26.7419M14.0478 23.779L19.221 28.9522M18.957 29H14.7527C14.5531 29 14.3616 28.9207 14.2205 28.7795C14.0793 28.6384 14 28.4469 14 28.2473V24.043C14 23.9441 14.0195 23.8463 14.0573 23.7549C14.0951 23.6636 14.1506 23.5806 14.2205 23.5107L25.5107 12.2205C25.6519 12.0793 25.8433 12 26.043 12C26.2426 12 26.434 12.0793 26.5752 12.2205L30.7795 16.4248C30.9207 16.566 31 16.7574 31 16.957C31 17.1567 30.9207 17.3481 30.7795 17.4893L19.4893 28.7795C19.4194 28.8494 19.3364 28.9049 19.2451 28.9427C19.1537 28.9805 19.0559 29 18.957 29Z" stroke="#8E94A7" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
<p>
|
||||
<b>Анкета заполнена, подписана и ожидает отправки</b>
|
||||
Вы заполнили и подписали анкету лизингополучателя в режиме загрузки скана анкеты. Пожалуйста, отправьте подписанный документ.
|
||||
</p>
|
||||
</div>
|
||||
{ error_file_size ? (
|
||||
<FormMessage
|
||||
type="error"
|
||||
title="Ошибка"
|
||||
message={`Файл «${ filename }» превышает допустимый лимит в ${ process.env.NEXT_PUBLIC_UPLOAD_SCAN_FILESIZE_LIMIT_MB }мб и не может быть загружен.`}
|
||||
style={{ marginLeft: "0px" }}
|
||||
/>
|
||||
) : (
|
||||
<FormMessage
|
||||
type="moderate"
|
||||
title="Анкета заполнена, подписана и ожидает отправки"
|
||||
message="Вы заполнили и подписали анкету лизингополучателя в режиме загрузки скана анкеты. Пожалуйста, отправьте подписанный документ."
|
||||
/>
|
||||
) }
|
||||
<div className="questionnaire status_action" style={{ width: "100%" }}>
|
||||
<div className="dosc_list medium-icon">
|
||||
<div className="row">
|
||||
@ -155,30 +143,26 @@ class Form_9_Status extends QuestionnaireForm
|
||||
{ file.name }
|
||||
<span style={{width: "100%"}}>Подписанный скан анкеты</span>
|
||||
</p>
|
||||
<button className="button button-blue" style={{ width: "130px" }} onClick={ this._handle_onSend }>
|
||||
{ uploading ? (
|
||||
<SpinnerCircular size={ 24 } thickness={ 50 } speed={ 100 } color="rgba(28, 1, 169, 1)" secondaryColor="rgba(236, 239, 244, 1)" />
|
||||
) : "Отправить" }
|
||||
</button>
|
||||
{ error_file_size ? (
|
||||
<button className="button button-blue" style={{ width: "100%", minWidth: "255px" }} onClick={ this._handle_onFileUpload }>Загрузить другой документ</button>
|
||||
) : (
|
||||
<button className="button button-blue" style={{ width: "130px" }} onClick={ this._handle_onSend }>
|
||||
{ uploading ? (
|
||||
<SpinnerCircular size={ 24 } thickness={ 50 } speed={ 100 } color="rgba(28, 1, 169, 1)" secondaryColor="rgba(236, 239, 244, 1)" />
|
||||
) : "Отправить" }
|
||||
</button>
|
||||
) }
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
) : (
|
||||
<React.Fragment>
|
||||
<div className="questionnaire message success">
|
||||
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z" fill="white"/>
|
||||
<path d="M29.5625 17.875L19.4791 27.5L14.4375 22.6875" stroke="#5FB158" strokeWidth="4" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
<p>
|
||||
<b>Анкета заполнена и подписана</b>
|
||||
Вы заполнили и подписали анкету лизингополучателя посредством
|
||||
загрузки скана анкеты. Анкета передана в обрабатывающий центр.
|
||||
Если у сотрудников возникнут вопросы мы свяжемся с Вами.
|
||||
Спасибо!
|
||||
</p>
|
||||
</div>
|
||||
<FormMessage
|
||||
type="success"
|
||||
title="Анкета заполнена и подписана"
|
||||
message="Вы заполнили и подписали анкету лизингополучателя посредством загрузки скана анкеты. Анкета передана в обрабатывающий центр. Если у сотрудников возникнут вопросы мы свяжемся с Вами. Спасибо!"
|
||||
/>
|
||||
<div className="questionnaire status_action">
|
||||
<button className="button button-blue" style={{ width: "100%", minWidth: "255px" }} onClick={ () => this.props.router.push("/") }>Перейти на главную страницу </button>
|
||||
</div>
|
||||
|
||||
@ -211,6 +211,7 @@ export default class QuestionnaireForm extends React.Component
|
||||
questionnaireSetSign({ dispatch, sign: { digital: true, print: false, }});
|
||||
setTimeout(() =>
|
||||
{
|
||||
this.props.onSuccess();
|
||||
this.props.onNextStep("status");
|
||||
}, 10);
|
||||
}
|
||||
|
||||
@ -67,11 +67,13 @@ class QuestionnairePage extends React.Component
|
||||
|
||||
_init = () =>
|
||||
{
|
||||
console.log("_init");
|
||||
const { company } = this.state;
|
||||
const { dispatch } = this.props;
|
||||
|
||||
console.log("-".repeat(50));
|
||||
console.log(company);
|
||||
|
||||
getQuestionnaire({ dispatch, id: company.questionnaire_id })
|
||||
.then(() =>
|
||||
{
|
||||
@ -105,6 +107,7 @@ class QuestionnairePage extends React.Component
|
||||
|
||||
_handle_onSuccess = () =>
|
||||
{
|
||||
console.log("_handle_onSuccess");
|
||||
getCompanyInfo({ dispatch: this.props.dispatch });
|
||||
defaultQuestionnaire({ dispatch: this.props.dispatch });
|
||||
}
|
||||
|
||||
@ -120,8 +120,7 @@ export const questionnaire_template = {
|
||||
},
|
||||
personal_data_consent: true,
|
||||
sign: {
|
||||
digital: false,
|
||||
print: true,
|
||||
digital: true,
|
||||
uploading: false,
|
||||
uploaded: false,
|
||||
sent: false,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user