diff --git a/actions/companyActions.js b/actions/companyActions.js index 1b70f05..c0299df 100644 --- a/actions/companyActions.js +++ b/actions/companyActions.js @@ -4,6 +4,7 @@ import Router from 'next/router'; import moment from 'moment'; import * as actionTypes from '../constants/actionTypes'; +import { getEDOList } from './edoActions'; if(process.browser) { @@ -18,12 +19,12 @@ if(process.browser) this.append(keyName, obj[key]); } } - }; + }; } export const getCompanyInfo = ({ dispatch }) => { - //console.log("getCompanyInfo"); + console.log("ACTION", "company", "getCompanyInfo"); return new Promise((resolve, reject) => { @@ -32,9 +33,9 @@ export const getCompanyInfo = ({ dispatch }) => }) .then((response) => { + getEDOList({ dispatch }).then(() => {}).catch(() => {}); //console.log("getCompanyInfo", "response", response.data); - dispatch({ type: actionTypes.COMPANY, data: response.data }); resolve(); }) diff --git a/actions/edoActions.js b/actions/edoActions.js index 6540344..12aaf90 100644 --- a/actions/edoActions.js +++ b/actions/edoActions.js @@ -12,7 +12,7 @@ export const getEDOList = ({ dispatch, update = false }) => { const url = `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/edo/list`; - console.log("ACTION", "edo", "getList()", { url }); + console.log("ACTION", "edo", "getEDOList()", { url }); return new Promise((resolve, reject) => { @@ -21,20 +21,37 @@ export const getEDOList = ({ dispatch, update = false }) => }) .then((response) => { - console.log("ACTION", "edo", "getList()", "response", response.data); + console.log("ACTION", "edo", "getEDOList()", "response", response.data); + dispatch({ + type: actionTypes.EDO_LIST, + data: { + list: [ + { + "box_name": "ООО С К \"МОНОЛИТ-РУ\"", + "box_id": "7785f775578d4646aea1d323e703065d@diadoc.ru" + }, { + "box_name": "ООО СК \"МОНОЛИТ-РУ\" (роуминг, ООО «Такском» (Файлер))", + "box_id": "b8fbc5c395f54deabe6b8d84a10921f0@diadoc.ru" + } + ] + } + }); + + /* dispatch({ type: actionTypes.EDO_LIST, data: { list: response.data } }); + */ resolve(); }) .catch((error) => { - console.error("ACTION", "edo", "getList()", "ERROR"); + console.error("ACTION", "edo", "getEDOList()", "ERROR"); console.error(error); dispatch({ diff --git a/components/DealsStatus/SingleDeal.js b/components/DealsStatus/SingleDeal.js index 5cd268f..5c9e344 100644 --- a/components/DealsStatus/SingleDeal.js +++ b/components/DealsStatus/SingleDeal.js @@ -196,7 +196,7 @@ class Offers extends Step { offer.model_name } { offer.object_count } -
+

@@ -515,12 +515,12 @@ class DocumentsForm extends Step {/*}

-
+

№123/2023 от 01.01.2023

-
+

№123/2023 от 01.01.2023

@@ -684,7 +684,7 @@ class SigningTypeSelection extends Step return (
-
+
{ contracts.length > 0 ? contracts.map((contract, index) => (
diff --git a/components/EDOSign/index.js b/components/EDOSign/index.js new file mode 100644 index 0000000..486be18 --- /dev/null +++ b/components/EDOSign/index.js @@ -0,0 +1,105 @@ +import React from "react"; +import { connect } from "react-redux"; +import moment from "moment"; +//import { getDeals, getDealOffers, getDealDocuments, getDealContracts } from "../../actions"; + +class EDOSign extends React.Component +{ + constructor(props) + { + super(props) + this.state = { + list: null, + loading: false, + selected: {}, + } + } + + static getDerivedStateFromProps(nextProps, prevState) + { + console.log("EDOSign", "getDerivedStateFromProps", { nextProps }); + return { + list: nextProps.list, + } + } + + componentDidMount() + { + if(this.state.selected.box_id === undefined) + { + this.setState({ selected: this.state.list !== null && this.state.list[0] !== undefined ? this.state.list[0] : {} }); + } + } + + _handle_onFormSubmit = () => + { + + } + + _handle_onSelectOperator = (operator) => + { + this.setState({ selected: operator }); + } + + render() + { + const { list, loading, selected } = this.state; + const { onCancel, document } = this.props; + console.log({ list }); + + return ( + <> +
+

Подписание через ЭДО

+
+
+

+ { document.name } + + { document.number } от{" "} { moment(document.date).format("DD.MM.YYYY") } + + { document.type !== undefined && ({ document.type }) } +

+
+
{if (e.key === 'Enter') e.preventDefault() }}> +
+ +
+ { list !== undefined && list !== null && list.map((operator, index) => ( +
+ this._handle_onSelectOperator(operator) } + disabled={ false } + /> + +
+ )) } +
+
+
+ + +
+
+ + ) + } +} + +function mapStateToProps(state, ownProps) +{ + console.log("EDOSign", "mapStateToProps", { state: state }); + return { + list: state.edo.list, + } +} + +export default connect(mapStateToProps)(EDOSign) \ No newline at end of file diff --git a/components/questionnaire/forms/FilesList.js b/components/questionnaire/forms/FilesList.js index 2e81c61..63fca34 100644 --- a/components/questionnaire/forms/FilesList.js +++ b/components/questionnaire/forms/FilesList.js @@ -127,7 +127,7 @@ export default class FilesList extends React.Component { files.map((file, index) => { if(file.name === undefined) { return null; } return ( -
+

{ this._renderFileName(file.name) }{/*}Постановление{*/}

@@ -141,7 +141,7 @@ export default class FilesList extends React.Component }) } { loading && ( -
+
diff --git a/components/questionnaire/forms/Form_8_Signing/index.js b/components/questionnaire/forms/Form_8_Signing/index.js index d5b10e8..287da96 100644 --- a/components/questionnaire/forms/Form_8_Signing/index.js +++ b/components/questionnaire/forms/Form_8_Signing/index.js @@ -233,7 +233,7 @@ class Form_8_Signing extends QuestionnaireForm )} { !sign.digital && ( -
+

{ filename } diff --git a/components/questionnaire/forms/Form_9_Status/index.js b/components/questionnaire/forms/Form_9_Status/index.js index fc8fc8c..83eef7e 100644 --- a/components/questionnaire/forms/Form_9_Status/index.js +++ b/components/questionnaire/forms/Form_9_Status/index.js @@ -151,7 +151,7 @@ class Form_9_Status extends QuestionnaireForm ) }

