flexbiz-server
Version:
Flexible Server
6 lines (5 loc) • 2.34 kB
JavaScript
const cddiem=global.getModel("cddiem"),transaction=global.getModel("transaction"),async=require("async"),underscore=require("underscore"),utils=require("./utils"),moment=require("moment");
module.exports=async function($condition$$,$fn$$){!$condition$$.ngay&&$condition$$.tu_ngay&&($condition$$.ngay=$condition$$.tu_ngay);if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $ngay$$=moment(new Date($condition$$.ngay)).startOf("date").toDate(),$nam$$=$ngay$$.getFullYear(),$ngay_dn$$=moment().year($nam$$).startOf("year").toDate(),$id_app$$=$condition$$.id_app;async.series({dn:$callback$$=>{let $c_dk$$={id_app:$id_app$$,nam:$nam$$};$condition$$.email&&($c_dk$$.email=$condition$$.email);
cddiem.find($c_dk$$).lean().then(function($results$$){$callback$$(null,$results$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})},ps:$callback$$=>{let $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$}};$condition$$.email&&($query$$.$or=[{"sender.email":$condition$$.email},{"receiver.email":$condition$$.email}]);transaction.find($query$$).lean().then(function($ps_pss$$){$ps_pss$$=$ps_pss$$.map($n_p$$=>{let $x$$=Object.assign({},$n_p$$);$x$$.email=$x$$.sender.email;$x$$.sl_xuat=
$x$$.amount;$x$$.sl_nhap=0;$n_p$$=Object.assign({},$n_p$$);$n_p$$.email=$n_p$$.receiver.email;$n_p$$.sl_nhap=$n_p$$.amount;$n_p$$.sl_xuat=0;return[$n_p$$,$x$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$condition$$.email&&($ps_pss$$=$ps_pss$$.filter($r$$=>$r$$.email===$condition$$.email));$callback$$(null,$ps_pss$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})}},($data_error$$,$groupBy_results$$)=>{if($data_error$$)return $fn$$($data_error$$);$data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);
($groupBy_results$$=$condition$$.groupBy)||($groupBy_results$$=["email"]);if(!underscore.isArray($groupBy_results$$)&&$groupBy_results$$.indexOf("[")>=0)try{$groupBy_results$$=JSON.parse($groupBy_results$$)}catch($e$$){Logger.error($e$$)}$data_error$$.groupBy($groupBy_results$$,["sl_nhap","sl_xuat","ton00"],($e$$,$groups$$)=>{if($e$$)return $fn$$($e$$);for(let $r$$ of $groups$$)$r$$.ton00=utils.round($r$$.ton00+$r$$.sl_nhap-$r$$.sl_xuat,2),$r$$.sl_nhap=0,$r$$.sl_xuat=0;$fn$$(null,$groups$$)})})}else $fn$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay,id_app")};