Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Promise.all([
- Applicant.findOne({ _id: applicantId }).populate('data'),
- QuestionnaireClientReport.findOne({
- questionnaire: Questionnaire.questionnaireCard
- }),
- QuestionnaireClient.findOne({
- _id: Questionnaire.questionnaireCard
- }),
- BusinessCardClient.find({
- _id: { $in: RDCArray }
- }),
- CustomerStates.find({
- _id: { $in: req.application.client.customerStates }
- }),
- LoanStates.find({
- _id: { $in: req.application.client.loanStates }
- }),
- ClientUser.findOne({
- _id: req.application._id
- })
- ]).then(async (data) => {
- const currentCustomerStates = data[4];
- const loanStates = data[5];
- const currentUser = data[6];
- RDCs = data[3];
- if (data[2].get('reportStatus')) {
- Questionnaire.report = data[1] || {};
- if (Questionnaire.report.reports) {
- Questionnaire.report.reports.map(report => {
- setValues(report);
- // Reports.push(report);
- });
- }
- if (Questionnaire.report.reportGroups) {
- Questionnaire.report.reportGroups.map(group => {
- group.reports.map(report => {
- setValues(report);
- });
- });
- }
- }
- const applicant = data[0];
- const lastAction = {
- date: new Date(),
- questionnaire: Questionnaire.questionnaireCard
- };
- if (!loanId && !applicantId && applicantOptions.idNumber) {
- const customerAlreadyInDb = await CustomerDA.checkCustomerIdNumber(applicantOptions.idNumber);
- if (customerAlreadyInDb) {
- return res._end(new ServiceError('Customer already exist', ServiceError.STATUS.CONFLICT, 'customer_exist'));
- }
- }
- const notification = data[2].approval ? Questionnaire._id : [];
- const newApplicantData = applicant ? compareData(applicant.data[applicant.data.length - 1].data, reqData) : null;
- const applicantDataResult = applicant ? await CustomerDA.createCustomerData(newApplicantData, Questionnaire.questionnaireCard, req.application._id) : await CustomerDA.createCustomerData(reqData, Questionnaire.questionnaireCard, req.application._id);
- // Check if need to create new Loan
- if (loanId) {
- await CustomerDA.updateLoanById(loanId, lastAction, notification);
- await CustomerDA.attachNewDataToCustomer(applicantId, applicantDataResult._id, lastAction);
- Questionnaire.loan = loanId;
- Questionnaire.applicant = applicantId;
- } else {
- const newLoan = await CustomerDA.createNewLoan(loanStates[0]._id, req.application._id, lastAction, notification);
- // Check , if need to create new customer
- if (applicant) {
- await CustomerDA.updateCustomerFromQuestionnarie(applicantId, newLoan._id, applicantDataResult._id, lastAction);
- Questionnaire.applicant = applicantId;
- } else {
- Questionnaire.applicant = await CustomerDA.createNewCustomer({
- ...applicantOptions,
- client: req.application.client._id.toString(),
- status: currentCustomerStates[0]._id,
- createdBy: req.application._id,
- branch: req.application.branch,
- team: currentUser.assigned && currentUser.assigned.length ? [req.application._id].concat(currentUser.assigned.map(a => a.userId)) : [req.application._id],
- loans: [newLoan._id],
- lastAction: lastAction,
- inCharge: req.application._id,
- data: [applicantDataResult._id]
- });
- }
- Questionnaire.loan = newLoan._id;
- }
- save(Questionnaire);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement