126 lines
4.4 KiB
JavaScript
126 lines
4.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')
|
|
work.cmId=element.ID;
|
|
|
|
// 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.');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
else // Ha van már ilyen munka megnézzük módosították e.
|
|
{
|
|
if (foundWork.title!=element.munkanev ||
|
|
foundWork.body!=element.Megjegyzes ||
|
|
foundWork.poNumber!=element.KulsoRendSzam ||
|
|
foundWork.megrendelo!=element.SzamlNev ||
|
|
foundWork.workNumber!=element.Szovertek ||
|
|
foundWork.cmRendAzonosito!=element.RendAzon)
|
|
{
|
|
if (element.ID==foundWork.cmId)
|
|
{
|
|
console.log("Módosítás történt a CM-ben."+foundWork.title);
|
|
await Work.findOneAndUpdate({'cmId': foundWork.cmId}, {
|
|
title:element.munkanev,
|
|
body:element.Megjegyzes,
|
|
poNumber:element.KulsoRendSzam,
|
|
megrendelo:element.SzamlNev,
|
|
workNumber:element.Szovertek,
|
|
cmRendAzonosito:element.RendAzon
|
|
|
|
})
|
|
}
|
|
}
|
|
}
|
|
});
|
|
//console.log(jsonData.val);
|
|
}
|
|
}
|
|
catch(error) {
|
|
console.log(error);
|
|
};
|
|
}
|
|
|
|
// Esemény indítása éjjfélkor
|
|
setInterval(CM_Fetch_WorkNumbers,15000); |