flexbiz-server 12.7.5 → 12.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/server/app.js +23 -19
- package/server/auths/rateLimiterMiddleware.js +3 -3
- package/server/controllers/controller.js +41 -41
- package/server/controllers/controllerUtils.js +61 -61
- package/server/controllers/controllerUtils_v1.js +72 -0
- package/server/controllers/controller_old.js +129 -0
- package/server/controllers/createHandler.js +34 -34
- package/server/controllers/createHandler_old.js +35 -0
- package/server/controllers/deleteHandler.js +11 -12
- package/server/controllers/deleteHandler_old.js +12 -0
- package/server/controllers/exportHandler.js +19 -17
- package/server/controllers/exportHandler_old.js +17 -0
- package/server/controllers/findHandler.js +61 -55
- package/server/controllers/findHandler_old.js +74 -0
- package/server/controllers/importFromGsHandler.js +10 -10
- package/server/controllers/importFromJsonHandler.js +6 -6
- package/server/controllers/importFromJsonHandler_old.js +6 -0
- package/server/controllers/updateBookHandler.js +1 -1
- package/server/controllers/updateFieldHandler.js +12 -13
- package/server/controllers/updateFieldHandler_old.js +13 -0
- package/server/controllers/updateHandler.js +38 -40
- package/server/controllers/updateHandler_old.js +40 -0
- package/server/controllers/viewHandler.js +13 -14
- package/server/controllers/viewHandler_old.js +14 -0
- package/server/flow/nodes/aiAnalysis.js +1 -1
- package/server/global.js +2 -3
- package/server/libs/WorkerStaticPool.js +14 -14
- package/server/libs/asyncCompat.js +10 -0
- package/server/libs/createSocaitheongay.js +1 -1
- package/server/libs/invoiceVnpt.js +1 -1
- package/server/libs/post-book.js +2 -2
- package/server/libs/post-sokho.js +5 -5
- package/server/libs/redis-cache.js +2 -2
- package/server/models/assabcihandler.js +1 -1
- package/server/models/counter.js +2 -2
- package/server/models/listinfo.js +200 -225
- package/server/models/listinfo_old.js +124 -0
- package/server/models/po1.js +4 -4
- package/server/models/purchase_contract.js +3 -3
- package/server/models/smsaccount.js +2 -2
- package/server/models/tdttco.js +3 -3
- package/server/models/tdttno.js +3 -3
- package/server/modules/lists/ls-afflink.js +1 -1
- package/server/modules/lists/ls-assbooking.js +1 -1
- package/server/modules/lists/ls-assinvestment.js +11 -11
- package/server/modules/lists/ls-asskey.js +2 -2
- package/server/modules/lists/ls-assneedtobuy.js +1 -1
- package/server/modules/lists/ls-assperiod.js +1 -1
- package/server/modules/lists/ls-asssell.js +1 -1
- package/server/modules/lists/ls-cart.js +14 -14
- package/server/modules/lists/ls-congdoansx.js +1 -1
- package/server/modules/lists/ls-consultant.js +2 -2
- package/server/modules/lists/ls-dkhoc.js +2 -2
- package/server/modules/lists/ls-dmban.js +1 -1
- package/server/modules/lists/ls-dmbp.js +2 -2
- package/server/modules/lists/ls-dmdoi.js +1 -1
- package/server/modules/lists/ls-dmnhtask.js +2 -2
- package/server/modules/lists/ls-dmvt.js +3 -3
- package/server/modules/lists/ls-file.js +1 -1
- package/server/modules/lists/ls-giaoca.js +1 -1
- package/server/modules/lists/ls-introducer.js +2 -2
- package/server/modules/lists/ls-kbm-bcqt.js +1 -1
- package/server/modules/lists/ls-news.js +1 -1
- package/server/modules/lists/ls-participant.js +1 -1
- package/server/modules/lists/ls-rpt.js +1 -1
- package/server/modules/lists/ls-smsaccount.js +1 -1
- package/server/modules/lists/ls-sosanxuat.js +1 -1
- package/server/modules/lists/ls-support.js +1 -1
- package/server/modules/public/callin.js +1 -1
- package/server/modules/reports/calc-tinhgiafifo.js +1 -1
- package/server/modules/reports/calc-tinhgiatb.js +1 -1
- package/server/modules/reports/calc-tinhgiathanh.js +1 -1
- package/server/modules/reports/calc-tinhluong.js +1 -1
- package/server/modules/reports/rp-assbonus.js +1 -1
- package/server/modules/reports/rp-bkchamcong.js +1 -1
- package/server/modules/reports/rp-cdpsdiem.js +1 -1
- package/server/modules/reports/rp-cdpskh.js +1 -1
- package/server/modules/reports/rp-cdpsnphep.js +1 -1
- package/server/modules/reports/rp-kcsns.js +1 -1
- package/server/modules/reports/rp-sctbhxh.js +1 -1
- package/server/modules/reports/rp-sctluong.js +1 -1
- package/server/modules/reports/rp-sctthuetncn.js +1 -1
- package/server/modules/reports/rp-sctvt.js +1 -1
- package/server/modules/reports/rp-sctvtnpp.js +1 -1
- package/server/modules/reports/rp-sctvttt.js +1 -1
- package/server/modules/reports/rp-thgt.js +1 -1
- package/server/modules/systems/sys-labelinfo.js +2 -3
- package/server/modules/systems/sys-listinfo.js +1 -1
- package/server/modules/systems/sys-menuinfo.js +1 -4
- package/server/modules/systems/sys-moduleinfo.js +2 -4
- package/server/modules/systems/sys-notification.js +1 -1
- package/server/workers/backupApp.js +1 -1
- package/server/workers/calcGrid.js +1 -1
- package/server/workers/runScript.js +1 -1
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
const
|
|
2
|
-
$
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
$
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
delete $
|
|
12
|
-
|
|
13
|
-
$
|
|
14
|
-
|
|
15
|
-
let $
|
|
16
|
-
$
|
|
17
|
-
$
|
|
1
|
+
const _=require("lodash"),excelReport=require("excel-report"),fs=require("fs"),path=require("path"),permission=require("../libs/permission"),htmlReport=require("../libs/htmlReport"),textReport=require("../libs/textReport"),{ERRORS,getParameters,prepareParameters}=require("./controllerUtils");
|
|
2
|
+
async function mapLimit($items$$,$limit_workers$$,$iterator$$){const $results$$=Array($items$$.length);let $index$$=0,$firstError$$=null;$limit_workers$$=Array(Math.min($limit_workers$$,$items$$.length)).fill(null).map(async()=>{for(;$index$$<$items$$.length&&!$firstError$$;){const $current$$=$index$$++;try{$results$$[$current$$]=await $iterator$$($items$$[$current$$],$current$$)}catch($e$$){throw $firstError$$=$e$$,$e$$;}}});await Promise.allSettled($limit_workers$$);if($firstError$$)throw $firstError$$;
|
|
3
|
+
return $results$$}
|
|
4
|
+
const exportHandlerCore=async($ctrl$$,$req$$)=>{const $user$$=$req$$.user;var $id_app_model$$=$ctrl$$.model,$dir_root_templates_id_file_query$$=$req$$.query;const $listinfo_code$$=$req$$.query["listinfo-code"];var $id_query_rpt$$=$dir_root_templates_id_file_query$$._id;if(!$id_query_rpt$$)throw{error:"H\u00e0m n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 _id"};let $ids$$=$id_query_rpt$$.split(","),$obj$$;try{$obj$$=await $id_app_model$$.find({_id:{$in:$ids$$}}).lean()}catch($e$$){throw Logger.error("exportToExcel query",$e$$),
|
|
5
|
+
$e$$.error?$e$$:{error:$e$$.message||$e$$};}global.getModel("log").create({id_app:$user$$.current_id_app,id_func:$ctrl$$.name,action:"ExportTOExcel",data:{id:$id_query_rpt$$}},$user$$.email,$req$$.user_agent,$req$$);if($obj$$.length==0)throw{error:ERRORS.ERR_NOT_HAVE_DATA,code:ERRORS.ERR_NOT_HAVE_DATA_CODE};if($ctrl$$.getting)try{await mapLimit($obj$$,20,$ob$$=>new Promise(($resolve$$,$reject$$)=>{$ctrl$$.getting($user$$,$ob$$._id,$error$$=>$error$$?$reject$$($error$$):$resolve$$(),$ob$$)}))}catch($e$$){throw Logger.error("exportToExcel",
|
|
6
|
+
$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}try{await mapLimit($obj$$,20,$o$$=>new Promise(($resolve$$,$reject$$)=>{(async()=>{const $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:"view"});permission.hasRight($o$$.id_app,$user$$.email,$ctrl$$.module,"view",($error$$,$hr$$)=>{if(!$hr$$)return $error$$=$error$$||"",$reject$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE});$resolve$$()},{data:$o$$,notNeedRight:$notNeedRight$$,
|
|
7
|
+
listinfo_code:$listinfo_code$$})})().catch($reject$$)}))}catch($e$$){throw Logger.error("exportToExcel permission",$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}if($obj$$)try{$obj$$=await new Promise(($resolve$$,$reject$$)=>{$ctrl$$.onView($user$$,$obj$$,($e$$,$viewValue$$)=>$e$$?$reject$$($e$$):$resolve$$($viewValue$$),{req:$req$$})})}catch($e$$){throw Logger.error("exportToExcel onview",$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}if($ctrl$$.options.onExport&&$obj$$)try{await mapLimit($obj$$,
|
|
8
|
+
20,$o$$=>new Promise(($resolve$$,$reject$$)=>{$ctrl$$.options.onExport($user$$,$o$$,$error$$=>$error$$?$reject$$($error$$):$resolve$$())}))}catch($e$$){throw Logger.error("exportToExcel onExport",$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}let $rpt_id$$=$req$$.params.rpt_id;$id_app_model$$=$dir_root_templates_id_file_query$$.id_app;$id_query_rpt$$={ma_cn:($dir_root_templates_id_file_query$$["listinfo-code"]||$ctrl$$.module).toUpperCase(),id_app:$id_app_model$$};try{var $file_rps$$=await global.getModel("rpt").find($id_query_rpt$$).lean()}catch($e$$){throw Logger.error("exportToExcel find rpt",
|
|
9
|
+
$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}let $rs$$=_.find($file_rps$$,$r$$=>$r$$._id.toString()===$rpt_id$$);if(!$rs$$)throw{error:"Kh\u00f4ng t\u00ecm th\u1ea5y file m\u1eabu"};let $_app$$;try{$_app$$=await global.getModel("app").findOne({_id:$id_app_model$$},{viettel_user:0,viettel_password:0,viettel_url_service:0,vnpt_user:0,vnpt_password:0,vnpt_url_service:0,easy_user:0,easy_password:0,easy_url_service:0,zalo_app_id:0,zalo_secret_key:0,zalo_code:0,zalo_oa_id:0,zalo_code_verifier:0,zalo_code_challenge:0,
|
|
10
|
+
zalo_access_token:0,zalo_refresh_token:0,google_credentials:0,sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0}).lean()}catch($error$$){throw Logger.error($error$$),{error:"Kh\u00f4ng t\u1ed3n t\u1ea1i c\u00f4ng ty n\u00e0y"};}delete $_app$$.participants;delete $_app$$.expire_date;
|
|
11
|
+
delete $_app$$.sale_online;_.extend($_app$$,$dir_root_templates_id_file_query$$);delete $_app$$.access_token;let $data4export$$=[];$obj$$.forEach(function($_data_o$$){for(let $_obj_c$$ in $_data_o$$)if(_.isObject($_data_o$$[$_obj_c$$]))for(let $k$$ in $_data_o$$[$_obj_c$$])if($k$$.indexOf("ngay")>=0||$k$$.indexOf("date")>=0)try{$_data_o$$[$_obj_c$$+"_"+$k$$]=new Date($_data_o$$[$_obj_c$$][$k$$])}catch($e$$){$_data_o$$[$_obj_c$$+"_"+$k$$]=$_data_o$$[$_obj_c$$][$k$$]}else $_data_o$$[$_obj_c$$+"_"+$k$$]=
|
|
12
|
+
$_data_o$$[$_obj_c$$][$k$$];$_data_o$$={obj:$_data_o$$};_.extend($_data_o$$,$_app$$);$data4export$$.push($_data_o$$)});let $parameters$$;try{$parameters$$=await getParameters($id_app_model$$,$file_rps$$)}catch($e$$){throw Logger.error("exportToExcel get params",$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}try{await mapLimit($data4export$$,20,async $_data$$=>{await prepareParameters($ctrl$$,$parameters$$,$_data$$,$_data$$.obj);delete $_data$$.obj})}catch($e$$){throw Logger.error("exportToExcel",
|
|
13
|
+
$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}if($dir_root_templates_id_file_query$$.print){Logger.info("render print page....");if(!$rs$$.html_template)throw{error:"Ch\u01b0a khai b\u00e1o m\u1eabu in"};let $cac_lien$$=$rs$$.cac_lien;$cac_lien$$&&$cac_lien$$.length!=0||($cac_lien$$=[{ma_lien:1,ten_lien:"Li\u00ean 1"}]);try{let $pages$$=[];await mapLimit($data4export$$,20,async $_data$$=>{$_data$$.datasource={...$_data$$};$_data$$.company={...$_app$$};for(const $lien$$ of $cac_lien$$){$_data$$.lien=
|
|
14
|
+
$lien$$;const $page$$=await htmlReport($rs$$._id,$_data$$);$pages$$.push($page$$)}});$req$$.data=$pages$$;$req$$.ext="print"}catch($e$$){throw Logger.error("exportToExcel",$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}Logger.info("[exportHandler] \u0110\u00e3 xu\u1ea5t ra",$req$$.ext);return{ext:$req$$.ext,data:$req$$.data}}if($dir_root_templates_id_file_query$$.json)return $req$$.data=$data4export$$,$req$$.ext="json",Logger.info("[exportHandler] \u0110\u00e3 xu\u1ea5t ra",$req$$.ext),{ext:$req$$.ext,
|
|
15
|
+
data:$req$$.data};if(!$rs$$.file_mau_in)throw{error:"Ch\u01b0a khai b\u00e1o file excel m\u1eabu"};$dir_root_templates_id_file_query$$=configs.paths.templates||__dirname;let $templatePath$$;if($rs$$.file_mau_in.indexOf("/file/download")>0){$dir_root_templates_id_file_query$$=$rs$$.file_mau_in.split("/").pop();$file_rps$$=global.getModel("file");try{var $_fileMauIn_ext$$=await $file_rps$$.findOne({_id:$dir_root_templates_id_file_query$$});if(!$_fileMauIn_ext$$)throw{error:"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"};
|
|
16
|
+
let $file_name$$=$_fileMauIn_ext$$.file.name,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){throw $e$$.error?$e$$:{error:$e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"};}}else $templatePath$$=path.dirname($dir_root_templates_id_file_query$$)+$rs$$.file_mau_in;if(!$templatePath$$||!fs.existsSync($templatePath$$))throw{error:"File m\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i"};
|
|
17
|
+
$_fileMauIn_ext$$=$templatePath$$.split(".").pop();if($_fileMauIn_ext$$==="xlsx")try{const $result$$=await new Promise(($resolve$$,$reject$$)=>{excelReport($templatePath$$,$data4export$$,($e$$,$result$$)=>$e$$?$reject$$($e$$):$resolve$$($result$$),{timezone:configs.timezone||"Asia/Ho_Chi_Minh"})});$req$$.data=$result$$;$req$$.ext="xlsx"}catch($e$$){throw Logger.error($e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}else{const $_data$$=$data4export$$[0];$_data$$.datasource={...$_data$$};$_data$$.company=
|
|
18
|
+
{...$_app$$};try{const $result$$=await new Promise(($resolve$$,$reject$$)=>{textReport($templatePath$$,$_data$$,($e$$,$result$$)=>$e$$?$reject$$($e$$):$resolve$$($result$$))});$req$$.data=$result$$;$req$$.ext=$_fileMauIn_ext$$==="docx"?"docx":"text"}catch($e$$){throw Logger.error("exportToExcel textreport",$e$$),$e$$.error?$e$$:{error:$e$$.message||$e$$};}}Logger.info("[exportHandler] \u0110\u00e3 xu\u1ea5t ra",$req$$.ext);return{ext:$req$$.ext,data:$req$$.data}},exportHandler=function($ctrl$$,$req$$,
|
|
19
|
+
$callback$$){exportHandlerCore($ctrl$$,$req$$).then($rs$$=>$callback$$(null,$rs$$),$e$$=>$callback$$($e$$))};exportHandler.exportHandlerAsync=($ctrl$$,$req$$)=>exportHandlerCore($ctrl$$,$req$$);exportHandler.exportHandlerCore=exportHandlerCore;module.exports=exportHandler;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const async=require("async"),_=require("lodash"),excelReport=require("excel-report"),fs=require("fs"),path=require("path"),permission=require("../libs/permission"),htmlReport=require("../libs/htmlReport"),textReport=require("../libs/textReport"),{ERRORS,getParameters,prepareParameters}=require("./controllerUtils_v1"),exportHandler=($ctrl$$,$req$$,$callback$$)=>{const $user$$=$req$$.user,$model$$=$ctrl$$.model,$query$$=$req$$.query;let $listinfo_code$$=$req$$.query["listinfo-code"];async.series([function($callback$$){let $id$$=
|
|
2
|
+
$query$$._id;if(!$id$$)return $callback$$({error:"H\u00e0m n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 _id"});let $ids$$=$id$$.split(",");$model$$.find({_id:{$in:$ids$$}}).lean().then(function($obj$$){setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,id_func:$ctrl$$.name,action:"ExportTOExcel",data:{id:$id$$}},$user$$.email,$req$$.user_agent,$req$$)});if($obj$$.length==0)return $callback$$({error:ERRORS.ERR_NOT_HAVE_DATA,code:ERRORS.ERR_NOT_HAVE_DATA_CODE});$ctrl$$.getting?
|
|
3
|
+
async.mapLimit($obj$$,20,function($ob$$,$callback$$){setImmediate(()=>{$ctrl$$.getting($user$$,$ob$$._id,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null)},$ob$$)})},function($e$$){if($e$$)return Logger.error("exportToExcel",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.obj=$obj$$;$callback$$()}):($req$$.obj=$obj$$,$callback$$())}).catch($e$$=>{Logger.error("exportToExcel query",$e$$);return $e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||
|
|
4
|
+
$e$$})})},function($callback$$){async.mapLimit($req$$.obj,20,function($obj$$,$callback$$){setImmediate(async()=>{let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:"view"});permission.hasRight($obj$$.id_app,$user$$.email,$ctrl$$.module,"view",function($error$$,$permission$$){$permission$$?$callback$$():($error$$=$error$$||"",$callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE}))},{data:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})},
|
|
5
|
+
function($e$$){if($e$$)return Logger.error("exportToExcel permission",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$callback$$()})},function($callback$$){let $objs$$=$req$$.obj;if($objs$$)$ctrl$$.onView($user$$,$objs$$,function($e$$,$viewValue$$){if($e$$)return Logger.error("exportToExcel onview",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.obj=$viewValue$$;$callback$$()},{req:$req$$});else $callback$$()},function($callback$$){let $objs$$=
|
|
6
|
+
$req$$.obj;$ctrl$$.options.onExport&&$objs$$?async.mapLimit($objs$$,20,function($obj$$,$callback$$){setImmediate(()=>{$ctrl$$.options.onExport($user$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$()})})},function($e$$){if($e$$)return Logger.error("exportToExcel onExport",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$callback$$()}):$callback$$()},function($callback$$){let $rpt_id$$=$req$$.params.rpt_id,$id_app$$=$query$$.id_app,$query_rpt$$=
|
|
7
|
+
{ma_cn:($query$$["listinfo-code"]||$ctrl$$.module).toUpperCase(),id_app:$id_app$$};global.getModel("rpt").find($query_rpt$$).lean().then(function($rps$$){let $objs$$=$req$$.obj,$rs$$=_.find($rps$$,function($r$$){return $r$$._id.toString()===$rpt_id$$});if(!$rs$$)return $callback$$({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file m\u1eabu"});global.getModel("app").findOne({_id:$id_app$$},{viettel_user:0,viettel_password:0,viettel_url_service:0,vnpt_user:0,vnpt_password:0,vnpt_url_service:0,easy_user:0,easy_password:0,
|
|
8
|
+
easy_url_service:0,zalo_app_id:0,zalo_secret_key:0,zalo_code:0,zalo_oa_id:0,zalo_code_verifier:0,zalo_code_challenge:0,zalo_access_token:0,zalo_refresh_token:0,google_credentials:0,sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0}).lean().then(function($_app$$){setImmediate(()=>
|
|
9
|
+
{delete $_app$$.participants;delete $_app$$.expire_date;delete $_app$$.sale_online;_.extend($_app$$,$query$$);delete $_app$$.access_token;let $data4export$$=[];$objs$$.forEach(function($_data_obj$$){for(let $_obj_c$$ in $_data_obj$$)if(_.isObject($_data_obj$$[$_obj_c$$]))for(let $k$$ in $_data_obj$$[$_obj_c$$])if($k$$.indexOf("ngay")>=0||$k$$.indexOf("date")>=0)try{$_data_obj$$[$_obj_c$$+"_"+$k$$]=new Date($_data_obj$$[$_obj_c$$][$k$$])}catch($e$$){$_data_obj$$[$_obj_c$$+"_"+$k$$]=$_data_obj$$[$_obj_c$$][$k$$]}else $_data_obj$$[$_obj_c$$+
|
|
10
|
+
"_"+$k$$]=$_data_obj$$[$_obj_c$$][$k$$];$_data_obj$$={obj:$_data_obj$$};_.extend($_data_obj$$,$_app$$);$data4export$$.push($_data_obj$$)});getParameters($id_app$$,$rps$$,($e$$,$parameters$$)=>{if($e$$)return Logger.error("exportToExcel get params",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});async.mapLimit($data4export$$,20,function($_data$$,$callback$$){setImmediate(()=>{prepareParameters($ctrl$$,$parameters$$,$_data$$,$_data$$.obj,function($e$$,$rs$$){if($e$$)return $callback$$($e$$);
|
|
11
|
+
delete $_data$$.obj;$callback$$(null,$rs$$)})})},async function($e$$){setImmediate(async()=>{if($e$$)return Logger.error("exportToExcel",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});if($query$$.print){Logger.info("render print page....");if(!$rs$$.html_template)return $callback$$({error:"Ch\u01b0a khai b\u00e1o m\u1eabu in"});let $cac_lien$$=$rs$$.cac_lien;$cac_lien$$&&$cac_lien$$.length!=0||($cac_lien$$=[{ma_lien:1,ten_lien:"Li\u00ean 1"}]);try{let $pages$$=[];async.mapLimit($data4export$$,
|
|
12
|
+
20,($_data$$,$callback$$)=>{$_data$$.datasource={...$_data$$};$_data$$.company={...$_app$$};async.mapSeries($cac_lien$$,async $lien_page$$=>{$_data$$.lien=$lien_page$$;$lien_page$$=await htmlReport($rs$$._id,$_data$$);$pages$$.push($lien_page$$)},()=>{$callback$$()})},()=>{$req$$.data=$pages$$;$req$$.ext="print";$callback$$(null)})}catch($e$$){return Logger.error("exportToExcel",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$})}}else if($query$$.json)$req$$.data=$data4export$$,
|
|
13
|
+
$req$$.ext="json",$callback$$(null);else{if(!$rs$$.file_mau_in)return $callback$$({error:"Ch\u01b0a khai b\u00e1o file excel m\u1eabu"});var $dir_root_templates_id_file$$=configs.paths.templates||__dirname;let $templatePath$$;if($rs$$.file_mau_in.indexOf("/file/download")>0){$dir_root_templates_id_file$$=$rs$$.file_mau_in.split("/").pop();const $file$$=global.getModel("file");try{var $_data$$=await $file$$.findOne({_id:$dir_root_templates_id_file$$});$_data$$||$callback$$({error:"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"});
|
|
14
|
+
let $file_name$$=$_data$$.file.name,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){return $callback$$({error:$e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"})}}else $templatePath$$=path.dirname($dir_root_templates_id_file$$)+$rs$$.file_mau_in;if(!$templatePath$$||!fs.existsSync($templatePath$$))return $callback$$({error:"File m\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i"});
|
|
15
|
+
let $ext$$=$templatePath$$.split(".").pop();$ext$$==="xlsx"?excelReport($templatePath$$,$data4export$$,function($e$$,$result$$){setImmediate(()=>{if($e$$)return Logger.error($e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.data=$result$$;$req$$.ext="xlsx";$callback$$(null)})},{timezone:configs.timezone||"Asia/Ho_Chi_Minh"}):($_data$$=$data4export$$[0],$_data$$.datasource={...$_data$$},$_data$$.company={...$_app$$},textReport($templatePath$$,$_data$$,function($e$$,
|
|
16
|
+
$result$$){setImmediate(()=>{if($e$$)return Logger.error("exportToExcel textreport",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ext$$==="docx"?($req$$.data=$result$$,$req$$.ext="docx"):($req$$.data=$result$$,$req$$.ext="text");$callback$$(null)})}))}})})})})}).catch($error$$=>{Logger.error($error$$);return $callback$$({error:"Kh\u00f4ng t\u1ed3n t\u1ea1i c\u00f4ng ty n\u00e0y"})})}).catch($e$$=>{Logger.error("exportToExcel find rpt",$e$$);return $e$$.error?$callback$$($e$$):
|
|
17
|
+
$callback$$({error:$e$$.message||$e$$})})}],$e$$=>{if($e$$)return $callback$$($e$$);Logger.info("[exportHandler] \u0110\u00e3 xu\u1ea5t ra",$req$$.ext);$callback$$(null,{ext:$req$$.ext,data:$req$$.data})})};module.exports=exportHandler;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const fs=require("fs"),path=require("path"),
|
|
2
|
-
|
|
1
|
+
const fs=require("fs"),path=require("path"),_=require("lodash"),Moment=require("moment-timezone"),moment=$time$$=>Moment.tz($time$$,configs.timezone||"Asia/Ho_Chi_Minh"),numeral=require("numeral"),excelReport=require("excel-report"),{evalute,JSONParser,getDateRangeByType}=require("../libs/utils"),permission=require("../libs/permission"),htmlReport=require("../libs/htmlReport"),utils=require("../libs/utils"),queryBuilding=require("../libs/queryBuilding"),{createTmpFile,generateDefaultExcel}=require("../libs/excelHelper"),
|
|
2
|
+
{ERRORS}=require("./controllerUtils"),{isValidObjectId}=require("mongoose"),FIELDS_NEED_CONVERT_CODE={ten_kh:{code:"ma_kh",model:"customer"},ten_vt:{code:"ma_vt",model:"dmvt"},ten_kho:{code:"ma_kho",model:"dmkho"},ten_phi:{code:"ma_phi",model:"dmphi"},ten_dt:{code:"ma_dt",model:"dmdt"},ten_bp:{code:"ma_bp",model:"dmbp"},ten_nv:{code:"ma_nv",model:"dmnv"}};
|
|
3
3
|
async function convertNamesToCodes($id_app$$,$condition$$,$FIELDS_NEED_CONVERT_CODE$$,$model$$){if(!$condition$$||typeof $condition$$!=="object")return $condition$$;if(Array.isArray($condition$$)){for(var $i_key_q$$=0;$i_key_q$$<$condition$$.length;$i_key_q$$++)$condition$$[$i_key_q$$]=await convertNamesToCodes($id_app$$,$condition$$[$i_key_q$$],$FIELDS_NEED_CONVERT_CODE$$,$model$$);return $condition$$}for($i_key_q$$ in $condition$$)if($i_key_q$$==="$or"||$i_key_q$$==="$and")$condition$$[$i_key_q$$]=
|
|
4
4
|
await convertNamesToCodes($id_app$$,$condition$$[$i_key_q$$],$FIELDS_NEED_CONVERT_CODE$$,$model$$);else{var $ds_fieldMapping$$=$FIELDS_NEED_CONVERT_CODE$$[$i_key_q$$];if($ds_fieldMapping$$){const $targetCodeField$$=$ds_fieldMapping$$.code;$id_app$$&&_.has($model$$.schema.paths,$targetCodeField$$)&&$model$$.modelName!==$ds_fieldMapping$$.model&&($condition$$[$targetCodeField$$]?_.has($model$$.schema.paths,$i_key_q$$)&&delete $condition$$[$i_key_q$$]:($ds_fieldMapping$$=await global.getModel($ds_fieldMapping$$.model).find({id_app:$id_app$$,
|
|
5
5
|
[$i_key_q$$]:$condition$$[$i_key_q$$]},{[$targetCodeField$$]:1}),$condition$$[$targetCodeField$$]={$in:$ds_fieldMapping$$.map($d$$=>$d$$[$targetCodeField$$])},delete $condition$$[$i_key_q$$]))}}return $condition$$}
|
|
@@ -8,11 +8,11 @@ ma_nvt2:{model:"dmnvt",code:"_id",code_mother:"nh_me"},ma_nvt3:{model:"dmnvt",co
|
|
|
8
8
|
async function getChildren($id_app$$,$condition$$,$NEED_GET_CHILDREN$$){if(!$condition$$||typeof $condition$$!=="object")return $condition$$;if(Array.isArray($condition$$))return await Promise.all($condition$$.map(async($item$$,$index$$)=>{$condition$$[$index$$]=await getChildren($id_app$$,$item$$,$NEED_GET_CHILDREN$$)})),$condition$$;const $tasks$$=[];for(let $key_q$$ in $condition$$){if($key_q$$==="$or"||$key_q$$==="$and"){$tasks$$.push((async()=>{$condition$$[$key_q$$]=await getChildren($id_app$$,
|
|
9
9
|
$condition$$[$key_q$$],$NEED_GET_CHILDREN$$)})());continue}const $fieldMapping$$=$NEED_GET_CHILDREN$$[$key_q$$];if($fieldMapping$$){const $value$$=$condition$$[$key_q$$];if($value$$&&(typeof $value$$==="string"||Array.isArray($value$$))){const $model$$=global.getModel($fieldMapping$$.model);$model$$&&$tasks$$.push((async()=>{const $childCodes$$=await utils.getCodeChildren($model$$,$id_app$$,$value$$,$fieldMapping$$.code,$fieldMapping$$.code_mother);$condition$$[$key_q$$]={$in:$childCodes$$}})())}}}$tasks$$.length>
|
|
10
10
|
0&&await Promise.all($tasks$$);return $condition$$}
|
|
11
|
-
const hasRight=async($ctrl$$,$req$$,$listinfo_code$$,$id_app$$,$shareRoute$$)=>{if(!$shareRoute$$)
|
|
12
|
-
|
|
13
|
-
$userInfo$$.current_app_info
|
|
14
|
-
$condition
|
|
15
|
-
|
|
11
|
+
const hasRight=async($ctrl$$,$req$$,$listinfo_code$$,$id_app$$,$shareRoute$$)=>{if(!$shareRoute$$){var $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,{action:"view"});return new Promise(($resolve$$,$reject$$)=>{permission.hasRight($id_app$$,$req$$.user.email,$ctrl$$.module,"view",function($e$$,$permission$$){$e$$&&Logger.error("[findHandler] [hasRight] L\u1ed7i Kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp:",$req$$.user.email,$e$$);if($ctrl$$.options.onQuery)$ctrl$$.options.onQuery($req$$,$e$$=>
|
|
12
|
+
{if($e$$)return $reject$$({error:$e$$.error||$e$$.message||$e$$});if(!$permission$$)return $resolve$$("0");$resolve$$($permission$$)});else{if(!$permission$$)return $resolve$$("0");$resolve$$($permission$$)}},{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$,user:$req$$.user})})}},handleDynamicCondition=async($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$)=>{let {condition:$condition$$,id_app:$id_app$$}=$appCondition$$,$userInfo$$={...$req$$.user,current_id_app:$id_app$$};!$id_app$$||$userInfo$$.current_app_info&&
|
|
13
|
+
$userInfo$$.current_app_info?._id?.toString()==$id_app$$||($userInfo$$.current_app_info=await global.getModel("app").findOne({_id:$id_app$$}).lean());$appCondition$$.userInfo=$userInfo$$;let $new_condition$$=await new Promise(($resolve$$,$reject$$)=>{$ctrl$$.finding?$ctrl$$.finding($userInfo$$,$condition$$,function($error$$,$condition$$){if($error$$)return $reject$$({error:$error$$.message||$error$$.error||$error$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($userInfo$$,$condition$$,function($e$$,
|
|
14
|
+
$condition$$){if($e$$)return Logger.error("dynamicFinding",$e$$),$e$$.error?$reject$$($e$$):$reject$$({error:$e$$.message||$e$$});$resolve$$($condition$$)},{listinfo_code:$listinfo_code$$,req:$req$$}):$resolve$$($condition$$)},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($userInfo$$,$condition$$,function($e$$,$condition$$){if($e$$)return Logger.error("dynamicFinding",$e$$),$e$$.error?$reject$$($e$$):$reject$$({error:$e$$.message||$e$$});$resolve$$($condition$$)},{listinfo_code:$listinfo_code$$,
|
|
15
|
+
req:$req$$}):$resolve$$($condition$$)});$new_condition$$=await getChildren($appCondition$$.id_app,$new_condition$$,NEED_GET_CHILDREN);$appCondition$$.condition=$new_condition$$;return $appCondition$$},buildCondition=async($ctrl$$,$req$$,$listinfo_code$$,$appConditions_shareRoute$$)=>{var $body_ds_id_app$$={};_.isObject($req$$.body)&&($body_ds_id_app$$=$req$$.body);let $query$$={...$req$$.query,...$body_ds_id_app$$};$query$$.tu_ngay&&($query$$.tu_ngay=moment($query$$.tu_ngay).startOf("date").toDate());
|
|
16
16
|
$query$$.den_ngay&&($query$$.den_ngay=moment($query$$.den_ngay).endOf("date").toDate());($body_ds_id_app$$=$query$$.id_apps)&&typeof $body_ds_id_app$$=="string"&&($body_ds_id_app$$=[$body_ds_id_app$$]);let $all_app$$=$query$$.all_app;$req$$.query=$query$$;if($query$$.sort)if(typeof $query$$.sort=="object")var $or_sort$$=$query$$.sort;else try{$or_sort$$=JSONParser($query$$.sort)}catch($e$$){throw Logger.error("error parse json",$e$$,$query$$.sort),`Sort ${$query$$.sort} is not valid`;}!$or_sort$$&&
|
|
17
17
|
$ctrl$$.sort&&($or_sort$$=Object.assign({},$ctrl$$.sort));$req$$.sort=$or_sort$$;$req$$.fetch_by_groups=$query$$.fetch_by_groups;delete $query$$.fetch_by_groups;let $condition$$={};$or_sort$$=[];const $hasCodeByName$$=$k$$=>FIELDS_NEED_CONVERT_CODE[$k$$]&&_.has($ctrl$$.model.schema.paths,FIELDS_NEED_CONVERT_CODE[$k$$].code)&&$ctrl$$.model.modelName!==FIELDS_NEED_CONVERT_CODE[$k$$].model?!0:!1;for(var $key$$ in $query$$)if($key$$!=="id_app"&&$key$$!=="access_token"&&$key$$!=="limit")if($key$$==="_id"&&
|
|
18
18
|
global.mongoose.Types.ObjectId.isValid($query$$._id))try{let $id$$=global.mongoose.Types.ObjectId($query$$._id);$or_sort$$.push({_id:$id$$})}catch($error$$){Logger.error("find condition",$error$$)}else{if($key$$==="q"&&$query$$[$key$$])try{let $q$$=_.isObject($query$$[$key$$])?$query$$[$key$$]:JSONParser($query$$[$key$$]);$req$$.fetch_by_groups=$req$$.fetch_by_groups||$q$$.fetch_by_groups;delete $q$$.fetch_by_groups;$body_ds_id_app$$=$q$$.id_apps||$body_ds_id_app$$;$all_app$$=$q$$.all_app||$all_app$$;
|
|
@@ -21,54 +21,60 @@ delete $q$$.all_app;delete $q$$.id_apps;if(Object.keys($q$$).includes("_id"))if(
|
|
|
21
21
|
"date"){let {fromDate:$fromDate$$,toDate:$toDate$$}=getDateRangeByType($query$$[$key$$]);$item$$[$key$$]=$fromDate$$&&$toDate$$?{$gte:$fromDate$$,$lte:$toDate$$}:new Date($query$$[$key$$])}else $ctrl$$.model.schema.paths[$key$$]?.instance?.toLowerCase()=="string"?$item$$[$key$$]={$regex:($query$$[$key$$]||"").trim(),$options:"i"}:$item$$[$key$$]=$query$$[$key$$];$or_sort$$.push($item$$)}else $key$$==="$text"&&$or_sort$$.push({$text:{$search:$query$$[$key$$]}})}$or_sort$$.length!==0&&($query$$.cType===
|
|
22
22
|
"$and"?$condition$$.$and=$or_sort$$:$condition$$.$or=$or_sort$$);$key$$=queryBuilding.convertLegacyQuery(_.cloneDeep($condition$$));$condition$$=queryBuilding.buildSearchQuery($key$$);$appConditions_shareRoute$$||$ctrl$$.require_id_app==0?$appConditions_shareRoute$$=[{id_app:$req$$.user.current_id_app,condition:{id_app:$req$$.user.current_id_app,...$condition$$}}]:($body_ds_id_app$$=($body_ds_id_app$$||[]).filter($id$$=>global.mongoose.Types.ObjectId.isValid($id$$)),$body_ds_id_app$$.length==0&&($all_app$$?
|
|
23
23
|
(Logger.warn("[findHanlder] t\u00ecm t\u1ea5t c\u1ea3 c\u00e1c c\u00f4ng ty c\u00f3 quy\u1ec1n..."),$body_ds_id_app$$=(await global.getModel("participant").find({email:$req$$.user.email},{id_app:1}).lean()).map($a$$=>$a$$.id_app).filter($id_app$$=>isValidObjectId($id_app$$)),$body_ds_id_app$$=(await global.getModel("app").find({_id:{$in:$body_ds_id_app$$}},{_id:1}).lean()).map($a$$=>$a$$._id.toString())):$body_ds_id_app$$=[$req$$.user.current_id_app]),$appConditions_shareRoute$$=$body_ds_id_app$$.map($id_app$$=>
|
|
24
|
-
({id_app:$id_app$$,condition:{...$condition$$,id_app:$id_app$$}})));return Promise.all($appConditions_shareRoute$$.map($appCondition$$=>handleDynamicCondition($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$)))},getRightByItem=async($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$,$shareRoute$$)
|
|
24
|
+
({id_app:$id_app$$,condition:{...$condition$$,id_app:$id_app$$}})));return Promise.all($appConditions_shareRoute$$.map($appCondition$$=>handleDynamicCondition($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$)))},getRightByItem=async($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$,$shareRoute$$)=>{if($shareRoute$$)return $appCondition$$;let $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,{action:"view"});return new Promise(($resolve$$,$reject$$)=>{permission.getRightByItem($appCondition$$.id_app,
|
|
25
25
|
$ctrl$$.model,$req$$.user.email,function($e$$,$_condition$$,$admin$$){if($e$$)return Logger.error("[findHandler] [getRightByItem] L\u1ed7i Kh\u00f4ng c\u00f3 quy\u1ec1n:",$e$$),$reject$$({error:$e$$.error||$e$$.message||$e$$,code:$e$$.code||ERRORS.ERR_NOT_PERMIT_CODE});if($appCondition$$.addmin=$admin$$)return $resolve$$($appCondition$$);$appCondition$$.condition||($appCondition$$.condition={});$appCondition$$.condition.$and||($appCondition$$.condition.$and=[]);if($ctrl$$.options.onRightByItem)$ctrl$$.options.onRightByItem($req$$.user,
|
|
26
|
-
$_condition$$,($e$$,$_condition$$)=>{if($e$$)return $reject$$({error:$e$$.error||$e$$.message||$e$$});_.isObject($_condition$$)&&Object.keys($_condition$$).length>0&&$appCondition$$.condition.$and.push($_condition$$);$appCondition$$.condition_assign=$_condition$$;$resolve$$($appCondition$$)});else _.isObject($_condition$$)&&Object.keys($_condition$$).length>0&&$appCondition$$.condition.$and.push($_condition$$),$resolve$$($appCondition$$)},$ctrl$$.name,{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$})})}
|
|
27
|
-
getRightByCollectionRef=async($
|
|
28
|
-
$m$$,$req$$.user.email,function($e$$,$_condition$$,$admin$$){if($e$$)return $
|
|
29
|
-
$dsdt_rs$$.push(null);$condition_assignwiths$$[$col$$.field]={$in:$dsdt_rs$$};$
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
($appCondition$$.condition._id={$in:[]});await getRightByItem($ctrl$$,$req$$,$
|
|
26
|
+
$_condition$$,($e$$,$_condition$$)=>{if($e$$)return $reject$$({error:$e$$.error||$e$$.message||$e$$});_.isObject($_condition$$)&&Object.keys($_condition$$).length>0&&$appCondition$$.condition.$and.push($_condition$$);$appCondition$$.condition_assign=$_condition$$;$resolve$$($appCondition$$)});else _.isObject($_condition$$)&&Object.keys($_condition$$).length>0&&$appCondition$$.condition.$and.push($_condition$$),$resolve$$($appCondition$$)},$ctrl$$.name,{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$})})},
|
|
27
|
+
getRightByCollectionRef=async($condition$jscomp$7_ctrl$$,$req$$,$appCondition$$,$shareRoute$$)=>{if($shareRoute$$||$appCondition$$.admin||!$appCondition$$.condition_assign||Object.keys($appCondition$$.condition_assign).length===0||!$condition$jscomp$7_ctrl$$.options.assignWiths)return $appCondition$$;const $condition_assignwiths$$={};await Promise.all($condition$jscomp$7_ctrl$$.options.assignWiths.map($col$$=>new Promise(($resolve$$,$reject$$)=>{let $m$$=global.getModel($col$$.ref_collection);permission.getRightByItem($appCondition$$.id_app,
|
|
28
|
+
$m$$,$req$$.user.email,function($e$$,$_condition$$,$admin$$){if($e$$)return $reject$$({error:$e$$.error||$e$$.message||$e$$,code:$e$$.code||ERRORS.ERR_NOT_PERMIT_CODE});if($admin$$)return $resolve$$();$_condition$$.id_app=$appCondition$$.id_app;$appCondition$$.condition[$col$$.ref_field]&&($_condition$$[$col$$.ref_field]=$appCondition$$.condition[$col$$.ref_field]);$m$$.find($_condition$$,{[$col$$.ref_field]:1}).lean().then($dsdt_rs$$=>{$dsdt_rs$$=$dsdt_rs$$.map($r$$=>$r$$[$col$$.ref_field]);$dsdt_rs$$.push("");
|
|
29
|
+
$dsdt_rs$$.push(null);$condition_assignwiths$$[$col$$.field]={$in:$dsdt_rs$$};$resolve$$()}).catch($reject$$)},$col$$.ref_module)})));Object.keys($condition_assignwiths$$).length>0&&($condition$jscomp$7_ctrl$$=$appCondition$$.condition_assign||$appCondition$$.condition,$condition$jscomp$7_ctrl$$.$and||($condition$jscomp$7_ctrl$$.$and=[]),$condition$jscomp$7_ctrl$$.$and.push($condition_assignwiths$$),$appCondition$$.condition=$condition$jscomp$7_ctrl$$);return $appCondition$$},findHandlerCore=async($ctrl$$,
|
|
30
|
+
$req$$)=>{let $model$$=$ctrl$$.model,$shareRoute$$=$req$$.shareRoute;var $condition_group_conditions_listinfo_code$$=$req$$?.body?.["listinfo-code"]||$req$$?.query["listinfo-code"]||$req$$?.headers?.["listinfo-code"]||$req$$?.headers?.["Listinfo-Code"];if(($condition_group_conditions_listinfo_code$$=$condition_group_conditions_listinfo_code$$||$ctrl$$.name)&&$condition_group_conditions_listinfo_code$$!=$ctrl$$.name){var $appConditions$jscomp$1_fields$$=await global.getModel("listinfo").findOne({code:$condition_group_conditions_listinfo_code$$},
|
|
31
|
+
{api_code:1,code:1}).lean();$appConditions$jscomp$1_fields$$?($appConditions$jscomp$1_fields$$.api_code||$appConditions$jscomp$1_fields$$.code)!=$ctrl$$.name&&($condition_group_conditions_listinfo_code$$=$ctrl$$.name):$condition_group_conditions_listinfo_code$$=$ctrl$$.name}$appConditions$jscomp$1_fields$$=await buildCondition($ctrl$$,$req$$,$condition_group_conditions_listinfo_code$$,$shareRoute$$);for(var $appCondition$$ of $appConditions$jscomp$1_fields$$){await hasRight($ctrl$$,$req$$,$condition_group_conditions_listinfo_code$$,
|
|
32
|
+
$appCondition$$.id_app,$shareRoute$$)=="0"&&($appCondition$$.condition._id={$in:[]});await getRightByItem($ctrl$$,$req$$,$condition_group_conditions_listinfo_code$$,$appCondition$$,$shareRoute$$);await getRightByCollectionRef($ctrl$$,$req$$,$appCondition$$,$shareRoute$$);let {condition:$condition$$}=$appCondition$$;for(let $key_q$$ in $condition$$)if($key_q$$==="_id"||$key_q$$.startsWith("$")||$key_q$$.includes(".")||_.has($model$$.schema.paths,$key_q$$)||delete $condition$$[$key_q$$],$key_q$$=="$and"){for(let $dk$$ of $condition$$.$and)for(let $key_q$$ in $dk$$)$key_q$$===
|
|
33
33
|
"_id"||$key_q$$.startsWith("$")||$key_q$$.includes(".")||_.has($model$$.schema.paths,$key_q$$)||delete $dk$$[$key_q$$];$condition$$.$and=$condition$$.$and.filter($a$$=>Object.keys($a$$).length>0)}$appCondition$$.id_app&&($condition$$=await convertNamesToCodes($appCondition$$.id_app,$condition$$,FIELDS_NEED_CONVERT_CODE,$model$$),$appCondition$$.condition=$condition$$);if($shareRoute$$){$condition$$.shared=!0;let $id_sellers$$=(await global.getModel("app").find({sale_online:!0},{_id:1}).lean()).map($a$$=>
|
|
34
34
|
$a$$._id);$condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push({id_app:{$in:$id_sellers$$}});$condition$$.id_app&&$condition$$.$and.push({id_app:$condition$$.id_app})}else _.has($model$$.schema.paths,"id_app")&&$ctrl$$.require_id_app!==!1&&($condition$$.id_app=$appCondition$$.id_app);$req$$.user.email==="public"&&_.has($model$$.schema.paths,"session_created")&&($condition$$.session_created=($req$$.cookies||{}).uid);_.extend($condition$$,$ctrl$$.keyValues);utils.deleteEmptyObject($condition$$);
|
|
35
|
-
delete $condition$$.$where;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());
|
|
36
|
-
$condition$$[$req$$.fetch_by_groups.field]));$appCondition$$.condition_group=$condition_group$$;
|
|
37
|
-
0).map($a$$=>$a$$.condition);let $condition$$;$condition$$=$
|
|
38
|
-
$
|
|
39
|
-
$b$$)=>$a$$.concat($b$$),[])))].filter($a$$=>$a$$);$
|
|
40
|
-
|
|
41
|
-
(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
$
|
|
47
|
-
1&&$
|
|
48
|
-
$
|
|
49
|
-
0,$
|
|
50
|
-
|
|
51
|
-
$
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
$
|
|
57
|
-
$
|
|
58
|
-
$
|
|
59
|
-
$
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
-
|
|
35
|
+
delete $condition$$.$where;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());var $condition_group$jscomp$1_page$$=void 0;$req$$.fetch_by_groups&&$req$$.fetch_by_groups.model_group&&$req$$.fetch_by_groups.field&&($condition_group$jscomp$1_page$$=$req$$.fetch_by_groups.condition||{},$condition_group$jscomp$1_page$$.status=!0,$condition_group$jscomp$1_page$$.id_app=$appCondition$$.id_app,$condition$$[$req$$.fetch_by_groups.field]&&($condition_group$jscomp$1_page$$[$req$$.fetch_by_groups.ref_field||
|
|
36
|
+
$req$$.fetch_by_groups.field]=$condition$$[$req$$.fetch_by_groups.field]));$appCondition$$.condition_group=$condition_group$jscomp$1_page$$;var $field_not_right$jscomp$1_skip$$=void 0;try{$field_not_right$jscomp$1_skip$$=await permission.getFieldNotRight($appCondition$$.id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$jscomp$1_skip$$=[]}$appCondition$$.field_not_right=$field_not_right$jscomp$1_skip$$}$condition_group_conditions_listinfo_code$$=$appConditions$jscomp$1_fields$$.filter($a$$=>
|
|
37
|
+
Object.keys($a$$.condition).length>0).map($a$$=>$a$$.condition);let $condition$$;$condition$$=$condition_group_conditions_listinfo_code$$.length==0?{}:$condition_group_conditions_listinfo_code$$.length==1?$condition_group_conditions_listinfo_code$$[0]:{$or:$condition_group_conditions_listinfo_code$$};$condition_group_conditions_listinfo_code$$={$or:$appConditions$jscomp$1_fields$$.filter($a$$=>$a$$.condition_group).map($a$$=>$a$$.condition_group)};if($req$$.query.count){var $downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=
|
|
38
|
+
0;$condition_group_conditions_listinfo_code$$?.$or.length>0&&($downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=await global.getModel($req$$.fetch_by_groups.model_group).countDocuments($condition_group_conditions_listinfo_code$$));var $excelTemplate_rows_number_template$jscomp$1_template$$=await $model$$.countDocuments($condition$$);return{result:{groups_number:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,
|
|
39
|
+
rows_number:$excelTemplate_rows_number_template$jscomp$1_template$$},dataType:"json"}}let $pagination$$;$req$$.query.pagination&&($pagination$$={total:await $model$$.countDocuments($condition$$)});let $field_not_right$$=[...(new Set($appConditions$jscomp$1_fields$$.map($a$$=>$a$$.field_not_right).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[])))].filter($a$$=>$a$$);$appCondition$$=$req$$.query.fields;let $gfields$$={};$appCondition$$&&(_.isArray($appCondition$$)?$appCondition$$.forEach($f$$=>{$f$$!=="_id"&&
|
|
40
|
+
($gfields$$[$f$$]=1)}):_.isObject($appCondition$$)?($gfields$$={...$gfields$$,...$appCondition$$},$req$$.query.fields=Object.keys($gfields$$).join(",")):$appCondition$$.split(",").filter($f$$=>$f$$&&$field_not_right$$.indexOf($f$$)<0).forEach($f$$=>{$f$$!=="_id"&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0});!$appCondition$$&&(($appCondition$$=$req$$.query.notfields)&&(_.isArray($appCondition$$)?
|
|
41
|
+
$appCondition$$.forEach($f$$=>{$f$$&&$f$$!=="_id"&&(Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)}):_.isObject($appCondition$$)?$gfields$$={...$gfields$$,...$appCondition$$}:$appCondition$$.split(",").forEach($f$$=>{$f$$&&$f$$!=="_id"&&(Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)})),$shareRoute$$||$req$$.user.email==="public")&&(Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?(delete $gfields$$.dataview_to,
|
|
42
|
+
delete $gfields$$.dataview_to_users):($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0));$condition$$.$text&&($gfields$$||={},$gfields$$.textScore={$meta:"textScore"});delete $req$$.query_cache;$ctrl$$.cache&&($req$$.query_cache={..._.cloneDeep($req$$.query),..._.cloneDeep($condition$$)},delete $req$$.query_cache.q,delete $req$$.query_cache.refresh_required,$req$$.query_cache.gfields=_.cloneDeep($gfields$$));const $fetchData$$=async($condition$jscomp$10_explainResult_piples_query$$,$filter_limit$$,
|
|
43
|
+
$page_projection_skip$$)=>{if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate||$req$$.query.$aggregate)if($req$$.query.aggregate){var $aggregate_group_limit$jscomp$2_sort$$=JSONParser($req$$.query.$aggregate||$req$$.query.aggregate);if(!Array.isArray($aggregate_group_limit$jscomp$2_sort$$))throw{error:"Aggregate ph\u1ea3i l\u00e0 m\u1ed9t m\u1ea3ng"};if($aggregate_group_limit$jscomp$2_sort$$.find($f$$=>$f$$.$lookup))throw{error:"Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eed d\u1ee5ng $lookup trong aggregate"};
|
|
44
|
+
$condition$jscomp$10_explainResult_piples_query$$=[{$match:$condition$jscomp$10_explainResult_piples_query$$},...$aggregate_group_limit$jscomp$2_sort$$];$condition$jscomp$10_explainResult_piples_query$$=$model$$.aggregate($condition$jscomp$10_explainResult_piples_query$$)}else{$condition$jscomp$10_explainResult_piples_query$$=$model$$.aggregate([{$match:$condition$jscomp$10_explainResult_piples_query$$}]);$req$$.query.group&&($aggregate_group_limit$jscomp$2_sort$$=JSONParser($req$$.query.group),$condition$jscomp$10_explainResult_piples_query$$.group($aggregate_group_limit$jscomp$2_sort$$));
|
|
45
|
+
if($req$$.query.match){var $match_project$$=JSONParser($req$$.query.match);$condition$jscomp$10_explainResult_piples_query$$.match($match_project$$)}if($req$$.query.project)$match_project$$=JSONParser($req$$.query.project),$condition$jscomp$10_explainResult_piples_query$$.project($match_project$$);else if($gfields$$&&Object.keys($gfields$$).length>0)$match_project$$=$gfields$$;else if($match_project$$={_id:1},$aggregate_group_limit$jscomp$2_sort$$)for(var $key$jscomp$11_sort$$ in $aggregate_group_limit$jscomp$2_sort$$)$match_project$$[$key$jscomp$11_sort$$]=
|
|
46
|
+
1;$condition$jscomp$10_explainResult_piples_query$$.project($match_project$$)}else _.has($model$$.schema.paths,"id_app")&&Object.keys($gfields$$).length>0&&Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)&&($gfields$$.id_app=1),$condition$jscomp$10_explainResult_piples_query$$=$model$$.find($condition$jscomp$10_explainResult_piples_query$$,$gfields$$);$aggregate_group_limit$jscomp$2_sort$$=$req$$.sort;if(!$aggregate_group_limit$jscomp$2_sort$$)$gfields$$.textScore&&($aggregate_group_limit$jscomp$2_sort$$=
|
|
47
|
+
{textScore:{$meta:"textScore"}});else for(var $key$jscomp$12_skip$$ in $aggregate_group_limit$jscomp$2_sort$$)if($key$jscomp$12_skip$$!=="textScore"&&$aggregate_group_limit$jscomp$2_sort$$[$key$jscomp$12_skip$$]!=1&&$aggregate_group_limit$jscomp$2_sort$$[$key$jscomp$12_skip$$]!=-1)throw Logger.error("sort is valid",$aggregate_group_limit$jscomp$2_sort$$,$key$jscomp$12_skip$$,$aggregate_group_limit$jscomp$2_sort$$[$key$jscomp$12_skip$$]),{error:`Sort ${JSON.stringify($aggregate_group_limit$jscomp$2_sort$$)} is not valid`};
|
|
48
|
+
$aggregate_group_limit$jscomp$2_sort$$&&Object.keys($aggregate_group_limit$jscomp$2_sort$$).length>0&&$condition$jscomp$10_explainResult_piples_query$$.sort($aggregate_group_limit$jscomp$2_sort$$);if($pagination$$||$req$$.query.type_data!=="xlsx"&&$req$$.query.type_data!=="json_file"&&$req$$.query.type_data!=="json_export"&&$req$$.query.rpt!="1")$page_projection_skip$$&&$filter_limit$$?($page_projection_skip$$=(Number($page_projection_skip$$)-1)*$filter_limit$$,$page_projection_skip$$<0&&($page_projection_skip$$=
|
|
49
|
+
0),$condition$jscomp$10_explainResult_piples_query$$.skip($page_projection_skip$$).limit($filter_limit$$)):$condition$jscomp$10_explainResult_piples_query$$.limit($filter_limit$$);$ctrl$$.populate&&($condition$jscomp$10_explainResult_piples_query$$=$ctrl$$.populate($condition$jscomp$10_explainResult_piples_query$$));$condition$jscomp$10_explainResult_piples_query$$.lean&&($condition$jscomp$10_explainResult_piples_query$$=$condition$jscomp$10_explainResult_piples_query$$.lean());if($req$$.query.explainQuery){$req$$.query.explainQuery!=
|
|
50
|
+
"explainQuery"&&$req$$.query.explainQuery!="executionStats"&&($req$$.query.explainQuery="queryPlanner");$filter_limit$$=$condition$jscomp$10_explainResult_piples_query$$.getFilter();$page_projection_skip$$=$condition$jscomp$10_explainResult_piples_query$$.getOptions().projection||{};$key$jscomp$12_skip$$=$condition$jscomp$10_explainResult_piples_query$$.getOptions().skip||0;$aggregate_group_limit$jscomp$2_sort$$=$condition$jscomp$10_explainResult_piples_query$$.getOptions().limit||0;$key$jscomp$11_sort$$=
|
|
51
|
+
$condition$jscomp$10_explainResult_piples_query$$.getOptions().sort||{};$condition$jscomp$10_explainResult_piples_query$$=await $condition$jscomp$10_explainResult_piples_query$$.mongooseCollection.find($filter_limit$$,{projection:$page_projection_skip$$}).skip($key$jscomp$12_skip$$).limit($aggregate_group_limit$jscomp$2_sort$$).sort($key$jscomp$11_sort$$).explain($req$$.query.explainQuery);const {parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$}=$condition$jscomp$10_explainResult_piples_query$$.queryPlanner||
|
|
52
|
+
{},{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,totalDocsExamined:$totalDocsExamined$$}=$condition$jscomp$10_explainResult_piples_query$$.executionStats||{};return[{queryPlanner:{parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$},executionStats:{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,totalDocsExamined:$totalDocsExamined$$},
|
|
53
|
+
_id:""}]}return await $condition$jscomp$10_explainResult_piples_query$$.lean()};let $data_log$$=$req$$.query;delete $data_log$$.access_token;$appConditions$jscomp$1_fields$$.forEach($a$jscomp$12_id_app$$=>{({id_app:$a$jscomp$12_id_app$$}=$a$jscomp$12_id_app$$);$req$$.user&&!$data_log$$.count&&$ctrl$$.name!=="log"&&$ctrl$$.name!=="labelinfo"&&$ctrl$$.name!=="listinfo"&&$ctrl$$.name!=="reportinfo"&&$ctrl$$.name!=="moduleinfo"&&$ctrl$$.name!=="options"&&global.getModel("log").create({id_app:$a$jscomp$12_id_app$$,
|
|
54
|
+
id_func:$ctrl$$.name,action:"QUERY",data:{condition:JSON.stringify($data_log$$)}},$req$$.user.email,$req$$.user_agent,$req$$)});let $page_fetch$$=Number($req$$.query.page||0);isNaN($page_fetch$$)&&($page_fetch$$=0);let $limit$$=$req$$.query.limit;$limit$$&&=Number($limit$$);isNaN($limit$$)&&($limit$$=0);$req$$.query.type_data!=="xlsx"&&$req$$.query.type_data!=="json_file"&&$req$$.query.type_data!=="json_export"&&$req$$.query.rpt!="1"&&($limit$$||=$ctrl$$.require_id_app!==!1&&$ctrl$$.name!=="right"&&
|
|
55
|
+
$ctrl$$.name!=="labelinfo"?20:500,$limit$$&&$limit$$>500&&!$req$$.query.print&&$ctrl$$.require_id_app!==!1&&$ctrl$$.name!=="right"&&$ctrl$$.name!=="labelinfo"&&($limit$$=500));$pagination$$&&($limit$$||=20,$pagination$$.page=$page_fetch$$?$page_fetch$$:1,$pagination$$.limit=$limit$$,$pagination$$.totalPages=Math.ceil($pagination$$.total/$pagination$$.limit));let $condition_groups$$=[];if($condition_group_conditions_listinfo_code$$?.$or?.length>0){let $field_ref$$=$req$$.fetch_by_groups.ref_field||
|
|
56
|
+
$req$$.fetch_by_groups.field;$appConditions$jscomp$1_fields$$={[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1};$appCondition$$=$req$$.fetch_by_groups.limit_group||10;$condition_group$jscomp$1_page$$=Number($req$$.query.page||0);isNaN($condition_group$jscomp$1_page$$)&&($condition_group$jscomp$1_page$$=0);$field_not_right$jscomp$1_skip$$=0;$condition_group$jscomp$1_page$$>1&&($field_not_right$jscomp$1_skip$$=($condition_group$jscomp$1_page$$-1)*$appCondition$$);$field_not_right$jscomp$1_skip$$<
|
|
57
|
+
0&&($field_not_right$jscomp$1_skip$$=0);(await global.getModel($req$$.fetch_by_groups.model_group).find($condition_group_conditions_listinfo_code$$,$appConditions$jscomp$1_fields$$).sort({stt:1,[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1}).skip($field_not_right$jscomp$1_skip$$).limit($appCondition$$).lean()).forEach($g$$=>{let $c$$={...$condition$$};$c$$[$req$$.fetch_by_groups.field]=$g$$[$field_ref$$];$condition_groups$$.push($c$$)});$condition_groups$$.length==0?$condition_groups$$=
|
|
58
|
+
[$condition$$]:($page_fetch$$=0,$req$$.fetch_by_groups.limit&&($limit$$=Math.max(Number($req$$.fetch_by_groups.limit),Math.round($limit$$/$condition_groups$$.length))))}else $condition_groups$$=[$condition$$];try{var $finalize_obj4views$$=await Promise.all($condition_groups$$.map($c$$=>$fetchData$$($c$$,$limit$$,$page_fetch$$)))}catch($e$$){throw Logger.error("exec query find",$e$$,JSON.stringify($condition$$)),{error:$e$$.error||$e$$.message||$e$$};}let $obj4view$$=$finalize_obj4views$$.reduce(($a$$,
|
|
59
|
+
$b$$)=>$a$$.concat($b$$),[]);$obj4view$$||=[];$obj4view$$.forEach($obj$$=>{$obj$$.collection_name||($obj$$.collection_name=$ctrl$$.collection_name)});if($ctrl$$.found)try{$obj4view$$=await new Promise(($resolve$$,$reject$$)=>{$ctrl$$.found($req$$.user,$condition$$,$obj4view$$,($error$$,$items$$)=>$error$$?$reject$$($error$$):$resolve$$($items$$))})}catch($error$$){throw{error:$error$$.error||$error$$.message||$error$$};}try{$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=
|
|
60
|
+
await new Promise(($resolve$$,$reject$$)=>{$ctrl$$.onView($req$$.user,$obj4view$$,($error$$,$vv$$)=>$error$$?$reject$$($error$$):$resolve$$($vv$$),{req:$req$$,shareRoute:$shareRoute$$})})}catch($error$$){throw Logger.error("Erron on view:",$error$$),{error:$error$$.error||$error$$.message||$error$$};}$finalize_obj4views$$=($result_wrapped$$,$dataType$$)=>{$pagination$$&&($pagination$$.total>$result_wrapped$$.length&&$pagination$$.totalPages==1&&($pagination$$.total=$result_wrapped$$.length),$result_wrapped$$=
|
|
61
|
+
{data:$result_wrapped$$,pagination:$pagination$$});return{result:$result_wrapped$$,dataType:$dataType$$||"json"}};if($req$$.query.type_data==="json_file")return{template:$excelTemplate_rows_number_template$jscomp$1_template$$}=$req$$.body,$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=await createTmpFile(`${$excelTemplate_rows_number_template$jscomp$1_template$$?.title||$ctrl$$.name}.json`,JSON.stringify($downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,
|
|
62
|
+
null,2)),$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=$req$$.host?.startsWith("http")?`${$req$$.host}/downloads/temp/${$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$}`:`https://${$req$$.host}/downloads/temp/${$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$}`,$finalize_obj4views$$({url:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$},
|
|
63
|
+
"json");if($req$$.query.type_data==="xlsx"){if($req$$.body.template)return{template:$excelTemplate_rows_number_template$jscomp$1_template$$}=$req$$.body,$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=await generateDefaultExcel({title:$excelTemplate_rows_number_template$jscomp$1_template$$.title,data:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,columns:$excelTemplate_rows_number_template$jscomp$1_template$$.columns,
|
|
64
|
+
filterFields:$excelTemplate_rows_number_template$jscomp$1_template$$.filterFields,condition:$excelTemplate_rows_number_template$jscomp$1_template$$.condition||$req$$.body.q||$req$$.query||{}}),$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=$req$$.host?.startsWith("http")?`${$req$$.host}/downloads/temp/${$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$}`:`https://${$req$$.host}/downloads/temp/${$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$}`,
|
|
65
|
+
$finalize_obj4views$$({url:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$},"json");var $dir_root_template_result$$=(configs.paths||{}).templates;let $templatePath$$;if($appConditions$jscomp$1_fields$$=$req$$.query.id_template){if(!global.mongoose.Types.ObjectId.isValid($appConditions$jscomp$1_fields$$))throw{error:"ID m\u1eabu file xu\u1ea5t kh\u00f4ng h\u1ee3p l\u1ec7"};$excelTemplate_rows_number_template$jscomp$1_template$$=await global.getModel("exportexceltemplate").findById($appConditions$jscomp$1_fields$$);
|
|
66
|
+
if(!$excelTemplate_rows_number_template$jscomp$1_template$$||!$excelTemplate_rows_number_template$jscomp$1_template$$.file)throw{error:"M\u1eabu file xu\u1ea5t kh\u00f4ng t\u1ed3n t\u1ea1i"};$templatePath$$=$dir_root_template_result$$?`${path.dirname($dir_root_template_result$$)}${$excelTemplate_rows_number_template$jscomp$1_template$$.file}`:`${path.dirname(__dirname)}${$excelTemplate_rows_number_template$jscomp$1_template$$.file}`}else $dir_root_template_result$$&&($templatePath$$=`${$dir_root_template_result$$}/excels/lists/${$ctrl$$.name}.xlsx`),
|
|
67
|
+
$templatePath$$&&fs.existsSync($templatePath$$)||($templatePath$$=`${path.dirname(__dirname)}/templates/excels/lists/${$ctrl$$.name}.xlsx`);if(!fs.existsSync($templatePath$$))throw{error:"File m\u1eabu excel ch\u01b0a \u0111\u01b0\u1ee3c khai b\u00e1o t\u1ea1i '"+$templatePath$$+"'"};let $app$$={};$app$$.detail=$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$;$app$$.items=$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$;
|
|
68
|
+
if($excelTemplate_rows_number_template$jscomp$1_template$$&&$excelTemplate_rows_number_template$jscomp$1_template$$.handle_data){$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=`return (async ()=>{
|
|
69
|
+
try{
|
|
70
|
+
${$excelTemplate_rows_number_template$jscomp$1_template$$.handle_data}
|
|
71
|
+
}catch(e){
|
|
72
|
+
return {error:e}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
})`;try{if(($app$$=await evalute($downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,{data:$app$$,moment,numeral,_,utils})())&&$app$$.error)throw Logger.error($app$$.error,$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$),{error:$app$$.error.message||$app$$.error.error||$app$$.error};}catch($e$$){throw Logger.error($e$$,$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$),
|
|
76
|
+
{error:$e$$.message||$e$$.error||$e$$};}}$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=await new Promise(($resolve$$,$reject$$)=>{excelReport($templatePath$$,$app$$,($e$$,$result$$)=>$e$$?$reject$$($e$$):$resolve$$($result$$),{timezone:configs.timezone||"Asia/Ho_Chi_Minh"})});return $finalize_obj4views$$($downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,"xlsx")}if($req$$.query.print&&
|
|
77
|
+
$req$$.query.id_rpt&&global.mongoose.Types.ObjectId.isValid($req$$.query.id_rpt))try{return $dir_root_template_result$$=await htmlReport($req$$.query.id_rpt,{...$req$$.user.current_app_info,...$req$$.query,company:{...$req$$.user.current_app_info},detail:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,details:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,items:$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$}),
|
|
78
|
+
$finalize_obj4views$$($dir_root_template_result$$,"json")}catch($e$$){throw Logger.error("htmlReport",$e$$),$e$$;}let $_rs$$=$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$;if($req$$.query.groupBy){let $_groupBy$$=$req$$.query.groupBy.split(",");$downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$=await new Promise(($resolve$$,$reject$$)=>{$_rs$$.groupBy($_groupBy$$,[],($e$$,$_items$$)=>
|
|
79
|
+
{if($e$$)return Logger.error("jsonReport",$e$$),$reject$$({error:$e$$.message||$e$$.error||$e$$});$resolve$$($_items$$)})});return $finalize_obj4views$$($downloadUrl_downloadUrl$jscomp$1_fileName_fileName$jscomp$1_func_string_groupedResult_groups_number_result$$,"json")}return $finalize_obj4views$$($_rs$$,"json")},findHanlder=function($ctrl$$,$req$$,$callback$$){findHandlerCore($ctrl$$,$req$$).then($rs$$=>$callback$$(null,$rs$$),$e$$=>$callback$$($e$$))};
|
|
80
|
+
findHanlder.findHandlerAsync=($ctrl$$,$req$$)=>findHandlerCore($ctrl$$,$req$$);findHanlder.findHandlerCore=findHandlerCore;module.exports=findHanlder;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const fs=require("fs"),path=require("path"),async=require("async"),_=require("lodash"),Moment=require("moment-timezone"),moment=$time$$=>Moment.tz($time$$,configs.timezone||"Asia/Ho_Chi_Minh"),numeral=require("numeral"),excelReport=require("excel-report"),{evalute,JSONParser,getDateRangeByType}=require("../libs/utils"),permission=require("../libs/permission"),htmlReport=require("../libs/htmlReport"),utils=require("../libs/utils"),queryBuilding=require("../libs/queryBuilding"),{createTmpFile,generateDefaultExcel}=
|
|
2
|
+
require("../libs/excelHelper"),{ERRORS}=require("./controllerUtils"),{isValidObjectId}=require("mongoose"),FIELDS_NEED_CONVERT_CODE={ten_kh:{code:"ma_kh",model:"customer"},ten_vt:{code:"ma_vt",model:"dmvt"},ten_kho:{code:"ma_kho",model:"dmkho"},ten_phi:{code:"ma_phi",model:"dmphi"},ten_dt:{code:"ma_dt",model:"dmdt"},ten_bp:{code:"ma_bp",model:"dmbp"},ten_nv:{code:"ma_nv",model:"dmnv"}};
|
|
3
|
+
async function convertNamesToCodes($id_app$$,$condition$$,$FIELDS_NEED_CONVERT_CODE$$,$model$$){if(!$condition$$||typeof $condition$$!=="object")return $condition$$;if(Array.isArray($condition$$)){for(var $i_key_q$$=0;$i_key_q$$<$condition$$.length;$i_key_q$$++)$condition$$[$i_key_q$$]=await convertNamesToCodes($id_app$$,$condition$$[$i_key_q$$],$FIELDS_NEED_CONVERT_CODE$$,$model$$);return $condition$$}for($i_key_q$$ in $condition$$)if($i_key_q$$==="$or"||$i_key_q$$==="$and")$condition$$[$i_key_q$$]=
|
|
4
|
+
await convertNamesToCodes($id_app$$,$condition$$[$i_key_q$$],$FIELDS_NEED_CONVERT_CODE$$,$model$$);else{var $ds_fieldMapping$$=$FIELDS_NEED_CONVERT_CODE$$[$i_key_q$$];if($ds_fieldMapping$$){const $targetCodeField$$=$ds_fieldMapping$$.code;$id_app$$&&_.has($model$$.schema.paths,$targetCodeField$$)&&$model$$.modelName!==$ds_fieldMapping$$.model&&($condition$$[$targetCodeField$$]?_.has($model$$.schema.paths,$i_key_q$$)&&delete $condition$$[$i_key_q$$]:($ds_fieldMapping$$=await global.getModel($ds_fieldMapping$$.model).find({id_app:$id_app$$,
|
|
5
|
+
[$i_key_q$$]:$condition$$[$i_key_q$$]},{[$targetCodeField$$]:1}),$condition$$[$targetCodeField$$]={$in:$ds_fieldMapping$$.map($d$$=>$d$$[$targetCodeField$$])},delete $condition$$[$i_key_q$$]))}}return $condition$$}
|
|
6
|
+
const NEED_GET_CHILDREN={ma_bp:{model:"dmbp",code:"ma_bp",code_mother:"ma_bp_me"},ma_kho:{model:"dmkho",code:"ma_kho",code_mother:"ma_kho_me"},nh_kh:{model:"group",code:"_id",code_mother:"group_mother"},nh_kh2:{model:"group",code:"_id",code_mother:"group_mother"},nh_kh3:{model:"group",code:"_id",code_mother:"group_mother"},nh_kh4:{model:"group",code:"_id",code_mother:"group_mother"},nh_kh5:{model:"group",code:"_id",code_mother:"group_mother"},ma_nvt:{model:"dmnvt",code:"_id",code_mother:"nh_me"},
|
|
7
|
+
ma_nvt2:{model:"dmnvt",code:"_id",code_mother:"nh_me"},ma_nvt3:{model:"dmnvt",code:"_id",code_mother:"nh_me"}};
|
|
8
|
+
async function getChildren($id_app$$,$condition$$,$NEED_GET_CHILDREN$$){if(!$condition$$||typeof $condition$$!=="object")return $condition$$;if(Array.isArray($condition$$))return await Promise.all($condition$$.map(async($item$$,$index$$)=>{$condition$$[$index$$]=await getChildren($id_app$$,$item$$,$NEED_GET_CHILDREN$$)})),$condition$$;const $tasks$$=[];for(let $key_q$$ in $condition$$){if($key_q$$==="$or"||$key_q$$==="$and"){$tasks$$.push((async()=>{$condition$$[$key_q$$]=await getChildren($id_app$$,
|
|
9
|
+
$condition$$[$key_q$$],$NEED_GET_CHILDREN$$)})());continue}const $fieldMapping$$=$NEED_GET_CHILDREN$$[$key_q$$];if($fieldMapping$$){const $value$$=$condition$$[$key_q$$];if($value$$&&(typeof $value$$==="string"||Array.isArray($value$$))){const $model$$=global.getModel($fieldMapping$$.model);$model$$&&$tasks$$.push((async()=>{const $childCodes$$=await utils.getCodeChildren($model$$,$id_app$$,$value$$,$fieldMapping$$.code,$fieldMapping$$.code_mother);$condition$$[$key_q$$]={$in:$childCodes$$}})())}}}$tasks$$.length>
|
|
10
|
+
0&&await Promise.all($tasks$$);return $condition$$}
|
|
11
|
+
const hasRight=async($ctrl$$,$req$$,$listinfo_code$$,$id_app$$,$shareRoute$$)=>{if(!$shareRoute$$)return new Promise(($resolve$$,$reject$$)=>{setImmediate(async()=>{let $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,{action:"view"});permission.hasRight($id_app$$,$req$$.user.email,$ctrl$$.module,"view",function($e$$,$permission$$){$e$$&&Logger.error("[findHandler] [hasRight] L\u1ed7i Kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp:",$req$$.user.email,$e$$);if($ctrl$$.options.onQuery)$ctrl$$.options.onQuery($req$$,
|
|
12
|
+
$e$$=>{if($e$$)return $reject$$({error:$e$$.error||$e$$.message||$e$$});if(!$permission$$)return $resolve$$("0");$resolve$$($permission$$)});else{if(!$permission$$)return $resolve$$("0");$resolve$$($permission$$)}},{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$,user:$req$$.user})})})},handleDynamicCondition=async($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$)=>{let {condition:$condition$$,id_app:$id_app$$}=$appCondition$$,$userInfo$$={...$req$$.user,current_id_app:$id_app$$};!$id_app$$||
|
|
13
|
+
$userInfo$$.current_app_info&&$userInfo$$.current_app_info?._id?.toString()==$id_app$$||($userInfo$$.current_app_info=await global.getModel("app").findOne({_id:$id_app$$}).lean());$appCondition$$.userInfo=$userInfo$$;let $new_condition$$=await new Promise(($resolve$$,$reject$$)=>{$ctrl$$.finding?$ctrl$$.finding($userInfo$$,$condition$$,function($error$$,$condition$$){if($error$$)return $reject$$({error:$error$$.message||$error$$.error||$error$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($userInfo$$,
|
|
14
|
+
$condition$$,function($e$$,$condition$$){if($e$$)return Logger.error("dynamicFinding",$e$$),$e$$.error?$reject$$($e$$):$reject$$({error:$e$$.message||$e$$});$resolve$$($condition$$)},{listinfo_code:$listinfo_code$$,req:$req$$}):$resolve$$($condition$$)},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($userInfo$$,$condition$$,function($e$$,$condition$$){if($e$$)return Logger.error("dynamicFinding",$e$$),$e$$.error?$reject$$($e$$):$reject$$({error:$e$$.message||$e$$});$resolve$$($condition$$)},
|
|
15
|
+
{listinfo_code:$listinfo_code$$,req:$req$$}):$resolve$$($condition$$)});$new_condition$$=await getChildren($appCondition$$.id_app,$new_condition$$,NEED_GET_CHILDREN);$appCondition$$.condition=$new_condition$$;return $appCondition$$},buildCondition=async($ctrl$$,$req$$,$listinfo_code$$,$appConditions_shareRoute$$)=>{var $body_ds_id_app$$={};_.isObject($req$$.body)&&($body_ds_id_app$$=$req$$.body);let $query$$={...$req$$.query,...$body_ds_id_app$$};$query$$.tu_ngay&&($query$$.tu_ngay=moment($query$$.tu_ngay).startOf("date").toDate());
|
|
16
|
+
$query$$.den_ngay&&($query$$.den_ngay=moment($query$$.den_ngay).endOf("date").toDate());($body_ds_id_app$$=$query$$.id_apps)&&typeof $body_ds_id_app$$=="string"&&($body_ds_id_app$$=[$body_ds_id_app$$]);let $all_app$$=$query$$.all_app;$req$$.query=$query$$;if($query$$.sort)if(typeof $query$$.sort=="object")var $or_sort$$=$query$$.sort;else try{$or_sort$$=JSONParser($query$$.sort)}catch($e$$){throw Logger.error("error parse json",$e$$,$query$$.sort),`Sort ${$query$$.sort} is not valid`;}!$or_sort$$&&
|
|
17
|
+
$ctrl$$.sort&&($or_sort$$=Object.assign({},$ctrl$$.sort));$req$$.sort=$or_sort$$;$req$$.fetch_by_groups=$query$$.fetch_by_groups;delete $query$$.fetch_by_groups;let $condition$$={};$or_sort$$=[];const $hasCodeByName$$=$k$$=>FIELDS_NEED_CONVERT_CODE[$k$$]&&_.has($ctrl$$.model.schema.paths,FIELDS_NEED_CONVERT_CODE[$k$$].code)&&$ctrl$$.model.modelName!==FIELDS_NEED_CONVERT_CODE[$k$$].model?!0:!1;for(var $key$$ in $query$$)if($key$$!=="id_app"&&$key$$!=="access_token"&&$key$$!=="limit")if($key$$==="_id"&&
|
|
18
|
+
global.mongoose.Types.ObjectId.isValid($query$$._id))try{let $id$$=global.mongoose.Types.ObjectId($query$$._id);$or_sort$$.push({_id:$id$$})}catch($error$$){Logger.error("find condition",$error$$)}else{if($key$$==="q"&&$query$$[$key$$])try{let $q$$=_.isObject($query$$[$key$$])?$query$$[$key$$]:JSONParser($query$$[$key$$]);$req$$.fetch_by_groups=$req$$.fetch_by_groups||$q$$.fetch_by_groups;delete $q$$.fetch_by_groups;$body_ds_id_app$$=$q$$.id_apps||$body_ds_id_app$$;$all_app$$=$q$$.all_app||$all_app$$;
|
|
19
|
+
delete $q$$.all_app;delete $q$$.id_apps;if(Object.keys($q$$).includes("_id"))if(!$q$$._id)delete $q$$._id;else if(typeof $q$$._id!=="object"&&!global.mongoose.Types.ObjectId.isValid($q$$._id))throw Logger.error("Condition is not valid",$q$$),"Condition is not valid";for(let $k_q$$ in $q$$)if(typeof $q$$[$k_q$$]=="string"&&$ctrl$$.model.schema.paths[$k_q$$]?.instance?.toLowerCase()=="date"){let {fromDate:$fromDate$$,toDate:$toDate$$}=getDateRangeByType($q$$[$k_q$$]);$fromDate$$&&$toDate$$&&($q$$[$k_q$$]=
|
|
20
|
+
{$gte:$fromDate$$,$lte:$toDate$$})}($condition$$=$q$$)||($condition$$={});continue}catch($e$$){throw Logger.error("find condition",$e$$,$query$$[$key$$]),"Condition is not valid";}if($key$$!=="fields"&&(_.has($ctrl$$.model.schema.paths,$key$$)||$hasCodeByName$$($key$$)))if($ctrl$$.options.findExact[$key$$])$condition$$[$key$$]=$query$$[$key$$];else{let $item$$={};if($ctrl$$.model.schema.paths[$key$$]?.instance?.toLowerCase()=="number")$item$$[$key$$]=Number($query$$[$key$$]);else if($ctrl$$.model.schema.paths[$key$$]?.instance?.toLowerCase()==
|
|
21
|
+
"date"){let {fromDate:$fromDate$$,toDate:$toDate$$}=getDateRangeByType($query$$[$key$$]);$item$$[$key$$]=$fromDate$$&&$toDate$$?{$gte:$fromDate$$,$lte:$toDate$$}:new Date($query$$[$key$$])}else $ctrl$$.model.schema.paths[$key$$]?.instance?.toLowerCase()=="string"?$item$$[$key$$]={$regex:($query$$[$key$$]||"").trim(),$options:"i"}:$item$$[$key$$]=$query$$[$key$$];$or_sort$$.push($item$$)}else $key$$==="$text"&&$or_sort$$.push({$text:{$search:$query$$[$key$$]}})}$or_sort$$.length!==0&&($query$$.cType===
|
|
22
|
+
"$and"?$condition$$.$and=$or_sort$$:$condition$$.$or=$or_sort$$);$key$$=queryBuilding.convertLegacyQuery(_.cloneDeep($condition$$));$condition$$=queryBuilding.buildSearchQuery($key$$);$appConditions_shareRoute$$||$ctrl$$.require_id_app==0?$appConditions_shareRoute$$=[{id_app:$req$$.user.current_id_app,condition:{id_app:$req$$.user.current_id_app,...$condition$$}}]:($body_ds_id_app$$=($body_ds_id_app$$||[]).filter($id$$=>global.mongoose.Types.ObjectId.isValid($id$$)),$body_ds_id_app$$.length==0&&($all_app$$?
|
|
23
|
+
(Logger.warn("[findHanlder] t\u00ecm t\u1ea5t c\u1ea3 c\u00e1c c\u00f4ng ty c\u00f3 quy\u1ec1n..."),$body_ds_id_app$$=(await global.getModel("participant").find({email:$req$$.user.email},{id_app:1}).lean()).map($a$$=>$a$$.id_app).filter($id_app$$=>isValidObjectId($id_app$$)),$body_ds_id_app$$=(await global.getModel("app").find({_id:{$in:$body_ds_id_app$$}},{_id:1}).lean()).map($a$$=>$a$$._id.toString())):$body_ds_id_app$$=[$req$$.user.current_id_app]),$appConditions_shareRoute$$=$body_ds_id_app$$.map($id_app$$=>
|
|
24
|
+
({id_app:$id_app$$,condition:{...$condition$$,id_app:$id_app$$}})));return Promise.all($appConditions_shareRoute$$.map($appCondition$$=>handleDynamicCondition($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$)))},getRightByItem=async($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$,$shareRoute$$)=>$shareRoute$$?$appCondition$$:new Promise(($resolve$$,$reject$$)=>{setImmediate(async()=>{let $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,{action:"view"});permission.getRightByItem($appCondition$$.id_app,
|
|
25
|
+
$ctrl$$.model,$req$$.user.email,function($e$$,$_condition$$,$admin$$){if($e$$)return Logger.error("[findHandler] [getRightByItem] L\u1ed7i Kh\u00f4ng c\u00f3 quy\u1ec1n:",$e$$),$reject$$({error:$e$$.error||$e$$.message||$e$$,code:$e$$.code||ERRORS.ERR_NOT_PERMIT_CODE});if($appCondition$$.addmin=$admin$$)return $resolve$$($appCondition$$);$appCondition$$.condition||($appCondition$$.condition={});$appCondition$$.condition.$and||($appCondition$$.condition.$and=[]);if($ctrl$$.options.onRightByItem)$ctrl$$.options.onRightByItem($req$$.user,
|
|
26
|
+
$_condition$$,($e$$,$_condition$$)=>{if($e$$)return $reject$$({error:$e$$.error||$e$$.message||$e$$});_.isObject($_condition$$)&&Object.keys($_condition$$).length>0&&$appCondition$$.condition.$and.push($_condition$$);$appCondition$$.condition_assign=$_condition$$;$resolve$$($appCondition$$)});else _.isObject($_condition$$)&&Object.keys($_condition$$).length>0&&$appCondition$$.condition.$and.push($_condition$$),$resolve$$($appCondition$$)},$ctrl$$.name,{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$})})}),
|
|
27
|
+
getRightByCollectionRef=async($ctrl$$,$req$$,$appCondition$$,$shareRoute$$)=>$shareRoute$$||$appCondition$$.admin||!$appCondition$$.condition_assign||Object.keys($appCondition$$.condition_assign).length===0?$appCondition$$:new Promise(($resolve$$,$reject$$)=>{setImmediate(async()=>{if($ctrl$$.options.assignWiths){let $condition_assignwiths$$={};async.map($ctrl$$.options.assignWiths,($col$$,$callback$$)=>{let $m$$=global.getModel($col$$.ref_collection);permission.getRightByItem($appCondition$$.id_app,
|
|
28
|
+
$m$$,$req$$.user.email,function($e$$,$_condition$$,$admin$$){if($e$$)return $callback$$({e:$e$$.error||$e$$.message||$e$$,code:$e$$.code||ERRORS.ERR_NOT_PERMIT_CODE});if($admin$$)return $callback$$(null);$_condition$$.id_app=$appCondition$$.id_app;$appCondition$$.condition[$col$$.ref_field]&&($_condition$$[$col$$.ref_field]=$appCondition$$.condition[$col$$.ref_field]);$m$$.find($_condition$$,{[$col$$.ref_field]:1}).lean().then($dsdt_rs$$=>{$dsdt_rs$$=$dsdt_rs$$.map($r$$=>$r$$[$col$$.ref_field]);$dsdt_rs$$.push("");
|
|
29
|
+
$dsdt_rs$$.push(null);$condition_assignwiths$$[$col$$.field]={$in:$dsdt_rs$$};$callback$$()}).catch($e$$=>{$callback$$($e$$)})},$col$$.ref_module)},$condition$jscomp$7_e$$=>{if($condition$jscomp$7_e$$)return $reject$$({error:$condition$jscomp$7_e$$.error||$condition$jscomp$7_e$$.message||$condition$jscomp$7_e$$});Object.keys($condition_assignwiths$$).length>0&&($condition$jscomp$7_e$$=$appCondition$$.condition_assign||$appCondition$$.condition,$condition$jscomp$7_e$$.$and||($condition$jscomp$7_e$$.$and=
|
|
30
|
+
[]),$condition$jscomp$7_e$$.$and.push($condition_assignwiths$$),$appCondition$$.condition=$condition$jscomp$7_e$$);$resolve$$($appCondition$$)})}else $resolve$$($appCondition$$)})}),findHanlder=async($ctrl$$,$req$$,$callback$$)=>{let $model$$=$ctrl$$.model,$shareRoute$$=$req$$.shareRoute,$listinfo_code$$=$req$$?.body?.["listinfo-code"]||$req$$?.query["listinfo-code"]||$req$$?.headers?.["listinfo-code"]||$req$$?.headers?.["Listinfo-Code"];if(($listinfo_code$$=$listinfo_code$$||$ctrl$$.name)&&$listinfo_code$$!=
|
|
31
|
+
$ctrl$$.name){var $condition$$=await global.getModel("listinfo").findOne({code:$listinfo_code$$},{api_code:1,code:1}).lean();$condition$$?($condition$$.api_code||$condition$$.code)!=$ctrl$$.name&&($listinfo_code$$=$ctrl$$.name):$listinfo_code$$=$ctrl$$.name}let $appConditions$$;try{$appConditions$$=await buildCondition($ctrl$$,$req$$,$listinfo_code$$,$shareRoute$$);for(let $appCondition$$ of $appConditions$$){await hasRight($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$.id_app,$shareRoute$$)=="0"&&
|
|
32
|
+
($appCondition$$.condition._id={$in:[]});await getRightByItem($ctrl$$,$req$$,$listinfo_code$$,$appCondition$$,$shareRoute$$);await getRightByCollectionRef($ctrl$$,$req$$,$appCondition$$,$shareRoute$$);({condition:$condition$$}=$appCondition$$);for(let $key_q$$ in $condition$$)if($key_q$$==="_id"||$key_q$$.startsWith("$")||$key_q$$.includes(".")||_.has($model$$.schema.paths,$key_q$$)||delete $condition$$[$key_q$$],$key_q$$=="$and"){for(let $dk$$ of $condition$$.$and)for(let $key_q$$ in $dk$$)$key_q$$===
|
|
33
|
+
"_id"||$key_q$$.startsWith("$")||$key_q$$.includes(".")||_.has($model$$.schema.paths,$key_q$$)||delete $dk$$[$key_q$$];$condition$$.$and=$condition$$.$and.filter($a$$=>Object.keys($a$$).length>0)}$appCondition$$.id_app&&($condition$$=await convertNamesToCodes($appCondition$$.id_app,$condition$$,FIELDS_NEED_CONVERT_CODE,$model$$),$appCondition$$.condition=$condition$$);if($shareRoute$$){$condition$$.shared=!0;let $id_sellers$$=(await global.getModel("app").find({sale_online:!0},{_id:1}).lean()).map($a$$=>
|
|
34
|
+
$a$$._id);$condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push({id_app:{$in:$id_sellers$$}});$condition$$.id_app&&$condition$$.$and.push({id_app:$condition$$.id_app})}else _.has($model$$.schema.paths,"id_app")&&$ctrl$$.require_id_app!==!1&&($condition$$.id_app=$appCondition$$.id_app);$req$$.user.email==="public"&&_.has($model$$.schema.paths,"session_created")&&($condition$$.session_created=($req$$.cookies||{}).uid);_.extend($condition$$,$ctrl$$.keyValues);utils.deleteEmptyObject($condition$$);
|
|
35
|
+
delete $condition$$.$where;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $condition_group$$;$req$$.fetch_by_groups&&$req$$.fetch_by_groups.model_group&&$req$$.fetch_by_groups.field&&($condition_group$$=$req$$.fetch_by_groups.condition||{},$condition_group$$.status=!0,$condition_group$$.id_app=$appCondition$$.id_app,$condition$$[$req$$.fetch_by_groups.field]&&($condition_group$$[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]=
|
|
36
|
+
$condition$$[$req$$.fetch_by_groups.field]));$appCondition$$.condition_group=$condition_group$$;let $field_not_right$$;try{$field_not_right$$=await permission.getFieldNotRight($appCondition$$.id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$$=[]}$appCondition$$.field_not_right=$field_not_right$$}}catch($e$$){return $callback$$($e$$)}async.series([function($callback$$){setImmediate(async()=>{var $condition_group$$=$appConditions$$.filter($a$$=>Object.keys($a$$.condition).length>
|
|
37
|
+
0).map($a$$=>$a$$.condition);let $condition$$;$condition$$=$condition_group$$.length==0?{}:$condition_group$$.length==1?$condition_group$$[0]:{$or:$condition_group$$};$condition_group$$={$or:$appConditions$$.filter($a$$=>$a$$.condition_group).map($a$$=>$a$$.condition_group)};if($req$$.query.count){var $fields_fields$jscomp$1_groups_number_notfields_rows_number$$=0;$condition_group$$.$or.length>0&&($fields_fields$jscomp$1_groups_number_notfields_rows_number$$=await global.getModel($req$$.fetch_by_groups.model_group).countDocuments($condition_group$$));
|
|
38
|
+
$condition_group$$=await $model$$.countDocuments($condition$$);$req$$.result={groups_number:$fields_fields$jscomp$1_groups_number_notfields_rows_number$$,rows_number:$condition_group$$};return $callback$$("0")}$req$$.query.pagination&&($fields_fields$jscomp$1_groups_number_notfields_rows_number$$=await $model$$.countDocuments($condition$$),$req$$.pagination={total:$fields_fields$jscomp$1_groups_number_notfields_rows_number$$});let $field_not_right$$=[...(new Set($appConditions$$.map($a$$=>$a$$.field_not_right).reduce(($a$$,
|
|
39
|
+
$b$$)=>$a$$.concat($b$$),[])))].filter($a$$=>$a$$);$fields_fields$jscomp$1_groups_number_notfields_rows_number$$=$req$$.query.fields;let $gfields$$={};$fields_fields$jscomp$1_groups_number_notfields_rows_number$$&&(_.isArray($fields_fields$jscomp$1_groups_number_notfields_rows_number$$)?$fields_fields$jscomp$1_groups_number_notfields_rows_number$$.forEach($f$$=>{$f$$!=="_id"&&($gfields$$[$f$$]=1)}):_.isObject($fields_fields$jscomp$1_groups_number_notfields_rows_number$$)?($gfields$$={...$gfields$$,
|
|
40
|
+
...$fields_fields$jscomp$1_groups_number_notfields_rows_number$$},$req$$.query.fields=Object.keys($gfields$$).join(",")):$fields_fields$jscomp$1_groups_number_notfields_rows_number$$.split(",").filter($f$$=>$f$$&&$field_not_right$$.indexOf($f$$)<0).forEach($f$$=>{$f$$!=="_id"&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0});!$fields_fields$jscomp$1_groups_number_notfields_rows_number$$&&
|
|
41
|
+
(($fields_fields$jscomp$1_groups_number_notfields_rows_number$$=$req$$.query.notfields)&&(_.isArray($fields_fields$jscomp$1_groups_number_notfields_rows_number$$)?$fields_fields$jscomp$1_groups_number_notfields_rows_number$$.forEach($f$$=>{$f$$&&$f$$!=="_id"&&(Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)}):_.isObject($fields_fields$jscomp$1_groups_number_notfields_rows_number$$)?$gfields$$={...$gfields$$,...$fields_fields$jscomp$1_groups_number_notfields_rows_number$$}:
|
|
42
|
+
$fields_fields$jscomp$1_groups_number_notfields_rows_number$$.split(",").forEach($f$$=>{$f$$&&$f$$!=="_id"&&(Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?delete $gfields$$[$f$$]:$gfields$$[$f$$]=0)})),$shareRoute$$||$req$$.user.email==="public")&&(Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)?(delete $gfields$$.dataview_to,delete $gfields$$.dataview_to_users):($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0));$condition$$.$text&&($gfields$$||={},$gfields$$.textScore={$meta:"textScore"});
|
|
43
|
+
delete $req$$.query_cache;$ctrl$$.cache&&($req$$.query_cache={..._.cloneDeep($req$$.query),..._.cloneDeep($condition$$)},delete $req$$.query_cache.q,delete $req$$.query_cache.refresh_required,$req$$.query_cache.gfields=_.cloneDeep($gfields$$));const $fetchData$$=($condition$$,$limit$$,$page$$,$callback$$)=>{setImmediate(async()=>{let $query$$;if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate||$req$$.query.$aggregate)try{if($req$$.query.aggregate){var $aggregate_piples_sort$$=
|
|
44
|
+
JSONParser($req$$.query.$aggregate||$req$$.query.aggregate);if(!Array.isArray($aggregate_piples_sort$$))return $callback$$({error:"Aggregate ph\u1ea3i l\u00e0 m\u1ed9t m\u1ea3ng"});if($aggregate_piples_sort$$.find($f$$=>$f$$.$lookup))return $callback$$({error:"Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eed d\u1ee5ng $lookup trong aggregate"});$aggregate_piples_sort$$=[{$match:$condition$$},...$aggregate_piples_sort$$];$query$$=$model$$.aggregate($aggregate_piples_sort$$)}else{$query$$=$model$$.aggregate([{$match:$condition$$}]);
|
|
45
|
+
let $group$$;$req$$.query.group&&($group$$=JSONParser($req$$.query.group),$query$$.group($group$$));if($req$$.query.match){let $match$$=JSONParser($req$$.query.match);$query$$.match($match$$)}let $project$$;if($req$$.query.project)$project$$=JSONParser($req$$.query.project),$query$$.project($project$$);else if($gfields$$&&Object.keys($gfields$$).length>0)$project$$=$gfields$$;else if($project$$={_id:1},$group$$)for(let $key$$ in $group$$)$project$$[$key$$]=1;$query$$.project($project$$)}}catch($e$$){return Logger.error("[findHanlder]",
|
|
46
|
+
$e$$,$req$$.query),$callback$$({error:$e$$.message||$e$$.error||$e$$})}else _.has($model$$.schema.paths,"id_app")&&Object.keys($gfields$$).length>0&&Object.keys($gfields$$).find($k$$=>$gfields$$[$k$$]==1)&&($gfields$$.id_app=1),$query$$=$model$$.find($condition$$,$gfields$$);$aggregate_piples_sort$$=$req$$.sort;if(!$aggregate_piples_sort$$)$gfields$$.textScore&&($aggregate_piples_sort$$={textScore:{$meta:"textScore"}});else for(var $key$$ in $aggregate_piples_sort$$)if($key$$!=="textScore"&&$aggregate_piples_sort$$[$key$$]!=
|
|
47
|
+
1&&$aggregate_piples_sort$$[$key$$]!=-1)return Logger.error("sort is valid",$aggregate_piples_sort$$,$key$$,$aggregate_piples_sort$$[$key$$]),$callback$$({error:`Sort ${JSON.stringify($aggregate_piples_sort$$)} is not valid`});$aggregate_piples_sort$$&&Object.keys($aggregate_piples_sort$$).length>0&&$query$$.sort($aggregate_piples_sort$$);if($req$$.pagination||$req$$.query.type_data!=="xlsx"&&$req$$.query.type_data!=="json_file"&&$req$$.query.type_data!=="json_export"&&$req$$.query.rpt!="1")$page$$&&
|
|
48
|
+
$limit$$?($key$$=(Number($page$$)-1)*$limit$$,$key$$<0&&($key$$=0),$query$$.skip($key$$).limit($limit$$)):$query$$.limit($limit$$);$ctrl$$.populate&&($query$$=$ctrl$$.populate($query$$));$query$$.lean&&($query$$=$query$$.lean());if($req$$.query.explainQuery){$req$$.query.explainQuery!="explainQuery"&&$req$$.query.explainQuery!="executionStats"&&($req$$.query.explainQuery="queryPlanner");try{const $filter$$=$query$$.getFilter(),$projection$$=$query$$.getOptions().projection||{},$skip$$=$query$$.getOptions().skip||
|
|
49
|
+
0,$limit$$=$query$$.getOptions().limit||0,$sort$$=$query$$.getOptions().sort||{},$explainResult$$=await $query$$.mongooseCollection.find($filter$$,{projection:$projection$$}).skip($skip$$).limit($limit$$).sort($sort$$).explain($req$$.query.explainQuery),{parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$}=$explainResult$$.queryPlanner||{},{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,totalDocsExamined:$totalDocsExamined$$}=
|
|
50
|
+
$explainResult$$.executionStats||{};$callback$$(null,[{queryPlanner:{parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$},executionStats:{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,totalDocsExamined:$totalDocsExamined$$},_id:""}])}catch($e$$){$callback$$($e$$)}}else $query$$.lean().then($rs$$=>{$callback$$(null,$rs$$)}).catch($e$$=>{$callback$$($e$$)})})};let $data_log$$=$req$$.query;delete $data_log$$.access_token;
|
|
51
|
+
$appConditions$$.forEach($a$jscomp$12_id_app$$=>{({id_app:$a$jscomp$12_id_app$$}=$a$jscomp$12_id_app$$);$req$$.user&&!$data_log$$.count&&$ctrl$$.name!=="log"&&$ctrl$$.name!=="labelinfo"&&$ctrl$$.name!=="listinfo"&&$ctrl$$.name!=="reportinfo"&&$ctrl$$.name!=="moduleinfo"&&$ctrl$$.name!=="options"&&global.getModel("log").create({id_app:$a$jscomp$12_id_app$$,id_func:$ctrl$$.name,action:"QUERY",data:{condition:JSON.stringify($data_log$$)}},$req$$.user.email,$req$$.user_agent,$req$$)});let $page_fetch$$=
|
|
52
|
+
Number($req$$.query.page||0);isNaN($page_fetch$$)&&($page_fetch$$=0);let $limit$$=$req$$.query.limit;$limit$$&&=Number($limit$$);isNaN($limit$$)&&($limit$$=0);$req$$.query.type_data!=="xlsx"&&$req$$.query.type_data!=="json_file"&&$req$$.query.type_data!=="json_export"&&$req$$.query.rpt!="1"&&($limit$$||=$ctrl$$.require_id_app!==!1&&$ctrl$$.name!=="right"&&$ctrl$$.name!=="labelinfo"?20:500,$limit$$&&$limit$$>500&&!$req$$.query.print&&$ctrl$$.require_id_app!==!1&&$ctrl$$.name!=="right"&&$ctrl$$.name!==
|
|
53
|
+
"labelinfo"&&($limit$$=500));$req$$.pagination&&($limit$$||=20,$req$$.pagination.page=$page_fetch$$?$page_fetch$$:1,$req$$.pagination.limit=$limit$$,$req$$.pagination.totalPages=Math.ceil($req$$.pagination.total/$req$$.pagination.limit));let $condition_groups$$=[];if($condition_group$$.length>0){let $field_ref$$=$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field;$fields_fields$jscomp$1_groups_number_notfields_rows_number$$={[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1};
|
|
54
|
+
let $limit_group$$=$req$$.fetch_by_groups.limit_group||10,$page$$=Number($req$$.query.page||0);isNaN($page$$)&&($page$$=0);let $skip$$=0;$page$$>1&&($skip$$=($page$$-1)*$limit_group$$);$skip$$<0&&($skip$$=0);(await global.getModel($req$$.fetch_by_groups.model_group).find($condition_group$$,$fields_fields$jscomp$1_groups_number_notfields_rows_number$$).sort({stt:1,[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1}).skip($skip$$).limit($limit_group$$).lean()).forEach($g$$=>{let $c$$=
|
|
55
|
+
{...$condition$$};$c$$[$req$$.fetch_by_groups.field]=$g$$[$field_ref$$];$condition_groups$$.push($c$$)});$condition_groups$$.length==0?$condition_groups$$=[$condition$$]:($page_fetch$$=0,$req$$.fetch_by_groups.limit&&($limit$$=Math.max(Number($req$$.fetch_by_groups.limit),Math.round($limit$$/$condition_groups$$.length))))}else $condition_groups$$=[$condition$$];async.map($condition_groups$$,($condition$$,$cb$$)=>{$fetchData$$($condition$$,$limit$$,$page_fetch$$,$cb$$)},($e$$,$obj4views$$)=>{if($e$$)return Logger.error("exec query find",
|
|
56
|
+
$e$$,JSON.stringify($condition$$)),$callback$$({error:$e$$.error||$e$$.message||$e$$});let $obj4view$$=$obj4views$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$obj4view$$||=[];async.parallel({found:function($callback$$){$ctrl$$.found?$ctrl$$.found($req$$.user,$condition$$,$obj4view$$,function($error$$,$items$$){setImmediate(()=>{$callback$$($error$$,$items$$)})}):$callback$$(null,$obj4view$$)},set_collection_name:function($callback$$){$obj4view$$.forEach($obj$$=>{$obj$$.collection_name||($obj$$.collection_name=
|
|
57
|
+
$ctrl$$.collection_name)});$callback$$(null)}},function($error$$,$rs$$){setImmediate(()=>{if($error$$)return $callback$$({error:$error$$.error||$error$$.message||$error$$});$obj4view$$=$rs$$.found;async.parallel({e_view:function($callback$$){$ctrl$$.onView($req$$.user,$obj4view$$,($error$$,$viewValue$$)=>{if($error$$)return Logger.error("Erron on view:",$error$$),$callback$$($error$$);$callback$$(null,$viewValue$$)},{req:$req$$,shareRoute:$shareRoute$$})}},async function($e$$,$_rs_func_string_rs$$){if($error$$)return $callback$$({error:$error$$.error||
|
|
58
|
+
$error$$.message||$error$$});if($req$$.query.type_data==="json_file"){var {template:$_groupBy_template$jscomp$1_template$$}=$req$$.body;try{var $app_dir_root_template_fileName$$=await createTmpFile(`${$_groupBy_template$jscomp$1_template$$?.title||$ctrl$$.name}.json`,JSON.stringify($_rs_func_string_rs$$.e_view,null,2)),$downloadUrl_template_id$$=$req$$.host?.startsWith("http")?`${$req$$.host}/downloads/temp/${$app_dir_root_template_fileName$$}`:`https://${$req$$.host}/downloads/temp/${$app_dir_root_template_fileName$$}`;
|
|
59
|
+
$req$$.result={url:$downloadUrl_template_id$$};$req$$.dataType="json";return $callback$$("0")}catch($e$$){return $callback$$($e$$)}}if($req$$.query.type_data==="xlsx"){if($req$$.body.template){({template:$_groupBy_template$jscomp$1_template$$}=$req$$.body);try{const $fileName$$=await generateDefaultExcel({title:$_groupBy_template$jscomp$1_template$$.title,data:$_rs_func_string_rs$$.e_view,columns:$_groupBy_template$jscomp$1_template$$.columns,filterFields:$_groupBy_template$jscomp$1_template$$.filterFields,
|
|
60
|
+
condition:$_groupBy_template$jscomp$1_template$$.condition||$req$$.body.q||$req$$.query||{}}),$downloadUrl$$=$req$$.host?.startsWith("http")?`${$req$$.host}/downloads/temp/${$fileName$$}`:`https://${$req$$.host}/downloads/temp/${$fileName$$}`;$req$$.result={url:$downloadUrl$$};$req$$.dataType="json";return $callback$$("0")}catch($e$$){return $callback$$($e$$)}}$app_dir_root_template_fileName$$=(configs.paths||{}).templates;let $excelTemplate$$;if($downloadUrl_template_id$$=$req$$.query.id_template){if(!global.mongoose.Types.ObjectId.isValid($downloadUrl_template_id$$))return $callback$$({error:"ID m\u1eabu file xu\u1ea5t kh\u00f4ng h\u1ee3p l\u1ec7"});
|
|
61
|
+
$excelTemplate$$=await global.getModel("exportexceltemplate").findById($downloadUrl_template_id$$);if(!$excelTemplate$$||!$excelTemplate$$.file)return $callback$$({error:"M\u1eabu file xu\u1ea5t kh\u00f4ng t\u1ed3n t\u1ea1i"});$_groupBy_template$jscomp$1_template$$=$app_dir_root_template_fileName$$?`${path.dirname($app_dir_root_template_fileName$$)}${$excelTemplate$$.file}`:`${path.dirname(__dirname)}${$excelTemplate$$.file}`}else $app_dir_root_template_fileName$$&&($_groupBy_template$jscomp$1_template$$=
|
|
62
|
+
`${$app_dir_root_template_fileName$$}/excels/lists/${$ctrl$$.name}.xlsx`),$_groupBy_template$jscomp$1_template$$&&fs.existsSync($_groupBy_template$jscomp$1_template$$)||($_groupBy_template$jscomp$1_template$$=`${path.dirname(__dirname)}/templates/excels/lists/${$ctrl$$.name}.xlsx`);if(!fs.existsSync($_groupBy_template$jscomp$1_template$$))return $callback$$({error:"File m\u1eabu excel ch\u01b0a \u0111\u01b0\u1ee3c khai b\u00e1o t\u1ea1i '"+$_groupBy_template$jscomp$1_template$$+"'"});$app_dir_root_template_fileName$$=
|
|
63
|
+
{};$app_dir_root_template_fileName$$.detail=$_rs_func_string_rs$$.e_view;$app_dir_root_template_fileName$$.items=$_rs_func_string_rs$$.e_view;if($excelTemplate$$&&$excelTemplate$$.handle_data){$_rs_func_string_rs$$=`return (async ()=>{
|
|
64
|
+
try{
|
|
65
|
+
${$excelTemplate$$.handle_data}
|
|
66
|
+
}catch(e){
|
|
67
|
+
return {error:e}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
})`;try{if(($app_dir_root_template_fileName$$=await evalute($_rs_func_string_rs$$,{data:$app_dir_root_template_fileName$$,moment,numeral,_,utils})())&&$app_dir_root_template_fileName$$.error)return Logger.error($app_dir_root_template_fileName$$.error,$_rs_func_string_rs$$),$callback$$({error:$app_dir_root_template_fileName$$.error.message||$app_dir_root_template_fileName$$.error.error||$app_dir_root_template_fileName$$.error})}catch($e$$){return Logger.error($e$$,$_rs_func_string_rs$$),
|
|
71
|
+
$callback$$({error:$e$$.message||$e$$.error||$e$$})}}excelReport($_groupBy_template$jscomp$1_template$$,$app_dir_root_template_fileName$$,function($e$$,$result$$){if($e$$)return Logger.error("excelReport",$e$$),$callback$$({error:$e$$.message||$e$$.error||$e$$});$req$$.result=$result$$;$req$$.dataType="xlsx";$callback$$("0")},{timezone:configs.timezone||"Asia/Ho_Chi_Minh"})}else $req$$.query.print&&$req$$.query.id_rpt&&global.mongoose.Types.ObjectId.isValid($req$$.query.id_rpt)?htmlReport($req$$.query.id_rpt,
|
|
72
|
+
{...$req$$.user.current_app_info,...$req$$.query,company:{...$req$$.user.current_app_info},detail:$_rs_func_string_rs$$.e_view,details:$_rs_func_string_rs$$.e_view,items:$_rs_func_string_rs$$.e_view}).then($rs$$=>{$req$$.result=$rs$$;$callback$$("0")},$e$$=>{Logger.error("htmlReport",$e$$);$callback$$($e$$)}):($_rs_func_string_rs$$=$_rs_func_string_rs$$.e_view,$req$$.query.groupBy?($_groupBy_template$jscomp$1_template$$=$req$$.query.groupBy.split(","),$_rs_func_string_rs$$.groupBy($_groupBy_template$jscomp$1_template$$,
|
|
73
|
+
[],($e$$,$_items$$)=>{if($e$$)return Logger.error("jsonReport",$e$$),$callback$$({error:$e$$.message||$e$$.error||$e$$});$req$$.result=$_items$$;$callback$$("0")})):($req$$.result=$_rs_func_string_rs$$,$callback$$("0")))})})})})})}],$e$jscomp$24_result$$=>{if($e$jscomp$24_result$$&&$e$jscomp$24_result$$!="0")return $callback$$($e$jscomp$24_result$$);$req$$.pagination?($req$$.pagination.total>$req$$.result.length&&$req$$.pagination.totalPages==1&&($req$$.pagination.total=$req$$.result.length),$e$jscomp$24_result$$=
|
|
74
|
+
{data:$req$$.result,pagination:$req$$.pagination}):$e$jscomp$24_result$$=$req$$.result;$callback$$(null,{result:$e$jscomp$24_result$$,dataType:$req$$.dataType||"json"})})};module.exports=findHanlder;
|