flexbiz-server 12.6.11 → 12.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -3
- package/server/app.js +11 -10
- package/server/auths/local.js +6 -6
- package/server/cluster.js +11 -12
- package/server/controllers/controller.js +14 -3
- package/server/controllers/controllerRPT.js +4 -4
- package/server/controllers/controllerUtils.js +12 -12
- package/server/controllers/createHandler.js +20 -21
- package/server/controllers/deleteHandler.js +3 -3
- package/server/controllers/findHandler.js +49 -48
- package/server/controllers/updateHandler.js +25 -26
- package/server/controllers/viewHandler.js +14 -14
- package/server/flow/handlers.js +2 -2
- package/server/flow/nodes/aiAnalysis.js +7 -7
- package/server/flow/nodes/checkAction.js +7 -0
- package/server/flow/nodes/email.js +7 -8
- package/server/flow/utils.js +58 -1
- package/server/global.js +1 -1
- package/server/libs/WorkerStaticPool.js +19 -18
- package/server/libs/cdpskh.js +3 -2
- package/server/libs/cdpstk.js +11 -11
- package/server/libs/cktk.js +3 -3
- package/server/libs/ckvt.js +10 -10
- package/server/libs/ckvtnpp.js +6 -5
- package/server/libs/ckvttt.js +5 -5
- package/server/libs/ctvt.js +6 -6
- package/server/libs/dkcn.js +1 -1
- package/server/libs/dktk.js +4 -3
- package/server/libs/docs.js +31 -25
- package/server/libs/dtbanletheosp.js +4 -1
- package/server/libs/email.js +2 -2
- package/server/libs/executiveDashboard.js +8 -0
- package/server/libs/getGiaban.js +2 -2
- package/server/libs/kpistatus.js +38 -36
- package/server/libs/kqchamcong.js +12 -0
- package/server/libs/kqhdkd.js +8 -0
- package/server/libs/post-book.js +4 -3
- package/server/libs/post-socai.js +2 -2
- package/server/libs/post-sokho.js +5 -5
- package/server/libs/redis-cache.js +0 -0
- package/server/libs/sctcnkh.js +18 -0
- package/server/libs/sessionContext.js +6 -11
- package/server/libs/socaitk.js +9 -0
- package/server/libs/thnxt.js +2 -1
- package/server/libs/tinhgiatb.js +4 -4
- package/server/libs/tuoinophaithu.js +11 -10
- package/server/libs/tuoinophaitra.js +12 -10
- package/server/libs/utils.js +8 -4
- package/server/libs/vectorService.js +12 -8
- package/server/models/actionLog.js +2 -0
- package/server/models/aimemory.js +1 -0
- package/server/models/app.js +3 -2
- package/server/models/approve.js +4 -4
- package/server/models/chat_message.js +2 -0
- package/server/models/chat_session.js +2 -0
- package/server/models/checkin.js +2 -2
- package/server/models/chitietluongds.js +4 -3
- package/server/models/customer.js +8 -9
- package/server/models/data_list_config.js +2 -2
- package/server/models/dmchietkhau.js +3 -4
- package/server/models/dmchietkhauhd.js +3 -4
- package/server/models/dmdiemthuong.js +2 -4
- package/server/models/dmhoahonghd.js +2 -3
- package/server/models/dmhoahongnpp.js +2 -3
- package/server/models/dmletet.js +2 -2
- package/server/models/dmphatdichvu.js +1 -2
- package/server/models/filechunk.js +2 -2
- package/server/models/hd2.js +9 -11
- package/server/models/hd3.js +10 -11
- package/server/models/listinfo.js +3 -1
- package/server/models/pc0.js +4 -4
- package/server/models/pn1.js +9 -11
- package/server/models/pn2.js +3 -3
- package/server/models/pnc.js +9 -10
- package/server/models/pnh.js +5 -6
- package/server/models/pnk.js +7 -7
- package/server/models/pxc.js +9 -10
- package/server/models/pxh.js +6 -7
- package/server/models/pxk.js +7 -8
- package/server/models/schedule.js +17 -16
- package/server/models/sokho.js +10 -11
- package/server/models/step.js +1 -1
- package/server/modules/lists/bg-cdvt.js +1 -1
- package/server/modules/lists/bg-cdvtnpp.js +1 -1
- package/server/modules/lists/ls-chat_session.js +5 -0
- package/server/modules/lists/ls-checkin.js +11 -12
- package/server/modules/lists/ls-chitietluongds.js +2 -2
- package/server/modules/lists/ls-customer.js +20 -20
- package/server/modules/lists/ls-dmnv.js +12 -11
- package/server/modules/lists/ls-file.js +5 -5
- package/server/modules/lists/ls-mailsent.js +3 -3
- package/server/modules/lists/ls-warranty.js +3 -4
- package/server/modules/reports/calc-tinhluong.js +42 -40
- package/server/modules/reports/rp-dtbanlekempk.js +1 -1
- package/server/modules/reports/rp-dtbanletheoctkempk.js +13 -13
- package/server/modules/reports/rp-kgchamcong.js +1 -12
- package/server/modules/reports/rp-kqhdkd.js +1 -7
- package/server/modules/reports/rp-phanbochitienchohoadon.js +1 -1
- package/server/modules/reports/rp-ptcttct.js +2 -2
- package/server/modules/reports/rp-sctcnkh.js +4 -19
- package/server/modules/reports/rp-socaitk.js +1 -8
- package/server/modules/systems/sys-app.js +20 -19
- package/server/modules/vouchers/vo-hd2.js +71 -85
- package/server/modules/vouchers/vo-hd3.js +15 -21
- package/server/modules/vouchers/vo-pbl.js +48 -48
- package/server/modules/vouchers/vo-pc1.js +11 -11
- package/server/modules/vouchers/vo-pc2.js +13 -12
- package/server/modules/vouchers/vo-pgh.js +12 -15
- package/server/modules/vouchers/vo-pn1.js +27 -33
- package/server/modules/vouchers/vo-pnc.js +14 -15
- package/server/modules/vouchers/vo-pnh.js +12 -15
- package/server/modules/vouchers/vo-pnk.js +11 -15
- package/server/modules/vouchers/vo-po1.js +0 -0
- package/server/modules/vouchers/vo-pxc.js +24 -22
- package/server/modules/vouchers/vo-pxh.js +13 -22
- package/server/modules/vouchers/vo-pxk.js +11 -16
- package/server/route.js +32 -32
- package/server/workers/inputWorker.js +8 -8
- package/server/workers/reportWorker.js +3 -4
- package/server/workers/sendEmail.js +11 -11
- package/server/workers/worker-utils.js +3 -1
- package/server/actions/mailtemplate.js +0 -142
- package/server/actions/schedule.js +0 -23
- package/server/libs/schedule.js +0 -18
- package/server/models/bds_area.js +0 -4
- package/server/models/bds_block.js +0 -3
- package/server/models/bds_building.js +0 -4
- package/server/models/bds_floor.js +0 -3
- package/server/models/bds_floordetail.js +0 -9
- package/server/models/bds_nhadat.js +0 -13
- package/server/models/bds_nhadat_moigioi_ban.js +0 -3
- package/server/models/bds_nhomnhadat.js +0 -4
- package/server/models/bds_phanloainhadat.js +0 -3
- package/server/models/campaign.js +0 -6
- package/server/models/form.js +0 -3
- package/server/models/formvalue.js +0 -3
- package/server/models/hlink.js +0 -2
- package/server/models/hlinkvalue.js +0 -2
- package/server/models/kbm_bcdkt.js +0 -4
- package/server/models/kbm_kqhdkd.js +0 -3
- package/server/models/kbm_lcttgt.js +0 -5
- package/server/models/kbm_lctttt.js +0 -4
- package/server/models/kbm_pttct.js +0 -4
- package/server/models/kbm_tkgtgt.js +0 -5
- package/server/models/mailschedule.js +0 -2
- package/server/models/waitevent.js +0 -2
- package/server/modules/lists/ls-bds_area.js +0 -3
- package/server/modules/lists/ls-bds_block.js +0 -1
- package/server/modules/lists/ls-bds_building.js +0 -3
- package/server/modules/lists/ls-bds_dmnhbds.js +0 -6
- package/server/modules/lists/ls-bds_floor.js +0 -2
- package/server/modules/lists/ls-bds_floordetail.js +0 -19
- package/server/modules/lists/ls-bds_nhadat.js +0 -19
- package/server/modules/lists/ls-bds_nhadat_moigioi_ban.js +0 -9
- package/server/modules/lists/ls-bds_nhomnhadat.js +0 -1
- package/server/modules/lists/ls-bds_phanloainhadat.js +0 -1
- package/server/modules/lists/ls-campaign.js +0 -1
- package/server/modules/lists/ls-dmnhnd.js +0 -1
- package/server/modules/lists/ls-formvalue.js +0 -1
- package/server/modules/lists/ls-hlink.js +0 -1
- package/server/modules/lists/ls-hlinkvalue.js +0 -1
- package/server/modules/lists/ls-mailschedule.js +0 -7
- package/server/modules/lists/ls-waitevent.js +0 -1
- package/server/modules/public/form.js +0 -7
- package/server/modules/public/hlink.js +0 -3
|
@@ -14,46 +14,48 @@ $tu_ngay$$.getTime()||$nv$$.ngay_nghi_viec&&$nv$$.ngay_nghi_viec.getTime()<$den_
|
|
|
14
14
|
0,$nv$$.luong_binh_quan_ngay=$nv$$.tong_ngay_cong_tinh_luong?Math.roundBy($nv$$.luong_theo_ngay_cong/$nv$$.tong_ngay_cong_tinh_luong):0,$nv$$.luong_thang=$nv$$.tong_tien_luong_tg;else{$nv$$.ct_luong_tg=$nv$$.ct_luong_tg.filter($c$$=>$c$$.loai!="TC");$nv$$.ct_luong_tg.push({loai:"LCB",dien_giai:"L\u01b0\u01a1ng c\u01a1 b\u1ea3n th\u00e1ng",so_luong:1,don_gia:$nv$$.luong_co_ban,thanh_tien:$nv$$.luong_co_ban});let $tien_tang_ca$$=$nv$$.luong_tang_ca,$tien_tru$$=Math.roundBy($nv$$.don_gia_binh_quan_chuan*
|
|
15
15
|
$nv$$.tong_ngay_khong_luong);$tien_tru$$>0&&$nv$$.ct_luong_tg.push({loai:"TRU",dien_giai:"Tr\u1eeb l\u01b0\u01a1ng ngh\u1ec9",so_luong:$nv$$.tong_ngay_khong_luong,don_gia:-$nv$$.don_gia_binh_quan_chuan,thanh_tien:-$tien_tru$$});$nv$$.luong_binh_quan_ngay=$nv$$.don_gia_binh_quan_chuan;$nv$$.tru_luong=$tien_tru$$;$nv$$.luong_thang=$nv$$.luong_co_ban+$tien_tang_ca$$-$tien_tru$$}else $nv$$.luong_thang=$nv$$.luong_co_ban,$nv$$.ct_luong_tg=[{loai:"LCB",dien_giai:"L\u01b0\u01a1ng c\u1ee9ng (kh\u00f4ng ch\u1ea5m c\u00f4ng)",
|
|
16
16
|
so_luong:1,don_gia:$nv$$.luong_co_ban,thanh_tien:$nv$$.luong_co_ban}];$nv$$.luong_bhxh_calculator=$condition$$;return $nv$$},calculateSalesBasedSalary=async($nv$$,$condition$$,$data_tinh_luong_ds_storage$$)=>{let {id_app:$id_app$$,tu_ngay:$tu_ngay$$,den_ngay:$den_ngay$$}=$condition$$,$id_used$$=[];var $csluongtheods_query_luong_sl$$={id_app:$id_app$$,status:!0,$or:[{ds_nv:$nv$$.ma_nv},{ds_bp:$nv$$.ma_bp}]};$csluongtheods_query_luong_sl$$=await global.getModel("csluongtheods").find($csluongtheods_query_luong_sl$$).lean();
|
|
17
|
-
$csluongtheods_query_luong_sl$$.sort(($a$$,$b$$)=>{$
|
|
18
|
-
|
|
19
|
-
($
|
|
20
|
-
|
|
21
|
-
$csluong$$.
|
|
22
|
-
$
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
$data_tinh_luong_ds_storage$$.push(
|
|
26
|
-
|
|
27
|
-
$
|
|
28
|
-
$s$$.cong_thuc
|
|
29
|
-
$
|
|
30
|
-
|
|
31
|
-
0
|
|
32
|
-
$nv$$.
|
|
33
|
-
$
|
|
34
|
-
$
|
|
35
|
-
$
|
|
36
|
-
{
|
|
37
|
-
$
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
$tien_pc$$=Math.
|
|
41
|
-
$
|
|
42
|
-
$
|
|
43
|
-
|
|
44
|
-
0)
|
|
45
|
-
$
|
|
46
|
-
$nv$$.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
$
|
|
56
|
-
|
|
17
|
+
$csluongtheods_query_luong_sl$$.sort(($a$$,$b$$)=>{const $getPriorityScore$$=$cs$$=>{let $score$$=0;Array.isArray($cs$$.ds_ma_kh)&&$cs$$.ds_ma_kh.length>0&&($score$$+=1E4);$cs$$.nh_kh3&&($score$$+=5E3);$cs$$.nh_kh2&&($score$$+=4E3);$cs$$.nh_kh&&($score$$+=3E3);Array.isArray($cs$$.ds_ma_vt)&&$cs$$.ds_ma_vt.length>0&&($score$$+=1E3);$cs$$.ma_nvt3&&($score$$+=500);$cs$$.ma_nvt2&&($score$$+=400);$cs$$.ma_nvt&&($score$$+=300);Array.isArray($cs$$.ds_loai_phuong_tien)&&$cs$$.ds_loai_phuong_tien.length>0&&
|
|
18
|
+
($score$$+=100);return $score$$};return $getPriorityScore$$($b$$)-$getPriorityScore$$($a$$)});for(let $csluong$$ of $csluongtheods_query_luong_sl$$){var $data_sokho_ds_ct_query_san_luong$$=($csluong$$.ds_ma_ct||[]).filter($c$$=>$c$$).map($c$$=>$c$$.toUpperCase());$data_sokho_ds_ct_query_san_luong$$={id_app:$id_app$$,ngay_ct:{$gte:$tu_ngay$$,$lte:$den_ngay$$},$or:[{[$csluong$$.doi_tuong_nhan_vien]:$nv$$.ma_nv},{phu_xe:$nv$$.ma_nv}],ma_ct:{$in:$data_sokho_ds_ct_query_san_luong$$}};$csluong$$.cv_kho||
|
|
19
|
+
($data_sokho_ds_ct_query_san_luong$$._id={$nin:$id_used$$});if($csluong$$.ds_ma_vt?.length>0)$data_sokho_ds_ct_query_san_luong$$.ma_vt={$in:$csluong$$.ds_ma_vt};else if($csluong$$.ma_nvt||$csluong$$.ma_nvt2||$csluong$$.ma_nvt3){var $ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$={id_app:$id_app$$};$csluong$$.ma_nvt&&($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$.ma_nvt=$csluong$$.ma_nvt);$csluong$$.ma_nvt2&&($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$.ma_nvt2=$csluong$$.ma_nvt2);$csluong$$.ma_nvt3&&($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$.ma_nvt3=
|
|
20
|
+
$csluong$$.ma_nvt3);$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$=(await global.getModel("dmvt").find($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$,{ma_vt:1}).lean()).map($v$$=>$v$$.ma_vt);$data_sokho_ds_ct_query_san_luong$$.ma_vt={$in:$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$}}if($csluong$$.ds_ma_kh?.length>0)$data_sokho_ds_ct_query_san_luong$$.ma_kh=$csluong$$.loai_tru_kh?{$nin:$csluong$$.ds_ma_kh}:{$in:$csluong$$.ds_ma_kh};else if($csluong$$.nh_kh||$csluong$$.nh_kh2||$csluong$$.nh_kh3)$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$=
|
|
21
|
+
{id_app:$id_app$$},$csluong$$.nh_kh&&($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$.nh_kh=$csluong$$.nh_kh),$csluong$$.nh_kh2&&($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$.nh_kh2=$csluong$$.nh_kh2),$csluong$$.nh_kh3&&($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$.nh_kh3=$csluong$$.nh_kh3),$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$=(await global.getModel("customer").find($ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$,{ma_kh:1}).lean()).map($v$$=>$v$$.ma_kh),$data_sokho_ds_ct_query_san_luong$$.ma_kh={$in:$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$};
|
|
22
|
+
$csluong$$.ds_loai_phuong_tien?.length>0&&($data_sokho_ds_ct_query_san_luong$$.loai_phuong_tien={$in:$csluong$$.ds_loai_phuong_tien});$data_sokho_ds_ct_query_san_luong$$=await global.getModel("sokho").find($data_sokho_ds_ct_query_san_luong$$).lean();$csluong$$.cv_kho||($id_used$$=[...$id_used$$,...$data_sokho_ds_ct_query_san_luong$$.map($d$$=>$d$$._id.toString())]);$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$=0;if($csluong$$.tinh_theo_tong_ds){let $tong_doanh_so_quydoi$$=$data_sokho_ds_ct_query_san_luong$$.map($s$$=>
|
|
23
|
+
{var $cong_thuc_sl_goc$$=$s$$[$csluong$$.field_sl]||0;let $ty_le_phu$$=$csluong$$.ty_le_nv_phu_giup||0;let $dien_giai$$;if($s$$.phu_xe&&$s$$.phu_xe.trim()!==""&&$s$$.phu_xe!==$s$$[$csluong$$.doi_tuong_nhan_vien]){var $ds_thuc_phan_phu_xe$$=Math.roundBy($cong_thuc_sl_goc$$*$ty_le_phu$$/100);$s$$.phu_xe==$nv$$.ma_nv?($dien_giai$$="Ph\u1ee5 xe",$cong_thuc_sl_goc$$=`${$cong_thuc_sl_goc$$} * ${$ty_le_phu$$}%`):($ds_thuc_phan_phu_xe$$=$cong_thuc_sl_goc$$-$ds_thuc_phan_phu_xe$$,$dien_giai$$="L\u00e1i ch\u00ednh",
|
|
24
|
+
$cong_thuc_sl_goc$$=`${$cong_thuc_sl_goc$$} - (${$cong_thuc_sl_goc$$} * ${$ty_le_phu$$}%)`)}else $ds_thuc_phan_phu_xe$$=$cong_thuc_sl_goc$$,$dien_giai$$="L\u00e1i ch\u00ednh (100%)",$cong_thuc_sl_goc$$=`${$cong_thuc_sl_goc$$}`;$s$$.ma_nv=$nv$$.ma_nv;$s$$.dien_giai_luong=$dien_giai$$;$s$$.cong_thuc_doanh_so=$cong_thuc_sl_goc$$;return $s$$.doanh_so_quydoi=$ds_thuc_phan_phu_xe$$}).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$dinh_muc$$=$csluong$$.ds_yeu_cau||1,$don_gia$$=$csluong$$.don_gia_luong||0;$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$=
|
|
25
|
+
Math.trunc($tong_doanh_so_quydoi$$/$dinh_muc$$)*$don_gia$$;$data_tinh_luong_ds_storage$$&&($data_tinh_luong_ds_storage$$.push({id_app:$condition$$.id_app,thang:$condition$$.thang,nam:$condition$$.nam,ma_nv:$nv$$.ma_nv,ngay_ct:$condition$$.den_ngay,so_ct:"TONG_HOP",id_cs_luong:$csluong$$._id.toString(),ten_cs_luong:$csluong$$.ten_cs,dien_giai_luong:`T\u1ed5ng h\u1ee3p l\u01b0\u01a1ng theo DS (Ch\u00ednh s\u00e1ch: ${$csluong$$.ten_cs||"..."})`,cong_thuc:`(${$tong_doanh_so_quydoi$$} / ${$dinh_muc$$}) * ${$don_gia$$}`,
|
|
26
|
+
doanh_so:$tong_doanh_so_quydoi$$,luong_theo_ds:$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$}),$data_tinh_luong_ds_storage$$.push(...$data_sokho_ds_ct_query_san_luong$$.map($s$$=>({...$s$$,id_app:$condition$$.id_app,thang:$condition$$.thang,nam:$condition$$.nam,luong_theo_ds:0,ghi_chu:"Chi ti\u1ebft th\u00e0nh ph\u1ea7n c\u1ee7a l\u01b0\u01a1ng t\u1ed5ng h\u1ee3p"}))))}else $ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$=$data_sokho_ds_ct_query_san_luong$$.map($s$$=>{let $sl_goc$$=$s$$[$csluong$$.field_sl]||0,$ty_le_phu$$=
|
|
27
|
+
$s$$.phu_xe?$csluong$$.ty_le_nv_phu_giup||0:0,$dinh_muc$$=$csluong$$.ds_yeu_cau||1,$don_gia$$=$csluong$$.don_gia_luong||0,$luong_goc$$=Math.trunc($sl_goc$$/$dinh_muc$$)*$don_gia$$;let $dien_giai$$,$cong_thuc$$;$csluong$$.nh_kh3=="696afe74baac18c80216d7df"&&Logger.warn(JSON.stringify({don_gia:$don_gia$$,luong_goc:$luong_goc$$}));if($s$$.phu_xe&&$s$$.phu_xe.trim()!==""&&$s$$.phu_xe!==$s$$[$csluong$$.doi_tuong_nhan_vien]){var $luong_thuc_nhan_tien_phu_xe$$=Math.roundBy($luong_goc$$*$ty_le_phu$$/100);
|
|
28
|
+
$s$$.phu_xe==$nv$$.ma_nv?($dien_giai$$=`Ph\u1ee5 xe (${$ty_le_phu$$}%)`,$cong_thuc$$=`(${$sl_goc$$}/${$dinh_muc$$}*${$don_gia$$}) * ${$ty_le_phu$$}%`):($luong_thuc_nhan_tien_phu_xe$$=$luong_goc$$-$luong_thuc_nhan_tien_phu_xe$$,$dien_giai$$=`L\u00e1i ch\u00ednh (${$ty_le_phu$$}%)`,$cong_thuc$$=`(${$sl_goc$$}/${$dinh_muc$$}*${$don_gia$$}) - Ph\u1ee5 xe`)}else $luong_thuc_nhan_tien_phu_xe$$=$luong_goc$$,$dien_giai$$="L\u00e1i ch\u00ednh (100%)",$cong_thuc$$=`${$sl_goc$$}/${$dinh_muc$$} * ${$don_gia$$}`;
|
|
29
|
+
$s$$.ma_nv=$nv$$.ma_nv;$s$$.id_app=$condition$$.id_app;$s$$.thang=$condition$$.thang;$s$$.nam=$condition$$.nam;$s$$.luong_theo_ds=$luong_thuc_nhan_tien_phu_xe$$;$s$$.luong_goc=$luong_goc$$;$s$$.dien_giai_luong=$dien_giai$$;$s$$.id_cs_luong=$csluong$$._id.toString();$s$$.ten_cs_luong=$csluong$$.ten_cs;$s$$.cong_thuc=$cong_thuc$$;$s$$.doanh_so=$sl_goc$$;$s$$.ds_yeu_cau=$dinh_muc$$;$s$$.don_gia_luong=$don_gia$$;$s$$.ty_le_nv_phu_giup=$ty_le_phu$$;delete $s$$._id;delete $s$$.__v;$data_tinh_luong_ds_storage$$&&
|
|
30
|
+
$data_tinh_luong_ds_storage$$.push($s$$);return $luong_thuc_nhan_tien_phu_xe$$}).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$csluong$$.luong=$ds_ma_kh_ds_ma_vt_luong_theo_ds_q_q$$}$nv$$.ct_luong_theo_ds=$csluongtheods_query_luong_sl$$.filter($c$$=>$c$$.luong);$nv$$.luong_theo_ds=$nv$$.ct_luong_theo_ds.map($d$$=>$d$$.luong).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$nv$$.luong_thang=Number($nv$$.luong_thang||0)+Number($nv$$.luong_theo_ds)},calculateInsurance=($nv$$,$condition$jscomp$4_tu_ngay$$,$cac_khoan_giam_tru$$)=>
|
|
31
|
+
{if($nv$$.thu_viec||$nv$$.luong_ctv)$nv$$.gt_bhxh=0,$nv$$.cty_bhxh=0,$nv$$.gt_bhyt=0,$nv$$.cty_bhyt=0,$nv$$.gt_bhtn=0,$nv$$.cty_bhtn=0,$nv$$.gt_kpcd=0,$nv$$.cty_kpcd=0,$nv$$.giam_tru=[],$nv$$.tong_bao_hiem_nv=0,$nv$$.tong_bao_hiem_cty=0;else{({tu_ngay:$condition$jscomp$4_tu_ngay$$}=$condition$jscomp$4_tu_ngay$$);var $luong_bhxh$$=$nv$$.luong_bhxh_calculator;$nv$$.gt_bhxh=0;$nv$$.cty_bhxh=0;$nv$$.gt_bhyt=0;$nv$$.cty_bhyt=0;$nv$$.gt_bhtn=0;$nv$$.cty_bhtn=0;$nv$$.gt_kpcd=0;$nv$$.cty_kpcd=0;var $giam_tru$$=
|
|
32
|
+
[];if(!$nv$$.ngay_tinh_bhxh||moment($nv$$.ngay_tinh_bhxh).startOf("date").toDate().getTime()<=$condition$jscomp$4_tu_ngay$$.getTime())$giam_tru$$=_.cloneDeep($cac_khoan_giam_tru$$).filter($gt$$=>(!$gt$$.ma_nv||$gt$$.ma_nv==0||$gt$$.ma_nv.indexOf($nv$$.ma_nv)>=0)&&(!$gt$$.ma_bp||$gt$$.ma_bp.length==0||$gt$$.ma_bp.indexOf($nv$$.ma_bp)>=0)),$giam_tru$$.forEach($gt$$=>{let $userVal$$=0,$companyVal$$=0;const $calc$$=$typeInfo$$=>{$typeInfo$$&&($userVal$$=Math.roundBy($gt$$.ty_le_nv*$luong_bhxh$$/100),
|
|
33
|
+
$companyVal$$=Math.roundBy($gt$$.ty_le_cty*$luong_bhxh$$/100))};$gt$$.kieu_trich=="BHXH"?($calc$$($nv$$.bhxh),$nv$$.gt_bhxh+=$userVal$$,$nv$$.cty_bhxh+=$companyVal$$):$gt$$.kieu_trich=="BHYT"?($calc$$($nv$$.bhyt),$nv$$.gt_bhyt+=$userVal$$,$nv$$.cty_bhyt+=$companyVal$$):$gt$$.kieu_trich=="BHTN"?($calc$$($nv$$.bhtn),$nv$$.gt_bhtn+=$userVal$$,$nv$$.cty_bhtn+=$companyVal$$):$gt$$.kieu_trich=="KPCD"?($userVal$$=Math.roundBy($gt$$.ty_le_nv*$luong_bhxh$$/100),$companyVal$$=Math.roundBy($gt$$.ty_le_cty*$luong_bhxh$$/
|
|
34
|
+
100),$nv$$.gt_kpcd+=$userVal$$,$nv$$.cty_kpcd+=$companyVal$$):($gt$$.nv=$gt$$.ty_le_nv?Math.roundBy($gt$$.ty_le_nv*$luong_bhxh$$/100):$gt$$.nv||0,$gt$$.cty=$gt$$.ty_le_cty?Math.roundBy($gt$$.ty_le_cty*$luong_bhxh$$/100):$gt$$.cty||0);["BHXH","BHYT","BHTN","KPCD"].includes($gt$$.kieu_trich)&&($gt$$.nv=$userVal$$,$gt$$.cty=$companyVal$$)});$nv$$.giam_tru=$giam_tru$$;$nv$$.tong_bao_hiem_nv=$giam_tru$$.map($g$$=>$g$$.nv).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$nv$$.tong_bao_hiem_cty=$giam_tru$$.map($g$$=>$g$$.cty).reduce(($a$$,
|
|
35
|
+
$b$$)=>$a$$+$b$$,0)}},calculateAllowances=async($nv$$,$condition$$,$csphucap_processed_phu_cap$$)=>{let {id_app:$id_app$$,thang:$thang$$,nam:$nam$$,tu_ngay:$tu_ngay$$,den_ngay:$den_ngay$$,tyGiaMap:$tyGiaMap$$,so_ngay_lam_mot_thang:$so_ngay_lam_mot_thang$$}=$condition$$;const $getTyGia$$=$ma_ma_nt$$=>{if(!$ma_ma_nt$$)return 1;$ma_ma_nt$$=$ma_ma_nt$$.toUpperCase();return $tyGiaMap$$[$ma_ma_nt$$]||1};let $phu_cap_mot_lan$$=[];if(!$condition$$.cac_khoan_phu_cap?.length){$phu_cap_mot_lan$$=await phucap.find({id_app:$id_app$$,
|
|
36
|
+
thang:$thang$$,nam:$nam$$,ma_nv:{$in:["",null,void 0,$nv$$.ma_nv]},ma_bp:{$in:["",null,void 0,$nv$$.ma_bp]}}).lean();$phu_cap_mot_lan$$.forEach($p$$=>{$p$$.dvt="month";let $ty_gia$$=$getTyGia$$($p$$.ma_nt);$p$$.tien_pc=Math.roundBy(($p$$.tien||0)*$ty_gia$$);$p$$.max_mien_thue&&($p$$.max_mien_thue=Math.roundBy($p$$.max_mien_thue*$ty_gia$$))});var $phu_cap_mot_lan_them_query_san_luong$$={id_app:$id_app$$,ma_nv:$nv$$.ma_nv,nxt:2,ma_ct:{$in:["HD2","PBL","SO1"]},ngay_ct:{$gte:$tu_ngay$$,$lte:$den_ngay$$}};
|
|
37
|
+
$phu_cap_mot_lan_them_query_san_luong$$=await global.getModel("sokho").find($phu_cap_mot_lan_them_query_san_luong$$).lean();$phu_cap_mot_lan_them_query_san_luong$$=await $phu_cap_mot_lan_them_query_san_luong$$.asyncGroupBy(["ma_vt"],["sl_xuat"]);await $phu_cap_mot_lan_them_query_san_luong$$.asyncJoinModel2($id_app$$,"dmvt",{where:"ma_vt",fields:["ten_phu_cap_them","ten_vt","luong_tho_theo_ds","ds_yeu_cau"]});$phu_cap_mot_lan_them_query_san_luong$$=$phu_cap_mot_lan_them_query_san_luong$$.filter($d$$=>
|
|
38
|
+
$d$$.luong_tho_theo_ds&&$d$$.ds_yeu_cau&&$d$$.sl_xuat>=$d$$.ds_yeu_cau);$phu_cap_mot_lan_them_query_san_luong$$=$phu_cap_mot_lan_them_query_san_luong$$.map($sl$$=>{let $pc$$={kieu:"2",id_app:$id_app$$,thang:$thang$$,nam:$nam$$,ma_nv:$nv$$.ma_nv,ten_phu_cap:$sl$$.ten_phu_cap_them||$sl$$.ten_vt,dvt:"month"};$pc$$.sl_xuat=$sl$$.sl_xuat;$pc$$.ds_yeu_cau=$sl$$.ds_yeu_cau;$pc$$.tien_pc=$pc$$.tien=Math.trunc($sl$$.sl_xuat/$sl$$.ds_yeu_cau)*$sl$$.luong_tho_theo_ds;return $pc$$});$phu_cap_mot_lan$$=[...$phu_cap_mot_lan$$,
|
|
39
|
+
...$phu_cap_mot_lan_them_query_san_luong$$]}$nv$$.cac_khoan_phat=$phu_cap_mot_lan$$.filter($r$$=>$r$$.tien<0);$nv$$.tien_phat=$nv$$.cac_khoan_phat.map($r$$=>$r$$.tien_pc).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$csphucap_processed_phu_cap$$=[...($nv$$.phu_cap||[]),...($nv$$.phu_cap_theo_bp||[]),...($csphucap_processed_phu_cap$$?.phu_cap||[])].filter($p$$=>$p$$.tu_ngay&&(new Date($p$$.tu_ngay)).getTime()>$den_ngay$$.getTime()||$p$$.den_ngay&&(new Date($p$$.den_ngay)).getTime()<$tu_ngay$$.getTime()?!1:!0).map($r$$=>
|
|
40
|
+
{var $max_mien_thue_vnd_ty_gia$$=$getTyGia$$($r$$.ma_nt);let $tien_pc$$=Math.roundBy(($r$$.tien||0)*$max_mien_thue_vnd_ty_gia$$),$max_phu_cap_vnd$$=$r$$.max_phu_cap?Math.roundBy($r$$.max_phu_cap*$max_mien_thue_vnd_ty_gia$$):0;$max_mien_thue_vnd_ty_gia$$=$r$$.max_mien_thue?Math.roundBy($r$$.max_mien_thue*$max_mien_thue_vnd_ty_gia$$):0;if($r$$.dvt=="date")$tien_pc$$=Math.roundBy($tien_pc$$*$nv$$.so_ngay_tinh_phu_cap);else if($r$$.dvt=="year"){$tien_pc$$=Math.roundBy($tien_pc$$/12);var $da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$=
|
|
41
|
+
$nv$$.tong_ngay_khong_luong;$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$>0&&($da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$=Math.roundBy($tien_pc$$/($so_ngay_lam_mot_thang$$||26)*$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$),$tien_pc$$=Math.max(0,$tien_pc$$-$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$))}else $r$$.dvt!="month"&&$r$$.dvt||($da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$=
|
|
42
|
+
$nv$$.tong_ngay_khong_luong,$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$>0&&($da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$=Math.roundBy($tien_pc$$/($so_ngay_lam_mot_thang$$||26)*$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$),$tien_pc$$=Math.max(0,$tien_pc$$-$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$)));$max_phu_cap_vnd$$>0&&($da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$=
|
|
43
|
+
($condition$$.cac_khoan_phu_cap||[]).filter($p$$=>$p$$.line==$r$$.line).map($r$$=>$r$$.tien_pc||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$tien_pc$$=Math.min($tien_pc$$,$max_phu_cap_vnd$$-$da_phu_cap_so_ngay_tru_so_ngay_tru$jscomp$1_tien_tru_pc_tien_tru_pc$$));$r$$.tien_pc=$tien_pc$$;$r$$.max_mien_thue&&($r$$.max_mien_thue=$max_mien_thue_vnd_ty_gia$$);return $r$$});$nv$$.cac_khoan_phu_cap=[...$csphucap_processed_phu_cap$$,...$phu_cap_mot_lan$$.filter($r$$=>$r$$.tien>0)];$nv$$.tien_phu_cap=$nv$$.cac_khoan_phu_cap.map($r$$=>
|
|
44
|
+
$r$$.tien_pc).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$nv$$.tong_phu_cap=$nv$$.tien_phu_cap+$nv$$.tien_phat},calculateTax=($nv$$,$condition$$)=>{var $phu_cap_mien_thue_tien_thue$$=$nv$$.cac_khoan_phu_cap.filter($p$$=>!$p$$.khong_mien_thue&&$p$$.tien_pc>0).map($r$$=>{let $tien_pc$$=$r$$.tien_pc;if($r$$.max_mien_thue>0){let $da_phu_cap$$=($condition$$.cac_khoan_phu_cap_mien_thue||[]).filter($p$$=>$p$$.line==$r$$.line).map($r$$=>$r$$.tien_pc||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$tien_pc$$=Math.min($tien_pc$$,
|
|
45
|
+
$r$$.max_mien_thue-$da_phu_cap$$)}$r$$.tien_pc=$tien_pc$$;return $r$$});$nv$$.thu_viec||$nv$$.luong_ctv?($phu_cap_mien_thue_tien_thue$$=[],$nv$$.ttncn_gt_phu_thuoc=0,$nv$$.ttncn_gt_tu_thien=0,$nv$$.ttncn_gt_ban_than=0):($nv$$.ttncn_gt_phu_thuoc=Math.roundBy(($nv$$.ttncn_so_nguoi_phu_thuoc||0)*($nv$$.ttncn_muc_gt_phu_thuoc||0)),$nv$$.ttncn_gt_tu_thien=0,$nv$$.ttncn_gt_ban_than=Math.roundBy(($nv$$.ttncn_so_thang_gt_ban_than||1)*($nv$$.ttncn_muc_gt_ban_than||0)));$nv$$.cac_khoan_phu_cap_mien_thue=$phu_cap_mien_thue_tien_thue$$;
|
|
46
|
+
$nv$$.tong_phu_cap_mien_thue=$phu_cap_mien_thue_tien_thue$$.map($r$$=>$r$$.tien_pc).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$nv$$.tong_thu_nhap=$nv$$.luong_thang+$nv$$.tong_phu_cap;$nv$$.luong_tang_ca_mien_thue=Math.roundBy($nv$$.don_gia_binh_quan_chuan*$nv$$.so_luong_ngay_tang_ca_mien_thue);$nv$$.ttncn_tong_thu_nhap_mien_thue=$nv$$.luong_tang_ca_mien_thue+$nv$$.tong_phu_cap_mien_thue;$nv$$.ttncn_tong_giam_tru=$nv$$.ttncn_gt_phu_thuoc+$nv$$.ttncn_gt_tu_thien+$nv$$.tong_bao_hiem_nv+$nv$$.ttncn_gt_ban_than;
|
|
47
|
+
$nv$$.ttncn_thu_nhap_chiu_thue=Math.max($nv$$.tong_thu_nhap-$nv$$.ttncn_tong_thu_nhap_mien_thue-$nv$$.ttncn_tong_giam_tru,0);$nv$$.thu_viec||$nv$$.luong_ctv?$nv$$.ttncn_thu_nhap_chiu_thue>=2E6?($phu_cap_mien_thue_tien_thue$$=Math.roundBy($nv$$.ttncn_thu_nhap_chiu_thue*10/100),$nv$$.ttncn_thue_theo_bac=[{thue_suat:10,tien_thue:$phu_cap_mien_thue_tien_thue$$}]):$nv$$.ttncn_thue_theo_bac=[{thue_suat:0,tien_thue:0}]:$nv$$.ttncn_thue_theo_bac=tinhThueTNCV($nv$$.ttncn_thu_nhap_chiu_thue);$nv$$.ttncn_tong_thue=
|
|
48
|
+
$nv$$.ttncn_thue_theo_bac.map($b$$=>$b$$.tien_thue||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$nv$$.tong_luong=$nv$$.tong_thu_nhap-$nv$$.tong_bao_hiem_nv-$nv$$.ttncn_tong_thue;$nv$$.id_app=$condition$$.id_app;$nv$$.thang=$condition$$.thang;$nv$$.nam=$condition$$.nam;$nv$$.loai_luong=$condition$$.loai_luong},tinhluong=async($condition$$,$callback$$)=>{let {tu_ngay:$tu_ngay$$,den_ngay:$den_ngay$$,id_app:$id_app$$,ma_nv:$ma_nv$$,nv:$nv$$}=$condition$$;const $data_tinh_luong_ds$$=[];var $congs_nv_congs_nvs_fragments_virtual_frag$$=
|
|
49
|
+
await chamcong.find({ma_nv:$ma_nv$$,id_app:$id_app$$,ngay:{$gte:$tu_ngay$$,$lte:$den_ngay$$}}).lean();if($nv$$.cham_cong){var $danh_sach_le_tet_nvs_ready_to_calc$$=await dmletet.find({id_app:$id_app$$}).lean();if($danh_sach_le_tet_nvs_ready_to_calc$$.length>0){let $date$$=new Date($tu_ngay$$),$endDate$$=new Date($den_ngay$$),$startWorkTs$$=$nv$$.ngay_bat_dau_lam?moment($nv$$.ngay_bat_dau_lam).startOf("day").toDate().getTime():0,$endWorkTs$$=$nv$$.ngay_nghi_viec?moment($nv$$.ngay_nghi_viec).endOf("day").toDate().getTime():
|
|
50
|
+
Infinity;for(;$date$$.getTime()<=$endDate$$.getTime();){let $currentDay$$=$date$$.getDate(),$currentMonth$$=$date$$.getMonth()+1,$isHoliday$$=$danh_sach_le_tet_nvs_ready_to_calc$$.find($le$$=>$le$$.ngay==$currentDay$$&&$le$$.thang==$currentMonth$$);if($isHoliday$$&&$isHoliday$$.ma_loai_cong){let $checkTs$$=moment($date$$).startOf("day").toDate().getTime();$checkTs$$>=$startWorkTs$$&&$checkTs$$<=$endWorkTs$$&&($congs_nv_congs_nvs_fragments_virtual_frag$$.find($c$$=>moment($c$$.ngay).format("YYYY-MM-DD")===
|
|
51
|
+
moment($date$$).format("YYYY-MM-DD"))||$congs_nv_congs_nvs_fragments_virtual_frag$$.push({id_app:$id_app$$,ma_nv:$ma_nv$$,ma_bp:$nv$$.ma_bp,ngay:new Date($date$$),ma_loai_cong:$isHoliday$$.ma_loai_cong,loai_don_gia_ngay_cong:"luong_ngay_cong",sl_cong:1,is_virtual_holiday:!0,ten_le:$isHoliday$$.ten_le}))}$date$$.setDate($date$$.getDate()+1)}}}await $congs_nv_congs_nvs_fragments_virtual_frag$$.filter($c$$=>!$c$$.ma_bp).asyncJoinModel2($id_app$$,dmnv,[{where:{ma_nv:"ma_nv"},fields:["ma_bp"]}]);await $congs_nv_congs_nvs_fragments_virtual_frag$$.asyncJoinModel2($id_app$$,
|
|
52
|
+
dmloaicong,[{where:{ma_loai_cong:"ma_loai_cong"},fields:"ngay_cong ngay_phep ngay_khong_phep ngay_khong_luong la_cong_lam_them tinh_phu_cap loai_don_gia_ngay_cong".split(" ")}]);$congs_nv_congs_nvs_fragments_virtual_frag$$.forEach($c$$=>{$c$$.loai_don_gia_ngay_cong&&$c$$.loai_don_gia_ngay_cong!="default"||($c$$.loai_don_gia_ngay_cong="luong_ngay_cong");$c$$.so_ngay_tinh_phu_cap=$c$$.tinh_phu_cap?Math.min($c$$.ngay_cong||0,1):0;$c$$.la_cong_lam_them&&($c$$.ngay_tang_ca=$c$$.ngay_cong,$c$$.ngay_cong=
|
|
53
|
+
0,$c$$.so_luong_ngay_tang_ca_mien_thue=Math.max($c$$.ngay_tang_ca-1,0));$c$$.sl_cong=$c$$.sl_cong||1;"ngay_cong ngay_phep ngay_khong_phep ngay_khong_luong ngay_tang_ca so_ngay_tinh_phu_cap so_luong_ngay_tang_ca_mien_thue".split(" ").forEach($k$$=>$c$$[$k$$]*=$c$$.sl_cong)});$danh_sach_le_tet_nvs_ready_to_calc$$=[];$nv$$.cham_cong?($congs_nv_congs_nvs_fragments_virtual_frag$$=$congs_nv_congs_nvs_fragments_virtual_frag$$.filter($c$$=>$c$$.ma_nv===$ma_nv$$),$danh_sach_le_tet_nvs_ready_to_calc$$=[...$danh_sach_le_tet_nvs_ready_to_calc$$,
|
|
54
|
+
...$congs_nv_congs_nvs_fragments_virtual_frag$$]):($congs_nv_congs_nvs_fragments_virtual_frag$$=generateVirtualTimekeepingForVIP($nv$$,$condition$$),Object.assign($congs_nv_congs_nvs_fragments_virtual_frag$$,$nv$$),$danh_sach_le_tet_nvs_ready_to_calc$$.push($congs_nv_congs_nvs_fragments_virtual_frag$$));$congs_nv_congs_nvs_fragments_virtual_frag$$=await $danh_sach_le_tet_nvs_ready_to_calc$$.asyncGroupBy(["ma_nv","ma_bp","loai_don_gia_ngay_cong"],"ngay_cong ngay_phep ngay_khong_phep ngay_khong_luong ngay_tang_ca so_ngay_tinh_phu_cap so_luong_ngay_tang_ca_mien_thue".split(" "));
|
|
55
|
+
await $congs_nv_congs_nvs_fragments_virtual_frag$$.asyncJoinModel2($id_app$$,dmnv,[{where:{ma_nv:"ma_nv"},fields:"ten_nv ma_kho luong_ngay_cong luong_ngay_cong2 luong_ngay_cong3 luong_co_ban luong_thu_viec thu_viec_den_ngay ngay_bat_dau_lam ngay_nghi_viec luong_bhxh phu_cap cham_cong tinh_luong bhxh bhyt bhtn ttncn_so_nguoi_phu_thuoc ttncn_muc_gt_phu_thuoc ttncn_so_thang_gt_ban_than ttncn_muc_gt_ban_than luong_ctv".split(" ")}]);let $nvs$$=mergeTimekeepingFragments($congs_nv_congs_nvs_fragments_virtual_frag$$,
|
|
56
|
+
$condition$$);await $nvs$$.asyncJoinModel2($id_app$$,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp","tinh_luong_theo_ngay",{phu_cap_theo_bp:"phu_cap"}]}]);let $cac_khoan_giam_tru$$=await ckgtluong.find({id_app:$id_app$$,status:!0}).lean(),$tyGiaMap$$={VND:1};(await global.getModel("currency").find({id_app:$id_app$$}).lean()).forEach($c$$=>{$c$$.ma_nt&&$c$$.ty_gia&&($tyGiaMap$$[$c$$.ma_nt.toUpperCase()]=Number($c$$.ty_gia))});$condition$$.tyGiaMap=$tyGiaMap$$;async.mapLimit($nvs$$,20,async $nv$$=>{try{await calculateTimeBasedSalary($nv$$,
|
|
57
|
+
$condition$$);await calculateSalesBasedSalary($nv$$,$condition$$,$data_tinh_luong_ds$$);calculateInsurance($nv$$,$condition$$,$cac_khoan_giam_tru$$);const $csphucap$$=await global.getModel("csphucap").findOne({id_app:$id_app$$,status:!0,$or:[{ds_nv:$nv$$.ma_nv},{ds_bp:$nv$$.ma_bp}]}).lean();await calculateAllowances($nv$$,$condition$$,$csphucap$$);calculateTax($nv$$,$condition$$);return null}catch($err$$){return $err$$}},async $e$$=>{if($e$$)return $callback$$($e$$);try{await bangtinhluong.create($nvs$$);
|
|
58
|
+
if($data_tinh_luong_ds$$.length>0){const $chitietluongds$$=$data_tinh_luong_ds$$.filter($d$$=>$d$$.luong_theo_ds);await global.getModel("chitietluongds").create($chitietluongds$$)}$callback$$(null,$nvs$$)}catch($e$$){$callback$$($e$$.message)}})};
|
|
57
59
|
module.exports=function($router$$){new controller($router$$,"tinhluong",async($nhanvien_req$$,$callback$$)=>{let $thang$$=Number($nhanvien_req$$.query.thang),$nam$$=Number($nhanvien_req$$.query.nam),$id_app$$=$nhanvien_req$$.query.id_app;if(!$thang$$||!$nam$$)return $callback$$("T\u00ednh n\u0103ng n\u00e0y y\u00eau c\u1ea7u hai tham s\u1ed1 thang v\u00e0 nam");if($thang$$<1||$thang$$>12||$nam$$<1E3||$nam$$>3E3)return $callback$$("Tham s\u1ed1 thang ho\u1eb7c nam kh\u00f4ng ph\u00f9 h\u1ee3p");const $tu_ngay$$=
|
|
58
60
|
moment(new Date($nam$$,$thang$$-1,1)).startOf("month").toDate(),$den_ngay$$=moment($tu_ngay$$).endOf("month").toDate();var $appInfo_query$$=await App.findOne({_id:$id_app$$});if(!$appInfo_query$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $ngay_ks$$=await utils.isBookLocked({id_app:$id_app$$,ngay_ct:$tu_ngay$$});if($ngay_ks$$)return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$$).format("DD/MM/YYYY")}`);const $main_condition$$=
|
|
59
61
|
{tu_ngay:$tu_ngay$$,den_ngay:$den_ngay$$,id_app:$id_app$$,thang:$thang$$,nam:$nam$$,so_ngay_lam_mot_thang:$nhanvien_req$$.query.so_ngay_lam_mot_thang||$appInfo_query$$.so_ngay_lam_mot_thang||24,ma_bp:$nhanvien_req$$.query.ma_bp};$appInfo_query$$={id_app:$nhanvien_req$$.query.id_app,tinh_luong:!0,$or:[{ngay_nghi_viec:{$exists:!1}},{ngay_nghi_viec:null},{ngay_nghi_viec:{$gt:$tu_ngay$$}}]};$nhanvien_req$$.query.ma_nv&&($appInfo_query$$.ma_nv=$nhanvien_req$$.query.ma_nv);$main_condition$$.ma_bp&&($appInfo_query$$.ma_bp=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const dtbanletheosp=require("../../libs/dtbanletheosp"),controller=require("../../controllers/controllerRPT");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"dtbanlekempk",async function($req$$,$callback$$){const $condition$$=$req$$.query;try{$condition$$.den_ngay=$condition$$.den_gio||$condition$$.den_ngay;$condition$$.tu_ngay=$condition$$.tu_gio||$condition$$.tu_ngay;const $data$$=await dtbanletheosp($condition$$);await $data$$.asyncJoinModel2($condition$$.id_app,"dmvt",{where:"ma_vt",fields:["ma_nvt","ma_nvt2","ma_nvt3","ma_nvt4"]});await $data$$.filter($r$$=>$r$$.ma_kh).asyncJoinModel2($condition$$.id_app,
|
|
3
3
|
"customer",{where:{ma_kh:"ma_kh"},fields:["nh_kh"]});let $group_by$$=$req$$.query.group_by,$report$$;$group_by$$?(typeof $group_by$$=="string"&&($group_by$$=[$group_by$$]),$report$$=await $data$$.asyncGroupBy($group_by$$,"sl_xuat sl_nhap sl_xuat_qd sl_nhap_qd sl_xuat_qd_bc sl_nhap_qd_bc tien_hang_nt tien_hang_ct_nt tien_hang tien_hang_ct tien_cp tien_cp_nt tien_ck_nt tien_ck tien_thue tien_thue_nt tien tien_nt tt tt_nt tien_xuat_tmp tien_xuat tien_nhap loi_nhuan_tmp loi_nhuan tien_hoa_hong tien_hoa_hong_gt tien_hoa_hong_ctv tien_hoa_hong_ql t_hoa_hong sl_vt_du gt_vt_du".split(" "))):
|
|
4
|
-
$report$$=$data$$;$group_by$$&&$condition$$.show_detail&&($report$$.forEach($r$$=>{$r$$.bold=!0;$r$$.sysorder=3}),$report$$=$report$$.concat($data$$));await $report$$.filter($r$$=>$r$$.ma_vt).asyncJoinModel2($condition$$.id_app,"dmvt",{where:"ma_vt",fields:
|
|
4
|
+
$report$$=$data$$;$group_by$$&&$condition$$.show_detail&&($report$$.forEach($r$$=>{$r$$.bold=!0;$r$$.sysorder=3}),$report$$=$report$$.concat($data$$));await $report$$.filter($r$$=>$r$$.ma_vt).asyncJoinModel2($condition$$.id_app,"dmvt",{where:"ma_vt",fields:"ten_vt ma_nvt ma_nvt2 ma_nvt3 ma_nvt4 kl_nl".split(" ")});await $report$$.filter($r$$=>$r$$.ma_nvt).asyncJoinModel2($condition$$.id_app,"dmnvt",{where:{ma_nvt:"_id"},fields:["ten_nvt"]});await $report$$.filter($r$$=>$r$$.ma_nvt2).asyncJoinModel2($condition$$.id_app,
|
|
5
5
|
"dmnvt",{where:{ma_nvt2:"_id"},fields:[{ten_nvt2:"ten_nvt"}]});await $report$$.filter($r$$=>$r$$.ma_nvt3).asyncJoinModel2($condition$$.id_app,"dmnvt",{where:{ma_nvt3:"_id"},fields:[{ten_nvt3:"ten_nvt"}]});await $report$$.filter($r$$=>$r$$.ma_nvt4).asyncJoinModel2($condition$$.id_app,"dmnvt",{where:{ma_nvt4:"_id"},fields:[{ten_nvt4:"ten_nvt"}]});await $report$$.filter($r$$=>$r$$.ma_kh).asyncJoinModel2($condition$$.id_app,"customer",{where:{ma_kh:"ma_kh"},fields:["ten_kh","nh_kh","dia_chi","dien_thoai"]});
|
|
6
6
|
await $report$$.filter($r$$=>$r$$.nh_kh).asyncJoinModel2($condition$$.id_app,"group",{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]});await $report$$.filter($r$$=>$r$$.ma_bp).asyncJoinModel2($condition$$.id_app,"dmbp",{where:{ma_bp:"ma_bp"},fields:[{ten_bp:"ten_bp"}]});await $report$$.filter($r$$=>$r$$.ma_vt_du).asyncJoinModel2($condition$$.id_app,"dmvt",{where:{ma_vt_du:"ma_vt"},fields:[{ten_vt_du:"ten_vt"}]});await $report$$.filter($r$$=>$r$$.user_nv_giao_hang).asyncJoinModel2(null,"user",
|
|
7
7
|
{where:{user_nv_giao_hang:"email"},fields:[{ten_nv_giao_hang:"name"}]});$req$$.query.group_by&&$condition$$.show_detail&&($report$$=$report$$.sort(($a$$,$b$$)=>{var $date2Diff_dateDiff_groupByDiff_sysorderDiff$$=$a$$[$req$$.query.group_by].localeCompare($b$$[$req$$.query.group_by]);if($date2Diff_dateDiff_groupByDiff_sysorderDiff$$!==0)return $date2Diff_dateDiff_groupByDiff_sysorderDiff$$;$date2Diff_dateDiff_groupByDiff_sysorderDiff$$=$a$$.sysorder-$b$$.sysorder;if($date2Diff_dateDiff_groupByDiff_sysorderDiff$$!==
|
|
@@ -10,16 +10,16 @@ $r$$.t_tien_hang=$r$$.details.csum("tien_hang");$r$$.t_tien_hang_ct=$r$$.details
|
|
|
10
10
|
$condition$$.user_hoa_hong&&$r$$.user_gt!==$condition$$.user_hoa_hong?0:$r$$.details.csum("tien_hoa_hong_gt");$r$$.t_tien_hoa_hong_ctv=$condition$$.user_hoa_hong&&$r$$.user_ctv!==$condition$$.user_hoa_hong?0:$r$$.details.csum("tien_hoa_hong_ctv");$r$$.t_tien_hoa_hong_ql=$condition$$.user_hoa_hong&&$r$$.user_ql!==$condition$$.user_hoa_hong?0:$r$$.details.csum("tien_hoa_hong_ql");$r$$.details_tl?($r$$.t_tien_tl=$r$$.details_tl.csum("tien_hang_ct")-$r$$.details_tl.csum("tien_ck"),$r$$.t_tien_thue_tl=
|
|
11
11
|
$r$$.details_tl.csum("tien_thue"),$r$$.t_tien_nhap=$r$$.details_tl.csum("tien_nhap"),$r$$.t_sl_nhap=$r$$.details_tl.csum("sl_nhap"),$r$$.t_tien_hoa_hong-=$r$$.details_tl.map($d$$=>$condition$$.user_hoa_hong&&$d$$.user_nv!==$condition$$.user_hoa_hong?0:$d$$.tien_hoa_hong).reduce(($a$$,$b$$)=>($a$$||0)+($b$$||0),0),$r$$.t_tien_hoa_hong_gt-=$r$$.details_tl.map($d$$=>$condition$$.user_hoa_hong&&$d$$.user_gt!==$condition$$.user_hoa_hong?0:$d$$.tien_hoa_hong_gt).reduce(($a$$,$b$$)=>($a$$||0)+($b$$||0),
|
|
12
12
|
0),$r$$.t_tien_hoa_hong_ctv-=$r$$.details_tl.map($d$$=>$condition$$.user_hoa_hong&&$d$$.user_ctv!==$condition$$.user_hoa_hong?0:$d$$.tien_hoa_hong_ctv).reduce(($a$$,$b$$)=>($a$$||0)+($b$$||0),0),$r$$.t_tien_hoa_hong_ql-=$r$$.details_tl.map($d$$=>$condition$$.user_hoa_hong&&$d$$.user_ql!==$condition$$.user_hoa_hong?0:$d$$.tien_hoa_hong_ql).reduce(($a$$,$b$$)=>($a$$||0)+($b$$||0),0)):($r$$.t_tien_tl=0,$r$$.t_sl_nhap=0,$r$$.t_tien_nhap=0);$r$$.tien_freeship=$r$$.tien_freeship||0;$r$$.tien_phi_vc=$r$$.tien_phi_vc||
|
|
13
|
-
0;$r$$.t_sl_vt_du=($r$$.details||[]).map($r$$=>$r$$.sl_vt_du||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_gt_vt_du=($r$$.details||[]).map($r$$=>$r$$.gt_vt_du||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_sl_pk_nhap=($r$$.ds_pk_nhap||[]).map($d$$=>$d$$.sl_pk_nhap).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_sl_pk_xuat=($r$$.ds_pk_xuat||[]).map($d$$=>$d$$.sl_pk_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,0)
|
|
14
|
-
0;$r$$.t_tien_tdtt_con_no_nt=0;var $da_thus_no_query_da_tra$$=await global.getModel("tdttno").findOne({id_ct:$r$$._id,ma_kh:$r$$.ma_kh}).lean();$da_thus_no_query_da_tra$$&&($r$$.t_tien_tdtt_no_nt=$da_thus_no_query_da_tra$$.tien_nt,$r$$.t_tien_tdtt_no=$da_thus_no_query_da_tra$$.tien,$da_thus_no_query_da_tra$$={id_app:$id_app$$,id_hd:$r$$._id,ma_kh:$r$$.ma_kh},$condition$$.tt_den_ngay&&($da_thus_no_query_da_tra$$.ngay_ct=
|
|
15
|
-
$r$$.t_tien_tdtt_da_thu=$da_thus_no_query_da_tra$$.map($d$$=>$d$$.tien).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$r$$.t_tien_tdtt_da_thu_nt=$da_thus_no_query_da_tra$$.map($d$$=>$d$$.tien_nt).reduce(($a$$,$b$$)=>$a$$+$b$$,0));$r$$.t_tien_tdtt_con_no=$r$$.t_tien_tdtt_no-$r$$.t_tien_tdtt_da_thu;$r$$.t_tien_tdtt_con_no_nt=$r$$.t_tien_tdtt_no_nt-$r$$.t_tien_tdtt_da_thu_nt
|
|
16
|
-
underscore.isString($field_group_by$$)&&($field_group_by$$=[$field_group_by$$]);let $report$$;if($field_group_by$$){$error$$=[{name:"t_sl_xuat",value:"t_sl_xuat"},{name:"t_sl_nhap",value:"t_sl_nhap"},{name:"t_tien_hang",value:"t_tien_hang"},{name:"t_tien_hang_ct",value:"t_tien_hang_ct"},{name:"t_tien_cp",value:"t_tien_cp"},{name:"tien_freeship",value:"tien_freeship"},
|
|
17
|
-
{name:"
|
|
18
|
-
{name:"t_tien_hoa_hong_ctv",value:"t_tien_hoa_hong_ctv"},{name:"t_tien_hoa_hong_ql",value:"t_tien_hoa_hong_ql"},{name:"t_sl_vt_du",value:"t_sl_vt_du"},{name:"t_gt_vt_du",value:"t_gt_vt_du"},{name:"t_sl_pk_nhap",value:"t_sl_pk_nhap"},{name:"t_sl_pk_xuat",value:"t_sl_pk_xuat"},{name:"t_tien_tdtt_no",value:"t_tien_tdtt_no"},{name:"t_tien_tdtt_da_thu",value:"t_tien_tdtt_da_thu"},
|
|
19
|
-
$report$$.sort(($a$$,$b$$)=>{for(let $i$$=0;$i$$<$field_group_by$$.length;$i$$++){let $field$$=$field_group_by$$[$i$$];if($a$$[$field$$]<$b$$[$field$$])return-1;if($a$$[$field$$]>$b$$[$field$$])return 1}return 0})}else{const $sort_fields$$=["ngay_ct","so_ct"];$report$$=$i_rs$$.sort(($a$$,$b$$)=>{for(let $i$$=0;$i$$<$sort_fields$$.length;$i$$++){let $field
|
|
20
|
-
$i_rs$$+1,$i_rs$$++,$r$$.bold=!1,$r$$.t_tien_paymentByPoints=$r$$.tien_paymentByPoints||0,$r$$.t_phai_thu=$r$$.t_tien_hang_ct-($r$$.t_gt_vt_du||0)-($r$$.t_tien_ck||0)+($r$$.tien_phi_vc||0)-($r$$.tien_freeship||0)-($r$$.tien_ck_hd||0)-($r$$.tien_evoucher||0)+($r$$.t_thue||0),$r$$.t_doanh_thu=$r$$.t_tien_hang_ct-($r$$.t_gt_vt_du||0)-($r$$.t_tien_ck||
|
|
21
|
-
$r$$.t_tien_nhap)-($r$$.t_tien_cp||0),$r$$.t_doanh_thu_thuan=$r$$.t_doanh_thu-$r$$.t_tien_tl,$r$$.t_hoa_hong=$r$$.t_tien_hoa_hong+$r$$.t_tien_hoa_hong_gt+$r$$.t_tien_hoa_hong_ctv+$r$$.t_tien_hoa_hong_ql,$r$$.t_tien_con_no=$r$$.t_tien_tdtt_no-$r$$.t_tien_tdtt_da_thu,$r$$.t_tien_da_thu=$r$$.t_doanh_thu-$r$$.t_tien_con_no;$r$$={[$field_group_by
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
bold:!0};$report$$.push($r$$);$report$$.forEach($r$$=>{$r$$.t_tien_phai_tl=$r$$.t_tien_tl+$r$$.t_tien_thue_tl});$callback$$(null,{data:$report$$})})})})};
|
|
13
|
+
0;$r$$.t_sl_vt_du=($r$$.details||[]).map($r$$=>$r$$.sl_vt_du||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_gt_vt_du=($r$$.details||[]).map($r$$=>$r$$.gt_vt_du||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_sl_pk_nhap=($r$$.ds_pk_nhap||[]).map($d$$=>$d$$.sl_pk_nhap).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_sl_pk_xuat=($r$$.ds_pk_xuat||[]).map($d$$=>$d$$.sl_pk_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($r$$.details||[]).map($d$$=>$d$$.sl_pk_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$r$$.t_tien_tdtt_no=0;$r$$.t_tien_tdtt_no_nt=
|
|
14
|
+
0;$r$$.t_tien_tdtt_da_thu=0;$r$$.t_tien_tdtt_da_thu_nt=0;$r$$.t_tien_tdtt_con_no=0;$r$$.t_tien_tdtt_con_no_nt=0;var $da_thus_no_query_da_tra$$=await global.getModel("tdttno").findOne({id_ct:$r$$._id,ma_kh:$r$$.ma_kh}).lean();$da_thus_no_query_da_tra$$&&($r$$.t_tien_tdtt_no_nt=$da_thus_no_query_da_tra$$.tien_nt,$r$$.t_tien_tdtt_no=$da_thus_no_query_da_tra$$.tien,$da_thus_no_query_da_tra$$={id_app:$id_app$$,id_hd:$r$$._id,ma_kh:$r$$.ma_kh},$condition$$.tt_den_ngay&&($da_thus_no_query_da_tra$$.ngay_ct=
|
|
15
|
+
{$lte:new Date($condition$$.tt_den_ngay)}),$da_thus_no_query_da_tra$$=await global.getModel("tdttno_tt").find($da_thus_no_query_da_tra$$).lean(),$r$$.t_tien_tdtt_da_thu=$da_thus_no_query_da_tra$$.map($d$$=>$d$$.tien).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$r$$.t_tien_tdtt_da_thu_nt=$da_thus_no_query_da_tra$$.map($d$$=>$d$$.tien_nt).reduce(($a$$,$b$$)=>$a$$+$b$$,0));$r$$.t_tien_tdtt_con_no=$r$$.t_tien_tdtt_no-$r$$.t_tien_tdtt_da_thu;$r$$.t_tien_tdtt_con_no_nt=$r$$.t_tien_tdtt_no_nt-$r$$.t_tien_tdtt_da_thu_nt;
|
|
16
|
+
$callback$$(null,$r$$)})},async function($error$$,$i_rs$$){if($error$$)return $callback$$($error$$);let $field_group_by$$=$req$$.query.group_by;underscore.isString($field_group_by$$)&&($field_group_by$$=[$field_group_by$$]);let $report$$;if($field_group_by$$){$error$$=[{name:"t_sl_xuat",value:"t_sl_xuat"},{name:"t_sl_nhap",value:"t_sl_nhap"},{name:"t_tien_hang",value:"t_tien_hang"},{name:"t_tien_hang_ct",value:"t_tien_hang_ct"},{name:"t_tien_cp",value:"t_tien_cp"},{name:"tien_freeship",value:"tien_freeship"},
|
|
17
|
+
{name:"tien_phi_vc",value:"tien_phi_vc"},{name:"t_tien_ck",value:"t_tien_ck"},{name:"t_thue",value:"t_thue"},{name:"t_tien",value:"t_tien"},{name:"tien_ck_hd",value:"tien_ck_hd"},{name:"tien_evoucher",value:"tien_evoucher"},{name:"tien_thu",value:"tien_thu"},{name:"tien_thu2",value:"tien_thu2"},{name:"tien_paymentByPoints",value:"tien_paymentByPoints"},{name:"t_tien_xuat",value:"t_tien_xuat"},{name:"t_tien_tl",value:"t_tien_tl"},{name:"t_tien_thue_tl",value:"t_tien_thue_tl"},{name:"t_tien_nhap",value:"t_tien_nhap"},
|
|
18
|
+
{name:"phai_tra",value:"phai_tra"},{name:"t_tien_hoa_hong",value:"t_tien_hoa_hong"},{name:"t_tien_hoa_hong_gt",value:"t_tien_hoa_hong_gt"},{name:"t_tien_hoa_hong_ctv",value:"t_tien_hoa_hong_ctv"},{name:"t_tien_hoa_hong_ql",value:"t_tien_hoa_hong_ql"},{name:"t_sl_vt_du",value:"t_sl_vt_du"},{name:"t_gt_vt_du",value:"t_gt_vt_du"},{name:"t_sl_pk_nhap",value:"t_sl_pk_nhap"},{name:"t_sl_pk_xuat",value:"t_sl_pk_xuat"},{name:"t_tien_tdtt_no",value:"t_tien_tdtt_no"},{name:"t_tien_tdtt_da_thu",value:"t_tien_tdtt_da_thu"},
|
|
19
|
+
{name:"t_tien_tdtt_con_no",value:"t_tien_tdtt_con_no"}];try{$report$$=await $i_rs$$.asyncGroupBy($field_group_by$$,$error$$)}catch($e$$){return $callback$$($e$$)}$report$$=$report$$.sort(($a$$,$b$$)=>{for(let $i$$=0;$i$$<$field_group_by$$.length;$i$$++){let $field$$=$field_group_by$$[$i$$];if($a$$[$field$$]<$b$$[$field$$])return-1;if($a$$[$field$$]>$b$$[$field$$])return 1}return 0})}else{const $sort_fields$$=["ngay_ct","so_ct"];$report$$=$i_rs$$.sort(($a$$,$b$$)=>{for(let $i$$=0;$i$$<$sort_fields$$.length;$i$$++){let $field$$=
|
|
20
|
+
$sort_fields$$[$i$$];if($a$$[$field$$]<$b$$[$field$$])return-1;if($a$$[$field$$]>$b$$[$field$$])return 1}return 0})}$i_rs$$=0;for(var $r$$ of $report$$)$r$$.stt=$i_rs$$+1,$i_rs$$++,$r$$.bold=!1,$r$$.t_tien_paymentByPoints=$r$$.tien_paymentByPoints||0,$r$$.t_phai_thu=$r$$.t_tien_hang_ct-($r$$.t_gt_vt_du||0)-($r$$.t_tien_ck||0)+($r$$.tien_phi_vc||0)-($r$$.tien_freeship||0)-($r$$.tien_ck_hd||0)-($r$$.tien_evoucher||0)+($r$$.t_thue||0),$r$$.t_doanh_thu=$r$$.t_tien_hang_ct-($r$$.t_gt_vt_du||0)-($r$$.t_tien_ck||
|
|
21
|
+
0)+($r$$.tien_phi_vc||0)-($r$$.tien_freeship||0)-($r$$.tien_ck_hd||0)-($r$$.tien_evoucher||0),$r$$.t_lai=$r$$.t_doanh_thu-$r$$.t_tien_xuat-($r$$.t_tien_tl-$r$$.t_tien_nhap)-($r$$.t_tien_cp||0),$r$$.t_doanh_thu_thuan=$r$$.t_doanh_thu-$r$$.t_tien_tl,$r$$.t_hoa_hong=$r$$.t_tien_hoa_hong+$r$$.t_tien_hoa_hong_gt+$r$$.t_tien_hoa_hong_ctv+$r$$.t_tien_hoa_hong_ql,$r$$.t_tien_con_no=$r$$.t_tien_tdtt_no-$r$$.t_tien_tdtt_da_thu,$r$$.t_tien_da_thu=$r$$.t_doanh_thu-$r$$.t_tien_con_no;$r$$={[$field_group_by$$?
|
|
22
|
+
$field_group_by$$[0]:"S\u1ed1 ch\u1ee9ng t\u1eeb"]:"T\u1ed5ng c\u1ed9ng",t_sl_xuat:$report$$.csum("t_sl_xuat"),t_sl_nhap:$report$$.csum("t_sl_nhap"),t_tien_hang:$report$$.csum("t_tien_hang"),t_tien_hang_ct:$report$$.csum("t_tien_hang_ct"),t_tien_cp:$report$$.csum("t_tien_cp"),t_tien_ck:$report$$.csum("t_tien_ck"),t_thue:$report$$.csum("t_thue"),t_tien:$report$$.csum("t_tien"),tien_ck_hd:$report$$.csum("tien_ck_hd"),tien_phi_vc:$report$$.csum("tien_phi_vc"),tien_freeship:$report$$.csum("tien_freeship"),
|
|
23
|
+
t_tien_tl:$report$$.csum("t_tien_tl"),t_tien_thue_tl:$report$$.csum("t_tien_thue_tl"),t_tien_xuat:$report$$.csum("t_tien_xuat"),t_tien_nhap:$report$$.csum("t_tien_nhap"),t_phai_thu:$report$$.csum("t_phai_thu"),t_doanh_thu:$report$$.csum("t_doanh_thu"),t_doanh_thu_thuan:$report$$.csum("t_doanh_thu_thuan"),tien_evoucher:$report$$.csum("tien_evoucher"),tien_thu:$report$$.csum("tien_thu"),tien_thu2:$report$$.csum("tien_thu2"),t_tien_thu:$report$$.csum("t_tien_thu"),phai_tra:$report$$.csum("phai_tra"),
|
|
24
|
+
t_tien_paymentByPoints:$report$$.csum("tien_paymentByPoints"),t_lai:$report$$.csum("t_lai"),t_tien_hoa_hong:$report$$.csum("t_tien_hoa_hong"),t_tien_hoa_hong_gt:$report$$.csum("t_tien_hoa_hong_gt"),t_tien_hoa_hong_ctv:$report$$.csum("t_tien_hoa_hong_ctv"),t_tien_hoa_hong_ql:$report$$.csum("t_tien_hoa_hong_ql"),t_hoa_hong:$report$$.csum("t_hoa_hong"),t_sl_vt_du:$report$$.csum("t_sl_vt_du"),t_gt_vt_du:$report$$.csum("t_gt_vt_du"),t_sl_pk_nhap:$report$$.csum("t_sl_pk_nhap"),t_sl_pk_xuat:$report$$.csum("t_sl_pk_xuat"),
|
|
25
|
+
t_tien_tdtt_no:$report$$.csum("t_tien_tdtt_no"),t_tien_tdtt_da_thu:$report$$.csum("t_tien_tdtt_da_thu"),t_tien_tdtt_con_no:$report$$.csum("t_tien_tdtt_con_no"),t_tien_da_thu:$report$$.csum("t_tien_da_thu"),t_tien_con_no:$report$$.csum("t_tien_con_no"),bold:!0};$report$$.push($r$$);$report$$.forEach($r$$=>{$r$$.t_tien_phai_tl=$r$$.t_tien_tl+$r$$.t_tien_thue_tl});$callback$$(null,{data:$report$$})})})})};
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
module.exports=function($router$$){new controller($router$$,"kqchamcong",function($req$$,$callback$$){const $id_app$$=$req$$.query.id_app,$lam_thu_7$$=$req$$.query.lam_thu_7==="true"||$req$$.query.lam_thu_7==1,$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().then(async $congs$$=>{var $danh_sach_le_tet_dm_nkl$$=
|
|
3
|
-
await dmloaicong.findOne({id_app:$id_app$$,ngay_khong_luong:1}).lean();const $ma_loai_nkl$$=$danh_sach_le_tet_dm_nkl$$?$danh_sach_le_tet_dm_nkl$$.ma_loai_cong:"";$danh_sach_le_tet_dm_nkl$$=await dmletet.find({id_app:$id_app$$}).lean();for(var $cong_date$$ of $congs$$)$cong_date$$.ngay=moment($cong_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","ngay_nghi_viec"]}]);$congs$$.forEach($item$$=>{($item$$.bo_phan||
|
|
4
|
-
[]).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"]}]);const $uniqueEmployees$$=
|
|
5
|
-
{};$congs$$.forEach($c$$=>{$uniqueEmployees$$[$c$$.ma_nv]||($uniqueEmployees$$[$c$$.ma_nv]={id_app:$c$$.id_app,ma_nv:$c$$.ma_nv,ten_nv:$c$$.ten_nv,ma_bp:$c$$.ma_bp,ten_bp:$c$$.ten_bp,ngay_bd_lam_viec:$c$$.ngay_bd_lam_viec,ngay_nghi_viec:$c$$.ngay_nghi_viec})});$cong_date$$=new Date($req$$.query.tu_ngay);let $endDate$$=new Date($req$$.query.den_ngay);for(;$cong_date$$.getTime()<=$endDate$$.getTime();){let $_d$$=moment(new Date($cong_date$$)),$_d_f$$=$_d$$.format("YYYY-MM-DD"),$currentDay$$=$cong_date$$.getDate(),
|
|
6
|
-
$currentMonth$$=$cong_date$$.getMonth()+1,$isHoliday$$=$danh_sach_le_tet_dm_nkl$$.find($le$$=>$le$$.ngay==$currentDay$$&&$le$$.thang==$currentMonth$$),$dayOfWeek$$=$cong_date$$.getDay(),$isWorkingDay$$=!0;$dayOfWeek$$===0&&($isWorkingDay$$=!1);$dayOfWeek$$!==6||$lam_thu_7$$||($isWorkingDay$$=!1);Object.values($uniqueEmployees$$).forEach($emp$$=>{if(!$congs$$.find($cong$$=>$cong$$.ngay===$_d_f$$&&$cong$$.ma_nv===$emp$$.ma_nv)){let $empty_date$$={...$emp$$};$empty_date$$.ngay=$_d_f$$;$empty_date$$.ma_loai_cong=
|
|
7
|
-
"";$empty_date$$.sl_cong=0;let $isValidDateForEmployee$$=!0,$checkDateTs$$=$_d$$.startOf("day").toDate().getTime();if($emp$$.ngay_bd_lam_viec){var $endDateTs_startDateTs$$=moment($emp$$.ngay_bd_lam_viec).startOf("day").toDate().getTime();$checkDateTs$$<$endDateTs_startDateTs$$&&($isValidDateForEmployee$$=!1)}$emp$$.ngay_nghi_viec&&($endDateTs_startDateTs$$=moment($emp$$.ngay_nghi_viec).endOf("day").toDate().getTime(),$checkDateTs$$>$endDateTs_startDateTs$$&&($isValidDateForEmployee$$=!1));$isValidDateForEmployee$$&&
|
|
8
|
-
($isHoliday$$&&$isHoliday$$.ma_loai_cong?($empty_date$$.ma_loai_cong=$isHoliday$$.ma_loai_cong,$empty_date$$.sl_cong=1):$isWorkingDay$$&&$ma_loai_nkl$$&&($empty_date$$.ma_loai_cong=$ma_loai_nkl$$,$empty_date$$.sl_cong=1));$congs$$.push($empty_date$$)}});$cong_date$$.setDate($cong_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$$,
|
|
9
|
-
dmloaicong,[{where:{ma_loai_cong:"ma_loai_cong"},fields:["ngay_cong","ngay_phep","ngay_khong_phep","ngay_khong_luong"]}]);$congs$$.forEach($r$$=>{$r$$.ngay_cong=($r$$.sl_cong||1)*($r$$.ngay_cong||0);$r$$.ngay_phep=($r$$.sl_cong||1)*($r$$.ngay_phep||0);$r$$.ngay_khong_phep=($r$$.sl_cong||1)*($r$$.ngay_khong_phep||0);$r$$.ngay_khong_luong=($r$$.sl_cong||1)*($r$$.ngay_khong_luong||0)});$congs$$.pivot(["ma_nv","ten_nv","ma_bp","ten_bp","ngay_bd_lam_viec"],"ngay",["ngay_cong","ngay_phep","ngay_khong_luong",
|
|
10
|
-
"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,
|
|
11
|
-
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});$r$$.tong_ngay_khong_luong=$congs$$.csum("ngay_khong_luong",{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"]})}).catch($e$$=>
|
|
12
|
-
{$callback$$($e$$)})})};
|
|
1
|
+
const controller=require("../../controllers/controllerRPT"),kqchamcong=require("../../libs/kqchamcong");module.exports=function($router$$){new controller($router$$,"kqchamcong",async function($req$$,$callback$$){try{let $result$$=await kqchamcong($req$$.query);$callback$$(null,$result$$)}catch($e$$){$callback$$($e$$)}})};
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
module.exports=function($router$$){new controller($router$$,"kqhdkd",function($kbm_query_req$$,$callback$$){const $query$$=$kbm_query_req$$.query;if(!$query$$.den_ngay||!$query$$.tu_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: t\u1eeb ng\u00e0y(tu_ngay), \u0111\u1ebfn ng\u00e0y(den_ngay)");$query$$.tu_ngay=new Date($query$$.tu_ngay);$query$$.den_ngay=new Date($query$$.den_ngay);$query$$.tu_ngay_kt&&$query$$.den_ngay_kt||($query$$.tu_ngay_kt=new Date($query$$.tu_ngay),
|
|
3
|
-
$query$$.tu_ngay_kt.setYear($query$$.tu_ngay_kt.getFullYear()-1),$query$$.den_ngay_kt=new Date($query$$.den_ngay),$query$$.den_ngay_kt.setYear($query$$.den_ngay_kt.getFullYear()-1));let $report$$;$kbm_query_req$$={id_app:$query$$.id_app};$kbm_query_req$$.id_rptform=$query$$.id_rptform?$query$$.id_rptform:{$in:[void 0,null,""]};let $socai$$;$socai$$=$query$$.ma_kho?global.getModel("socaitc"):global.getModel("socaitt");kbmkqhdkd.find($kbm_query_req$$).sort({stt:1}).lean().then(function($kbm$$){$report$$=
|
|
4
|
-
$kbm$$;async.map($report$$,function($r$$,$c1$$){setImmediate(()=>{$r$$.cach_tinh=="1"?$c1$$(null,$r$$):async.parallel({ky_truoc:function($callback$$){const $condition$$={ngay_ct:{$gte:$query$$.tu_ngay_kt,$lte:$query$$.den_ngay_kt},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);var $tk_co_tk_no$$=getRegString($r$$.tk_no);$tk_co_tk_no$$&&($condition$$.tk_no=$r$$.giam_tru_no?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,
|
|
5
|
-
$options:"i"});if($tk_co_tk_no$$=getRegString($r$$.tk_co))$condition$$.tk_co=$r$$.giam_tru_co?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"};sumByCondition($socai$$,["tien","tien_nt"],$condition$$).then($rs$$=>{$r$$.ky_truoc=$rs$$.tien;$r$$.ky_truoc_nt=$rs$$.tien_nt;$callback$$(null,$r$$)}).catch($e$$=>{$callback$$($e$$)})},ky_nay:function($callback$$){const $condition$$={ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=
|
|
6
|
-
$query$$.ma_dvcs);$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);var $tk_co$jscomp$1_tk_no$$=getRegString($r$$.tk_no);$tk_co$jscomp$1_tk_no$$&&($condition$$.tk_no=$r$$.giam_tru_no?{$not:new RegExp($tk_co$jscomp$1_tk_no$$)}:{$regex:$tk_co$jscomp$1_tk_no$$,$options:"i"});if($tk_co$jscomp$1_tk_no$$=getRegString($r$$.tk_co))$condition$$.tk_co=$r$$.giam_tru_co?{$not:new RegExp($tk_co$jscomp$1_tk_no$$)}:{$regex:$tk_co$jscomp$1_tk_no$$,$options:"i"};sumByCondition($socai$$,["tien","tien_nt"],$condition$$).then($rs$$=>
|
|
7
|
-
{$r$$.ky_nay=$rs$$.tien;$r$$.ky_nay_nt=$rs$$.tien_nt;$callback$$(null,$r$$)}).catch($e$$=>{$callback$$($e$$)})}},function($error$$,$results$$){$c1$$($error$$,$results$$)})})},function($error$$){if($error$$)return $callback$$($error$$);calcGrid($report$$,"ky_nay,ky_nay_nt,ky_truoc,ky_truoc_nt",function($rs$$){$callback$$(null,$rs$$)})})}).catch($e$$=>{$callback$$($e$$)})})};
|
|
1
|
+
const kqhdkd=require("../../libs/kqhdkd"),controller=require("../../controllers/controllerRPT");module.exports=function($router$$){new controller($router$$,"kqhdkd",async function($query_req$$,$callback$$){$query_req$$=$query_req$$.query;try{const $report$$=await kqhdkd($query_req$$);$callback$$(null,$report$$)}catch($e$$){$callback$$($e$$)}})};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const tdttco=global.getModel("tdttco"),tdttco_tt=global.getModel("tdttco_tt"),Customer=global.getModel("customer"),Pc1=global.getModel("pc1"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),{executeInTransaction}=require("../../libs/sessionContext");
|
|
2
2
|
module.exports=function($router_rpt$$){$router_rpt$$=new controller($router_rpt$$,"phanbochitienchohoadon",function($req$$,$callback$$){const $condition$$=$req$$.query;if(!$condition$$.id_app||!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: tu_ngay,den_ngay,id_app");async.series({phieu_thu:function($callback$$){const $query_pt$$={id_app:$condition$$.id_app,$where:function(){return this.details&&this.details.length>0}};
|
|
3
3
|
$query_pt$$.ngay_ct={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$condition$$.ma_dvcs&&($query_pt$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kh&&($query_pt$$.ma_kh=$condition$$.ma_kh);$condition$$.so_ct&&($query_pt$$.so_ct=$condition$$.so_ct);Pc1.find($query_pt$$).lean().exec(function($e$$,$pts$$){if($e$$)return $callback$$($e$$);async.mapLimit($pts$$,20,function($pt$$,$callback$$){$pt$$.t_tien_nt=$pt$$.details.csum("tien_nt");$pt$$.t_tien=$pt$$.details.csum("tien");tdttco_tt.find({id_app:$condition$$.id_app,
|
|
4
|
-
id_ct:$pt$$._id.toString()}).exec(function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$pt$$.da_phan_bo_nt=$rs$$.csum("tien_nt");$pt$$.da_phan_bo=$rs$$.csum("tien");$pt$$.con_lai_nt=$pt$$.t_tien_nt-$pt$$.da_phan_bo_nt;$pt$$.con_lai=$pt$$.t_tien-$pt$$.da_phan_bo;$callback$$(null,$pt$$)})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$(null,$pts$$)})})}},function($error$$,$results$$){if($error$$)return $callback$$($error$$);
|
|
4
|
+
id_ct:$pt$$._id.toString()}).exec(function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$pt$$.da_phan_bo_nt=$rs$$.csum("tien_nt");$pt$$.da_phan_bo=$rs$$.csum("tien");$pt$$.con_lai_nt=$pt$$.t_tien_nt-$pt$$.da_phan_bo_nt;$pt$$.con_lai=$pt$$.t_tien-$pt$$.da_phan_bo;$callback$$(null,$pt$$)})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$(null,$pts$$)})})}},function($error$$,$results$$){if($error$$)return $callback$$($error$$);const $report$$=$results$$.phieu_thu;$report$$.joinModel($condition$$.id_app,
|
|
5
5
|
Customer,[{akey:"ma_kh",bkey:"ma_kh",fields:[{name:"ten_kh",value:"ten_kh"},{name:"id_kh",value:"_id"}]}],function(){$callback$$(null,$report$$)})})});$router_rpt$$.createRoute("invoices",function($req$$,$callback$$){const $condition$$=$req$$.query;if(!$condition$$.id_app||!$condition$$.ma_kh||!$condition$$.id_ct)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: ma_kh,id_ct,id_app");async.series({invocies:function($callback$$){const $query$$={id_app:$condition$$.id_app};
|
|
6
6
|
$query$$.ma_kh=$condition$$.ma_kh;$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);tdttco.find($query$$).lean().exec(function($e$$,$invoices$$){if($e$$)return $callback$$($e$$);async.mapLimit($invoices$$,20,function($invoice$$,$callback$$){const $t_invoice$$={id_tdtt:$invoice$$._id,line:$invoice$$.line,ma_ct:$invoice$$.ma_ct,id_hd:$invoice$$.id_ct,so_hd:$invoice$$.so_hd,ngay_hd:$invoice$$.ngay_hd,tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=
|
|
7
7
|
$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_hd_nt;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_co=$invoice$$.tk_no;$t_invoice$$.ma_dvcs=$invoice$$.ma_dvcs;tdttco_tt.find({id_tdtt:$invoice$$._id,id_app:$invoice$$.id_app},function($error$$,$results$$){$t_invoice$$.tien_nt=$results$$.csum("tien_nt",{id_ct:$condition$$.id_ct});$t_invoice$$.tien=
|
|
@@ -2,8 +2,8 @@ const kbmpttct=global.getModel("kbmPttct"),rptform=global.getModel("rptform"),va
|
|
|
2
2
|
null};
|
|
3
3
|
module.exports=function($router$$){new controller($router$$,"ptcttct",async function($req$$,$callback$$){let $query$$=$req$$.query;if(!$query$$.den_ngay||!$query$$.tu_ngay||!$query$$.id_rptform&&!$query$$.form_code)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 t\u1eeb ng\u00e0y(tu_ngay), \u0111\u1ebfn ng\u00e0y(den_ngay), id m\u1eabu b\u00e1o c\u00e1o");if($query$$.id_rptform&&!global.mongoose.Types.ObjectId.isValid($query$$.id_rptform))return $callback$$("M\u1eabu b\u00e1o c\u00e1o n\u00e0y kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb");if($query$$.ma_bp){var $_rptform_bps_dts_phis_query_form$$=
|
|
4
4
|
await getCodeChildren(global.getModel("dmbp"),$query$$.id_app,$query$$.ma_bp,"ma_bp","ma_bp_me");$query$$.ma_bp={$in:$_rptform_bps_dts_phis_query_form$$}}$query$$.ma_phi&&($_rptform_bps_dts_phis_query_form$$=await getCodeChildren(global.getModel("dmphi"),$query$$.id_app,$query$$.ma_phi,"ma_phi","ma_phi_me"),$query$$.ma_phi={$in:$_rptform_bps_dts_phis_query_form$$});$query$$.ma_dt&&($_rptform_bps_dts_phis_query_form$$=await getCodeChildren(global.getModel("dmdt"),$query$$.id_app,$query$$.ma_dt,"ma_dt",
|
|
5
|
-
"ma_dt_me"),$query$$.ma_dt={$in:$_rptform_bps_dts_phis_query_form$$});$_rptform_bps_dts_phis_query_form$$={id_app:$query$$.id_app};$query$$.id_rptform?$_rptform_bps_dts_phis_query_form$$._id=$query$$.id_rptform:$_rptform_bps_dts_phis_query_form$$.form_code=$query$$.form_code;$_rptform_bps_dts_phis_query_form$$=await rptform.findOne($_rptform_bps_dts_phis_query_form$$).lean();
|
|
6
|
-
|
|
5
|
+
"ma_dt_me"),$query$$.ma_dt={$in:$_rptform_bps_dts_phis_query_form$$});$query$$.tu_ngay=moment(new Date($query$$.tu_ngay)).startOf("date").toDate();$query$$.den_ngay=moment(new Date($query$$.den_ngay)).endOf("date").toDate();$_rptform_bps_dts_phis_query_form$$={id_app:$query$$.id_app};$query$$.id_rptform?$_rptform_bps_dts_phis_query_form$$._id=$query$$.id_rptform:$_rptform_bps_dts_phis_query_form$$.form_code=$query$$.form_code;$_rptform_bps_dts_phis_query_form$$=await rptform.findOne($_rptform_bps_dts_phis_query_form$$).lean();
|
|
6
|
+
if(!$_rptform_bps_dts_phis_query_form$$)return $callback$$("M\u1eabu b\u00e1o c\u00e1o kh\u00f4ng t\u1ed3n t\u1ea1i");let $report$$=$_rptform_bps_dts_phis_query_form$$.report;$report$$&&$_rptform_bps_dts_phis_query_form$$.report.length!==0||($report$$=await kbmpttct.find({id_rptform:$_rptform_bps_dts_phis_query_form$$._id.toString()}).sort({stt:1}).lean());async.map($report$$,function($r$$,$c1$$){setImmediate(()=>{$r$$.stt_child=0;if($r$$.cach_tinh==="9")$r$$.cong_thuc="",utils.getInfoFromQuery($query$$,
|
|
7
7
|
$r$$.query,($e$$,$rs$$)=>{if($e$$)return $c1$$();_.isNumber($rs$$)?($r$$.so_kn=$rs$$,$r$$.so_kn_nt=$rs$$):$r$$.value_string=$rs$$;$c1$$()});else if($r$$.cach_tinh==="2")$r$$.cong_thuc="",async.parallel({ky_nay:function($callback$$){setImmediate(async()=>{let $condition$$={ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_bp&&($condition$$.ma_bp=$query$$.ma_bp);$query$$.ma_hd&&($condition$$.ma_hd=$query$$.ma_hd);
|
|
8
8
|
$query$$.ma_dt&&($condition$$.ma_dt=$query$$.ma_dt);$query$$.ma_sp&&($condition$$.ma_sp=$query$$.ma_sp);$query$$.ma_nv&&($condition$$.ma_nv=$query$$.ma_nv);$r$$.ma_phi&&($condition$$.ma_phi={$in:await getCodeChildren(global.getModel("dmphi"),$query$$.id_app,$r$$.ma_phi,"ma_phi","ma_phi_me")});var $tk_co_tk_no$$=getRegString($r$$.tk_no);$tk_co_tk_no$$&&($condition$$.tk_no=$r$$.giam_tru_no?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"});if($tk_co_tk_no$$=getRegString($r$$.tk_co))$condition$$.tk_co=
|
|
9
9
|
$r$$.giam_tru_co&&$tk_co_tk_no$$?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"};if($r$$.dieu_kien_khac)try{$r$$.dieu_kien_khac.indexOf("{")<0&&($r$$.dieu_kien_khac="{"+$r$$.dieu_kien_khac+"}");var $socai_str_func$$=$r$$.dieu_kien_khac;$socai_str_func$$.indexOf("return ")<0&&($socai_str_func$$=`return ${$socai_str_func$$}`);let $dieu_kien_khac$$=utils.evalute($socai_str_func$$,{moment,condition:$condition$$,row:$r$$});$condition$$={...$condition$$,...$dieu_kien_khac$$}}catch($e$$){$callback$$($e$$.toString())}$r$$.ma_kho?
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
module.exports=function($router$$){new controller($router$$,"sctcnkh",async function($req$$,$callback$$){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());
|
|
3
|
-
|
|
4
|
-
{of_user:{$in:$Customer_ds_phu_trach$$}}]}$Customer_ds_phu_trach$$=global.getModel("customer");$condition$$.ma_kh=await $Customer_ds_phu_trach$$.getList($condition$$.id_app,$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$,"ma_kh")}$condition$$.ma_kh||($condition$$.ma_kh=$req$$.user.email);!$condition$$.ma_nv&&$condition$$.phu_trach_nv&&($_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$=
|
|
5
|
-
await permistion.dsDangPhuTrach($condition$$.id_app,$condition$$.phu_trach_nv),$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$.push($condition$$.phu_trach_nv),$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$={id_app:$condition$$.id_app,$or:[{phu_trach:{$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$}},{user:{$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$}}]},
|
|
6
|
-
$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$=(await global.getModel("dmnv").find($_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$,{ma_nv:1}).lean()).map($nv$$=>$nv$$.ma_nv),$condition$$.ma_nv={$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$});!$condition$$.ma_nv_giao_hang&&$condition$$.phu_trach_gia_hang&&($_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$=
|
|
7
|
-
await permistion.dsDangPhuTrach($_q$jscomp$3_id_app_ma_nvs$$,$condition$$.phu_trach_gia_hang),$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$.push($condition$$.phu_trach_gia_hang),$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$={id_app:$_q$jscomp$3_id_app_ma_nvs$$,$or:[{phu_trach:{$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$}},
|
|
8
|
-
{user:{$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$}}]},$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$=(await global.getModel("dmnv").find($_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$,{ma_nv:1}).lean()).map($nv$$=>$nv$$.ma_nv),$condition$$.ma_nv_giao_hang={$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$});
|
|
9
|
-
!$condition$$.phu_xe&&$condition$$.phu_trach_phu_xe&&($_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$=await permistion.dsDangPhuTrach($_q$jscomp$3_id_app_ma_nvs$$,$condition$$.phu_trach_phu_xe),$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$.push($condition$$.phu_trach_phu_xe),$_q$jscomp$3_id_app_ma_nvs$$={id_app:$_q$jscomp$3_id_app_ma_nvs$$,$or:[{phu_trach:{$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$}},
|
|
10
|
-
{user:{$in:$_q__q$jscomp$1__q$jscomp$2_ds_phu_trach$jscomp$1_ds_phu_trach$jscomp$2_ds_phu_trach$jscomp$3_ma_nvs_ma_nvs$$}}]},$_q$jscomp$3_id_app_ma_nvs$$=(await global.getModel("dmnv").find($_q$jscomp$3_id_app_ma_nvs$$,{ma_nv:1}).lean()).map($nv$$=>$nv$$.ma_nv),$condition$$.phu_xe={$in:$_q$jscomp$3_id_app_ma_nvs$$});$condition$$.bu_tru=!0;$condition$$.groupBy=$condition$$.groupBy||["tk","ma_kh"];async.parallel({dk:$callback$$=>{const $query$$={};underscore.extend($query$$,$condition$$);$query$$.ngay=
|
|
11
|
-
$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,
|
|
12
|
-
$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_nv_giao_hang&&($query$$.ma_nv_giao_hang=$condition$$.ma_nv_giao_hang);$condition$$.phu_xe&&($query$$.phu_xe=
|
|
13
|
-
$condition$$.phu_xe);$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")};
|
|
14
|
-
$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 ngay_ct_full listinfo_code 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$$($data$jscomp$1_error$$);
|
|
15
|
-
$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};$results_so_ck$$>0&&($dong_cuoi_ky$$.ps_no=$results_so_ck$$);
|
|
16
|
-
$so_ck_nt$$>0&&($dong_cuoi_ky$$.ps_no_nt=$so_ck_nt$$);$results_so_ck$$<0&&($dong_cuoi_ky$$.ps_co=Math.abs($results_so_ck$$));$so_ck_nt$$<0&&($dong_cuoi_ky$$.ps_co_nt=Math.abs($so_ck_nt$$));$data$jscomp$1_error$$.push($dong_cuoi_ky$$);$data$jscomp$1_error$$=$data$jscomp$1_error$$.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$$=
|
|
17
|
-
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$$:
|
|
18
|
-
($b$$.ps_no>0)-($a$$.ps_no>0)});if($req$$.query.rs_type==="HTML"){let $html$$="<tr><th>N\u1ed9i dung</th><th>Thu</th><th>Tr\u1ea3</th></tr>";$data$jscomp$1_error$$.forEach($r$$=>{$html$$=`${$html$$}
|
|
1
|
+
const sctcnkh=require("../../libs/sctcnkh"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),Numeral=require("numeral");
|
|
2
|
+
module.exports=function($router$$){new controller($router$$,"sctcnkh",async function($req$$,$callback$$){const $condition$$=$req$$.query;$condition$$.ma_kh||($condition$$.ma_kh=$req$$.user.email);$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());try{const $report$$=await sctcnkh($condition$$);if($req$$.query.rs_type==="HTML"){let $html$$="<tr><th>N\u1ed9i dung</th><th>Thu</th><th>Tr\u1ea3</th></tr>";
|
|
3
|
+
$report$$.forEach($r$$=>{$html$$=`${$html$$}
|
|
19
4
|
<tr style="font-weight:${$r$$.bold?"bold":"normal"}">
|
|
20
5
|
<td>
|
|
21
6
|
<div>${$r$$.dien_giai||""}</div>
|
|
@@ -23,4 +8,4 @@ new Date($a$$.ngay_ct_full)-new Date($b$$.ngay_ct_full);if($date2Diff_dateDiff_s
|
|
|
23
8
|
</td>
|
|
24
9
|
<td style="text-align:right">${$r$$.ps_no?Numeral($r$$.ps_no).format():""}</td>
|
|
25
10
|
<td style="text-align:right">${$r$$.ps_co?Numeral($r$$.ps_co).format():""}</td>
|
|
26
|
-
</tr>`});$html$$="<table>"+$html$$+"</table>";return $callback$$(null,$html$$)}$callback$$(null,$
|
|
11
|
+
</tr>`});$html$$="<table>"+$html$$+"</table>";return $callback$$(null,$html$$)}$callback$$(null,$report$$)}catch($e$$){$callback$$($e$$)}})};
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
module.exports=function($router$$){new controller($router$$,"socaitk",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$$.ma_dvcs||($condition$$.ma_dvcs="");$condition$$.bu_tru=!0;async.parallel({dk:function($callback$$){const $query$$={};underscore.extend($query$$,$condition$$);$query$$.ngay=$condition$$.tu_ngay;
|
|
3
|
-
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$$)})},ps:function($callback$$){Vsocai.find({id_app:$condition$$.id_app,tk:{$regex:"^"+$condition$$.tk,$options:"i"},ma_dvcs:{$regex:$condition$$.ma_dvcs,
|
|
4
|
-
$options:"i"},ngay_ct:{$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay}},function($error$$,$result$$){if($error$$)return $callback$$($error$$);$result$$.forEach(function($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,
|
|
5
|
-
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:!0,sortData:!0,model:$condition$$.model_socai||"socai"})}},function($error$$,$results$$){if($error$$)return $callback$$($error$$);const $data$$=$results$$.ps;$data$$.push($results$$.dk);$data$$.joinModel2($req$$.query.id_app,Customer,[{where:"ma_kh",fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){var $report_so_ck_nt$$=$data$$.csum("ps_no_nt",{systotal:1})-$data$$.csum("ps_co_nt",
|
|
6
|
-
{systotal:1});const $so_ck$$=$data$$.csum("ps_no",{systotal:1})-$data$$.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};$report_so_ck_nt$$>0&&($dong_cuoi_ky$$.ps_no_nt=$report_so_ck_nt$$);$so_ck$$>0&&($dong_cuoi_ky$$.ps_no=$so_ck$$);$report_so_ck_nt$$<0&&($dong_cuoi_ky$$.ps_co_nt=Math.abs($report_so_ck_nt$$));$so_ck$$<0&&($dong_cuoi_ky$$.ps_co=Math.abs($so_ck$$));$data$$.push($dong_cuoi_ky$$);$report_so_ck_nt$$=
|
|
7
|
-
$data$$.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);
|
|
8
|
-
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)});$callback$$(null,$report_so_ck_nt$$)})})})};
|
|
1
|
+
const socaitk=require("../../libs/socaitk"),controller=require("../../controllers/controllerRPT");module.exports=function($router$$){new controller($router$$,"socaitk",async function($condition_req$$,$callback$$){$condition_req$$=$condition_req$$.query;try{const $report$$=await socaitk($condition_req$$);$callback$$(null,$report$$)}catch($e$$){$callback$$($e$$)}})};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const model=global.getModel("app"),Participant=global.getModel("participant"),User=global.getModel("user"),UserGroup=global.getModel("usergroup"),Customer=global.getModel("customer"),Trangthai=global.getModel("trangthai"),_Notification=global.getModel("notification"),underscore=require("underscore"),async=require("async"),{isSupperAdmin,isMobilePhone}=require("../../libs/utils"),permission=require("../../libs/permission"),controller=require("../../controllers/controller"),fs=require("fs"),path=require("path"),
|
|
2
|
-
StaticPool=require("../../libs/WorkerStaticPool"),calcTimeExpired=$item$$=>{$item$$.expire_date?($item$$.so_ngay_con_lai=Math.roundBy(($item$$.expire_date-new Date)/864E5,0),$item$$.so_ngay_con_lai<0&&($item$$.so_ngay_con_lai=0)):$item$$.so_ngay_con_lai=0},getParticipantInfo=async($user$$,$item$$,$callback$$)=>{let $_ps$$=await Participant.getPar($user$$,$item$$);$item$$.appAdmin=$_ps$$.admin;$item$$.group_id=$_ps$$.group_id;$item$$.phu_trach_nhom=($_ps$$.group||
|
|
3
|
-
|
|
4
|
-
($obj$$.default_password||$user$$.email+"@123456"));try{await $user$$.save();let $_p$$={email:$_p_owner$$,name:$_p_owner$$.split("@")[0],admin:!0,active:!0,cancel:!1,id_app:$obj$$._id.toString()};await Participant.asyncCreateParticipant($_p$$)}catch($e$$){Logger.error("[createUserOwner] create participant for owner user ",$_p_owner$$,$e$$)}}}$_p_owner$$={email:$obj$$.user_created,name:$obj$$.user_created.split("@")[0],admin:!0,active:!0,cancel:!1,id_app:$obj$$._id.toString()};
|
|
5
|
-
$obj$$.user_created,$e$$)}try{await Participant.asyncCreateParticipant({email:"public",name:"Public",admin:!1,active:!0,cancel:!1,id_app:$obj$$._id.toString()})}catch($e$$){Logger.error("[create public participant]",$e$$)}$next$$(null,$obj$$)};
|
|
2
|
+
StaticPool=require("../../libs/WorkerStaticPool"),{encrypt}=require("../../libs/utils"),calcTimeExpired=$item$$=>{$item$$.expire_date?($item$$.so_ngay_con_lai=Math.roundBy(($item$$.expire_date-new Date)/864E5,0),$item$$.so_ngay_con_lai<0&&($item$$.so_ngay_con_lai=0)):$item$$.so_ngay_con_lai=0},getParticipantInfo=async($user$$,$item$$,$callback$$)=>{let $_ps$$=await Participant.getPar($user$$,$item$$);$item$$.appAdmin=$_ps$$.admin;$item$$.group_id=$_ps$$.group_id;$item$$.phu_trach_nhom=($_ps$$.group||
|
|
3
|
+
{}).phu_trach==$user$$.email;$item$$.par=$_ps$$;$callback$$()},createUserOwner=async($obj$$,$next$$)=>{var $_p_owner$$=$obj$$.owner;if($_p_owner$$&&$obj$$.user_created!==$_p_owner$$){$_p_owner$$=$_p_owner$$.toLowerCase();let $user$$=await User.findOne({email:$_p_owner$$});if(!$user$$){$user$$=new User;$user$$.email=$_p_owner$$;$user$$.name=$_p_owner$$.split("@")[0];$user$$.local={};$user$$.local.email=$user$$.email;$user$$.local.name=$user$$.name;$user$$.local.picture="/images/avatar.jpg";$user$$.local.password=
|
|
4
|
+
$user$$.generateHash($user$$.email+($obj$$.default_password||$user$$.email+"@123456"));try{await $user$$.save();let $_p$$={email:$_p_owner$$,name:$_p_owner$$.split("@")[0],admin:!0,active:!0,cancel:!1,id_app:$obj$$._id.toString()};await Participant.asyncCreateParticipant($_p$$)}catch($e$$){Logger.error("[createUserOwner] create participant for owner user ",$_p_owner$$,$e$$)}}}$_p_owner$$={email:$obj$$.user_created,name:$obj$$.user_created.split("@")[0],admin:!0,active:!0,cancel:!1,id_app:$obj$$._id.toString()};
|
|
5
|
+
try{await Participant.asyncCreateParticipant($_p_owner$$)}catch($e$$){Logger.error("[create participant for created user ]",$obj$$.user_created,$e$$)}try{await Participant.asyncCreateParticipant({email:"public",name:"Public",admin:!1,active:!0,cancel:!1,id_app:$obj$$._id.toString()})}catch($e$$){Logger.error("[create public participant]",$e$$)}$next$$(null,$obj$$)};
|
|
6
6
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"app",{unique:["app_code"],require_id_app:!1,sort:{name:1}});$contr_router$$.route();$contr_router$$.found=($user$$,$condition$$,$items$$,$fn$$)=>{async.mapLimit($items$$,20,($item$$,$callback$$)=>{calcTimeExpired($item$$);$callback$$()},$e$$=>{$e$$&&Logger.error($e$$);$fn$$(null,$items$$)})};$contr_router$$.view=function($user$$,$items$$,$fn$$){$items$$.forEach($item$$=>{$item$$.trang_thai=$item$$.trang_thai||
|
|
7
7
|
"0"});async.parallel({trangthai:$callback$$=>{$items$$.joinModel2(null,Trangthai,{where:$item$$=>({ma_ct:"APP",ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai","color"]},()=>{$callback$$()})},show_gia_von_va_nguoi_duyet:$callback$$=>{async.map($items$$,($item$$,$callback$$)=>{$item$$.options=$item$$.options||{};$item$$.show_gia_von=!0;$callback$$()},()=>{$callback$$()})},get_par_info:$callback$$=>{async.mapLimit($items$$,20,($item$$,$callback$$)=>{getParticipantInfo($user$$,$item$$,()=>
|
|
8
8
|
{$item$$.appAdmin||(delete $item$$.viettel_user,delete $item$$.viettel_password,delete $item$$.viettel_url_service,delete $item$$.vnpt_user,delete $item$$.vnpt_password,delete $item$$.vnpt_url_service,delete $item$$.easy_user,delete $item$$.easy_password,delete $item$$.easy_url_service,delete $item$$.zalo_app_id,delete $item$$.zalo_secret_key,delete $item$$.zalo_code,delete $item$$.zalo_oa_id,delete $item$$.zalo_code_verifier,delete $item$$.zalo_code_challenge,delete $item$$.zalo_access_token,delete $item$$.zalo_refresh_token,
|
|
@@ -12,21 +12,22 @@ $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp c\u00f4ng ty n\u00
|
|
|
12
12
|
{$or:$or2$$}]:$condition$$.$or=$_appsOfUser_or1$$;$condition$$.working||(isSupperAdmin($user$$.email.toLowerCase())?delete $user_created_condition$$.user_created:underscore.contains(configs.admins,$user$$.email)&&($user_created_condition$$.user_created={$nin:["invncur@gmail.com","admin"]}));delete $condition$$.working;$user$$.token_id_app&&($condition$$._id=$user$$.token_id_app);$user$$.token_id_apps&&$user$$.token_id_apps.length>0&&($condition$$._id={$in:$user$$.token_id_apps});$next$$(null,$condition$$)}catch($e$$){Logger.error("[sys-app] finding:",
|
|
13
13
|
$e$$),$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.creating=async function($user$$,$obj$$,$next$$){if($user$$.token_id_app||$user$$.token_id_apps&&$user$$.token_id_apps.length>0)return $next$$({error:"Kh\u00f4ng th\u1ec3 t\u1ea1o c\u00f4ng ty m\u1edbi v\u1edbi m\u1eadt kh\u1ea9u b\u1ea1n \u0111ang s\u1eed d\u1ee5ng. H\u00e3y \u0111\u0103ng nh\u1eadp b\u1eb1ng m\u1eadt kh\u1ea9u ch\u00ednh c\u1ee7a b\u1ea1n \u0111\u1ec3 t\u1ea1o c\u00f4ng ty m\u1edbi"});if(!$user$$.admin){var $now_sl_da_tao$$=
|
|
14
14
|
await model.countDocuments({user_created:$user$$.email});$user$$=await global.getModel("user").findOne({email:$user$$.email}).lean();if($now_sl_da_tao$$>=($user$$?.so_luong_db||1))return $next$$("S\u1ed1 l\u01b0\u1ee3ng c\u00f4ng ty b\u1ea1n c\u00f3 th\u1ec3 kh\u1edfi t\u1ea1o \u0111\u00e3 h\u1ebft.");delete $obj$$.allow_modules;delete $obj$$.trang_thai;delete $obj$$.sale_online}if(!$obj$$.ngay_dn)return $next$$(Error("Ng\u00e0y \u0111\u1ea7u n\u0103m t\u00e0i ch\u00ednh kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng"));
|
|
15
|
-
$obj$$.ngay_ks||($obj$$.ngay_ks=new Date("2000-01-01"));$obj$$.ngay_ky1||($obj$$.ngay_ky1=new Date);$now_sl_da_tao$$=new Date;$now_sl_da_tao$$.setMonth($now_sl_da_tao$$.getMonth()+1);$obj$$.expire_date=new Date($now_sl_da_tao$$);$obj$$.nam_bd=$obj$$.ngay_ky1.getFullYear();$obj$$.options=$obj$$.options||{};$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj
|
|
16
|
-
async $error$$=>{if($error$$)return Logger.error("[app][created] Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi. L\u1ed7i:"+$error$$),$next$$(`Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi. L\u1ed7i: ${$error$$.message||$error$$.error||$error$$}`);Logger.warn("\u2705 [app][created] \u0111\u00e3 kh\u1edfi t\u1ea1o xong d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi");
|
|
17
|
-
$e$$),$next$$(`Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o ng\u01b0\u1eddi d\u00f9ng cho c\u00f4ng ty m\u1edbi. L\u1ed7i: ${$e$$.message||$e$$.error||$e$$}`);Logger.warn("\u2705 [app][created] \u0111\u00e3 t\u1ea1o xong c\u00f4ng ty m\u1edbi");$next$$(null,$obj$$)})})};$contr_router$$.updating=async function($user$$,$data$$,$obj
|
|
18
|
-
permission.isAdmin($obj$$._id,$user$$.email,function($e$$,$admin$$){if(!$admin$$&&!$user$$.admin)return $next$$($user$$.email+" have not permission");$data$$.ngay_ky1&&
|
|
19
|
-
$e$$=>{$e$$&&Logger.error($e$$);$next$$(null,$obj$$)})};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if($user$$.email!=$obj$$.user_created&&!$user$$.admin)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a c\u00f4ng ty n\u00e0y")
|
|
20
|
-
$file$$);underscore.has($_model$$.schema.paths,"id_app")?$_model$$.deleteMany({id_app:$obj$$._id},()=>{Logger.info("Deleted ",$file$$,"id_app",$obj$$._id);$callback$$()}):$callback$$()}catch($e$$){Logger.error("Can't delete mode",$file$$,"error:"
|
|
21
|
-
function($backupWorkerFile_e$$,$admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n backup d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.backupPool||($backupWorkerFile_e$$=path.dirname(path.dirname(__dirname))+
|
|
22
|
-
$req$$.user.email,$req$$.user_agent,$req$$);global.backupPool.exec({id:$id_app$$,user:$email$$,dateFrom:$req$$.query.dateFrom,dateTo:$req$$.query.dateTo,backup_app_info:$req$$.query.backup_app_info,configs:{database:global.configs.database}}
|
|
23
|
-
$res$$){let $fileZip$$;$req$$.files&&$req$$.files.backup&&$req$$.files.backup.path?$fileZip$$=$req$$.files.backup.path:$req$$.body&&$req$$.body.file_from_server&&fs.existsSync($req$$.body.file_from_server)&&($fileZip
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
$response
|
|
27
|
-
|
|
28
|
-
$_appsOfUser$jscomp$1_email$$=$
|
|
29
|
-
$
|
|
15
|
+
$obj$$.ngay_ks||($obj$$.ngay_ks=new Date("2000-01-01"));$obj$$.ngay_ky1||($obj$$.ngay_ky1=new Date);$now_sl_da_tao$$=new Date;$now_sl_da_tao$$.setMonth($now_sl_da_tao$$.getMonth()+1);$obj$$.expire_date=new Date($now_sl_da_tao$$);$obj$$.nam_bd=$obj$$.ngay_ky1.getFullYear();$obj$$.options=$obj$$.options||{};$obj$$.openapi_key&&!$obj$$.openapi_key.startsWith("flexbiz::")&&($obj$$.openapi_key="flexbiz::"+encrypt($obj$$.openapi_key));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,
|
|
16
|
+
$next$$){Logger.warn("\ud83d\udd25[app][created] Kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi...");require("../../libs/initDatabase").init($obj$$._id,async $error$$=>{if($error$$)return Logger.error("[app][created] Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi. L\u1ed7i:"+$error$$),$next$$(`Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi. L\u1ed7i: ${$error$$.message||$error$$.error||$error$$}`);Logger.warn("\u2705 [app][created] \u0111\u00e3 kh\u1edfi t\u1ea1o xong d\u1eef li\u1ec7u cho c\u00f4ng ty m\u1edbi");
|
|
17
|
+
createUserOwner($obj$$,$e$$=>{if($e$$)return Logger.error("[app][created] Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o ng\u01b0\u1eddi d\u00f9ng cho c\u00f4ng ty m\u1edbi. L\u1ed7i:",$e$$),$next$$(`Kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o ng\u01b0\u1eddi d\u00f9ng cho c\u00f4ng ty m\u1edbi. L\u1ed7i: ${$e$$.message||$e$$.error||$e$$}`);Logger.warn("\u2705 [app][created] \u0111\u00e3 t\u1ea1o xong c\u00f4ng ty m\u1edbi");$next$$(null,$obj$$)})})};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,
|
|
18
|
+
$next$$){delete $data$$.ngay_ks;$user$$.admin||(delete $data$$.allow_modules,delete $data$$.expire_date,delete $data$$.trang_thai,delete $data$$.sale_online,delete $data$$.menu_code,delete $data$$.openapi_key);$data$$.openapi_key&&!$data$$.openapi_key.startsWith("flexbiz::")&&($data$$.openapi_key="flexbiz::"+encrypt($data$$.openapi_key));permission.isAdmin($obj$$._id,$user$$.email,function($e$$,$admin$$){if(!$admin$$&&!$user$$.admin)return $next$$($user$$.email+" have not permission");$data$$.ngay_ky1&&
|
|
19
|
+
($data$$.nam_bd=(new Date($data$$.ngay_ky1)).getFullYear());$data$$.options&&Object.keys($data$$.options).length===0&&delete $data$$.options;$data$$.options=$data$$.options?{...$obj$$.options,...$data$$.options}:$obj$$.options||{};$next$$(null,$data$$,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){createUserOwner($obj$$,$e$$=>{$e$$&&Logger.error($e$$);$next$$(null,$obj$$)})};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if($user$$.email!=$obj$$.user_created&&!$user$$.admin)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a c\u00f4ng ty n\u00e0y");
|
|
20
|
+
$next$$(null,$obj$$)};$contr_router$$.deleted=function($user$$,$obj$$,$next$$){async.mapLimit(fs.readdirSync(path.dirname(path.dirname(__dirname))+"/models").filter($f$$=>$f$$.indexOf(".js")>0),20,($file$$,$callback$$)=>{try{let $_model$$=global.getModel(""+$file$$);underscore.has($_model$$.schema.paths,"id_app")?$_model$$.deleteMany({id_app:$obj$$._id},()=>{Logger.info("Deleted ",$file$$,"id_app",$obj$$._id);$callback$$()}):$callback$$()}catch($e$$){Logger.error("Can't delete mode",$file$$,"error:",
|
|
21
|
+
$e$$.message),$callback$$()}},()=>{$next$$(null,$obj$$)})};$contr_router$$.router.route($contr_router$$.route_name+"/backup/:id").get(function($req$$,$res$$){let $email$$=$req$$.user.email,$id_app$$=$req$$.params.id;permission.isAdmin($id_app$$,$email$$,function($backupWorkerFile_e$$,$admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n backup d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.backupPool||($backupWorkerFile_e$$=path.dirname(path.dirname(__dirname))+
|
|
22
|
+
"/workers/backupApp.js",global.backupPool=new StaticPool($backupWorkerFile_e$$,0,1,18E5));global.getModel("log").create({id_app:$id_app$$,id_func:"app",action:"BACKUP",data:{dateFrom:$req$$.query.dateFrom,dateTo:$req$$.query.dateTo,backup_app_info:$req$$.query.backup_app_info}},$req$$.user.email,$req$$.user_agent,$req$$);global.backupPool.exec({id:$id_app$$,user:$email$$,dateFrom:$req$$.query.dateFrom,dateTo:$req$$.query.dateTo,backup_app_info:$req$$.query.backup_app_info,configs:{database:global.configs.database}},
|
|
23
|
+
$response$$=>{if($response$$.error)return $res$$.status(400).send($response$$.error);Logger.info("[app][backup]",JSON.stringify($response$$,null,2));$res$$.sendFile($response$$.file)})})});$contr_router$$.router.route($contr_router$$.route_name+"/restore/:id").post(async function($req$$,$res$$){let $fileZip$$;$req$$.files&&$req$$.files.backup&&$req$$.files.backup.path?$fileZip$$=$req$$.files.backup.path:$req$$.body&&$req$$.body.file_from_server&&fs.existsSync($req$$.body.file_from_server)&&($fileZip$$=
|
|
24
|
+
$req$$.body.file_from_server);if(!$fileZip$$)return $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file backup");let $email$$=$req$$.user.email,$id_app$$=$req$$.params.id;permission.isAdmin($id_app$$,$email$$,function($backupWorkerFile$jscomp$1_e$$,$admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n restore d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.backupPool||($backupWorkerFile$jscomp$1_e$$=path.dirname(path.dirname(__dirname))+
|
|
25
|
+
"/workers/backupApp.js",global.backupPool=new StaticPool($backupWorkerFile$jscomp$1_e$$,0,1,18E5));global.backupPool.exec({id:$id_app$$,user:$email$$,configs:{database:global.configs.database}},$response$$=>{if($response$$.error)return $res$$.status(400).send($response$$.error);global.getModel("log").create({id_app:$id_app$$,id_func:"app",action:"RESTORE",data:{backup_file:path.dirname(path.dirname(__dirname))+"/backup/"+$response$$.file,restore_file:$fileZip$$}},$req$$.user.email,$req$$.user_agent,
|
|
26
|
+
$req$$);global.restorePool||($response$$=path.dirname(path.dirname(__dirname))+"/workers/restoreApp.js",global.restorePool=new StaticPool($response$$,0,1,18E5));global.restorePool.exec({id:$id_app$$,user:$email$$,file:$fileZip$$,configs:{database:global.configs.database}},$response$$=>{$response$$.error?(Logger.error("[restore data] l\u1ed7i khi restore data",$response$$.error),_Notification.createNotification($email$$,$email$$,$response$$.error,$response$$.error,null,null,!0,$req$$.access_token,
|
|
27
|
+
!0)):(Logger.info("[restore data] \u0111\u00e3 ho\u00e0n th\u00e0nh restore d\u1eef li\u1ec7u. \u0110ang g\u1eedi email th\u00f4ng b\u00e1o k\u1ebft qu\u1ea3"),_Notification.createNotification($email$$,$email$$,$response$$.result,$response$$.result,null,null,!0,$req$$.access_token,!0))});$res$$.send("Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n. Xin ch\u1edd trong gi\u00e2y l\u00e1t")})})});$contr_router$$.router.route($contr_router$$.route_name+"/apps/:email_owner").get(async function($query_req$$,
|
|
28
|
+
$res$$){var $_appsOfUser$jscomp$1_email$$=$query_req$$.params.email_owner;if(!underscore.contains(configs.admins,$query_req$$.user.email)&&!isSupperAdmin($query_req$$.user.email.toLowerCase()))return $res$$.status(403).send("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp t\u00ednh n\u0103ng n\u00e0y");$query_req$$={};$_appsOfUser$jscomp$1_email$$.toLowerCase()!="all"&&($_appsOfUser$jscomp$1_email$$=await Participant.appsOfUser($_appsOfUser$jscomp$1_email$$),$_appsOfUser$jscomp$1_email$$=$_appsOfUser$jscomp$1_email$$.map($p$$=>
|
|
29
|
+
$p$$.id_app),$query_req$$._id={$in:$_appsOfUser$jscomp$1_email$$});model.find($query_req$$).lean().exec(function($error$$,$apps$$){if($error$$)return $res$$.status(400).send($error$$);$apps$$.forEach(function($item$$){calcTimeExpired($item$$)});$res$$.send($apps$$)})});$contr_router$$.router.route($contr_router$$.route_name+"/remove/:id").get(async($app_req$$,$res$$)=>{var $id_app$jscomp$2_p$$=$app_req$$.params.id;let $email$$=$app_req$$.user.email;$app_req$$=await model.findById($id_app$jscomp$2_p$$);
|
|
30
|
+
if(!$app_req$$)return $res$$.status(400).send("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$app_req$$.participants&&($app_req$$.participants=$app_req$$.participants.filter($p$$=>$p$$.email!==$email$$),$app_req$$.save(()=>{}));if($id_app$jscomp$2_p$$=await Participant.findOne({id_app:$id_app$jscomp$2_p$$,email:$email$$}))await Participant.deleteOne({_id:$id_app$jscomp$2_p$$._id}),$id_app$jscomp$2_p$$=`${$id_app$jscomp$2_p$$.name} (${$email$$}) \u0111\u00e3 r\u1eddi kh\u1ecfi c\u00f4ng ty ${$app_req$$.name}`,
|
|
30
31
|
_Notification.createNotification($email$$,$app_req$$.user_created,$id_app$jscomp$2_p$$,$id_app$jscomp$2_p$$);$res$$.send("ok")});$contr_router$$.router.route($contr_router$$.route_name+"/join/:id/:group").get(async($req$$,$res$$)=>{let $id_app$$=$req$$.params.id,$group_id$$=$req$$.params.group,$email$$=$req$$.user.email,$user$$=$req$$.user,$app$$=await model.findById($id_app$$);if(!$app$$)return $res$$.status(400).send("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if(!await Participant.findOne({id_app:$id_app$$,
|
|
31
32
|
email:$email$$})&&$group_id$$&&global.mongoose.Types.ObjectId.isValid($group_id$$))try{if(!await UserGroup.findOne({_id:$group_id$$,is_customer_group:!0}))return $res$$.status(400).send("Nh\u00f3m kh\u00e1ch h\u00e0ng kh\u00f4ng t\u1ed3n t\u1ea1i");Participant.createParticipant({id_app:$id_app$$,email:$email$$,name:$user$$.name,group_id:$group_id$$,active:!0},$cust_e$$=>{if($cust_e$$)return $res$$.status(400).send("can't add user",$user$$.email,"to company",$app$$.name);$cust_e$$={ten_kh:$user$$.name,
|
|
32
33
|
email:$user$$.email,id_app:$id_app$$,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};isMobilePhone($user$$.email,["vi-VN"])&&($cust_e$$.dien_thoai=$user$$.email);try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){Logger.info("Auto create new customer with error:",$e$$.message)}$res$$.send("ok")})}catch($e$$){$res$$.status(400).send($e$$.message)}$res$$.send("ok")})};
|