UNPKG

flexbiz-server

Version:

Flexible Server

14 lines (13 loc) 6.16 kB
const tdttno=global.getModel("tdttno"),tdttno_tt=global.getModel("tdttno_tt"),Customer=global.getModel("customer"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"); module.exports=function($router_rpt$$){$router_rpt$$=new controller($router_rpt$$,"chitietthutientheohoadon",async function($condition_req$$,$callback$$){$condition_req$$=$condition_req$$.query;$condition_req$$.den_ngay&&($condition_req$$.den_ngay=moment().endOf("date").toDate());var $query_tdttnos$$={id_app:$condition_req$$.id_app};$condition_req$$.id_ct?$query_tdttnos$$.id_ct=$condition_req$$.id_ct:($query_tdttnos$$.ngay_ct={$lte:$condition_req$$.den_ngay},$condition_req$$.tu_ngay&&($query_tdttnos$$.ngay_ct.$gte= $condition_req$$.tu_ngay),$condition_req$$.ma_dvcs&&($query_tdttnos$$.ma_dvcs=$condition_req$$.ma_dvcs),$condition_req$$.so_ct&&($query_tdttnos$$.so_ct=$condition_req$$.so_ct),$condition_req$$.so_hd&&($query_tdttnos$$.so_hd=$condition_req$$.so_hd));$condition_req$$.ma_kh&&($query_tdttnos$$.ma_kh=$condition_req$$.ma_kh);$query_tdttnos$$=await tdttno.find($query_tdttnos$$).lean();const $invoices$$=[];for(let $i$$=0;$i$$<$query_tdttnos$$.length;$i$$++){const $invoice$$=$query_tdttnos$$[$i$$];$invoice$$.line= $i$$;$invoices$$.push($invoice$$)}let $report$$=[];await Promise.all($invoices$$.map($invoice$$=>(async()=>{const $t_invoice$$={id_app:$invoice$$.id_app,sysorder:1,bold:!0,id_ct:$invoice$$.id_ct,ma_ct:$invoice$$.ma_ct,id_hd:$invoice$$.id_ct,so_ct:$invoice$$.so_ct,ngay_ct:$invoice$$.ngay_ct,so_hd:$invoice$$.so_hd,ngay_hd:$invoice$$.ngay_hd,tien_hd_nt:$invoice$$.tien_nt,listinfo_code:$invoice$$.listinfo_code};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh= $invoice$$.ma_kh;$t_invoice$$.ma_dt=$invoice$$.ma_dt;$t_invoice$$.ma_nv=$invoice$$.ma_nv;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.con_lai_nt=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_co=$invoice$$.tk_no;$t_invoice$$.han_tt=$invoice$$.han_tt;$t_invoice$$.han_tt&&($t_invoice$$.han_tt_den_ngay=new Date($t_invoice$$.ngay_hd||$t_invoice$$.ngay_ct),$t_invoice$$.han_tt_den_ngay.setDate($t_invoice$$.han_tt_den_ngay.getDate()+ $t_invoice$$.han_tt));$t_invoice$$._id=$invoice$$._id;$t_invoice$$.tat_toan=$invoice$$.tat_toan;$report$$.push($t_invoice$$);let $da_thanh_toan_nt$$=0;(await tdttno_tt.find({id_tdtt:$invoice$$._id,id_app:$invoice$$.id_app}).sort({ngay_ct:1}).lean()).forEach(function($invoice_tt$$){$da_thanh_toan_nt$$+=$invoice_tt$$.thanh_toan_qd;$invoice_tt$$.da_thanh_toan_nt=$invoice_tt$$.thanh_toan_qd;$invoice_tt$$.tien_hd_nt=0;$invoice_tt$$.con_lai_nt=0;$invoice_tt$$.sysorder=5;$invoice_tt$$.bold=!1;$report$$.push($invoice_tt$$)}); $t_invoice$$.da_thanh_toan_nt=$da_thanh_toan_nt$$;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_hd_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai_nt<=0&&($t_invoice$$.tat_toan=!0);$t_invoice$$.con_phai_tt_nt=$t_invoice$$.tat_toan?0:$t_invoice$$.con_lai_nt})()));await $report$$.asyncJoinModel2($condition_req$$.id_app,Customer,[{where:"ma_kh",fields:[{name:"ten_kh",value:"ten_kh"},{phu_trach:"phu_trach"},{name:"id_kh",value:"_id"}]}]);await $report$$.filter($r$$=>$r$$.phu_trach).asyncJoinModel2($condition_req$$.id_app, "participant",{where:{phu_trach:"email"},fields:{ten_phu_trach:"name"}});await $report$$.filter($r$$=>$r$$.ma_dt).asyncJoinModel2($condition_req$$.id_app,"dmdt",{where:{ma_dt:"ma_dt"},fields:{ten_dt:"ten_dt"}});await $report$$.filter($r$$=>$r$$.ma_nv).asyncJoinModel2($condition_req$$.id_app,"dmnv",[{where:"ma_nv",fields:[{name:"ten_nv",value:"ten_nv"}]}]);await $report$$.filter($r$$=>!$r$$.listinfo_code&&$r$$.ma_ct&&$r$$.id_ct).asyncJoinModel2($condition_req$$.id_app,$item$$=>$item$$.ma_ct.toLowerCase(), {where:{id_ct:"_id"},fields:["listinfo_code"]});$report$$=underscore.sortBy($report$$,function($r$$){return $r$$.id_hd+$r$$.sysorder});$callback$$(null,$report$$)});$router_rpt$$.createRoute("tattoan/:id_tdtt",async($req$$,$next$$)=>{const $id_tdtt$$=$req$$.params.id_tdtt;if(!global.mongoose.Types.ObjectId.isValid($id_tdtt$$))return $next$$({error:"id theo d\u00f5i thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if(!$req$$.user.appAdmin)return $next$$({error:"Ch\u1ec9 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb m\u1edbi c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"}); try{const $hd$$=await tdttno.findOne({_id:$id_tdtt$$,id_app:$req$$.user.current_id_app}).lean();if(!$hd$$)return $next$$({error:"Ho\u00e1 \u0111\u01a1n n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"});if($hd$$.tat_toan)return $next$$({error:"Ho\u00e1 \u0111\u01a1n n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea5t to\u00e1n"});await tdttno.updateOne({_id:$id_tdtt$$},{tat_toan:!0});await global.getModel("cache").deleteMany({user:$req$$.user.email,id_app:$req$$.user.current_id_app,key:"chitietthutientheohoadon"}).catch($e$$=> {Logger.error("error delete cache data",$e$$)});$next$$(null,{result:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"})}catch($e$$){$next$$({error:$e$$.message||$e$$.error||$e$$})}});$router_rpt$$.createRoute("botattoan/:id_tdtt",async($req$$,$next$$)=>{const $id_tdtt$$=$req$$.params.id_tdtt;if(!global.mongoose.Types.ObjectId.isValid($id_tdtt$$))return $next$$({error:"id theo d\u00f5i thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if(!$req$$.user.appAdmin)return $next$$({error:"Ch\u1ec9 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb m\u1edbi c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"}); try{if(!await tdttno.findOne({_id:$id_tdtt$$,id_app:$req$$.user.current_id_app}).lean())return $next$$({error:"Ho\u00e1 \u0111\u01a1n n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"});await tdttno.updateOne({_id:$id_tdtt$$},{tat_toan:!1});await global.getModel("cache").deleteMany({user:$req$$.user.email,id_app:$req$$.user.current_id_app,key:"chitietthutientheohoadon"}).catch($e$$=>{Logger.error("error delete cache data",$e$$)});$next$$(null,{result:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"})}catch($e$$){$next$$({error:$e$$.message|| $e$$.error||$e$$})}})};