klnodekb/js/cmHelper.js

103 lines
3.4 KiB
JavaScript

const fetch = require("node-fetch");
let User = require('../models/user');
let Work=require('../models/works')
const moment = require('moment');
var fse = require('fs-extra');
const url = "https://cmmunkaszam.klelectro.eu/api/db/getLastWorknumber";
const CM_Fetch_WorkNumbers=async()=>
{
try{
const response = await fetch(url)
const jsonData = await response.json();
if (jsonData.success)
{
cmWorks=jsonData.val;
const user = await User.findOne({username: 'cmr'});
if (!user) return;
if (!user.canAdd.work) return;
cmWorks.forEach( async element => {
const foundWork= await Work.findOne({$or:[
{ cmId: element.ID},
{ workNumber: element.Szovertek},
{ title : element.Megnevezes},
{ cmRendAzonosito:element.RendAzon}
]})
if (!foundWork)
{
var vnValid=/^[2-9][0-9][0-9][0-9]\/[0-9][0-9][0-9][0-9]$/.test(element.Szovertek);
if (!vnValid)
{
console.log(`Hibás munkaszám: ${element.Szovertek}`)
return;
}
console.log(`Új munka: ${element.Szovertek+' '+element.munkanev}`);
let work=new Work();
work.title = element.munkanev;
work.author = user._id;
work.body = element.Megjegyzes;
work.poNumber=element.KulsoRendSzam;
work.megrendelo=element.SzamlNev;
work.workNumber=element.Szovertek;
work.cmRendAzonosito=element.RendAzon;
// console.log(work.workNumber);
work.workDate= moment().format('YYYY-MM-DD HH:mm:ss')
// Munka státusza
work.state='Opened'; // Nyitva
// Ütemterv
work.ganttData.id=work._id;
work.ganttData.text=work.title;
work.ganttData.start_date=moment().format('DD-MM-YYYY');
work.ganttData.duration=5;//req.body.duration;
work.ganttData.progress=0;
//db.users.findOne({"username" : {$regex : ".*son.*"}});
Work.findOne({'workNumber': work.workNumber}, function(err,wn) // Megnézzük van e már
{
if (err){
console.log(err);
}
else {
if (wn)
{
console.log("Már van ilyen munka");
}
else {
work.save(function(err){
if(err){
console.log(err);
return;
}else{
// Munka könyvtár létrehozása
//logging.logAppend("Munka hozzáadása.",req.user,work.id,Work.db.name,'WORKADD');
fse.mkdirs('/filedata/'+work._id, function(err){
if (err) return console.error(err);
console.log("Könyvtár létrehozva! ->"+"/filedata/"+work._id);
});
console.log('Work added.');
}
});
}
}
});
}
});
//console.log(jsonData.val);
}
}
catch(error) {
console.log(error);
};
}
// Esemény indítása éjjfélkor
setInterval(CM_Fetch_WorkNumbers,15000);