kpiplus
Version:
KPI+
1 lines • 2.64 kB
JavaScript
;var sokho=require("../models/sokho"),gt_sltk=require("../models/gt_sltk"),spdd_dk=require("../models/spdd_dk"),spdd_ck=require("../models/spdd_ck"),arrayfuncs=require("./array-funcs"),async=require("async"),underscore=require("underscore"),moment=require("moment");module.exports=function(_,a){if(!(_&&_.thang&&_.nam&&_.id_app))return a("Lỗi: Tính năng này yêu cầu các tham số: thang,nam,id_app");let e=Number(_.thang),t=Number(_.nam),s=moment(new Date(t,e-1,1)).startOf("date").toDate(),p=moment(new Date(t,e,0)).endOf("date").toDate(),d=[];async.parallel({nhapkhotp:a=>{let e={id_app:_.id_app,ngay_ct:{$gte:s,$lte:p},ma_gd:"1",ma_ct:"PNK"};_.ma_bp&&(e.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(e.ma_lsx=_.ma_lsx.toUpperCase()),_.ma_sp&&(e.ma_sp=_.ma_sp.toUpperCase()),sokho.find(e).lean().exec((_,e)=>{if(_)return a(_);for(let _ of e){let a={ma_sp:_.ma_vt,ma_bp:_.ma_bp,ma_lsx:_.ma_lsx,sl_nk_tk:_.sl_nhap_qd,ty_le_ht_dk:0,ty_le_ht_ck:0};d.push(a)}a(null)})},ddck:a=>{let s={id_app:_.id_app,nam:t,thang:e};_.ma_sp&&(s.ma_sp=_.ma_sp.toUpperCase()),_.ma_bp&&(s.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(s.ma_lsx=_.ma_lsx.toUpperCase()),spdd_ck.find(s).lean().exec((_,e)=>{if(_)return a(_);for(let _ of e)_.sl_dd_ck=_.sl_dd,_.ty_le_ht_ck=_.ty_le_ht,_.ty_le_ht_dk=0,d.push(_);a(null)})},dddk:a=>{async.parallel({dauky:a=>{let s={id_app:_.id_app,nam:t,thang:e};_.ma_sp&&(s.ma_sp=_.ma_sp.toUpperCase()),_.ma_bp&&(s.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(s.ma_lsx=_.ma_lsx.toUpperCase()),spdd_dk.find(s).lean().exec((_,e)=>{if(_)return a(_);a(null,e)})},cuoikytruoc:a=>{let s={id_app:_.id_app,nam:t,thang:e-1};0===s.thang&&(s.thang=12,s.nam=s.nam-1),_.ma_sp&&(s.ma_sp=_.ma_sp.toUpperCase()),_.ma_bp&&(s.ma_bp=_.ma_bp.toUpperCase()),_.ma_lsx&&(s.ma_lsx=_.ma_lsx.toUpperCase()),spdd_ck.find(s).lean().exec((_,e)=>{if(_)return a(_);a(null,e)})}},function(_,e){if(_)return a(_);let t=e.dauky;for(let _ of t)_.sl_dd_dk=_.sl_dd,_.ty_le_ht_dk=_.ty_le_ht,_.ty_le_ht_ck=0,d.push(_);for(let _ of e.cuoikytruoc){_.sl_dd_dk=_.sl_dd,_.ty_le_ht_dk=_.ty_le_ht,dk.ty_le_ht_ck=0,underscore.find(t,a=>a.ma_sp==_.ma_sp&&a.ma_bp==_.ma_bp&&a.ma_lsx==_.ma_lsx)||d.push(_)}a(null)})}},function(e,t){if(e)return a(e);d.groupBy(["ma_sp","ma_bp","ma_lsx"],["sl_dd_dk","sl_nk_tk","sl_dd_ck"],function(e,t){if(e)return a(e);for(let a of t)a.id_app=_.id_app,a.nam=_.nam,a.thang=_.thang,a.ty_le_ht_dk||(a.ty_le_ht_dk=0),a.ty_le_ht_ck||(a.ty_le_ht_ck=0),a.sl_nk_tk||(a.sl_nk_tk=0),a.sl_dd_ck||(a.sl_dd_ck=0),a.sl_dd_dk||(a.sl_dd_dk=0),a.sl_sx_tk=a.sl_nk_tk+a.sl_dd_ck-a.sl_dd_dk;gt_sltk.create(t,(_,e)=>{a(_,e)})},{fieldmaxs:["ty_le_ht_dk","ty_le_ht_ck"]})})};