UNPKG

kpiplus

Version:

KPI+

1 lines 1.74 kB
"use strict";var cdvt=require("../models/cdvt"),sokho=require("../models/sokho"),arrayfuncs=require("./array-funcs"),utils=require("./utils"),async=require("async"),underscore=require("underscore"),moment=require("moment");module.exports=function(a,t){if(!a.ngay&&a.den_ngay&&(a.ngay=a.den_ngay),!a||!a.ngay||!a.id_app)return void t("Lỗi: Báo cáo này yêu cầu các tham số: ngay,id_app");var n,e=a.ma_dvcs,_=a.ma_kho,r=a.ma_vt;r&&underscore.isArray(r)&&(r.forEach(function(a){n=n?n+"|^"+a:"^"+a}),n||(n="^"),r={$regex:n,$options:"i"});let o=moment(a.ngay).endOf("date").toDate();var m=o.getFullYear(),u=moment(o).startOf("year").toDate(),s=a.id_app;async.parallel({dn:t=>{var n={id_app:s,nam:m};_&&(n.ma_kho=_),e&&(n.ma_dvcs=e),r&&(n.ma_vt=r),a.ma_lo&&(n.ma_lo=a.ma_lo),a.han_sd&&(n.han_sd=a.han_sd),a.ma_tt1&&(n.ma_tt1=a.ma_tt1),a.ma_tt2&&(n.ma_tt2=a.ma_tt2),a.ma_tt3&&(n.ma_tt3=a.ma_tt3),cdvt.find(n).lean().exec(function(a,n){a?t(a):t(null,n)})},ps:t=>{var n={id_app:s,ngay_ct:{$gte:u,$lte:o}};_&&(n.ma_kho=_),e&&(n.ma_dvcs=e),r&&(n.ma_vt=r),a.ma_lo&&(n.ma_lo=a.ma_lo),a.han_sd&&(n.han_sd=a.han_sd),a.ma_tt1&&(n.ma_tt1=a.ma_tt1),a.ma_tt2&&(n.ma_tt2=a.ma_tt2),a.ma_tt3&&(n.ma_tt3=a.ma_tt3),sokho.find(n).lean().exec(function(a,n){a?t(a):t(null,n)})}},(n,e)=>{if(n)return void t(n);var _=e.dn.concat(e.ps);let r=a.groupBy;if(r||(r=["ma_vt"]),!underscore.isArray(r)&&r.indexOf("[")>=0)try{r=JSON.parse(r)}catch(a){}_.groupBy(r,["sl_nhap","sl_xuat","ton00","du00","tien_nhap","tien_xuat"],(a,n)=>{if(a)return t(a);for(let a of n)a.ton00=utils.round(a.ton00+a.sl_nhap-a.sl_xuat,2),a.du00=Math.round(a.du00,0)+Math.round(a.tien_nhap,0)-Math.round(a.tien_xuat,0),a.sl_nhap=0,a.sl_xuat=0,a.tien_nhap=0,a.tien_xuat=0;t(null,n)})})};