-
+

{ file.name } diff --git a/css/components/style.css b/css/components/style.css index 041e635..c7114cb 100644 --- a/css/components/style.css +++ b/css/components/style.css @@ -197,8 +197,8 @@ input[type="radio"] + label:before { } input[type="radio"]:checked + label:before { background: #fff; - box-shadow: inset 0px 0 0px 5px #005FF9; - border-color: #005FF9; + box-shadow: inset 0px 0 0px 5px #1c01a9; + border-color: #1c01a9; border: 0; } input[type="radio"]:disabled + label { diff --git a/css/components/style.less b/css/components/style.less index e1872f5..eb956a9 100644 --- a/css/components/style.less +++ b/css/components/style.less @@ -236,8 +236,8 @@ input[type="radio"] { &:checked + label { &:before { background: #fff; - box-shadow: inset 0px 0 0px 5px #005FF9; - border-color: #005FF9; + box-shadow: inset 0px 0 0px 5px #1c01a9; + border-color: #1c01a9; border: 0; } } diff --git a/css/forms/style.css b/css/forms/style.css index ab15eb7..e8b5750 100644 --- a/css/forms/style.css +++ b/css/forms/style.css @@ -1394,10 +1394,10 @@ padding-bottom: 30px; } @media all and (max-width: 720px) { - .questionnaire .files_list .dosc_list { + .questionnaire .files_list .docs_list { width: 100% !important; } - .questionnaire .files_list .dosc_list .doc_name { + .questionnaire .files_list .docs_list .doc_name { align-items: center; align-content: center; width: auto; diff --git a/css/forms/style.less b/css/forms/style.less index 60e2825..3f2ed7d 100644 --- a/css/forms/style.less +++ b/css/forms/style.less @@ -1650,7 +1650,7 @@ padding-bottom: 30px; @media all and (max-width: 720px) { - .dosc_list { + .docs_list { width: 100% !important; .doc_name { diff --git a/css/main/style.css b/css/main/style.css index d0e44d6..b40f314 100644 --- a/css/main/style.css +++ b/css/main/style.css @@ -1767,7 +1767,7 @@ main .dropdown_blocks_list .block-column .dropdown_block + .dropdown_blocks_list main .dropdown_blocks_list .block-column .dropdown_block + .dropdown_blocks_list .dropdown_block:not(:last-child) { margin-bottom: 30px; } -main .dropdown_blocks_list .block-column .dosc_list { +main .dropdown_blocks_list .block-column .docs_list { width: calc(100% - 290px); } @media all and (max-width: 960px) { @@ -1787,13 +1787,13 @@ main .dropdown_blocks_list .block-column .dosc_list { padding-bottom: 10px; } main .dropdown_blocks_list .block-column .dropdown_block, - main .dropdown_blocks_list .block-column .dosc_list { + main .dropdown_blocks_list .block-column .docs_list { width: 100%; margin-right: 0; border: 0 !important; } main .dropdown_blocks_list .block-column .dropdown_block .block_header, - main .dropdown_blocks_list .block-column .dosc_list .block_header { + main .dropdown_blocks_list .block-column .docs_list .block_header { padding: 0; height: auto; } @@ -2465,7 +2465,7 @@ main #order .container { width: 100%; } } -.dosc_list .list_title { +.docs_list .list_title { margin-top: 45px; font-weight: 700; margin-bottom: 15px; @@ -2473,30 +2473,30 @@ main #order .container { line-height: 23px; } @media all and (max-width: 768px) { - .dosc_list .list_title { + .docs_list .list_title { margin-top: 25px; font-size: 13px; line-height: 20px; } } -.dosc_list .list_title:first-child { +.docs_list .list_title:first-child { margin-top: 0; } -.dosc_list .row { +.docs_list .row { margin-bottom: 35px; display: flex; align-items: center; justify-content: space-between; } @media all and (max-width: 1600px) and (min-width: 1280px) { - .dosc_list .row { + .docs_list .row { margin-bottom: 20px; } } -.dosc_list .row p { +.docs_list .row p { margin-bottom: 0; } -.dosc_list .row .doc_name { +.docs_list .row .doc_name { font-weight: 700; min-height: 56px; display: inline-flex; @@ -2506,82 +2506,82 @@ main #order .container { max-width: 50%; } @media all and (max-width: 1600px) and (min-width: 1280px) { - .dosc_list .row .doc_name { + .docs_list .row .doc_name { min-height: 42px; } } @media all and (max-width: 960px) { - .dosc_list .row .doc_name { + .docs_list .row .doc_name { align-content: flex-start; } } -.dosc_list .row .doc_name.full { +.docs_list .row .doc_name.full { max-width: 100%; } -.dosc_list .row .doc_name.full span { +.docs_list .row .doc_name.full span { width: 100%; } -.dosc_list .row .doc_name a { +.docs_list .row .doc_name a { text-decoration: underline; font-weight: 700; } -.dosc_list .row .doc_name a:hover { +.docs_list .row .doc_name a:hover { text-decoration: none; } -.dosc_list .row .doc_name span { +.docs_list .row .doc_name span { display: block; font-weight: 400; margin-top: 2px; color: var(--text_not_active); } -.dosc_list .row .btn_group { +.docs_list .row .btn_group { display: flex; } @media all and (max-width: 768px) { - .dosc_list .row .btn_group { + .docs_list .row .btn_group { display: block; } } -.dosc_list .row .btn_group .button { +.docs_list .row .btn_group .button { width: auto; margin-left: 30px; } @media all and (max-width: 768px) { - .dosc_list .row .btn_group .button { + .docs_list .row .btn_group .button { margin-bottom: 0px; display: flex; margin-top: 16px !important; } - .dosc_list .row .btn_group .button:first-child { + .docs_list .row .btn_group .button:first-child { margin-left: 0; width: auto; display: inline-flex; margin-top: 8px !important; } } -.dosc_list .row .doc_date { +.docs_list .row .doc_date { margin-right: 30px; margin-left: 30px; white-space: nowrap; } -.dosc_list .row .button { +.docs_list .row .button { width: auto; padding: 0 30px; } -.dosc_list.medium-icon .row { +.docs_list.medium-icon .row { margin-bottom: 15px; width: 100%; } -.dosc_list.medium-icon .doc_name { +.docs_list.medium-icon .doc_name { min-height: 40px; background-size: 32px; padding-left: 48px; } -.dosc_list.acts_list-checkbox .row { +.docs_list.acts_list-checkbox .row { margin-bottom: 15px; width: 100%; } -.dosc_list.acts_list-checkbox .row .doc_name { +.docs_list.acts_list-checkbox .row .doc_name { background-size: 32px; padding-left: 0; background-position: 30px 50%; @@ -2590,42 +2590,42 @@ main #order .container { font-weight: 400; position: relative; } -.dosc_list.acts_list-checkbox .row .doc_name[data-format]:before { +.docs_list.acts_list-checkbox .row .doc_name[data-format]:before { left: 30px; width: 31px; font-size: 6px; } -.dosc_list.acts_list-checkbox .row .doc_name input[type="checkbox"] + label { +.docs_list.acts_list-checkbox .row .doc_name input[type="checkbox"] + label { display: flex; align-items: center; padding-left: 0; } -.dosc_list.acts_list-checkbox .row .doc_name input[type="checkbox"] + label:before { +.docs_list.acts_list-checkbox .row .doc_name input[type="checkbox"] + label:before { margin-right: 56px; position: relative; } -.dosc_list.acts_list-checkbox .row .doc_name:not(.i-pdf) { +.docs_list.acts_list-checkbox .row .doc_name:not(.i-pdf) { min-height: 0; } -.dosc_list.acts_list-checkbox .row .doc_name:not(.i-pdf) input[type="checkbox"] + label:before { +.docs_list.acts_list-checkbox .row .doc_name:not(.i-pdf) input[type="checkbox"] + label:before { margin-right: 16px; } @media all and (max-width: 768px) { - .dosc_list .row { + .docs_list .row { position: relative; flex-wrap: wrap; } - .dosc_list .row .doc_name { + .docs_list .row .doc_name { max-width: 100%; width: 100%; } - .dosc_list .row .button:not(.download-icon) { + .docs_list .row .button:not(.download-icon) { margin-left: 0; margin-right: 0; margin-top: 8px; width: auto; } - .dosc_list .row .button.download-icon { + .docs_list .row .button.download-icon { position: absolute; right: 0; top: 0; @@ -3570,11 +3570,11 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul { main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li { width: 50%; } -.dropdown_block + .dosc_list { +.dropdown_block + .docs_list { margin-top: 20px; } @media all and (max-width: 768px) { - .dropdown_block + .dosc_list { + .dropdown_block + .docs_list { margin-top: 0; padding-top: 20px; border-top: 1px solid #EDEFF5; @@ -4949,22 +4949,22 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li { margin-bottom: 16px; border-bottom: 1px solid rgba(0, 16, 61, 0.12); } -.appeal_list .appeal_item .item_body .item_text .dosc_list { +.appeal_list .appeal_item .item_body .item_text .docs_list { display: flex; gap: 0 20px; flex-wrap: wrap; margin-top: 16px; } -.appeal_list .appeal_item .item_body .item_text .dosc_list .row { +.appeal_list .appeal_item .item_body .item_text .docs_list .row { width: calc(33.333% - 20px); } @media all and (max-width: 1279px) { - .appeal_list .appeal_item .item_body .item_text .dosc_list .row { + .appeal_list .appeal_item .item_body .item_text .docs_list .row { width: calc(50% - 20px); } } @media all and (max-width: 768px) { - .appeal_list .appeal_item .item_body .item_text .dosc_list .row { + .appeal_list .appeal_item .item_body .item_text .docs_list .row { width: 100%; } } @@ -5023,24 +5023,24 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li { .new_appeal .column .column_text_block p { margin-bottom: 8px; } -.new_appeal .column .column_text_block .dosc_list { +.new_appeal .column .column_text_block .docs_list { display: flex; flex-wrap: wrap; } -.new_appeal .column .column_text_block .dosc_list .row { +.new_appeal .column .column_text_block .docs_list .row { width: 50%; } @media all and (max-width: 768px) { - .new_appeal .column .column_text_block .dosc_list .row { + .new_appeal .column .column_text_block .docs_list .row { width: 100%; margin-bottom: 20px; } } -.new_appeal .column .column_text_block .dosc_list .row .doc_name { +.new_appeal .column .column_text_block .docs_list .row .doc_name { max-width: 100%; } @media all and (max-width: 768px) { - .new_appeal .column .column_text_block .dosc_list .row .doc_name { + .new_appeal .column .column_text_block .docs_list .row .doc_name { min-height: 42px; } } @@ -5085,10 +5085,10 @@ main .dropdown_blocks_list .dropdown_block .block_body .fines_detail ul li { } } @media all and (max-width: 768px) { - .gibdd.dropdown_blocks_list .dosc_list { + .gibdd.dropdown_blocks_list .docs_list { margin-top: 20px; } - .gibdd.dropdown_blocks_list .dosc_list .row { + .gibdd.dropdown_blocks_list .docs_list .row { margin-bottom: 0; } .gibdd.dropdown_blocks_list .dropdown_block .block_body .company ul li b { @@ -5200,7 +5200,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_ } } @media all and (max-width: 767px) { - main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .dosc_list { + main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .docs_list { margin-bottom: 15px; } } @@ -5881,7 +5881,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_ .contractStatus_modal .single_status > div .status_body .wrap .block-column { margin-bottom: 60px; } -.contractStatus_modal .single_status > div .status_body .wrap .dosc_list a { +.contractStatus_modal .single_status > div .status_body .wrap .docs_list a { text-decoration: none; } .contractStatus_modal .single_status > div .status_body .wrap .acts_list-checkbox label { @@ -6216,3 +6216,30 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_ .edo_detail p { margin: 0px; } +.edo_list_field { + align-items: flex-start !important; +} +.edo_list_selection { + flex: 1; + margin-top: -12px; +} +.edo_list_selection .item { + padding: 16px 0px; + margin: 0px !important; + border-bottom: solid 1px #edeff5; +} +.edo_list_selection .item label:first { + margin-top: 0px; +} +.edo_list_selection .item:first { + margin-top: 0px; +} +.edo_list_selection .item:last-child { + border-bottom: 0px; +} +.edo_sign_document { + display: flex; + flex-direction: column; + margin: 30px 0px !important; + align-items: flex-start; +} diff --git a/css/main/style.less b/css/main/style.less index 994c61b..2954950 100644 --- a/css/main/style.less +++ b/css/main/style.less @@ -1791,7 +1791,7 @@ main { } } - .dosc_list { + .docs_list { width: calc(100% - 290px); } @@ -1811,7 +1811,7 @@ main { padding-bottom: 10px; .dropdown_block, - .dosc_list { + .docs_list { width: 100%; margin-right: 0; border: 0 !important; @@ -2655,7 +2655,7 @@ main { // Документы -.dosc_list { +.docs_list { .list_title { margin-top: 45px; font-weight: 700; @@ -3992,7 +3992,7 @@ main .dropdown_blocks_list .dropdown_block .block_body { } } -.dropdown_block+.dosc_list { +.dropdown_block+.docs_list { margin-top: 20px; @media all and (max-width: 768px) { @@ -5584,7 +5584,7 @@ main .dropdown_blocks_list .dropdown_block .block_body { ; } - .dosc_list { + .docs_list { display: flex; gap: 0 20px; flex-wrap: wrap; @@ -5667,7 +5667,7 @@ main .dropdown_blocks_list .dropdown_block .block_body { margin-bottom: 8px; } - .dosc_list { + .docs_list { display: flex; flex-wrap: wrap; @@ -5753,7 +5753,7 @@ main .dropdown_blocks_list .dropdown_block .block_body { } @media all and (max-width: 768px) { - .dosc_list { + .docs_list { margin-top: 20px; .row { @@ -5887,7 +5887,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block { } - .dosc_list { + .docs_list { @media all and (max-width: 767px) { margin-bottom: 15px; } @@ -6734,7 +6734,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block { margin-bottom: 60px; } - .dosc_list { + .docs_list { a { text-decoration: none; } @@ -7161,4 +7161,42 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block { p { margin: 0px; } +} + +.edo_list_field { + align-items: flex-start !important; +} + +.edo_list_selection { + flex: 1; + margin-top: -12px; + + .item { + padding: 16px 0px; + margin: 0px !important; + border-bottom: solid 1px #edeff5; + + label { +// padding-top: 16px; + + &:first { + margin-top: 0px; + } + } + + &:first { + margin-top: 0px; + } + + &:last-child { + border-bottom: 0px; + } + } +} + +.edo_sign_document { + display: flex; + flex-direction: column; + margin: 30px 0px !important; + align-items: flex-start; } \ No newline at end of file diff --git a/pages/acts.js b/pages/acts.js index 8878678..cce72db 100644 --- a/pages/acts.js +++ b/pages/acts.js @@ -50,7 +50,7 @@ export default function ActsPage()

-
+

diff --git a/pages/api/deals/upload.js b/pages/api/deals/upload.js index ce92da5..905c406 100644 --- a/pages/api/deals/upload.js +++ b/pages/api/deals/upload.js @@ -40,7 +40,7 @@ export default async function handler(req, res) documentTypeNumber: id, documentName: filename, }); - const path = `${ process.env.CRM_API_HOST }/lk/document?${ payload.toString() }`; + const path = `${ process.env.CRM_API_HOST }/lk/Document/upload?${ payload.toString() }`; console.log({ path }); upload.single("file")(req, {}, err => diff --git a/pages/api/file/print-form.js b/pages/api/file/print-form.js index 0266398..69dde5d 100644 --- a/pages/api/file/print-form.js +++ b/pages/api/file/print-form.js @@ -9,43 +9,55 @@ export default async function handler(req, res) { await cors(req, res); - if(req.headers.cookie !== undefined) + return new Promise(async (resolve) => { - const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : ""); - - if(cookies.jwt !== undefined && cookies.jwt !== null) + if(req.headers.cookie !== undefined) { - var client_jwt_decoded = jwt.verify(cookies.jwt, process.env.JWT_SECRET_CLIENT); - var crm_jwt = jwt.sign(client_jwt_decoded, process.env.JWT_SECRET_CRM, { noTimestamp: true }); + const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : ""); - try + if(cookies.jwt !== undefined && cookies.jwt !== null) { - axios.get(`${ process.env.CRM_API_HOST }/lk/Contract/GetUPDPrintForm/`, { - params: { ...client_jwt_decoded, contract_number: req.query.contract, num: req.query.num, type: req.query.type, date: req.query.date }, - responseType: 'arraybuffer', - headers: { - "Authorization": `Bearer ${ crm_jwt }`, - } - }) - .then((crm_response) => + var client_jwt_decoded = jwt.verify(cookies.jwt, process.env.JWT_SECRET_CLIENT); + var crm_jwt = jwt.sign(client_jwt_decoded, process.env.JWT_SECRET_CRM, { noTimestamp: true }); + + try { - res.status(200).send(crm_response.data); - }) - .catch((error) => + axios.get(`${ process.env.CRM_API_HOST }/lk/Contract/GetUPDPrintForm/`, { + params: { ...client_jwt_decoded, contract_number: req.query.contract, num: req.query.num, type: req.query.type, date: req.query.date }, + responseType: 'arraybuffer', + headers: { + "Authorization": `Bearer ${ crm_jwt }`, + } + }) + .then((crm_response) => + { + res.status(200).send(crm_response.data); + resolve(); + }) + .catch((error) => + { + console.error(error); + res.status(500).send(); + resolve(); + }); + } + catch(e) { - console.error(error); - res.status(500); - }); + console.error(e); + res.status(500).send(); + resolve(); + } } - catch(e) + else { - console.error(e); - res.status(500); + res.status(403).send(); + resolve(); } } else { - res.status(403); + res.status(403).send(); + resolve(); } - } + }); } \ No newline at end of file diff --git a/pages/closing-acts.js b/pages/closing-acts.js index 2198ee2..1659529 100644 --- a/pages/closing-acts.js +++ b/pages/closing-acts.js @@ -59,7 +59,7 @@ export default function ClosingActsPage()

