UNPKG

flexbiz-server

Version:

Flexible Server

18 lines (17 loc) 4.54 kB
'use strict';const Vsocai=require("../../libs/vsocai"),dkcn=require("../../libs/dkcn"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),Numeral=require("numeral"); module.exports=function($router$$){new controller($router$$,"sctcnkh",async function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;$condition$$.tk||($condition$$.tk="131");$condition$$.tu_ngay||($condition$$.tu_ngay=moment().startOf("month").toDate());$condition$$.den_ngay||($condition$$.den_ngay=moment().endOf("month").toDate());if(!$condition$$.ma_kh&&$condition$$.nh_kh){const $ma_khs$$=(await global.getModel("customer").find({nh_kh:$condition$$.nh_kh,id_app:$condition$$.id_app}).lean()).map($r$$=> $r$$.ma_kh);$condition$$.ma_kh={$in:$ma_khs$$}}$condition$$.ma_kh||($condition$$.ma_kh=$req$$.user.email);$condition$$.bu_tru=!0;$condition$$.groupBy=$condition$$.groupBy||["tk","ma_kh"];async.series({dk:$callback$$=>{const $query$$={};underscore.extend($query$$,$condition$$);$query$$.ngay=$condition$$.tu_ngay;dkcn($query$$,function($data_error$$,$result$$){if($data_error$$)return $callback$$($data_error$$);$data_error$$={systotal:1,sysorder:0,bold:!0,dien_giai:"\u0110\u1ea7u k\u1ef3",ps_no:$result$$.csum("du_no00"), ps_co:$result$$.csum("du_co00"),ps_no_nt:$result$$.csum("du_no_nt00"),ps_co_nt:$result$$.csum("du_co_nt00")};$callback$$(null,$data_error$$)})},ps:$callback$$=>{const $query$$={id_app:$condition$$.id_app,tk:{$regex:"^"+$condition$$.tk,$options:"i"},ngay_ct:{$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay}};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kh&&($query$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&& ($query$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($query$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($query$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($query$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($query$$.ma_dt=$condition$$.ma_dt);Vsocai.find($query$$,($error$$,$result$$)=>{if($error$$)return $callback$$($error$$);$result$$.forEach($r$$=>{$r$$.systotal=0;$r$$.sysorder=5;$r$$.bold=!1});$error$$={systotal:1,sysorder:6,bold:!0,dien_giai:"T\u1ed5ng c\u1ed9ng ph\u00e1t sinh", ps_no:$result$$.csum("ps_no"),ps_co:$result$$.csum("ps_co"),ps_no_nt:$result$$.csum("ps_no_nt"),ps_co_nt:$result$$.csum("ps_co_nt")};$result$$.push($error$$);$result$$.push({systotal:0,sysorder:2,bold:!0,dien_giai:"Ph\u00e1t sinh trong k\u1ef3",ps_no:0,ps_co:0,ps_no_nt:0,ps_co_nt:0});$callback$$(null,$result$$)},{groupBy:"id_app ma_dvcs id_ct ma_ct ma_gd ngay_ct so_ct ngay_hd so_hd tk tk_du ma_kh ong_ba ma_nt ty_gia dien_giai ma_bp id_lenhsx ma_phi ma_hd ma_dt ma_nv ma_cp ma_kho".split(" "),sortData:!0})}}, ($data$jscomp$1_error$$,$results_so_ck$$)=>{if($data$jscomp$1_error$$)return $callback$jscomp$0$$($data$jscomp$1_error$$);$data$jscomp$1_error$$=$results_so_ck$$.ps;$data$jscomp$1_error$$.push($results_so_ck$$.dk);$results_so_ck$$=$data$jscomp$1_error$$.csum("ps_no",{systotal:1})-$data$jscomp$1_error$$.csum("ps_co",{systotal:1});let $so_ck_nt$$=$data$jscomp$1_error$$.csum("ps_no_nt",{systotal:1})-$data$jscomp$1_error$$.csum("ps_co",{systotal:1});const $dong_cuoi_ky$$={systotal:1,sysorder:9,bold:!0, dien_giai:"Cu\u1ed1i k\u1ef3",ps_no:0,ps_co:0,ps_no_nt:0,ps_co_nt:0};0<$results_so_ck$$&&($dong_cuoi_ky$$.ps_no=$results_so_ck$$);0<$so_ck_nt$$&&($dong_cuoi_ky$$.ps_no_nt=$so_ck_nt$$);0>$results_so_ck$$&&($dong_cuoi_ky$$.ps_co=Math.abs($results_so_ck$$));0>$so_ck_nt$$&&($dong_cuoi_ky$$.ps_co_nt=Math.abs($so_ck_nt$$));$data$jscomp$1_error$$.push($dong_cuoi_ky$$);$data$jscomp$1_error$$=underscore.sortBy($data$jscomp$1_error$$,$r$$=>$r$$.sysorder);if("HTML"===$req$$.query.rs_type){let $html$$="<tr><th>N\u1ed9i dung</th><th>Thu</th><th>Tr\u1ea3</th></tr>"; $data$jscomp$1_error$$.forEach($r$$=>{$html$$=`${$html$$} <tr style="font-weight:${$r$$.bold?"bold":"normal"}"> <td> <div>${$r$$.dien_giai||""}</div> <div><i><small>${$r$$.ngay_ct?moment($r$$.ngay_ct).format("DD/MM/YYYY"):""}</small></i></div> </td> <td style="text-align:right">${$r$$.ps_no?Numeral($r$$.ps_no).format():""}</td> <td style="text-align:right">${$r$$.ps_co?Numeral($r$$.ps_co).format():""}</td> </tr>`});$html$$="<table>"+$html$$+"</table>";return $callback$jscomp$0$$(null,$html$$)}$callback$jscomp$0$$(null,$data$jscomp$1_error$$)})})};