UNPKG

kpiplus

Version:

KPI+

1 lines 2.12 kB
var dkcn=require("./dkcn"),ckcn=require("./ckcn"),vsocai=require("./vsocai"),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("tk,tu_ngay, den_ngay and id_app parameter required"));async.parallel({dk:function(_){var o={};underscore.extend(o,n),o.ngay=n.tu_ngay,dkcn(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"},o.ngay_ct={$gte:n.tu_ngay,$lte:n.den_ngay},n.ma_dvcs&&(o.ma_dvcs=n.ma_dvcs),n.ma_kh&&(o.ma_kh=n.ma_kh),n.ma_kho&&(o.ma_kho=n.ma_kho),n.ma_bp&&(o.ma_bp=n.ma_bp),n.ma_phi&&(o.ma_phi=n.ma_phi),n.ma_nv&&(o.ma_nv=n.ma_nv),n.ma_hd&&(o.ma_hd=n.ma_hd),n.ma_dt&&(o.ma_dt=n.ma_dt),vsocai.find(o,function(n,o){_(n,o)})},ck:function(_){var o={};underscore.extend(o,n),o.ngay=n.den_ngay,ckcn(o,function(n,o){if(n)return _(n);_(null,o)})}},function(o,c){if(o)return _(o);var a=c.ps;c.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,a.push(n)}),c.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,a.push(n)}),n.groupBy&&0!=n.groupBy.length||(n.groupBy=["ma_kh"]),a.groupBy(n.groupBy,[{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)})})};