QR kód ugrás hozzáadva.
This commit is contained in:
parent
ccb625c366
commit
bef86df5d4
|
|
@ -46,7 +46,7 @@ exports.apiRegisterDevice=function(deviceId,username,password,deviceType,callbac
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (rfidDevice)
|
if (rfidDevice)
|
||||||
callback(null,{'message':'Az eszköz már regisztrálva van!'});
|
callback(null,{'message':'Az eszköz már regisztrálva van!','apiKey':employee.apiKey});
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@ let employeeSchema = mongoose.Schema({
|
||||||
type: String,
|
type: String,
|
||||||
require: true
|
require: true
|
||||||
},
|
},
|
||||||
|
qrCode:{
|
||||||
|
type: String,
|
||||||
|
require: true
|
||||||
|
},
|
||||||
address:{
|
address:{
|
||||||
type: String,
|
type: String,
|
||||||
require: true
|
require: true
|
||||||
|
|
|
||||||
|
|
@ -511,7 +511,177 @@ transporter = nodemailer.createTransport({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case 'ACCESSQR': // Bejelentezés QR kóddal
|
||||||
|
moment.locale('HU');
|
||||||
|
var response = {
|
||||||
|
status : 200,
|
||||||
|
data : 'INVALID QUERY'
|
||||||
|
}
|
||||||
|
if (!data.CID1 | !data.CID2)
|
||||||
|
{
|
||||||
|
//console.log("Invalid Client ID!");
|
||||||
|
createLog("INVALID CID",data);//JSON.stringify(data));
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID CLIENT ID';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!data.LAT | !data.LON)
|
||||||
|
{
|
||||||
|
//console.log("Invalid Client POS!");
|
||||||
|
createLog("INVALID LOCATION ",data);//JSON.stringify(data));
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID LOCATION ID';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//var address=getAddress(data.LAT,data.LON);
|
||||||
|
DeviceRemote.findOne({imei:data.CID1,ccid:data.CID2}, function(err,device){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log("Device DB err:"+err);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//if (!device.length)
|
||||||
|
if (typeof device === 'undefined' || !device)
|
||||||
|
{
|
||||||
|
//console.log(ma+' Invalid device! RAW: '+JSON.stringify(data)+'\r\n');
|
||||||
|
createLog("INVALID DEVICE",data);//JSON.stringify(data));
|
||||||
|
socket.write(JSON.stringify({
|
||||||
|
status: 200,
|
||||||
|
data: 'Invalid device!'
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!data.loc)
|
||||||
|
{
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID LOCATION';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (data.mode!='ARRIVAL' && data.mode!='GETAWAY' && data.mode!='FREEDOM' && data.mode!='SICKPAY')
|
||||||
|
{
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID MODE';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//console.log(data.rfid);
|
||||||
|
Employee.findOne({'qrCode':data.qrCode},function(err,employee){
|
||||||
|
|
||||||
|
if(err)
|
||||||
|
{
|
||||||
|
response.status=200;
|
||||||
|
response.data='DB ERROR 1';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (employee)
|
||||||
|
{
|
||||||
|
// Ha pozíció szöveges (fix telepítésű WiFi-nél)
|
||||||
|
//Utca név is kell;
|
||||||
|
//var addr=address.city+","+address.road+" "+address.number;
|
||||||
|
getAddress(data.LAT,data.LON,data.loc,function(err,address){
|
||||||
|
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log("GeoAddress Error! "+err);
|
||||||
|
// response.status=200;
|
||||||
|
// response.data='GeoErr! ';
|
||||||
|
//socket.write(JSON.stringify(response));
|
||||||
|
// return;
|
||||||
|
// Nincs GPS!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
addr=device.assignment;
|
||||||
|
registerAccess(employee,addr,null,null,device,function(err,result){
|
||||||
|
//registerAccess(employee,data.loc,function(err,result){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log(err);
|
||||||
|
socket.write(JSON.stringify(err));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
checkIsHoliday(employee._id,ma,function(err,cb){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log('Holiday Split Error: '+err);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
socket.write(JSON.stringify(result));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var addr=address.city+","+address.road+" "+address.number;
|
||||||
|
/* if (data.loc==='G'){
|
||||||
|
var dec=convertDeg2Dec(data.LAT,data.LON);
|
||||||
|
}
|
||||||
|
else*/
|
||||||
|
if (data.loc==="G2"){
|
||||||
|
var dec={'latdec':data.LAT,'londec':data.LON}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var dec=convertDeg2Dec(data.LAT,data.LON);
|
||||||
|
}
|
||||||
|
registerAccess(employee,addr,dec.latdec,dec.londec,device,function(err,result){
|
||||||
|
//registerAccess(employee,data.loc,function(err,result){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log(err);
|
||||||
|
socket.write(JSON.stringify(err));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//console.log('Access: '+JSON.stringify(result));
|
||||||
|
createLog("ACCESS",result);//JSON.stringify(result));
|
||||||
|
checkIsHoliday(employee._id,ma,function(err,cb){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log('Holiday Split Error: '+err);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
socket.write(JSON.stringify(result));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//console.log("Nincs munkavállaló ezzel az azonosítóval!");
|
||||||
|
createLog("INVALID CODE",data.rfid);//JSON.stringify(data.rfid));
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID CODE';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
case 'ACCESSNOGEO': // Bejelentkezés telefonról Ha a címadat már megvan
|
case 'ACCESSNOGEO': // Bejelentkezés telefonról Ha a címadat már megvan
|
||||||
moment.locale('HU');
|
moment.locale('HU');
|
||||||
var response = {
|
var response = {
|
||||||
|
|
@ -633,7 +803,128 @@ transporter = nodemailer.createTransport({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 'NTRK':
|
case 'ACCESSNOGEOQR': // Bejelentkezés telefonról QR kóddal Ha a címadat már megvan
|
||||||
|
moment.locale('HU');
|
||||||
|
var response = {
|
||||||
|
status : 200,
|
||||||
|
data : 'INVALID QUERY'
|
||||||
|
}
|
||||||
|
if (!data.CID1 | !data.CID2)
|
||||||
|
{
|
||||||
|
//console.log("Invalid Client ID!");
|
||||||
|
createLog("INVALID CID",data);//JSON.stringify(data));
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID CLIENT ID';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!data.LAT | !data.LON)
|
||||||
|
{
|
||||||
|
//console.log("Invalid Client POS!");
|
||||||
|
createLog("INVALID LOCATION",data);//JSON.stringify(data));
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID LOCATION ID';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//var address=getAddress(data.LAT,data.LON);
|
||||||
|
DeviceRemote.find({imei:data.CID1,ccid:data.CID2}, function(err,device){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log("Device DB err:"+err);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!device.length)
|
||||||
|
{
|
||||||
|
// console.log('Invalid device!\r\n');
|
||||||
|
//console.log(ma+' Invalid device! RAW: '+JSON.stringify(data)+'\r\n');
|
||||||
|
createLog("INVALID DEVICE",data);//JSON.stringify(data));
|
||||||
|
socket.write(JSON.stringify({
|
||||||
|
status: 200,
|
||||||
|
data: 'Invalid device!'
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!data.address)
|
||||||
|
{
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID ADDRESS';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (data.mode!='ARRIVAL' && data.mode!='GETAWAY' && data.mode!='FREEDOM' && data.mode!='SICKPAY')
|
||||||
|
{
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID MODE';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//console.log(data.rfid);
|
||||||
|
Employee.findOne({'qrCode':data.qrCode},function(err,employee){
|
||||||
|
|
||||||
|
if(err)
|
||||||
|
{
|
||||||
|
response.status=200;
|
||||||
|
response.data='DB ERROR 1';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (employee)
|
||||||
|
{
|
||||||
|
// Ha pozíció szöveges (fix telepítésű WiFi-nél)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
registerAccess(employee,data.address,data.LAT,data.LON,device,function(err,result){
|
||||||
|
//registerAccess(employee,data.loc,function(err,result){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log(err);
|
||||||
|
socket.write(JSON.stringify(err));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//console.log('Access: '+JSON.stringify(result));
|
||||||
|
createLog("ACCESS",result);//JSON.stringify(result));
|
||||||
|
checkIsHoliday(employee._id,ma,function(err,cb){
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
console.log('Holiday Split Error: '+err);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
socket.write(JSON.stringify(result));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//console.log("Nincs munkavállaló ezzel az azonosítóval!");
|
||||||
|
createLog("INVALID CODE",data.rfid);//JSON.stringify(data.rfid));
|
||||||
|
response.status=200;
|
||||||
|
response.data='INVALID CODE';
|
||||||
|
socket.write(JSON.stringify(response));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'NTRK':
|
||||||
tracker.newTrack(data.id,function(err,result){
|
tracker.newTrack(data.id,function(err,result){
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
|
@ -4014,6 +4305,7 @@ router.post('/getLocationInfo',function(req,res){
|
||||||
function registerAccess(employee,city,lat,lon,device, callback)
|
function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
{
|
{
|
||||||
console.log("ACCESS: "+employee.name+" City: "+city+" WTID: "+employee.workingtimeId);
|
console.log("ACCESS: "+employee.name+" City: "+city+" WTID: "+employee.workingtimeId);
|
||||||
|
const newQrCode = uuidAPIKey.create().uuid;//crypto.randomBytes(16).toString('hex');
|
||||||
// Ha van megkezdett munkaidő beolvassuk
|
// Ha van megkezdett munkaidő beolvassuk
|
||||||
if (employee.workingtimeId)
|
if (employee.workingtimeId)
|
||||||
{
|
{
|
||||||
|
|
@ -4045,6 +4337,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
access.locationStop=city;
|
access.locationStop=city;
|
||||||
access.latitudeE=lat;
|
access.latitudeE=lat;
|
||||||
access.longitudeE=lon;
|
access.longitudeE=lon;
|
||||||
|
|
||||||
access.deviceId=device._id;
|
access.deviceId=device._id;
|
||||||
var a = moment(wt.timeArrive, "YYYY.MM.DD. HH:mm");
|
var a = moment(wt.timeArrive, "YYYY.MM.DD. HH:mm");
|
||||||
var b = moment(access.timeGetaway, "YYYY.MM.DD. HH:mm");
|
var b = moment(access.timeGetaway, "YYYY.MM.DD. HH:mm");
|
||||||
|
|
@ -4076,6 +4369,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
{
|
{
|
||||||
sendEmailGetavayNotify(employee,city,wt.timeArrive,access.timeGetaway,convertMinsToHrsMins(access.workHours));
|
sendEmailGetavayNotify(employee,city,wt.timeArrive,access.timeGetaway,convertMinsToHrsMins(access.workHours));
|
||||||
}
|
}
|
||||||
|
emp.qrCode=newQrCode;
|
||||||
Employee.updateOne({_id:employee._id},emp,function(err){
|
Employee.updateOne({_id:employee._id},emp,function(err){
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
|
@ -4134,6 +4428,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
access.timeGetaway="-";
|
access.timeGetaway="-";
|
||||||
access.deviceId=device._id;
|
access.deviceId=device._id;
|
||||||
access.vehicleId=device.vehicle_id;
|
access.vehicleId=device.vehicle_id;
|
||||||
|
|
||||||
access.save(function(err){
|
access.save(function(err){
|
||||||
if(err){
|
if(err){
|
||||||
var err={'status':200,'error':'DB ERROR 5'};
|
var err={'status':200,'error':'DB ERROR 5'};
|
||||||
|
|
@ -4150,6 +4445,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
sendEmailArriveNotify(employee,city,access.timeArrive);
|
sendEmailArriveNotify(employee,city,access.timeArrive);
|
||||||
}
|
}
|
||||||
emp.workingtimeId=access._id;
|
emp.workingtimeId=access._id;
|
||||||
|
emp.qrCode=newQrCode;
|
||||||
Employee.updateOne({_id:employee._id},emp,function(err){
|
Employee.updateOne({_id:employee._id},emp,function(err){
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
|
@ -4208,6 +4504,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
access.timeGetaway="-";
|
access.timeGetaway="-";
|
||||||
access.deviceId=device._id;
|
access.deviceId=device._id;
|
||||||
access.vehicleId=device.vehicle_id;
|
access.vehicleId=device.vehicle_id;
|
||||||
|
|
||||||
if (employee.emailNotifyFlags.arriving)
|
if (employee.emailNotifyFlags.arriving)
|
||||||
{
|
{
|
||||||
sendEmailArriveNotify(employee,city,access.timeArrive);
|
sendEmailArriveNotify(employee,city,access.timeArrive);
|
||||||
|
|
@ -4224,6 +4521,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
|
||||||
|
|
||||||
let emp={};
|
let emp={};
|
||||||
emp.workingtimeId=access._id;
|
emp.workingtimeId=access._id;
|
||||||
|
emp.qrCode=newQrCode;
|
||||||
Employee.updateOne({_id:employee._id},emp,function(err){
|
Employee.updateOne({_id:employee._id},emp,function(err){
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue