diff --git a/actions/questionnaireActions.js b/actions/questionnaireActions.js index 989aa21..587714b 100644 --- a/actions/questionnaireActions.js +++ b/actions/questionnaireActions.js @@ -91,21 +91,21 @@ export const getQuestionnaire = ({ dispatch, id }) => const identity_document_template = { - doctype: "", - seria: "", - docnumber: "", - issuedate: "", - code: "", - issueby: "", - issueby_search_dadata: "", - placebirth: "", + doctype: 100000000, + seria: null, + docnumber: null, + issuedate: null, + code: null, + issueby: null, + issueby_search_dadata: null, + placebirth: null, citizenship: { title: getCitizenshipTitleByCode(643), code: 643, }, registration_address: { - title: "", - fias_id: "", + title: null, + fias_id: null, } }; diff --git a/components/questionnaire/forms/Form_9_Status/index.js b/components/questionnaire/forms/Form_9_Status/index.js index 5e53798..fc8fc8c 100644 --- a/components/questionnaire/forms/Form_9_Status/index.js +++ b/components/questionnaire/forms/Form_9_Status/index.js @@ -28,6 +28,7 @@ class Form_9_Status extends QuestionnaireForm sent: null, company: {}, error_file_size: false, + error_send: false, }; this.ref_file_input = React.createRef(); @@ -65,19 +66,19 @@ class Form_9_Status extends QuestionnaireForm if(!uploading) { - this.setState({ uploading: true }, () => + this.setState({ uploading: true, error_send: false, }, () => { uploadSignedFile(file, company.questionnaire_id) .then(() => { - this.setState({ uploading: false, sent: true }, () => + this.setState({ uploading: false, sent: true, error_send: false, }, () => { this.props.onSuccess(); }); }) .catch(() => { - this.setState({ uploading: false, sent: false }); + this.setState({ uploading: false, sent: false, error_send: true, }); }); }); } @@ -85,7 +86,7 @@ class Form_9_Status extends QuestionnaireForm render() { - const { sign, file, uploading, sent, error_file_size, filename } = this.state; + const { sign, file, uploading, sent, error_file_size, error_send, filename } = this.state; //console.log("Form_9_Status", "render", { sign }); @@ -123,19 +124,31 @@ class Form_9_Status extends QuestionnaireForm { !sent ? ( - { error_file_size ? ( - - ) : ( + { !error_file_size && !error_send ? ( + ) : ( + + { error_file_size && ( + + ) } + { error_send && ( + + ) } + ) }
diff --git a/pages/api/questionnaire/send.js b/pages/api/questionnaire/send.js index c78d760..ebcb6c0 100644 --- a/pages/api/questionnaire/send.js +++ b/pages/api/questionnaire/send.js @@ -14,7 +14,7 @@ import { get as _get, pick as _pick } from 'lodash'; import { eachSeries } from 'async'; import archiver from 'archiver'; -import { fileTypeFromBuffer } from "file-type"; +import { fileTypeFromBuffer, fileTypeFromFile } from "file-type"; //import { MIMEType } from 'util'; import { cors } from '../../../lib/cors'; @@ -33,7 +33,7 @@ function checkNullEmpty(value) return true; } -function zipDigitalContent(zip_filename, files) +function createZipFile(zip_filename, files) { return new Promise((resolve) => { @@ -105,8 +105,6 @@ export default async function handler(req, res) const path = `${ process.env.CRM_API_HOST }/lk/Questionnaire/PreQuestionnaire/`; const filetype = await fileTypeFromBuffer(file.buffer); - console.log("fileTypeFromBuffer", filetype); - const timemark = moment().format("YYYY_MM_DD_HH_mm_ss"); const local_filename = digital @@ -123,11 +121,8 @@ export default async function handler(req, res) console.log({ questionnaire }); const parsed = JSON.parse(questionnaire); - console.log("parsed"); - console.log(".".repeat(50)); - console.log(inspect(parsed, true, null, true)); - - //const main = _pick(parsed.main, ["title", "inn", "kpp", "email", "telephone", "websiteurl", "financial_loan"]); + console.log("parsed", ".".repeat(50)); + console.log(parsed); const contacts = {}; for(let c in parsed.contacts) @@ -219,81 +214,71 @@ export default async function handler(req, res) purpose_use_gt_sc: parsed.non_profit.fin_goals_special, is_nko: parsed.main.nko ? true : false, } }; - console.error("payload.financial_loanpayload.financial_loan", payload.financial_loan); + payload.financial_loan = checkNullEmpty(payload.financial_loan) ? parseFloat(payload.financial_loan.toString().replace(/[^0-9.]/g, '')) : null; - console.log("=".repeat(50)); - console.log(inspect(payload, true, null, true)); - - /* - for(let i in parsed.main) - { - payload[i] = parsed.main[i] === null ? "" : parsed.main[i]; - } - */ - - console.log(id); - console.log("path", path); - console.log("*".repeat(50)); + console.log({ id, path }); + console.log("payload", "*".repeat(100)); console.log(payload); - const files_to_send = []; - for(let i in parsed.head_person_files) - { - //console.log(parsed.head_person_files[i]); - files_to_send.push({ ...parsed.head_person_files[i], ...{ number: 1, } }) - } - for(let i in parsed.delegation_files) - { - console.log(parsed.delegation_files[i]) - files_to_send.push({ ...parsed.delegation_files[i], ...{ number: 166, } }) - } - for(let i in parsed.signatory_person_files) - { - //console.log(parsed.signatory_person_files[i]); - files_to_send.push({ ...parsed.signatory_person_files[i], ...{ number: 23, } }) - } - for(let i in parsed.signatory_corporate_files) - { - //console.log(parsed.signatory_corporate_files[i]); - files_to_send.push({ ...parsed.signatory_corporate_files[i], ...{ number: 22, } }) - } + console.log("files", "^".repeat(50)); + console.log({ head_person_files: parsed.head_person_files }); + console.log({ delegation_files: parsed.delegation_files }); + console.log({ signatory_person_files: parsed.signatory_person_files }); + console.log({ signatory_corporate_files: parsed.signatory_corporate_files }); - /* - files_to_send.push({ ...{ - name: `${ client_jwt_decoded.acc_number }_questionnaire.pdf`, - filename: `${ client_jwt_decoded.acc_number }_questionnaire.pdf`, - }, ...{ number: 18, } }); - */ + const files_to_send = []; + + const files_groups = [ + { name: "head_person", number: 1 }, + { name: "delegation", number: 166, }, + { name: "signatory_person", number: 23, }, + { name: "signatory_corporate", number: 22, } + ]; + + for(let g in files_groups) + { + if(parsed[`${ files_groups[g].name }_files`].length > 0) + { + let files_to_zip = []; + for(let f in parsed[`${ files_groups[g].name }_files`]) + { + const ext_regex = new RegExp("\.([0-9a-z]+)$", "i"); + const ext = parsed[`${ files_groups[g].name }_files`][f].name.match(ext_regex); + + files_to_zip.push({ + name: `${ files_groups[g].name }_file_${ f+1 }.${ ext[1] }`, + path: `${ uploads }${ parsed[`${ files_groups[g].name }_files`][f].filename }`, + }); + } + + let zip_filename = `${ client_jwt_decoded.acc_number }_${ files_groups[g].name }_files.zip`; + await createZipFile(zip_filename, files_to_zip); + files_to_send.push({ name: zip_filename, filename: zip_filename, number: files_groups[g].number, }); + } + } if(digital) { const zip_filename = `${ client_jwt_decoded.acc_number }_questionnaire.zip`; - await zipDigitalContent(zip_filename, [{ + await createZipFile(zip_filename, [{ name: `${ client_jwt_decoded.acc_number }_questionnaire_${ timemark }.pdf`, path: `${ uploads }${ client_jwt_decoded.acc_number }_questionnaire.pdf`, }, { name: local_filename, path: `${ uploads }${ local_filename }`, - } - ]); + }]); - files_to_send.push({ ...{ - name: zip_filename, - filename: zip_filename, - }, ...{ number: 162 } }); + files_to_send.push({ name: zip_filename, filename: zip_filename, number: 162 }); } else { - files_to_send.push({ ...{ - name: local_filename, - filename: local_filename, - }, ...{ number: 161, } }); + files_to_send.push({ name: local_filename, filename: local_filename, number: 161, }); } - console.log("@".repeat(200)); - console.log(payload); + console.log("files_to_send", ".".repeat(100)); + console.log(files_to_send); axios.put(path, payload, { @@ -383,7 +368,7 @@ export default async function handler(req, res) resolve(); }); - //res.status(200).send(); + //res.status(500).json({ payload, id, digital }); } catch(upload_single_error) {