Advertisement
Guest User

Untitled

a guest
May 21st, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Promise.all([
  2.             Applicant.findOne({ _id: applicantId }).populate('data'),
  3.             QuestionnaireClientReport.findOne({
  4.                 questionnaire: Questionnaire.questionnaireCard
  5.             }),
  6.             QuestionnaireClient.findOne({
  7.                 _id: Questionnaire.questionnaireCard
  8.             }),
  9.             BusinessCardClient.find({
  10.                 _id: { $in: RDCArray }
  11.             }),
  12.             CustomerStates.find({
  13.                 _id: { $in: req.application.client.customerStates }
  14.             }),
  15.             LoanStates.find({
  16.                 _id: { $in: req.application.client.loanStates }
  17.             }),
  18.             ClientUser.findOne({
  19.                 _id: req.application._id
  20.             })
  21.         ]).then(async (data) => {
  22.             const currentCustomerStates = data[4];
  23.             const loanStates = data[5];
  24.             const currentUser = data[6];
  25.             RDCs = data[3];
  26.             if (data[2].get('reportStatus')) {
  27.                 Questionnaire.report = data[1] || {};
  28.                 if (Questionnaire.report.reports) {
  29.                     Questionnaire.report.reports.map(report => {
  30.                         setValues(report);
  31.                         // Reports.push(report);
  32.                     });
  33.                 }
  34.                 if (Questionnaire.report.reportGroups) {
  35.                     Questionnaire.report.reportGroups.map(group => {
  36.                         group.reports.map(report => {
  37.                             setValues(report);
  38.                         });
  39.                     });
  40.                 }
  41.             }
  42.             const applicant = data[0];
  43.  
  44.             const lastAction = {
  45.                 date: new Date(),
  46.                 questionnaire: Questionnaire.questionnaireCard
  47.             };
  48.  
  49.             if (!loanId && !applicantId && applicantOptions.idNumber) {
  50.                 const customerAlreadyInDb = await CustomerDA.checkCustomerIdNumber(applicantOptions.idNumber);
  51.                 if (customerAlreadyInDb) {
  52.                     return res._end(new ServiceError('Customer already exist', ServiceError.STATUS.CONFLICT, 'customer_exist'));
  53.                 }
  54.             }
  55.  
  56.             const notification = data[2].approval ? Questionnaire._id : [];
  57.  
  58.             const newApplicantData = applicant ? compareData(applicant.data[applicant.data.length - 1].data, reqData) : null;
  59.             const applicantDataResult = applicant ? await CustomerDA.createCustomerData(newApplicantData, Questionnaire.questionnaireCard, req.application._id) : await CustomerDA.createCustomerData(reqData, Questionnaire.questionnaireCard, req.application._id);
  60.  
  61.             // Check if need to create new Loan
  62.             if (loanId) {
  63.                 await CustomerDA.updateLoanById(loanId, lastAction, notification);
  64.                 await CustomerDA.attachNewDataToCustomer(applicantId, applicantDataResult._id, lastAction);
  65.                 Questionnaire.loan = loanId;
  66.                 Questionnaire.applicant = applicantId;
  67.             } else {
  68.                 const newLoan = await CustomerDA.createNewLoan(loanStates[0]._id, req.application._id, lastAction, notification);
  69.  
  70.                 // Check , if need to create new customer
  71.                 if (applicant) {
  72.                     await CustomerDA.updateCustomerFromQuestionnarie(applicantId, newLoan._id, applicantDataResult._id, lastAction);
  73.                     Questionnaire.applicant = applicantId;
  74.                 } else {
  75.                     Questionnaire.applicant = await CustomerDA.createNewCustomer({
  76.                         ...applicantOptions,
  77.                         client: req.application.client._id.toString(),
  78.                         status: currentCustomerStates[0]._id,
  79.                         createdBy: req.application._id,
  80.                         branch: req.application.branch,
  81.                         team: currentUser.assigned && currentUser.assigned.length ? [req.application._id].concat(currentUser.assigned.map(a => a.userId)) : [req.application._id],
  82.                         loans: [newLoan._id],
  83.                         lastAction: lastAction,
  84.                         inCharge: req.application._id,
  85.                         data: [applicantDataResult._id]
  86.                     });
  87.                 }
  88.                 Questionnaire.loan = newLoan._id;
  89.             }
  90.  
  91.             save(Questionnaire);
  92.         });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement