import React from "react"; import Head from "next/head"; import Image from "next/image"; import Link from "next/link"; import cookie from "cookie"; import numeral from "numeral"; import pluralize from "pluralize-ru"; import { SpinnerCircular } from "spinners-react"; import { connect } from "react-redux"; import { withRouter } from 'next/router'; import moment from "moment"; import NoSSR from "@mpth/react-no-ssr"; import QuestionnaireForm from "../QuestionnaireForm"; import { MatchMedia } from '../../../../utils/mediaqueries'; import { reduxWrapper } from '../../../../store'; import { downloadQuestionnaire, saveQuestionnaire } from "../../../../actions"; import DigitalCertificates from "../DigitalCertificates"; import FormMessage from "../FormMessage"; class Form_8_Signing extends QuestionnaireForm { constructor(props) { super(props); this.state = { loading: true, main: {}, head_person: {}, signatory_person: {}, sign_digital: true, address: "", filename: null, mobile: MatchMedia() === "mobile" ? true : false, company: {}, downloading: false, error: false, digital_disabled: false, sign: {}, }; } static getDerivedStateFromProps(nextProps, prevState) { return { main: nextProps.questionnaire.main, signatory_person: nextProps.questionnaire.signatory_person, sign: nextProps.questionnaire.sign, head_person: nextProps.questionnaire.head_person, company: nextProps.company, }; } componentDidMount() { const { main, head_person, 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 }, ]); }); } _handle_onFormSubmit = (event) => { event.preventDefault(); }; _check_fields_disabled = (values) => { for (let i in values) { if (values[i] === "") { return true; } } return false; }; _handle_onDownload = () => { const { filename, downloading } = this.state; if(!downloading) { this.setState({ downloading: true }, () => { saveQuestionnaire() .then(() => { downloadQuestionnaire({ filename, download: true }) .then(() => { 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 } = this.state; this._handle_onBranchChange([ { name: `sign.digital`, value: sign.digital ? false : true }, ]); window.scrollTo(0, 0); } render() { const { loading, filename, sign_digital, sign, head_person, mobile, company, main, downloading, error, digital_disabled } = this.state; if(loading) { return (
); } else { return (

8. Выбор метода подписания

{ sign.digital && ( <> { digital_disabled ? (

Внимание Подписант отличается от Единоличного исполнительного органа. Подписание посредством ЭЦП недоступно.

) : ( <> { mobile ? (

Внимание Для подписания анкеты посредством ЭЦП пожалуйста воспользуйтесь стационарным компьютером или ноутбуком с установленной программой КриптоПро CSP.

) : ( ) } )} ) }
{ error && ( )} { !sign.digital && (

{ filename } Анкета клиента

{ downloading ? ( ) : "Скачать" }
) }
); } } } function mapStateToProps(state, ownProps) { return { questionnaire: state.questionnaire, company: state.company, } } export const getServerSideProps = reduxWrapper.getServerSideProps(store => async ({ req, res, query }) => { } ); export default connect(mapStateToProps)(Form_8_Signing);