UNPKG

kpiplus

Version:

KPI+

1 lines 1.67 kB
var dkvt=require("./dkvt"),sokho=require("../models/sokho"),dmvt=require("../models/dmvt"),arrayfuncs=require("./array-funcs"),async=require("async"),underscore=require("underscore");module.exports=function(a,t){if(!(a&&a.tu_ngay&&a.den_ngay&&a.id_app))return void t("Lỗi: Báo cáo này yêu cầu các tham số: tu_ngay,den_ngay,id_app");let n=a.id_app;async.parallel({dn:function(t){dkvt(a,function(a,e){if(a)return t(a);e.joinModel2(n,dmvt,{where:"ma_vt",fields:["ma_nvt","ma_nvt2","ma_nvt3","ma_nvt4"]},()=>{t(null,e)})})},ps:function(t){let e=a.ma_vt;underscore.isArray(e)&&(e={$in:e});let _=a.tu_ngay,u=a.den_ngay,o={id_app:n,ngay_ct:{$gte:_,$lte:u}};a.ma_kho&&(o.ma_kho=a.ma_kho),a.ma_dvcs&&(o.ma_dvcs=a.ma_dvcs),e&&(o.ma_vt=e),a.ma_lo&&(o.ma_lo=a.ma_lo),a.ma_tt1&&(o.ma_tt1=a.ma_tt1),a.ma_tt2&&(o.ma_tt2=a.ma_tt2),a.ma_tt3&&(o.ma_tt3=a.ma_tt3),sokho.find(o).lean().exec(function(a,e){a?t(a):e.joinModel2(n,dmvt,{where:"ma_vt",fields:["ma_nvt","ma_nvt2","ma_nvt3","ma_nvt4"]},()=>{t(null,e)})})}},function(n,e){if(n)return void t(n);var _=e.dn.concat(e.ps);let u=a.groupBy;if(!underscore.isArray(u))try{u=JSON.parse(u)}catch(a){}u||(u=["ma_vt"]);_.groupBy(u,[{name:"ton_dau",value:"ton00"},{name:"du_dau",value:"du00"},"sl_nhap","sl_xuat","tien_nhap","tien_xuat"],(a,n)=>{if(a)return t(a);for(let a of n)a.ton_cuoi=a.ton_dau+a.sl_nhap-a.sl_xuat,a.du_cuoi=Math.round(a.du_dau,0)+Math.round(a.tien_nhap,0)-Math.round(a.tien_xuat,0);let e=underscore.filter(n,function(a){return Math.abs(a.ton_dau)+Math.abs(a.du_cuoi)+Math.abs(a.sl_nhap)+Math.abs(a.tien_nhap)+Math.abs(a.sl_xuat)+Math.abs(a.tien_xuat)+Math.abs(a.ton_cuoi)+Math.abs(a.du_cuoi)!==0});t(null,e)})})};