291 lines
8.0 KiB
JavaScript
291 lines
8.0 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const mongoose=require('mongoose');
|
|
// User Model
|
|
let User = require('../models/user');
|
|
var utils = require('../js/utils');
|
|
const path = require('path');
|
|
let Item = require('../models/item');
|
|
let Client = require('../models/client');
|
|
let Warehouse = require('../models/warehouse');
|
|
let Recipt = require('../models/recipt');
|
|
let Bid = require('../models/bid');
|
|
const checkUserAdmin3 = require('../js/helperFuncs');
|
|
var fs = require('fs');
|
|
|
|
const zeroPad = (num, places) => String(num).padStart(places, '0');
|
|
// Ajánlat sorszám generálás
|
|
function getNewId(callback){
|
|
Bid.find( { "date": { "$regex": "2020", "$options": "i" } },
|
|
function(err,docs) {
|
|
if (err){
|
|
callback(err);
|
|
}
|
|
else
|
|
{
|
|
var docId='KL'+new Date().getFullYear()+zeroPad(docs.length,4)+'AJ';
|
|
|
|
callback(null,docId);
|
|
}
|
|
} );
|
|
}
|
|
|
|
// Új árajánlat létrehozás
|
|
router.get('/new', utils.ensureAuthenticated,function(req,res){
|
|
var admin=false;
|
|
var docId=0;
|
|
getNewId(function(err,count){
|
|
if (err)
|
|
{
|
|
console.log(err);
|
|
}
|
|
else
|
|
{
|
|
docId=count;
|
|
}
|
|
})
|
|
Warehouse.find({}, function(err,warehouses)
|
|
{
|
|
|
|
if(req.user)
|
|
{
|
|
checkUserAdmin3(req,function(err,res){
|
|
admin=res;
|
|
});
|
|
}
|
|
if (err)
|
|
{
|
|
console.log(err);
|
|
res.send('Hiba történt az oldal betöltése során. ');
|
|
}
|
|
else
|
|
{
|
|
res.render('bidNew', {
|
|
title: 'Új árajánlat',
|
|
warehouses: warehouses,
|
|
docId: docId,
|
|
rot:admin,
|
|
});
|
|
}
|
|
|
|
});
|
|
});
|
|
|
|
// Ügyfelek keresése
|
|
|
|
// Find Clients on keypress
|
|
router.post('/find', utils.ensureAuthenticated,function (req,res) {
|
|
|
|
let man=new Item();
|
|
var findman=Item.findOne( {'name' : req.body.content});
|
|
var q = Client.find({'name': new RegExp(req.body.content, 'i')}).limit(20);
|
|
var response = {
|
|
status : 200,
|
|
data : 'null'
|
|
}
|
|
|
|
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);
|
|
});
|
|
});
|
|
|
|
// Find ItemsBy Number on keypress
|
|
router.post('/findItemCikk', utils.ensureAuthenticated,function (req,res) {
|
|
|
|
let man=new Item();
|
|
//console.log(req.body.content);
|
|
var q = Item.find({'itemNumber': new RegExp(req.body.content, 'i')}).limit(20);
|
|
|
|
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);
|
|
});
|
|
|
|
});
|
|
|
|
// Find ItemsBy Name on keypress
|
|
router.post('/findItemName', utils.ensureAuthenticated,function (req,res) {
|
|
|
|
let man=new Item();
|
|
// console.log(req.body.content);
|
|
var q = Item.find({'title': new RegExp(req.body.content, 'i')}).limit(20);
|
|
|
|
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);
|
|
});
|
|
});
|
|
|
|
// Új bevételezés rögzítése
|
|
router.post('/receiptNewReceipt', utils.ensureAuthenticated,function (req,res) {
|
|
|
|
console.log(req.body);
|
|
|
|
// var rec=JSON.parse(req.body);
|
|
|
|
var newRec=new Recipt();
|
|
var q=Client.findOne({'name' : req.body.client})
|
|
|
|
q.exec(function(err,client){
|
|
if (err)
|
|
{
|
|
console.log(err);
|
|
response = {
|
|
status : 400,
|
|
data : err
|
|
}
|
|
res.send(response);
|
|
}
|
|
if (client)
|
|
{
|
|
newRec.warehouseId= req.body.warehouse;//mongoose.Types.ObjectId(req.body.warehouse);
|
|
newRec.certSerial=req.body.certSerial;
|
|
newRec.clientId=client.id;
|
|
req.body.Items.forEach(element => {
|
|
newRec.Items.push(element);
|
|
});
|
|
//newRec.Items=req.body.Items;
|
|
var priceN=0;
|
|
req.body.Items.forEach(item => {
|
|
priceN+=(item.netListPrice * item.stock);
|
|
|
|
// newRec.Items.push()
|
|
});
|
|
newRec.priceNet=priceN;
|
|
newRec.priceBr=(priceN*1.27);
|
|
var warehouseId=newRec.warehouseId;
|
|
newRec.save(function(err){
|
|
if(err){
|
|
response = {
|
|
status : 400,
|
|
data : { eredmeny:'SZAR'}
|
|
}
|
|
res.send(response);
|
|
}
|
|
else
|
|
{
|
|
// Elemek hozzáadása a raktárkészlethez
|
|
|
|
//Warehouse.findById({"_id":warehouseId}, function(err,warehouse)
|
|
//req.body.Items.forEach(item => {
|
|
Warehouse.findOneAndUpdate({"_id":warehouseId},{ $push:{'Items': req.body.Items}},{'upsert':true},function(err,resp)
|
|
{
|
|
if (err)
|
|
{
|
|
console.log(err);
|
|
|
|
response = {
|
|
status : 404,
|
|
data : { eredmeny:'Hiba történt az oldal betöltése során. '}
|
|
}
|
|
res.send(response);
|
|
}
|
|
else
|
|
{
|
|
response = {
|
|
status : 200,
|
|
data : { eredmeny:'Fasza!'}
|
|
}
|
|
res.send(response);
|
|
|
|
// newRec.Items.push()
|
|
|
|
|
|
|
|
}
|
|
//});
|
|
});
|
|
|
|
|
|
/* response = {
|
|
status : 200,
|
|
data : { eredmeny:'RAKTARHIBA'}
|
|
}
|
|
res.send(response);*/
|
|
}
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
module.exports = router;
|