UNPKG

kpiplus

Version:

KPI+

1 lines 3.31 kB
"use strict";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");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,ma_yt");Number(_.thang),Number(_.nam),new Promise((t,s)=>{let d={id_app:_.id_app,nam:_.nam,thang:_.thang};_.ma_bp&&(d.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(d.ma_lsx=_.ma_lsx.toUpperCase()),gt_ctgt.find(d).lean().exec((_,d)=>{if(_)return s(_);t(d)})}).then(t=>{return new Promise((s,d)=>{let e=underscore.pluck(t,"ma_yt");dmyt.find({id_app:_.id_app,pt_phan_bo:"2",th_sp:!1,ma_yt:{$nin:e},yt_tinh_hs_pb:{$in:e}}).lean().exec((_,e)=>{if(_)return d(_);s({yts:e,ctgt_tinhheso:t})})})}).then(t=>{return new Promise((s,d)=>{let e=underscore.pluck(t.yts,"ma_yt"),n={id_app:_.id_app,nam:_.nam,thang:_.thang,ma_yt:{$in:e}};_.ma_bp&&(n.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(n.ma_lsx=_.ma_lsx.toUpperCase()),gt_thcppstk.find(n).lean().exec((_,e)=>{if(_)return d(_);e.groupBy(["ma_bp","ma_yt","ma_lsx"],["dd_dk","dd_dk_nt","ps_tk","ps_tk_nt"],(_,e)=>{if(_)return d(_);t.cppstk=e,s(t)})})})}).then(t=>{return new Promise((s,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((_,e)=>{if(_)return d(_);t.sltk=e,s(t)})})}).then(_=>{async.map(_.yts,(t,s)=>{let d=underscore.filter(_.ctgt_tinhheso,_=>_.ma_yt==t.yt_tinh_hs_pb),e=d.csum("t_gt"),n=[];d.forEach(_=>{let s={ma_sp:_.ma_sp,ma_bp:_.ma_bp,ma_lsx:_.ma_lsx,ma_yt:t.ma_yt,id_app:_.id_app,nam:_.nam,thang:_.thang};s.he_so=0!==e?_.t_gt/e:0,s.yt_trung_gian=t.yt_trung_gian,s.cong_tru=t.cong_tru,n.push(s)});let a=underscore.filter(_.cppstk,_=>_.ma_yt==t.ma_yt);n.crossJoin(a,{ma_bp:"ma_bp",ma_lsx:"ma_lsx"},_=>{s(null,_)})},(s,d)=>{if(s)return t(s);let e=[];d.forEach(_=>{_.forEach(_=>{e.push(_)})}),e.crossJoin(_.sltk,{ma_sp:"ma_sp",ma_bp:"ma_bp",ma_lsx:"ma_lsx"},_=>{for(let t of _)delete t._id,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(_,(_,s)=>{_&&console.log(_),t(_,s)})})})}).catch(_=>{t(_)})};