84 lines
3.1 KiB
JavaScript
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
|
|
|
|
} |