UNPKG

flexbiz-server

Version:

Flexible Server

39 lines (38 loc) 19.5 kB
const socai=global.getModel("socai"),ctds=global.getModel("ctds2"),dmbp=global.getModel("dmbp"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),async=require("async"),_=require("lodash"),moment=require("moment"),{getCodeChildren}=require("./utils"),databanle=require("./databanle"),tinhHoaHong=async($ct$$,$query$$,$callback$$)=>{if(!$ct$$.chinh_sach_hoa_hong||$ct$$.chinh_sach_hoa_hong.length==0)return $callback$$();$ct$$.chinh_sach_hoa_hong=$ct$$.chinh_sach_hoa_hong.filter($cs$$=>$cs$$.ty_le_ht_tu<= $ct$$.ty_le_ht&&(!$cs$$.ty_le_ht_den||$cs$$.ty_le_ht_den>$ct$$.ty_le_ht));async.mapLimit($ct$$.chinh_sach_hoa_hong,20,($cs$$,$callback$$)=>{$ct$$.ma_kho&&!$cs$$.ma_kho&&($cs$$.ma_kho=$ct$$.ma_kho);$ct$$.ma_nv&&!$cs$$.ma_nv&&($cs$$.ma_nv=$ct$$.ma_nv);$cs$$.quan_ly=$ct$$.quan_ly;$ct$$.__in_ma_bp__&&!$cs$$.ma_bp&&($cs$$.__in_ma_bp__=$ct$$.__in_ma_bp__);$ct$$.__in_ma_dt__&&!$cs$$.ma_dt&&($cs$$.__in_ma_dt__=$ct$$.__in_ma_dt__);$ct$$.__in_ma_phi__&&!$cs$$.ma_phi&&($cs$$.__in_ma_phi__=$ct$$.__in_ma_phi__); setImmediate(async()=>{switch($cs$$.cach_tinh){case "0":$cs$$.ps_tinh_hoa_hong=$ct$$.ps;$cs$$.tien_hoa_hong=Math.roundBy($cs$$.ps_tinh_hoa_hong*$cs$$.ty_le_hoa_hong/100,0);$callback$$();break;case "1":await calcSoCai($cs$$,_.cloneDeep($query$$),($e$$,$ps_tinh_hoa_hong$$)=>{if($e$$)return $callback$$($e$$);$cs$$.ps_tinh_hoa_hong=$ps_tinh_hoa_hong$$;$cs$$.tien_hoa_hong=Math.roundBy($cs$$.ps_tinh_hoa_hong*$cs$$.ty_le_hoa_hong/100,0);$callback$$()});break;case "2":await calcDoanhThu($cs$$,_.cloneDeep($query$$), ($e$$,$doanh_thu$$)=>{if($e$$)return $callback$$($e$$);$cs$$.ps_tinh_hoa_hong=$doanh_thu$$;$cs$$.tien_hoa_hong=Math.roundBy($cs$$.ps_tinh_hoa_hong*$cs$$.ty_le_hoa_hong/100,0);$callback$$()},{doanh_thu_tinh_hoa_hong:!0});break;case "3":await calcDoanhThu($cs$$,_.cloneDeep($query$$),($e$$,$doanh_thu$$,$doanh_so$$)=>{if($e$$)return $callback$$($e$$);$cs$$.ps_tinh_hoa_hong=$doanh_so$$;$cs$$.tien_hoa_hong=Math.roundBy($cs$$.ps_tinh_hoa_hong*$cs$$.ty_le_hoa_hong/100,0);$callback$$()},{doanh_thu_tinh_hoa_hong:!0}); break;default:$callback$$()}})},$e$$=>{if($e$$)return $callback$$($e$$);$callback$$()})},calcSoCai=async($ct$$,$query$$,$callback$$)=>{$ct$$.ma_kho&&($query$$.ma_kho=$ct$$.ma_kho);$ct$$.ma_nv&&($query$$.ma_nv=$ct$$.ma_nv);$ct$$.ma_nv_giao_hang&&($query$$.ma_nv_giao_hang=$ct$$.ma_nv_giao_hang);$ct$$.phu_xe&&($query$$.phu_xe=$ct$$.phu_xe);if($ct$$.__in_ma_bp__)$query$$.ma_bp=$ct$$.__in_ma_bp__;else if($ct$$.ma_bp){var $bps_custs_dts_nh_khs_nh_vts_phis_vts$$=await getCodeChildren(dmbp,$query$$.id_app, $ct$$.ma_bp,"ma_bp","ma_bp_me");$query$$.ma_bp={$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$};$ct$$.__in_ma_bp__={$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$}}$ct$$.quan_ly&&$query$$.ma_nv&&($query$$.ma_nv={$ne:$query$$.ma_nv});$ct$$.__in_ma_dt__?$query$$.ma_dt=$ct$$.__in_ma_dt__:$ct$$.ma_dt&&($bps_custs_dts_nh_khs_nh_vts_phis_vts$$=await getCodeChildren(dmdt,$query$$.id_app,$ct$$.ma_dt,"ma_dt","ma_dt_me"),$query$$.ma_dt={$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$},$ct$$.__in_ma_dt__={$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$}); $ct$$.__in_ma_phi__?$query$$.ma_phi=$ct$$.__in_ma_phi__:$ct$$.ma_phi&&($bps_custs_dts_nh_khs_nh_vts_phis_vts$$=await getCodeChildren(dmphi,$query$$.id_app,$ct$$.ma_phi,"ma_phi","ma_phi_me"),$query$$.ma_phi={$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$},$ct$$.__in_ma_phi__={$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$});!$ct$$.ma_kh&&$ct$$.nh_kh&&$ct$$.nh_kh.length>0&&($bps_custs_dts_nh_khs_nh_vts_phis_vts$$=await global.getModel("group").getAllChildrenGroup($query$$.id_app,$ct$$.nh_kh,{group_kind:1}), $bps_custs_dts_nh_khs_nh_vts_phis_vts$$=await global.getModel("customer").find({id_app:$query$$.id_app,nh_kh:{$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$}},{ma_kh:1}),$query$$.ma_kh=$ct$$.nh_kh_lt?{$nin:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$.map($r$$=>$r$$.ma_kh)}:{$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$.map($r$$=>$r$$.ma_kh)});$ct$$.ma_nvt&&$ct$$.ma_nvt.length>0&&($bps_custs_dts_nh_khs_nh_vts_phis_vts$$=await global.getModel("dmnvt").getAllChildrenGroup($query$$.id_app,$query$$.ma_nvt),$bps_custs_dts_nh_khs_nh_vts_phis_vts$$= await global.getModel("dmvt").find({id_app:$query$$.id_app,ma_nvt:{$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$}},{ma_vt:1}).lean(),Logger.info("vts",$bps_custs_dts_nh_khs_nh_vts_phis_vts$$),$query$$.ma_vt=$ct$$.ma_nvt_lt?{$nin:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$.map($r$$=>$r$$.ma_vt)}:{$in:$bps_custs_dts_nh_khs_nh_vts_phis_vts$$.map($r$$=>$r$$.ma_vt)});async.parallel({dt:$callback$$=>{let $_query$$=Object.assign({},$query$$);var $tks_co_tks_no$$=$ct$$.tk_no;$tks_co_tks_no$$&&!$ct$$.tk_no_gt&& (_.isArray($tks_co_tks_no$$)||($tks_co_tks_no$$=[$tks_co_tks_no$$]),$tks_co_tks_no$$.length>0&&($_query$$.tk_no={$regex:$tks_co_tks_no$$.reg(),$options:"i"}));($tks_co_tks_no$$=$ct$$.tk_co)&&!$ct$$.tk_co_gt&&(_.isArray($tks_co_tks_no$$)||($tks_co_tks_no$$=[$tks_co_tks_no$$]),$tks_co_tks_no$$.length>0&&($_query$$.tk_co={$regex:$tks_co_tks_no$$.reg(),$options:"i"}));socai.find($_query$$).lean().then($rs$$=>{$callback$$(null,$rs$$)}).catch($e$$=>{$callback$$($e$$)})},gt:$callback$$=>{if($ct$$.tk_no&& $ct$$.tk_no.length>0&&$ct$$.tk_no_gt||$ct$$.tk_co&&$ct$$.tk_co.length>0&&$ct$$.tk_co_gt){let $_query$$=Object.assign({},$query$$);var $tks_co$jscomp$1_tks_no$$=$ct$$.tk_no;$tks_co$jscomp$1_tks_no$$&&$ct$$.tk_no_gt&&(_.isArray($tks_co$jscomp$1_tks_no$$)||($tks_co$jscomp$1_tks_no$$=[$tks_co$jscomp$1_tks_no$$]),$tks_co$jscomp$1_tks_no$$.length>0&&($_query$$.tk_no={$regex:$tks_co$jscomp$1_tks_no$$.reg(),$options:"i"}));($tks_co$jscomp$1_tks_no$$=$ct$$.tk_co)&&$ct$$.tk_co_gt&&(_.isArray($tks_co$jscomp$1_tks_no$$)|| ($tks_co$jscomp$1_tks_no$$=[$tks_co$jscomp$1_tks_no$$]),$tks_co$jscomp$1_tks_no$$.length>0&&($_query$$.tk_co={$regex:$tks_co$jscomp$1_tks_no$$.reg(),$options:"i"}));socai.find($_query$$).lean().then($rs$$=>{$callback$$(null,$rs$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})}else $callback$$(null,[])}},($e$$,$rs$$)=>{if($e$$)return Logger.info("error get data giam tru",$e$$),$callback$$($e$$);$e$$=$rs$$.dt.csum("tien")-$rs$$.gt.csum("tien");$callback$$(null,$e$$)})},calcDoanhThu=async($ct$$, $query$$,$callback$$,$options$$={})=>{$ct$$.ma_kho&&($query$$.ma_kho=$ct$$.ma_kho);$ct$$.ma_nv&&($query$$.ma_nv=$ct$$.ma_nv);$ct$$.ma_nv_giao_hang&&($query$$.ma_nv_giao_hang=$ct$$.ma_nv_giao_hang);$ct$$.phu_xe&&($query$$.phu_xe=$ct$$.phu_xe);if($ct$$.__in_ma_bp__)$query$$.ma_bp=$ct$$.__in_ma_bp__;else if($ct$$.ma_bp){var $bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$=await getCodeChildren(dmbp,$query$$.id_app,$ct$$.ma_bp,"ma_bp","ma_bp_me");$query$$.ma_bp= {$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$};$ct$$.__in_ma_bp__={$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$}}$ct$$.quan_ly&&$query$$.ma_nv&&($query$$.ma_nv={$ne:$query$$.ma_nv});$ct$$.__in_ma_dt__?$query$$.ma_dt=$ct$$.__in_ma_dt__:$ct$$.ma_dt&&($bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$=await getCodeChildren(dmdt,$query$$.id_app,$ct$$.ma_dt, "ma_dt","ma_dt_me"),$query$$.ma_dt={$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$},$ct$$.__in_ma_dt__={$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$});$ct$$.__in_ma_phi__?$query$$.ma_phi=$ct$$.__in_ma_phi__:$ct$$.ma_phi&&($bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$=await getCodeChildren(dmphi,$query$$.id_app,$ct$$.ma_phi,"ma_phi","ma_phi_me"),$query$$.ma_phi= {$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$},$ct$$.__in_ma_phi__={$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$});!$ct$$.ma_kh&&$ct$$.nh_kh&&$ct$$.nh_kh.length>0&&($bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$=await global.getModel("group").getAllChildrenGroup($query$$.id_app,$ct$$.nh_kh,{group_kind:1}),$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$= await global.getModel("customer").find({id_app:$query$$.id_app,nh_kh:{$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$},ngay_mua_dau_tien:{$exists:!0}},{ma_kh:1}),$query$$.ma_kh=$ct$$.nh_kh_lt?{$nin:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$.map($r$$=>$r$$.ma_kh)}:{$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$.map($r$$=>$r$$.ma_kh)});$ct$$.ma_nvt&& $ct$$.ma_nvt.length>0&&($bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$=await global.getModel("dmnvt").getAllChildrenGroup($query$$.id_app,$ct$$.ma_nvt),$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$=await global.getModel("dmvt").find({id_app:$query$$.id_app,ma_nvt:{$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$}},{ma_vt:1}),$query$$["details.ma_vt"]=$ct$$.ma_nvt_lt? {$nin:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$.map($r$$=>$r$$.ma_vt)}:{$in:$bps$jscomp$1_custs$jscomp$1_dts$jscomp$1_nh_khs$jscomp$1_nh_vts$jscomp$1_phis$jscomp$1_vts$$.map($r$$=>$r$$.ma_vt)});let $_query$$=Object.assign({},$query$$);databanle($_query$$,async function($details_error$$,$rs$$){if($details_error$$)return $callback$$($details_error$$);$details_error$$=$rs$$.map($r$$=>$r$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);await $details_error$$.asyncJoinModel2($_query$$.id_app, "dmqddvt",{where:{ma_dvt:"ma_dvt",ma_vt:"ma_vt"},fields:["tu","mau","ma_dvt_goc"]});$details_error$$.forEach(function($r$$){if($r$$.mau){let $he_so_qd$$=$r$$.tu/$r$$.mau;$r$$.sl_xuat_qd=$he_so_qd$$*($r$$.sl_xuat||0);$r$$.sl_nhap_qd=$he_so_qd$$*($r$$.sl_nhap||0)}else $r$$.sl_xuat_qd=$r$$.sl_xuat||0,$r$$.sl_nhap_qd=$r$$.sl_nhap||0;$r$$.sl_xuat_qd_bc=$r$$.sl_xuat_qd;$r$$.sl_nhap_qd_bc=$r$$.sl_nhap_qd;$r$$.ma_dvt_bc=$r$$.ma_dvt_goc||$r$$.ma_dvt});$ct$$.ma_dvt&&await $details_error$$.asyncJoinModel2($_query$$.id_app, "dmqddvt",{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_dvt:$ct$$.ma_dvt}),setFields:($item$$,$he_so_qd$$)=>{$he_so_qd$$&&$he_so_qd$$.tu?($item$$.ma_dvt_bc=$ct$$.ma_dvt,$he_so_qd$$=$he_so_qd$$.mau/$he_so_qd$$.tu,$item$$.sl_xuat_qd_bc=$he_so_qd$$*($item$$.sl_xuat_qd||0),$item$$.sl_nhap_qd_bc=$he_so_qd$$*($item$$.sl_nhap_qd||0)):($item$$.sl_xuat_qd_bc=$item$$.sl_xuat_qd,$item$$.sl_nhap_qd_bc=$item$$.sl_nhap_qd)}});async.mapLimit($rs$$,20,function($r$$,$callback$$){$options$$.doanh_thu_tinh_hoa_hong&&($r$$.details= $r$$.details.filter($d$$=>!$d$$.tien_hoa_hong));$r$$.details=$r$$.details.filter($d$$=>$query$$["details.ma_vt"]&&$query$$["details.ma_vt"].$in?$query$$["details.ma_vt"].$in.indexOf($d$$.ma_vt)>=0:!0);$r$$.t_sl_xuat=$r$$.details.csum("sl_xuat");$r$$.t_sl_xuat_qd_bc=$r$$.details.csum("sl_xuat_qd_bc");$r$$.t_tien_hang=$r$$.details.csum("tien_hang");$r$$.t_tien_hang_ct=$r$$.details.csum("tien_hang_ct");$r$$.t_thue=$r$$.details.csum("tien_thue");$r$$.t_tien_ck=$r$$.details.csum("tien_ck");$r$$.t_tien= $r$$.details.csum("tien");$r$$.t_tien_cp=$r$$.details.csum("tien_cp");$r$$.tien_freeship=$r$$.tien_freeship||0;$r$$.tien_phi_vc=$r$$.tien_phi_vc||0;$r$$.tien_ck_hd=$r$$.tien_ck_hd?$r$$.tien_ck_hd:0;$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat");$r$$.details_tl?($r$$.t_tien_tl=$r$$.details_tl.csum("tien_hang_ct")-$r$$.details_tl.csum("tien_ck"),$r$$.t_tien_thue_tl=$r$$.details_tl.csum("tien_thue"),$r$$.t_tien_nhap=$r$$.details_tl.csum("tien_nhap"),$r$$.t_sl_nhap=$r$$.details_tl.csum("sl_nhap")):($r$$.t_tien_tl= 0,$r$$.t_tien_thue_tl=0,$r$$.t_sl_nhap=0,$r$$.t_tien_nhap=0);$callback$$(null,$r$$)},function($error$$,$dt_t_ds$$){if($error$$)return $callback$$($error$$);$error$$=$dt_t_ds$$.map($r$$=>$r$$.t_tien_hang_ct-$r$$.t_tien_ck-$r$$.tien_ck_hd-$r$$.t_tien_tl-$r$$.t_tien_thue_tl).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$dt_t_ds$$=$dt_t_ds$$.map($r$$=>$r$$.t_sl_xuat_qd_bc||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$(null,$error$$,$dt_t_ds$$)})})},kpistatus=async function($condition$$,$callback$$){$condition$$.nam= $condition$$.nam?Number($condition$$.nam):(new Date).getFullYear();$condition$$.tu_thang=$condition$$.tu_thang?Number($condition$$.tu_thang):moment().month()-1;$condition$$.den_thang=$condition$$.den_thang?Number($condition$$.den_thang):moment().month()-1;$condition$$.tu_quy=$condition$$.tu_quy?Number($condition$$.tu_quy):moment().quarter();$condition$$.den_quy=$condition$$.den_quy?Number($condition$$.den_quy):moment().quarter();let $query$$={id_app:$condition$$.id_app,status:!0};$condition$$.ma_dvcs&& ($query$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_nv&&($query$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_nv_giao_hang&&($query$$.ma_nv_giao_hang=$condition$$.ma_nv_giao_hang);$condition$$.phu_xe&&($query$$.phu_xe=$condition$$.phu_xe);if($condition$$.ma_bp){var $bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$=await getCodeChildren(dmbp,$condition$$.id_app,$condition$$.ma_bp,"ma_bp","ma_bp_me");$query$$.ma_bp={$in:$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$}}$condition$$.ma_phi&& ($bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$=await getCodeChildren(dmphi,$condition$$.id_app,$condition$$.ma_phi,"ma_phi","ma_phi_me"),$query$$.ma_phi={$in:$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$});$condition$$.ma_dt&&($bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$=await getCodeChildren(dmdt,$condition$$.id_app,$condition$$.ma_dt,"ma_dt","ma_dt_me"),$query$$.ma_dt={$in:$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$});$condition$$.group_id&&($query$$.group_id=$condition$$.group_id);$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$= [];switch($condition$$.ct_theo){case "thang":for(var $quy_thang$$=$condition$$.tu_thang;$quy_thang$$<=$condition$$.den_thang;$quy_thang$$++)$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$.push({thang:$quy_thang$$,nam:$condition$$.nam});break;case "quy":for($quy_thang$$=$condition$$.tu_quy;$quy_thang$$<=$condition$$.den_quy;$quy_thang$$++)$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$.push({quy:$quy_thang$$,nam:$condition$$.nam});break;case "nam":$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$.push({nam:$condition$$.nam}); break;default:$bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$.push({tu_ngay:$condition$$.tu_ngay,den_ngay:$condition$$.den_ngay})}async.map($bps$jscomp$2_dts$jscomp$2_khoang_ts_phis$$,($ts$$,$callback$$)=>{let $_query$$=_.cloneDeep($query$$),$tu_ngay$$=$ts$$.tu_ngay||moment().year($ts$$.nam);$ts$$.thang&&$tu_ngay$$.month($ts$$.thang-1).startOf("month");$ts$$.quy&&$tu_ngay$$.quarter($ts$$.quy).starOf("quarter");$tu_ngay$$=$tu_ngay$$.endOf("date").toDate();$_query$$.hl_tu_ngay={$lte:$tu_ngay$$};let $den_ngay$$= $ts$$.den_ngay||moment().year($ts$$.nam);$ts$$.thang&&$den_ngay$$.month($ts$$.thang-1).endOf("month");$ts$$.quy&&$den_ngay$$.quarter($ts$$.quy).endOf("quarter");$den_ngay$$=$den_ngay$$.startOf("date").toDate();$_query$$.hl_den_ngay={$gte:$den_ngay$$};ctds.find($_query$$).lean().then($cts$$=>{async.mapLimit($cts$$,20,($ct$$,$callback$$)=>{setImmediate(async()=>{$ct$$.thang=$ts$$.thang;$ct$$.quy=$ts$$.quy;$ct$$.nam=$ts$$.nam;$ct$$.chi_tieu=$ct$$.quy?Math.round($ct$$.chi_tieu_thang*3):$ct$$.thang?Math.round($ct$$.chi_tieu_thang): Math.round($ct$$.chi_tieu_thang*12);let $query$$={id_app:$ct$$.id_app,ma_dvcs:$ct$$.ma_dvcs};$query$$.ngay_ct={$gte:moment($tu_ngay$$).startOf("date").toDate(),$lte:moment($den_ngay$$).endOf("date").toDate()};switch($ct$$.cach_tinh){case "1":Logger.info("tinh kpi theo socai",$ct$$.ma_nv);await calcSoCai($ct$$,_.cloneDeep($query$$),($e$$,$ps$$)=>{if($e$$)return $callback$$($e$$);$ct$$.ps_nt=$ct$$.ps=$ps$$;$ct$$.bold=!1;$ct$$.sysorder=0;$ct$$.ty_le_ht=$ct$$.chi_tieu?Math.roundBy($ct$$.ps/$ct$$.chi_tieu* 100,2):0;tinhHoaHong($ct$$,_.cloneDeep($query$$),$callback$$)});break;case "2":await calcDoanhThu($ct$$,_.cloneDeep($query$$),($e$$,$dt$$)=>{if($e$$)return $callback$$($e$$);Logger.info("[kpistatus] t\u00ednh ph\u00e1t sinh theo doanh thu b\u00e1n h\u00e0ng",{dt:$dt$$});$ct$$.ps_nt=$ct$$.ps=$dt$$;$ct$$.bold=!1;$ct$$.sysorder=0;$ct$$.ty_le_ht=$ct$$.chi_tieu?Math.roundBy($ct$$.ps/$ct$$.chi_tieu*100,2):0;tinhHoaHong($ct$$,_.cloneDeep($query$$),$callback$$)});break;case "3":await calcDoanhThu($ct$$,_.cloneDeep($query$$), ($e$$,$dt$$,$ds$$)=>{if($e$$)return $callback$$($e$$);Logger.info("[kpistatus] t\u00ednh ph\u00e1t sinh theo doanh s\u1ed1 b\u00e1n h\u00e0ng",{ds:$ds$$});$ct$$.ps_nt=$ct$$.ps=$ds$$;$ct$$.bold=!1;$ct$$.sysorder=0;$ct$$.ty_le_ht=$ct$$.chi_tieu?Math.roundBy($ct$$.ps/$ct$$.chi_tieu*100,2):0;tinhHoaHong($ct$$,_.cloneDeep($query$$),$callback$$)});break;default:$callback$$()}})},$e$$=>{if($e$$)return Logger.error("error get data",$e$$),$callback$$($e$$);$callback$$(null,$cts$$)})}).catch($error$$=>{$callback$$({message:$error$$.message})})}, async($e$$,$pivot_column_rs$$)=>{if($e$$)return $callback$$($e$$);$e$$=$pivot_column_rs$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);Logger.info("[kpistatus] T\u00ednh hoa h\u1ed3ng...");let $columns_hoahong$$=await global.getModel("group").find({id_app:$condition$$.id_app,group_type:"HOAHONG",status:!0}).lean();$e$$.forEach($row$$=>{$row$$.t_tien_hoa_hong=0;$columns_hoahong$$.forEach($hh$$=>{$row$$[`ps_tinh_hoa_hong_${$hh$$._id.toString()}`]=($row$$.chinh_sach_hoa_hong||[]).filter($c$$=>$c$$.phan_loai== $hh$$._id.toString()).map($c$$=>$c$$.ps_tinh_hoa_hong||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$row$$[`hoa_hong_${$hh$$._id.toString()}`]=($row$$.chinh_sach_hoa_hong||[]).filter($c$$=>$c$$.phan_loai==$hh$$._id.toString()).map($c$$=>$c$$.tien_hoa_hong||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$row$$.t_tien_hoa_hong+=$row$$[`hoa_hong_${$hh$$._id.toString()}`]})});$pivot_column_rs$$=$condition$$.pivot_column;if(!$pivot_column_rs$$)return $callback$$(null,{rows:$e$$,columns:$columns_hoahong$$,columns_hoahong:$columns_hoahong$$}); let $pivot_datas$$=$condition$$.pivot_datas||["ps","chi_tieu","t_tien_hoa_hong"];$pivot_column_rs$$=="ky"&&$e$$.forEach($ct$$=>{$ct$$.ky=$ct$$.thang||$ct$$.quy;$ct$$.ky=$ct$$.ky?`${$ct$$.ky}/${$ct$$.nam}`:`${$ct$$.nam}`});$pivot_column_rs$$=="thang"&&$e$$.forEach($ct$$=>{$ct$$.thang=`Th\u00e1ng ${$ct$$.thang}/${$ct$$.nam}`});$pivot_column_rs$$=="quy"&&$e$$.forEach($ct$$=>{$ct$$.quy=`Qu\u00fd ${$ct$$.quy}/${$ct$$.nam}`});$pivot_column_rs$$=="nam"&&$e$$.forEach($ct$$=>{$ct$$.nam=`N\u0103m ${$ct$$.nam}`}); Logger.info("[kpistatus] pivot data...");let {data:$data$$,cols:$cols$$}=await $e$$.asyncPivot([],$pivot_column_rs$$,$pivot_datas$$,{computed:{ty_le_ht:function($row$$,$prefix$$){const $chi_tieu$$=$row$$[$prefix$$+"chi_tieu"]||0;return $chi_tieu$$===0?0:parseFloat((($row$$[$prefix$$+"ps"]||0)/$chi_tieu$$*100).toFixed(2))}}}),$headers$$={ps:"Ph\u00e1t sinh",chi_tieu:"Ch\u1ec9 ti\u00eau",ty_le_ht:"% ho\u00e0n th\u00e0nh",t_tien_hoa_hong:"Hoa h\u1ed3ng"};$cols$$=$cols$$.map($c$$=>$pivot_datas$$.map($f$$=> ({header:`${$c$$} - ${$headers$$[$f$$]}`,value_field:`${$c$$}${$f$$}`}))).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$callback$$(null,{rows:$data$$,columns:$cols$$,columns_hoahong:$columns_hoahong$$})})};module.exports=$condition$$=>new Promise(($resolve$$,$reject$$)=>{kpistatus($condition$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})});