UNPKG

flexbiz-server

Version:

Flexible Server

6 lines (5 loc) 2.13 kB
const Customer=global.getModel("customer"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),tuoinophaitra=require("../../libs/tuoinophaitra"),permission=require("../../libs/permission"); module.exports=function($router$$){new controller($router$$,"hoadonmuahangtheohantt",async function($req$$,$callback$$){const $condition$$=$req$$.query;if(!$condition$$.id_app||!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: tu_ngay,den_ngay,id_app");if(!$req$$.user.current_app_info.appAdmin){let $ma_khs$$=await new Promise($resolve$$=>{permission.getRightByItem($req$$.user.current_id_app,global.getModel("customer"),$req$$.user.email, async function($e_khs$$,$_condition$$,$admin$$){if($admin$$)return $resolve$$(null);$_condition$$.id_app=$condition$$.id_app;$condition$$.ma_kh&&($_condition$$.ma_kh=$condition$$.ma_kh);$condition$$.nh_kh&&($_condition$$.nh_kh=$condition$$.nh_kh);$condition$$.phu_trach&&($_condition$$.phu_trach=$condition$$.phu_trach);$e_khs$$=await global.getModel("customer").find($_condition$$,{ma_kh:1}).lean();$resolve$$($e_khs$$.map($k$$=>$k$$.ma_kh))})});$condition$$.ma_kh={$in:$ma_khs$$};delete $condition$$.nh_kh; delete $condition$$.phu_trach}tuoinophaitra($condition$$,async($error$$,$report$$)=>{if($error$$)return $callback$$($error$$);await $report$$.asyncJoinModel2($condition$$.id_app,Customer,[{akey:"ma_kh",bkey:"ma_kh",fields:[{name:"ten_kh",value:"ten_kh"},{name:"id_kh",value:"_id"},{name:"phu_trach",value:"phu_trach"}]}]);await $report$$.filter($r$$=>$r$$.ma_nv).asyncJoinModel2($condition$$.id_app,"dmnv",[{where:"ma_nv",fields:[{name:"ten_nv",value:"ten_nv"}]}]);await $report$$.filter($r$$=>$r$$.phu_trach).asyncJoinModel2($condition$$.id_app, "participant",{where:{phu_trach:"email"},fields:{ten_phu_trach:"name"}});await $report$$.filter($r$$=>$r$$.ma_dt).asyncJoinModel2($condition$$.id_app,"dmdt",{where:{ma_dt:"ma_dt"},fields:{ten_dt:"ten_dt"}});$report$$=underscore.sortBy($report$$,function($r$$){return $r$$.id_hd+$r$$.sysorder});$callback$$(null,$report$$)})})};