kpiplus
Version:
KPI+
1 lines • 2.31 kB
JavaScript
var task=require("../../models/task"),customer=require("../../models/customer"),dokho=require("../../models/dokho"),async=require("async"),underscore=require("underscore"),arrayfuncs=require("../../libs/array-funcs"),controller=require("../../controllers/controllerRPT");module.exports=function(e){new controller(e,"congviectheokh",function(e,n){var a=e.query;if(!a.tu_ngay||!a.den_ngay)return n("Báo cáo này yêu cầu các tham số:tu_ngay,den_ngay");var t={id_app:a.id_app};a.tu_ngay=new Date(a.tu_ngay),a.tu_ngay.setHours(0),a.tu_ngay.setMinutes(0),a.tu_ngay.setSeconds(0),a.den_ngay=new Date(a.den_ngay),a.den_ngay.setHours(0),a.den_ngay.setMinutes(0),a.den_ngay.setSeconds(0),t.start_date={$gte:a.tu_ngay,$lte:a.den_ngay},a.id_kh?t.id_kh=a.id_kh:t.id_kh={$ne:""};var u=new Date;task.find(t).lean().exec(function(e,a){if(e)return console.log(e,t),n(e);async.map(a,function(e,n){e.t_so_luong=1,e.chua_thuc_hien=0===e.progress?1:0,e.dang_thuc_hien=1===e.progress?1:0,e.hoan_thanh=2===e.progress?1:0,e.tam_dung=3===e.progress?1:0,e.cho=4===e.progress?1:0,e.cham_tien_do=0,e.diem=1,e.due_date&&(e.finished_date?e.finished_date.getTime()>e.due_date.getTime()&&(e.cham_tien_do=1):u.getTime()>e.due_date.getTime()&&(e.cham_tien_do=1)),e.id_dokho&&1===e.hoan_thanh?dokho.findOne({id:e.id_dokho}).lean().exec(function(a,t){t&&(e.diem=t.thoi_gian_du_kien),n(null,e)}):n(null,e)},function(e,a){if(e)return n(e);a.groupBy("id_kh",[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"}],function(e,a){if(e)return n(e);var t=underscore.sortBy(a,function(e){return e.id_kh}),u=1;t.forEach(function(e){e.stt=u,e.bold=!1,u++}),t.joinModel(null,customer,[{akey:"id_kh",bkey:"_id",fields:[{name:"ma_kh",value:"ma_kh"},{name:"ten_kh",value:"ten_kh"}]}],function(e){t.push({ten_kh:"Tổng cộng",t_so_luong:t.csum("t_so_luong"),chua_thuc_hien:t.csum("chua_thuc_hien"),dang_thuc_hien:t.csum("dang_thuc_hien"),hoan_thanh:t.csum("hoan_thanh"),tam_dung:t.csum("tam_dung"),cho:t.csum("cho"),cham_tien_do:t.csum("cham_tien_do"),diem:t.csum("diem"),bold:!0}),n(null,t)})})})})})};