UNPKG

flexbiz-server

Version:

Flexible Server

8 lines (7 loc) 2.91 kB
'use strict';const lenhsx=global.getModel("lenhsx"),dinhmucsx=global.getModel("dinhmucsx"),dmvt=global.getModel("dmvt"),dmdvt=global.getModel("dmdvt"),dmdt=global.getModel("dmdt"),controller=require("../../controllers/controllerRPT"),moment=require("moment"); module.exports=function($router$$){new controller($router$$,"getdinhmuc4lenhcp",async($req_sx_vts$$,$callback$$)=>{const $condition$$=$req_sx_vts$$.query;if(!$condition$$.id_lenhsx||!global.mongoose.Types.ObjectId.isValid($condition$$.id_lenhsx))return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:id_lenhsx");let $lsx$$=await lenhsx.findOne({id_app:$condition$$.id_app,_id:$condition$$.id_lenhsx}).lean();if(!$lsx$$)return $callback$$("L\u1ec7nh s\u1ea3n xu\u1ea5t n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"); $req_sx_vts$$=await $lsx$$.details.asyncGroupBy("ma_sp ma_dvt_sp ma_tt1_sp ma_tt2_sp ma_tt3_sp id_dinhmucsx".split(" "),["sl_sx"]);$req_sx_vts$$=await Promise.all($req_sx_vts$$.map($sp$$=>(async()=>{let $query_dinhmuc$$={id_app:$condition$$.id_app,ma_sp:$sp$$.ma_sp};if($sp$$.id_dinhmucsx){if(!global.mongoose.Types.ObjectId.isValid($sp$$.id_dinhmucsx))return[];$query_dinhmuc$$._id=$sp$$.id_dinhmucsx}else $query_dinhmuc$$.hieu_luc_tu_ngay={$lte:moment($lsx$$.ngay_ct).startOf("date").toDate()},$query_dinhmuc$$.hieu_luc_den_ngay= {$gte:moment($lsx$$.ngay_ct).endOf("date").toDate()};let $dinhmuc$$=await dinhmucsx.findOne($query_dinhmuc$$).lean();return $dinhmuc$$?$dinhmuc$$.details.map($detail$$=>{delete $detail$$._id;$detail$$.sl_dinh_muc/=$dinhmuc$$.so_luong||1;$detail$$.so_luong=$sp$$.sl_sx*$detail$$.sl_dinh_muc*(1+($detail$$.ty_le_hao_hut||0)/100);$detail$$.gia_von=$detail$$.gia_von_nt=0;$detail$$.tien_xuat=$detail$$.tien_xuat_nt=0;$detail$$.ma_sp=$sp$$.ma_sp;$detail$$.ma_dvt_sp=$sp$$.ma_dvt_sp;$detail$$.ma_tt1_sp=$sp$$.ma_tt1_sp; $detail$$.ma_tt2_sp=$sp$$.ma_tt2_sp;$detail$$.ma_tt3_sp=$sp$$.ma_tt3_sp;$detail$$.id_dinhmucsx=$dinhmuc$$._id.toString();return $detail$$}):[]})()));$req_sx_vts$$=$req_sx_vts$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$req_sx_vts$$=await $req_sx_vts$$.asyncGroupBy("ma_vt ma_dvt ma_dt ma_kh ma_sp ma_dvt_sp ma_tt1_sp ma_tt2_sp ma_tt3_sp id_dinhmucsx ma_bp".split(" "),["so_luong","tien_xuat","tien_xuat_nt"]);await $req_sx_vts$$.asyncJoinModel2($condition$$.id_app,dmvt,{where:"ma_vt",fields:["ten_vt", "tk_vt",{tk_du:"tk_gv"}]});await $req_sx_vts$$.asyncJoinModel2($condition$$.id_app,dmvt,{where:{ma_sp:"ma_vt"},fields:{ten_sp:"ten_vt"}});await $req_sx_vts$$.filter($r$$=>$r$$.ma_dvt).asyncJoinModel2($condition$$.id_app,dmdvt,{where:"ma_dvt",fields:"ten_dvt"});await $req_sx_vts$$.filter($r$$=>$r$$.ma_dt).asyncJoinModel2($condition$$.id_app,dmdt,{where:"ma_dt",fields:"ten_dt"});await $req_sx_vts$$.filter($r$$=>$r$$.ma_bp).asyncJoinModel2($condition$$.id_app,global.getModel("dmbp"),{where:"ma_bp",fields:"ten_bp"}); $callback$$(null,$req_sx_vts$$)})};