kpiplus
Version:
KPI+
1 lines • 2.58 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),e=Number(_.nam);moment(new Date(e,d-1,1)).startOf("date").toDate(),moment(new Date(e,d,0)).endOf("date").toDate();dmyt.find({id_app:_.id_app,th_sp:!0}).lean().exec((s,a)=>{if(s)return t(s);let l=[];async.map(a,(t,s)=>{async.parallel({gt:s=>{let a={id_app:_.id_app,ma_yt:t.ma_yt,nam:_.nam,thang:_.thang};_.ma_bp&&(a.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(a.ma_lsx=_.ma_lsx.toUpperCase()),gt_thcppstk.find(a).lean().exec((a,n)=>{if(a)return s(a);(n=underscore.filter(n,_=>!!_.ma_sp)).groupBy(["ma_sp","ma_bp","ma_yt","ma_lsx"],["dd_dk","dd_dk_nt","ps_tk","ps_tk_nt"],(a,n)=>{if(a)return s(a);n.forEach(s=>{s.co_do_dang=t.co_do_dang,s.nam=e,s.thang=d,s.id_app=_.id_app,s.yt_trung_gian=t.yt_trung_gian,s.cong_tru=t.cong_tru}),l=n,s(null)})})}},function(_,t){s(_,t.gt)})},(d,e)=>{if(d)return t(d);let s={id_app:_.id_app,nam:_.nam,thang:_.thang};_.ma_bp&&(s.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(s.ma_lsx=_.ma_lsx.toUpperCase()),gt_sltk.find(s).lean().exec((_,d)=>{if(_)return callback(_);l.joinModel2(d,[{where:{ma_sp:"ma_sp",ma_bp:"ma_bp",ma_lsx:"ma_lsx"},fields:["sl_dd_dk","sl_nk_tk","sl_sx_tk","sl_dd_ck","ty_le_ht_dk","ty_le_ht_ck"]}],_=>{for(let _ of l)_.co_do_dang||(_.sl_dd_ck=0,_.sl_dd_dk=0,_.ty_le_ht_dk=0,_.ty_le_ht_ck=0),_.sl_dd_dk||(_.sl_dd_dk=0),_.sl_nk_tk||(_.sl_nk_tk=0),_.sl_sx_tk||(_.sl_sx_tk=0),_.sl_dd_ck||(_.sl_dd_ck=0),_.ty_le_ht_ck||(_.ty_le_ht_ck=0),_.ty_le_ht_dk||(_.ty_le_ht_dk=0),_.sl_dd_dk_qd=_.sl_dd_dk*_.ty_le_ht_dk/100,_.sl_dd_ck_qd=_.sl_dd_ck*_.ty_le_ht_ck/100,_.sl_sx_tk=_.sl_dd_ck+_.sl_nk_tk-_.sl_dd_dk,_.sl_sp_ht_qd=_.sl_dd_ck_qd+_.sl_nk_tk,_.t_cp_sx=_.dd_dk+_.ps_tk,_.t_cp_sx_nt=_.dd_dk_nt+_.ps_tk_nt,_.gt=0===_.sl_nk_tk?0:_.t_cp_sx/_.sl_sp_ht_qd,_.gt_nt=0===_.sl_nk_tk?0:_.t_cp_sx_nt/_.sl_sp_ht_qd,_.t_gt=_.gt*_.sl_nk_tk,_.t_gt_nt=_.gt_nt*_.sl_nk_tk,_.dd_ck=_.t_cp_sx-_.t_gt,_.dd_ck_nt=_.t_cp_sx_nt-_.t_gt_nt;gt_ctgt.create(l,(_,d)=>{_&&(console.log(_),console.log(l)),t(_,d)})})})})})};