????

Your IP : 18.188.192.62


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/
Upload File :
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/danhmuc.js

var router = require('express').Router();
const { permit, useLayout } = require('../controllers/middleware');
var danhmucCtrl = require('../controllers/danhmuc').create();
var path = require('path');
var fs = require('fs');
var { savePath } = require('../appconfig');

// Khai báo router
router.get('/', function (req, res) {
  res.redirect('/main')
});
router.get('/nhomtailieu', permit(313), function (req, res) {
  danhmucCtrl.getFileGroups(req.query.fond)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/loaivanban', permit(315), function (req, res) {
  danhmucCtrl.getDocTypes()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/coquan', permit(317), function (req, res) {
  danhmucCtrl.getOrgans()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/ngonngu', permit(319), function (req, res) {
  danhmucCtrl.getLanguages()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/dotincay', permit(), function (req, res) {
  danhmucCtrl.getConfidenceLevels()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/quyentailieu', permit(321), function (req, res) {
  danhmucCtrl.getDocModes()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/congcu', permit(323), function (req, res) {
  danhmucCtrl.getLookupTools()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/bieuphi', function (req, res) {
  danhmucCtrl.getReqPrices()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
//Danh mục phông
router.get('/phong', permit(301), useLayout, function (req, res) {
  res.render('danhmuc/phong.eta', { title: 'Danh mục phông' });
});
router.get('/phong/json', permit(301), function (req, res) {
  danhmucCtrl.getFonds()
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message || err) })
});
router.get('/phong/chitiet', permit(301), useLayout, async function (req, res) {
  var fond = null;
  try {
    fond = (await danhmucCtrl.select('SELECT * FROM Fond WHERE FondCode = @code', { code: req.query.code }))[0];
    if (fond) {
      res.render('danhmuc/chitietphong.eta', {
        title: 'Chi tiết phông',
        fondCode: fond.FondCode,
        fondName: fond.FondName
      })
    } else res.redirect('/danhmuc/phong');
  } catch (err) { res.status(400).send(err.message); }
});
router.get('/phong/chitiet/json', permit(301), async function (req, res) {
  var files = await danhmucCtrl.getFondDetail(req.query);
  res.json(files);
});
//Danh mục hồ sơ
router.get('/hoso', permit(305), useLayout, function (req, res) {
  res.render('danhmuc/hoso.eta', {
    title: 'Danh mục hồ sơ'
  });
});
router.get('/hoso/json', permit(305), function (req, res) {
  danhmucCtrl.getFiles(req.query)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
//Danh mục văn bản
router.get('/vanban', permit(308), useLayout, function (req, res) {
  res.render('danhmuc/vanban.eta', { title: 'Danh mục văn bản', search: req.query['content'] });
});
router.get('/vanban/json', permit(308), function (req, res) {
  danhmucCtrl.getDocuments(req.query)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.get('/vanban/:docId', permit(), async function (req, res) {
  try {
    let query = 'SELECT [File].FileCode,Document.DocCode,Document.Signed FROM Document INNER JOIN [File] ON [File].UUID = Document.FileId WHERE Document.UUID = @id';
    let doc = (await danhmucCtrl.select(query, { id: req.params.docId }))[0];
    if (doc) {
      let docPath = path.join(savePath, doc.FileCode, doc.DocCode + (doc['Signed'] ? '.signed' : '') + '.PDF');
      if (fs.existsSync(docPath)) {
        res.setHeader('Content-Type', 'application/pdf');
        if (req.query['download'] == 'true') res.download(docPath);
        else res.sendFile(docPath);
      }
      else throw new Error('Văn bản chưa được số hóa');
    } else throw new Error('Không tồn tại văn bản trên hệ thống')
  } catch (err) { res.status(400).send(err.message || err) }
});

module.exports = router;