408 lines
12 KiB
JavaScript
408 lines
12 KiB
JavaScript
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 <input> 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;
|