deal DocumentForm questionnaire creation
This commit is contained in:
parent
4f0ac0464e
commit
c21f912ce7
@ -9,6 +9,7 @@ import { eachSeries, each } from "async";
|
||||
import * as actionTypes from '../constants/actionTypes';
|
||||
import { getCitizenshipTitleByCode } from '../utils/citizenship';
|
||||
import { questionnaire_template } from '../reducers/initialState';
|
||||
import { getCompanyInfo } from './companyActions';
|
||||
|
||||
if(process.browser)
|
||||
{
|
||||
@ -26,11 +27,28 @@ if(process.browser)
|
||||
};
|
||||
}
|
||||
|
||||
export const createQuestionnaire = (deal_id) =>
|
||||
{
|
||||
return new Promise((resolve, reject) =>
|
||||
{
|
||||
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/create`, { deal_id }, {
|
||||
withCredentials: true,
|
||||
})
|
||||
.then(() => {}).catch(() => {}).finally(() =>
|
||||
{
|
||||
getCompanyInfo({ dispatch: global.store.dispatch })
|
||||
.then(() => {}).catch(() => {}).finally(() =>
|
||||
{
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export const getQuestionnaire = ({ dispatch, id }) =>
|
||||
{
|
||||
//console.log("ACTION", "support", "getAppeals()", `${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/get`);
|
||||
|
||||
|
||||
return new Promise((resolve, reject) =>
|
||||
{
|
||||
axios.get(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/questionnaire/read`, {})
|
||||
|
||||
@ -4,11 +4,96 @@ import { SpinnerCircular } from "spinners-react";
|
||||
|
||||
import FileDropzoneDeals from "../../FileDropzoneDeals";
|
||||
|
||||
import { attachDealDocument, removeDealDocument, sendDealDocuments, } from "../../../actions";
|
||||
import { attachDealDocument, createQuestionnaire, removeDealDocument, sendDealDocuments, } from "../../../actions";
|
||||
|
||||
import Step from "./Step";
|
||||
import md5 from "md5";
|
||||
|
||||
class QuestionnaireForm extends React.Component
|
||||
{
|
||||
constructor(props)
|
||||
{
|
||||
super(props);
|
||||
this.state = {
|
||||
loading: false
|
||||
}
|
||||
}
|
||||
|
||||
_handle_onQuestionnaire = (event) =>
|
||||
{
|
||||
event.preventDefault();
|
||||
const { onQuestionnaire } = this.props;
|
||||
|
||||
onQuestionnaire();
|
||||
}
|
||||
|
||||
_handle_onCreateQuestionnaire = (event) =>
|
||||
{
|
||||
event.preventDefault();
|
||||
const { onQuestionnaire, deal_id } = this.props;
|
||||
|
||||
this.setState({ loading: true, }, () =>
|
||||
{
|
||||
createQuestionnaire(deal_id)
|
||||
.then(() =>
|
||||
{
|
||||
onQuestionnaire();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
const { loading } = this.state;
|
||||
const { questionnaire_status } = this.props;
|
||||
|
||||
switch(questionnaire_status)
|
||||
{
|
||||
case "need_to_fill":
|
||||
{
|
||||
return (
|
||||
<div className="message alert">
|
||||
<p>Требуется обновить данные в анкете</p>
|
||||
<button className="button button-blue" onClick={ this._handle_onQuestionnaire }>Актуализировать данные</button>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
case "need_to_create":
|
||||
{
|
||||
return (
|
||||
<div className="message alert">
|
||||
<p>Требуется предоставить данные в анкете клиента</p>
|
||||
<button className="button button-blue" style={{ minWidth: "130px" }} onClick={ this._handle_onCreateQuestionnaire }>
|
||||
{ loading ? (
|
||||
<SpinnerCircular size={24} thickness={100} speed={100} color="rgba(255, 255, 255, 1)" secondaryColor="rgba(255, 255, 255, 0.5)" style={{ marginTop: "0px" }}/>
|
||||
) :
|
||||
"Создать анкету"
|
||||
}
|
||||
</button>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
case "up_to_date":
|
||||
{
|
||||
<div className="message ok">
|
||||
<p>Вам не требуется актуализация данных анкеты Клиента</p>
|
||||
</div>
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return (
|
||||
<div className="message wait">
|
||||
<p>Проводится проверка анкеты Вашей организации</p>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default class DocumentsForm extends Step
|
||||
{
|
||||
constructor(props)
|
||||
@ -20,6 +105,7 @@ export default class DocumentsForm extends Step
|
||||
uploading: false,
|
||||
completed: false,
|
||||
loading: true,
|
||||
questionnaire_loading: false,
|
||||
};
|
||||
this.status = 102;
|
||||
}
|
||||
@ -176,20 +262,14 @@ export default class DocumentsForm extends Step
|
||||
});
|
||||
}
|
||||
|
||||
_handle_onQuestionnaire = (event) =>
|
||||
{
|
||||
const { onQuestionnaire } = this.props;
|
||||
|
||||
event.preventDefault();
|
||||
onQuestionnaire();
|
||||
}
|
||||
|
||||
_checkFilesCompleted = () =>
|
||||
{
|
||||
const { uploaded } = this.state;
|
||||
const { documents } = this.props;
|
||||
const { documents, questionnaire_status, } = this.props;
|
||||
|
||||
let c = true;
|
||||
if(questionnaire_status !== "need_to_fill" && questionnaire_status !== "need_to_create")
|
||||
{
|
||||
if(documents !== undefined)
|
||||
{
|
||||
for(let g in documents)
|
||||
@ -219,6 +299,7 @@ export default class DocumentsForm extends Step
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
c = false;
|
||||
@ -229,7 +310,7 @@ export default class DocumentsForm extends Step
|
||||
|
||||
render()
|
||||
{
|
||||
const { index, statuscode_id, dealSelected, documents, questionnaire_status, } = this.props;
|
||||
const { index, statuscode_id, dealSelected, documents, questionnaire_status, onQuestionnaire, } = this.props;
|
||||
const { open, uploaded, uploading, loading, completed } = this.state;
|
||||
|
||||
return (
|
||||
@ -250,24 +331,11 @@ export default class DocumentsForm extends Step
|
||||
<p><b>Анкета клиента:</b></p>
|
||||
</div>
|
||||
<div className="right">
|
||||
{ questionnaire_status === "need_to_fill" ? (
|
||||
<div className="message alert">
|
||||
<p>Требуется обновить данные в анкете</p>
|
||||
<button className="button button-blue" onClick={ this._handle_onQuestionnaire }>Актуализировать данные</button>
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
{ questionnaire_status !== "up_to_date" ? (
|
||||
<div className="message wait">
|
||||
<p>Проводится проверка анкеты Вашей организации</p>
|
||||
</div>
|
||||
) : (
|
||||
<div className="message ok">
|
||||
<p>Вам не требуется актуализация данных анкеты Клиента</p>
|
||||
</div>
|
||||
) }
|
||||
</>
|
||||
) }
|
||||
<QuestionnaireForm
|
||||
questionnaire_status={ questionnaire_status }
|
||||
onQuestionnaire={ onQuestionnaire }
|
||||
deal_id={ dealSelected }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
{ documents === undefined ? (
|
||||
|
||||
@ -34,6 +34,7 @@ export default async function handler(req, res)
|
||||
})
|
||||
.then((crm_response) =>
|
||||
{
|
||||
console.log("/Account/GetCompanyInfo/", "RESPONSE", { data: crm_response.data });
|
||||
res.status(200).json({ ...crm_response.data, ...{ active: client_jwt_decoded.acc_number } });
|
||||
})
|
||||
.catch((error) =>
|
||||
|
||||
20
pages/api/questionnaire/create.js
Normal file
20
pages/api/questionnaire/create.js
Normal file
@ -0,0 +1,20 @@
|
||||
import CRMRequestPost from '../../../lib/CRMRequestPost';
|
||||
|
||||
export default async function handler(req, res)
|
||||
{
|
||||
console.log("\n\n", "API", "/questionnaire/create");
|
||||
const { deal_id } = req.body;
|
||||
|
||||
const payload = {
|
||||
opp_number: deal_id,
|
||||
};
|
||||
|
||||
console.log({ payload });
|
||||
|
||||
await CRMRequestPost({ req, res,
|
||||
path: `${ process.env.CRM_API_HOST }/lk/Questionnaire/Create`,
|
||||
params: payload,
|
||||
headers: { "Content-Type": "application/json" },
|
||||
log: true,
|
||||
});
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user