flexbiz-server 12.7.6 → 12.7.7
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 +3 -3
- package/server/app.js +23 -19
- package/server/auths/rateLimiterMiddleware.js +3 -3
- package/server/controllers/controller.js +41 -41
- package/server/controllers/controllerUtils.js +61 -61
- package/server/controllers/controllerUtils_v1.js +72 -0
- package/server/controllers/controller_old.js +129 -0
- package/server/controllers/createHandler.js +34 -34
- package/server/controllers/createHandler_old.js +35 -0
- package/server/controllers/deleteHandler.js +11 -12
- package/server/controllers/deleteHandler_old.js +12 -0
- package/server/controllers/exportHandler.js +19 -17
- package/server/controllers/exportHandler_old.js +17 -0
- package/server/controllers/findHandler.js +61 -55
- package/server/controllers/findHandler_old.js +74 -0
- package/server/controllers/importFromGsHandler.js +10 -10
- package/server/controllers/importFromJsonHandler.js +6 -6
- package/server/controllers/importFromJsonHandler_old.js +6 -0
- package/server/controllers/updateBookHandler.js +1 -1
- package/server/controllers/updateFieldHandler.js +12 -13
- package/server/controllers/updateFieldHandler_old.js +13 -0
- package/server/controllers/updateHandler.js +38 -40
- package/server/controllers/updateHandler_old.js +40 -0
- package/server/controllers/viewHandler.js +13 -14
- package/server/controllers/viewHandler_old.js +14 -0
- package/server/flow/nodes/aiAnalysis.js +1 -1
- package/server/global.js +2 -3
- package/server/libs/WorkerStaticPool.js +14 -14
- package/server/libs/asyncCompat.js +10 -0
- package/server/libs/createSocaitheongay.js +1 -1
- package/server/libs/invoiceVnpt.js +1 -1
- package/server/libs/post-book.js +2 -2
- package/server/libs/post-sokho.js +5 -5
- package/server/libs/redis-cache.js +2 -2
- package/server/models/assabcihandler.js +1 -1
- package/server/models/counter.js +2 -2
- package/server/models/listinfo.js +200 -225
- package/server/models/listinfo_old.js +124 -0
- package/server/models/po1.js +4 -4
- package/server/models/purchase_contract.js +3 -3
- package/server/models/smsaccount.js +2 -2
- package/server/models/tdttco.js +3 -3
- package/server/models/tdttno.js +3 -3
- package/server/modules/lists/ls-afflink.js +1 -1
- package/server/modules/lists/ls-assbooking.js +1 -1
- package/server/modules/lists/ls-assinvestment.js +11 -11
- package/server/modules/lists/ls-asskey.js +2 -2
- package/server/modules/lists/ls-assneedtobuy.js +1 -1
- package/server/modules/lists/ls-assperiod.js +1 -1
- package/server/modules/lists/ls-asssell.js +1 -1
- package/server/modules/lists/ls-cart.js +14 -14
- package/server/modules/lists/ls-congdoansx.js +1 -1
- package/server/modules/lists/ls-consultant.js +2 -2
- package/server/modules/lists/ls-dkhoc.js +2 -2
- package/server/modules/lists/ls-dmban.js +1 -1
- package/server/modules/lists/ls-dmbp.js +2 -2
- package/server/modules/lists/ls-dmdoi.js +1 -1
- package/server/modules/lists/ls-dmnhtask.js +2 -2
- package/server/modules/lists/ls-dmvt.js +3 -3
- package/server/modules/lists/ls-file.js +1 -1
- package/server/modules/lists/ls-giaoca.js +1 -1
- package/server/modules/lists/ls-introducer.js +2 -2
- package/server/modules/lists/ls-kbm-bcqt.js +1 -1
- package/server/modules/lists/ls-news.js +1 -1
- package/server/modules/lists/ls-participant.js +1 -1
- package/server/modules/lists/ls-rpt.js +1 -1
- package/server/modules/lists/ls-smsaccount.js +1 -1
- package/server/modules/lists/ls-sosanxuat.js +1 -1
- package/server/modules/lists/ls-support.js +1 -1
- package/server/modules/public/callin.js +1 -1
- package/server/modules/reports/calc-tinhgiafifo.js +1 -1
- package/server/modules/reports/calc-tinhgiatb.js +1 -1
- package/server/modules/reports/calc-tinhgiathanh.js +1 -1
- package/server/modules/reports/calc-tinhluong.js +1 -1
- package/server/modules/reports/rp-assbonus.js +1 -1
- package/server/modules/reports/rp-bkchamcong.js +1 -1
- package/server/modules/reports/rp-cdpsdiem.js +1 -1
- package/server/modules/reports/rp-cdpskh.js +1 -1
- package/server/modules/reports/rp-cdpsnphep.js +1 -1
- package/server/modules/reports/rp-kcsns.js +1 -1
- package/server/modules/reports/rp-sctbhxh.js +1 -1
- package/server/modules/reports/rp-sctluong.js +1 -1
- package/server/modules/reports/rp-sctthuetncn.js +1 -1
- package/server/modules/reports/rp-sctvt.js +1 -1
- package/server/modules/reports/rp-sctvtnpp.js +1 -1
- package/server/modules/reports/rp-sctvttt.js +1 -1
- package/server/modules/reports/rp-thgt.js +1 -1
- package/server/modules/systems/sys-labelinfo.js +2 -3
- package/server/modules/systems/sys-listinfo.js +1 -1
- package/server/modules/systems/sys-menuinfo.js +1 -4
- package/server/modules/systems/sys-moduleinfo.js +2 -4
- package/server/modules/systems/sys-notification.js +1 -1
- package/server/workers/backupApp.js +1 -1
- package/server/workers/calcGrid.js +1 -1
- package/server/workers/runScript.js +1 -1
|
@@ -28,9 +28,9 @@ moment().startOf("date").toDate(),$_ma_vt_den_ngay$$=moment().endOf("date").toDa
|
|
|
28
28
|
{$in:[null,"",$q$$.ma_kh]});$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$=await $$or_Model$$.find($_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$,{ma_vt:1,ma_nvt:1}).lean();$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$.length?($$or_Model$$=[],$_ma_vt_den_ngay$$=$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$.filter($r$$=>$r$$.ma_vt).map($r$$=>$r$$.ma_vt),$_ma_vt_den_ngay$$.length&&$$or_Model$$.push({ma_vt:{$in:$_ma_vt_den_ngay$$}}),$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$=$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$.filter($r$$=>
|
|
29
29
|
$r$$.ma_nvt&&!$r$$.ma_vt).map($r$$=>$r$$.ma_nvt),$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$.length&&$$or_Model$$.push({ma_nvt:{$in:$_ma_nvt__q$jscomp$1_rs$jscomp$2_tu_ngay$$}}),$$or_Model$$.length&&($condition$$.$and=[...($condition$$.$and||[]),{$or:$$or_Model$$}])):$condition$$.ma_vt="__zzzzzzz__"};const $giaRePromise$$=$condition$$.low_price?$buildSanPhamCoChinhSach_wishlistPromise$$(global.getModel("dmgiaban")).then(()=>{delete $condition$$.low_price}):Promise.resolve(),$discountPromise$$=$condition$$.has_discount?
|
|
30
30
|
$buildSanPhamCoChinhSach_wishlistPromise$$(Dmchietkhau).then(()=>{delete $condition$$.has_discount}):Promise.resolve();await Promise.all([$barcodePromise$$,$nvtPromise$$,$nvt2Promise$$,$nvt3Promise$$,$nvt4Promise$$,$danhmucPromise$$,$danhmucCtyPromise$$,$giaRePromise$$,$discountPromise$$]);delete $condition$$.has_discount;$condition$$.$and?.length===0&&delete $condition$$.$and;$next$$(null,$condition$$)}catch($e$$){$next$$($e$$)}},onRightByItem:($user$$,$condition$$,$next$$)=>$next$$(null,$condition$$)});
|
|
31
|
-
$contr_router$$.route();$contr_router$$.validating=($
|
|
32
|
-
0&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=async($check_arise_user$$,$data$$,$obj$$,$next$$)=>{$data$$.warranty_policy===
|
|
33
|
-
for(const $f$$ of["ma_nvt2","ma_nvt3","ma_nvt4"])$data$$[$f$$]===void 0&&($data$$[$f$$]=$obj$$[$f$$]),$data$$[$f$$]&&($data$$[$f$$]=Array.isArray($data$$[$f$$])?[...(new Set($data$$[$f$$]))]:[$data$$[$f$$]]);$data$$.combo?.length>0&&($data$$.tg_tk=!1);[$check_arise_user$$]=await Promise.all([global.getModel("sokho").findOne({ma_vt:$obj$$.ma_vt,id_app:$obj$$.id_app},{_id:1})]);if($check_arise_user$$&&$data$$.ma_vt&&$data$$.ma_vt!==$obj$$.ma_vt)return $next$$(`V\u1eadt t\u01b0 ${$obj$$.ten_vt}(${$obj$$.ma_vt}) \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i m\u00e3 v\u1eadt t\u01b0`);
|
|
31
|
+
$contr_router$$.route();$contr_router$$.validating=async($sequence_user$$,$obj$$,$next$$,$options$$={})=>{$options$$.action!=="add"||$obj$$.ma_vt||($sequence_user$$=await counter.getNextSequence($sequence_user$$.current_id_app,"DMVT","ma_vt"),$sequence_user$$=($sequence_user$$||0).toString(),$obj$$.ma_vt="SP"+"00000000".substring(0,8-$sequence_user$$.length)+$sequence_user$$);$next$$(null,$obj$$)};$contr_router$$.creating=async($user$$,$obj$$,$next$$)=>{$obj$$.warranty_policy===""&&delete $obj$$.warranty_policy;
|
|
32
|
+
$obj$$.combo?.length>0&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=async($check_arise_user$$,$data$$,$obj$$,$next$$)=>{$data$$.warranty_policy===
|
|
33
|
+
""&&delete $data$$.warranty_policy;for(const $f$$ of["ma_nvt2","ma_nvt3","ma_nvt4"])$data$$[$f$$]===void 0&&($data$$[$f$$]=$obj$$[$f$$]),$data$$[$f$$]&&($data$$[$f$$]=Array.isArray($data$$[$f$$])?[...(new Set($data$$[$f$$]))]:[$data$$[$f$$]]);$data$$.combo?.length>0&&($data$$.tg_tk=!1);[$check_arise_user$$]=await Promise.all([global.getModel("sokho").findOne({ma_vt:$obj$$.ma_vt,id_app:$obj$$.id_app},{_id:1})]);if($check_arise_user$$&&$data$$.ma_vt&&$data$$.ma_vt!==$obj$$.ma_vt)return $next$$(`V\u1eadt t\u01b0 ${$obj$$.ten_vt}(${$obj$$.ma_vt}) \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i m\u00e3 v\u1eadt t\u01b0`);
|
|
34
34
|
if($check_arise_user$$&&$data$$.ma_dvt&&$data$$.ma_dvt!==$obj$$.ma_dvt)return $next$$(`V\u1eadt t\u01b0 ${$obj$$.ten_vt}(${$obj$$.ma_vt}) \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i \u0111\u01a1n v\u1ecb t\u00ednh`);$data$$.ma_vt=$data$$.ma_vt||$obj$$.ma_vt;const [$checkCan$$,$checkVt2$$]=await Promise.all([$data$$.ma_can&&$data$$.ma_can!==$obj$$.ma_can?model.findOne({ma_can:$data$$.ma_can,id_app:$obj$$.id_app},{_id:1}):null,$data$$.ma_vt2&&$data$$.ma_vt2!==
|
|
35
35
|
$obj$$.ma_vt2?model.findOne({ma_vt2:$data$$.ma_vt2,id_app:$obj$$.id_app},{_id:1}):null]);if($checkCan$$)return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($checkVt2$$)return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$data$$,$obj$$)};$contr_router$$.view=async($user$$,$items$$,$fn$$,$options$$)=>{$items$$.forEach($item$$=>{$item$$.ty_le_ck=0;$item$$.tien_ck=0});const $q$$=$options$$?.req?.query||{},$id_app$$=$user$$.current_id_app;$options$$=
|
|
36
36
|
batchEnsureDmqddvt($items$$);const $nvtJoinPromise$$=(async()=>{var $all_ma_nvt2_nvts$$=$items$$.flatMap($i$$=>$i$$.ma_nvt2||[]);const $ma_nvt3$$=$items$$.flatMap($i$$=>$i$$.ma_nvt3||[]),$ma_nvt4$$=$items$$.flatMap($i$$=>$i$$.ma_nvt4||[]);$all_ma_nvt2_nvts$$=[...(new Set([...$all_ma_nvt2_nvts$$,...$ma_nvt3$$,...$ma_nvt4$$]))];if($all_ma_nvt2_nvts$$.length){$all_ma_nvt2_nvts$$=await Dmnvt.find({id_app:$id_app$$,_id:{$in:$all_ma_nvt2_nvts$$}},{ten_nvt:1}).lean();var $set_nvt$$=Object.fromEntries($all_ma_nvt2_nvts$$.map($n$$=>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const model=global.getModel("file"),app=global.getModel("app"),path=require("path"),fs=require("fs"),controller=require("../../controllers/controller"),ffmpeg=require("fluent-ffmpeg"),ffmpegInstaller=require("@ffmpeg-installer/ffmpeg");ffmpeg.setFfmpegPath(ffmpegInstaller.path);
|
|
2
|
-
const sharp=require("sharp"),watermark=require("dynamic-watermark"),permission=require("../../libs/permission"),async=require("
|
|
2
|
+
const sharp=require("sharp"),watermark=require("dynamic-watermark"),permission=require("../../libs/permission"),async=require("../../libs/asyncCompat"),JSZip=require("jszip"),{onAfterCommit}=require("../../libs/sessionContext"),{createWorker,createScheduler}=require("tesseract.js"),{getDir,getPathFile}=require("../../libs/utils"),{processDataWorker}=require("../../libs/vectorService"),tesseractScheduler=createScheduler();let isTesseractReady=!1;
|
|
3
3
|
async function initTesseract(){try{const $worker$$=await createWorker("vie+eng");tesseractScheduler.addWorker($worker$$);isTesseractReady=!0}catch($error$$){}}initTesseract();
|
|
4
4
|
const hasPermission=async($email$$,$file$$)=>new Promise($resolve$$=>{permission.hasRight($file$$.id_app,$email$$,"file","view",async function($error$$,$permission$$){if(!$permission$$)return $resolve$$(!1);$resolve$$(!0)},{data:$file$$,obj:$file$$,notNeedRight:!$file$$.id_link&&!$file$$.id_folder||$file$$.shared})}),convertVideo=async($fileInput$$,$fileOutput$$)=>new Promise(($resolve$$,$reject$$)=>{ffmpeg($fileInput$$,{timeout:432E3}).addOptions("-profile:v baseline;-level 3.0;-start_number 0;-hls_time 10;-hls_list_size 0;-f hls".split(";")).output($fileOutput$$).on("error",
|
|
5
5
|
function($err$$){$reject$$($err$$.message)}).on("end",()=>{$resolve$$($fileOutput$$)}).run()}),createThumnail=async($fileInput$$,$fileOutput$$,$THUMBNAIL_DIR$$)=>{Logger.info("[file] t\u1ea1o thumbnail",{fileInput:$fileInput$$,fileOutput:$fileOutput$$,THUMBNAIL_DIR:$THUMBNAIL_DIR$$});return new Promise(($resolve$$,$reject$$)=>{ffmpeg($fileInput$$,{timeout:432E3}).on("end",function(){Logger.info("Thumbnail generated successfully!");$resolve$$()}).on("error",function($err$$,$stdout$$,$stderr$$){Logger.error("Error generating thumbnail:",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("giaoca"),dmvt=global.getModel("dmvt"),ptthanhtoan=global.getModel("ptthanhtoan"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("giaoca"),dmvt=global.getModel("dmvt"),ptthanhtoan=global.getModel("ptthanhtoan"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"giaoca",{sort:{ma_kho:1,den_ngay:-1},onView:async($user$$,$items$$,$next$$)=>{const $ptthanhtoans$$=await ptthanhtoan.find({id_app:$user$$.current_id_app}).lean();async.mapLimit($items$$,20,($item$$,$cb$$)=>{async.mapLimit($item$$.details||[],10,($vc$$,$cb$$)=>{($vc$$.details||[]).joinModel2($vc$$.id_app,dmvt,{where:"ma_vt",fields:"ten_vt"},()=>{$cb$$(null)})},()=>{$cb$$(null)})},()=>{$items$$.forEach($item$$=>{($item$$.details||
|
|
3
3
|
[]).forEach($d$$=>{$d$$.ten_vt=$d$$.details.map($d2$$=>$d2$$.ten_vt).join(",");$d$$.tien_doanh_thu=$d$$.details.map($d2$$=>$d2$$.tien_hang||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$item$$.t_doanh_thu=($item$$.details||[]).map($d$$=>$d$$.tien_doanh_thu||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ptthanhtoans=[...$ptthanhtoans$$];$item$$.ptthanhtoans.forEach($pt$$=>{$pt$$.t_tien=($item$$.details||[]).filter($d$$=>$d$$.pt_thanh_toan===$pt$$._id.toString()).map($d$$=>$d$$.tien_thu||0).reduce(($a$$,$b$$)=>
|
|
4
4
|
$a$$+$b$$,0);$pt$$.t_tien+=($item$$.details||[]).filter($d$$=>$d$$.pt_thanh_toan2===$pt$$._id.toString()).map($d$$=>$d$$.tien_thu2||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$item$$.tien_evoucher=($item$$.details||[]).map($d$$=>$d$$.tien_evoucher||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.tien_paymentByPoints=($item$$.details||[]).map($d$$=>$d$$.tien_paymentByPoints||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.tien_tra_lai=($item$$.details||[]).map($d$$=>$d$$.phai_tra||0).reduce(($a$$,$b$$)=>$a$$+$b$$,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const model=global.getModel("introducer"),introducecode=global.getModel("introducecode"),app=global.getModel("app"),controller=require("../../controllers/controller"),blockchainconnect=require("../../libs/blockchainconnect"),asskey=global.getModel("asskey"),_=require("underscore"),{isSupperAdmin}=require("../../libs/utils"),async=require("
|
|
2
|
-
$amount$$,$denom$$,$memo$$,$introduce_code$$,$sub_action$$="")=>{try{await blockchainconnect.spend($appInfo$$._id,$appInfo$$.wallet_token,$appInfo$$.wallet_address,$receiver_address$$,{amount:$amount$$,denom:$denom$$,memo:$memo$$,event:"BONUS-INTRODUCE",introduce_code:$introduce_code$$,sub_action:$sub_action$$})}catch($e$$){Logger.error("[introducer][spend] Error send coin",$e$$,$receiver_user$$,$receiver_address$$,$amount$$,$denom$$,$memo$$)}},bonus=async($obj$$,$code$$)=>{if($obj$$.introduce_code&&
|
|
1
|
+
const model=global.getModel("introducer"),introducecode=global.getModel("introducecode"),app=global.getModel("app"),controller=require("../../controllers/controller"),blockchainconnect=require("../../libs/blockchainconnect"),asskey=global.getModel("asskey"),_=require("underscore"),{isSupperAdmin}=require("../../libs/utils"),async=require("../../libs/asyncCompat"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),numeral=require("numeral"),spend=async($appInfo$$,$receiver_user$$,
|
|
2
|
+
$receiver_address$$,$amount$$,$denom$$,$memo$$,$introduce_code$$,$sub_action$$="")=>{try{await blockchainconnect.spend($appInfo$$._id,$appInfo$$.wallet_token,$appInfo$$.wallet_address,$receiver_address$$,{amount:$amount$$,denom:$denom$$,memo:$memo$$,event:"BONUS-INTRODUCE",introduce_code:$introduce_code$$,sub_action:$sub_action$$})}catch($e$$){Logger.error("[introducer][spend] Error send coin",$e$$,$receiver_user$$,$receiver_address$$,$amount$$,$denom$$,$memo$$)}},bonus=async($obj$$,$code$$)=>{if($obj$$.introduce_code&&
|
|
3
3
|
($code$$||=await introducecode.findOne({id_app:$obj$$.id_app,introduce_code:$obj$$.introduce_code}),$code$$)){let $be_introduced_by_user$$=await Participant.findOne({id_app:$obj$$.id_app,email:$obj$$.be_introduced_by}).lean();if($be_introduced_by_user$$&&await Participant.findOne({id_app:$obj$$.id_app,email:$obj$$.be_introduced}).lean()){var $appInfo$$=await app.findOne({_id:$obj$$.id_app}).lean();$appInfo$$.wallet_address&&$appInfo$$.wallet_token&&await new Promise($res$$=>{async.series({introducer:async()=>
|
|
4
4
|
{try{let $usergroup$$,$tang_gioi_thieu_denom$$;$be_introduced_by_user$$.group_id&&($usergroup$$=await Usergroup.findOne({id_app:$obj$$.id_app,_id:$be_introduced_by_user$$.group_id}).lean());$usergroup$$||={};if($tang_gioi_thieu_denom$$=$usergroup$$.tang_gioi_thieu_denom||$appInfo$$.tang_gioi_thieu_denom){var $tang_gioi_thieu$$=$usergroup$$.tang_gioi_thieu||$appInfo$$.tang_gioi_thieu||0,$tang_gioi_thieu_pt$$=$usergroup$$.tang_gioi_thieu_pt||$appInfo$$.tang_gioi_thieu_pt||0;if($tang_gioi_thieu$$){let $wallet_address_receive_reward$$=
|
|
5
5
|
$code$$.wallet_address_receive_reward;if(!$wallet_address_receive_reward$$){let $wallet_be_introduced_by$$=await asskey.findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.be_introduced_by,wallet_type:8});$wallet_be_introduced_by$$||=await global.getModel("asskey").createWallet($obj$$.id_app,$obj$$.be_introduced_by,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);$wallet_address_receive_reward$$=$wallet_be_introduced_by$$.address}if($wallet_address_receive_reward$$){let $memo$$=`${$appInfo$$.short_name||
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("kbmbcqt"),customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),dmdt=global.getModel("dmdt"),contract=global.getModel("contract"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("kbmbcqt"),customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),dmdt=global.getModel("dmdt"),contract=global.getModel("contract"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=$router$$=>{(new controller($router$$,model,"kbmbcqt",{sort:{stt:1,ma_so:1},unique:["id_rptform","ma_so"],notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="view"?!0:!1,onView:($user$$,$items$$,$next$$)=>{async.parallel({details_kh:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){$r$$.details.joinModel2($user$$.current_id_app,customer,[{where:"ma_kh",fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){$callback1$$()})},function(){$callback$$()})},
|
|
3
3
|
details_kho:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){$r$$.details.joinModel2($user$$.current_id_app,dmkho,[{where:"ma_kho",fields:[{name:"ten_kho",value:"ten_kho"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_bp:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){$r$$.details.joinModel2($user$$.current_id_app,dmbp,[{where:"ma_bp",fields:["ten_bp"]}],function(){$callback1$$()})},function(){$callback$$()})},details_nv:function($callback$$){async.mapLimit($items$$,
|
|
4
4
|
20,function($r$$,$callback1$$){$r$$.details.joinModel2($user$$.current_id_app,dmnv,[{where:"ma_nv",fields:["ten_nv"]}],function(){$callback1$$()})},function(){$callback$$()})},details_dt:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){$r$$.details.joinModel2($user$$.current_id_app,dmdt,[{where:"ma_dt",fields:["ten_dt"]}],function(){$callback1$$()})},function(){$callback$$()})},details_hd:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){$r$$.details.joinModel2($user$$.current_id_app,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("news"),newsfeed=global.getModel("newsfeed"),controller=require("../../controllers/controller"),googleTranslate=require("google-translate"),async=require("
|
|
1
|
+
const model=global.getModel("news"),newsfeed=global.getModel("newsfeed"),controller=require("../../controllers/controller"),googleTranslate=require("google-translate"),async=require("../../libs/asyncCompat"),translateText=async($text$$,$source$$="vi",$target$$="en")=>{const {GOOGLE_TRANSLATE_API_KEY:$GOOGLE_TRANSLATE_API_KEY$$}=configs;if(!$GOOGLE_TRANSLATE_API_KEY$$)return $text$$;const $trans$$=googleTranslate($GOOGLE_TRANSLATE_API_KEY$$,{});return await new Promise(($resolve$$,$reject$$)=>{$trans$$.translate($text$$,
|
|
2
2
|
$source$$,$target$$,function($err$$,$translation$$){if($err$$)return $reject$$($err$$);$resolve$$($translation$$.translatedText)})})};
|
|
3
3
|
module.exports=function($router$$){(new controller($router$$,model,"news",{notNeedRight:($user$$,$options$$)=>$options$$.action=="view"?!0:!1,sort:{stt:1,date_created:-1},onFinding:($user$$,$condition$$,$next$$,$options$$)=>{$condition$$.ngon_ngu&&$condition$$.ngon_ngu!=="vi"&&$condition$$.isnews&&($options$$.req.ngon_ngu=$condition$$.ngon_ngu,$condition$$.ngon_ngu="vi");$condition$$.slug&&($options$$.req.slug=$condition$$.slug,$condition$$.$and=$condition$$.$and||[],$condition$$.$and.push({$or:[{slug:$condition$$.slug},
|
|
4
4
|
{"trans.slug":$condition$$.slug}]}),delete $condition$$.slug);$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$)=>{const $ngon_ngu$$=$options$$.req.ngon_ngu,$slug$$=$options$$.req.slug;async.map($items$$,async $item$$=>{if($ngon_ngu$$&&$ngon_ngu$$!="vi"){var $tran_tran$$=($item$$.trans||[]).find($t$$=>$t$$.ngon_ngu===$ngon_ngu$$);if($tran_tran$$)$item$$.title=$tran_tran$$.title,$item$$.content=$tran_tran$$.content,$item$$.slug=$tran_tran$$.slug;else try{const $title$$=$item$$.title=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("participant"),User=global.getModel("user"),usergroup=global.getModel("usergroup"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("participant"),User=global.getModel("user"),usergroup=global.getModel("usergroup"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat"),redisCache=require("../../libs/redis-cache"),{onAfterCommit}=require("../../libs/sessionContext");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"participant",{sort:{date_created:-1},unique:["id_app","email"],onFinding:async($user$$,$condition$$,$next$$)=>{if($condition$$.groups&&!$condition$$.group_id)try{let $groups$$=(await usergroup.getList($user$$.current_id_app,$condition$$.groups)).map($g$$=>$g$$._id);delete $condition$$.groups;$groups$$=$groups$$.concat([null,"",void 0]);$condition$$.group_id={$in:$groups$$};$next$$(null,$condition$$)}catch($e$$){$next$$($e$$.message)}else $next$$(null,
|
|
3
3
|
$condition$$)},onView:($user$$,$items$$,$next$$)=>{async.parallel({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{email:"email"},fields:[{picture:"picture"},{email2:"email2"}],setFields:($item$$,$ref$$)=>{$item$$.name||($item$$.name=$ref$$.name)}}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,usergroup,[{where:{group_id:"_id"},fields:["group_name","is_customer_group","is_employee_group"]}],function(){$callback$$()})},verified:$callback$$=>{mongoose.models.assuser_identity?
|
|
4
4
|
$items$$.joinModel2($user$$.current_id_app,global.getModel("assuser_identity"),[{where:{email:"user_created"},fields:[{trang_thai_xac_thuc:"trang_thai"}],setFields:($item$$,$ref$$)=>{$item$$.name||($item$$.name=$ref$$.name)}}],function(){$items$$.filter($i$$=>$i$$.trang_thai_xac_thuc).joinModel2(null,global.getModel("trangthai"),[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai_xac_thuc,ma_ct:"ASSUSER_IDENTITY"}),fields:[{ten_trang_thai_xac_thuc:"ten_trang_thai"},"color"]}],function(){$callback$$()})}):
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("rpt"),file=global.getModel("file"),parameter=global.getModel("parameter"),controller=require("../../controllers/controller"),fs=require("fs"),path=require("path"),async=require("
|
|
1
|
+
const model=global.getModel("rpt"),file=global.getModel("file"),parameter=global.getModel("parameter"),controller=require("../../controllers/controller"),fs=require("fs"),path=require("path"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"rpt",{sort:{ma_cn:1},notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="view"?!0:!1,onFinding:($user$$,$condition$$,$next$$,$_condition_dir_root_templates_options$$={})=>{if($condition$$.ma_cn&&$_condition_dir_root_templates_options$$.req&&$_condition_dir_root_templates_options$$.req.query&&!$_condition_dir_root_templates_options$$.req.query.count){$_condition_dir_root_templates_options$$=configs.paths.templates||
|
|
3
3
|
path.dirname(__dirname);let $p$$="/templates/excels/"+$condition$$.ma_cn.toLowerCase()+".xlsx",$templatePath$$=path.dirname($_condition_dir_root_templates_options$$)+$p$$;fs.existsSync($templatePath$$)||($p$$="/templates/excels/reports/"+$condition$$.ma_cn.toLowerCase()+".xlsx",$templatePath$$=path.dirname($_condition_dir_root_templates_options$$)+$p$$);fs.existsSync($templatePath$$)?($_condition_dir_root_templates_options$$={id_app:$user$$.current_id_app,ma_cn:$condition$$.ma_cn.toUpperCase()},model.countDocuments($_condition_dir_root_templates_options$$,
|
|
4
4
|
function($error$$,$count$$){if($error$$)return $next$$($error$$);$count$$===0?model.create({id_app:$user$$.current_id_app,ma_cn:$condition$$.ma_cn,ten_mau_in:"M\u1eabu chu\u1ea9n",file_mau_in:$p$$},$e$$=>{$next$$($e$$,$condition$$)}):$next$$(null,$condition$$)})):$next$$(null,$condition$$)}else $next$$(null,$condition$$)},onView:($user$$,$items$$,$next$$)=>{async.mapLimit($items$$,20,async $item$$=>{if($item$$.file_mau_in&&$item$$.file_mau_in.indexOf("/file/download")>0){var $_f_file_id_params$$=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const model=global.getModel("smsaccount"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),async=require("
|
|
1
|
+
const model=global.getModel("smsaccount"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),async=require("../../libs/asyncCompat");module.exports=function($router$$){(new controller($router$$,model,"smsaccount",{onView:async($user$$,$items$$,$next$$)=>{async.map($items$$,($item$$,$cb$$)=>{permission.isAdmin($item$$.id_app,$user$$.email,function($e$$,$admin$$){$admin$$||delete $item$$.script_send;$cb$$()})},()=>{$next$$(null,$items$$)})}})).route()};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("sosanxuat"),Lenhsx=global.getModel("lenhsx"),Dmbp=global.getModel("dmbp"),Dmvt=global.getModel("dmvt"),Trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("sosanxuat"),Lenhsx=global.getModel("lenhsx"),Dmbp=global.getModel("dmbp"),Dmvt=global.getModel("dmvt"),Trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"sosanxuat",{sort:{id_lenhsx:1},onView:($u$$,$items$$,$next$$)=>{let $id_app$$=$u$$.current_id_app;async.parallel({lsx:$callback$$=>{$items$$.joinModel2($id_app$$,Lenhsx,[{where:$item$$=>({_id:$item$$.id_lenhsx}),fields:[{so_lenh_sx:"so_ct",ngay_lenh_sx:"ngay_ct"}]}],function(){$callback$$()})},sp:$callback$$=>{$items$$.joinModel2($id_app$$,Dmvt,[{where:$item$$=>({ma_vt:$item$$.ma_sp}),fields:[{ten_sp:"ten_vt"}]}],function(){$callback$$()})},
|
|
3
3
|
bp:$callback$$=>{$items$$.joinModel2($id_app$$,Dmbp,[{where:$item$$=>({ma_bp:$item$$.ma_bp}),fields:[{ten_bp:"ten_bp"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.joinModel2(null,Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},tinh_sl_ht:$callback$$=>{async.mapLimit($items$$.filter($item$$=>$item$$.ma_ct==="LENHSX"),20,($item$$,$callback$$)=>{$item$$.bold=!0;model.find({id_lenhsx:$item$$.id_lenhsx,ma_cong_doan:$item$$.ma_cong_doan,
|
|
4
4
|
ma_sp:$item$$.ma_sp}).lean().exec(($e$$,$rs$$)=>{$item$$.sl_ht=$rs$$.map($r$$=>$r$$.sl_ht||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$()})},()=>{$callback$$()})}},()=>{$next$$(null,$items$$)})},onUpdating:($u$$,$data$$,$obj$$,$next$$)=>{$next$$("Kh\u00f4ng \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt danh m\u1ee5c n\u00e0y")}})).route()};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const model=global.getModel("support"),chucvu=global.getModel("group"),User=global.getModel("user"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("support"),chucvu=global.getModel("group"),User=global.getModel("user"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"support",{sort:{support_user:1},unique:["id_link","support_user"],onView:($user$$,$items$$,$callback$$)=>{async.series({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{support_user:"email"},fields:[{support_name:"name"},{picture:"picture"}]}],function(){$callback$$(null,$items$$)},{cache:!1})},cv:$callback$$=>{$items$$.joinModel2(null,chucvu,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},{ten_chuc_vu_en:"group_name_en"}]}],
|
|
3
3
|
function(){$callback$$(null,$items$$)})}},()=>{$callback$$(null,$items$$)})}})).route()};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const async=require("
|
|
1
|
+
const async=require("../../libs/asyncCompat"),calllog=global.getModel("calllog"),customer=global.getModel("customer"),lienhe=global.getModel("lienhe"),App=global.getModel("app"),Controller=require("../../controllers/controller");
|
|
2
2
|
module.exports=function($router$$){$router$$.route("/:id_app/call/:token").get(async function($req$$,$res$$){let $g_callData$$={...$req$$.query,...$req$$.body};$g_callData$$.phone=$g_callData$$.phone||$g_callData$$.src;$g_callData$$.extend=$g_callData$$.extend||$g_callData$$.dst;$g_callData$$.call_status=$g_callData$$.state||$g_callData$$.status||$g_callData$$.call_status;delete $g_callData$$.status;if(!$g_callData$$.phone)return $res$$.status(400).send({errors:"Phone number is required"});let $token$$=
|
|
3
3
|
$req$$.params.token,$id_app$$=$req$$.params.id_app;if(!global.mongoose.Types.ObjectId.isValid($id_app$$))return $res$$.status(400).send({error:"ID c\u00f4ng ty l\u00e0 kh\u00f4ng h\u1ee3p l\u1ec7"});App.find({voiip_access_token:$token$$,_id:$id_app$$},{_id:1,name:1}).lean().then(async $apps$$=>{async.map($apps$$,($app$$,$callback$$)=>{setImmediate(async()=>{let $callData$$={...$g_callData$$};$callData$$.id_app=$id_app$$;var $cus_phone$$=$callData$$.phone.replace("+",""),$contact_where$$={id_app:$id_app$$};
|
|
4
4
|
$cus_phone$$.length<6?$contact_where$$.dien_thoai=$cus_phone$$:($cus_phone$$.substring(0,1)==="0"&&($cus_phone$$=$cus_phone$$.substring(1)),$cus_phone$$.substring(0,2)==="84"&&($cus_phone$$=$cus_phone$$.substring(2)),$contact_where$$.$or=[{dien_thoai:{$regex:$cus_phone$$,$options:"i"}},{dien_thoai2:{$regex:$cus_phone$$,$options:"i"}},{ds_dien_thoai_khac:{$regex:$cus_phone$$,$options:"i"}}]);$cus_phone$$=await customer.findOne($contact_where$$).lean();$cus_phone$$||($contact_where$$=lienhe.findOne($contact_where$$).lean(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tinhgiafifo=require("../../libs/tinhgiafifo"),controller=require("../../controllers/controllerRPT"),_Notification=global.getModel("notification"),async=require("
|
|
1
|
+
const tinhgiafifo=require("../../libs/tinhgiafifo"),controller=require("../../controllers/controllerRPT"),_Notification=global.getModel("notification"),async=require("../../libs/asyncCompat"),utils=require("../../libs/utils"),{getCurrentSession}=require("../../libs/sessionContext");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"tinhgiafifo",async function($req$$,$callback$$){const $query$$=$req$$.query,$email$$=$req$$.user.email,$id_app$$=$query$$.id_app;if(!$query$$.nam||!$query$$.tu_thang||!$query$$.den_thang)return Logger.error("[Calc-tinhgiafifo]","Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang"),_Notification.createNotification($email$$,$email$$,"Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang",
|
|
3
3
|
"Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang",null,{id_app:$id_app$$},!0,$req$$.access_token,!0),$callback$$("Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang");var $ds_kho_error$$=require("moment"),$ngay_ks_tu_ngay$$=$ds_kho_error$$([Number($query$$.nam),Number($query$$.tu_thang)-1,1]).startOf("month").toDate();
|
|
4
4
|
if($ngay_ks_tu_ngay$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:$ngay_ks_tu_ngay$$}))return $ds_kho_error$$=`Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. \u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${$ds_kho_error$$($ngay_ks_tu_ngay$$).format("DD/MM/YYYY")}`,Logger.error("[Calc-tinhgiafifo]",$ds_kho_error$$),_Notification.createNotification($email$$,$email$$,$ds_kho_error$$,$ds_kho_error$$,null,{id_app:$id_app$$},!0,$req$$.access_token,!0),$callback$$($ds_kho_error$$);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tinhgiatb=require("../../libs/tinhgiatb"),controller=require("../../controllers/controllerRPT"),_Notification=global.getModel("notification"),async=require("
|
|
1
|
+
const tinhgiatb=require("../../libs/tinhgiatb"),controller=require("../../controllers/controllerRPT"),_Notification=global.getModel("notification"),async=require("../../libs/asyncCompat"),utils=require("../../libs/utils"),{getCurrentSession}=require("../../libs/sessionContext");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"tinhgiatb",async function($req$$,$callback$$){const $query$$=$req$$.query,$email$$=$req$$.user.email,$id_app$$=$query$$.id_app;if(!$query$$.nam||!$query$$.tu_thang||!$query$$.den_thang)return Logger.error("[Calc-tinhgiatb]","Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang"),_Notification.createNotification($email$$,$email$$,"Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang",
|
|
3
3
|
"Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang",null,{id_app:$id_app$$},!0,$req$$.access_token,!0),$callback$$("Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,tu_thang,den_thang");var $ds_kho_error$$=require("moment"),$ngay_ks_tu_ngay$$=$ds_kho_error$$([Number($query$$.nam),Number($query$$.tu_thang)-1,1]).startOf("month").toDate();
|
|
4
4
|
if($ngay_ks_tu_ngay$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:$ngay_ks_tu_ngay$$}))return $ds_kho_error$$=`Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh. \u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${$ds_kho_error$$($ngay_ks_tu_ngay$$).format("DD/MM/YYYY")}`,Logger.error("[Calc-tinhgiatb]",$ds_kho_error$$),_Notification.createNotification($email$$,$email$$,$ds_kho_error$$,$ds_kho_error$$,null,{id_app:$id_app$$},!0,$req$$.access_token,!0),$callback$$($ds_kho_error$$);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _Notification=global.getModel("notification"),controller=require("../../controllers/controllerRPT"),tinhGt=require("../../libs/tinhGt"),async=require("
|
|
1
|
+
const _Notification=global.getModel("notification"),controller=require("../../controllers/controllerRPT"),tinhGt=require("../../libs/tinhGt"),async=require("../../libs/asyncCompat"),utils=require("../../libs/utils");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"tinhgiathanh",async function($req$$,$callback$$){const $condition$$=$req$$.query;$condition$$.nam=Number($condition$$.nam);$condition$$.thang=Number($condition$$.thang);const $email$$=$req$$.user.email,$id_app$$=$condition$$.id_app;if(!$condition$$.nam||!$condition$$.thang)return _Notification.createNotification($email$$,$email$$,"Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,thang","Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,thang",
|
|
3
3
|
null,{id_app:$id_app$$},!0,$req$$.access_token,!0),$callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,thang");var $dsbp_error$$=require("moment"),$bpcon_ngay_ks_tu_ngay$$=$dsbp_error$$([Number($condition$$.nam),Number($condition$$.thang)-1,1]).startOf("month").toDate();if($bpcon_ngay_ks_tu_ngay$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:$bpcon_ngay_ks_tu_ngay$$}))return $dsbp_error$$=`Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 th\u00e0nh. \u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${$dsbp_error$$($bpcon_ngay_ks_tu_ngay$$).format("DD/MM/YYYY")}`,
|
|
4
4
|
_Notification.createNotification($email$$,$email$$,$dsbp_error$$,$dsbp_error$$,null,{id_app:$id_app$$},!0,$req$$.access_token,!0),$callback$$($dsbp_error$$);$dsbp_error$$=[];$condition$$.tinh_theo_cong_doan?($dsbp_error$$={id_app:$condition$$.id_app,la_cong_doan_sx:!0,status:!0},$condition$$.ma_bp&&($bpcon_ngay_ks_tu_ngay$$=await global.getModel("dmbp").getChilrenByMaBP($condition$$.id_app,$condition$$.ma_bp),$bpcon_ngay_ks_tu_ngay$$.push($condition$$.ma_bp),$dsbp_error$$.ma_bp={$in:$bpcon_ngay_ks_tu_ngay$$}),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const chamcong=global.getModel("chamcong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),phucap=global.getModel("phucap"),dmloaicong=global.getModel("dmloaicong"),ckgtluong=global.getModel("ckgtluong"),bangtinhluong=global.getModel("bangtinhluong"),dmletet=global.getModel("dmletet"),App=global.getModel("app"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("
|
|
1
|
+
const chamcong=global.getModel("chamcong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),phucap=global.getModel("phucap"),dmloaicong=global.getModel("dmloaicong"),ckgtluong=global.getModel("ckgtluong"),bangtinhluong=global.getModel("bangtinhluong"),dmletet=global.getModel("dmletet"),App=global.getModel("app"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("../../libs/asyncCompat"),_=require("lodash"),utils=require("../../libs/utils"),generateVirtualTimekeepingForVIP=
|
|
2
2
|
($nv$$,$condition$$)=>({ma_nv:$nv$$.ma_nv,ma_bp:$nv$$.ma_bp,loai_don_gia_ngay_cong:"luong_ngay_cong",ngay_cong:$condition$$.so_ngay_lam_mot_thang,sl_cong:1,ngay_phep:0,ngay_khong_phep:0,ngay_khong_luong:0,ngay_tang_ca:0,so_ngay_tinh_phu_cap:0,so_luong_ngay_tang_ca_mien_thue:0,is_virtual_vip:!0}),bac_tinh_thue=[{thu_nhap_chiu_thue_toi_da:5E6,thue_suat:5},{thu_nhap_chiu_thue_toi_da:1E7,thue_suat:10},{thu_nhap_chiu_thue_toi_da:18E6,thue_suat:15},{thu_nhap_chiu_thue_toi_da:32E6,thue_suat:20},{thu_nhap_chiu_thue_toi_da:52E6,
|
|
3
3
|
thue_suat:25},{thu_nhap_chiu_thue_toi_da:8E7,thue_suat:30},{thue_suat:35}],tinhThueTNCV=$tong_thu_nhap_chiu_thue$$=>{let $i$$=0;const $thue_tncn$$=_.cloneDeep(bac_tinh_thue);let $thu_nha_da_chiu_thue$$=0;for(var $thu_nhap_chiu_thue_thu_nhap_con_lai$$=$tong_thu_nhap_chiu_thue$$;$i$$<$thue_tncn$$.length;){let $bac$$=$thue_tncn$$[$i$$];$thu_nhap_chiu_thue_thu_nhap_con_lai$$=$bac$$.thu_nhap_chiu_thue_toi_da?Math.min($bac$$.thu_nhap_chiu_thue_toi_da-$thu_nha_da_chiu_thue$$,$thu_nhap_chiu_thue_thu_nhap_con_lai$$):
|
|
4
4
|
$thu_nhap_chiu_thue_thu_nhap_con_lai$$;if($thu_nhap_chiu_thue_thu_nhap_con_lai$$<=0)break;$bac$$.thu_nhap_chiu_thue=$thu_nhap_chiu_thue_thu_nhap_con_lai$$;$bac$$.tien_thue=Math.roundBy($thu_nhap_chiu_thue_thu_nhap_con_lai$$*$bac$$.thue_suat/100);$thu_nha_da_chiu_thue$$+=$thu_nhap_chiu_thue_thu_nhap_con_lai$$;$thu_nhap_chiu_thue_thu_nhap_con_lai$$=$tong_thu_nhap_chiu_thue$$-$thu_nha_da_chiu_thue$$;$i$$+=1}return $thue_tncn$$},mergeTimekeepingFragments=($fragments$$,$condition$$)=>{const {loai_luong:$loai_luong$$,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const controller=require("../../controllers/controllerRPT"),assbonus=require("../../libs/assbonus"),moment=require("moment"),async=require("
|
|
1
|
+
const controller=require("../../controllers/controllerRPT"),assbonus=require("../../libs/assbonus"),moment=require("moment"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"assbonus",async function($req$$,$callback$$){const $condition$$=$req$$.query;$condition$$.den_ngay=moment($condition$$.den_ngay).endOf("date").toDate();$callback$$(null,null,"begin");if($condition$$.tu_ngay&&$condition$$.den_ngay){let $report$$=[],$ngay$$=new Date($condition$$.tu_ngay);async.forever($next$$=>{$callback$$(null,null,"running");let $query$$={...$condition$$};delete $query$$.tu_ngay;delete $query$$.den_ngay;$query$$.nam=$ngay$$.getFullYear();
|
|
3
3
|
$query$$.thang=$ngay$$.getMonth()+1;$query$$.ngay=$ngay$$.getDate();assbonus($query$$,($e$$,$rs$$)=>{if($e$$)return $next$$($e$$);$report$$=[...$report$$,...$rs$$];$ngay$$.setDate($ngay$$.getDate()+1);if($ngay$$>$condition$$.den_ngay)return $next$$(-1);$next$$()},$log$$=>{$callback$$(null,null,$log$$)})},$e$$=>{if($e$$&&$e$$!=-1)return $callback$$($e$$);$report$$.push({memo:"T\u1ed5ng c\u1ed9ng",bold:!0,amount:$report$$.map($r$$=>$r$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$callback$$(null,$report$$,
|
|
4
4
|
"data");$callback$$(null,null,"end")})}else assbonus($condition$$,($e$$,$report$$)=>{if($e$$)return $callback$$($e$$);$report$$.push({memo:"T\u1ed5ng c\u1ed9ng",bold:!0,amount:$report$$.map($r$$=>$r$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$callback$$(null,$report$$,"data");$callback$$(null,null,"end")},$log$$=>{$callback$$(null,null,$log$$)})},{stream:!0})};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const chamcong=global.getModel("chamcong"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const chamcong=global.getModel("chamcong"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat"),permission=require("../../libs/permission");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"bkchamcong",function($req$$,$callback$$){let $id_apps$$=$req$$.query.id_apps;$req$$.query.id_apps&&$req$$.query.id_apps.length!=0||($id_apps$$=[$req$$.query.id_app]);async.map($id_apps$$,($id_app$$,$callback$$)=>{permission.hasRight($id_app$$,$req$$.user.email,"chamcong","view",async function($error$$,$permission$$){if(!$permission$$)return $callback$$(`B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n v\u1edbi c\u00f4ng ty c\u00f3 id '${$id_app$$}'`);
|
|
3
3
|
$error$$={};$error$$.id_app=$id_app$$;$error$$.ngay={$gte:$req$$.query.tu_ngay,$lte:$req$$.query.den_ngay};$req$$.query.ma_nv&&($error$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_bp&&($error$$.ma_bp=$req$$.query.ma_bp);chamcong.find($error$$).lean().then(async $congs$$=>{await $congs$$.asyncJoinModel2($id_app$$,"dmloaicong",[{where:{ma_loai_cong:"ma_loai_cong"},fields:["ten_loai_cong","color"]}]);await $congs$$.asyncJoinModel2($id_app$$,global.getModel("dmnv"),[{where:{ma_nv:"ma_nv"},fields:["ten_nv"]}]);
|
|
4
4
|
await $congs$$.asyncJoinModel2($id_app$$,global.getModel("dmbp"),[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);await $congs$$.filter($r$$=>$r$$.ma_kh).asyncJoinModel2($id_app$$,global.getModel("customer"),[{where:{ma_kh:"ma_kh"},fields:["ten_kh"]}]);$callback$$(null,$congs$$)}).catch($e$$=>{$callback$$($e$$)})})},async($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$e$$=$rs$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);await $e$$.asyncJoinModel2(null,global.getModel("app"),[{where:{id_app:"_id"},fields:[{ten_cong_ty:"name"}]}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const cdpsdiem=require("../../libs/cdpsdiem"),User=global.getModel("user"),Customer=global.getModel("customer"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const cdpsdiem=require("../../libs/cdpsdiem"),User=global.getModel("user"),Customer=global.getModel("customer"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"cdpsdiem",function($req$$,$callback$$){let $query$$=$req$$.query,$id_app$$=$req$$.query.id_app;if(!$query$$.tu_ngay||!$query$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay");cdpsdiem($query$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);async.series({email:$callback$$=>{$report$$.joinModel2(null,User,{where:{email:"email"},fields:"name"},()=>{$callback$$()})},
|
|
3
3
|
kh:$callback$$=>{$report$$.joinModel2($id_app$$,Customer,{where:{email:"of_user"},fields:["ten_kh","ma_kh"]},()=>{$callback$$()})}},()=>{$report$$.forEach($r$$=>{$r$$.name||$r$$.email.toLowerCase()!==$id_app$$.toLowerCase()||($r$$.name="C\u00f4ng ty")});let $total$$={email:"",name:"T\u1ed5ng c\u1ed9ng",ton_dau:$report$$.csum("ton_dau"),sl_nhap:$report$$.csum("sl_nhap"),sl_xuat:$report$$.csum("sl_xuat"),ton_cuoi:$report$$.csum("ton_cuoi"),systotal:1,bold:!0};$report$$.push($total$$);$callback$$(null,
|
|
4
4
|
$report$$)})})},{stream:!1})};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const cdpskh=require("../../libs/cdpskh"),permission=require("../../libs/permission"),Customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmbp=global.getModel("dmbp"),dmnv=global.getModel("dmnv"),contract=global.getModel("contract"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),underscore=require("underscore"),async=require("
|
|
1
|
+
const cdpskh=require("../../libs/cdpskh"),permission=require("../../libs/permission"),Customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmbp=global.getModel("dmbp"),dmnv=global.getModel("dmnv"),contract=global.getModel("contract"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),underscore=require("underscore"),async=require("../../libs/asyncCompat"),controller=require("../../controllers/controllerRPT");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"cdpskh",async function($req$$,$callback$$){const $query$$=$req$$.query;if(!$query$$.tk||!$query$$.tu_ngay||!$query$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tk, tu_ngay,den_ngay");var $groupBy_ma_khs$$=$query$$.groupBy||$query$$.groupby||$query$$.group_by;if($groupBy_ma_khs$$&&!underscore.isArray($groupBy_ma_khs$$)&&$groupBy_ma_khs$$.toString().indexOf("[")>=0)try{$groupBy_ma_khs$$=
|
|
3
3
|
JSON.parse($groupBy_ma_khs$$)}catch($e$$){Logger.error("cdpskh",$e$$.message,$groupBy_ma_khs$$)}$query$$.groupBy=$groupBy_ma_khs$$||["tk","ma_kh"];const $id_app$$=$query$$.id_app;$req$$.user.current_app_info.appAdmin||($groupBy_ma_khs$$=await new Promise($resolve$$=>{permission.getRightByItem($req$$.user.current_id_app,global.getModel("customer"),$req$$.user.email,async function($e$$,$_condition$$,$admin$$){if($admin$$)return $resolve$$(null);$_condition$$.id_app=$query$$.id_app;$query$$.ma_kh&&($_condition$$.ma_kh=
|
|
4
4
|
$query$$.ma_kh);$query$$.nh_kh&&($_condition$$.nh_kh=$query$$.nh_kh);$query$$.phu_trach&&($_condition$$.phu_trach=$query$$.phu_trach);$e$$=await global.getModel("customer").find($_condition$$,{ma_kh:1}).lean();$resolve$$($e$$.map($k$$=>$k$$.ma_kh))})}),$query$$.ma_kh={$in:$groupBy_ma_khs$$},delete $query$$.nh_kh,delete $query$$.phu_trach);cdpskh($query$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);async.parallel({cust:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_kh).joinModel2($id_app$$,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const cdpsnphep=require("../../libs/cdpsnphep"),User=global.getModel("user"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const cdpsnphep=require("../../libs/cdpsnphep"),User=global.getModel("user"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"cdpsnphep",function($query_req$$,$callback$$){$query_req$$=$query_req$$.query;if(!$query_req$$.tu_ngay||!$query_req$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay");cdpsnphep($query_req$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);async.series({email:$callback$$=>{$report$$.joinModel2(null,User,{where:{email:"email"},fields:"name"},()=>{$callback$$()})}},
|
|
3
3
|
()=>{let $total$$={email:"",name:"T\u1ed5ng c\u1ed9ng",ton_dau:$report$$.csum("ton_dau"),so_ngay_phep:$report$$.csum("so_ngay_phep"),so_ngay_nghi:$report$$.csum("so_ngay_nghi"),ton_cuoi:$report$$.csum("ton_cuoi"),systotal:1,bold:!0};$report$$.push($total$$);$callback$$(null,$report$$)})})},{stream:!1})};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const cktt=require("../../libs/cktt"),ckcn=require("../../libs/ckcn"),ckdt=require("../../libs/ckdt"),cknphep=require("../../libs/cknphep"),ckvt=require("../../libs/ckvt"),ckvtnpp=require("../../libs/ckvtnpp"),ckdiem=require("../../libs/ckdiem"),cdtk=global.getModel("cdtk"),cdkh=global.getModel("cdkh"),cddt=global.getModel("cddt"),cdnphep=global.getModel("cdnphep"),cdvt=global.getModel("cdvt"),cdvtnpp=global.getModel("cdvtnpp"),cddiem=global.getModel("cddiem"),dvcs=global.getModel("dvcs"),dmkho=global.getModel("dmkho"),
|
|
2
|
-
underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
2
|
+
underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat"),moment=require("moment"),utils=require("../../libs/utils");
|
|
3
3
|
module.exports=function($router$$){new controller($router$$,"kcsns",async($req$$,$callback$$)=>{if(!$req$$.user.appAdmin)return $callback$$({error:"Ch\u1ec9 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb m\u1edbi c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"});if(!$req$$.query.nam)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 N\u0103m(nam)");var $nam_ngay_ks$$=Number($req$$.query.nam);const $sang_nam$$=$nam_ngay_ks$$+1,$den_ngay$$=moment([$nam_ngay_ks$$,11,
|
|
4
4
|
31]).endOf("year").toDate();let $_app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if($nam_ngay_ks$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:moment(`${$sang_nam$$}-01-01`).startOf("year").toDate(),ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($nam_ngay_ks$$).format("DD/MM/YYYY")}`);dvcs.find({id_app:$req$$.query.id_app}).lean().then(function($ds_dvcs$$){async.mapSeries($ds_dvcs$$,
|
|
5
5
|
function($dv$$,$callback$$){const $ma_dvcs$$=$dv$$._id.toString(),$condition$$={id_app:$req$$.query.id_app,ngay:$den_ngay$$,ma_dvcs:$ma_dvcs$$};async.series({ck_tt:function($callback$$){setImmediate(()=>{cdtk.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($condition_tktt_e$$){if($condition_tktt_e$$)return $callback$$($condition_tktt_e$$);$condition_tktt_e$$={...$condition$$,groupBy:["tk"]};($_app$$.options||{}).kc_theo_kho&&$condition_tktt_e$$.groupBy.push("ma_kho");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const bangtinhluong=global.getModel("bangtinhluong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const bangtinhluong=global.getModel("bangtinhluong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"sctbhxh",async($req$$,$callback$$)=>{var $query_thang$$=Number($req$$.query.thang);let $nam$$=Number($req$$.query.nam),$id_app$$=$req$$.user.current_id_app;if(!$query_thang$$||!$nam$$)return $callback$$("T\u00ednh n\u0103ng n\u00e0y y\u00eau c\u1ea7u hai tham s\u1ed1 thang v\u00e0 nam");if($query_thang$$<1||$query_thang$$>12||$nam$$<1E3||$nam$$>3E3)return $callback$$("Tham s\u1ed1 thang ho\u1eb7c nam kh\u00f4ng ph\u00f9 h\u1ee3p");$query_thang$$=
|
|
3
3
|
{thang:$query_thang$$,nam:$nam$$,id_app:$id_app$$};$req$$.query.ma_nv&&($query_thang$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_bp&&($query_thang$$.ma_bp=$req$$.query.ma_bp);let $items$$=await bangtinhluong.find($query_thang$$).lean();async.parallel({nv:async()=>{await $items$$.asyncJoinModel2($req$$.user.current_id_app,dmnv,[{where:{ma_nv:"ma_nv"},fields:["ten_nv","ttncn_mst"]}]);return null},bp:async()=>{await $items$$.asyncJoinModel2($req$$.user.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);
|
|
4
4
|
return null}},()=>{$items$$.forEach($item$$=>{$item$$.tong_bao_hiem=$item$$.tong_bao_hiem_nv+$item$$.tong_bao_hiem_cty;$item$$.chi_tiet_trich_theo_luong=$item$$.giam_tru;delete $item$$.giam_tru});$callback$$(null,$items$$.filter($item$$=>$item$$.ten_bp))})})};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const bangtinhluong=global.getModel("bangtinhluong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const bangtinhluong=global.getModel("bangtinhluong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"sctluong",async($req$$,$callback$$)=>{var $chiTietCacDotDaChi_thang$$=Number($req$$.query.thang);let $nam$$=Number($req$$.query.nam),$id_app$$=$req$$.user.current_id_app;if(!$chiTietCacDotDaChi_thang$$||!$nam$$)return $callback$$("T\u00ednh n\u0103ng n\u00e0y y\u00eau c\u1ea7u hai tham s\u1ed1 thang v\u00e0 nam");if($chiTietCacDotDaChi_thang$$<1||$chiTietCacDotDaChi_thang$$>12||$nam$$<1E3||$nam$$>3E3)return $callback$$("Tham s\u1ed1 thang ho\u1eb7c nam kh\u00f4ng ph\u00f9 h\u1ee3p");
|
|
3
3
|
var $dsNhanVien_query$$={thang:$chiTietCacDotDaChi_thang$$,nam:$nam$$,id_app:$id_app$$};$req$$.query.ma_nv&&($dsNhanVien_query$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_bp&&($dsNhanVien_query$$.ma_bp=$req$$.query.ma_bp);let $bangLuong$$=await bangtinhluong.find($dsNhanVien_query$$).sort({nam:1,thang:1,ma_nv:1}).lean();$dsNhanVien_query$$=$bangLuong$$.map($i$$=>$i$$.ma_nv);$chiTietCacDotDaChi_thang$$=await global.getModel("pcl").find({id_app:$id_app$$,ky:$chiTietCacDotDaChi_thang$$,nam:$nam$$,"details.ma_nv":{$in:$dsNhanVien_query$$}}).lean();
|
|
4
4
|
const $dsDotChi$$=[...(new Set($chiTietCacDotDaChi_thang$$.map($d$$=>$d$$.dot)))].sort(($a$$,$b$$)=>$a$$-$b$$);let $mapChiTiet$$={};$chiTietCacDotDaChi_thang$$.forEach($phieu$$=>{let $fieldName$$=`chi_dot_${$phieu$$.dot}`;$phieu$$.details&&Array.isArray($phieu$$.details)&&$phieu$$.details.forEach($d$$=>{let $amount$$=$d$$.tien_nt||0;$mapChiTiet$$[$d$$.ma_nv]||($mapChiTiet$$[$d$$.ma_nv]={total_da_chi:0});$mapChiTiet$$[$d$$.ma_nv][$fieldName$$]||($mapChiTiet$$[$d$$.ma_nv][$fieldName$$]=0);$mapChiTiet$$[$d$$.ma_nv][$fieldName$$]+=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const bangtinhluong=global.getModel("bangtinhluong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const bangtinhluong=global.getModel("bangtinhluong"),dmnv=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"sctthuetncn",async($req$$,$callback$$)=>{var $query_thang$$=Number($req$$.query.thang);let $nam$$=Number($req$$.query.nam),$id_app$$=$req$$.user.current_id_app;if(!$query_thang$$||!$nam$$)return $callback$$("T\u00ednh n\u0103ng n\u00e0y y\u00eau c\u1ea7u hai tham s\u1ed1 thang v\u00e0 nam");if($query_thang$$<1||$query_thang$$>12||$nam$$<1E3||$nam$$>3E3)return $callback$$("Tham s\u1ed1 thang ho\u1eb7c nam kh\u00f4ng ph\u00f9 h\u1ee3p");$query_thang$$=
|
|
3
3
|
{thang:$query_thang$$,nam:$nam$$,id_app:$id_app$$};$req$$.query.ma_nv&&($query_thang$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_bp&&($query_thang$$.ma_bp=$req$$.query.ma_bp);let $items$$=await bangtinhluong.find($query_thang$$).lean();async.parallel({nv:async()=>{await $items$$.asyncJoinModel2($req$$.user.current_id_app,dmnv,[{where:{ma_nv:"ma_nv"},fields:["ten_nv","ttncn_mst"]}]);return null},bp:async()=>{await $items$$.asyncJoinModel2($req$$.user.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);
|
|
4
4
|
return null}},()=>{$callback$$(null,$items$$.filter($item$$=>$item$$.ten_bp))})})};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const sctvt=require("../../libs/ctvt"),dmvt=global.getModel("dmvt"),dmnvt=global.getModel("dmnvt"),dmkho=global.getModel("dmkho"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("
|
|
1
|
+
const sctvt=require("../../libs/ctvt"),dmvt=global.getModel("dmvt"),dmnvt=global.getModel("dmnvt"),dmkho=global.getModel("dmkho"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("../../libs/asyncCompat"),customer=global.getModel("customer");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"sctvt",function($query_req$$,$callback$$){$query_req$$=$query_req$$.query;if(!$query_req$$.tu_ngay||!$query_req$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay,ma_vt");const $id_app$$=$query_req$$.id_app;sctvt($query_req$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);async.parallel({vt:$callback$$=>{$report$$.joinModel2($id_app$$,dmvt,[{where:"ma_vt",
|
|
3
3
|
fields:["ten_vt","ma_ncc","ma_nvt","ma_dvt"]}],function(){$report$$.filter($r$$=>$r$$.ma_ncc).joinModel2($id_app$$,customer,{where:{ma_ncc:"ma_kh"},fields:[{ten_ncc:"ten_kh"}]},()=>{$report$$.filter($r$$=>$r$$.ma_nvt).joinModel2($id_app$$,dmnvt,{where:{ma_nvt:"_id"},fields:[{ten_nvt:"ten_nvt"}]},()=>{$callback$$()})})})},tt1:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),
|
|
4
4
|
fields:[{barcode1:"ma_tt2"},{ten_tt1:"ten_tt"}]},()=>{$callback$$()})},tt2:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt2,loai_tt:"2"}),fields:[{barcode2:"ma_tt2"},{ten_tt2:"ten_tt"}]},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt3).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt3,loai_tt:"3"}),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const sctvt=require("../../libs/ctvtnpp"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),dmnvt=global.getModel("dmnvt"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("
|
|
1
|
+
const sctvt=require("../../libs/ctvtnpp"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),dmnvt=global.getModel("dmnvt"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("../../libs/asyncCompat"),customer=global.getModel("customer");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"sctvtnpp",async function($cust_req$$,$callback$$){const $query$$=$cust_req$$.query;if(!$query$$.tu_ngay||!$query$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay,ma_vt");($cust_req$$=await global.getModel("customer").findOne({id_app:$query$$.id_app,of_user:$cust_req$$.user.email}).lean())&&$cust_req$$.ma_kho_npp&&($query$$.ma_kho=$cust_req$$.ma_kho_npp);const $id_app$$=$query$$.id_app;
|
|
3
3
|
sctvt($query$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);async.parallel({vt:$callback$$=>{$report$$.joinModel2($id_app$$,dmvt,[{where:"ma_vt",fields:["ten_vt","ma_ncc"]}],function(){$report$$.filter($r$$=>$r$$.ma_ncc).joinModel2($id_app$$,customer,{where:{ma_ncc:"ma_kh"},fields:[{ten_ncc:"ten_kh"}]},()=>{$report$$.filter($r$$=>$r$$.ma_nvt).joinModel2($id_app$$,dmnvt,{where:{ma_nvt:"_id"},fields:[{ten_nvt:"ten_nvt"}]},()=>{$callback$$()})})})},tt1:$callback$$=>{$report$$.filter($r$$=>
|
|
4
4
|
$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),fields:[{barcode1:"ma_tt2"},{ten_tt1:"ten_tt"}]},()=>{$callback$$()})},tt2:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt2,loai_tt:"2"}),fields:[{barcode2:"ma_tt2"},{ten_tt2:"ten_tt"}]},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const sctvt=require("../../libs/ctvttt"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),dmnvt=global.getModel("dmnvt"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("
|
|
1
|
+
const sctvt=require("../../libs/ctvttt"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),dmnvt=global.getModel("dmnvt"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),moment=require("moment"),async=require("../../libs/asyncCompat"),customer=global.getModel("customer");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"sctvttt",function($query_req$$,$callback$$){$query_req$$=$query_req$$.query;if(!$query_req$$.tu_ngay||!$query_req$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay,ma_vt");const $id_app$$=$query_req$$.id_app;sctvt($query_req$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);async.parallel({vt:$callback$$=>{$report$$.joinModel2($id_app$$,dmvt,[{where:"ma_vt",
|
|
3
3
|
fields:["ten_vt","ma_ncc"]}],function(){$report$$.filter($r$$=>$r$$.ma_ncc).joinModel2($id_app$$,customer,{where:{ma_ncc:"ma_kh"},fields:[{ten_ncc:"ten_kh"}]},()=>{$report$$.filter($r$$=>$r$$.ma_nvt).joinModel2($id_app$$,dmnvt,{where:{ma_nvt:"_id"},fields:[{ten_nvt:"ten_nvt"}]},()=>{$callback$$()})})})},tt1:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),fields:[{barcode1:"ma_tt2"},
|
|
4
4
|
{ten_tt1:"ten_tt"}]},()=>{$callback$$()})},tt2:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt2,loai_tt:"2"}),fields:[{barcode2:"ma_tt2"},{ten_tt2:"ten_tt"}]},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt3).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt3,loai_tt:"3"}),fields:[{barcode3:"ma_tt2"},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const gt_ctgt=global.getModel("gt_ctgt"),dmvt=global.getModel("dmvt"),controller=require("../../controllers/controllerRPT"),async=require("
|
|
1
|
+
const gt_ctgt=global.getModel("gt_ctgt"),dmvt=global.getModel("dmvt"),controller=require("../../controllers/controllerRPT"),async=require("../../libs/asyncCompat"),underscore=require("underscore");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"thgt",function($req$$,$callback$$){const $condition$$=$req$$.query;if(!$condition$$.nam||!$condition$$.thang)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,thang");$condition$$.nam=Number($condition$$.nam);$condition$$.thang=Number($condition$$.thang);(new Promise(($resolve$$,$reject$$)=>{let $cond$$={id_app:$condition$$.id_app,nam:$condition$$.nam,thang:$condition$$.thang,yt_trung_gian:{$ne:!0}};
|
|
3
3
|
$condition$$.ma_bp&&($cond$$.ma_bp=$condition$$.ma_bp.toUpperCase());$condition$$.id_lenhsx&&mongoose.Types.ObjectId.isValid($condition$$.id_lenhsx)&&($cond$$.id_lenhsx=$condition$$.id_lenhsx);gt_ctgt.find($cond$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$rs$$.forEach($r$$=>{$r$$.cong_tru=="2"&&($r$$.gt=-$r$$.gt,$r$$.gt_nt=-$r$$.gt_nt,$r$$.t_gt=-$r$$.t_gt,$r$$.t_gt_nt=-$r$$.t_gt_nt)});$resolve$$($rs$$)})})).then($ctgt$$=>new Promise(($resolve$$,$reject$$)=>{async.series({dsyt:$callback$$=>
|
|
4
4
|
{$ctgt$$.groupBy(["ma_yt"],["gt"],($e$$,$yts$$)=>{$callback$$(null,$yts$$)})},thgt:$callback$$=>{$ctgt$$.groupBy(["ma_sp","ma_bp","id_lenhsx"],["gt","gt_nt","t_gt","t_gt_nt"],($e$$,$rs$$)=>{$callback$$(null,$rs$$)},{fieldmaxs:["sl_dd_dk","sl_nk_tk","sl_sx_tk","sl_dd_ck"]})}},($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);const $report$$=$rs$$.thgt;$ctgt$$.forEach($ytgt$$=>{const $r$$=underscore.find($report$$,$re$$=>$re$$.ma_sp==$ytgt$$.ma_sp&&$re$$.ma_bp==$ytgt$$.ma_bp&&$re$$.id_lenhsx==$ytgt$$.id_lenhsx);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const model=global.getModel("labelinfo"),controller=require("../../controllers/controller")
|
|
2
|
-
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"labelinfo",{require_id_app:!1,unique:["labelid","textid"],sort:{labelid:1},onView:async($user$$,$items$$,$next$$)=>{$next$$(null,$items$$)}});$contr_router$$.
|
|
3
|
-
$fn$$)=>{if($data$$.textv.length>2024)return $fn$$("Nh\u00e3 qu\u00e1 d\u00e0i");$data$$.labelid=$data$$.labelid||$data$$.textv;const {admins:$admins$$}=configs;underscore.contains($admins$$,$user$$.email)||$user$$.email==="public"?$fn$$(null,$data$$):$fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o label")};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){const {admins:$admins$$}=configs;underscore.contains($admins$$,$user$$.email)?$fn$$(null,$data$$,$obj$$):$fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt n\u1ed9i dung n\u00e0y")};
|
|
1
|
+
const model=global.getModel("labelinfo"),controller=require("../../controllers/controller");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"labelinfo",{require_id_app:!1,unique:["labelid","textid"],sort:{labelid:1},onView:async($user$$,$items$$,$next$$)=>{$next$$(null,$items$$)}});$contr_router$$.creating=async($user$$,$data$$,$fn$$)=>{if($data$$.textv.length>1024)return $fn$$("Nh\u00e3n qu\u00e1 d\u00e0i");$data$$.labelid=$data$$.labelid||$data$$.textv;$user$$.admin||$user$$.email==="public"?$fn$$(null,$data$$):$fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o label")};
|
|
4
3
|
$contr_router$$.route()};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("listinfo"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),underscore=require("underscore"),async=require("
|
|
1
|
+
const model=global.getModel("listinfo"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),underscore=require("underscore"),async=require("../../libs/asyncCompat"),{onAfterCommit}=require("../../libs/sessionContext");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"listinfo",{sort:{code:1},require_id_app:!1,unique:["code"],onFinding:($$or_endpoints_user$$,$condition$$,$next$$)=>{$condition$$.is_endpoint&&($$or_endpoints_user$$=Object.values(global.controllers).filter($v$$=>$condition$$.require_id_app&&$v$$.options.require_id_app==0?!1:!0).map($v$$=>$v$$.name.toLowerCase()),delete $condition$$.require_id_app,delete $condition$$.is_endpoint,$condition$$.code&&($$or_endpoints_user$$=$$or_endpoints_user$$.filter($e$$=>
|
|
3
3
|
$e$$==$condition$$.code)),$$or_endpoints_user$$=[{api_code:{$in:$$or_endpoints_user$$}},{code:{$in:$$or_endpoints_user$$}}],$condition$$.$or?$condition$$.$and?$condition$$.$and.push({$or:$$or_endpoints_user$$}):$condition$$.$and=[{$or:$$or_endpoints_user$$},{...$condition$$}]:$condition$$.$or=$$or_endpoints_user$$);delete $condition$$.is_endpoint;Logger.info("condition listinfo",JSON.stringify($condition$$,null,2));$next$$(null,$condition$$)},onCreating:($user$$,$obj$$,$next$$)=>{if(!underscore.contains(configs.admins,
|
|
4
4
|
$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$obj$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{if($data$$.code&&$data$$.code!==$obj$$.code&&$obj$$.create_model)return $next$$("Kh\u00f4ng th\u1ec3 s\u1eeda code c\u1ee7a danh m\u1ee5c n\u00e0y");if($obj$$.allow_users&&$obj$$.allow_users.split(",").indexOf($user$$.email)>=0)return $next$$(null,$data$$,$obj$$);const {subAdmins:$subAdmins$$,
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
const model=global.getModel("menuinfo"),
|
|
2
|
-
module.exports=function($router$$){(new controller($router$$,model,"menuinfo",{sort:{code:1},require_id_app:!1,unique:["code"],onFinding:($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onCreating:($user$$,$obj$$,$next$$)=>{if(!underscore.contains(configs.admins,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$obj$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>
|
|
3
|
-
{if(!underscore.contains(configs.admins,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$data$$,$obj$$)},onCreated:($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)},onUpdated:($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)},onDeleting:($user$$,$obj$$,$next$$)=>{if($obj$$.user_created!==$user$$.email&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");
|
|
4
|
-
$next$$(null,$obj$$)},onView:($user$$,$items$$,$next$$)=>{$next$$(null,$items$$)}})).route()};
|
|
1
|
+
const model=global.getModel("menuinfo"),controller=require("../../controllers/controller");module.exports=function($router$$){(new controller($router$$,model,"menuinfo",{sort:{code:1},require_id_app:!1,unique:["code"],onFinding:($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)}})).route()};
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
const model=global.getModel("moduleinfo"),
|
|
2
|
-
module.exports=function($router$$){(new controller($router$$,model,"moduleinfo",{sort:{stt:1},require_id_app:!1,unique:["app","code"],onFinding:async($appInfo_user$$,$condition$$,$next$$)=>{$condition$$.id_app&&isValidObjectId($condition$$.id_app)&&($appInfo_user$$=await global.getModel("app").findOne({_id:$condition$$.id_app},{menu_code:1}).lean())&&$appInfo_user$$.menu_code&&($condition$$.app=$appInfo_user$$.menu_code);delete $condition$$.id_app;$next$$(null,$condition$$)}
|
|
3
|
-
$next$$)=>{if(!underscore.contains(configs.admins,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$obj$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{if(!underscore.contains(configs.admins,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$data$$,$obj$$)},
|
|
4
|
-
onCreated:($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)},onUpdated:($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)},onDeleting:($user$$,$obj$$,$next$$)=>{if($obj$$.user_created!==$user$$.email&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");$next$$(null,$obj$$)},onView:($user$$,$items$$,$next$$)=>{$next$$(null,$items$$)}})).route()};
|
|
1
|
+
const model=global.getModel("moduleinfo"),controller=require("../../controllers/controller"),{isValidObjectId}=require("mongoose");
|
|
2
|
+
module.exports=function($router$$){(new controller($router$$,model,"moduleinfo",{sort:{stt:1},require_id_app:!1,unique:["app","code"],onFinding:async($appInfo_user$$,$condition$$,$next$$)=>{$condition$$.id_app&&isValidObjectId($condition$$.id_app)&&($appInfo_user$$=await global.getModel("app").findOne({_id:$condition$$.id_app},{menu_code:1}).lean())&&$appInfo_user$$.menu_code&&($condition$$.app=$appInfo_user$$.menu_code);delete $condition$$.id_app;$next$$(null,$condition$$)}})).route()};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("notification"),User=global.getModel("user"),underscore=require("underscore"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("notification"),User=global.getModel("user"),underscore=require("underscore"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat"),{onAfterCommit}=require("../../libs/sessionContext");
|
|
2
2
|
module.exports=function($contr_router$$){const $usersAdmin$$=configs.admins;$contr_router$$=new controller($contr_router$$,model,"notification",{require_id_app:!1,sort:{date_created:-1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){$result$$.joinModel(void 0,User,[{akey:"email_sender",bkey:"email",fields:[{name:"name_sender",value:"name"},{name:"picture_sender",value:"picture"}]},{akey:"email_receiver",bkey:"email",fields:[{name:"name_receiver",value:"name"},{name:"picture_receiver",
|
|
3
3
|
value:"picture"}]}],function(){$result$$.forEach(function($r$$){$r$$.picture_sender||($r$$.picture_sender="/images/avatar.jpg");$r$$.name_sender||($r$$.name_sender=$r$$.email_sender);$r$$.picture_receiver||($r$$.picture_receiver="/images/avatar.jpg");$r$$.name_receiver||($r$$.name_receiver=$r$$.email_receiver)});$fn$$(null,$result$$)})};$contr_router$$.getting=function($user$$,$id$$,$next$$,$obj$$){if($obj$$.email_owner!=$user$$.email)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n thao t\u00e1c n\u00e0y");
|
|
4
4
|
$next$$()};$contr_router$$.finding=function($user$$,$condition$$,$next$$){$condition$$.$or=[{email_owner:$user$$.email}];$next$$(null,$condition$$)};$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.email_sender=$user$$.email;$obj$$.email_owner=$user$$.email;$obj$$.read=!0;$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){onAfterCommit(()=>{const $obj_receiver$$=new model;$obj_receiver$$.email_sender=$obj$$.email_sender;$obj_receiver$$.email_receiver=$obj$$.email_receiver;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require("../global");const async=require("
|
|
1
|
+
require("../global");const async=require("../libs/asyncCompat"),model=global.getModel("app"),fs=require("fs"),path=require("path"),moment=require("moment"),zip=(new require("node-zip"))();require("../libs/prototypes.js");const Participant=global.getModel("participant"),{workerData}=require("worker_threads");let connect2Db=!1;
|
|
2
2
|
const _=require("lodash"),v8=require("v8"),{postToParent,onParentMessage}=require("./worker-utils"),backup=$msg$$=>{let $dir$$=$msg$$.dirPath;if($dir$$&&!fs.existsSync($dir$$))postToParent({error:"Th\u01b0 m\u1ee5c l\u01b0u tr\u1eef kh\u00f4ng t\u1ed3n t\u1ea1i",id_task:$msg$$.id_task});else{$dir$$=$dir$$||path.dirname(__dirname)+"/backup/";if($msg$$.configs&&_.isString($msg$$.configs))try{$msg$$.configs=JSON.parse($msg$$.configs)}catch($e$$){delete $msg$$.configs,console.info($e$$)}var $configs$$=
|
|
3
3
|
$msg$$.configs||require("../configs");connect2Db||(mongoose.connect($configs$$.database.url,{useNewUrlParser:!0}),connect2Db=!0);var $id_app$$=$msg$$.id,$dateFrom$$=$msg$$.dateFrom,$dateTo$$=$msg$$.dateTo,$back_app_info$$=$msg$$.back_app_info;$dateFrom$$?$dateFrom$$=moment(new Date($dateFrom$$)).startOf("date"):($dateFrom$$=moment(),$dateFrom$$.year(1900));$dateTo$$?$dateTo$$=moment(new Date($dateTo$$)).endOf("date"):($dateTo$$=moment(),$dateTo$$.year(2999));var $user$$=$msg$$.user;model.findOne({_id:$id_app$$}).lean().then(async $app$$=>
|
|
4
4
|
{if(!$app$$)return postToParent({error:"C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i",id_task:$msg$$.id_task});const $par$$=await Participant.findOne({email:$user$$,id_app:$id_app$$,admin:!0});if($app$$.user_created!==$user$$&&!$par$$)return postToParent({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y",id_task:$msg$$.id_task});let $data$$={};$back_app_info$$&&($data$$["app.js"]=$app$$);async.parallel({data:$callback$$=>{mongoose.connection.db.listCollections().toArray(($err$$,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const _=require("underscore"),{workerData}=require("worker_threads"),async=require("
|
|
1
|
+
const _=require("underscore"),{workerData}=require("worker_threads"),async=require("../libs/asyncCompat");require("../global");const {evalute}=require("../libs/utils"),v8=require("v8"),{postToParent,onParentMessage}=require("./worker-utils");function exec($cong_thuc_func_string$$){$cong_thuc_func_string$$=$cong_thuc_func_string$$.indexOf("return ")<0?`return ${$cong_thuc_func_string$$}`:$cong_thuc_func_string$$;return evalute($cong_thuc_func_string$$)}
|
|
2
2
|
function calcGrid4Column($report$$,$column$$,$rowCallback$$,$callback$$){$report$$.filter($r$$=>$r$$.cong_thuc&&!$r$$[`cong_thuc_${$column$$}`]).forEach($r$$=>{$r$$[`cong_thuc_${$column$$}`]=$r$$.cong_thuc});let $string_cong_thucs_old$$="";async.forever($cb$$=>{let $cong_thucs$$=$report$$.filter($r$$=>$r$$[`cong_thuc_${$column$$}`]),$string_cong_thucs$$=$cong_thucs$$.map($r$$=>$r$$[`cong_thuc_${$column$$}`]).join("");if(!$string_cong_thucs$$)return $cb$$(-1);if($string_cong_thucs$$===$string_cong_thucs_old$$)return $cong_thucs$$.forEach($row$$=>
|
|
3
3
|
{Logger.error("Formular error",$row$$[`cong_thuc_${$column$$}`],$row$$);let $cong_thuc$$=$row$$[`cong_thuc_${$column$$}`].replace(/(\[\w+\])/g,"0");try{$row$$[$column$$]=exec($cong_thuc$$)}catch($e$$){$row$$[$column$$]=0}$row$$[`cong_thuc_${$column$$}`]=""}),$cb$$(-1);$string_cong_thucs_old$$=$string_cong_thucs$$;$cong_thucs$$.forEach($row$$=>{let $cong_thuc$$=$row$$[`cong_thuc_${$column$$}`];$report$$.filter($_row$$=>$cong_thuc$$.indexOf(`[${$_row$$.ma_so}]`)>=0).forEach($_row$$=>{if($_row$$[`cong_thuc_${$column$$}`])$cong_thuc$$=
|
|
4
4
|
$cong_thuc$$.split(`[${$_row$$.ma_so}]`).join("("+$_row$$[`cong_thuc_${$column$$}`]+")");else{let $value$$=0;try{($value$$=Number($_row$$[$column$$]))||($value$$=0)}catch($e$$){$value$$=0,Logger.error("value is not value",$value$$,"of row",$_row$$)}$cong_thuc$$=$cong_thuc$$.split(`[${$_row$$.ma_so}]`).join("("+$value$$+")")}});if($cong_thuc$$.indexOf("[")<0)try{$row$$[$column$$]=exec($cong_thuc$$),$row$$[`cong_thuc_${$column$$}`]="",$rowCallback$$(null,$row$$)}catch($e$$){Logger.error("Error when exec formula",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{workerData}=require("worker_threads"),async=require("
|
|
1
|
+
const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{workerData}=require("worker_threads"),async=require("../libs/asyncCompat"),_=require("lodash");require("../global");
|
|
2
2
|
const {evalute}=require("../libs/utils"),v8=require("v8"),{postToParent,onParentMessage}=require("./worker-utils"),runScript=async $msg$$=>{try{var $data_error$$=$msg$$.script;if(!$data_error$$)return postToParent({error:"Script is empty"});if($data_error$$.indexOf("async ")>=0)return postToParent({error:"async function is not allow"});await evalute(`return (async ()=>{
|
|
3
3
|
${$data_error$$}
|
|
4
4
|
})`,{moment,numeral,axios,async})();postToParent({result:"OK",id_task:$msg$$.id_task})}catch($e$$){$data_error$$=$e$$.error||$e$$.message||$e$$,$data_error$$=$data_error$$+"\nScript: \n"+$msg$$.script,postToParent({error:$data_error$$,id_task:$msg$$.id_task})}};onParentMessage($msg$$=>{if($msg$$){if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){Logger.error($e$$);postToParent({error:"msg is not valid"});return}runScript($msg$$)}else postToParent({error:"msg is not valid"})});
|