flexbiz-server
Version:
Flexible Server
86 lines (83 loc) • 38.2 kB
JavaScript
const cktk=require("../../libs/cktk"),dktk=require("../../libs/dktk"),rptform=global.getModel("rptform"),async=require("async"),_=require("lodash"),utils=require("../../libs/utils"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),numeral=require("numeral"),{evalute}=require("../../libs/utils"),ctds=global.getModel("ctds"),{getCodeChildren}=require("../../libs/utils");
function exec($cong_thuc_func_string$$,$sandbox$$){$cong_thuc_func_string$$=$cong_thuc_func_string$$.split("undefined").join("0").split("null").join("0");$cong_thuc_func_string$$=($cong_thuc_func_string$$||"").indexOf("return ")<0?`return ${$cong_thuc_func_string$$}`:$cong_thuc_func_string$$;return utils.evalute($cong_thuc_func_string$$,$sandbox$$)}
const getRegString=function($arrayTk$$){return $arrayTk$$?$arrayTk$$.reg():null},calc4cell=async($req$$,$row_socai$$,$cell$$,$query_tk_co_tk_no$$,$callback$$)=>{if(!$cell$$)return $callback$$(null,{value:0,value_nt:0,cong_thuc:""});var $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$;$cell$$.ma_phi&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$=await getCodeChildren(global.getModel("dmphi"),$query_tk_co_tk_no$$.id_app,$cell$$.ma_phi,"ma_phi","ma_phi_me"));
switch($cell$$.cach_tinh){case "1":$cell$$.value_string="";$callback$$(null,$cell$$);break;case "9":$cell$$.cong_thuc="";$cell$$.value_string="";utils.getInfoFromQuery($query_tk_co_tk_no$$,$cell$$.query,($e$$,$rs$$)=>{if($e$$)return $callback$$(null,$cell$$);_.isNumber($rs$$)?$cell$$.value=$rs$$:$cell$$.value_string=$rs$$;$callback$$(null,$cell$$)});break;case "99":$cell$$.cong_thuc="";$cell$$.value_string="";if(!$cell$$.script||$cell$$.script.indexOf("async ")>=0)return $callback$$(null,$cell$$);
let $func_string$$=`return (async ()=>{
try{
${$cell$$.script}
}catch(e){
return {error:e}
}
})`;utils.evalute($func_string$$,{row:$row_socai$$,moment,condition:$query_tk_co_tk_no$$,user:$req$$.user,_,utils,cell:$cell$$})().then($rs$$=>{if($rs$$){if($rs$$.error)return Logger.error($rs$$.error,$func_string$$),$callback$$(null,$cell$$);_.isNumber($rs$$)?$cell$$.value=$rs$$:$cell$$.value_string=$rs$$}$callback$$(null,$cell$$)}).catch($e$$=>{Logger.error($e$$,$func_string$$);return $callback$$($e$$.message||$e$$.error||$e$$,$cell$$)});break;case "2":$cell$$.cong_thuc="";$cell$$.value_string=
"";var $condition_dieu_kien_khac$$={ngay_ct:{$gte:$query_tk_co_tk_no$$.tu_ngay,$lte:$query_tk_co_tk_no$$.den_ngay},id_app:$query_tk_co_tk_no$$.id_app};$query_tk_co_tk_no$$.ma_dvcs&&($condition_dieu_kien_khac$$.ma_dvcs=$query_tk_co_tk_no$$.ma_dvcs);$query_tk_co_tk_no$$.ma_bp&&($condition_dieu_kien_khac$$.ma_bp=$query_tk_co_tk_no$$.ma_bp);$query_tk_co_tk_no$$.ma_hd&&($condition_dieu_kien_khac$$.ma_hd=$query_tk_co_tk_no$$.ma_hd);$query_tk_co_tk_no$$.ma_dt&&($condition_dieu_kien_khac$$.ma_dt=$query_tk_co_tk_no$$.ma_dt);
$query_tk_co_tk_no$$.ma_sp&&($condition_dieu_kien_khac$$.ma_sp=$query_tk_co_tk_no$$.ma_sp);$query_tk_co_tk_no$$.ma_nv&&($condition_dieu_kien_khac$$.ma_nv=$query_tk_co_tk_no$$.ma_nv);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$&&($condition_dieu_kien_khac$$.ma_phi=$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$);$cell$$.ma_kh&&($condition_dieu_kien_khac$$.$or=[{ma_kh_no:$cell$$.ma_kh},{ma_kh_co:$cell$$.ma_kh}]);if($query_tk_co_tk_no$$=getRegString($cell$$.tk_no))$condition_dieu_kien_khac$$.tk_no=
$cell$$.giam_tru_no?{$not:new RegExp($query_tk_co_tk_no$$)}:{$regex:$query_tk_co_tk_no$$,$options:"i"};if($query_tk_co_tk_no$$=getRegString($cell$$.tk_co))$condition_dieu_kien_khac$$.tk_co=$cell$$.giam_tru_co&&$query_tk_co_tk_no$$?{$not:new RegExp($query_tk_co_tk_no$$)}:{$regex:$query_tk_co_tk_no$$,$options:"i"};if($cell$$.dieu_kien_khac)try{$cell$$.dieu_kien_khac.indexOf("return")<0&&($cell$$.dieu_kien_khac="return "+$cell$$.dieu_kien_khac);var $condition$$=evalute($cell$$.dieu_kien_khac,{condition:$condition_dieu_kien_khac$$,
moment,row:$row_socai$$,cell:$cell$$});$condition_dieu_kien_khac$$={...$condition_dieu_kien_khac$$,...$condition$$}}catch($e$$){return $callback$$($e$$.toString())}$cell$$.ma_kho||$cell$$.ma_kh?($cell$$.ma_kho&&($condition_dieu_kien_khac$$.ma_kho=$cell$$.ma_kho),$row_socai$$=global.getModel("socaitc")):$row_socai$$=global.getModel("socaitt");try{utils.groupByCondition($row_socai$$,$condition_dieu_kien_khac$$,["id_ct","so_ct","ngay_ct"],{sum:["tien","tien_nt"]}).then($rs$$=>{$cell$$.value=$rs$$.csum("tien");
$cell$$.value_nt=$rs$$.csum("tien_nt");$cell$$.details=$rs$$;$callback$$(null,$cell$$)}).catch($error$$=>{$callback$$($error$$)})}catch($e$$){$callback$$($e$$)}break;case "3":$cell$$.cong_thuc="";$cell$$.value_string="";$condition$$=$query_tk_co_tk_no$$.tu_ngay.getFullYear()*12+$query_tk_co_tk_no$$.tu_ngay.getMonth();var $den_nam_thang_dieu_kien_khac$$=$query_tk_co_tk_no$$.den_ngay.getFullYear()*12+$query_tk_co_tk_no$$.den_ngay.getMonth();$condition$$={id_app:$query_tk_co_tk_no$$.id_app,tu_nam_thang:$condition$$,
den_nam_thang:$den_nam_thang_dieu_kien_khac$$};$query_tk_co_tk_no$$.ma_dvcs&&($condition$$.ma_dvcs=$query_tk_co_tk_no$$.ma_dvcs);$query_tk_co_tk_no$$.ma_bp&&($condition$$.ma_bp=$query_tk_co_tk_no$$.ma_bp);$query_tk_co_tk_no$$.ma_hd&&($condition$$.ma_hd=$query_tk_co_tk_no$$.ma_hd);$query_tk_co_tk_no$$.ma_dt&&($condition$$.ma_dt=$query_tk_co_tk_no$$.ma_dt);$query_tk_co_tk_no$$.ma_sp&&($condition$$.ma_sp=$query_tk_co_tk_no$$.ma_sp);$query_tk_co_tk_no$$.ma_nv&&($condition$$.ma_nv=$query_tk_co_tk_no$$.ma_nv);
$cell$$.ma_phi&&($condition$$.ma_phi=$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$);$cell$$.ma_kho&&($condition$$.ma_kho=$cell$$.ma_kho);$cell$$.ma_kh&&($condition$$.ma_kh=$cell$$.ma_kh);if($cell$$.dieu_kien_khac)try{$cell$$.dieu_kien_khac.indexOf("return")<0&&($cell$$.dieu_kien_khac="return "+$cell$$.dieu_kien_khac),$condition_dieu_kien_khac$$=evalute($cell$$.dieu_kien_khac,{condition:$condition$$,moment,row:$row_socai$$,cell:$cell$$}),$condition$$={...$condition$$,...$condition_dieu_kien_khac$$}}catch($e$$){return $callback$$($e$$.toString())}try{utils.sumByCondition(ctds,
["chi_tieu"],$condition$$).then($rs$$=>{$cell$$.value_nt=$cell$$.value=$rs$$.chi_tieu;$callback$$(null,$cell$$)}).catch($e$$=>{$callback$$($e$$)})}catch($e$$){$callback$$($e$$)}break;case "5":$cell$$.cong_thuc="";$cell$$.value_string="";$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$query_tk_co_tk_no$$};$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.tu_ngay);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.bu_tru=
$cell$$.bu_tru_cong_no;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tk=$cell$$.tk;$cell$$.ma_kh&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ma_kh=$cell$$.ma_kh);if($cell$$.dieu_kien_khac)try{$cell$$.dieu_kien_khac.indexOf("return")<0&&($cell$$.dieu_kien_khac="return "+$cell$$.dieu_kien_khac);$den_nam_thang_dieu_kien_khac$$=evalute($cell$$.dieu_kien_khac,{condition:$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,moment,row:$row_socai$$,
cell:$cell$$});if($den_nam_thang_dieu_kien_khac$$.ngay&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setDate($den_nam_thang_dieu_kien_khac$$.ngay),$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()))return $callback$$(null,{value:0,value_nt:0});if($den_nam_thang_dieu_kien_khac$$.thang){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth($den_nam_thang_dieu_kien_khac$$.thang-
1);let $ngay_dau_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("month").toDate(),$ngay_cuoi_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("month").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_dau_thang$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($query_tk_co_tk_no$$.tu_ngay));$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.den_ngay).startOf("date").toDate());if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_thang$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<
$ngay_dau_thang$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($den_nam_thang_dieu_kien_khac$$.quy){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth(3*($den_nam_thang_dieu_kien_khac$$.quy-1));let $ngay_dau_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("quarter").toDate(),$ngay_cuoi_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("quarter").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($ngay_dau_quy$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.tu_ngay));$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.den_ngay).startOf("date").toDate());
if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_quy$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_quy$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($den_nam_thang_dieu_kien_khac$$.nam){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setYear($den_nam_thang_dieu_kien_khac$$.nam);let $ngay_dau_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("year").toDate(),
$ngay_cuoi_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("year").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_dau_nam$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.tu_ngay));$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>
$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.den_ngay).startOf("date").toDate());if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_nam$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_nam$$.getTime())return $callback$$(null,{value:0,value_nt:0})}delete $den_nam_thang_dieu_kien_khac$$.ngay;delete $den_nam_thang_dieu_kien_khac$$.quy;
delete $den_nam_thang_dieu_kien_khac$$.thang;delete $den_nam_thang_dieu_kien_khac$$.nam;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,...$den_nam_thang_dieu_kien_khac$$}}catch($e$$){return $callback$$($e$$.toString())}delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tu_ngay;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.den_ngay;dktk($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,
function($error$$,$result$$){if($error$$)return $callback$$($error$$);$cell$$.value=$result$$.csum("du_no00");$cell$$.value_nt=$result$$.csum("du_no_nt00");$cell$$.value<0&&$cell$$.khong_am&&($cell$$.value=0);$cell$$.value_nt<0&&$cell$$.khong_am&&($cell$$.value_nt=0);$callback$$(null,$cell$$)});break;case "6":$cell$$.cong_thuc="";$cell$$.value_string="";$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$query_tk_co_tk_no$$};$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($query_tk_co_tk_no$$.tu_ngay);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.bu_tru=$cell$$.bu_tru_cong_no;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tk=$cell$$.tk;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tu_ngay;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.den_ngay;$cell$$.ma_kh&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ma_kh=$cell$$.ma_kh);
if($cell$$.dieu_kien_khac)try{$cell$$.dieu_kien_khac.indexOf("return")<0&&($cell$$.dieu_kien_khac="return "+$cell$$.dieu_kien_khac);let $dieu_kien_khac$$=evalute($cell$$.dieu_kien_khac,{condition:$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,moment,row:$row_socai$$,cell:$cell$$});if($dieu_kien_khac$$.ngay&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setDate($dieu_kien_khac$$.ngay),$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>
$query_tk_co_tk_no$$.den_ngay.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()))return $callback$$(null,{value:0,value_nt:0});if($dieu_kien_khac$$.thang){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth($dieu_kien_khac$$.thang-1);let $ngay_dau_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("month").toDate(),$ngay_cuoi_thang$$=
moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("month").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_dau_thang$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.tu_ngay));$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>
$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.den_ngay).startOf("date").toDate());if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_thang$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_thang$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($dieu_kien_khac$$.quy){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth(($dieu_kien_khac$$.quy-
1)*3);let $ngay_dau_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("quarter").toDate(),$ngay_cuoi_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("quarter").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_dau_quy$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($query_tk_co_tk_no$$.tu_ngay));$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.den_ngay).startOf("date").toDate());if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_quy$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<
$ngay_dau_quy$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($dieu_kien_khac$$.nam){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setYear($dieu_kien_khac$$.nam);let $ngay_dau_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("year").toDate(),$ngay_cuoi_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("year").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($ngay_dau_nam$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.tu_ngay));$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.den_ngay).startOf("date").toDate());
if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_nam$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_nam$$.getTime())return $callback$$(null,{value:0,value_nt:0})}delete $dieu_kien_khac$$.ngay;delete $dieu_kien_khac$$.thang;delete $dieu_kien_khac$$.quy;delete $dieu_kien_khac$$.nam;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,
...$dieu_kien_khac$$}}catch($e$$){return $callback$$($e$$.toString())}dktk($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$cell$$.value=$result$$.csum("du_co00");$cell$$.value_nt=$result$$.csum("du_co_nt00");$cell$$.value<0&&$cell$$.khong_am&&($cell$$.value=0);$cell$$.value_nt<0&&$cell$$.khong_am&&($cell$$.value_nt=0);$callback$$(null,$cell$$)});break;case "7":$cell$$.cong_thuc="";$cell$$.value_string="";
$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$query_tk_co_tk_no$$};$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.bu_tru=$cell$$.bu_tru_cong_no;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tk=$cell$$.tk;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tu_ngay;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.den_ngay;
$cell$$.ma_kh&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ma_kh=$cell$$.ma_kh);if($cell$$.dieu_kien_khac)try{$cell$$.dieu_kien_khac.indexOf("return")<0&&($cell$$.dieu_kien_khac="return "+$cell$$.dieu_kien_khac);let $dieu_kien_khac$$=evalute($cell$$.dieu_kien_khac,{condition:$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,moment,row:$row_socai$$,cell:$cell$$});if($dieu_kien_khac$$.ngay&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setDate($dieu_kien_khac$$.ngay),
$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()))return $callback$$(null,{value:0,value_nt:0});if($dieu_kien_khac$$.thang){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth($dieu_kien_khac$$.thang-1);let $ngay_dau_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("month").toDate(),
$ngay_cuoi_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("month").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_cuoi_thang$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.tu_ngay).endOf("date").toDate());$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>
$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay));if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_thang$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_thang$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($dieu_kien_khac$$.quy){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth(($dieu_kien_khac$$.quy-
1)*3);let $ngay_dau_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("quarter").toDate(),$ngay_cuoi_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("quarter").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_cuoi_quy$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
moment($query_tk_co_tk_no$$.tu_ngay).endOf("date").toDate());$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay));if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_quy$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<
$ngay_dau_quy$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($dieu_kien_khac$$.nam){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setYear($dieu_kien_khac$$.nam);let $ngay_dau_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("year").toDate(),$ngay_cuoi_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("year").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($ngay_cuoi_nam$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.tu_ngay).endOf("date").toDate());$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay));
if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_nam$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_nam$$.getTime())return $callback$$(null,{value:0,value_nt:0})}delete $dieu_kien_khac$$.ngay;delete $dieu_kien_khac$$.thang;delete $dieu_kien_khac$$.quy;delete $dieu_kien_khac$$.nam;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,
...$dieu_kien_khac$$}}catch($e$$){return $callback$$($e$$.toString())}cktk($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$cell$$.value=$result$$.csum("du_no00");$cell$$.value_nt=$result$$.csum("du_no_nt00");$cell$$.value<0&&$cell$$.khong_am&&($cell$$.value=0);$cell$$.value_nt<0&&$cell$$.khong_am&&($cell$$.value_nt=0);$callback$$(null,$cell$$)});break;case "8":$cell$$.cong_thuc="";$cell$$.value_string="";
$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$query_tk_co_tk_no$$};$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.bu_tru=$cell$$.bu_tru_cong_no;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tk=$cell$$.tk;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.tu_ngay;delete $condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.den_ngay;
$cell$$.ma_kh&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ma_kh=$cell$$.ma_kh);if($cell$$.dieu_kien_khac)try{$cell$$.dieu_kien_khac.indexOf("return")<0&&($cell$$.dieu_kien_khac="return "+$cell$$.dieu_kien_khac);let $dieu_kien_khac$$=evalute($cell$$.dieu_kien_khac,{condition:$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,moment,row:$row_socai$$,cell:$cell$$});if($dieu_kien_khac$$.ngay&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setDate($dieu_kien_khac$$.ngay),
$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()))return $callback$$(null,{value:0,value_nt:0});if($dieu_kien_khac$$.thang){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth($dieu_kien_khac$$.thang);let $ngay_dau_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("month").toDate(),
$ngay_cuoi_thang$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("month").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_cuoi_thang$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.tu_ngay).endOf("date").toDate());$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>
$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay));if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_thang$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_thang$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($dieu_kien_khac$$.quy){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setMonth(($dieu_kien_khac$$.quy-
1)*3);let $ngay_dau_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("quarter").toDate(),$ngay_cuoi_quy$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("quarter").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($ngay_cuoi_quy$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
moment($query_tk_co_tk_no$$.tu_ngay).endOf("date").toDate());$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay));if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_quy$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<
$ngay_dau_quy$$.getTime())return $callback$$(null,{value:0,value_nt:0})}if($dieu_kien_khac$$.nam){$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.setYear($dieu_kien_khac$$.nam);let $ngay_dau_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).startOf("year").toDate(),$ngay_cuoi_nam$$=moment($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay).endOf("year").toDate();$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=
new Date($ngay_cuoi_nam$$);$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$query_tk_co_tk_no$$.tu_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=moment($query_tk_co_tk_no$$.tu_ngay).endOf("date").toDate());$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$query_tk_co_tk_no$$.den_ngay.getTime()&&($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay=new Date($query_tk_co_tk_no$$.den_ngay));
if($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()>$ngay_cuoi_nam$$.getTime()||$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$.ngay.getTime()<$ngay_dau_nam$$.getTime())return $callback$$(null,{value:0,value_nt:0})}delete $dieu_kien_khac$$.ngay;delete $dieu_kien_khac$$.thang;delete $dieu_kien_khac$$.quy;delete $dieu_kien_khac$$.nam;$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$={...$condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,
...$dieu_kien_khac$$}}catch($e$$){return $callback$$($e$$.toString())}cktk($condition$jscomp$2_condition$jscomp$3_condition$jscomp$4_condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$cell$$.value=$result$$.csum("du_co00");$cell$$.value_nt=$result$$.csum("du_co_nt00");$cell$$.value<0&&$cell$$.khong_am&&($cell$$.value=0);$cell$$.value_nt<0&&$cell$$.khong_am&&($cell$$.value_nt=0);$callback$$(null,$cell$$)});break;default:$cell$$.cong_thuc="",$callback$$(null,$cell$$)}};
module.exports=function($router$$){new controller($router$$,"bcqt",async function($req$$,$callback$$){let $query$$=$req$$.query;if(!$query$$.den_ngay||!$query$$.tu_ngay||!$query$$.id_rptform&&!$query$$.form_code)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 t\u1eeb ng\u00e0y(tu_ngay), \u0111\u1ebfn ng\u00e0y(den_ngay), id m\u1eabu b\u00e1o c\u00e1o");if(!global.mongoose.Types.ObjectId.isValid($query$$.id_rptform))return $callback$$("M\u1eabu b\u00e1o c\u00e1o n\u00e0y kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb");
if($query$$.ma_bp){var $bps_dts_phis$$=await getCodeChildren(global.getModel("dmbp"),$query$$.id_app,$query$$.ma_bp,"ma_bp","ma_bp_me");$query$$.ma_bp={$in:$bps_dts_phis$$}}$query$$.ma_phi&&($bps_dts_phis$$=await getCodeChildren(global.getModel("dmphi"),$query$$.id_app,$query$$.ma_phi,"ma_phi","ma_phi_me"),$query$$.ma_phi={$in:$bps_dts_phis$$});$query$$.ma_dt&&($bps_dts_phis$$=await getCodeChildren(global.getModel("dmdt"),$query$$.id_app,$query$$.ma_dt,"ma_dt","ma_dt_me"),$query$$.ma_dt={$in:$bps_dts_phis$$});
$bps_dts_phis$$={id_app:$query$$.id_app};$query$$.id_rptform?$bps_dts_phis$$._id=$query$$.id_rptform:$bps_dts_phis$$.form_code=$query$$.form_code;const $_rptform$$=await rptform.findOne($bps_dts_phis$$).lean();if(!$_rptform$$)return $callback$$("M\u1eabu b\u00e1o c\u00e1o kh\u00f4ng t\u1ed3n t\u1ea1i");$query$$.tu_ngay=moment(new Date($query$$.tu_ngay)).startOf("date").toDate();$query$$.den_ngay=moment(new Date($query$$.den_ngay)).endOf("date").toDate();$query$$.tu_ngay_kt?$query$$.tu_ngay_kt=moment(new Date($query$$.tu_ngay_kt)).startOf("date").toDate():
($query$$.tu_ngay_kt=new Date($query$$.tu_ngay),$query$$.tu_ngay_kt.setYear($query$$.tu_ngay_kt.getFullYear()-1));$query$$.den_ngay_kt?$query$$.den_ngay_kt=moment(new Date($query$$.den_ngay_kt)).endOf("date").toDate():($query$$.den_ngay_kt=new Date($query$$.den_ngay),$query$$.den_ngay_kt.setYear($query$$.den_ngay_kt.getFullYear()-1));let $kbm$$=$_rptform$$.report||[];$kbm$$&&$kbm$$.length!==0||(Logger.warn("[bcqt] s\u1eed dung c\u00e1ch khai b\u00e1o ki\u1ec3u c\u0169"),$kbm$$=await global.getModel("kbmbcqt").find({id_rptform:$_rptform$$._id.toString(),
id_app:$query$$.id_app}).sort({stt:1}).lean());const $columns$$={},$cells$$={};let $report$$=[];try{await new Promise(($resolve$$,$reject$$)=>{async.map($kbm$$,async $row$$=>{if($row$$.ref_model&&$row$$.ref_code_field){let $row_origin$$;$row$$.hide_origin_row||($row_origin$$={..._.cloneDeep($row$$),bold:!0},$report$$.push($row_origin$$));let $fields$$={[$row$$.ref_code_field]:1};$row$$.ref_label_field&&($fields$$[$row$$.ref_label_field]=1);$row$$.ref_fields&&$row$$.ref_fields.split(",").forEach($f$$=>
{$fields$$[$f$$]=1});let $_condition$$={};if($row$$.ref_condition){let $ref_condition$$=$row$$.ref_condition;$row$$.ref_condition.indexOf("return ")<0&&($ref_condition$$="return "+$ref_condition$$);try{$_condition$$=evalute($ref_condition$$,{moment,row:$row$$})}catch($e$$){Logger.error("error ref_condition of bcqt",$e$$,$ref_condition$$)}}(await global.getModel($row$$.ref_model).find({id_app:$query$$.id_app,...$_condition$$},$fields$$).lean()).forEach(($ref_r$$,$index$$)=>{let $_row$$={..._.cloneDeep($row$$),
...$ref_r$$,ma_so:`${$row$$.ma_so}:${$ref_r$$[$row$$.ref_code_field]}`.toUpperCase(),title:$ref_r$$[$row$$.ref_label_field||$row$$.ref_code_field]||$row$$.title,stt:`${$row$$.stt}.${$index$$+1}`,ma_so_goc:$row$$.ma_so};$_row$$.details&&$_row$$.details.forEach($c$$=>{$c$$.cong_thuc&&($c$$.cong_thuc=$c$$.cong_thuc.split(`["${$_row$$.ma_so_goc}"]`).join(`["${$_row$$.ma_so}"]`))});$report$$.push($_row$$)});$row_origin$$&&($row_origin$$.details||[]).forEach($detail$$=>{$detail$$.cach_tinh="1";$detail$$.script=
"";$detail$$.query="";$detail$$.cong_thuc=$report$$.filter($r$$=>$r$$.ma_so_goc===$row_origin$$.ma_so).map($r$$=>`c["${$r$$.ma_so}"]["${$detail$$.ma_so}"]`).join("+")})}else $report$$.push($row$$)},$e$$=>{if($e$$)return $reject$$($e$$);$resolve$$()})})}catch($e$$){$callback$$($e$$)}async.map($report$$,($r$$,$callback$$)=>{async.map($r$$.details||[],($cell$$,$callback$$)=>{const $_q$$={...$query$$};$cell$$.thoi_gian=="1"&&($_q$$.tu_ngay=$_q$$.tu_ngay_kt,$_q$$.den_ngay=$_q$$.den_ngay_kt);const $col_ma_so$$=
$cell$$.ma_so,$col_value$$=`${$col_ma_so$$}_value`,$col_value_nt$$=`${$col_ma_so$$}_value_nt`,$col_cong_thuc$$=`cong_thuc_${$col_ma_so$$}_value`,$col_cong_thuc_nt$$=`cong_thuc_${$col_ma_so$$}_value_nt`;calc4cell($req$$,$r$$,$cell$$,$_q$$,($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$columns$$[$col_ma_so$$]={field:$col_value$$,header:$cell$$.title,stt:$cell$$.stt,title:$cell$$.title,data_type:$cell$$.data_type,ma_so:$cell$$.ma_so,col_value:$col_value$$,col_value_nt:$col_value_nt$$,col_cong_thuc:$col_cong_thuc$$,
col_cong_thuc_nt:$col_cong_thuc_nt$$};$r$$[$col_value$$]=$rs$$.value_string||$rs$$.value;$r$$[$col_value_nt$$]=$rs$$.value_string||$rs$$.value_nt;$r$$[$col_cong_thuc$$]=$rs$$.cong_thuc;$r$$[$col_cong_thuc_nt$$]=$rs$$.cong_thuc;$r$$[$col_ma_so$$]=$cells$$[`c["${$r$$.ma_so}"]["${$col_ma_so$$}"]`]={type:$rs$$.value_string===$r$$[$col_value$$]?"String":"Number",value:$r$$[$col_value$$],cong_thuc:$r$$[$col_cong_thuc$$]};$callback$$()})},($e$$,$rs$$)=>{delete $r$$.details;$callback$$($e$$,$rs$$)})},function($error$$){if($error$$)return $callback$$($error$$);
const $key_cells$$=Object.keys($cells$$),$cells_value$$=Object.values($cells$$);let $cell_need_calc$$=$cells_value$$.filter($cell$$=>$cell$$.cong_thuc);async.whilst(function($cb$$){$cb$$(null,$cell_need_calc$$.length>0)},function($callback$$){setImmediate(()=>{try{$cell_need_calc$$.forEach($cell$$=>{let $cong_thuc$$=$cell$$.cong_thuc||"";$key_cells$$.filter($key$$=>$cong_thuc$$.indexOf($key$$)>=0).forEach($key_cell$$=>{$cong_thuc$$=$cong_thuc$$.split($key_cell$$).join(`(${$cells$$[$key_cell$$].cong_thuc||
$cells$$[$key_cell$$].value})`);if($cong_thuc$$.indexOf("[")<0){try{$cell$$.value=exec($cong_thuc$$,{report:$report$$})}catch($e$$){Logger.error($e$$,$cong_thuc$$),$cell$$.value=0}$cell$$.cong_thuc=""}})});let $current_cell_need_calc$$=_.cloneDeep($cell_need_calc$$),$_cell_need_calc$$=$cells_value$$.filter($cell$$=>$cell$$.cong_thuc);$cell_need_calc$$=$_cell_need_calc$$.length>0&&_.isEqual($_cell_need_calc$$,$current_cell_need_calc$$)?[]:$_cell_need_calc$$;$callback$$()}catch($e$$){$callback$$($e$$)}})},
async $err_func_string$$=>{if($err_func_string$$)return $callback$$($err_func_string$$);let $obj_rows$$={};$report$$.forEach($row$$=>{($row$$.details||[]).forEach($c$$=>{$row$$[$c$$.ma_so]=($row$$[$c$$.ma_so]||{}).value});$obj_rows$$[$row$$.ma_so]=$row$$});$cells_value$$.forEach($cell$$=>{if($cell$$.cong_thuc){try{$cell$$.value=exec($cell$$.cong_thuc,{report:$report$$,c:$obj_rows$$})}catch($e$$){Logger.error($e$$,$cell$$.cong_thuc),$cell$$.value=0}$cell$$.cong_thuc=""}});if($_rptform$$.handle_data_expression_server){if($_rptform$$.handle_data_expression_server.indexOf("async ")>=
0)return $callback$$("async function is not allow");$err_func_string$$=`return (async ()=>{
try{
${$_rptform$$.handle_data_expression_server}
}catch(e){
return {error:e}
}
})`;try{let $rs$$=await evalute($err_func_string$$,{data:$report$$,moment,numeral,condition:$req$$.query})();if($rs$$){if($rs$$.error)return Logger.error($rs$$.error,$err_func_string$$),$callback$$($rs$$.error.message||$rs$$.error);$report$$=$rs$$}}catch($e$$){return Logger.error($e$$,$err_func_string$$),$callback$$($e$$.message||$e$$)}}$callback$$(null,{data:$report$$.filter($r$$=>$r$$.print),columns:Object.values($columns$$).sort(($a$$,$b$$)=>$a$$.stt-$b$$.stt)})})})})};