UNPKG

flexbiz-server

Version:

Flexible Server

19 lines (18 loc) 8.45 kB
const pbl=global.getModel("pbl"),hd2=global.getModel("hd2"),hd3=global.getModel("hd3"),so1=global.getModel("so1"),hd7=global.getModel("hd7"),async=require("async"),trangthai=global.getModel("trangthai"),transaction=global.getModel("transaction"); module.exports=function($condition$$,$callback$$){if(!$condition$$.id_app)return $callback$$("H\u00e0m n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 id_app");let $data_hd2$$,$data_pbl$$,$data_so1$$;async.parallel({hd2:$callback$$=>{setImmediate(()=>{if(!$condition$$.ma_ct||$condition$$.ma_ct.indexOf("HD2")>=0||$condition$$.ma_ct.indexOf("SO7")>=0){let $_cd$$={...$condition$$};delete $_cd$$.show_payment_method;delete $_cd$$.show_bonus_points;hd2.find($_cd$$).lean().then($rs$$=>{for(let $v$$ of $rs$$)$v$$.details.forEach($r$$=> {$r$$.tien_hang_nt=$r$$.tien_nt;$r$$.tien_hang=$r$$.tien_hang_nt*($v$$.ty_gia||1);$r$$.tien_hang_ct_nt=$r$$.tien_ct_nt;$r$$.tien_hang_ct=$r$$.tien_hang_ct_nt*($v$$.ty_gia||1);$r$$.tien_hang_ct_nt||($r$$.tien_hang_ct=$r$$.tien_hang,$r$$.tien_hang_ct_nt=$r$$.tien_hang_nt);!$r$$.tien_ck_nt&&$r$$.tien_ck?$r$$.tien_ck_nt=$r$$.tien_ck:$r$$.tien_ck=($r$$.tien_ck_nt||0)*($v$$.ty_gia||1);$r$$.tien_nt=$r$$.tien_hang_ct_nt-($r$$.tien_ck_nt||0)+($r$$.tien_thue_nt||0);$r$$.tien=$r$$.tien_nt*($v$$.ty_gia||1)}); $data_hd2$$=$rs$$;$callback$$(null,$rs$$)}).catch($error$$=>{$callback$$($error$$)})}else $callback$$(null,[])})},hd4:$callback$$=>{setImmediate(async()=>{if(!$condition$$.ma_ct||$condition$$.ma_ct.indexOf("HD2")>=0||$condition$$.ma_ct.indexOf("SO7")>=0){let $_cd$$;$condition$$.so_ct?$_cd$$={id_app:$condition$$.id_app,"details.id_hd":{$in:($data_hd2$$||[]).map($d$$=>$d$$._id.toString())}}:($_cd$$={...$condition$$},delete $_cd$$.show_payment_method,delete $_cd$$.show_bonus_points,delete $_cd$$.ma_ct); global.getModel("hd4").find($_cd$$).lean().then($rs$$=>{$callback$$(null,$rs$$)}).catch($error$$=>{$callback$$($error$$)})}else $callback$$(null,[])})},hd3:$callback$$=>{setImmediate(()=>{if(!$condition$$.ma_ct||$condition$$.ma_ct.indexOf("HD2")>=0||$condition$$.ma_ct.indexOf("SO7")>=0){let $_cd$$;$condition$$.so_ct?$_cd$$={id_app:$condition$$.id_app,"details.id_hd":{$in:($data_hd2$$||[]).map($d$$=>$d$$._id.toString())}}:($_cd$$={...$condition$$},delete $_cd$$.show_payment_method,delete $_cd$$.show_bonus_points, $_cd$$.$or&&$_cd$$.$or.find($o$$=>$o$$.user_nv)&&($_cd$$.details={$elemMatch:{$or:$_cd$$.$or}},delete $_cd$$.$or),delete $_cd$$.ma_ct,delete $_cd$$.so_ct);hd3.find($_cd$$).lean().then($rs$$=>{$rs$$.forEach($v$$=>{$v$$.details.forEach($r$$=>{$r$$.tien_hang=$r$$.tien;$r$$.tien_hang_nt=$r$$.tien_nt;$r$$.tien_hang_ct=$r$$.tien_ct;$r$$.tien_hang_ct_nt=$r$$.tien_ct_nt;$r$$.tien_hang_ct_nt||($r$$.tien_hang_ct=$r$$.tien_hang,$r$$.tien_hang_ct_nt=$r$$.tien_hang_nt);$r$$.tien_nt=$r$$.tien_hang_ct_nt-($r$$.tien_ck_nt|| 0)+($r$$.tien_thue_nt||0);$r$$.tien=$r$$.tien_nt*($v$$.ty_gia||1)})});$callback$$(null,$rs$$)}).catch($error$$=>{$callback$$($error$$)})}else $callback$$(null,[])})},pbl:$callback$$=>{setImmediate(()=>{if(!$condition$$.ma_ct||$condition$$.ma_ct.indexOf("PBL")>=0){let $_cd$$={...$condition$$};delete $_cd$$.show_payment_method;delete $_cd$$.show_bonus_points;pbl.find($_cd$$).lean().then($rs$$=>{$rs$$.forEach($pbl$$=>{$pbl$$.details.forEach($r$$=>{$r$$.tien_hang_nt=$r$$.tien_hang_nt||0;$r$$.tien_hang= $r$$.tien_hang_nt*($pbl$$.ty_gia||1);$r$$.tien_hang_ct_nt=$r$$.tien_hang_ct_nt||0;$r$$.tien_hang_ct=$r$$.tien_hang_ct_nt*($pbl$$.ty_gia||1);$r$$.tien_hang_ct_nt||($r$$.tien_hang_ct=$r$$.tien_hang,$r$$.tien_hang_ct_nt=$r$$.tien_hang_nt);!$r$$.tien_ck_nt&&$r$$.tien_ck?$r$$.tien_ck_nt=$r$$.tien_ck:$r$$.tien_ck=($r$$.tien_ck_nt||0)*($pbl$$.ty_gia||1);$r$$.tien_nt=$r$$.tien_hang_ct_nt-($r$$.tien_ck_nt||0)+($r$$.tien_thue_nt||0);$r$$.tien=$r$$.tien_nt*($pbl$$.ty_gia||1)})});$data_pbl$$=$rs$$;$callback$$(null, $rs$$)}).catch($error$$=>{$callback$$($error$$)})}else $callback$$(null,[])})},so:$callback$$=>{setImmediate(()=>{if(!$condition$$.ma_ct||$condition$$.ma_ct.indexOf("SO1")>=0){let $_cd$$={...$condition$$};delete $_cd$$.show_payment_method;delete $_cd$$.show_bonus_points;so1.find($_cd$$).lean().then($rs$$=>{$rs$$.forEach($so1$$=>{$so1$$.ngay_ct=$so1$$.ngay_giao_hang||$so1$$.ngay_ct;$so1$$.details.forEach($r$$=>{$r$$.tien_hang_ct_nt||($r$$.tien_hang_ct=$r$$.tien_hang,$r$$.tien_hang_ct_nt=$r$$.tien_hang_nt); $r$$.tien_nt=$r$$.tien_hang_ct_nt-($r$$.tien_ck_nt||0)+($r$$.tien_thue_nt||0);$r$$.tien=$r$$.tien_hang_ct-($r$$.tien_ck||0)+($r$$.tien_thue_nt||0)})});$data_so1$$=$rs$$;$callback$$(null,$rs$$)}).catch($error$$=>{$callback$$($error$$)})}else $callback$$(null,[])})},hd7:$callback$$=>{setImmediate(()=>{if(!$condition$$.ma_ct||$condition$$.ma_ct.indexOf("PBL")>=0||$condition$$.ma_ct.indexOf("SO1")>=0){if($condition$$.so_ct){var $_cd$$=($data_pbl$$||[]).map($d$$=>$d$$._id.toString());$_cd$$=[...$_cd$$, ...($data_so1$$||[]).map($d$$=>$d$$._id.toString())];$_cd$$={id_app:$condition$$.id_app,"details.id_hd":{$in:$_cd$$}}}else $_cd$$={...$condition$$},delete $_cd$$.show_payment_method,delete $_cd$$.show_bonus_points,delete $_cd$$.ma_ct,delete $_cd$$.so_ct;hd7.find($_cd$$).lean().then($rs$$=>{$callback$$(null,$rs$$)}).catch($error$$=>{$callback$$($error$$)})}else $callback$$(null,[])})}},async($error$$,$rs$$)=>{if($error$$)return $callback$$($error$$);async.series({pbl:$callback$$=>{setImmediate(()=> {$rs$$.pbl.forEach($m$$=>{$m$$.details.filter($d$$=>$d$$.promotion&&$d$$.promotion.details_km).map($d$$=>$d$$.promotion.details_km).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).forEach($d$$=>{$d$$.sl_xuat=$d$$.sl_km;$m$$.details.push($d$$)});$m$$.promotion&&$m$$.promotion.forEach($p$$=>{$p$$=Object.assign({},$p$$);$p$$.sl_xuat=$p$$.sl_km;$m$$.details.push($p$$)})});$callback$$()})},so:$callback$$=>{setImmediate(()=>{($rs$$.so||[]).forEach($r$$=>{$r$$.ctcpbhs&&$r$$.ctcpbhs.forEach($c$$=>{$c$$.tien_hang= 0;$c$$.tien_hang_nt=0;$c$$.sl_xuat=0;$c$$.tien=$c$$.tien_hang+$c$$.tien_cp;$c$$.tien_nt=$c$$.tien_hang_nt+$c$$.tien_cp_nt;$r$$.details.push($c$$)});$rs$$.pbl.push($r$$)});$callback$$()})},hd2:$callback$$=>{setImmediate(()=>{let $hd4_details$$=($rs$$.hd4||[]).map($h$$=>$h$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$rs$$.hd2.forEach($r$$=>{($r$$.details||[]).forEach($detail$$=>{$detail$$.chi_phi_bh=$hd4_details$$.filter($h$$=>$h$$.id_hd===$r$$._id.toString()&&$h$$.ma_vt===$detail$$.ma_vt&& ($h$$.line_hd==void 0||$h$$.line_hd==$detail$$.line));$detail$$.tien_cp_nt=$detail$$.chi_phi_bh.map($d$$=>$d$$.tien_phi_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$detail$$.tien_cp=$detail$$.chi_phi_bh.map($d$$=>$d$$.tien_phi||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$rs$$.pbl.push($r$$)});$rs$$.hd3.forEach($r$$=>{$r$$.details_tl=$r$$.details.map($r$$=>$r$$);$r$$.details=[];$rs$$.pbl.push($r$$)});$rs$$.hd7.forEach($r$$=>{$r$$.details_tl=$r$$.details.map($r$$=>$r$$);$r$$.details=[];$rs$$.pbl.push($r$$)}); $callback$$()})}},async()=>{let $reportData$$=$rs$$.pbl;await $reportData$$.asyncJoinModel2(null,trangthai,[{where:{trang_thai:"ma_trang_thai",ma_ct:"ma_ct"},fields:["post_sokho","post","post_socai","ten_trang_thai"]}]);$reportData$$=$reportData$$.filter($p$$=>$p$$.post);const $ptthanhtoans$$=$condition$$.show_payment_method!==!1?(await global.getModel("ptthanhtoan").find({status:!0,id_app:$condition$$.id_app}).lean()).map($pt$$=>{$pt$$.ma=`pttt__${$pt$$._id}`;return $pt$$}):[];if($condition$$.show_bonus_points|| $ptthanhtoans$$&&$ptthanhtoans$$.length>0){const $queue$$=async.queue(async $r$$=>{if($condition$$.show_bonus_points){let $trans$$=await transaction.find({id_app:$condition$$.id_app,id_ct:{$regex:$r$$._id.toString(),$options:"i"}}).lean();$r$$.bonus_points=$trans$$.filter($tran$$=>$tran$$.receiver.email.toLowerCase()===$r$$.ma_kh.toLowerCase()).map($tran$$=>$tran$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.used_points=$trans$$.filter($tran$$=>$tran$$.sender.email.toLowerCase()===$r$$.ma_kh.toLowerCase()).map($tran$$=> $tran$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)}$ptthanhtoans$$&&$ptthanhtoans$$.length>0&&($r$$.thanh_toan=$ptthanhtoans$$,$r$$.thanh_toan.forEach($pt$$=>{$r$$[$pt$$.ma]=0;$r$$.pt_thanh_toan===$pt$$._id.toString()&&($r$$[$pt$$.ma]+=$r$$.tien_thu||$r$$.tien_con_lai||0);$r$$.pt_thanh_toan2===$pt$$._id.toString()&&($r$$[$pt$$.ma]+=$r$$.tien_thu2||0);$pt$$.tien_thu=$r$$[$pt$$.ma]}))},10);$queue$$.push($reportData$$);$queue$$.drain(()=>{$callback$$(null,$reportData$$,$ptthanhtoans$$||[])})}else $callback$$(null, $reportData$$,[])})})};