-
+

Договор diff --git a/pages/contract/agreement.js b/pages/contract/agreement.js index 435dbcf..0eb9e93 100644 --- a/pages/contract/agreement.js +++ b/pages/contract/agreement.js @@ -22,6 +22,7 @@ import { } from "../../actions"; import AccountLayout from "../components/Layout/Account"; import ContractHeader from "./components/ContractHeader"; +import EDOSign from "../../components/EDOSign"; class ContractPage extends React.Component { @@ -30,11 +31,13 @@ class ContractPage extends React.Component super(props); this.state = { - loading: false, + loading: false, contracts_info: {}, - unsigned: null, - signed: null, - rules: null, + unsigned: null, + signed: null, + rules: null, + edo_mode: false, + edo_document: {}, }; } @@ -93,6 +96,12 @@ class ContractPage extends React.Component .catch(() => {}); } + _handle_onEDOClick = (file) => + { + console.log({ file }); + this.setState({ edo_document: file, edo_mode: true }); + } + _renderDocuments = (documents, type) => { const types = { @@ -110,13 +119,16 @@ class ContractPage extends React.Component return (

-

+

{ types[ type ] } { file.number } от{" "}{ moment(file.date).format("DD.MM.YYYY") } { file.type !== undefined && ({ file.type }) }

+ {/**/} + this._handle_onEDOClick({ ...file, ...{ name: types[ type ] } }) }>Подписать по ЭДО + {/**/} - {/*} - Подписать по ЭДО - {*/}
); }); @@ -139,7 +148,7 @@ class ContractPage extends React.Component render() { const { number } = this.props; - const { loading, contracts_info, unsigned, signed, rules } = this.state; + const { loading, contracts_info, unsigned, signed, rules, edo_mode, edo_document } = this.state; let { date, car, status } = contracts_info[ number ] !== undefined ? contracts_info[ number ] : {}; @@ -173,49 +182,55 @@ class ContractPage extends React.Component
-
+
{ loading ? (
) : ( -
- { unsigned !== undefined && unsigned !== null && unsigned.documents !== undefined && unsigned.documents !== null && unsigned.count > 0 && ( - <> -

К подписанию

- { this._renderDocuments(unsigned.documents, "contracts") } - { this._renderDocuments(unsigned.documents, "agreements") } - { this._renderDocuments(unsigned.documents, "assignments") } - { this._renderDocuments(unsigned.documents, "redemptions") } - { this._renderDocuments(unsigned.documents, "act_pp") } - - ) } - { signed !== undefined && signed !== null && signed.documents !== undefined && signed.documents !== null && signed.count > 0 && ( - <> -

Действующие

- { this._renderDocuments(signed.documents, "contracts") } - { this._renderDocuments(signed.documents, "agreements") } - { this._renderDocuments(signed.documents, "assignments") } - { this._renderDocuments(signed.documents, "redemptions") } - { this._renderDocuments(signed.documents, "act_pp") } - - ) } - { rules !== undefined && rules !== null && rules.map((document, index) => ( -
-

- { document.name } - - Дата вступления в силу: { document.active_from } - -

- + <> + { edo_mode ? ( + this.setState({ edo_mode: false }) }/> + ) : ( +
+ { unsigned !== undefined && unsigned !== null && unsigned.documents !== undefined && unsigned.documents !== null && unsigned.count > 0 && ( + <> +

К подписанию

+ { this._renderDocuments(unsigned.documents, "contracts") } + { this._renderDocuments(unsigned.documents, "agreements") } + { this._renderDocuments(unsigned.documents, "assignments") } + { this._renderDocuments(unsigned.documents, "redemptions") } + { this._renderDocuments(unsigned.documents, "act_pp") } + + ) } + { signed !== undefined && signed !== null && signed.documents !== undefined && signed.documents !== null && signed.count > 0 && ( + <> +

Действующие

+ { this._renderDocuments(signed.documents, "contracts") } + { this._renderDocuments(signed.documents, "agreements") } + { this._renderDocuments(signed.documents, "assignments") } + { this._renderDocuments(signed.documents, "redemptions") } + { this._renderDocuments(signed.documents, "act_pp") } + + ) } + { rules !== undefined && rules !== null && rules.map((document, index) => ( +
+

+ { document.name } + + Дата вступления в силу: { document.active_from } + +

+ +
+ )) }
- )) } -
+ ) } + ) }
diff --git a/pages/contract/documents.js b/pages/contract/documents.js index 6c4c482..e60d18e 100644 --- a/pages/contract/documents.js +++ b/pages/contract/documents.js @@ -154,7 +154,7 @@ class ContractDocumentsPage extends React.Component

