kpiplus
Version:
KPI+
1 lines • 1.95 kB
JavaScript
var dkdt=require("./dkdt"),ckdt=require("./ckdt"),psdt=require("./psdt"),arrayFunctions=require("./array-funcs"),Account=require("../models/account"),async=require("async"),underscore=require("underscore");module.exports=function(n,_){if(!(n.tk&&n.tu_ngay&&n.den_ngay&&n.id_app))return _(new Error("Hàm này yêu cầu các tham số tu_ngay,den_ngay,id_app,tk"));n.ma_dvcs||(n.ma_dvcs=""),async.parallel({dk:function(_){var o={};underscore.extend(o,n),o.ngay=n.tu_ngay,dkdt(o,function(n,o){if(n)return _(n);_(null,o)})},ps:function(_){var o={id_app:n.id_app};o.tk={$regex:"^"+n.tk,$options:"i"},n.ma_dt&&(o.ma_dt=n.ma_dt),o.ma_dvcs={$regex:n.ma_dvcs,$options:"i"},o.ngay_ct={$gte:n.tu_ngay,$lte:n.den_ngay},psdt(o,function(n,o){if(n)return _(n);_(null,o)})},ck:function(_){var o={};underscore.extend(o,n),o.ngay=n.den_ngay,ckdt(o,function(n,o){if(n)return _(n);_(null,o)})}},function(n,o){if(n)return _(n);var c=o.ps;o.dk.forEach(function(n){n.dk_no=n.du_no00,n.dk_co=n.du_co00,n.dk_no_nt=n.du_no_nt00,n.dk_co_nt=n.du_co_nt00,c.push(n)}),o.ck.forEach(function(n){n.ck_no=n.du_no00,n.ck_co=n.du_co00,n.ck_no_nt=n.du_no_nt00,n.ck_co_nt=n.du_co_nt00,c.push(n)}),c.groupBy("ma_dt",[{name:"dk_no",value:"dk_no"},{name:"dk_co",value:"dk_co"},{name:"dk_no_nt",value:"dk_no_nt"},{name:"dk_co_nt",value:"dk_co_nt"},{name:"ps_no",value:"ps_no"},{name:"ps_co",value:"ps_co"},{name:"ps_no_nt",value:"ps_no_nt"},{name:"ps_co_nt",value:"ps_co_nt"},{name:"ck_no",value:"ck_no"},{name:"ck_co",value:"ck_co"},{name:"ck_no_nt",value:"ck_no_nt"},{name:"ck_co_nt",value:"ck_co_nt"}],function(n,o){o.forEach(n=>{n.dk_no=n.dk_no-n.dk_co,n.dk_no>0?n.dk_co=0:(n.dk_co=-n.dk_no,n.dk_no=0),n.dk_no_nt=n.dk_no_nt-n.dk_co_nt,n.dk_no_nt>0?n.dk_co_nt=0:(n.dk_co_nt=-n.dk_no_nt,n.dk_no_nt=0),n.ck_no=n.ck_no-n.ck_co,n.ck_no>0?n.ck_co=0:(n.ck_co=-n.ck_no,n.ck_no=0),n.ck_no_nt=n.ck_no_nt-n.ck_co_nt,n.ck_no_nt>0?n.ck_co_nt=0:(n.ck_co_nt=-n.ck_no_nt,n.ck_no_nt=0)}),_(null,o)})})};