flexbiz-server
Version:
Flexible Server
15 lines (14 loc) • 6.33 kB
JavaScript
const dkcn=require("./dkcn"),ckcn=require("./ckcn"),vsocai=require("./vsocai"),_=require("lodash"),permistion=require("./permission");
module.exports=async($query$$,$fn$$)=>{try{if(!($query$$.tk&&$query$$.tu_ngay&&$query$$.den_ngay&&$query$$.id_app))throw Error("tk, tu_ngay, den_ngay and id_app parameter required");const {id_app:$id_app$$}=$query$$;if(!$query$$.ma_kh&&($query$$.nh_kh||$query$$.phu_trach)){var $_q__q$$={};$query$$.nh_kh&&($_q__q$$.nh_kh=$query$$.nh_kh);if($query$$.phu_trach){let $ds_phu_trach$$=await permistion.dsDangPhuTrach($id_app$$,$query$$.phu_trach);$ds_phu_trach$$.push($query$$.phu_trach);$_q__q$$.$or=[{phu_trach:{$in:$ds_phu_trach$$}},
{of_user:{$in:$ds_phu_trach$$}}]}const $Customer$$=global.getModel("customer");$query$$.ma_kh=await $Customer$$.getList($id_app$$,$_q__q$$,"ma_kh")}if(!$query$$.ma_nv&&$query$$.phu_trach_nv){let $ds_phu_trach$$=await permistion.dsDangPhuTrach($id_app$$,$query$$.phu_trach_nv);$ds_phu_trach$$.push($query$$.phu_trach_nv);$_q__q$$={id_app:$id_app$$,$or:[{phu_trach:{$in:$ds_phu_trach$$}},{user:{$in:$ds_phu_trach$$}}]};var $_q$$=(await global.getModel("dmnv").find($_q__q$$,{ma_nv:1}).lean()).map($nv$$=>
$nv$$.ma_nv);$query$$.ma_nv={$in:$_q$$}}if(!$query$$.ma_nv_giao_hang&&$query$$.phu_trach_gia_hang){let $ds_phu_trach$$=await permistion.dsDangPhuTrach($id_app$$,$query$$.phu_trach_gia_hang);$ds_phu_trach$$.push($query$$.phu_trach_gia_hang);$_q$$={id_app:$id_app$$,$or:[{phu_trach:{$in:$ds_phu_trach$$}},{user:{$in:$ds_phu_trach$$}}]};var $_q$jscomp$3_ma_nvs$$=(await global.getModel("dmnv").find($_q$$,{ma_nv:1}).lean()).map($nv$$=>$nv$$.ma_nv);$query$$.ma_nv_giao_hang={$in:$_q$jscomp$3_ma_nvs$$}}if(!$query$$.phu_xe&&
$query$$.phu_trach_phu_xe){let $ds_phu_trach$$=await permistion.dsDangPhuTrach($id_app$$,$query$$.phu_trach_phu_xe);$ds_phu_trach$$.push($query$$.phu_trach_phu_xe);$_q$jscomp$3_ma_nvs$$={id_app:$id_app$$,$or:[{phu_trach:{$in:$ds_phu_trach$$}},{user:{$in:$ds_phu_trach$$}}]};let $ma_nvs$$=(await global.getModel("dmnv").find($_q$jscomp$3_ma_nvs$$,{ma_nv:1}).lean()).map($nv$$=>$nv$$.ma_nv);$query$$.phu_xe={$in:$ma_nvs$$}}let $groupBy$$=$query$$.groupBy||["ma_kh"];if(_.isString($groupBy$$)&&($groupBy$$.indexOf("[")>=
0||$groupBy$$.indexOf("{")>=0))try{$groupBy$$=JSON.parse($groupBy$$)}catch($e$$){$groupBy$$=[$groupBy$$]}const $buildCondition$$=$baseCond$$=>{const $cond$$={...$baseCond$$};$query$$.ma_dvcs&&($cond$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_kh&&(_.isArray($query$$.ma_kh)&&$query$$.ma_kh.length>0?$cond$$.ma_kh={$in:$query$$.ma_kh}:$cond$$.ma_kh=$query$$.ma_kh);"ma_kho ma_bp ma_phi ma_nv ma_nv_giao_hang phu_xe ma_hd ma_dt".split(" ").forEach($f$$=>{$query$$[$f$$]&&($cond$$[$f$$]=$query$$[$f$$])});return $cond$$};
var $errMsg_pDauKy$$=new Promise(($resolve$$,$reject$$)=>{const $cond$$=$buildCondition$$($query$$);$cond$$.ngay=$query$$.tu_ngay;dkcn($cond$$,($err$$,$res$$)=>$err$$?$reject$$($err$$):$resolve$$($res$$))});const $pCuoiKy$$=new Promise(($resolve$$,$reject$$)=>{const $cond$$=$buildCondition$$($query$$);$cond$$.ngay=$query$$.den_ngay;ckcn($cond$$,($err$$,$res$$)=>$err$$?$reject$$($err$$):$resolve$$($res$$))}),$pPhatSinh$$=new Promise(($resolve$$,$reject$$)=>{const $finalCond$$=$buildCondition$$({id_app:$id_app$$,
ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},tk:{$regex:"^"+$query$$.tk,$options:"i"}});vsocai.find($finalCond$$,($err$$,$res$$)=>$err$$?$reject$$($err$$):$resolve$$($res$$),{model:"socaitc",groupBy:$groupBy$$})}),[$dkRes$$,$ckRes$$,$psRes$$]=await Promise.all([$errMsg_pDauKy$$,$pCuoiKy$$,$pPhatSinh$$]),$dataMap$$=new Map,$getGroupKey$$=$item$$=>$groupBy$$.map($k$$=>$item$$[$k$$]||"").join("||"),$initItem$$=$keyData$$=>({...$keyData$$,dk_no:0,dk_co:0,dk_no_nt:0,dk_co_nt:0,ps_no:0,ps_co:0,
ps_no_nt:0,ps_co_nt:0,ck_no:0,ck_co:0,ck_no_nt:0,ck_co_nt:0});$dkRes$$.forEach($r$$=>{var $item$jscomp$1_key$$=$getGroupKey$$($r$$);$dataMap$$.has($item$jscomp$1_key$$)||$dataMap$$.set($item$jscomp$1_key$$,$initItem$$(_.pick($r$$,$groupBy$$)));$item$jscomp$1_key$$=$dataMap$$.get($item$jscomp$1_key$$);$item$jscomp$1_key$$.dk_no+=$r$$.du_no00||0;$item$jscomp$1_key$$.dk_co+=$r$$.du_co00||0;$item$jscomp$1_key$$.dk_no_nt+=$r$$.du_no_nt00||0;$item$jscomp$1_key$$.dk_co_nt+=$r$$.du_co_nt00||0});$psRes$$.forEach($r$$=>
{var $item$jscomp$2_key$$=$getGroupKey$$($r$$);$dataMap$$.has($item$jscomp$2_key$$)||$dataMap$$.set($item$jscomp$2_key$$,$initItem$$(_.pick($r$$,$groupBy$$)));$item$jscomp$2_key$$=$dataMap$$.get($item$jscomp$2_key$$);$item$jscomp$2_key$$.ps_no+=$r$$.ps_no||0;$item$jscomp$2_key$$.ps_co+=$r$$.ps_co||0;$item$jscomp$2_key$$.ps_no_nt+=$r$$.ps_no_nt||0;$item$jscomp$2_key$$.ps_co_nt+=$r$$.ps_co_nt||0});$ckRes$$.forEach($r$$=>{var $item$jscomp$3_key$$=$getGroupKey$$($r$$);$dataMap$$.has($item$jscomp$3_key$$)||
$dataMap$$.set($item$jscomp$3_key$$,$initItem$$(_.pick($r$$,$groupBy$$)));$item$jscomp$3_key$$=$dataMap$$.get($item$jscomp$3_key$$);$item$jscomp$3_key$$.ck_no+=$r$$.du_no00||0;$item$jscomp$3_key$$.ck_co+=$r$$.du_co00||0;$item$jscomp$3_key$$.ck_no_nt+=$r$$.du_no_nt00||0;$item$jscomp$3_key$$.ck_co_nt+=$r$$.du_co_nt00||0});let $finalData$$=Array.from($dataMap$$.values()).map($d$$=>{var $netCk_netDk$$=$d$$.dk_no-$d$$.dk_co,$netCkNt_netDkNt$$=$d$$.dk_no_nt-$d$$.dk_co_nt;$netCk_netDk$$>0?($d$$.dk_no=$netCk_netDk$$,
$d$$.dk_co=0):($d$$.dk_co=Math.abs($netCk_netDk$$),$d$$.dk_no=0);$netCkNt_netDkNt$$>0?($d$$.dk_no_nt=$netCkNt_netDkNt$$,$d$$.dk_co_nt=0):($d$$.dk_co_nt=Math.abs($netCkNt_netDkNt$$),$d$$.dk_no_nt=0);$netCk_netDk$$=$d$$.ck_no-$d$$.ck_co;$netCkNt_netDkNt$$=$d$$.ck_no_nt-$d$$.ck_co_nt;$netCk_netDk$$>0?($d$$.ck_no=$netCk_netDk$$,$d$$.ck_co=0):($d$$.ck_co=Math.abs($netCk_netDk$$),$d$$.ck_no=0);$netCkNt_netDkNt$$>0?($d$$.ck_no_nt=$netCkNt_netDkNt$$,$d$$.ck_co_nt=0):($d$$.ck_co_nt=Math.abs($netCkNt_netDkNt$$),
$d$$.ck_no_nt=0);return $d$$});$finalData$$=$finalData$$.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$$&&$fn$$(null,$finalData$$);return $finalData$$}catch($error$$){throw $errMsg_pDauKy$$=$error$$.message||$error$$,$fn$$&&$fn$$(Error($errMsg_pDauKy$$)),
$error$$;}};