smc_cet_financials_backend/app/services/financial.controller.helper.js.js
2022-04-05 09:48:02 +05:30

84 lines
3.1 KiB
JavaScript

const { sequelize, Entities , Financials , Itemsmaster , Entityfinyear} = require('../models')
const { Op } = require("sequelize");
const { logMsg } = require('../services/logger.js');
function addNewFyFlag(Y1)
{
try
{
const Year_1 = Y1;
const current_year = new Date().getFullYear();
const current_month = new Date().getMonth() + 1;
let add_new_FY_flag;
if(Year_1 >= current_year && 3 < current_month)
{
add_new_FY_flag = {show_add_finyear_button:0,FY:0};
}
else
{
add_new_FY_flag = {show_add_finyear_button:1,FY:Year_1 + 1};
}
return add_new_FY_flag;
}
catch (error)
{
console.log(error);
}
}
function createSkeleton(losid,entityid)
{
try
{
// create skeletion with itemmaster data (itemmaster(id) == financial(itemid))
Itemsmaster.findAll({ where :{manual:1,is_active : 1},attributes: ['id'] , order: [['statement', 'ASC'],['section', 'ASC'],['itemorder', 'ASC']] })
.then(ItemsmasterData => {
var year = new Date().getFullYear();
year_data = [{fy:year - 1},{fy:year - 2},{fy:year - 3}];
year_data.forEach(year_value => {
Entityfinyear.create({ "losid":losid,"entityid":entityid,"FY":year_value.fy,"st_type": 0 })
.then(Entityfinyearsdata => {
//construct lineitem array for bulk insert using itemmaster primarykey (id)
var SkeletonInsert = new Promise((resolve, reject) => {
let fin_data_array = [];
ItemsmasterData.forEach( (itemvalue , index , itemvaluearray) => {
fin_data_obj = { "entity_id":Entityfinyearsdata.dataValues.entityid,"st_type":Entityfinyearsdata.dataValues.st_type,"itemid":itemvalue.dataValues.id,"fy":Entityfinyearsdata.dataValues.FY,"value":0,"is_active":1,"createdby":4}
fin_data_array.push(fin_data_obj);
if (index === itemvaluearray.length -1) { resolve(fin_data_array); }
})
});
SkeletonInsert.then((Query_data)=>{
Financials.bulkCreate(Query_data).then(data=>{
logMsg.info("Skeleton created for LosId ="+losid+" - EntityId = "+entityid);
Entities.update({ "probe42_data_status": 2 },{ where: { id: entityid }});
}).catch(err=>(console.log(err))); //skeleton bulk create query
});
}).catch(err => {
res.status(404).send({'status':404,
message: err.message || "Some error occurred while insertinging statements." ,'data': "No data" });
}); // end of entity fin year table data insert
}); //end of forEach
}).catch(err=>(console.log(err))); //itemmaster query
}
catch (error)
{
console.log(error);
}
}
module.exports = {
addNewFyFlag : addNewFyFlag ,
createSkeleton : createSkeleton
}