questionnaire all attached files moved to ZIP on questionnaire sending
This commit is contained in:
parent
b3e624bb03
commit
c0ca0c0897
@ -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,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -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
|
||||
<React.Fragment>
|
||||
{ !sent ? (
|
||||
<React.Fragment>
|
||||
{ error_file_size ? (
|
||||
<FormMessage
|
||||
type="error"
|
||||
title="Ошибка"
|
||||
message={`Файл «${ filename }» превышает допустимый лимит в ${ process.env.NEXT_PUBLIC_UPLOAD_SCAN_FILESIZE_LIMIT_MB }мб и не может быть загружен.`}
|
||||
style={{ marginLeft: "0px" }}
|
||||
/>
|
||||
) : (
|
||||
{ !error_file_size && !error_send ? (
|
||||
<FormMessage
|
||||
type="moderate"
|
||||
title="Анкета заполнена, подписана и ожидает отправки"
|
||||
message="Вы заполнили и подписали анкету лизингополучателя в режиме загрузки скана анкеты. Пожалуйста, отправьте подписанный документ."
|
||||
/>
|
||||
) : (
|
||||
<React.Fragment>
|
||||
{ error_file_size && (
|
||||
<FormMessage
|
||||
type="error"
|
||||
title="Ошибка"
|
||||
message={`Файл «${ filename }» превышает допустимый лимит в ${ process.env.NEXT_PUBLIC_UPLOAD_SCAN_FILESIZE_LIMIT_MB }мб и не может быть загружен.`}
|
||||
style={{ marginLeft: "0px" }}
|
||||
/>
|
||||
) }
|
||||
{ error_send && (
|
||||
<FormMessage
|
||||
type="error"
|
||||
title="Ошибка"
|
||||
message="К сожалению в процессе отправки документа возникла ошибка. Пожалуйста, обратитесь к сотруднику Отдела по работе с клиентами или попробуйте еще раз."
|
||||
style={{ marginLeft: "0px" }}
|
||||
/>
|
||||
) }
|
||||
</React.Fragment>
|
||||
) }
|
||||
<div className="questionnaire status_action" style={{ width: "100%" }}>
|
||||
<div className="dosc_list medium-icon">
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user