154 lines
4.8 KiB
JavaScript
154 lines
4.8 KiB
JavaScript
let KabelCert = require('../models/kabelcert');
|
|
const asyncHandler = require('express-async-handler');
|
|
const moment = require('moment');
|
|
|
|
exports.apiSaveKabelCert=asyncHandler(async (req,res)=>{
|
|
const {megrendelo, id, wn,targy, tipus,userid, keresztmetszet, feszultseg, hossz, nyomvonal }=req.body;
|
|
const kabelcert = new KabelCert({
|
|
deviceId: id,
|
|
author: userid,
|
|
jkvTitle: targy,
|
|
megrendelo: megrendelo,
|
|
hossz:hossz,
|
|
tipus: tipus,
|
|
munkaszam: wn,
|
|
feszultseg: feszultseg,
|
|
nyomvonal: nyomvonal,
|
|
keresztmetszet: keresztmetszet
|
|
|
|
})
|
|
await kabelcert.save();
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.send({'response':'ok','message':'Sikeresen létrehozva!','id':id});
|
|
});
|
|
|
|
exports.apiEditKabelCert=asyncHandler(async (req,res)=>{
|
|
const {megrendelo, id, modify, wn,targy, tipus,userid, keresztmetszet, feszultseg, hossz, nyomvonal }=req.body;
|
|
const kabelcert = {
|
|
//deviceId: id,
|
|
//author: userid,
|
|
jkvTitle: targy,
|
|
megrendelo: megrendelo,
|
|
hossz:hossz,
|
|
tipus: tipus,
|
|
//munkaszam: wn,
|
|
feszultseg: feszultseg,
|
|
nyomvonal: nyomvonal,
|
|
keresztmetszet: keresztmetszet
|
|
}
|
|
await KabelCert.findByIdAndUpdate(modify,kabelcert)
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.send({'response':'ok','message':'Sikeresen létrehozva!','id':id});
|
|
});
|
|
|
|
exports.apiGetKabelCerts=asyncHandler(async (req,res)=>{
|
|
const { id }=req.params;
|
|
const certs = //await KabelCert.find({'deviceId':id})
|
|
await KabelCert.aggregate([
|
|
|
|
{
|
|
"$match": { "deviceId": "674ec583ac87012afa6d5897" }
|
|
},
|
|
{
|
|
$lookup: {
|
|
from: "users",
|
|
localField: "author",
|
|
foreignField: "_id",
|
|
as: "user",
|
|
}
|
|
},
|
|
|
|
{ "$unwind": "$user" },
|
|
/*{ "$project": {
|
|
|
|
"user.name": 1,
|
|
}
|
|
}*/
|
|
])
|
|
res.status(200).send(certs);
|
|
});
|
|
|
|
exports.apiDeleteKabelCerts=asyncHandler(async (req,res,next)=>{
|
|
const { id }=req.params;
|
|
|
|
const result= await KabelCert.deleteOne({_id:id})
|
|
if (!result)
|
|
{
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.send({'response':'Fail','message':'Művelet sikertelen!'});
|
|
}
|
|
else
|
|
{
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.send({'response':'ok','message':'Sikeresen törölve!'});
|
|
}
|
|
});
|
|
|
|
exports.apiGenerateKabelCert=asyncHandler(async(req,res,next)=>{
|
|
const { id }=req.params;
|
|
const cert=await KabelCert.findById(id);
|
|
if (!cert)
|
|
{
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.send({'response':'Fail','message':'Művelet sikertelen!'});
|
|
return;
|
|
}
|
|
var deviceDate= new Date().toISOString().replace(/-/g, '.').substring(0,10);
|
|
const PizZip = require("pizzip");
|
|
var Docxtemplater = require('docxtemplater');
|
|
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
|
|
//Load the docx file as a binary
|
|
var content = fs
|
|
.readFileSync(__dirname+'/../docs/templates/kof/kof_kabelvizsgalat.docx', 'binary');
|
|
|
|
const zip = new PizZip(content);
|
|
var doc = new Docxtemplater();
|
|
doc.loadZip(zip);
|
|
var year=new Date().getFullYear();
|
|
|
|
//set the templateVariables
|
|
var gyev=cert.gyariszam.substring(0,4);
|
|
//console.log('Megvan!');
|
|
doc.setData({
|
|
jkvszam: 1,
|
|
megrendelo: cert.megrendelo,
|
|
datum:moment().format("YYYY.MM.DD"),
|
|
vizsgalattargya: cert.targy,
|
|
tipus:cert.tipus,
|
|
keresztmetszet:cert.keresztmetszet,
|
|
feszultseg: cert.feszultseg,
|
|
hossz:cert.hossz,
|
|
|
|
});
|
|
|
|
|
|
try {
|
|
// render the document (replace all occurences of {first_name} by John, {last_name} by Doe, ...)
|
|
//console.log('Generálás kész!');
|
|
doc.render();
|
|
|
|
}
|
|
catch (error) {
|
|
var e = {
|
|
message: error.message,
|
|
name: error.name,
|
|
stack: error.stack,
|
|
properties: error.properties,
|
|
}
|
|
console.log(JSON.stringify({error: e}));
|
|
// The error thrown here contains additional information when logged with JSON.stringify (it contains a property object).
|
|
throw error;
|
|
}
|
|
|
|
var buf = doc.getZip()
|
|
.generate({type: 'nodebuffer'});
|
|
//logging.logAppend("Jegyzőkönyv módosítva.",req.user,kofmb.id,KifCert.db.name,'CERTEDIT');
|
|
fs.writeFileSync(__dirname+'/../docs/kabelcert.docx', buf);
|
|
//req.flash('success','Berendezés sikeresen hozzáadva');
|
|
res.download(path.normalize(__dirname+'/../docs/kabelcert.docx'),'KÖF_Kabel_szigetelesvizsgalat.docx');
|
|
|
|
|
|
}) |