const { raw } = require('body-parser'); const { sequelize , LoanDetail , EntityDetails , ApplicantsDetails , ApplicantsRelationship , ResidenceAddressDetails , PropertyOwnershipIncomeConsidered , DueDiligenceCheck , TradeReferences , CheckTypeMaster , EnquiriesAndDisbursements , PropertyAndLtv , ATNWrelatedInputs , SalesPD , ATNWrelatedInputMaster ,ATNWrelationship , OtherParameterMaster ,OtherParameterMasterValue , OtherParameterRelationship , OtherParameters , ATNErelatedInputSubVal , DataFromLos , FormulaMaster , LoanAndLtvMaster , EntityApplicantMaster } = require('../models') const { logMsg } = require('../services/logger.js'); //create EntityDetails , DueDiligenceCheck And ATNWrelatedInputs API exports.createEntityDetails = async (req, res) => { try { EntityDetails.create(req.body).then(async(data) => { CheckTypeMaster.findAll({raw: true , where : {is_active : 1}}).then(async(CheckTypeMasterData) => { entityid = data.dataValues.id; DueDiligenceCheckData = []; for (const value of CheckTypeMasterData) { check_type_obj = {entity_id:entityid , check_type_id:value.id , check_type:value.value}; DueDiligenceCheckData.push(check_type_obj); } setTimeout(() => { DueDiligenceCheck.bulkCreate(DueDiligenceCheckData) .then(DueDiligenceCheckData =>{ logMsg.info("DueDiligenceCheck Data Creation Success for EntityId= "+entityid); }) .catch(err =>{ logMsg.info("DueDiligenceCheck Data Creation Failed for EntityId= "+entityid+" Error= "+err); }); }, 500); }) .catch(err => { logMsg.info("DueDiligenceCheckType Data Fetching Failed for EntityId= "+entityid+" Error= "+err); }); // ATNWrelatedInput data create ATNWrelatedInputMaster.findAll({raw: true , where : {is_active : 1}}).then(async(ATNWrelatedInputMasterData) => { entityid = data.dataValues.id; ATNWrelatedInputMasterData_arr = []; ATNWrelatedInputMasterData_arr_val = []; for (const value of ATNWrelatedInputMasterData) { if ( value.id == 9 || value.id == 10 ) { atnw_master_value_data = { atnw_related_input :value.master_name }; ATNWrelatedInputMasterData_arr_val.push(atnw_master_value_data); } else { atnw_master_data = {entity_id:entityid , atnw_related_input_id:value.id , atnw_related_input:value.master_name}; ATNWrelatedInputMasterData_arr.push(atnw_master_data); } } setTimeout(() => { ATNWrelatedInputs.bulkCreate(ATNWrelatedInputMasterData_arr) .then(ATNWrelatedInputMasterData_arr => { ATNWrelatedInputMasterData_arr.forEach( async (atnw_element) => { if (atnw_element.atnw_related_input_id == 8) { ATNWrelatedInputMasterData_arr_val.forEach( async (atnw_related_input_id_element) => { Object.assign( atnw_related_input_id_element, { master_id : atnw_element.id }); ATNErelatedInputSubVal.create(atnw_related_input_id_element).then(data => { logMsg.info("ATNWrelatedInputs_subValue Data Creation Success for EntityId= "+entityid); }) }); } }); logMsg.info("ATNWrelatedInputs Data Creation Success for EntityId= "+entityid); }) .catch(err =>{ logMsg.info("ATNWrelatedInputs Data Creation Failed for EntityId= "+entityid+" Error= "+err); }); }, 500); }) .catch(err => { logMsg.info("ATNWrelatedInputs Data Fetching Failed for EntityId= "+entityid+" Error= "+err); }); // delete from atnw_related_inputs where entity_id = 2 // otherParameter data create OtherParameterMaster.findAll({raw: true , where : {is_active : 1}}).then(async(OtherParameterMasterData) => { entityid = data.dataValues.id; OtherParameterMasterData_arr = []; for (const value of OtherParameterMasterData) { op_master_data = {entity_id:entityid , op_master_id:value.id , master_name:value.master_name}; OtherParameterMasterData_arr.push(op_master_data); } setTimeout(() => { OtherParameters.bulkCreate(OtherParameterMasterData_arr) .then(OtherParameterMasterData_arr =>{ logMsg.info("otherParameter Data Creation Success for EntityId= "+entityid); }) .catch(err =>{ logMsg.info("otherParameter Data Creation Failed for EntityId= "+entityid+" Error= "+err); }); }, 500); }) .catch(err => { logMsg.info("otherParameter Data Fetching Failed for EntityId= "+entityid+" Error= "+err); }); setTimeout(() => { res.send({'status':200,'message':"success",'data':data}); }, 1000); logMsg.info("Entity created successfully"); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update Entity Details Api exports.updateEntityDetails = async (req, res) => { try { id = req.body.id; delete req.body.id; // update check value EntityDetails.update(req.body,{ where: { id: id }}).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //create Applicant Details with ResidenceAddress & ApplicantRelationship & PropertyOwnership Details (or) Applicant Details with PropertyOwnership Details exports.createApplicantDetails = async (req, res) => { try { ApplicantsRelationshipData = req.body.applicant_relationship; ResidenceAddressDetailsData = req.body.residence_address; PropertyOwnershipIncomeConsideredData = req.body.property_ownership_income_considered; delete req.body.applicant_relationship delete req.body.residence_address delete req.body.property_ownership_income_considered ; await ApplicantsDetails.create(req.body).then(async (data) => { if(req.body.entity_type == "Individual") { ApplicantsRelationshipData = Object.assign(ApplicantsRelationshipData, {loan_no_id: req.body.loan_no_id}); ApplicantsRelationshipData = Object.assign(ApplicantsRelationshipData, {losid: req.body.losid}); ApplicantsRelationshipData = Object.assign(ApplicantsRelationshipData, {applicant_id: data.dataValues.id}); await ApplicantsRelationship.create(ApplicantsRelationshipData) .then(data=>{logMsg.info("ApplicantsRelationship inserted");}).catch(err=>{logMsg.info("ApplicantsRelationship Failed , Msg :" +err);}); ResidenceAddressDetailsData = Object.assign(ResidenceAddressDetailsData, {loan_no_id: req.body.loan_no_id}); ResidenceAddressDetailsData = Object.assign(ResidenceAddressDetailsData, {losid: req.body.losid}); ResidenceAddressDetailsData = Object.assign(ResidenceAddressDetailsData, {applicant_id: data.dataValues.id}); await ResidenceAddressDetails.create(ResidenceAddressDetailsData) .then(data=>{logMsg.info("ResidenceAddressDetails inserted");}).catch(err=>{logMsg.info("ResidenceAddressDetails Failed , Msg :" +err);}); if (req.body.product == "LFMP") { PropertyOwnershipIncomeConsideredData = Object.assign(PropertyOwnershipIncomeConsideredData, {loan_no_id: req.body.loan_no_id}); PropertyOwnershipIncomeConsideredData = Object.assign(PropertyOwnershipIncomeConsideredData, {losid: req.body.losid}); PropertyOwnershipIncomeConsideredData = Object.assign(PropertyOwnershipIncomeConsideredData, {applicant_id: data.dataValues.id}); await PropertyOwnershipIncomeConsidered.create(PropertyOwnershipIncomeConsideredData) .then(data=>{logMsg.info("PropertyOwnershipIncomeConsidered inserted");}).catch(err=>{logMsg.info("PropertyOwnershipIncomeConsidered Failed , Msg :" +err);}); } } else { if (req.body.product == "LFMP") { PropertyOwnershipIncomeConsideredData = Object.assign(PropertyOwnershipIncomeConsideredData, {loan_no_id: req.body.loan_no_id}); PropertyOwnershipIncomeConsideredData = Object.assign(PropertyOwnershipIncomeConsideredData, {losid: req.body.losid}); PropertyOwnershipIncomeConsideredData = Object.assign(PropertyOwnershipIncomeConsideredData, {applicant_id: data.dataValues.id}); await PropertyOwnershipIncomeConsidered.create(PropertyOwnershipIncomeConsideredData) .then(data=>{logMsg.info("PropertyOwnershipIncomeConsidered inserted");}).catch(err=>{logMsg.info("PropertyOwnershipIncomeConsidered Failed , Msg :" +err);}); } } // send response here res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update ApplicantDetails exports.updateApplicantDetails = async (req, res) => { try { id = req.body.id; delete req.body.id; ApplicantsDetails.findOne({raw: true , where: { id: id }}).then(async (ApplicantsDetailsData) => { if(ApplicantsDetailsData.name != req.body.name) { ApplicantsDetails.update(req.body,{ where: { id: id }}).then(async(data) => { await ApplicantsRelationship.update({name_of_the_individual:req.body.name},{ where: { applicant_id: id , is_active : 1}}) .then(data=>{logMsg.info("ApplicantsRelationship name updated");}).catch(err=>{logMsg.info("ApplicantsRelationship name update Failed , Msg :" +err);}); await ResidenceAddressDetails.update({name_of_the_individual:req.body.name},{ where: { applicant_id: id , is_active : 1}}) .then(data=>{logMsg.info("ResidenceAddressDetails name updated");}).catch(err=>{logMsg.info("ResidenceAddressDetails name update Failed , Msg :" +err);}); await PropertyOwnershipIncomeConsidered.update({name_of_the_loan_applicants:req.body.name,applicant_type:req.body.applicant_type},{ where: { applicant_id: id , is_active : 1}}) .then(data=>{logMsg.info("PropertyOwnershipIncomeConsidered name updated");}).catch(err=>{logMsg.info("PropertyOwnershipIncomeConsidered name update Failed , Msg :" +err);}); res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } else if (ApplicantsDetailsData.applicant_type != req.body.applicant_type) { ApplicantsDetails.update(req.body,{ where: { id: id }}).then(async(data) => { await PropertyOwnershipIncomeConsidered.update({applicant_type:req.body.applicant_type},{ where: { applicant_id: id , is_active : 1}}) .then(data=>{logMsg.info("PropertyOwnershipIncomeConsidered applicant_type updated");}).catch(err=>{logMsg.info("PropertyOwnershipIncomeConsidered applicant_type update Failed , Msg :" +err);}); res.send({'status':200,'message':"success",'data':data}); }).catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } else { ApplicantsDetails.update(req.body,{ where: { id: id }}).then(async(data) => { res.send({'status':200,'message':"success",'data':data}); }).catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update ApplicantsRelationship Api (Deactivate old value create new record) exports.updateApplicantsRelationship = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; // update old value is_active = 0 where requested id await ApplicantsRelationship.update({ updatedby : updatedby ,is_active : 0 },{ where: { id: id }}); // create new entry ApplicantsRelationship.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch } //update ResidenceAddressDetails Api (Deactivate old value create new record) exports.updateResidenceAddressDetails = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; // update old value is_active = 0 where requested id await ResidenceAddressDetails.update({ updatedby : updatedby ,is_active : 0 },{ where: { id: id }}); // create new entry ResidenceAddressDetails.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch } //update PropertyOwnership and IncomeConsidered data Api (Deactivate old value create new record) exports.updatePropertyOwnershipIncomeConsidered = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; // update old value is_active = 0 where requested id await PropertyOwnershipIncomeConsidered.update({ updatedby : updatedby ,is_active : 0 },{ where: { id: id }}); // create new entry PropertyOwnershipIncomeConsidered.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch } //create TradeReferencesDetails Api exports.createTradeReferencesDetails = async (req, res) => { try { TradeReferences.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update TradeReferencesDetails Api (Deactivate old value create new record) exports.updateTradeReferencesDetails = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; // update old value is_active = 0 where requested id await TradeReferences.update({ updatedby : updatedby ,is_active : 0 },{ where: { id: id }}); // create new entry TradeReferences.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update DueDiligenceCheck Api exports.updateDueDiligenceCheck = async (req, res) => { try { req.body.forEach( async (element , index ) => { id = element.id; delete element.id; // update value DueDiligenceCheck.update(element,{ where: { id: id }}).then(data => { if (index == [req.body].length -1) { res.send({'status':200,'message':"success",'data':data}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //create EnquiriesAndDisbursements Api exports.createEnquiriesAndDisbursementsDetails = async (req, res) => { try { EnquiriesAndDisbursements.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while inserting." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting ." ,'data': "No data" }); } //end of try catch }; //update EnquiriesAndDisbursements Api (Deactivate old value create new record) exports.updateEnquiriesAndDisbursementsDetails = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; // update old value is_active = 0 where requested id await EnquiriesAndDisbursements.update({ updatedby : updatedby ,is_active : 0 },{ where: { id: id }}); // create new entry EnquiriesAndDisbursements.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while updating ." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating ." ,'data': "No data" }); } //end of try catch }; //landingPageApi(All Loan detail list ) List Api exports.landingPageApi = async (req, res) => { try { LoanDetail.findAll({raw: true , where : { is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //EntityDetails List Api exports.EntityDetailsList = async (req, res) => { try { EntityDetails.findAll({raw: true ,where:{losid : req.query.losid , loan_no_id : req.query.loan_no_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //ApplicantDetails List Api exports.ApplicantDetailsList = async (req, res) => { try { ApplicantsDetails.findAll({raw: true , where:{losid : req.query.losid ,loan_no_id : req.query.loan_no_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //ApplicantRelationship List Api exports.ApplicantRelationshipList = async (req, res) => { try { ApplicantsRelationship.findAll({raw: true , where:{losid : req.query.losid , loan_no_id : req.query.loan_no_id , is_active : 1 }}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //ResidenceAddressDetails List Api exports.ResidenceAddressDetailsList = async (req, res) => { try { ResidenceAddressDetails.findAll({raw: true , where:{losid : req.query.losid , loan_no_id : req.query.loan_no_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //PropertyOwnership List Api exports.PropertyOwnershipList = async (req, res) => { try { PropertyOwnershipIncomeConsidered.findAll({raw: true , where:{losid : req.query.losid , loan_no_id : req.query.loan_no_id , is_active : 1 }}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //DueDiligenceCheck List Api exports.DueDiligenceCheckList = async (req, res) => { try { DueDiligenceCheck.findAll({raw: true , where : {entity_id : req.query.entity_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //TradeReferences List Api exports.TradeReferencesList = async (req, res) => { try { TradeReferences.findAll({raw: true , where : {entity_id : req.query.entity_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //EnquiriesAndDisbursements List Api exports.EnquiriesAndDisbursementsList = async (req, res) => { try { EnquiriesAndDisbursements.findAll({raw: true , where : {entity_id : req.query.entity_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; // Entity and Applicant Name List Api for banking module (not for this module use) exports.EntityApplicantNameList = async (req, res) => { try { sequelize.query("select losid, entity_name as ac_in_name_of from entity_details where losid = '"+req.query.losid+"' and is_active = 1 union select losid, name as ac_in_name_of from applicants where losid = '"+req.query.losid+"' and is_active = 1") .then(async(data)=>{ res.send({'status':200,'message':"success",'data':data}); }).catch(err=>{res.send({'status':404,message: err.message || "Some error occurred while fetching." ,'data': "No data" })}); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while fetching." ,'data': "No data" }); } //end of try catch }; //update updateATNWrelatedInputs Api exports.updateATNWrelatedInputs = async (req, res) => { try { // update value req.body.forEach( async (element , index ) => { const update_subValue_data = element.subValue; delete element.subValue; id = element.id; delete element.id; ATNWrelatedInputs.update(element,{ where: { id: id }}).then(data => { if (element.atnw_related_input_id == 8) { update_subValue_data.forEach( async (update_subValue_data_element , index ) => { id = update_subValue_data_element.id; delete update_subValue_data_element.id; ATNErelatedInputSubVal.update(update_subValue_data_element,{ where: { id: id }}).then(data => { if (update_subValue_data.length - 1 == index) { res.send({'status':200,'message':"success",'data':data}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); }); } // else if( req.body.length - 1 == index ) // { // res.send({'status':200,'message':"success",'data':data}); // } logMsg.info("ATNWrelatedInputs Data Update Success "+data); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //this api for SalesPd module (not for this module use) exports.MainApplicantDetailsList = async (req, res) => { try { ApplicantsDetails.findOne({raw: true , where:{losid : req.query.losid ,applicant_type : "Main Applicant" , is_active : 1}}).then(data => { if(data) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //create Property & LTV Details Api exports.createPropertyAndLtv = async (req, res) => { try { PropertyAndLtv.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update Property & LTV Details Api exports.updatePropertyAndLtv = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; PropertyAndLtv.update(req.body,{ where: { id: id }}) .then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch } //Property & LTV Details List Api exports.PropertyAndLtvList = async (req, res) => { try { PropertyAndLtv.findAll({ where : { losid : req.query.losid , is_active : 1}, include : [{ model : LoanDetail}], }).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //delete Property & LTV Details Api exports.deletePropertyAndLtv = async (req, res) => { try { PropertyAndLtv.update({is_active:0},{ where: { id: req.query.id }}) .then(data => { res.send({'status':200,'message':"success",'data':"No data"}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch } //create LoanDetail Api exports.createLoanDetail = async (req, res) => { try { LoanDetail.create(req.body).then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update LoanDetail Api exports.updateLoanDetail = async (req, res) => { try { id = req.body.id; updatedby = req.body.updatedby; delete req.body.id; delete req.body.updatedby; await LoanDetail.update(req.body,{ where: { id: id }}).then(data=>{ res.send({'status':200,'message':"success",'data':data}) }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch } //ATNWrelatedInputsList List Api exports.ATNWrelatedInputsList = async (req, res) => { try { ATNWrelatedInputs.findAll( { where : {entity_id : req.query.entity_id , is_active : 1}, include : [{ model: ATNErelatedInputSubVal }] }).then(data => { if(data.length > 0) { Object.assign(data[7].ATNErelatedInputSubVals[0].dataValues ,{ 'market_valuation_rs' : data[7].ATNErelatedInputSubVals[0].atnw_related_input_value }); Object.assign(data[7].ATNErelatedInputSubVals[1].dataValues,{ 'gross_book_value_rs' : data[7].ATNErelatedInputSubVals[1].atnw_related_input_value }); res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //update OtherParameter Api exports.updateOtherParameters = async (req, res) => { try { req.body.forEach( async (element,index) => { id = element.id; delete element.id; // update value OtherParameters.update(element,{ where: { id: id }}).then(data => { if ([req.body].length - 1 == index) { res.send({'status':200,'message':"success",'data':data}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //OtherParameters List Api exports.OtherParametersList = async (req, res) => { try { OtherParameters.findAll({raw: true , where : {entity_id : req.query.entity_id , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; //LoanDeatilList List Api exports.LoanDeatilList = async (req, res) => { try { LoanDetail.findAll({raw: true , where : { losid : req.query.losid , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; // Pan List Api For Cibil exports.ApplicantPanList = async (req, res) => { try { LoanDetail.findAll({ where : { losid : req.query.losid , is_active : 1}}).then(data => { sequelize.query(`SELECT loan_details.losid , applicants.pan_no AS PAN , applicants.entity_type FROM loan_details JOIN applicants ON applicants.loan_no_id = '${data[0].id}' and applicants.is_active = 1 where loan_details.id = '${data[0].id}' and loan_details.is_active = 1; \ SELECT loan_details.losid , entity_details.pan_no As PAN , entity_details.entity_type FROM loan_details JOIN entity_details ON entity_details.loan_no_id = '${data[0].id}' and entity_details.is_active = 1 where loan_details.id = '${data[0].id}' and loan_details.is_active = 1`) .then(data=> { res.send({'status':200,'message':"success",'data':data}); }) .catch(err=>{ res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" })}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; // Data from api List Api exports.DataFromLos = async (req, res) => { try { DataFromLos.findAll({raw: true , where : { is_editable : 0 , is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; // Formula Master List Api exports.FormulaMasterList = async (req, res) => { try { FormulaMaster.findAll({raw: true , where : { is_active : 1}}).then(data => { if(data.length > 0) { res.send({'status':200,'message':"success",'data':data}); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; // Master List Api exports.MainAppMasterDataList = async (req, res) => { try { FormulaMasterData = await FormulaMaster.findAll({ where : { is_active : 1}}); EntityApplicantMasterData = await EntityApplicantMaster.findAll({ where : { is_active : 1}}); LoanAndLtvMasterData = await LoanAndLtvMaster.findAll({ where : { is_active : 1}}); if(FormulaMasterData.length > 0 || EntityApplicantMasterData.length > 0 || LoanAndLtvMasterData.length > 0 ) { data = { 'FormulaMasterData': FormulaMasterData ,'EntityApplicantMasterData': EntityApplicantMasterData ,'LoanAndLtvMasterData': LoanAndLtvMasterData } res.send({'status':200,'message':"success", "data" : data }); } else { res.send({'status':404,'message':"failed",'data':"No data"}); } } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; // delete trade reference api exports.DeleteTradeReference = async (req, res) => { try { TradeReferences.destroy({ where: { id : req.query.id , is_active : 1 }}) .then(data => { res.send({'status':200,'message':"success",'data': data}); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while create entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while fetching." ,'data': "No data" }); } //end of try catch }; // test api exports.test = async (req, res) => { try { } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while fetching." ,'data': "No data" }); } //end of try catch }; // exports.queryConstruct = async (req, res) => { // try // { // data = []; // let Queryvalues = "CREATE TABLE com_borrower_profile "; // data.forEach((result, index, array) => { // Object.keys(result).forEach((key) => { // if(index == 0) // { // if(result[key] == 'float') // { Datatype = "numeric(25,0) NULL"; Queryvalues += "("+key +" "+Datatype+","; } // else if(result[key] == 'NoneType') // { Datatype = "nvarchar(255) NULL"; Queryvalues += "("+key +" "+Datatype+","; } // else if(result[key] == 'str') // { Datatype = "nvarchar(255) NULL"; Queryvalues += "("+key +" "+Datatype+","; } // else if(result[key] == 'datetime') // { Datatype = "datetime NULL"; Queryvalues += "("+key +" "+Datatype+","; } // else if(result[key] == 'int') // { Datatype = "int NULL"; Queryvalues += "("+key +" "+Datatype+","; } // } // else if (array.length == index + 1 ) // { // if(result[key] == 'float') // { Datatype = "numeric(25,0) NULL"; Queryvalues += key +" "+Datatype+", ";} // else if(result[key] == 'NoneType') // { Datatype = "nvarchar(255) NULL"; Queryvalues += key +" "+Datatype+", ";} // else if(result[key] == 'str') // { Datatype = "nvarchar(255) NULL"; Queryvalues += key +" "+Datatype+", "; } // else if(result[key] == 'datetime') // { Datatype = "datetime NULL"; Queryvalues += key +" "+Datatype+", "; } // else if(result[key] == 'int') // { Datatype = "int NULL"; Queryvalues += key +" "+Datatype+")"; } // } // else // { // if(result[key] == 'float') // { Datatype = "numeric(25,0) NULL"; Queryvalues += key +" "+Datatype+","; } // else if(result[key] == 'NoneType') // { Datatype = "nvarchar(255) NULL"; Queryvalues += key +" "+Datatype+","; } // else if(result[key] == 'str') // { Datatype = "nvarchar(255) NULL"; Queryvalues += key +" "+Datatype+","; } // else if(result[key] == 'datetime') // { Datatype = "datetime NULL"; Queryvalues += key +" "+Datatype+","; } // else if(result[key] == 'int') // { Datatype = "int NULL"; Queryvalues += key +" "+Datatype+","; } // } // }) // }) // setTimeout(() => { // Queryvalues += "createdby int NULL , createdAt datetimeoffset(7) NULL , updatedby int NULL , updatedAt datetimeoffset(7) NULL )" // console.log(Queryvalues); // }, 7000); // }catch(err) { // res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data"}); // } // }; // exports.insertQueryConstruct = async (req, res) => { // try // { // ColumnNameData = [{"PhoneDetailsID": "float"}, {"MemberReferenceNumber": "float"}, {"TelephoneNumber": "float"}, {"TelephoneExtension": "NoneType"}, {"TelephoneType": "str"}, {"EnrichedThroughEnquiry": "str"}]; // QueryColumn = "INSERT INTO table_name "; // ColumnNameData.forEach((result, index, array) => { // Object.keys(result).forEach((key) => { // if(index == 0) { QueryColumn += "( "+key; } // else if (array.length == index + 1 ) { QueryColumn += ", "+key+" )"; } // else { QueryColumn += ", "+key; } // }) // }) // data = []; // let Queryvalues = ""; // data.forEach((result, index, array) => { // Object.keys(result).forEach((key , index , array ) => { // if(index == 0) { // if (typeof result[key] === 'string' ) { Queryvalues += "('"+result[key]+"',"; } else { Queryvalues += "("+result[key]+","; } // } // else if (array.length == index + 1 ) { // if (typeof result[key] === 'string' ) { Queryvalues += "'"+result[key]+"'),"; } else { Queryvalues += result[key]+"),"; } // } // else { // if (typeof result[key] === 'string' ) { Queryvalues += "'"+result[key]+"',"; } else { Queryvalues += result[key]+","; } // } // }) // }) // setTimeout(() => { // Queryvalues = Queryvalues.slice(0, -1); // console.log(QueryColumn +" VALUES "+ Queryvalues); // }, 7000); // }catch(err) { res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data"}); } // };