flexbiz-server
Version:
Flexible Server
8 lines (7 loc) • 3.17 kB
JavaScript
'use strict';const chamcong=global.getModel("chamcong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),dmloaicong=global.getModel("dmloaicong"),controller=require("../../controllers/controllerRPT"),moment=require("moment");
module.exports=function($router$$){new controller($router$$,"kqchamcong",function($req$$,$callback$$){const $id_app$$=$req$$.query.id_app,$query$$={};$query$$.id_app=$id_app$$;$query$$.ngay={$gte:$req$$.query.tu_ngay,$lte:$req$$.query.den_ngay};$req$$.query.ma_nv&&($query$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_bp&&($query$$.ma_bp=$req$$.query.ma_bp);chamcong.find($query$$).lean().exec(async($date$$,$congs$$)=>{if($date$$)return $callback$$($date$$);for(var $cong_empty_date$$ of $congs$$)$cong_empty_date$$.ngay=
moment($cong_empty_date$$.ngay).format("YYYY-MM-DD");await $congs$$.asyncJoinModel2($id_app$$,dmnv,[{where:{ma_nv:"ma_nv"},fields:["ten_nv","bo_phan","ngay_bat_dau_lam"]}]);$congs$$.forEach($item$$=>{($item$$.bo_phan||[]).forEach($bp$$=>{$bp$$.active=!$bp$$.den_ngay||$bp$$.den_ngay>=new Date;$bp$$.active&&($item$$.ma_bp=$item$$.ma_bp||$bp$$.ma_bp,$item$$.ten_bp=$item$$.ten_bp||$bp$$.ten_bp,$item$$.ngay_bd_lam_viec=$bp$$.tu_ngay,$item$$.phu_trach=$item$$.phu_trach||$bp$$.phu_trach,$item$$.chuc_vu=
$item$$.chuc_vu||$bp$$.chuc_vu)});$item$$.ngay_bd_lam_viec=$item$$.ngay_bat_dau_lam||$item$$.ngay_bd_lam_viec||""});await $congs$$.asyncJoinModel2($id_app$$,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);for($date$$=new Date($req$$.query.tu_ngay);$date$$.getTime()<=(new Date($req$$.query.den_ngay)).getTime();){let $_d_f$$=moment(new Date($date$$)).format("YYYY-MM-DD");$congs$$.find($cong$$=>$cong$$.ngay===$_d_f$$)||($cong_empty_date$$={...$congs$$[0]},$cong_empty_date$$.ngay=$_d_f$$,$cong_empty_date$$.ma_loai_cong=
"",$congs$$.push($cong_empty_date$$));$date$$.setDate($date$$.getDate()+1)}$congs$$=$congs$$.sort(($a$$,$b$$)=>(new Date($a$$.ngay)).getTime()-(new Date($b$$.ngay)).getTime());const $loaicong$$=await dmloaicong.find({id_app:$id_app$$}).sort({stt:1}).lean();await $congs$$.asyncJoinModel2($id_app$$,dmloaicong,[{where:{ma_loai_cong:"ma_loai_cong"},fields:["ngay_cong","ngay_phep","ngay_khong_phep","ngay_khong_luong"]}]);$congs$$.pivot(["ma_nv","ten_nv","ma_bp","ten_bp","ngay_bd_lam_viec"],"ngay",["ngay_cong",
"ngay_phep","ngay_khong_luong","ngay_khong_phep"],($e$$,$rs$$)=>{$rs$$.loaicong=$loaicong$$;$rs$$.data.forEach(($r$$,$index$$)=>{$r$$.stt=$index$$+1;$loaicong$$.forEach($l$$=>{$r$$[$l$$.ma_loai_cong]=$congs$$.csum("ngay_cong",{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp,ma_loai_cong:$l$$.ma_loai_cong})+$congs$$.csum("ngay_phep",{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp,ma_loai_cong:$l$$.ma_loai_cong})+$congs$$.csum("ngay_khong_phep",{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp,ma_loai_cong:$l$$.ma_loai_cong})+$congs$$.csum("ngay_khong_luong",
{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp,ma_loai_cong:$l$$.ma_loai_cong})});$r$$.ngay_cong_tinh_luong=$congs$$.csum("ngay_cong",{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp})+$congs$$.csum("ngay_phep",{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp})-$congs$$.csum("ngay_khong_phep",{ma_nv:$r$$.ma_nv,ma_bp:$r$$.ma_bp})});$callback$$(null,$rs$$)},{colMax:["ma_loai_cong"]})})})};