From 1eabde05e35e0714687cdeabae0a82ff25b5a766 Mon Sep 17 00:00:00 2001 From: merelendor Date: Tue, 26 Dec 2023 13:19:04 +0300 Subject: [PATCH] fix for questionnaire signing when sign on paper --- actions/questionnaireActions.js | 10 ++++- .../forms/DigitalCertificates.js | 2 + .../forms/Form_8_Signing/index.js | 43 ++++++------------- .../forms/Form_9_Status/index.js | 16 ++++--- pages/questionnaire/index.js | 4 +- reducers/initialState.js | 18 ++++---- 6 files changed, 46 insertions(+), 47 deletions(-) diff --git a/actions/questionnaireActions.js b/actions/questionnaireActions.js index fa22821..dc2c34e 100644 --- a/actions/questionnaireActions.js +++ b/actions/questionnaireActions.js @@ -334,6 +334,7 @@ export const resetQuestionnaire = ({ dispatch, id }) => { const template = JSON.parse(JSON.stringify(questionnaire_template)); dispatch({ type: actionTypes.QUESTIONNAIRE_UPDATE, data: { questionnaire: template, } }); + eraseQuestionnaire() .then(() => { @@ -341,13 +342,18 @@ export const resetQuestionnaire = ({ dispatch, id }) => }); } -export const defaultQuestionnaire = ({ dispatch }) => +export const defaultQuestionnaire = ({ dispatch, sign }) => { //console.log("defaultQuestionnaire"); - const template = JSON.parse(JSON.stringify(questionnaire_template)); + if(sign !== undefined) + { + template.sign = sign; + } dispatch({ type: actionTypes.QUESTIONNAIRE_UPDATE, data: { questionnaire: template, } }); + + eraseQuestionnaire().then(() => {}).catch(() => {}); } diff --git a/components/questionnaire/forms/DigitalCertificates.js b/components/questionnaire/forms/DigitalCertificates.js index 3fca3f8..ea0c7eb 100644 --- a/components/questionnaire/forms/DigitalCertificates.js +++ b/components/questionnaire/forms/DigitalCertificates.js @@ -268,6 +268,8 @@ export default class DigitalCertificates extends React.Component { (certificates_error === "NOT_INSTALLED" || certificates_error === "CERTIFICATES") && ( Плагин КриптоПРО не установлен или не активирован. Посмотите инструкцию как установить, активировать и проверить работу плагина КриптоПро.
+
+ После активации плагина, пожалуйста, обновите страницу. }/> ) } { certificates_error === "INVALID" && ( diff --git a/components/questionnaire/forms/Form_8_Signing/index.js b/components/questionnaire/forms/Form_8_Signing/index.js index 287da96..398759c 100644 --- a/components/questionnaire/forms/Form_8_Signing/index.js +++ b/components/questionnaire/forms/Form_8_Signing/index.js @@ -53,40 +53,28 @@ class Form_8_Signing extends QuestionnaireForm componentDidMount() { - //console.log("Form_8_Signing", "CDM"); + const { main, head_person, signatory_person } = this.state; + const update = { filename: `${ main.inn }_questionnaire_${ moment().format("DDMMYYYY_HHmmss") }.pdf` }; + let digital = true; - //setTimeout(() => - //{ - //console.log("Form_8_Signing", "CDM", { state: this.state }); + if(signatory_person.not_head_person) + { + update.digital_disabled = true; + digital = false; + } - - 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 }, - ]); - }); - - //}, 50); + this.setState({ ...this.state, ...update, ...{ loading: false } }, () => + { + this._handle_onBranchChange([ + { name: `sign.digital`, value: digital }, + ]); + }); } _handle_onFormSubmit = (event) => { event.preventDefault(); - //console.log("FormAddress", "_handle_onFormSubmit"); - }; _check_fields_disabled = (values) => @@ -147,9 +135,6 @@ class Form_8_Signing extends QuestionnaireForm { const { loading, filename, sign_digital, sign, head_person, mobile, company, main, downloading, error, digital_disabled } = this.state; - //console.log({ sign }); - - if(loading) { return ( diff --git a/components/questionnaire/forms/Form_9_Status/index.js b/components/questionnaire/forms/Form_9_Status/index.js index 83eef7e..2938e5d 100644 --- a/components/questionnaire/forms/Form_9_Status/index.js +++ b/components/questionnaire/forms/Form_9_Status/index.js @@ -44,7 +44,13 @@ class Form_9_Status extends QuestionnaireForm } componentDidMount() - { + { + const { sign } = this.state; + + if(sign.digital) + { + this.props.onSuccess(this.state.sign); + } } _handle_onFileUpload = () => @@ -73,7 +79,7 @@ class Form_9_Status extends QuestionnaireForm { this.setState({ uploading: false, sent: true, error_send: false, }, () => { - this.props.onSuccess(); + this.props.onSuccess(this.state.sign); }); }) .catch(() => @@ -89,10 +95,9 @@ class Form_9_Status extends QuestionnaireForm const { sign, file, uploading, sent, error_file_size, error_send, filename } = this.state; //console.log("Form_9_Status", "render", { sign }); - return ( - { sign.digital && ( + { sign.digital ? ( this.props.router.push("/") }>Перейти на главную страницу - ) } - { !sign.digital && ( + ) : ( { file === null ? ( diff --git a/pages/questionnaire/index.js b/pages/questionnaire/index.js index c4b9237..1aa69b5 100644 --- a/pages/questionnaire/index.js +++ b/pages/questionnaire/index.js @@ -109,12 +109,12 @@ class QuestionnairePage extends React.Component this.props.router.push(`/questionnaire#${ path }`); } - _handle_onSuccess = () => + _handle_onSuccess = (sign) => { //console.log("_handle_onSuccess"); getCompanyInfo({ dispatch: this.props.dispatch }); - defaultQuestionnaire({ dispatch: this.props.dispatch }); + defaultQuestionnaire({ dispatch: this.props.dispatch, sign }); } _renderForm = () => diff --git a/reducers/initialState.js b/reducers/initialState.js index 81cca2c..5ed6e72 100644 --- a/reducers/initialState.js +++ b/reducers/initialState.js @@ -1,3 +1,12 @@ +export const questionnaire_sign_template = { + digital: true, + uploading: false, + uploaded: false, + sent: false, + filename: null, + filedate: null, +}; + export const questionnaire_template = { step: 1, status: "empty", @@ -119,14 +128,7 @@ export const questionnaire_template = { fin_goals_special: null, }, personal_data_consent: true, - sign: { - digital: true, - uploading: false, - uploaded: false, - sent: false, - filename: null, - filedate: null, - }, + sign: questionnaire_sign_template, licenses: [], };