UNPKG

flexbiz-server

Version:

Flexible Server

7 lines (6 loc) 2.42 kB
const socai=global.getModel("socai"),kbbtpb=global.getModel("kbbtpb"),cktk=require("../../libs/cktk"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"); module.exports=function($router$$){new controller($router$$,"getbtpb",function($query_kb_req$$,$callback$$){const $condition$$=$query_kb_req$$.query;$query_kb_req$$={id_app:$condition$$.id_app,status:!0,$and:[{$or:[{hieu_luc_tu:{$exists:!1}},{hieu_luc_tu:{$lte:moment($condition$$.ngay_ct).startOf("date").toDate()}}]},{$or:[{hieu_luc_den:{$exists:!1}},{hieu_luc_den:{$gte:moment($condition$$.ngay_ct).endOf("date").toDate()}}]}]};kbbtpb.find($query_kb_req$$).sort({stt:1}).lean().then(function($kcs$$){async.mapSeries($kcs$$, function($k$$,$callback$$){var $q_tk$$=$k$$.tk_co;$k$$.tien=0;$k$$.tien_da_phan_bo=0;$k$$.so_ky_phan_bo||($k$$.so_ky_phan_bo=1);$k$$.tien_can_phan_bo?($k$$.tien=Math.roundBy($k$$.tien_can_phan_bo/$k$$.so_ky_phan_bo,0),$q_tk$$={id_kbbtpb:$k$$._id.toString(),id_app:$condition$$.id_app},$condition$$.id_ct&&($q_tk$$.id_ct={$ne:$condition$$.id_ct}),socai.find($q_tk$$).lean().exec(function($e$$,$rs$$){$rs$$&&($k$$.tien_da_phan_bo=$rs$$.csum("tien"));$k$$.tien_da_phan_bo+$k$$.tien>$k$$.tien_can_phan_bo&& ($k$$.tien=$k$$.tien_can_phan_bo-$k$$.tien_da_phan_bo);$callback$$(null)})):($k$$.tien_can_phan_bo=0,$k$$.so_ky_phan_bo=1,cktk({tk:$q_tk$$,ngay:new Date($condition$$.ngay_ct),id_app:$condition$$.id_app,ex_id_ct:$condition$$.id_ct},function($e$$,$rs$$){$rs$$&&$rs$$.forEach(function($r$$){$k$$.tien_can_phan_bo+=$r$$.du_no00});$k$$.tien=Math.roundBy($k$$.tien_can_phan_bo/$k$$.so_ky_phan_bo,0);$callback$$(null)}))},function($e$$){$kcs$$=underscore.filter($kcs$$,function($k$$){return $k$$.tien>0});$kcs$$.forEach($k$$=> {$k$$.details.forEach(function($detail$$){$detail$$.he_so||($detail$$.he_so=1)});const $total_he_so$$=$k$$.details.map($d$$=>$d$$.he_so||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$k$$.details.forEach(function($detail$$){$detail$$.id_kbbtpb=$k$$._id.toString();delete $detail$$._id;$detail$$.tk_co=$k$$.tk_co;$detail$$.dien_giai=$k$$.dien_giai;$detail$$.tien=$detail$$.tien_nt=Math.roundBy($detail$$.he_so/$total_he_so$$*$k$$.tien)});delete $k$$._id});return $callback$$($e$$,$kcs$$.map($k$$=>$k$$.details).reduce(($a$$, $b$$)=>$a$$.concat($b$$),[]).filter($d$$=>$d$$.tien))})}).catch($error$$=>{$callback$$($error$$)})},{cache:!1})};