flexbiz-server
Version:
Flexible Server
12 lines (11 loc) • 5.51 kB
JavaScript
const dktk=require("./dktk"),cktk=require("./cktk"),pstk=require("./pstk"),Account=global.getModel("account"),async=require("async"),underscore=require("underscore"),setBacTKCon=($data$$,$tk_me$$,$bac_tk_me$$)=>{$data$$.filter($d$$=>$d$$.tk_me==$tk_me$$).forEach($tk$$=>{$tk$$.bac_tk=$bac_tk_me$$+1;setBacTKCon($data$$,$tk$$.tk,$tk$$.bac_tk)})};
module.exports=function($query$$,$fn$$){if(!$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"));$query$$.tk||($query$$.tk="");let $bac_tk$$=Number($query$$.bac_tk||0);delete $query$$.bac_tk;let $chi_lay_tk_con$$=$query$$.chi_lay_tk_con;delete $query$$.chi_lay_tk_con;async.parallel({dk:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=
$query$$.tu_ngay;$condition$$.groupBy=["tk"];dktk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)},{model:"socaitc"})})},ps:function($callback$$){setImmediate(()=>{let $condition$$={id_app:$query$$.id_app},$tk$$=$query$$.tk;if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||="^";$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};$condition$$.tk=
$tk$$;$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$condition$$.ngay_ct={$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay};$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);pstk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)},{model:"socaitt",groupBy:["tk"]})})},ck:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.den_ngay;$condition$$.groupBy=
["tk"];cktk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)},{model:"socaitc"})})}},function($error$$,$results$$){if($error$$)return $fn$$($error$$);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("tk",[{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$$){if($chi_lay_tk_con$$)return $fn$$(null,
$data$$);let $cdpstkme$$=[];async.map($data$$,function($acc$$,$callback$$){setImmediate(()=>{$acc$$.loai_tk=1;let $tk$$=$acc$$.tk;async.forever(function($next$$){Account.find({tk:$tk$$,id_app:$query$$.id_app},{tk_me:1},function($error1_vTK$$,$r$$){$r$$&&$r$$.length==1&&$r$$[0].tk_me?($error1_vTK$$={},underscore.extend($error1_vTK$$,$acc$$),$error1_vTK$$.tk=$r$$[0].tk_me,$cdpstkme$$.push($error1_vTK$$),$tk$$=$r$$[0].tk_me,$next$$()):$next$$("finish or has error")})},function(){$callback$$()})})},function(){$cdpstkme$$.groupBy("tk",
[{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$$,$dataTkMe$$){if($error$$)return $fn$$($error$$);async.map($dataTkMe$$,function($tkMe$$,$callback$$){setImmediate(()=>
{Account.find({tk:$tkMe$$.tk,id_app:$query$$.id_app},{tk_cn:1,loai_tk:1},function($e3_tk$$,$rtk$$){if($rtk$$?.length!=1)return $callback$$(null);$e3_tk$$=$rtk$$[0];$tkMe$$.loai_tk=$e3_tk$$.loai_tk;if($e3_tk$$.tk_cn&&!$query$$.bu_tru)return $data$$.push($tkMe$$),$callback$$(null);$tkMe$$.dk_no-=$tkMe$$.dk_co;$tkMe$$.ck_no-=$tkMe$$.ck_co;$tkMe$$.dk_no_nt-=$tkMe$$.dk_co_nt;$tkMe$$.ck_no_nt-=$tkMe$$.ck_co_nt;$tkMe$$.dk_no<0?($tkMe$$.dk_co=Math.abs($tkMe$$.dk_no),$tkMe$$.dk_no=0):$tkMe$$.dk_co=0;$tkMe$$.dk_no_nt<
0?($tkMe$$.dk_co_nt=Math.abs($tkMe$$.dk_no_nt),$tkMe$$.dk_no_nt=0):$tkMe$$.dk_co_nt=0;$tkMe$$.ck_no<0?($tkMe$$.ck_co=Math.abs($tkMe$$.ck_no),$tkMe$$.ck_no=0):$tkMe$$.ck_co=0;$tkMe$$.ck_no_nt<0?($tkMe$$.ck_co_nt=Math.abs($tkMe$$.ck_no_nt),$tkMe$$.ck_no_nt=0):$tkMe$$.ck_co_nt=0;$data$$.push($tkMe$$);$callback$$(null)})})},async function(){await $data$$.asyncJoinModel2($query$$.id_app,Account,{where:"tk",fields:"tk_me"});$data$$.filter($d$$=>!$d$$.tk_me).forEach($d$$=>{$d$$.bac_tk=1;setBacTKCon($data$$,
$d$$.tk,$d$$.bac_tk)});$data$$.filter($d$$=>$d$$.loai_tk==0||$d$$.bac_tk===1).forEach($d$$=>$d$$.bold=!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&&(!$bac_tk$$||$row$$.bac_tk<=Number($bac_tk$$)));$fn$$(null,$data$$)})})})})})};