flexbiz-server
Version:
Flexible Server
11 lines (10 loc) • 4.8 kB
JavaScript
'use strict';const sokho=global.getModel("sokho"),socai=global.getModel("socai"),dmyt=global.getModel("dmyt"),gt_thcppstk=global.getModel("gt_thcppstk"),ytdd_dk=global.getModel("ytdd_dk"),ytdd_ck=global.getModel("ytdd_ck"),async=require("async"),_=require("lodash"),moment=require("moment");
module.exports=function($condition$$,$fn$$){if(!($condition$$&&$condition$$.thang&&$condition$$.nam&&$condition$$.id_app))return $fn$$("L\u1ed7i: T\u00ednh n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: thang,nam,id_app");var $query_yt_thang$$=Number($condition$$.thang);let $nam$$=Number($condition$$.nam),$tu_ngay$$=moment(new Date($nam$$,$query_yt_thang$$-1,1)).startOf("date").toDate(),$den_ngay$$=moment(new Date($nam$$,$query_yt_thang$$,0)).endOf("date").toDate();$query_yt_thang$$=
{id_app:$condition$$.id_app,status:!0};$condition$$.ma_bp&&($query_yt_thang$$.ma_bp={$in:[$condition$$.ma_bp.toUpperCase(),null,void 0]});dmyt.find($query_yt_thang$$).lean().exec(($e$$,$yts$$)=>{if($e$$)return $fn$$($e$$);let $data$$=[];async.map($yts$$,($yt$$,$callback$jscomp$0$$)=>{async.parallel({dk:$callback$$=>{(new Promise(($resolve$$,$reject$$)=>{setImmediate(()=>{let $cond$$={id_app:$condition$$.id_app,nam:$condition$$.nam,thang:$condition$$.thang,ma_yt:$yt$$.ma_yt};$condition$$.ma_bp&&($cond$$.ma_bp=
$condition$$.ma_bp.toUpperCase());$condition$$.id_lenhsx&&mongoose.Types.ObjectId.isValid($condition$$.id_lenhsx)&&($cond$$.id_lenhsx=$condition$$.id_lenhsx);ytdd_dk.find($cond$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);for(let $dd$$ of $rs$$)$dd$$.dd_dk_nt=$dd$$.tien_nt,$dd$$.dd_dk=$dd$$.tien,$data$$.push($dd$$);$resolve$$($rs$$)})})})).then($dddk$$=>{setImmediate(()=>{let $cond$$={id_app:$condition$$.id_app,nam:$condition$$.nam,thang:$condition$$.thang-1,ma_yt:$yt$$.ma_yt};$condition$$.ma_bp&&
($cond$$.ma_bp=$condition$$.ma_bp.toUpperCase());$condition$$.id_lenhsx&&mongoose.Types.ObjectId.isValid($condition$$.id_lenhsx)&&($cond$$.id_lenhsx=$condition$$.id_lenhsx);0===$cond$$.thang&&($cond$$.thang=12,--$cond$$.nam);ytdd_ck.find($cond$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);for(let $ck$$ of $rs$$)_.find($dddk$$,$d$$=>$d$$.ma_yt==$ck$$.ma_yt&&$d$$.ma_sp==$ck$$.ma_sp&&$d$$.ma_bp==$ck$$.ma_bp&&$d$$.id_lenhsx==$ck$$.id_lenhsx)||($ck$$.dd_dk_nt=$ck$$.tien_nt,$ck$$.dd_dk=
$ck$$.tien,$data$$.push($ck$$));$callback$$(null)})})}).catch($e$$=>{$callback$$($e$$)})},ps:$callback$$=>{setImmediate(()=>{let $cond$$={id_app:$condition$$.id_app,ngay_ct:{$gte:$tu_ngay$$,$lte:$den_ngay$$}};$condition$$.id_lenhsx&&mongoose.Types.ObjectId.isValid($condition$$.id_lenhsx)&&($cond$$.id_lenhsx=$condition$$.id_lenhsx);let $md$$;$yt$$.ma_bp_cp&&($cond$$.ma_bp=$yt$$.ma_bp_cp);$yt$$.ma_dt_cp&&($cond$$.ma_dt=$yt$$.ma_dt_cp);$yt$$.ma_phi_cp&&($cond$$.ma_phi=$yt$$.ma_phi_cp);$yt$$.ma_kho_cp&&
($cond$$.ma_kho=$yt$$.ma_kho_cp);$yt$$.ma_vt_cp&&($cond$$.ma_vt=$yt$$.ma_vt_cp);$yt$$.th_nvl?($md$$=sokho,_.isArray($yt$$.tk_no)&&0<$yt$$.tk_no.length&&($cond$$.tk_du={$regex:$yt$$.tk_no.reg(),$options:"i"}),_.isArray($yt$$.tk_co)&&0<$yt$$.tk_co.length&&($cond$$.tk_vt={$regex:$yt$$.tk_co.reg(),$options:"i"})):($md$$=socai,_.isArray($yt$$.tk_no)&&0<$yt$$.tk_no.length&&($cond$$.tk_no={$regex:$yt$$.tk_no.reg(),$options:"i"}),_.isArray($yt$$.tk_co)&&0<$yt$$.tk_co.length&&($cond$$.tk_co={$regex:$yt$$.tk_co.reg(),
$options:"i"}));$md$$.find($cond$$).lean().exec(($e$jscomp$0$$,$rows$$)=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);$e$jscomp$0$$=[];let $sumfields$$;$yt$$.ma_bp&&$rows$$.forEach($r$$=>{$r$$.ma_bp=$yt$$.ma_bp});$yt$$.th_bp&&($rows$$=$rows$$.filter($r$$=>$r$$.ma_bp),$condition$$.ma_bp&&($rows$$=$rows$$.filter($r$$=>$r$$.ma_bp==$condition$$.ma_bp.toUpperCase())),$e$jscomp$0$$.push("ma_bp"));$yt$$.th_lsx&&($rows$$=$rows$$.filter($r$$=>$r$$.id_lenhsx),$e$jscomp$0$$.push("id_lenhsx"));$yt$$.th_sp&&
($rows$$=$rows$$.filter($r$$=>$r$$.ma_sp),$e$jscomp$0$$.push("ma_sp"));$yt$$.th_nvl?($e$jscomp$0$$.push("ma_vt"),$sumfields$$=[{name:"ps_tk_nt",value:"tien_xuat_nt"},{name:"ps_tk",value:"tien_xuat"}]):$sumfields$$=[{name:"ps_tk_nt",value:"tien_nt"},{name:"ps_tk",value:"tien"}];$rows$$.groupBy($e$jscomp$0$$,$sumfields$$,($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$rs$$.forEach($r$$=>{$r$$.ma_yt=$yt$$.ma_yt});$data$$=$data$$.concat($rs$$);$callback$$(null,$rs$$)})})})}},function($e$$,$rs$$){$callback$jscomp$0$$($e$$,
$rs$$)})},$e$jscomp$1$$=>{if($e$jscomp$1$$)return $fn$$($e$jscomp$1$$);$data$$.groupBy(["ma_yt","ma_sp","ma_bp","id_lenhsx","ma_nvl"],["dd_dk_nt","dd_dk","ps_tk_nt","ps_tk"],($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$)return $fn$$($e$jscomp$0$$);for(let $r$$ of $rs$$)$r$$.nam=$condition$$.nam,$r$$.thang=$condition$$.thang,$r$$.id_app=$condition$$.id_app;gt_thcppstk.create($rs$$,$e$$=>{$fn$$($e$$,$rs$$)})})})})};