kpiplus
Version:
KPI+
1 lines • 2.71 kB
JavaScript
;var sokho=require("../models/sokho"),socai=require("../models/socai"),dmyt=require("../models/dmyt"),gt_thcppstk=require("../models/gt_thcppstk"),gt_ctgt=require("../models/gt_ctgt"),gt_sltk=require("../models/gt_sltk"),spdd_dk=require("../models/spdd_dk"),spdd_ck=require("../models/spdd_ck"),ytdd_dk=require("../models/ytdd_dk"),ytdd_ck=require("../models/ytdd_ck"),arrayfuncs=require("./array-funcs"),async=require("async"),underscore=require("underscore"),moment=require("moment");module.exports=function(_,t){if(!(_&&_.thang&&_.nam&&_.id_app))return t("Lỗi: Tính năng này yêu cầu các tham số: thang,nam,id_app");let d=Number(_.thang),s=Number(_.nam);moment(new Date(s,d-1,1)).startOf("date").toDate(),moment(new Date(s,d,0)).endOf("date").toDate();dmyt.find({id_app:_.id_app,pt_phan_bo:"1",th_sp:!1}).lean().exec((e,n)=>{if(e)return t(e);let k=[];async.map(n,(t,e)=>{async.parallel({gt:e=>{let n={id_app:_.id_app,ma_yt:t.ma_yt,nam:_.nam,thang:_.thang};_.ma_bp&&(n.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(n.ma_lsx=_.ma_lsx.toUpperCase()),gt_thcppstk.find(n).lean().exec((n,a)=>{if(n)return e(n);a.groupBy(["ma_bp","ma_yt","ma_lsx"],["dd_dk","dd_dk_nt","ps_tk","ps_tk_nt"],(n,a)=>{if(n)return e(n);a.forEach(e=>{e.co_do_dang=t.co_do_dang,e.nam=s,e.thang=d,e.id_app=_.id_app,e.yt_trung_gian=t.yt_trung_gian,e.cong_tru=t.cong_tru}),k=a,e(null)})})}},function(_,t){e(_,t.gt)})},(d,s)=>{if(d)return t(d);let e={id_app:_.id_app,nam:_.nam,thang:_.thang};_.ma_bp&&(e.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(e.ma_lsx=_.ma_lsx.toUpperCase()),gt_sltk.find(e).lean().exec((_,d)=>{if(_)return callback(_);let s=d.csum("sl_nk_tk")+d.csum("sl_dd_ck");for(let _ of d)_.he_so=0!==s?(_.sl_nk_tk+_.sl_dd_ck)/s:0;k.crossJoin(d,{ma_bp:"ma_bp",ma_lsx:"ma_lsx"},_=>{for(let t of _)t.co_do_dang||(t.ty_le_ht_dk=0,t.ty_le_ht_ck=0),t.sl_dd_dk||(t.sl_dd_dk=0),t.sl_nk_tk||(t.sl_nk_tk=0),t.sl_sx_tk||(t.sl_sx_tk=0),t.sl_dd_ck||(t.sl_dd_ck=0),t.ty_le_ht_ck||(t.ty_le_ht_ck=0),t.ty_le_ht_dk||(t.ty_le_ht_dk=0),t.dd_dk||(t.dd_dk=0),t.dd_dk_nt||(t.dd_dk_nt=0),t.ps_tk||(t.ps_tk=0),t.ps_tk_nt||(t.ps_tk_nt=0),t.dd_dk=t.he_so*t.dd_dk,t.dd_dk_nt=t.he_so*t.dd_dk_nt,t.ps_tk=t.he_so*t.ps_tk,t.ps_tk_nt=t.he_so*t.ps_tk_nt,t.sl_dd_dk_qd=t.sl_dd_dk*t.ty_le_ht_dk/100,t.sl_dd_ck_qd=t.sl_dd_ck*t.ty_le_ht_ck/100,t.sl_sx_tk=t.sl_dd_ck+t.sl_nk_tk-t.sl_dd_dk,t.sl_sp_ht_qd=t.sl_dd_ck_qd+t.sl_nk_tk,t.t_cp_sx=t.dd_dk+t.ps_tk,t.t_cp_sx_nt=t.dd_dk_nt+t.ps_tk_nt,t.gt=0===t.sl_nk_tk?0:t.t_cp_sx/t.sl_sp_ht_qd,t.gt_nt=0===t.sl_nk_tk?0:t.t_cp_sx_nt/t.sl_sp_ht_qd,t.t_gt=t.gt*t.sl_nk_tk,t.t_gt_nt=t.gt_nt*t.sl_nk_tk,t.dd_ck=t.t_cp_sx-t.t_gt,t.dd_ck_nt=t.t_cp_sx_nt-t.t_gt_nt;gt_ctgt.create(_,(_,d)=>{_&&console.log(_),t(_,d)})})})})})};