UNPKG

flexbiz-server

Version:

Flexible Server

9 lines (8 loc) 3.56 kB
const Vsocai=require("./vsocai"),dstktt=require("./dstktt"),async=require("async"),underscore=require("underscore"),moment=require("moment"); module.exports=async function($condition$$,$fn$$,$options$$={model:"socai"}){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $id_app$$=$condition$$.id_app;if(!await global.getModel("app").findOne({_id:$id_app$$},{ngay_ks:1}).lean())return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");var $ngay$$=moment($condition$$.ngay).startOf("date").toDate(),$ngay_ks$$=(await global.getModel("cdtktheongay").findOne({id_app:$id_app$$,den_ngay:{$lte:moment($ngay$$).startOf("date").toDate()}},{den_ngay:1}).sort({den_ngay:-1}).lean()|| {}).den_ngay;$ngay_ks$$&&=moment($ngay_ks$$).endOf("date").toDate();var $ngay_dn$$=moment($ngay$$).startOf("year").toDate();if(!$ngay_ks$$||$ngay_ks$$<$ngay_dn$$){var $Cdtk$$=global.getModel("cdtk");var $nam$$=$ngay$$.getFullYear()}else $Cdtk$$=global.getModel("cdtktheongay"),$ngay_dn$$=moment($ngay_ks$$).startOf("date").add(1,"days").toDate();var $ma_dvcs$$=$condition$$.ma_dvcs,$tk$$=$condition$$.tk;$tk$$||="";if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+ "|^"+$t$$:"^"+$t$$});$tks$$||="^";$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};async.parallel({dn:function($callback$$){setImmediate(()=>{let $c_dk$$={id_app:$id_app$$,tk:$tk$$};$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$nam$$?$c_dk$$.nam=$nam$$:(Logger.info("lay cdtk theo ngay khoa so",$ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);$Cdtk$$.find($c_dk$$).lean().then(function($results$$){$callback$$(null,$results$$)}).catch($error$$=> {$callback$$({message:$error$$.message})})})},ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>{dstktt($id_app$$,$tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$},tk:{$in:$accs$$}};$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);Vsocai.find($query$$, function($error$$,$pss$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$pss$$)},$options$$)})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})}},function($error$$,$results$$){if($error$$)return $fn$$($error$$);let $data$$=$results$$.dn;$results$$.ps.forEach(function($r$$){$data$$.push($r$$)});$error$$=$condition$$.groupBy||["tk"];if(!underscore.isArray($error$$))if($error$$.indexOf("[")>=0)try{$error$$=JSON.parse($error$$)}catch($e$$){Logger.error("err parse json groupby", $error$$),$error$$=[$error$$]}else $error$$=$error$$.indexOf(",")>=0?$error$$.split(","):[$error$$];$data$$.groupBy($error$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;$r$$.du_no00< 0&&($r$$.du_no00=0);$r$$.du_no_nt00<0&&($r$$.du_no_nt00=0);$r$$.du_co00<0&&($r$$.du_co00=0);$r$$.du_co_nt00<0&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,$rs$$)})})})}else $fn$$(Error("ngay and id_app parameter required"))};