flexbiz-server
Version:
Flexible Server
7 lines (6 loc) • 2.67 kB
JavaScript
'use strict';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$$="");$ma_dvcs$$={$regex:$ma_dvcs$$,$options:"i"};var $tk$$=$condition$$.tk;$tk$$||($tk$$="");$tk$$={$regex:"^"+$tk$$,$options:"i"};var $ma_kh$$=$condition$$.ma_kh;$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().exec(function($error$$,$results$$){$error$$?$callback$$($error$$):$callback$$(null,$results$$)})})},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$jscomp$0$$,$results$$){if($error$jscomp$0$$)$fn$$($error$jscomp$0$$);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$jscomp$0$$=underscore.keys($groups$$);async.mapSeries($error$jscomp$0$$,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");0>$r$$.du_no1?($r$$.du_co1=Math.abs($r$$.du_no1),$r$$.du_no1=0):$r$$.du_co1=0;0>$r$$.du_no_nt1?($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"))};