UNPKG

flexbiz-server

Version:

Flexible Server

12 lines (11 loc) 5.22 kB
const Vsocai=require("../../libs/vsocai"),dmphi=global.getModel("dmphi"),kehoachdtcp=global.getModel("kehoachdtcp"),dktk=require("../../libs/dktk"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"); module.exports=function($router$$){new controller($router$$,"sctdtcp",($req$$,$callback$$)=>{const $condition$$=$req$$.query;if(!$condition$$.tk||!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tk,tu_ngay,den_ngay");$condition$$.ma_dvcs||($condition$$.ma_dvcs="");let $baocaotheos$$={tuan:"Tu\u1ea7n",thang:"Th\u00e1ng",quy:"Qu\u00fd",nam:"N\u0103m"},$baocaotheo$$=[$condition$$.reportBy||"tuan","ma_phi","ten_phi"]; $condition$$.reportBy!=="nam"&&$baocaotheo$$.push("nam");$condition$$.bu_tru=!0;async.parallel({dk:$callback$$=>{const $query$$={};underscore.extend($query$$,$condition$$);$query$$.ngay=$condition$$.tu_ngay;dktk($query$$,($error$$,$dk$$)=>{if($error$$)return $callback$$($error$$);$dk$$.forEach($p$$=>{let $m_ngay_ct$$=moment($condition$$.tu_ngay);$p$$.thang=$m_ngay_ct$$.month()+1;$p$$.nam=$m_ngay_ct$$.year();$p$$.tuan=$m_ngay_ct$$.week();$p$$.quy=$m_ngay_ct$$.quarter();$p$$.ma_phi="#dk#";$p$$.ten_phi= "\u0110\u1ea7u k\u1ef3"});$dk$$.groupBy($baocaotheo$$,["du_no00","du_co00","du_no_nt00","du_co_nt00"],($error$$,$rs$$)=>{if($error$$)return $callback$$($error$$);$rs$$.forEach(function($r$$){$r$$.systotal=1;$r$$.sysorder=1;$r$$.bold=!0;$r$$.tien=$r$$.du_no00-$r$$.du_co00;$r$$.tien_nt=$r$$.du_no_nt00-$r$$.du_co_nt00;$r$$.tien_kh=$r$$.du_no00-$r$$.du_co00;$r$$.tien_kh_nt=$r$$.du_no_nt00-$r$$.du_co_nt00;$r$$.loai="#dk#"});$callback$$(null,$rs$$)})})},kh:$callback$$=>{const $query$$={id_app:$condition$$.id_app, tk:{$regex:"^"+$condition$$.tk,$options:"i"},ma_dvcs:{$regex:$condition$$.ma_dvcs,$options:"i"},kieu_ky:$condition$$.reportBy||"tuan"};$condition$$.ma_phi&&($query$$.ma_phi=$condition$$.ma_phi);kehoachdtcp.find($query$$).lean().exec(($e$$,$ps$$)=>{if($e$$)return $callback$$($e$$);$ps$$.forEach($p$$=>{$p$$.thang=$p$$.kieu_ky=="thang"?$p$$.ky:0;$p$$.tuan=$p$$.kieu_ky=="tuan"?$p$$.ky:0;$p$$.quy=$p$$.kieu_ky=="quy"?$p$$.ky:0;$p$$.tien=0;$p$$.tien_nt=0;$p$$.tien_kh=$p$$.chi_tieu;$p$$.tien_kh_nt=$p$$.chi_tieu; $p$$.sysorder=$p$$.tien_nt>0?3:5;$p$$.loai=$p$$.tien_kh>0?"V":"R"});$ps$$.joinModel2($req$$.query.id_app,dmphi,{where:"ma_phi",fields:"ten_phi"},()=>{let $data_tc$$=JSON.parse(JSON.stringify($ps$$)).map($p$$=>{$p$$.ma_phi="#tc#";$p$$.ten_phi=$p$$.tien_nt>0?"D\u00f2ng ti\u1ec1n v\u00e0o":"D\u00f2ng ti\u1ec1n ra";return $p$$});$ps$$=$ps$$.concat($data_tc$$);$ps$$.groupBy($baocaotheo$$.concat(["loai"]),["tien","tien_nt","tien_kh","tien_kh_nt"],($error$$,$rs$$)=>{if($error$$)return $callback$$($error$$); $rs$$.forEach(function($r$$){$r$$.bold=$r$$.ma_phi==="#tc#"?!0:!1;$r$$.sysorder=$r$$.tien_nt>0?3:5;$r$$.bold&&--$r$$.sysorder});$callback$$(null,$rs$$)})})})},ps:$callback$$=>{const $query$$={id_app:$condition$$.id_app,tk:{$regex:"^"+$condition$$.tk,$options:"i"},ma_dvcs:{$regex:$condition$$.ma_dvcs,$options:"i"},ngay_ct:{$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay}};$condition$$.ma_phi&&($query$$.ma_phi=$condition$$.ma_phi);Vsocai.find($query$$,($error$$,$ps$$)=>{if($error$$)return $callback$$($error$$); $ps$$.forEach($p$$=>{let $m_ngay_ct$$=moment($p$$.ngay_ct);$p$$.thang=$m_ngay_ct$$.month()+1;$p$$.nam=$m_ngay_ct$$.year();$p$$.tuan=$m_ngay_ct$$.week();$p$$.quy=$m_ngay_ct$$.quarter();$p$$.tien=$p$$.ps_no-$p$$.ps_co;$p$$.tien_nt=$p$$.ps_no_nt-$p$$.ps_co_nt;$p$$.tien_kh=0;$p$$.tien_kh_nt=0;$p$$.sysorder=$p$$.tien_nt>0?3:5;$p$$.loai=$p$$.tien_nt>0?"V":"R"});$ps$$.joinModel2($req$$.query.id_app,dmphi,{where:"ma_phi",fields:"ten_phi"},()=>{let $data_tc$$=JSON.parse(JSON.stringify($ps$$)).map($p$$=>{$p$$.ma_phi= "#tc#";$p$$.ten_phi=$p$$.tien_nt>0?"D\u00f2ng ti\u1ec1n v\u00e0o":"D\u00f2ng ti\u1ec1n ra";return $p$$});$ps$$=$ps$$.concat($data_tc$$);$ps$$.groupBy($baocaotheo$$.concat(["loai"]),["tien","tien_nt","tien_kh","tien_kh_nt"],($error$$,$rs$$)=>{if($error$$)return $callback$$($error$$);$rs$$.forEach(function($r$$){$r$$.bold=$r$$.ma_phi==="#tc#"?!0:!1;$r$$.sysorder=$r$$.tien_nt>0?3:5;$r$$.bold&&--$r$$.sysorder});$callback$$(null,$rs$$)})})},{groupBy:!0,sortData:!0,model:$condition$$.model_socai})}},($error$$, $results$$)=>{if($error$$)return $callback$$($error$$);let $data$$=$results$$.ps.concat($results$$.dk).concat($results$$.kh);$data$$.filter($d$$=>$d$$.ma_phi!=="#tc#").groupBy([$condition$$.reportBy||"tuan","nam"],["tien","tien_nt","tien_kh","tien_kh_nt"],($e$$,$ck$$)=>{$ck$$.forEach($r$$=>{$r$$.sysorder=9;$r$$.ten_phi="Cu\u1ed1i k\u1ef3";$r$$.ma_phi="#ck#";$r$$.systotal=1;$r$$.bold=!0;$r$$.loai="#ck#"});$data$$=$data$$.concat($ck$$).sort(($a$$,$b$$)=>$a$$[$condition$$.reportBy||"tuan"]*1E3+$a$$.nam- ($b$$[$condition$$.reportBy||"tuan"]*1E3+$b$$.nam));$data$$.forEach($d$$=>{$d$$.pv_column=$baocaotheos$$[$condition$$.reportBy||"tuan"]+" "+$d$$[$condition$$.reportBy||"tuan"]+"/"+$d$$.nam});$data$$.pivot(["ma_phi","ten_phi","bold","sysorder"],"pv_column",["tien","tien_nt","tien_kh","tien_kh_nt"],($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})})})})};