{TYPES[type]}

-
+
{ documents .slice(0, opened.indexOf(type) > -1 ? documents.length : 3) .map((doc, index) => @@ -174,10 +174,12 @@ class ContractDocumentsPage extends React.Component num={ doc.num } date={ doc.date } type={ doc.type } - contract_number={ number } - document_type={ doc.type } - document_name={ doc.num } - document_date={ doc.date } + log={{ + contract_number: number, + document_type: doc.type, + document_name: doc.num, + document_date: doc.date, + }} />
); diff --git a/pages/contract/fines.js b/pages/contract/fines.js index 9aa8c11..0bf85c2 100644 --- a/pages/contract/fines.js +++ b/pages/contract/fines.js @@ -172,7 +172,7 @@ class ContractFinesPage extends React.Component

{ fine.status_code !== "PaidIndependently" && ( -
+

diff --git a/pages/contract/gibdd.js b/pages/contract/gibdd.js index cf7361a..67fc9f0 100644 --- a/pages/contract/gibdd.js +++ b/pages/contract/gibdd.js @@ -153,7 +153,7 @@ class ContractServicesPage extends React.Component {
  • Дата: 01/01/2020
  • Штраф:{" "}п. 1.15 - Несоблюдение правил парковки
  • -
    +

    № 01/20/2020 (.PDF) diff --git a/pages/contract/materials.js b/pages/contract/materials.js index f872dc1..90c3013 100644 --- a/pages/contract/materials.js +++ b/pages/contract/materials.js @@ -95,7 +95,7 @@ class ContractPage extends React.Component

    ) : ( -
    +
    { materials !== undefined && materials !== null && materials.map((document, index ) => (

    diff --git a/pages/documents/finals.js b/pages/documents/finals.js index 2df21ba..3d0f538 100644 --- a/pages/documents/finals.js +++ b/pages/documents/finals.js @@ -112,7 +112,7 @@ class FinalsPage extends React.Component

    ) : ( -
    0 ? {} : { display: "flex", justifyContent: "center" }}> +
    0 ? {} : { display: "flex", justifyContent: "center" }}> { contracts !== undefined && contracts !== null && ( <> { contracts.length > 0 ? contracts.map((contract, index) => ( diff --git a/pages/documents/reconciliations.js b/pages/documents/reconciliations.js index 16a5a86..033c98d 100644 --- a/pages/documents/reconciliations.js +++ b/pages/documents/reconciliations.js @@ -248,7 +248,7 @@ class ReconciliationsPage extends React.Component <> { contracts !== undefined && contracts !== null && contracts.length > 0 ? ( <> -
    +

    diff --git a/pages/questionnaire/status.js b/pages/questionnaire/status.js index 85fe1fc..1a6deff 100644 --- a/pages/questionnaire/status.js +++ b/pages/questionnaire/status.js @@ -177,7 +177,7 @@ class QuestionnairePage extends React.Component {

    -
    +

    №1234567 от 21.01.2021 diff --git a/pages/support/appeals.js b/pages/support/appeals.js index 3237478..cb07a9d 100644 --- a/pages/support/appeals.js +++ b/pages/support/appeals.js @@ -162,7 +162,7 @@ class SupportAppealsPage extends React.Component ) } { appeal.documents.length > 0 && ( -

    +
    { appeal.documents.map((file, index) => { if(file.doc_direction !== "incoming") { return null; } @@ -187,7 +187,7 @@ class SupportAppealsPage extends React.Component

    ") }}>

    ) } { appeal.documents.length > 0 && ( -
    +
    { appeal.documents.map((file, index) => { if(file.doc_direction !== "outgoing") { return null; } return ( @@ -250,7 +250,7 @@ class SupportAppealsPage extends React.Component

    Текст ответа ОРК

    Текстовый контент

    -
    +

    №2021_1655 от 20.04.2021 diff --git a/pages/support/detail.js b/pages/support/detail.js index 2a406c7..ba1f7fd 100644 --- a/pages/support/detail.js +++ b/pages/support/detail.js @@ -90,7 +90,7 @@ class ContractPage extends React.Component

    Документы

    -
    +

    №2021_1655 от 20.04.2021 diff --git a/pages/support/index.js b/pages/support/index.js index 73b876b..9d5faf4 100644 --- a/pages/support/index.js +++ b/pages/support/index.js @@ -295,7 +295,7 @@ class SupportPage extends React.Component { question.templates !== null && (

    Шаблоны документов

    -
    +
    { question.templates.map((template, index) => ()) }
    diff --git a/pages/support/request.js b/pages/support/request.js index 5f8b683..a71e35b 100644 --- a/pages/support/request.js +++ b/pages/support/request.js @@ -458,7 +458,7 @@ class SupportRequestPage extends React.Component { procedure.templates !== null && (

    Документы

    -
    {/* medium-icon */} +
    {/* medium-icon */} { procedure.templates.map((template, index) => ()) }
    diff --git a/pages/transaction.js b/pages/transaction.js index 7cc49b1..1109d01 100644 --- a/pages/transaction.js +++ b/pages/transaction.js @@ -75,7 +75,7 @@ export default function TransactionPage()
    -
    +

    Дополнительное соглашение №1 diff --git a/store/index.js b/store/index.js index 3de312c..365e6b4 100644 --- a/store/index.js +++ b/store/index.js @@ -52,7 +52,7 @@ const makeStore = (context) => const persistConfig = { key: 'lkevoleasing', - whitelist: [ 'auth', 'user', 'company', 'events', 'companies', 'contracts_info', 'contract_events', 'contract_fines', 'questionnaire'], + whitelist: [ 'auth', 'user', 'company', 'events', 'companies', 'contracts_info', 'contract_events', 'contract_fines', 'questionnaire', 'edo' ], storage };