const express = require('express'); const router = express.Router(); // User Model let User = require('../models/user'); var utils = require('../js/utils'); const path = require('path'); var formidable = require('formidable'); let busboy = require('connect-busboy'); let Item = require('../models/item'); let Client = require('../models/client'); let Warehouse = require('../models/warehouse'); var csv = require("fast-csv"); const checkUserAdmin3 = require('../js/helperFuncs'); var fs = require('fs'); // Get Single Work router.get('/barcode:id',utils.ensureAuthenticated,function(req,res){ console.log(req.params.id); /* var man=new Manufacturer(); man.name='ABB Mérnöki, Kereskedelmi és Szolgáltató Kft.'; man.shortName='ABB'; man.author='Kutafaja'; man.body='1134 Budapest, Kassák Lajos u, 19-25. Tel.: +(36-1)443-2100 Fax: +(36-1)443-2211 Levélcím: 1558 Budapest, 139., Pf. 129'; man.manufacturerDiscount=60; man.save(function(err){ if(err){ console.log(err); return; }else{ res.send('Barcode: '+req.params.id); } }); */ /*var item=new Item(); item.title='RVT2-12 Automatika, REG F5/6 V100/440'; item.author='Kutafaja'; item.body='nincs'; item.itemNumber='2GCA291721A0050'; item.typeCode='2GCA291721A0050'; item.netListPrice=368250; item.discount=0; item.manufacturer='5af83985d896d920042c19ac'; item.save(function(err){ if(err){ console.log(err); return; } });*/ res.send('Barcode: '+req.params.id); /* Work.findById(req.params.id,function(err,work) // Munka keresése sz ID-je alapján { currentWorkNumber=work.workNumber; console.log(work.devicesArray); Article.find({ '_id': { $in: work.devicesArray //mongoose.Types.ObjectId("5a5a0dd6a0bc231270e9fe91"), //mongoose.Types.ObjectId('4ed3f117a844e0471100000d'), //mongoose.Types.ObjectId('4ed3f18132f50c491100000e') } }, function(err, docs) { User.findById(work.author, function(err,user){ if (err) { res.render('work', { work: work, articles: docs, author: 'Ismeretlen' }); }else { //console.log(docs); res.render('work', { work: work, articles: docs, author: user.name }); } }); } ); });*/ }); // Find Tools on keypress router.post('/find', utils.ensureAuthenticated,function (req,res) { let man=new Item(); var findman=Item.findOne( {'name' : req.body.content}); var q = Item.find({'itemNumber': new RegExp(req.body.content, 'i')}).limit(20); var response = { status : 200, data : 'null' } /* tool.productCode=req.body.itemCode; tool.title=req.body.itemTitle; tool.barCode=req.body.itemBarCode; tool.quantity=req.body.itemQty; */ if (req.body.findBy==='Name') //findTool.exec(function(err,t){ //Item.find({'itemNumber' : new RegExp(req.body.content, 'i')},function(err,t){ q.exec(function(err,t){ if (err) { console.log(err); return; } if (t) { t.forEach(function(tetel){ //console.log('Tools find:' +tetel.name); }) response = { status : 200, data : t } } else { response = { status : 200, data : null } console.log('Tools find: null'); } res.send(response); }); }); router.get('/uploadnew', utils.ensureAuthenticated,function(req,res){ Client.find({}, function(err,manuf) { var admin=false; if (err) { console.log(err); res.send('Hiba történt az oldal betöltése során. '); } else { if(req.user) { checkUserAdmin3(req,function(err,res){ admin=res; }); } manuf.forEach(element => { console.log('Gyártó: '+element.name); }); res.render('uploadWarehouse', { title: 'Gyártói árlista feltöltés', manufacturers: manuf, rot:admin, //wid:req.params.wid //artice: workSign }); } }); }); router.post('/uploadnew/:id', function (req, res){ var form = new formidable.IncomingForm(); form.parse(req); /* form.on('fileBegin', function (name, file){ file.path = __dirname + '/uploads/' + file.name; });*/ form.on('file', function (name, file) { console.log('Uploaded ' +file.path); var stream = fs.createReadStream(file.path); Client.findById(req.params.id, function(err,manuf) { if (err) { console.log(err); res.send('Hiba történt az oldal betöltése során. '); } else { var items=[]; console.log('Kiválasztott gyártó: '+manuf.shortName); console.log('Kiválasztott fájl: '+file.name); csv .fromStream(stream, {delimiter:';',headers : ["itemTypeCode","itemNumber","title","netListPrice","author","body","manufacturer","discount"]}) .on("data", function(data){ var item= new Item(); item.title=data.title; item.author=req.user.id; item.body="none"; item.manufacturer=manuf.id; item.itemNumber=data.itemNumber; item.itemTypeCode=data.itemTypeCode; item.netListPrice=data.netListPrice; item.discount=req.body.manufacturerDiscount; items.push(item); // console.log(data); }) .on("end", function(){ console.log("Start import..."); console.log("Remove old entries of "+manuf.name); Item.deleteMany({'manufacturer':manuf._id},function(err, result){ if (err) { req.flash('error','Hiba a feltöltés során'); console.log("Removing error!"); res.redirect('/warehouse/uploadnew'); } else { console.log("Removing Ok."); console.log("Start importing..."); console.log("Sikeres import!"); req.flash('success','Árlista sikeresen hozzáadva'); res.redirect('/warehouse/uploadnew'); Item.insertMany(items,function(err){ if(err){ console.log(err); return; }/*else { console.log("Sikeres import!"); req.flash('success','Árlista sikeresen hozzáadva'); res.redirect('/warehouse/uploadnew'); }*/ }); console.log("done"); } }); }); } }); }); /* csv .fromStream(stream, {delimiter:';',headers : ["itemTypeCode","itemNumber","title","netListPrice","author","body","manufacturer","discount"]}) .on("data", function(data){ console.log(data); }) .on("end", function(){ console.log("done"); });*/ /* var fs = require('fs'); fs.readFile(file.path, 'utf8', function(err, contents) { //console.log(contents); var item=new Item(); item.title='RVT2-12 Automatika, REG F5/6 V100/440'; item.author='Kutafaja'; item.body='nincs'; item.itemNumber='2GCA291721A0050'; item.typeCode='2GCA291721A0050'; item.netListPrice=368250; item.discount=0; item.manufacturer='5af83985d896d920042c19ac'; item.save(function(err){ if(err){ console.log(err); return; } }); });*/ // }); //res.redirect('/warehouse/uploadnew'); }); /* router.post('/uploadnew', function(req, res) { var form = new formidable.IncomingForm(); //var fs = require('fs'); // request.files is an object where fieldname is the key and value is the array of files form.parse(req, function(err, fields, files) { // `file` is the name of the field of type `file` var old_path = files.file.path, file_size = files.file.size, file_ext = files.file.name.split('.').pop(), index = old_path.lastIndexOf('/') + 1, file_name = old_path.substr(index), new_path = path.join(process.env.PWD, '/uploads/', file_name + '.' + file_ext); fs.readFile(old_path, function(err, data) { fs.writeFile(new_path, data, function(err) { fs.unlink(old_path, function(err) { if (err) { res.status(500); res.json({'success': false}); } else { res.status(200); res.json({'success': true}); } }); }); }); }); //Generating thumbnails });*/ // Új raktár létrehozás router.get('/newwarehouse', utils.ensureAuthenticated,function(req,res){ Warehouse.find({}, function(err,warehouses) { var admin=false; if (err) { console.log(err); res.send('Hiba történt az oldal betöltése során. '); } else { if(req.user) { checkUserAdmin3(req,function(err,res){ admin=res; }); } res.render('newwarehouse', { title: 'Új raktár létrehozás', warehouses: warehouses, rot: admin }); } }); }); router.post('/newwarehouse', function (req, res){ Warehouse.findOne({name: req.body.warehouseName},function(err,warehouse){ if (err) { req.flash('error','Raktár létrehozása sikertelen!'); res.redirect('/warehouse/newwarehouse'); } else { if(!warehouse) { var wh=new Warehouse(); wh.name=req.body.warehouseName; wh.save(function(err){ if(err){ console.log(err); return; }else{ req.flash('success','Raktár sikeresen létrehozva'); res.redirect('/warehouse/newwarehouse'); } }); } else { req.flash('error','Már van ilyen nevű raktár!'); res.redirect('/warehouse/newwarehouse'); } } }) }); module.exports = router;