flexbiz-server
Version:
Flexible Server
7 lines (6 loc) • 2.61 kB
JavaScript
const Cdkh=global.getModel("cdkh"),Vsocai=require("./vsocai"),dstkcn=require("./dstkcn"),async=require("async"),underscore=require("underscore"),moment=require("moment");
module.exports=function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $ma_dvcs$$=$condition$$.ma_dvcs;$ma_dvcs$$||="";$ma_dvcs$$={$regex:$ma_dvcs$$,$options:"i"};var $tk$$=$condition$$.tk;$tk$$||="";$tk$$={$regex:"^"+$tk$$,$options:"i"};var $ma_kh$$=$condition$$.ma_kh;$ma_kh$$||="";$ma_kh$$={$regex:$ma_kh$$,$options:"i"};var $ngay$$=moment(new Date($condition$$.ngay)).startOf("date").toDate(),$nam$$=$ngay$$.getFullYear(),$ngay_dn$$=moment($ngay$$).startOf("year").toDate(),
$ngay_dn_lich$$=moment($ngay$$).startOf("year").toDate(),$id_app$$=$condition$$.id_app;async.series({dn:function($callback$$){setImmediate(()=>{Cdkh.find({id_app:$id_app$$,nam:$nam$$,tk:$tk$$,ma_kh:$ma_kh$$,ma_dvcs:$ma_dvcs$$}).lean().then(function($results$$){$callback$$(null,$results$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})})},ps:function($callback$$){setImmediate(()=>{async.waterfall([function($callback1$$){dstkcn($id_app$$,$tk$$,function($error$$,$accs$$){$error$$?$callback1$$($error$$):
$callback1$$(null,$accs$$)})},function($accs$$,$callback1$$){Vsocai.find({id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn_lich$$,$lt:$ngay_dn$$},ma_kh:$ma_kh$$,tk:{$in:$accs$$},ma_dvcs:$ma_dvcs$$},function($error$$,$pss$$){$error$$?$callback1$$($error$$):$callback1$$(null,$pss$$)})}],function($error$$,$result$$){$error$$?$callback$$($error$$):$callback$$(null,$result$$)})})}},function($error$$,$results$$){if($error$$)$fn$$($error$$);else{var $data$$=$results$$.dn;$results$$.ps.forEach(function($r$$){$data$$.push($r$$)});
var $groups$$=underscore.groupBy($data$$,function($r$$){return $r$$.tk+"$s"+$r$$.ma_kh});$error$$=underscore.keys($groups$$);async.mapLimit($error$$,50,function($key$$,$callback$$){setImmediate(()=>{const $value$$=$groups$$[$key$$],$r$$={},$tk_ma_kh$$=$key$$.split("$s");$r$$.tk=$tk_ma_kh$$[0];$r$$.ma_kh=$tk_ma_kh$$[1];$r$$.du_no1=$value$$.csum("du_no1")+$value$$.csum("ps_no")-$value$$.csum("du_co1")-$value$$.csum("ps_co");$r$$.du_no_nt1=$value$$.csum("du_no_nt1")+$value$$.csum("ps_no_nt")-$value$$.csum("du_co_nt1")-
$value$$.csum("ps_co_nt");$r$$.du_no1<0?($r$$.du_co1=Math.abs($r$$.du_no1),$r$$.du_no1=0):$r$$.du_co1=0;$r$$.du_no_nt1<0?($r$$.du_co_nt1=Math.abs($r$$.du_no_nt1),$r$$.du_no_nt1=0):$r$$.du_co_nt1=0;$callback$$(null,$r$$)})},function($error$$,$result$$){$error$$?$fn$$($error$$):$fn$$(null,$result$$)})}})}else $fn$$(Error("ngay and id_app parameter condition"))};