UNPKG

kpiplus

Version:

KPI+

1 lines 1.13 kB
var model=require("../../models/dmdoi"),dmbp=require("../../models/dmbp"),User=require("../../models/user"),arrays=require("../../libs/array-funcs"),controller=require("../../controllers/controller"),async=require("async"),underscore=require("underscore");module.exports=function(e){(this.contr=new controller(e,model,"dmdoi",{sort:{ma_bp:1,ma_doi:1},unique:["ma_doi"],onView:function(e,r,n){async.parallel({dp:function(n){r.joinModel2(e.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}],function(e){n(null,r)})},pt:function(e){r.joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(n){e(null,r)})},ph:function(e){r.joinModel2(null,User,[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(n){e(null,r)})}},e=>{n(null,r)})},onRightByItem:(e,r,n)=>{async.parallel({phu_trach_bp:r=>{dmbp.find({id_app:e.current_id_app,phu_trach:e.email}).lean().exec((e,n)=>{r(null,n)})}},(e,l)=>{if(e)return n(e);let o=[{ma_bp:{$in:underscore.pluck(l.phu_trach_bp,"ma_bp")}}],u=[];for(let e in r){let n={};n[e]=r[e],u.push(n)}o.push({$and:u}),n(null,{$or:o})})}})).route()};