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) if (response.ok){ 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. { //Módosítás 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 }) } } //Lezárás, ha nyitott, de a CM zárta if (foundWork.state=='Opened' && element.Nyitott==7) { 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 && foundWork.state=='Opened') { if (element.ID==foundWork.cmId) { console.log("Lezárás történt a CM-ben."+foundWork.title); await Work.findOneAndUpdate({'cmId': foundWork.cmId},{$set:{'state':'Closed'}}) } } } } }); //console.log(jsonData.val); } } else { console.log("Response error CMHelper") } } catch(error) { console.log(error); }; } // Esemény indítása éjjfélkor setInterval(CM_Fetch_WorkNumbers,15000);