UNPKG

kpiplus

Version:

KPI+

1 lines 1.58 kB
var model=require("../../models/options"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),fs=require("fs"),async=require("async"),path=require("path");module.exports=function(e){this.contr=new controller(e,model,"options",{sort:{id_func:1},unique:["id_func"],onCreating:(e,t,n)=>{permission.isAdmin(e.current_id_app,e.email,function(e,i){if(e||!i)return n(e||"Bạn không có quyền thực hiện tác vụ này");n(null,t)})},onUpdating:(e,t,n,i)=>{permission.isAdmin(e.current_id_app,e.email,function(e,r){if(e||!r)return i(e||"Bạn không có quyền thực hiện tác vụ này");i(null,t,n)})},onFound:(e,t,n,i)=>{permission.isAdmin(t.id_app,e.email,function(r,s){if(r)return i(r);if(0===n.length&&t.id_func&&s){t.user_created=e.email,t.user_updated=e.email,t.option={system:{}},new model(t).save((e,t)=>{i(null,[t.toObject()])})}else i(null,n)})},onView:(e,t,n)=>{async.map(t,(e,t)=>{if(e.option||(e.option={}),e.option.system||(e.option.system={}),e.option.system.templateRpt)t();else{let n=`${path.dirname(path.dirname(__dirname))}/templates/rpts/${e.id_func.toLowerCase()}.html`;if(!fs.existsSync(n)&&(n=`${path.dirname(path.dirname(__dirname))}/templates/rpts/reports/${e.id_func.toLowerCase()}/templates/print.html`,!fs.existsSync(n)&&(n=`${path.dirname(path.dirname(__dirname))}/templates/rpts/vouchers/${e.id_func.toLowerCase()}/templates/print.html`,!fs.existsSync(n))))return t();fs.readFile(n,"utf8",(n,i)=>{i&&(e.option.system.templateRpt=i),t()})}},(e,i)=>{if(e)return n(e);n(null,t)})}}),this.contr.route()};