flexbiz-server
Version:
Flexible Server
8 lines (7 loc) • 3.03 kB
JavaScript
var dkdt=require("./dkdt"),ckdt=require("./ckdt"),psdt=require("./psdt");const async=require("async"),underscore=require("underscore");
module.exports=function($query$$,$fn$$){if(!($query$$.tk&&$query$$.tu_ngay&&$query$$.den_ngay&&$query$$.id_app))return $fn$$(Error("H\u00e0m n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tu_ngay,den_ngay,id_app,tk"));$query$$.ma_dvcs||($query$$.ma_dvcs="");async.parallel({dk:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.tu_ngay;dkdt($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);
$callback$$(null,$result$$)})})},ps:function($callback$$){setImmediate(()=>{let $condition$$={id_app:$query$$.id_app};$condition$$.tk={$regex:"^"+$query$$.tk,$options:"i"};$query$$.ma_dt&&($condition$$.ma_dt=$query$$.ma_dt);$condition$$.ma_dvcs={$regex:$query$$.ma_dvcs,$options:"i"};$condition$$.ngay_ct={$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay};psdt($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})},ck:function($callback$$){setImmediate(()=>
{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.den_ngay;ckdt($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})}},function($error$$,$results$$){if($error$$)return $fn$$($error$$);setImmediate(()=>{let $data$$=$results$$.ps;$results$$.dk.forEach(function($r$$){$r$$.dk_no=$r$$.du_no00;$r$$.dk_co=$r$$.du_co00;$r$$.dk_no_nt=$r$$.du_no_nt00;$r$$.dk_co_nt=$r$$.du_co_nt00;$data$$.push($r$$)});$results$$.ck.forEach(function($r$$){$r$$.ck_no=
$r$$.du_no00;$r$$.ck_co=$r$$.du_co00;$r$$.ck_no_nt=$r$$.du_no_nt00;$r$$.ck_co_nt=$r$$.du_co_nt00;$data$$.push($r$$)});$data$$.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($error$$,$data$$){$data$$.forEach($d$$=>{$d$$.dk_no-=$d$$.dk_co;$d$$.dk_no>0?$d$$.dk_co=0:($d$$.dk_co=-$d$$.dk_no,$d$$.dk_no=0);$d$$.dk_no_nt-=$d$$.dk_co_nt;$d$$.dk_no_nt>0?$d$$.dk_co_nt=0:($d$$.dk_co_nt=-$d$$.dk_no_nt,$d$$.dk_no_nt=0);$d$$.ck_no-=$d$$.ck_co;$d$$.ck_no>0?$d$$.ck_co=0:($d$$.ck_co=-$d$$.ck_no,$d$$.ck_no=0);$d$$.ck_no_nt-=$d$$.ck_co_nt;$d$$.ck_no_nt>0?$d$$.ck_co_nt=0:($d$$.ck_co_nt=-$d$$.ck_no_nt,$d$$.ck_no_nt=0)});$data$$=$data$$.filter($row$$=>Math.abs($row$$.dk_no)+
Math.abs($row$$.dk_co)+Math.abs($row$$.ps_no)+Math.abs($row$$.ps_co)+Math.abs($row$$.ck_no)+Math.abs($row$$.ck_co)+(Math.abs($row$$.dk_no_nt)+Math.abs($row$$.dk_co_nt)+Math.abs($row$$.ps_no_nt)+Math.abs($row$$.ps_co_nt)+Math.abs($row$$.ck_no_nt)+Math.abs($row$$.ck_co_nt))!==0);$fn$$(null,$data$$)})})})};