kpiplus
Version:
KPI+
1 lines • 2.06 kB
JavaScript
var socai=require("../../models/socai"),arrayfuncs=require("../../libs/array-funcs"),kbmkqhdkd=require("../../models/kbm_kqhdkd"),stp=require("stp-utils"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),getRegString=function(n){return n.reg()};module.exports=function(n){new controller(n,"kqhdkd",function(n,t){var e,_=n.query;if(!_.den_ngay||!_.tu_ngay)return t("Báo cáo này yêu cầu tham số: từ ngày(tu_ngay), đến ngày(den_ngay)");_.tu_ngay=new Date(_.tu_ngay),_.den_ngay=new Date(_.den_ngay),_.tu_ngay_kt&&_.den_ngay_kt||(_.tu_ngay_kt=new Date(_.tu_ngay),_.tu_ngay_kt.setYear(_.tu_ngay_kt.getFullYear()-1),_.den_ngay_kt=new Date(_.den_ngay),_.den_ngay_kt.setYear(_.den_ngay_kt.getFullYear()-1)),kbmkqhdkd.find({id_app:_.id_app}).lean().exec(function(n,a){if(n)return t(n);e=a,async.map(e,function(n,t){"1"==n.cach_tinh?t(null,n):async.parallel({ky_truoc:function(t){var e={ngay_ct:{$gte:_.tu_ngay_kt,$lte:_.den_ngay_kt},id_app:_.id_app};_.ma_dvcs&&(e.ma_dvcs={$regex:"^"+_.ma_dvcs,$options:"i"});var a=getRegString(n.tk_no);a&&(n.giam_tru_no?e.tk_no={$not:new RegExp(a)}:e.tk_no={$regex:a,$options:"i"});var r=getRegString(n.tk_co);r&&(n.giam_tru_co&&r?e.tk_co={$not:new RegExp(r)}:e.tk_co={$regex:r,$options:"i"}),socai.find(e,{tien:1,tien_nt:1},function(e,_){if(e)return t(e);n.ky_truoc=_.csum("tien"),n.ky_truoc_nt=_.csum("tien_nt"),t(null,n)})},ky_nay:function(t){var e={ngay_ct:{$gte:_.tu_ngay,$lte:_.den_ngay},id_app:_.id_app};_.ma_dvcs&&(e.ma_dvcs={$regex:"^"+_.ma_dvcs,$options:"i"});var a=getRegString(n.tk_no);a&&(n.giam_tru_no?e.tk_no={$not:new RegExp(a)}:e.tk_no={$regex:a,$options:"i"});var r=getRegString(n.tk_co);r&&(n.giam_tru_co&&r?e.tk_co={$not:new RegExp(r)}:e.tk_co={$regex:r,$options:"i"}),socai.find(e,{tien:1,tien_nt:1},function(e,_){if(e)return t(e);n.ky_nay=_.csum("tien"),n.ky_nay_nt=_.csum("tien_nt"),t(null,n)})}},function(n,e){t(n,e)})},function(n,_){if(n)return t(n);stp.calcGrid(e,"ky_nay,ky_nay_nt,ky_truoc,ky_truoc_nt",function(n){t(null,n)})})})})};