flexbiz-server 12.2.3 → 12.2.4
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 +1 -1
- package/server/auths/local.js +27 -26
- package/server/controllers/controller.js +56 -55
- package/server/controllers/controllerRPT.js +18 -17
- package/server/libs/cdpstk.js +1 -1
- package/server/libs/databanle.js +13 -13
- package/server/libs/getGiaban.js +23 -22
- package/server/libs/post-book.js +9 -8
- package/server/libs/post-socai.js +9 -9
- package/server/libs/prototypes.js +4 -4
- package/server/libs/tinhGtPhanboSltp.js +5 -5
- package/server/libs/tinhGtPhanboYtcp.js +2 -2
- package/server/libs/tinhGtThcppstk.js +1 -1
- package/server/libs/tinhGtTrucTiep.js +8 -7
- package/server/libs/tinhgiatb.js +4 -4
- package/server/libs/tinhgiatb1vt.js +3 -3
- package/server/libs/tinhhoahong.js +32 -0
- package/server/libs/utils.js +4 -3
- package/server/models/app.js +9 -8
- package/server/models/approve.js +4 -4
- package/server/models/customer.js +8 -8
- package/server/models/dh2.js +10 -9
- package/server/models/dmgiaban.js +6 -6
- package/server/models/dmhoahonghd.js +6 -5
- package/server/models/fbconversation.js +9 -0
- package/server/models/fbmessage.js +2 -0
- package/server/models/fbpage.js +2 -0
- package/server/models/group.js +4 -2
- package/server/models/hd2.js +8 -8
- package/server/models/hd3.js +9 -9
- package/server/models/hd7.js +1 -1
- package/server/models/notification.js +3 -2
- package/server/models/participant.js +5 -5
- package/server/models/pbl.js +4 -4
- package/server/models/reportinfo.js +2 -2
- package/server/models/rptform.js +3 -2
- package/server/models/schedule.js +1 -1
- package/server/models/so1.js +7 -6
- package/server/models/socai.js +4 -4
- package/server/models/tdttco.js +8 -4
- package/server/models/tdttno.js +8 -4
- package/server/models/tokens.js +2 -2
- package/server/models/usergroup.js +5 -4
- package/server/models/vatra.js +2 -2
- package/server/models/vatvao.js +4 -4
- package/server/modules/lists/ls-assinvestment.js +1 -1
- package/server/modules/lists/ls-customer.js +13 -14
- package/server/modules/lists/ls-dmvt.js +48 -39
- package/server/modules/lists/ls-fbconversation.js +3 -0
- package/server/modules/lists/ls-fbmessage.js +3 -0
- package/server/modules/lists/ls-fbpage.js +10 -0
- package/server/modules/lists/ls-introducecode.js +1 -1
- package/server/modules/lists/ls-news.js +1 -1
- package/server/modules/lists/ls-opportunity.js +3 -3
- package/server/modules/lists/ls-session.js +1 -1
- package/server/modules/public/callin.js +6 -6
- package/server/modules/reports/rp-cdpstk.js +3 -3
- package/server/modules/reports/rp-chitiettaisan.js +9 -8
- package/server/modules/reports/rp-ckvt.js +9 -7
- package/server/modules/reports/rp-ctbanle.js +13 -12
- package/server/modules/reports/rp-databanle.js +8 -4
- package/server/modules/reports/rp-dtbanletheoct.js +16 -9
- package/server/modules/reports/rp-dtbanletheokh.js +12 -6
- package/server/modules/reports/rp-dtbanletheokho.js +14 -9
- package/server/modules/reports/rp-dtbanletheonam.js +15 -9
- package/server/modules/reports/rp-dtbanletheongay.js +13 -8
- package/server/modules/reports/rp-dtbanletheonv.js +15 -9
- package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
- package/server/modules/reports/rp-dtbanletheothang.js +15 -9
- package/server/modules/reports/rp-getinvoice2pay.js +4 -6
- package/server/modules/reports/rp-getinvoice2receive.js +4 -6
- package/server/modules/reports/rp-hoahong.js +9 -0
- package/server/modules/reports/rp-kqhdkd.js +5 -4
- package/server/modules/reports/rp-ptcttct.js +7 -6
- package/server/modules/reports/rp-pttct.js +8 -8
- package/server/modules/reports/rp-pttctkho.js +3 -2
- package/server/modules/reports/rp-pttctkho2.js +3 -3
- package/server/modules/reports/rp-thnxt.js +8 -8
- package/server/modules/reports/rp-thnxt_sl.js +6 -6
- package/server/modules/reports/rp-thnxttt.js +6 -6
- package/server/modules/reports/rp-tmbctc.js +16 -16
- package/server/modules/systems/sys-app.js +25 -24
- package/server/modules/systems/sys-notification.js +2 -2
- package/server/modules/systems/sys-schedule.js +1 -1
- package/server/modules/systems/sys-user.js +8 -8
- package/server/modules/vouchers/vo-bc1.js +9 -8
- package/server/modules/vouchers/vo-bg2.js +9 -9
- package/server/modules/vouchers/vo-bn1.js +5 -4
- package/server/modules/vouchers/vo-dh2.js +15 -38
- package/server/modules/vouchers/vo-dnm.js +11 -12
- package/server/modules/vouchers/vo-hd2.js +63 -83
- package/server/modules/vouchers/vo-hd3.js +28 -22
- package/server/modules/vouchers/vo-hd7.js +37 -36
- package/server/modules/vouchers/vo-pbl.js +49 -49
- package/server/modules/vouchers/vo-pc1.js +9 -8
- package/server/modules/vouchers/vo-pn1.js +24 -22
- package/server/modules/vouchers/vo-pn5.js +1 -1
- package/server/modules/vouchers/vo-pn9.js +23 -23
- package/server/modules/vouchers/vo-pnc.js +8 -8
- package/server/modules/vouchers/vo-pnh.js +5 -5
- package/server/modules/vouchers/vo-pt1.js +17 -16
- package/server/modules/vouchers/vo-pxc.js +16 -16
- package/server/modules/vouchers/vo-pxh.js +12 -10
- package/server/modules/vouchers/vo-so1.js +94 -119
- package/server/modules/vouchers/vo-so4.js +1 -1
- package/server/modules/vouchers/vo-so5.js +2 -2
- package/server/workers/restoreApp.js +21 -12
- package/server/workers/runScript.js +3 -3
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
'use strict';const _global=require("../global"),async=require("async"),model=global.getModel("app"),Participant=global.getModel("participant"),fs=require("fs"),
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
$
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
{
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
'use strict';const _global=require("../global"),async=require("async"),model=global.getModel("app"),Participant=global.getModel("participant"),fs=require("fs"),JSZip=require("jszip");require("../libs/prototypes.js");const _=require("lodash"),{parentPort,workerData}=require("worker_threads"),{ObjectId}=require("mongodb");let connect2Db=!1;
|
|
2
|
+
const coll_ex="user.js app.js dvcs socais socaitmps vatras vatvaos tdttnos tdttcos tdttno_tts tdttco_tts files folders notes accounts dmdvts currencies dmvts sokhos sokhotts sokhokhongtons sokhocapphats cdvts dmnvs cdnpheps bangtinhluongs cdkhs cdkts cddts cddiems sophanbokhs sotinhkhs qtsdieuchinhs hspbts dmqcts pkts pkcs dmkcs calllogs".split(" "),restoreColl=async($id_app$$,$dvcs_pairs$$,$data$$,$colls$$)=>(await Promise.all($colls$$.map($col_name$$=>{console.log("restore ",$col_name$$,"...");
|
|
3
|
+
return new Promise(($resolve$$,$reject$$)=>{let $rows$$=$data$$[$col_name$$]||[];$rows$$.forEach(($r$$,$index$$)=>{let $time$$=(new Date).getTime();$r$$.index=$index$$+$time$$;$r$$.line=$index$$+$time$$;$r$$.nh_dk=$index$$+$time$$});mongoose.connection.db.collection($col_name$$,($err$$,$coll$$)=>{if($err$$)return $reject$$($err$$);if(!$coll$$)return console.error("can't insert data, collection",$col_name$$,"is not exists"),$resolve$$([]);$coll$$.deleteMany({id_app:$id_app$$},$e$$=>{if($e$$)return $reject$$($e$$);
|
|
4
|
+
if(0===$rows$$.length)return $resolve$$([]);insert($col_name$$,$coll$$,$rows$$,$id_app$$,$dvcs_pairs$$).then($pairs$$=>{$resolve$$($pairs$$)}).catch($e$$=>{$reject$$($e$$)})})})})}))).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),insertOne=($col_name$$,$id_app$$,$coll$$,$rows$$,$dvcs_pairs$$=[],$update_book$$=!0)=>new Promise(($resolve$$,$reject$$)=>{async.mapSeries($rows$$,($row$$,$callback$$)=>{let $old_id$$=$row$$._id;delete $row$$._id;for(let $key$$ in $row$$)$row$$[$key$$]&&_.isString($row$$[$key$$])&&
|
|
5
|
+
(0<=$key$$.indexOf("ngay_")||0<=$key$$.indexOf("date"))&&($row$$[$key$$]=new Date($row$$[$key$$]));$coll$$.insertOne($row$$,async($e$$,$pair_rs$$)=>{if($e$$)return $callback$$($e$$);$e$$=$pair_rs$$.insertedId.toString();$pair_rs$$={old_id:$old_id$$,new_id:$e$$};$update_book$$&&(global.getModel("socai").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("socaitmp").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokho").updateMany({id_app:$row$$.id_app,
|
|
6
|
+
id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokhott").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokhocapphat").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokhokhongton").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("vatra").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("vatvao").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),0>$col_name$$.indexOf("file")&&
|
|
7
|
+
(global.getModel("file").updateMany({id_app:$row$$.id_app,id_link:$old_id$$},{id_link:$e$$}),global.getModel("file").updateMany({id_app:$row$$.id_app,id_folder:$old_id$$},{id_folder:$e$$})),0>$col_name$$.indexOf("folder")&&global.getModel("folder").updateMany({id_app:$row$$.id_app,id_link:$old_id$$},{id_link:$e$$}),0<=$col_name$$.indexOf("folder")&&global.getModel("folder").updateMany({id_app:$row$$.id_app,thu_muc_goc:$old_id$$},{thu_muc_goc:$e$$}),0>$col_name$$.indexOf("note")&&global.getModel("note").updateMany({id_app:$row$$.id_app,
|
|
8
|
+
id_link:$old_id$$},{id_link:$e$$}),0>$col_name$$.indexOf("tdttno")&&(global.getModel("tdttno").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttno_tt").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttno_tt").updateMany({id_app:$row$$.id_app,id_hd:$old_id$$},{id_hd:$e$$})),0>$col_name$$.indexOf("tdttco")&&(global.getModel("tdttco").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttco_tt").updateMany({id_app:$row$$.id_app,
|
|
9
|
+
id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttco_tt").updateMany({id_app:$row$$.id_app,id_hd:$old_id$$},{id_hd:$e$$})),0<=$col_name$$.indexOf("qts")&&(global.getModel("sophanbokh").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},{id_ts:$e$$}),global.getModel("sotinhkh").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},{id_ts:$e$$}),global.getModel("qts_dieuchinh").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},{id_ts:$e$$}),global.getModel("hspbts").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},
|
|
10
|
+
{id_ts:$e$$})),0<=$col_name$$.indexOf("dmnhvts")&&(global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt:$old_id$$},{ma_nvt:$e$$}),global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt2:$old_id$$},{ma_nvt2:$e$$}),global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt3:$old_id$$},{ma_nvt3:$e$$}),global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt4:$old_id$$},{ma_nvt4:$e$$})),0<=$col_name$$.indexOf("customer")&&global.getModel("calllog").updateMany({id_app:$row$$.id_app,
|
|
11
|
+
id_kh:$old_id$$},{id_kh:$e$$}));$callback$$(null,$pair_rs$$)})},async($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);await Promise.all($dvcs_pairs$$.map($pair$$=>(async()=>{$coll$$.updateMany({id_app:$id_app$$,ma_dvcs:$pair$$.old_id},{$set:{ma_dvcs:$pair$$.new_id}},()=>{console.log("updated dvcs",$col_name$$,$pair$$)})})()));$resolve$$($rs$$)})}),insert=($col_name$$,$coll$$,$rows$$,$id_app$$,$dvcs_pairs$$)=>{$rows$$=$rows$$.map($row$$=>{delete $row$$.__v;delete $row$$.pkey;$row$$.id_app=$id_app$$;return $row$$});
|
|
12
|
+
return"socais"===$col_name$$||"sokhos"===$col_name$$||"sokhott"===$col_name$$||"vatras"===$col_name$$||"vatvaos"===$col_name$$||"dvcs"===$col_name$$?insertOne($col_name$$,$id_app$$,$coll$$,$rows$$,$dvcs_pairs$$,!1):insertOne($col_name$$,$id_app$$,$coll$$,$rows$$,$dvcs_pairs$$,!0)},restore=$message$$=>{if($message$$.configs&&_.isString($message$$.configs))try{$message$$.configs=JSON.parse($message$$.configs)}catch($e$$){delete $message$$.configs,console.info($e$$)}const $configs$$=$message$$.configs||
|
|
13
|
+
require("../configs");connect2Db||(mongoose.connect($configs$$.database.url,{useNewUrlParser:!0}),connect2Db=!0);let $id_app$$=$message$$.id,$user$$=$message$$.user,$fileZip$$=$message$$.file;model.findOne({_id:$id_app$$}).lean().exec(async($e$jscomp$0$$,$app$$)=>{if($e$jscomp$0$$||!$app$$)return parentPort.postMessage({error:$e$jscomp$0$$||"C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"});$e$jscomp$0$$=await Participant.findOne({email:$user$$,id_app:$id_app$$,admin:!0});if($app$$.user_created!==
|
|
14
|
+
$user$$&&!$e$jscomp$0$$)return parentPort.postMessage({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"});fs.readFile($fileZip$$,($err$jscomp$0$$,$dataZip$$)=>{if($err$jscomp$0$$)return parentPort.postMessage({error:$err$jscomp$0$$});try{JSZip.loadAsync($dataZip$$).then(function($zip$$){return $zip$$.file("backup.json").async("string")}).then($string_data$$=>{if($string_data$$){let $data$$=JSON.parse($string_data$$),$dvcs_pairs$$;async.series({app:$callback$$=>
|
|
15
|
+
{console.log("restore app...");let $appInfo$$=$data$$["app.js"];$appInfo$$?(delete $appInfo$$._id,delete $appInfo$$.__v,model.findOneAndUpdate({_id:$id_app$$},$appInfo$$,$e$$=>{if($e$$)return $callback$$($e$$);$callback$$()})):$callback$$()},dvcs:$callback$jscomp$0$$=>{async.mapSeries(coll_ex,($coll$$,$callback$$)=>{let $colls$$=Object.keys($data$$).filter($k$$=>$k$$==$coll$$);restoreColl($id_app$$,$dvcs_pairs$$,$data$$,$colls$$).then($pairs$$=>{"dvcs"==$coll$$&&($dvcs_pairs$$=$pairs$$);async.map($pairs$$,
|
|
16
|
+
($pair$$,$cb$$)=>{setImmediate(()=>{"dvcs"==$coll$$&&($string_data$$=$string_data$$.split($pair$$.old_id).join($pair$$.new_id));$cb$$()})},()=>{$callback$$()})}).catch($e$$=>{$callback$$($e$$)})},$e$$=>{$callback$jscomp$0$$($e$$)})},data:$callback$jscomp$0$$=>{let $colls$jscomp$0$$=Object.keys($data$$).filter($k$$=>0>coll_ex.indexOf($k$$));restoreColl($id_app$$,$dvcs_pairs$$,$data$$,$colls$jscomp$0$$).then($pairs$$=>{let $_data_goc$$=JSON.parse($string_data$$),$colls$$=Object.keys($_data_goc$$).filter($k$$=>
|
|
17
|
+
0>coll_ex.indexOf($k$$)),$data_replace$$={};$colls$$.forEach($c$$=>{$data_replace$$[$c$$]=($_data_goc$$[$c$$]||[]).map($r$$=>JSON.stringify($r$$))});async.mapSeries($pairs$$,($pair$$,$cb$$)=>{setImmediate(()=>{$colls$$.forEach($c$$=>{console.log("update pair",$pair$$,$c$$);$data_replace$$[$c$$]=$data_replace$$[$c$$].map($r$$=>0>$r$$.indexOf($pair$$.old_id)?$r$$:$r$$.split($pair$$.old_id).join($pair$$.new_id))});$cb$$()})},()=>{async.mapSeries($colls$$,($col_name$$,$callback3$$)=>{const $rows$$=$data_replace$$[$col_name$$];
|
|
18
|
+
console.log("update collection",$col_name$$,$rows$$.length,"rows");0<$rows$$.length?mongoose.connection.db.collection($col_name$$,($err$$,$coll$$)=>{if($err$$)return $callback3$$($err$$);if(!$coll$$)return console.error("can't update data. collection",$col_name$$,"is not exists"),$callback3$$();async.mapSeries($rows$$,($_row$$,$callback$$)=>{setImmediate(()=>{let $row$$=JSON.parse($_row$$);delete $row$$.__v;delete $row$$.pkey;$row$$.id_app=$id_app$$;let $_id$$=ObjectId($row$$._id);delete $row$$._id;
|
|
19
|
+
for(let $key$$ in $row$$)$row$$[$key$$]&&_.isString($row$$[$key$$])&&(0<=$key$$.indexOf("ngay_")||0<=$key$$.indexOf("date"))&&($row$$[$key$$]=new Date($row$$[$key$$]));$coll$$.updateOne({_id:$_id$$},{$set:$row$$},($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);console.log("updated",$col_name$$,$rs$$.matchedCount,$rs$$.modifiedCount,$rs$$.upsertedId);$callback$$()})})},$e$$=>{console.log("updated collection",$col_name$$,"successfull");$callback3$$($e$$)})}):$callback3$$()},$e$$=>{$e$$||console.log("all collections was restore successful");
|
|
20
|
+
$callback$jscomp$0$$($e$$)})})}).catch($e$$=>{$callback$jscomp$0$$($e$$)})}},$e$$=>{if($e$$)return console.error($e$$),parentPort.postMessage({error:$e$$});console.log("database was restore successful");parentPort.postMessage({result:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 kh\u00f4i ph\u1ee5c d\u1eef li\u1ec7u th\u00e0nh c\u00f4ng"})})}else return parentPort.postMessage({error:"File l\u01b0u tr\u1eef kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u"})})}catch($e$$){return console.error($e$$),parentPort.postMessage({error:$e$$.message})}})})};
|
|
21
|
+
parentPort.on("message",$message$$=>{$message$$?restore($message$$):parentPort.postMessage({error:"msg is not valid"})});workerData&&workerData.id&&workerData.findOne&&restore(workerData);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{evalute}=require("../libs/utils"),{parentPort,workerData}=require("worker_threads"),async=require("async"),_=require("lodash"),runScript=async $data_function_body_msg$$=>{if($data_function_body_msg$$=$data_function_body_msg$$.script){if(0<=$data_function_body_msg$$.indexOf("async "))return parentPort.postMessage({error:"async function is not allow"})
|
|
2
|
-
`return ${$data_function_body_msg$$}`);var $sandbox$$={moment,numeral,axios,async};try{await evalute(`return (async ()=>{
|
|
1
|
+
'use strict';const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{evalute}=require("../libs/utils"),{parentPort,workerData}=require("worker_threads"),async=require("async"),_=require("lodash"),runScript=async $data_function_body_msg$$=>{if($data_function_body_msg$$=$data_function_body_msg$$.script){if(0<=$data_function_body_msg$$.indexOf("async "))return parentPort.postMessage({error:"async function is not allow"});$data_function_body_msg$$=`return (async ()=>{
|
|
3
2
|
${$data_function_body_msg$$}
|
|
4
|
-
})
|
|
3
|
+
})`;var $error$$={moment,numeral,axios,async};try{await evalute($data_function_body_msg$$,$error$$)(),parentPort.postMessage({result:"OK"})}catch($e$$){$error$$=$e$$.error||$e$$.message||$e$$,$error$$=$error$$+"\nScript: \n"+$data_function_body_msg$$,parentPort.postMessage({error:$error$$})}}};parentPort.on("message",$msg$$=>{$msg$$?runScript($msg$$):parentPort.postMessage({error:"msg is not valid"})});
|
|
4
|
+
if(workerData&&workerData.configs){let $msg$$=workerData;if($msg$$.configs&&_.isString($msg$$.configs))try{$msg$$.configs=JSON.parse($msg$$.configs)}catch($e$$){delete $msg$$.configs,console.info($e$$)}$msg$$.configs&&runScript($msg$$)};
|