UNPKG

kpiplus

Version:

KPI+

1 lines 1.32 kB
var socai=require("../../models/socai"),kbbtpb=require("../../models/kbbtpb"),arrayfuncs=require("../../libs/array-funcs"),cktk=require("../../libs/cktk"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT");module.exports=function(n){new controller(n,"getbtpb",function(n,_){var e=n.query;kbbtpb.find({id_app:e.id_app,ma_dvcs:e.ma_dvcs}).sort({stt:1}).lean().exec(function(n,t){if(n)return _(n);async.map(t,function(n,_){var t=n.tk_co;if(n.tien=0,n.tien_da_phan_bo=0,n.so_ky_phan_bo||(n.so_ky_phan_bo=1),n.details.forEach(function(_){_.id_kbbtpb=n._id,_.he_so||(_.he_so=1)}),n.tien_can_phan_bo){n.tien=Math.round(n.tien_can_phan_bo/n.so_ky_phan_bo,0);var a={id_kbbtpb:n._id,id_app:e.id_app};e.id_ct&&(a.id_ct={$ne:e.id_ct}),socai.find(a).lean().exec(function(e,t){t&&(n.tien_da_phan_bo=t.csum("tien")),n.tien_da_phan_bo+n.tien>n.tien_can_phan_bo&&(n.tien=n.tien_can_phan_bo-n.tien_da_phan_bo),_(null)})}else{n.tien_can_phan_bo=0,n.so_ky_phan_bo=1;cktk({tk:t,ngay:new Date(e.ngay_ct),id_app:e.id_app,ex_id_ct:e.id_ct},function(e,t){t&&t.forEach(function(_){n.tien_can_phan_bo=n.tien_can_phan_bo+_.du_no00}),n.tien=Math.round(n.tien_can_phan_bo/n.so_ky_phan_bo,0),_(null)})}},function(n,e){return t=underscore.filter(t,function(n){return n.tien>0}),_(n,t)})})})};