flexbiz-server
Version:
Flexible Server
12 lines (11 loc) • 5.41 kB
JavaScript
const Vsocai=require("../../libs/vsocai"),Customer=global.getModel("customer"),dktk=require("../../libs/dktk"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT");
module.exports=function($router$$){new controller($router$$,"soquy",function($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$$.bu_tru=!0;async.parallel({dk:function($callback$$){let $query$$={};underscore.extend($query$$,$condition$$);$query$$.ngay=$condition$$.tu_ngay;dktk($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$$)},{queryByDateHour:!0})},ps:function($callback$$){let $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_kho&&($query$$.ma_kho=$condition$$.ma_kho);Vsocai.find($query$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$result$$.forEach(function($r$$){$r$$.systotal=0;$r$$.sysorder=5;$r$$.bold=!1});$callback$$(null,$result$$)},{sortData:!0,model:$condition$$.model_socai,queryByDateHour:!0})}},function($error$$,$results$$){if($error$$)return $callback$$($error$$);let $data$$=$results$$.ps;$data$$.push($results$$.dk);$data$$.joinModel2($req$$.query.id_app,Customer,[{where:"ma_kh",
fields:["ten_kh","dia_chi","dien_thoai"]}],function(){var $finalReport_groupedById_report$$=$data$$.reduce(($acc$$,$row$$)=>{if($row$$.sysorder===5&&$row$$.id_ct){var $group_groupKey$$=`${$row$$.id_ct}-${$row$$.tk||""}-${$row$$.ma_kh||""}_${$row$$.dien_giai||""}`;$acc$$[$group_groupKey$$]||($acc$$[$group_groupKey$$]={...$row$$,ps_no:0,ps_co:0,tk_du:new Set});$group_groupKey$$=$acc$$[$group_groupKey$$];$group_groupKey$$.ps_no+=$row$$.ps_no;$group_groupKey$$.ps_co+=$row$$.ps_co;$row$$.tk_du&&$group_groupKey$$.tk_du.add($row$$.tk_du)}return $acc$$},
{}),$groupedRows_r_tong_so_ck_nt$$=Object.values($finalReport_groupedById_report$$).map($group$$=>{$group$$.tk_du=Array.from($group$$.tk_du).join(", ");const $diff$$=$group$$.ps_no-$group$$.ps_co,$diff_nt$$=$group$$.ps_no_nt-$group$$.ps_co_nt;$diff$$>0?($group$$.ps_no=$diff$$,$group$$.ps_co=0):($group$$.ps_no=0,$group$$.ps_co=Math.abs($diff$$));$diff_nt$$>0?($group$$.ps_no_nt=$diff_nt$$,$group$$.ps_co_nt=0):($group$$.ps_no_nt=0,$group$$.ps_co_nt=Math.abs($diff_nt$$));return $group$$});$finalReport_groupedById_report$$=
[...$data$$.filter($row$$=>$row$$.sysorder!==5),...$groupedRows_r_tong_so_ck_nt$$];$groupedRows_r_tong_so_ck_nt$$={systotal:1,sysorder:6,bold:!0,dien_giai:"T\u1ed5ng c\u1ed9ng ph\u00e1t sinh",ps_no:$groupedRows_r_tong_so_ck_nt$$.csum("ps_no"),ps_co:$groupedRows_r_tong_so_ck_nt$$.csum("ps_co"),ps_no_nt:$groupedRows_r_tong_so_ck_nt$$.csum("ps_no_nt"),ps_co_nt:$groupedRows_r_tong_so_ck_nt$$.csum("ps_co_nt")};$finalReport_groupedById_report$$.push($groupedRows_r_tong_so_ck_nt$$);$finalReport_groupedById_report$$.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});$groupedRows_r_tong_so_ck_nt$$=$finalReport_groupedById_report$$.csum("ps_no_nt",{systotal:1})-$finalReport_groupedById_report$$.csum("ps_co_nt",{systotal:1});let $so_ck$$=$finalReport_groupedById_report$$.csum("ps_no",{systotal:1})-$finalReport_groupedById_report$$.csum("ps_co",{systotal:1}),$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};
$groupedRows_r_tong_so_ck_nt$$>0&&($dong_cuoi_ky$$.ps_no_nt=$groupedRows_r_tong_so_ck_nt$$);$so_ck$$>0&&($dong_cuoi_ky$$.ps_no=$so_ck$$);$groupedRows_r_tong_so_ck_nt$$<0&&($dong_cuoi_ky$$.ps_co_nt=Math.abs($groupedRows_r_tong_so_ck_nt$$));$so_ck$$<0&&($dong_cuoi_ky$$.ps_co=Math.abs($so_ck$$));$finalReport_groupedById_report$$.push($dong_cuoi_ky$$);$finalReport_groupedById_report$$=$finalReport_groupedById_report$$.sort(($a$$,$b$$)=>{var $date2Diff_dateDiff_soCtDiff_sysorderDiff$$=$a$$.sysorder-$b$$.sysorder;
if($date2Diff_dateDiff_soCtDiff_sysorderDiff$$!==0)return $date2Diff_dateDiff_soCtDiff_sysorderDiff$$;$date2Diff_dateDiff_soCtDiff_sysorderDiff$$=new Date($a$$.ngay_ct_full)-new Date($b$$.ngay_ct_full);if($date2Diff_dateDiff_soCtDiff_sysorderDiff$$!==0)return $date2Diff_dateDiff_soCtDiff_sysorderDiff$$;$date2Diff_dateDiff_soCtDiff_sysorderDiff$$=new Date($a$$.date_created)-new Date($b$$.date_created);if($date2Diff_dateDiff_soCtDiff_sysorderDiff$$!==0)return $date2Diff_dateDiff_soCtDiff_sysorderDiff$$;
$date2Diff_dateDiff_soCtDiff_sysorderDiff$$=$a$$.so_ct.localeCompare($b$$.so_ct);return $date2Diff_dateDiff_soCtDiff_sysorderDiff$$!==0?$date2Diff_dateDiff_soCtDiff_sysorderDiff$$:($b$$.ps_no>0)-($a$$.ps_no>0)});let $t_ps_no$$=0,$t_ps_co$$=0;$finalReport_groupedById_report$$.forEach(function($r$$){$t_ps_no$$+=$r$$.ps_no;$t_ps_co$$+=$r$$.ps_co;$r$$.bold||($r$$.du=$t_ps_no$$-$t_ps_co$$)});$callback$$(null,$finalReport_groupedById_report$$)})})})};