const { sequelize, AdjustableTang , PolicyParameterMaster , Authorization ,DoubleWhammy,DscrLeverageGrid,LeverageUsedForEligCat,ProgramMaster,CheckTypeMaster,PropertyTypeMaster,BusinessActivityMaster} = require('../models') const {BankingNorms,BankingNorms2,CreditBureauNorms,DeviationNorms,DeviationNorms2,DeviationNorms3,DeviationNorms4,DeviationNorms5,DeviationNorms6,DeviationNorms7,FinancialsNorms,LoanEligibilityNorms,LoanEligibilityNorms2,LoanEligibilityNorms3,LoanEligibilityNorms4,PropertyNorms,PropertyNorms2,TurnoverTrendNorms } = require('../models') const { logMsg } = require('../services/logger.js'); const policyHelper = require('../services/policy.helper'); exports.MasterDataList = async (req, res) => { try { ProgramMasterData = await ProgramMaster.findAll({attributes:['id','program_name'],where:{is_active:1}}); CheckTypeMasterData = await CheckTypeMaster.findAll({attributes:['id','check_type'],where:{is_active:1}}); PropertyTypeMasterData = await PropertyTypeMaster.findAll({attributes:['id','property_type'],where:{is_active:1}}); BusinessActivityMasterData = await BusinessActivityMaster.findAll({attributes:['id','business_activity_name'],where:{is_active:1}}); const resData = {ProgramMaster:ProgramMasterData,CheckTypeMaster:CheckTypeMasterData,PropertyTypeMaster:PropertyTypeMasterData,BusinessActivityMaster:BusinessActivityMasterData}; res.send({'status':200,'message':"success",'data':resData}); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createProgramData = async (req, res) => { try { ProgramMaster.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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.updateProgramData = async (req, res) => { try { reqData = req.body; id = reqData.id; delete reqData.id; ProgramMaster.update(reqData,{ 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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createCheckTypeData = async (req, res) => { try { CheckTypeMaster.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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.updateCheckTypeData = async (req, res) => { try { reqData = req.body; id = reqData.id; delete reqData.id; CheckTypeMaster.update(reqData,{ 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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createPropertyTypeData = async (req, res) => { try { PropertyTypeMaster.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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.updatePropertyTypeData = async (req, res) => { try { reqData = req.body; id = reqData.id; delete reqData.id; PropertyTypeMaster.update(reqData,{ 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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createBusinessActivityData = async (req, res) => { try { BusinessActivityMaster.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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.updateBusinessActivityData = async (req, res) => { try { reqData = req.body; id = reqData.id; delete reqData.id; BusinessActivityMaster.update(reqData,{ 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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; // select PolicyParameterMaster data exports.PolicyMasterData = async (req, res) => { try { sequelize.query('SELECT section_master.section , policy_parameter_master.parameter , policy_parameter_master.rules , policy_parameter_master.master_key , policy_parameter_master.data , policy_parameter_master.json , policy_parameter_master.table_name FROM policy_parameter_master JOIN section_master ON policy_parameter_master.section_id = section_master.id and section_master.is_active = 1 where policy_parameter_master.is_active = 1 ') .then(data => { res.send({'status':200,'message':"success",'data':data}); logMsg.info("Master Data List api call Success"); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createPolicyMasterData = async (req, res) => { try { reqData = req.body; if(reqData.json == 1) { PolicyData = { } }else { PolicyData = reqData } PolicyParameterMaster.create(PolicyData) .then(data => { res.send({'status':200,'message':"success",'data':data}); }) .catch(err => { res.send({'status':404,message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.updatePolicyMasterData = async (req, res) => { try { reqData = req.body; id = reqData.id; delete reqData.id; if(reqData.json == 1) { PolicyData = { } }else { PolicyData = reqData } PolicyParameterMaster.update(PolicyData,{ 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 fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; // select PolicyMasterChildTableData data exports.PolicyMasterChildTableData = async (req, res) => { try { Query = 'SELECT * FROM '+req.query.table_name+' where policy_parameter_master_id ='+req.query.master_key; console.log(Query); sequelize.query(Query) .then(data => { res.send({'status':200,'message':"success",'data':data[0]}); logMsg.info("Master Data List api call Success"); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createPolicyMasterChildData = async (req, res) => { try { modelArray = { banking_norms:BankingNorms , banking_norms2:BankingNorms2, credit_bureau_norms:CreditBureauNorms, deviation_norms:DeviationNorms, deviation_norms2:DeviationNorms2, deviation_norms3:DeviationNorms3, deviation_norms4:DeviationNorms4, deviation_norms5:DeviationNorms5, deviation_norms6:DeviationNorms6, deviation_norms7:DeviationNorms7, financials_norms:FinancialsNorms, loan_eligibility_norms:LoanEligibilityNorms, loan_eligibility_norms2:LoanEligibilityNorms2, loan_eligibility_norms3:LoanEligibilityNorms3, loan_eligibility_norms4:LoanEligibilityNorms4, property_norms:PropertyNorms, property_norms2:PropertyNorms2, turnover_trend_norms:TurnoverTrendNorms } modelName = req.query.table_name; setTimeout(async() => { model = modelArray[modelName] ; model.create(req.body) .then(data=>{ res.send({'status':200,'message':"success",'data':"No data"}); }) .catch(err=>{ res.send({'status':404,'message':"failed",'data':"No data"}); }); }, 1500); // req.body.forEach((result, index, array) => { // let Queryvalues = ''; // let Querycolumn = ''; // Object.keys(result).forEach((key , index , array ) => { // //construct column name // if(index == 0) { Querycolumn = "('"+key+"',"; } // else if (array.length == index + 1 ) { Querycolumn += "'"+key+"')"; } // else { Querycolumn += "'"+key+"',"; } // //construct column value // 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]+","; } } // //track ending of object loop. // if(array.length == index+1) // { // Queryvalues = Queryvalues.slice(0, -1); // Query = 'INSERT INTO '+req.query.table_name+' '+Querycolumn+' VALUES'+Queryvalues; // // insert data here // sequelize.query(Query).then(data => { logMsg.info("Insert Success"); }).catch(err => { logMsg.info("Insert Failed"); }); // } // }) // }) } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.updatePolicyMasterChildData = async (req, res) => { try { modelArray = { banking_norms:BankingNorms , banking_norms2:BankingNorms2, credit_bureau_norms:CreditBureauNorms, deviation_norms:DeviationNorms, deviation_norms2:DeviationNorms2, deviation_norms3:DeviationNorms3, deviation_norms4:DeviationNorms4, deviation_norms5:DeviationNorms5, deviation_norms6:DeviationNorms6, deviation_norms7:DeviationNorms7, financials_norms:FinancialsNorms, loan_eligibility_norms:LoanEligibilityNorms, loan_eligibility_norms2:LoanEligibilityNorms2, loan_eligibility_norms3:LoanEligibilityNorms3, loan_eligibility_norms4:LoanEligibilityNorms4, property_norms:PropertyNorms, property_norms2:PropertyNorms2, turnover_trend_norms:TurnoverTrendNorms } modelName = req.query.table_name; setTimeout(async() => { model = modelArray[modelName] ; id = req.body.id; delete req.body.id; model.update(req.body,{ where: { id: id }}) .then(data=>{ res.send({'status':200,'message':"success",'data':"No data"}); }) .catch(err=>{ res.send({'status':404,'message':"failed",'data':"No data"}); }); }, 1500); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; // select DoubleWhammy data exports.DoubleWhammyDataList = async (req, res) => { try { DoubleWhammy.findAll({raw:true, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: CheckTypeMaster,attributes:['check_type'] },{ model: PropertyTypeMaster,attributes:['property_type'] }] }) .then(data => { res.send({'status':200,'message':"success",'data':data}); logMsg.info("Master Data List api call Success"); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createDoubleWhammy = async (req, res) => { try { DoubleWhammyData = req.body; for(const DoubleWhammyDataValue of DoubleWhammyData) { await DoubleWhammy.create(DoubleWhammyDataValue) .then(async(data) =>{ logMsg.info("create Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("create Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; exports.updateDoubleWhammy = async (req, res) => { try { // Multiple update DoubleWhammyData = req.body; for(const DoubleWhammyDataValue of DoubleWhammyData) { id = DoubleWhammyDataValue.id; delete DoubleWhammyDataValue.id; await DoubleWhammy.update(DoubleWhammyDataValue,{ where: { id: id }}) .then(async(data) =>{ logMsg.info("Update Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("Update Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; exports.DscrLeverageGridDataList = async (req, res) => { try { VanillaArray = []; OtherThenVanillaArray = []; data = [ { program : "Vanilla" , child : VanillaArray } , { program : "OtherThenVanilla" , child : OtherThenVanillaArray}]; groupByData = await DscrLeverageGrid.findAll({attributes:['program_id','business_activity_id'],group: ["program_id","business_activity_id"] }); for(const groupByDataValue of groupByData) { // if(groupByDataValue.program_id == 1 ) // { // VanillaData = await DscrLeverageGrid.findAll({raw:true,where:{program_id : 1 ,business_activity_id : groupByDataValue.business_activity_id }, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: BusinessActivityMaster,attributes:['business_activity_name'] }] }); // VanillaArray.push(VanillaData); // } // else{ // OtherThenVanillaData = await DscrLeverageGrid.findAll({raw:true,where:{program_id : 8,business_activity_id : groupByDataValue.business_activity_id}, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: BusinessActivityMaster,attributes:['business_activity_name'] }] }); // OtherThenVanillaArray.push(OtherThenVanillaData); // } if(groupByDataValue.program_id == 1 ) { leverageData = await DscrLeverageGrid.findAll({where:{program_id : 1 ,business_activity_id : groupByDataValue.business_activity_id }, attributes:['program_id','business_activity_id','leverage'],group: ["program_id","business_activity_id","leverage"]}); leverageDataArray = []; for(const leverageDataValue of leverageData) { VanillaData = await DscrLeverageGrid.findAll({raw:true,where:{program_id : 1 ,business_activity_id : leverageDataValue.business_activity_id , leverage : leverageDataValue.leverage }, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: BusinessActivityMaster,attributes:['business_activity_name'] }] }); console.log(VanillaData[0]); childObj = { data : VanillaData }; obj = {...leverageDataValue.dataValues, ...childObj}; leverageDataArray.push(obj); } VanillaArray.push(leverageDataArray); } else{ leverageData = await DscrLeverageGrid.findAll({where:{program_id : 8 ,business_activity_id : groupByDataValue.business_activity_id }, attributes:['program_id','business_activity_id','leverage'],group: ["program_id","business_activity_id","leverage"]}); leverageArray = []; for(const leverageValue of leverageData) { OtherThenVanillaData = await DscrLeverageGrid.findAll({raw:true,where:{program_id : 8 ,business_activity_id : leverageValue.business_activity_id , leverage : leverageValue.leverage }, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: BusinessActivityMaster,attributes:['business_activity_name'] }] }); childObj = { data : OtherThenVanillaData }; obj = {...leverageValue.dataValues, ...childObj}; leverageArray.push(obj); } OtherThenVanillaArray.push(leverageArray); } } res.send({'status':200,'message':"success",'data':data}); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createDscrLeverageGrid = async (req, res) => { try { DscrLeverageGridData = req.body; for(const DscrLeverageGridDataValue of DscrLeverageGridData) { await DscrLeverageGrid.create(DscrLeverageGridDataValue) .then(async(data) =>{ logMsg.info("create Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("create Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; exports.updateDscrLeverageGrid = async (req, res) => { try { // Multiple update DscrLeverageGridData = req.body; for(const DscrLeverageGridDataValue of DscrLeverageGridData) { id = DscrLeverageGridDataValue.id; delete DscrLeverageGridDataValue.id; await DscrLeverageGrid.update(DscrLeverageGridDataValue,{ where: { id: id }}) .then(async(data) =>{ logMsg.info("Update Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("Update Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; exports.LeverageUsedForEligCatDataList = async (req, res) => { try { Vanilla = await LeverageUsedForEligCat.findAll({raw:true,where:{program_id : 1}, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: BusinessActivityMaster,attributes:['business_activity_name'] }] }) OtherThenVanilla = await LeverageUsedForEligCat.findAll({raw:true,where:{program_id : 8}, include:[{ model: ProgramMaster,attributes:['program_name'] },{ model: BusinessActivityMaster,attributes:['business_activity_name'] }] }) data = {Vanilla : Vanilla , OtherThenVanilla : OtherThenVanilla}; res.send({'status':200,'message':"success",'data':data}); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createLeverageUsedForEligCat = async (req, res) => { try { LeverageUsedForEligCatData = req.body; for(const LeverageUsedForEligCatValue of LeverageUsedForEligCatData) { await LeverageUsedForEligCat.create(LeverageUsedForEligCatValue) .then(async(data) =>{ logMsg.info("create Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("create Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; exports.updateLeverageUsedForEligCat = async (req, res) => { try { // Multiple update LeverageUsedForEligCatData = req.body; for(const LeverageUsedForEligCatValue of LeverageUsedForEligCatData) { id = LeverageUsedForEligCatValue.id; delete LeverageUsedForEligCatValue.id; await LeverageUsedForEligCat.update(LeverageUsedForEligCatValue,{ where: { id: id }}) .then(async(data) =>{ logMsg.info("Update Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("Update Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; // select AdjustableTang data exports.AdjustableTang = async (req, res) => { try { AdjustableTang.findAll({ where : { is_active : 1}}).then(data => { res.send({'status':200,'message':"success",'data':data}); logMsg.info("Master Data List api call Success"); }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch }; exports.createAdjustableTang = async (req, res) => { try { AdjustableTangDataArray = req.body; for(const AdjustableTangValue of AdjustableTangDataArray) { await AdjustableTang.create(AdjustableTangValue) .then(async(data) =>{ logMsg.info("create Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("create Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; exports.updateAdjustableTang = async (req, res) => { try { // Multiple update AdjustableTangDataArray = req.body; for(const AdjustableTangValue of AdjustableTangDataArray) { id = AdjustableTangValue.id; delete AdjustableTangValue.id; await AdjustableTang.update(AdjustableTangValue,{ where: { id: id }}) .then(async(data) =>{ logMsg.info("Update Success DoubleWhammy , id = "+id); }).catch(err=>{ logMsg.info("Update Failed DoubleWhammy , id = "+id); }); } setTimeout(() => { res.send({'status':200,'message':"success",'data':"No data"}); }, 1500); } catch(err) { res.send({'status':404,message: err.message || "Some error occurred while updating BankCredits." ,'data': "No data" }); } //end of try catch }; // select TokenApi data exports.TokenApi = async (req, res) => { try { Authorization.findOne({where : { is_active : 1}}).then(async(data) => { updated_date = new Date(data.updatedAt).toISOString().slice(0, 10); current_date = new Date().toISOString().slice(0, 10); if (updated_date == current_date ) { res.send({'status':200,'message':"success",'data':data}); } else { new_token = await policyHelper.NewToken(); await Authorization.update({token : new_token},{where : {id : 1}}) .catch(err=> {res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }) token_data = await Authorization.findOne({where : { is_active : 1}}) res.send({'status':200,'message':"success",'data':token_data}); } }) .catch(err => { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); }); } catch(err) { res.send({'status':404, message: err.message || "Some error occurred while fetching entity applicant masterdata." ,'data': "No data" }); } //end of try catch };