flexbiz-server 12.0.10 → 12.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/package.json +2 -1
  2. package/server/auths/facebook.js +10 -9
  3. package/server/auths/google.js +9 -8
  4. package/server/controllers/controller.js +79 -78
  5. package/server/global.js +2 -2
  6. package/server/libs/blockchainconnect.js +11 -10
  7. package/server/libs/ckvt.js +10 -9
  8. package/server/libs/ckvtcapphat.js +2 -2
  9. package/server/libs/ckvttt.js +5 -5
  10. package/server/libs/databanle.js +14 -14
  11. package/server/libs/dkvt.js +2 -2
  12. package/server/libs/dkvttt.js +3 -3
  13. package/server/libs/permission.js +12 -12
  14. package/server/libs/post-book.js +2 -2
  15. package/server/libs/thnxt.js +7 -7
  16. package/server/libs/thnxttt.js +7 -7
  17. package/server/libs/tinhgiatb.js +22 -19
  18. package/server/models/app.js +4 -4
  19. package/server/models/asskey.js +2 -2
  20. package/server/models/asssell.js +3 -3
  21. package/server/models/dmvt.js +5 -5
  22. package/server/models/hd2.js +5 -5
  23. package/server/models/listinfo.js +2 -2
  24. package/server/models/pbl.js +5 -5
  25. package/server/models/pn1.js +2 -2
  26. package/server/models/pn5.js +3 -3
  27. package/server/models/pn9.js +2 -2
  28. package/server/models/po1.js +1 -1
  29. package/server/models/so1.js +3 -3
  30. package/server/models/tontucthoi.js +3 -3
  31. package/server/models/transaction.js +3 -3
  32. package/server/models/user.js +7 -6
  33. package/server/modules/lists/ls-asskey.js +17 -14
  34. package/server/modules/lists/ls-asssell.js +13 -12
  35. package/server/modules/lists/ls-cart.js +12 -9
  36. package/server/modules/lists/ls-dmvt.js +32 -27
  37. package/server/modules/lists/ls-file.js +13 -13
  38. package/server/modules/lists/ls-participant.js +4 -4
  39. package/server/modules/public/file.js +10 -0
  40. package/server/modules/reports/rp-bkct.js +7 -7
  41. package/server/modules/reports/rp-ckvt.js +8 -4
  42. package/server/modules/reports/rp-dtbanletheovt.js +6 -6
  43. package/server/modules/reports/rp-thnxt.js +8 -7
  44. package/server/modules/reports/rp-tkbanhangtheogioithieu.js +6 -6
  45. package/server/modules/reports/rpt-tkdiemtichluy.js +2 -2
  46. package/server/modules/vouchers/vo-bn1.js +9 -7
  47. package/server/modules/vouchers/vo-hd2.js +7 -7
  48. package/server/modules/vouchers/vo-lenhsx.js +4 -4
  49. package/server/modules/vouchers/vo-pbl.js +26 -24
  50. package/server/modules/vouchers/vo-pc1.js +8 -6
  51. package/server/modules/vouchers/vo-so1.js +25 -22
  52. package/server/route.js +9 -9
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flexbiz-server",
3
3
  "main": "./server/app.js",
4
4
  "description": "Flexible Server",
5
- "version": "12.0.10",
5
+ "version": "12.0.13",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -72,6 +72,7 @@
72
72
  "redis": "^3.1.2",
73
73
  "request": "^2.88.2",
74
74
  "rotating-file-stream": "^1.4.6",
75
+ "send-crypto": "^0.2.37",
75
76
  "sitemap-generator": "^8.4.0",
76
77
  "smtp-server": "^3.9.0",
77
78
  "socket.io": "^4.1.2",
@@ -1,11 +1,12 @@
1
- 'use strict';var User=global.getModel("user"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),Token=global.getModel("tokens"),Customer=global.getModel("customer"),App=global.getModel("app"),request=require("request");
2
- module.exports=function($app$$){function $getProfile$$($access_token$$,$callback$$){request(`${"https://graph.facebook.com/me?fields=location,first_name,last_name,middle_name,name,gender,timezone,locale,about,address,age_range,birthday,cover,currency,email,id,languages,religion,sports,picture.type(large)"}&access_token=${$access_token$$}`,($e_profileUser$$,$res$$,$body$$)=>{if($e_profileUser$$)return $callback$$($e_profileUser$$);$e_profileUser$$=JSON.parse($body$$);if($e_profileUser$$.error)return $callback$$($e_profileUser$$.error);
1
+ 'use strict';const User=global.getModel("user"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),Token=global.getModel("token"),Customer=global.getModel("customer"),App=global.getModel("app"),request=require("request");
2
+ module.exports=function($app$$){function $getProfile$$($access_token$$,$callback$$){request(`${"https://graph.facebook.com/me?fields=location,first_name,last_name,middle_name,name,gender,timezone,locale,about,address,age_range,birthday,cover,currency,email,id,languages,religion,sports,picture.type(large)"}&access_token=${$access_token$$}`,($e_profileUser$$,$res$$,$body$$)=>{if($e_profileUser$$)return $callback$$($e_profileUser$$);$e_profileUser$$=JSON.parse($body$$);if($e_profileUser$$.error)return $callback$$($e_profileUser$$);
3
3
  $e_profileUser$$.emails&&0<$e_profileUser$$.emails.length&&!$e_profileUser$$.email&&($e_profileUser$$.email=$e_profileUser$$.emails[0]);$e_profileUser$$.displayName||($e_profileUser$$.displayName=$e_profileUser$$.name);$callback$$(null,$e_profileUser$$)})}function $addUserToCompany$$($body$$,$newUser$$){$body$$.id_app&&App.findOne({_id:$body$$.id_app},async($e$jscomp$0$$,$app$$)=>{if($e$jscomp$0$$||!$app$$)return console.log("Can't find app",$body$$.id_app,$e$jscomp$0$$);$e$jscomp$0$$=$body$$.group_id;
4
4
  if(!$e$jscomp$0$$)try{$e$jscomp$0$$=await Usergroup.getInfo($body$$.id_app,{status:!0,is_customer_group:!0},"_id")}catch($e$$){console.log($e$$.message)}Participant.createParticipant({id_app:$body$$.id_app,email:$newUser$$.email,group_id:$e$jscomp$0$$,active:!0},$cust_e$$=>{$cust_e$$&&console.log("can't add user",$newUser$$.email,"to company",$app$$.name,$cust_e$$);$cust_e$$={ten_kh:$newUser$$.name,email:$newUser$$.email,id_app:$body$$.id_app,user_created:$newUser$$.email,user_updated:$newUser$$.email,
5
- kh_yn:!0,of_user:$newUser$$.email};try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})})}async function $checkExistUser$$($email$$){return new Promise(($resolve$$,$reject$$)=>{User.findOne({email:$email$$.toLowerCase()},($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$rs$$?$resolve$$($rs$$):$resolve$$(null)})})}async function $createUser$$($accessToken$$,$profile$$,$done$$){$profile$$.email||($profile$$.email=$profile$$.id);
6
- setImmediate(async function(){let $u$$=await $checkExistUser$$($profile$$.email);$u$$?($addUserToCompany$$($profile$$,$u$$),(new Token({email:$u$$.email,token:$accessToken$$,service:"facebook"})).save(function($e$$){if($e$$)return $done$$($e$$);$done$$(null,$u$$)})):User.findOne({"facebook.id":$profile$$.id},async function($error$$,$user$$){if($error$$)return $done$$($error$$);$user$$?($user$$.facebook.token=$accessToken$$,$user$$.facebook.name=$profile$$.displayName,$user$$.facebook.picture=$profile$$.picture.data.url,
7
- $user$$.facebook.email=$profile$$.email,$user$$.name=$profile$$.displayName,$user$$.join_date||($user$$.join_date=new Date),$user$$.server="facebook",$user$$.local||($user$$.picture=$user$$.facebook.picture,$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture}),$profile$$.password&&($user$$.local.password=$user$$.generateHash($profile$$.password)),$user$$.local.picture||($user$$.local.picture=$user$$.facebook.picture),$user$$.picture||($user$$.picture=$user$$.facebook.picture),
8
- $user$$.save(function($err$$,$user$$){if($err$$)return $done$$($err$$);$addUserToCompany$$($profile$$,$user$$);(new Token({email:$user$$.email,token:$accessToken$$,service:"facebook"})).save(function($e$$){return $e$$?$done$$($e$$):$done$$(null,$user$$)})})):($user$$=new User,$user$$.current_user=$profile$$.email,$user$$.facebook.id=$profile$$.id,$user$$.facebook.token=$accessToken$$,$user$$.facebook.email=$profile$$.email,$user$$.facebook.name=$profile$$.displayName,$user$$.facebook.picture=$profile$$.picture.data.url,
9
- $user$$.email=$profile$$.email,$user$$.name=$profile$$.displayName,$user$$.picture=$profile$$.picture.data.url,$user$$.server="facebook",$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture,password:$profile$$.password?$user$$.generateHash($profile$$.password):null},$user$$.join_date||($user$$.join_date=new Date),$user$$.save(function($err$$,$user$$){if($err$$)return $done$$($err$$);$addUserToCompany$$($profile$$,$user$$);(new Token({email:$user$$.email,token:$accessToken$$,
10
- service:"facebook"})).save(function($e$$){return $e$$?$done$$($e$$):$done$$(null,$user$$)})}))})})}$app$$.get("/createuser/facebook",($req$$,$res$$)=>{let $access_token$$=$req$$.query.access_token;if(!$access_token$$)return $res$$.status(400).send("this API require access_token parameter");$getProfile$$($access_token$$,($e$jscomp$0$$,$profileUser$$)=>{if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);$profileUser$$.id_app=$req$$.query.id_app;$profileUser$$.group_id=$req$$.query.group_id;
11
- $profileUser$$.email||($profileUser$$.email=$req$$.query.email||$profileUser$$.id);$profileUser$$.password=$req$$.query.password;$createUser$$($access_token$$,$profileUser$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})})})};
5
+ kh_yn:!0,of_user:$newUser$$.email};try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})})}async function $checkExistUser$$($email$$){return new Promise(($resolve$$,$reject$$)=>{User.findOne({email:$email$$.toLowerCase()},($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$rs$$?$resolve$$($rs$$.toObject()):$resolve$$(null)})})}async function $createUser$$($accessToken$$,$profile$$,$done$$){setImmediate(async function(){let $u$$=
6
+ await $checkExistUser$$($profile$$.email||$profile$$.id);if($u$$){if($u$$.facebook&&$u$$.facebook.id===$profile$$.id||$u$$.email===$profile$$.email){$addUserToCompany$$($profile$$,$u$$);(new Token({email:$u$$.email,token:$accessToken$$,service:"facebook"})).save(function($e$$){if($e$$)return $done$$($e$$);$done$$(null,$u$$)});return}return $done$$(`${$u$$.email} \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd tr\u00ean h\u1ec7 th\u1ed1ng`)}$profile$$.email||($profile$$.email=$profile$$.id);
7
+ User.findOne({"facebook.id":$profile$$.id},async function($error$$,$user$$){if($error$$)return $done$$($error$$);$user$$?($user$$.facebook.name=$profile$$.displayName,$user$$.facebook.picture=$profile$$.picture.data.url,$user$$.facebook.email=$profile$$.email,$user$$.name=$profile$$.displayName,$user$$.join_date||($user$$.join_date=new Date),$user$$.server="facebook",$user$$.local||($user$$.picture=$user$$.facebook.picture,$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture}),
8
+ $profile$$.password&&($user$$.local.password=$user$$.generateHash($profile$$.password)),$user$$.local.picture||($user$$.local.picture=$user$$.facebook.picture),$user$$.picture||($user$$.picture=$user$$.facebook.picture),$user$$.save(function($err$$,$user$$){if($err$$)return $done$$($err$$);$addUserToCompany$$($profile$$,$user$$);(new Token({email:$user$$.email,token:$accessToken$$,service:"facebook"})).save(function($e$$){return $e$$?$done$$($e$$):$done$$(null,$user$$)})})):($user$$=new User,$user$$.current_user=
9
+ $profile$$.email||$profile$$.id,$user$$.facebook.id=$profile$$.id,$user$$.facebook.email=$profile$$.email,$user$$.facebook.name=$profile$$.displayName,$user$$.facebook.picture=$profile$$.picture.data.url,$user$$.email=$profile$$.email||$profile$$.id,$user$$.name=$profile$$.displayName,$user$$.picture=$profile$$.picture.data.url,$user$$.server="facebook",$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture,password:$profile$$.password?$user$$.generateHash($profile$$.password):
10
+ null},$user$$.join_date||($user$$.join_date=new Date),$user$$.save(function($err$$,$user$$){if($err$$)return $done$$($err$$);$addUserToCompany$$($profile$$,$user$$);(new Token({email:$user$$.email,token:$accessToken$$,service:"facebook"})).save(function($e$$){return $e$$?$done$$($e$$):$done$$(null,$user$$)})}))})})}$app$$.get("/profile/facebook",($access_token$$,$res$$)=>{$access_token$$=$access_token$$.query.access_token;if(!$access_token$$)return $res$$.status(400).send("this API require access_token parameter");
11
+ $getProfile$$($access_token$$,($e$jscomp$0$$,$profileUser$$)=>{if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);User.findOne({"facebook.id":$profileUser$$.id.toString()},($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$profileUser$$.registed=$rs$$?!0:!1;$res$$.send($profileUser$$)})})});$app$$.get("/createuser/facebook",($req$$,$res$$)=>{let $access_token$$=$req$$.query.access_token;if(!$access_token$$)return $res$$.status(400).send("this API require access_token parameter");
12
+ $getProfile$$($access_token$$,($e$jscomp$0$$,$profileUser$$)=>{if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);$profileUser$$.id_app=$req$$.query.id_app;$profileUser$$.group_id=$req$$.query.group_id;$profileUser$$.password=$req$$.query.password;$createUser$$($access_token$$,$profileUser$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})})})};
@@ -1,12 +1,13 @@
1
- 'use strict';const User=global.getModel("user"),Usergroup=global.getModel("usergroup"),Customer=global.getModel("customer"),Token=global.getModel("tokens"),App=global.getModel("app"),Participant=global.getModel("participant"),request=require("request");
1
+ 'use strict';const User=global.getModel("user"),Usergroup=global.getModel("usergroup"),Customer=global.getModel("customer"),Token=global.getModel("token"),App=global.getModel("app"),Participant=global.getModel("participant"),request=require("request");
2
2
  module.exports=function($app$$){function $getProfile$$($token$$,$callback$$){request({url:$token$$.access_token?"https://www.googleapis.com/userinfo/v2/me":"https://oauth2.googleapis.com/tokeninfo?id_token="+$token$$.id_token,headers:{Authorization:$token$$.access_token?`Bearer ${$token$$.access_token}`:null}},($e_profileUser$$,$res$$,$body$$)=>{if($e_profileUser$$)return $callback$$($e_profileUser$$);$e_profileUser$$=JSON.parse($body$$);if($e_profileUser$$.error)return $callback$$($e_profileUser$$.error);
3
3
  $e_profileUser$$.emails&&0<$e_profileUser$$.emails.length&&!$e_profileUser$$.email&&($e_profileUser$$.email=$e_profileUser$$.emails[0].value);$e_profileUser$$.emails||($e_profileUser$$.emails=[{value:$e_profileUser$$.email||$e_profileUser$$.id}]);$e_profileUser$$.displayName||($e_profileUser$$.displayName=$e_profileUser$$.name);$callback$$(null,$e_profileUser$$)})}function $addUserToCompany$$($body$$,$newUser$$){$body$$.id_app&&App.findOne({_id:$body$$.id_app},async($e$jscomp$0$$,$app$$)=>{if($e$jscomp$0$$||
4
4
  !$app$$)return console.log("Can't find app",$body$$.id_app,$e$jscomp$0$$);$e$jscomp$0$$=$body$$.group_id;if(!$e$jscomp$0$$)try{$e$jscomp$0$$=await Usergroup.getInfo($body$$.id_app,{status:!0,is_customer_group:!0},"_id")}catch($e$$){console.log($e$$.message)}Participant.createParticipant({id_app:$body$$.id_app,email:$newUser$$.email,group_id:$e$jscomp$0$$,active:!0},$cust_e$$=>{$cust_e$$&&console.log("can't add user",$newUser$$.email,"to company",$app$$.name);$cust_e$$={ten_kh:$newUser$$.name,email:$newUser$$.email,
5
5
  id_app:$body$$.id_app,user_created:$newUser$$.email,user_updated:$newUser$$.email,kh_yn:!0,of_user:$newUser$$.email};try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})})}async function $checkExistUser$$($email$$){return new Promise(($resolve$$,$reject$$)=>{User.findOne({email:$email$$.toLowerCase()}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$rs$$?$resolve$$($rs$$):$resolve$$(null)})})}async function $createUser$$($accessToken$$,
6
- $profile$$,$done$$){setImmediate(async()=>{let $u$$=await $checkExistUser$$($profile$$.emails[0].value);$u$$?($addUserToCompany$$($profile$$,$u$$),(new Token({email:$u$$.email,token:$accessToken$$,service:"google"})).save(function($e$$){if($e$$)return console.log("error create token",$e$$),$done$$($e$$);$done$$(null,$u$$)})):User.findOne({"google.id":$profile$$.id||$profile$$.email},async function($error$$,$user$$){if($error$$)return $done$$($error$$);$user$$?(console.log("update user...."),$user$$.google.token=
7
- $accessToken$$,$user$$.google.name=$profile$$.displayName,$profile$$._json&&($user$$.google.picture=$profile$$._json.image.url),$user$$.token=$accessToken$$,$user$$.name=$profile$$.displayName,$user$$.join_date||($user$$.join_date=new Date),$user$$.server="google",$user$$.local||($user$$.picture=$user$$.google.picture,$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture}),$user$$.picture||($user$$.picture=$user$$.google.picture),$user$$.save(function($err$jscomp$1_token$$,
8
- $user$$){if($err$jscomp$1_token$$)return console.log("error update user",$err$jscomp$1_token$$),$done$$($err$jscomp$1_token$$);$err$jscomp$1_token$$=new Token({email:$user$$.email,token:$accessToken$$,service:"google"});$addUserToCompany$$($profile$$,$user$$);$err$jscomp$1_token$$.save(function($e$$){return $e$$?(console.log("error create token",$e$$),$done$$($e$$)):$done$$(null,$user$$)})})):(console.log("create new user...",$profile$$.email),$user$$=new User,$user$$.current_user=$profile$$.emails[0].value,
9
- $user$$.google.id=$profile$$.id,$user$$.google.token=$accessToken$$,$user$$.google.email=$profile$$.emails[0].value,$user$$.google.name=$profile$$.displayName,$profile$$._json&&($user$$.google.picture=$profile$$._json.image.url),$user$$.token=$accessToken$$,$user$$.email=$profile$$.emails[0].value,$user$$.name=$profile$$.displayName,$user$$.picture=$user$$.google.picture,$user$$.join_date=new Date,$user$$.server="google",$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture},
10
- $user$$.save(function($err$$,$user$$){if($err$$)return console.log("error create new user",$err$$),$done$$($err$$);$addUserToCompany$$($profile$$,$user$$);(new Token({email:$user$$.email,token:$accessToken$$,service:"google"})).save(function($e$$){return $e$$?(console.log("error create token",$e$$),$done$$($e$$)):$done$$(null,$user$$)})}))})})}$app$$.get("/createuser/google",($req$$,$res$$)=>{let $access_token$$=$req$$.query.access_token,$idToken$$=$req$$.query.id_token;if(!$access_token$$&&!$idToken$$)return $res$$.status(400).send("this API require access_token or id_token parameter");
11
- $getProfile$$({id_token:$idToken$$,access_token:$access_token$$},($e$jscomp$0$$,$profileUser$$)=>{if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);$profileUser$$.id_app=$req$$.query.id_app;$profileUser$$.group_id=$req$$.query.group_id;$profileUser$$.email||($profileUser$$.email=$req$$.query.email||$profileUser$$.id);$profileUser$$.password=$req$$.query.password;let $token$$=$access_token$$||$idToken$$;$createUser$$($token$$,$profileUser$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);
12
- $rs$$.toObject&&($rs$$=$rs$$.toObject());$rs$$.access_token=$token$$;$res$$.send($rs$$)})})})};
6
+ $profile$$,$done$$){setImmediate(async()=>{let $u$$=await $checkExistUser$$($profile$$.emails[0].value);if($u$$){if($u$$.google&&$u$$.google.id===$profile$$.id||$u$$.email===$profile$$.email){$addUserToCompany$$($profile$$,$u$$);(new Token({email:$u$$.email,token:$accessToken$$,service:"google"})).save(function($e$$){if($e$$)return console.log("error create token",$e$$),$done$$($e$$);$done$$(null,$u$$)});return}console.error(`${$profile$$.email} \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd tr\u00ean h\u1ec7 th\u1ed1ng`,
7
+ $u$$);return $done$$(`${$profile$$.email} \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd tr\u00ean h\u1ec7 th\u1ed1ng`)}User.findOne({"google.id":$profile$$.id||$profile$$.email},async function($error$$,$user$$){if($error$$)return $done$$($error$$);$user$$?(console.log("update user...."),$user$$.google.name=$profile$$.displayName,$profile$$._json&&($user$$.google.picture=$profile$$._json.image.url),$user$$.token=$accessToken$$,$user$$.name=$profile$$.displayName,$user$$.join_date||($user$$.join_date=
8
+ new Date),$user$$.server="google",$user$$.local||($user$$.picture=$user$$.google.picture,$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture}),$user$$.picture||($user$$.picture=$user$$.google.picture),$user$$.save(function($err$jscomp$1_token$$,$user$$){if($err$jscomp$1_token$$)return console.log("error update user",$err$jscomp$1_token$$),$done$$($err$jscomp$1_token$$);$err$jscomp$1_token$$=new Token({email:$user$$.email,token:$accessToken$$,service:"google"});$addUserToCompany$$($profile$$,
9
+ $user$$);$err$jscomp$1_token$$.save(function($e$$){return $e$$?(console.log("error create token",$e$$),$done$$($e$$)):$done$$(null,$user$$)})})):(console.log("create new user...",$profile$$.email),$user$$=new User,$user$$.current_user=$profile$$.emails[0].value,$user$$.google.id=$profile$$.id,$user$$.google.email=$profile$$.emails[0].value,$user$$.google.name=$profile$$.displayName,$profile$$._json&&($user$$.google.picture=$profile$$._json.image.url),$user$$.token=$accessToken$$,$user$$.email=$profile$$.emails[0].value,
10
+ $user$$.name=$profile$$.displayName,$user$$.picture=$user$$.google.picture,$user$$.join_date=new Date,$user$$.server="google",$user$$.local={email:$user$$.email,name:$user$$.name,picture:$user$$.picture},$user$$.save(function($err$$,$user$$){if($err$$)return console.log("error create new user",$err$$),$done$$($err$$);$addUserToCompany$$($profile$$,$user$$);(new Token({email:$user$$.email,token:$accessToken$$,service:"google"})).save(function($e$$){return $e$$?(console.log("error create token",$e$$),
11
+ $done$$($e$$)):$done$$(null,$user$$)})}))})})}$app$$.get("/profile/google",($idToken_req$$,$res$$)=>{let $access_token$$=$idToken_req$$.query.access_token;$idToken_req$$=$idToken_req$$.query.id_token;if(!$access_token$$&&!$idToken_req$$)return $res$$.status(400).send("this API require access_token or id_token parameter");$getProfile$$({id_token:$idToken_req$$,access_token:$access_token$$},($e$jscomp$0$$,$profileUser$$)=>{if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);User.findOne({"google.id":$profileUser$$.id.toString()},
12
+ ($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$profileUser$$.registed=$rs$$?!0:!1;$res$$.send($profileUser$$)})})});$app$$.get("/createuser/google",($req$$,$res$$)=>{let $access_token$$=$req$$.query.access_token,$idToken$$=$req$$.query.id_token;if(!$access_token$$&&!$idToken$$)return $res$$.status(400).send("this API require access_token or id_token parameter");$getProfile$$({id_token:$idToken$$,access_token:$access_token$$},($e$jscomp$0$$,$profileUser$$)=>{if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);
13
+ $profileUser$$.id_app=$req$$.query.id_app;$profileUser$$.group_id=$req$$.query.group_id;$profileUser$$.email||($profileUser$$.email=$req$$.query.email||$profileUser$$.id);$profileUser$$.password=$req$$.query.password;let $token$$=$access_token$$||$idToken$$;$createUser$$($token$$,$profileUser$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$rs$$.toObject&&($rs$$=$rs$$.toObject());$rs$$.access_token=$token$$;$res$$.send($rs$$)})})})};
@@ -18,12 +18,12 @@ this.saving=$options$jscomp$0$$.onSaving;this.creating=$options$jscomp$0$$.onCre
18
18
  Participant,{where:{user_denied:"email"},fields:{user_denied_name:"name",signature_image:"signature_image"}});$next$$(null)})})})},()=>{$callback$$(null)})},transfer_ct:$callback$$=>{if(underscore.has($schema_paths$$,"id_ct_chuyen")&&$user$$.current_app_info&&$user$$.current_app_info.options&&$user$$.current_app_info.options.id_app_thue)async.map($items$$,($item$$,$next$$)=>{setImmediate(()=>{$model$$.findOne({id_app:$user$$.current_app_info.options.id_app_thue,id_ct_chuyen:$item$$._id.toString()},
19
19
  {_id:1}).lean().exec(async($e$$,$rs$$)=>{$rs$$&&($item$$.id_ct_nhan=$rs$$._id);$next$$(null)})})},()=>{$callback$$(null)});else return $callback$$()}},$e$jscomp$0$$=>{if($e$jscomp$0$$)return $next$$($e$jscomp$0$$);setImmediate(()=>{if($self$$.view)try{$self$$.view($user$$,$items$$,function($error$jscomp$0$$,$rs$jscomp$0$$){setImmediate(()=>{if($error$jscomp$0$$)return $next$$($error$jscomp$0$$);$self$$.dynamicView?$self$$.dynamicView($user$$,$rs$jscomp$0$$||$items$$,function($error$$,$rs$$){if($error$$)return $next$$($error$$);
20
20
  $next$$(null,$rs$$||$items$$)}):$next$$(null,$rs$jscomp$0$$||$items$$)})},$options$$)}catch($e$$){console.error("Error on view of",$name$$,$e$$),$next$$(null,$items$$)}else $self$$.dynamicView?$self$$.dynamicView($user$$,$items$$,function($error$$,$rs$$){if($error$$)return $next$$($error$$);$next$$(null,$rs$$||$items$$)}):$next$$(null,$items$$)})})};this.mapSql=$options$jscomp$0$$.mapSql;this.mapSql||(this.mapSql=function($data$$,$callback$$){$callback$$()});this.mapWeb=$options$jscomp$0$$.mapWeb;
21
- this.excelParse=$options$jscomp$0$$.onExcelParse;this.options=$options$jscomp$0$$;this.replaceIfExists=$options$jscomp$0$$.replaceIfExists;this.codeSync=$options$jscomp$0$$.codeSync;this.keySync=$options$jscomp$0$$.keySync;this.notNeedRight=$options$jscomp$0$$.notNeedRight}getProperty($name$$){return this[$name$$]}getNextId(){let $ma_ct$$=this.name;this.router.route(`${this.route_name}/next/:field`).get(($field$$,$res$$)=>{let $id_app$$=$field$$.user.current_id_app;$field$$=$field$$.params.field;
22
- "so_ct"===$field$$?$res$$.send({[$field$$]:$ma_ct$$}):getNextSequence($id_app$$,$ma_ct$$,$field$$,($e$$,$rs$$)=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)})})}async checkData($appInfo$$,$data$$,$fn$$){const $options$$=this.options;if($data$$.trang_thai&&$data$$.ma_ct){let $tt$$=await trangthai.findOne({ma_ct:$data$$.ma_ct,ma_trang_thai:$data$$.trang_thai},{check_data:1}).lean();if($tt$$&&0==$tt$$.check_data)return $fn$$()}async.parallel({checkTonKho:$callback$jscomp$0$$=>
23
- {$data$$.details&&$appInfo$$&&$appInfo$$.options&&$appInfo$$.options.khong_xuat_kho_am&&0!=$options$$.check_stock?(async()=>{let $details$$=$data$$.details.filter($d$$=>$d$$.ma_vt&&$d$$.sl_xuat);await $details$$.asyncJoinModel2($appInfo$$._id,dmvt,{where:{ma_vt:"ma_vt"},fields:["tg_tk","kg_kiem_tra_ton_kho","kg_kiem_tra_ton_kho_tt","combo","ten_vt"]});$details$$=$details$$.filter($d$$=>$d$$.tg_tk&&!$d$$.kg_kiem_tra_ton_kho||0<($d$$.combo||[]).length);$details$$=$details$$.map($detail$$=>$detail$$.combo&&
24
- 0<$detail$$.combo.length?$detail$$.combo.map($c$$=>{$c$$=$c$$.toObject?$c$$.toObject():{...$c$$};$c$$.sl_xuat*=$detail$$.sl_xuat;$c$$.ma_kho=$detail$$.ma_kho;return $c$$}):[$detail$$]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);await $details$$.asyncJoinModel2($appInfo$$._id,dmqddvt,{where:{ma_vt:"ma_vt",ma_dvt:"ma_dvt"},fields:"ty_le_qd"});let $data_sokho$$=[];$data$$._id&&($data_sokho$$=await Sokho.find({id_ct:$data$$._id.toString()}).lean());$details$$.forEach($d$$=>{$d$$.he_so_qd=$d$$.ty_le_qd||
25
- 1;$d$$.sl_xuat_qd=$d$$.he_so_qd*$d$$.sl_xuat});$details$$=await $details$$.asyncGroupBy(["ma_vt","ma_kho","ten_vt"],["sl_xuat_qd"]);async.map($details$$,($d$$,$callback$$)=>{let $ma_kho$$=$d$$.ma_kho||$data$$.ma_kho||$data$$.ma_kho_x,$query$$={ma_vt:$d$$.ma_vt,ma_kho:$ma_kho$$,ngay:new Date,id_app:$appInfo$$._id};$d$$.kg_kiem_tra_ton_kho_tt||($d$$.ma_lo&&($query$$.ma_lo=$d$$.ma_lo),$d$$.han_sd&&($query$$.han_sd=$d$$.han_sd),$d$$.ma_tt1&&($query$$.ma_tt1=$d$$.ma_tt1),$d$$.ma_tt2&&($query$$.ma_tt2=
26
- $d$$.ma_tt2),$d$$.ma_tt3&&($query$$.ma_tt3=$d$$.ma_tt3));ckvt($query$$,function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$rs$$?($e$$=$rs$$.csum("ton"),$rs$$=$data_sokho$$.filter($s$$=>$s$$.ma_vt===$d$$.ma_vt&&$s$$.ma_kho===$ma_kho$$).reduce(($a$$,$b$$)=>($a$$.sl_xuat_qd||0)+($b$$.sl_xuat_qd||0),0),$d$$.sl_xuat_qd>utils.round($e$$+$rs$$,2)?$callback$$(`S\u1ea3n ph\u1ea9m ${$d$$.ma_vt} - ${$d$$.ten_vt} c\u00f3 s\u1ed1 l\u01b0\u1ee3ng xu\u1ea5t quy \u0111\u1ed5i (${$d$$.sl_xuat_qd}) l\u1edbn h\u01a1n s\u1ed1 l\u01b0\u1ee3ng t\u1ed3n quy \u0111\u1ed5i (${$e$$+
21
+ this.excelParse=$options$jscomp$0$$.onExcelParse;this.options=$options$jscomp$0$$;this.replaceIfExists=$options$jscomp$0$$.replaceIfExists;this.notNeedRight=$options$jscomp$0$$.notNeedRight}getProperty($name$$){return this[$name$$]}getNextId(){let $ma_ct$$=this.name;this.router.route(`${this.route_name}/next/:field`).get(($field$$,$res$$)=>{let $id_app$$=$field$$.user.current_id_app;$field$$=$field$$.params.field;"so_ct"===$field$$?$res$$.send({[$field$$]:$ma_ct$$}):getNextSequence($id_app$$,$ma_ct$$,
22
+ $field$$,($e$$,$rs$$)=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)})})}async checkData($appInfo$$,$data$$,$fn$$){const $options$$=this.options;if($data$$.trang_thai&&$data$$.ma_ct){let $tt$$=await trangthai.findOne({ma_ct:$data$$.ma_ct,ma_trang_thai:$data$$.trang_thai},{check_data:1}).lean();if($tt$$&&0==$tt$$.check_data)return $fn$$()}async.parallel({checkTonKho:$callback$jscomp$0$$=>{$data$$.details&&
23
+ $appInfo$$&&$appInfo$$.options&&$appInfo$$.options.khong_xuat_kho_am&&0!=$options$$.check_stock?(async()=>{let $details$$=$data$$.details.filter($d$$=>$d$$.ma_vt&&$d$$.sl_xuat);await $details$$.asyncJoinModel2($appInfo$$._id,dmvt,{where:{ma_vt:"ma_vt"},fields:["tg_tk","kg_kiem_tra_ton_kho","kg_kiem_tra_ton_kho_tt","combo","ten_vt"]});$details$$=$details$$.filter($d$$=>$d$$.tg_tk&&!$d$$.kg_kiem_tra_ton_kho||0<($d$$.combo||[]).length);$details$$=$details$$.map($detail$$=>$detail$$.combo&&0<$detail$$.combo.length?
24
+ $detail$$.combo.map($c$$=>{$c$$=$c$$.toObject?$c$$.toObject():{...$c$$};$c$$.sl_xuat*=$detail$$.sl_xuat;$c$$.ma_kho=$detail$$.ma_kho;return $c$$}):[$detail$$]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);await $details$$.asyncJoinModel2($appInfo$$._id,dmqddvt,{where:{ma_vt:"ma_vt",ma_dvt:"ma_dvt"},fields:"ty_le_qd"});let $data_sokho$$=[];$data$$._id&&($data_sokho$$=await Sokho.find({id_ct:$data$$._id.toString()}).lean());$details$$.forEach($d$$=>{$d$$.he_so_qd=$d$$.ty_le_qd||1;$d$$.sl_xuat_qd=$d$$.he_so_qd*
25
+ $d$$.sl_xuat});$details$$=await $details$$.asyncGroupBy(["ma_vt","ma_kho","ten_vt"],["sl_xuat_qd"]);async.map($details$$,($d$$,$callback$$)=>{let $ma_kho$$=$d$$.ma_kho||$data$$.ma_kho||$data$$.ma_kho_x,$query$$={ma_vt:$d$$.ma_vt,ma_kho:$ma_kho$$,ngay:new Date,id_app:$appInfo$$._id};$d$$.kg_kiem_tra_ton_kho_tt||($d$$.ma_lo&&($query$$.ma_lo=$d$$.ma_lo),$d$$.han_sd&&($query$$.han_sd=$d$$.han_sd),$d$$.ma_tt1&&($query$$.ma_tt1=$d$$.ma_tt1),$d$$.ma_tt2&&($query$$.ma_tt2=$d$$.ma_tt2),$d$$.ma_tt3&&($query$$.ma_tt3=
26
+ $d$$.ma_tt3));ckvt($query$$,function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$rs$$?($e$$=$rs$$.csum("ton"),$rs$$=$data_sokho$$.filter($s$$=>$s$$.ma_vt===$d$$.ma_vt&&$s$$.ma_kho===$ma_kho$$).reduce(($a$$,$b$$)=>($a$$.sl_xuat_qd||0)+($b$$.sl_xuat_qd||0),0),$d$$.sl_xuat_qd>utils.round($e$$+$rs$$,2)?$callback$$(`S\u1ea3n ph\u1ea9m ${$d$$.ma_vt} - ${$d$$.ten_vt} c\u00f3 s\u1ed1 l\u01b0\u1ee3ng xu\u1ea5t quy \u0111\u1ed5i (${$d$$.sl_xuat_qd}) l\u1edbn h\u01a1n s\u1ed1 l\u01b0\u1ee3ng t\u1ed3n quy \u0111\u1ed5i (${$e$$+
27
27
  $rs$$})`):$callback$$()):$callback$$()})},$e$$=>{$callback$jscomp$0$$($e$$)})})():$callback$jscomp$0$$()}},$e$$=>{$fn$$($e$$)})}cacheData($obj$$,$callback$$){$obj$$&&$obj$$.toObject&&($obj$$=$obj$$.toObject());redisCache.set(this.model.collection.name.substring(0,this.model.collection.name.length-1),$obj$$,$callback$$)}deleteData($obj$$,$callback$$){$obj$$&&$obj$$.toObject&&($obj$$=$obj$$.toObject());redisCache.remove(this.model.collection.name.substring(0,this.model.collection.name.length-1),$obj$$,
28
28
  $callback$$)}createRoute($routeName_url$$,$callback$$,$_options$$={method:"GET"}){let $self$$=this;$_options$$.method=$_options$$.method?$_options$$.method.toUpperCase():"GET";let $r$$=function($req$$,$res$$){!1===$self$$.require_id_app?$callback$$($req$$,function($e$$,$rs$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)},$res$$):permission.hasRight($req$$.params.id_app,$req$$.user.email,$self$$.module,
29
29
  "view",function($error$$,$hr$$){$hr$$?$callback$$($req$$,function($e$$,$rs$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)},$res$$):$res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})},{notNeedRight:$self$$.notNeedRight||$_options$$.notNeedRight})};$routeName_url$$=`${this.route_name}/${$routeName_url$$}`;let $router$$=this.router;"DELETE"==$_options$$.method?$router$$.route($routeName_url$$).delete($r$$):
@@ -37,9 +37,9 @@ $id_app$$,$data$$,$callback$jscomp$0$$,$options$$={replace:!0,req:null}){const $
37
37
  await $data$$.filter($r$$=>$r$$.ma_dvcs).asyncJoinModel2($id_app$$,global.getModel("dvcs"),{where:{ma_dvcs:"_id"},fields:"ten_dvcs"});async.map($data$$,function($row$$,$callback$$){const $row_keys$$=Object.keys($row$$);$row_keys$$.filter($key$$=>$ctrl$$.model.schema.paths[$key$$]).forEach($key$$=>{let $data_type$$=$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase(),$data_value$$=$row$$[$key$$];if($data_value$$&&_.isString($data_value$$)&&("mixed"==$data_type$$||"array"==$data_type$$)&&($data_value$$=
38
38
  $data_value$$.trim(),0==$data_value$$.indexOf("[")||0==$data_value$$.indexOf("{")))try{$row$$[$key$$]=JSON.parse($data_value$$)}catch($e$$){delete $row$$[$key$$],console.error("Error parse data",$e$$)}});setImmediate(()=>{delete $row$$.__v;$row$$.ma_dvcs&&!$row$$.ten_dvcs&&delete $row$$.ma_dvcs;$id_app$$!=$row$$.id_app&&delete $row$$._id;delete $row$$.id_app;if($replace$$&&$ctrl$$.unique&&0<$ctrl$$.unique.length){let $query$$={};0!=$ctrl$$.require_id_app&&($query$$.id_app=$id_app$$);$ctrl$$.options.unique_imp&&
39
39
  $row$$[$ctrl$$.options.unique_imp]?$query$$[$ctrl$$.options.unique_imp]=$row$$[$ctrl$$.options.unique_imp]:$ctrl$$.unique.forEach(function($k$$){0<=$row_keys$$.indexOf($k$$)&&($query$$[$k$$]=$row$$[$k$$])});$ctrl$$.model.find($query$$).lean().exec(function($error$$,$rss$$){if(1<$rss$$.length)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt \u0111\u1ed1i t\u01b0\u1ee3ng:"+Object.values($query$$).join("-"));setImmediate(()=>{if($error$$)return $callback$$($error$$);if(1===$rss$$.length){let $rs$$=
40
- $rss$$[0];$row$$.id_app=$rs$$.id_app;$row$$._id=$rs$$._id.toString();$ctrl$$.unique.forEach(function($k$$){$row$$[$k$$]=$rs$$[$k$$]});update($user$$,$ctrl$$,$rs$$._id,$row$$,function($e$$){console.log("updated object...");if($e$$){let $_e$$=$e$$;underscore.isArray($_e$$)||($_e$$=[$e$$]);$rows_error$$.push({row:$row$$,error:"Error update data:"+$_e$$})}$callback$$()},"import",$options$$.req)}else create($user$$,$ctrl$$,$row$$,function($e$$){console.log("created new object...");if($e$$){let $_e$$=
41
- $e$$;underscore.isArray($_e$$)||($_e$$=[$e$$]);$rows_error$$.push({row:$row$$,error:$_e$$})}$callback$$()},$row$$._id,$options$$.req)})})}else create($user$$,$ctrl$$,$row$$,function($e$$){console.log("created new object...");setImmediate(()=>{if($e$$){let $_e$$=$e$$;underscore.isArray($_e$$)||($_e$$=[$e$$]);$rows_error$$.push({row:$row$$,error:$_e$$})}$callback$$()})},$row$$._id,$options$$.req)})},function($error$$){setImmediate(()=>{console.log("finish import...");if($error$$)return $callback$jscomp$0$$($error$$);
42
- 0===$rows_error$$.length?$callback$jscomp$0$$(null,{rows_imported:$data$$.length,rows_error:[]}):$callback$jscomp$0$$(null,{rows_imported:$data$$.length-$rows_error$$.length,rows_error:$rows_error$$})})})}}controller.prototype.__proto__=EventEmitter.prototype;
40
+ $rss$$[0];$row$$.id_app=$rs$$.id_app;$row$$._id=$rs$$._id.toString();$ctrl$$.unique.forEach(function($k$$){$row$$[$k$$]=$rs$$[$k$$]});update($user$$,$ctrl$$,$rs$$._id,$row$$,function($e$$){if($e$$){let $_e$$=$e$$;underscore.isArray($_e$$)||($_e$$=[$e$$]);$rows_error$$.push({row:$row$$,error:"Error update data:"+$_e$$})}$callback$$()},"import",$options$$.req)}else create($user$$,$ctrl$$,$row$$,function($e$$){if($e$$){let $_e$$=$e$$;underscore.isArray($_e$$)||($_e$$=[$e$$]);$rows_error$$.push({row:$row$$,
41
+ error:$_e$$})}$callback$$()},$row$$._id,$options$$.req)})})}else create($user$$,$ctrl$$,$row$$,function($e$$){setImmediate(()=>{if($e$$){let $_e$$=$e$$;underscore.isArray($_e$$)||($_e$$=[$e$$]);$rows_error$$.push({row:$row$$,error:$_e$$})}$callback$$()})},$row$$._id,$options$$.req)})},function($error$$){setImmediate(()=>{console.log("finish import...");if($error$$)return $callback$jscomp$0$$($error$$);0===$rows_error$$.length?$callback$jscomp$0$$(null,{rows_imported:$data$$.length,rows_error:[]}):
42
+ $callback$jscomp$0$$(null,{rows_imported:$data$$.length-$rows_error$$.length,rows_error:$rows_error$$})})})}}controller.prototype.__proto__=EventEmitter.prototype;
43
43
  const getNextSequence=async function($id_app$$,$ma_ct$$,$field$$,$callback$$,$options$$={}){var $condition_qct_qcts$$={status:!0,field:$field$$,id_app:$id_app$$,$and:[{$or:[{ma_ct:"#",ma_ct_khac:{$regex:$ma_ct$$,$options:"i"}},{cac_ma_ct:$ma_ct$$.toLowerCase()},{ma_ct:$ma_ct$$.toUpperCase()}]}]};$options$$.id_qct&&($condition_qct_qcts$$._id=$options$$.id_qct);if($options$$.ngay_ct){let $start_date$$=moment($options$$.ngay_ct).startOf("date").toDate(),$end_date$$=moment($options$$.ngay_ct).endOf("date").toDate();
44
44
  $condition_qct_qcts$$.$and.push({$or:[{tu_ngay:null},{tu_ngay:{$lte:$end_date$$}}]});$condition_qct_qcts$$.$and.push({$or:[{den_ngay:null},{den_ngay:{$gte:$start_date$$}}]})}$options$$.toObject&&($options$$=$options$$.toObject());$condition_qct_qcts$$=await dmqct.find($condition_qct_qcts$$).lean();const $keys$$=Object.keys($options$$),$qct$$=$condition_qct_qcts$$.find($qct$$=>{if($qct$$.dieu_kien&&0<$keys$$.length)try{let $str_func$$=$qct$$.dieu_kien;if(0<=$str_func$$.indexOf("async "))return!1;0!==
45
45
  $str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);return evalute($str_func$$,{...$options$$,master:{...$options$$},moment,numeral})}catch($e$$){return console.error("Error find quyen chung tu",$e$$,$qct$$.dieu_kien),!1}else return!0});counter.getNextSequence($id_app$$,$ma_ct$$,$qct$$?$qct$$._id.toString():$field$$,function($error$$,$rs$jscomp$0$$){if($error$$)console.error("auto create code for",$ma_ct$$,$field$$,$error$$),$callback$$($error$$);else{if($qct$$){let $tien_to$$=$qct$$.tien_to||
@@ -57,27 +57,28 @@ $or$$.push({_id:$id$$})}catch($error$$){console.error($error$$)}else{if("q"===$k
57
57
  $body$jscomp$2_query$$[$k$$];else{let $item$$={};"number"==$ctrl$$.model.schema.paths[$k$$].instance.toLowerCase()?$item$$[$k$$]=Number($body$jscomp$2_query$$[$k$$]):"date"==$ctrl$$.model.schema.paths[$k$$].instance.toLowerCase()?$item$$[$k$$]=new Date($body$jscomp$2_query$$[$k$$]):"string"==$ctrl$$.model.schema.paths[$k$$].instance.toLowerCase()?$item$$[$k$$]={$regex:$body$jscomp$2_query$$[$k$$],$options:"i"}:$item$$[$k$$]=$body$jscomp$2_query$$[$k$$];$or$$.push($item$$)}else"$text"===$k$$&&$or$$.push({$text:{$search:$body$jscomp$2_query$$[$k$$]}})}0!==
58
58
  $or$$.length&&("$and"===$body$jscomp$2_query$$.cType?$condition$jscomp$1$$.$and=$or$$:$condition$jscomp$1$$.$or=$or$$);$shareRoute$$||0==$ctrl$$.require_id_app||($condition$jscomp$1$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,$condition$jscomp$1$$,function($error$$,$condition$jscomp$0$$){setImmediate(()=>{if($error$$)return $res$$.status(400).send({error:$error$$.message||$error$$.error||$error$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$0$$,
59
59
  function($e$$,$condition$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$req$$.condition=$condition$$;$next$$()}):($req$$.condition=$condition$jscomp$0$$,$next$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$1$$,function($e$$,$condition$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});
60
- $req$$.condition=$condition$$;$next$$()}):($req$$.condition=$condition$jscomp$1$$,$next$$())})},function($req$$,$res$$,$next$$){if($shareRoute$$)return $next$$();permission.getRightByItem($req$$.user.current_id_app,$model$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $next$$($e$jscomp$0$$);if($admin$$)return $next$$();$req$$.admin=$admin$$;let $condition$$=$req$$.condition;$condition$$||($condition$$={});$condition$$.$and||($condition$$.$and=
61
- []);if($ctrl$$.options.onRightByItem)$ctrl$$.options.onRightByItem($req$$.user,$_condition$$,($e$$,$_condition$$)=>{setImmediate(()=>{if($e$$)return $next$$($e$$);_.isObject($_condition$$)&&0<Object.keys($_condition$$).length&&$condition$$.$and.push($_condition$$);$req$$.condition=$condition$$;$next$$()})});else _.isObject($_condition$$)&&0<Object.keys($_condition$$).length&&$condition$$.$and.push($_condition$$),$req$$.condition=$condition$$,$next$$()})},$ctrl$$.name,{notNeedRight:$ctrl$$.options.notNeedRight})},
62
- function($req$$,$res$$,$next$$){if($shareRoute$$)return $next$$();setImmediate(()=>{$ctrl$$.options.assignWiths?async.map($ctrl$$.options.assignWiths,($col$$,$callback$$)=>{setImmediate(()=>{let $m$$=global.getModel($col$$.ref_collection);permission.getRightByItem($req$$.user.current_id_app,$m$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);if($admin$$)return $callback$$();$_condition$$.id_app=$req$$.user.current_id_app;
63
- $m$$.find($_condition$$).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $callback$$($e$$);let $dsdt$$=underscore.pluck($rs$$,$col$$.ref_field);$dsdt$$.push("");$dsdt$$.push(null);$req$$.condition[$col$$.ref_field]={$in:$dsdt$$};$callback$$()})})})},$ctrl$$.name,{notNeedRight:$ctrl$$.options.notNeedRight})})},$e$$=>{setImmediate(()=>{if($e$$)return $next$$($e$$);$next$$()})}):$next$$()})},function($req$$,$res$$,$next$$){if($shareRoute$$)return $next$$();setImmediate(()=>{if($req$$.admin||
64
- "dmdt"===$ctrl$$.name)return $next$$();if(underscore.has($model$$.schema.paths,"ma_dt")||underscore.has($model$$.schema.paths,"id_dt")){let $dmdt$$=mongoose.models.dmdt;permission.getRightDataView($req$$.user.current_id_app,$dmdt$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $next$$($e$jscomp$0$$);if($admin$$)return $next$$();$_condition$$.id_app=$req$$.user.current_id_app;$req$$.condition.ma_dt&&($_condition$$.ma_dt=$req$$.condition.ma_dt);
65
- $dmdt$$.find($_condition$$,{ma_dt:1,_id:1}).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $next$$($e$$);if(underscore.has($model$$.schema.paths,"ma_dt")){var $dsdt$jscomp$1_dsdt$$=underscore.pluck($rs$$,"ma_dt");$dsdt$jscomp$1_dsdt$$.push("");$dsdt$jscomp$1_dsdt$$.push(null);$dsdt$jscomp$1_dsdt$$.push(void 0);$req$$.condition.ma_dt={$in:$dsdt$jscomp$1_dsdt$$}}else $dsdt$jscomp$1_dsdt$$=underscore.pluck($rs$$,"_id"),$dsdt$jscomp$1_dsdt$$.push(""),$dsdt$jscomp$1_dsdt$$.push(null),$dsdt$jscomp$1_dsdt$$.push(void 0),
66
- $req$$.condition.id_dt={$in:$dsdt$jscomp$1_dsdt$$};$next$$()})})})})}else $next$$()})},function($req$$,$res$$,$next$$){setImmediate(()=>{if($shareRoute$$||$req$$.admin||"dmkho"===$ctrl$$.name)return $next$$();if(underscore.has($model$$.schema.paths,"ma_kho")||underscore.has($model$$.schema.paths,"ma_kho_x")||underscore.has($model$$.schema.paths,"ma_kho_n")){let $dmkho$$=mongoose.models.dmkho;permission.getRightDataView($req$$.user.current_id_app,$dmkho$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,
67
- $admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $next$$($e$jscomp$0$$);if($admin$$)return $next$$();$_condition$$.id_app=$req$$.user.current_id_app;$req$$.condition.ma_kho&&($_condition$$.ma_kho=$req$$.condition.ma_kho);$dmkho$$.find($_condition$$,{ma_kho:1}).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $next$$($e$$);let $dskho$$=underscore.pluck($rs$$,"ma_kho");$dskho$$.push("");$dskho$$.push(null);$dskho$$.push(void 0);if(underscore.has($model$$.schema.paths,"ma_kho"))return $req$$.condition.ma_kho=
68
- {$in:$dskho$$},$next$$();if("pxc"===$ctrl$$.name&&underscore.has($model$$.schema.paths,"ma_kho_x"))return $req$$.condition.ma_kho_x={$in:$dskho$$},$next$$();if("pnc"===$ctrl$$.name&&underscore.has($model$$.schema.paths,"ma_kho_n"))return $req$$.condition.ma_kho_n={$in:$dskho$$},$next$$();$next$$()})})})})}else $next$$()})},function($req$$,$res$$,$next$$){setImmediate(()=>{if($shareRoute$$)return $next$$();permission.hasRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.module,"view",function($error$$,
69
- $permission$$){setImmediate(()=>{if($ctrl$$.options.onQuery)$req$$.permission=$permission$$,$ctrl$$.options.onQuery($req$$,$e$$=>{if($e$$)return $next$$($e$$);if(!$req$$.permission)return $res$$.send([]);$next$$()});else{if(!$permission$$)return $res$$.send([]);$next$$()}})},{notNeedRight:$ctrl$$.options.notNeedRight})})},async function($req$$,$res$$,$next$$){setImmediate(async()=>{let $condition$$=$req$$.condition;$condition$$||($condition$$={});if($shareRoute$$){$condition$$.shared=!0;var $id_sellers_query$$=
70
- (await app.find({sale_online:!0},{_id:1}).lean()).map($a$$=>$a$$._id);$condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push({id_app:{$in:$id_sellers_query$$}});$condition$$.id_app&&$condition$$.$and.push({id_app:$condition$$.id_app})}else underscore.has($model$$.schema.paths,"id_app")&&!1!==$ctrl$$.require_id_app&&($condition$$.id_app=$req$$.user.current_id_app);underscore.extend($condition$$,$ctrl$$.keyValues);$condition$$.$and&&0===$condition$$.$and.length&&delete $condition$$.$and;$condition$$.$or&&
71
- 0===$condition$$.$or.length&&delete $condition$$.$or;$condition$$.$nor&&0===$condition$$.$nor.length&&delete $condition$$.$nor;$id_sellers_query$$=null;if($req$$.query.count)$condition$$.$where?(console.log("phai loai bo $where trong condition"),$id_sellers_query$$=$model$$.count($condition$$,function($e$$,$data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})})):$id_sellers_query$$=
72
- $model$$.countDocuments($condition$$,function($e$$,$data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})});else{let $field_not_right$$;try{$field_not_right$$=await permission.getFieldNotRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$$=[]}var $fields$$=$req$$.query.fields;let $gfields$$={};$fields$$&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>
73
- {"_id"!==$f$$&&($gfields$$[$f$$]=1)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").filter($f$$=>$f$$&&0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{$gfields$$[$f$$]=0});!$fields$$&&(($fields$$=$req$$.query.notfields)&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:
74
- $fields$$.split(",").forEach($f$$=>{$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0);$condition$$.$text&&($gfields$$||($gfields$$={}),$gfields$$.textScore={$meta:"textScore"});if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate)try{$id_sellers_query$$=$model$$.aggregate([{$match:$condition$$}]);$req$$.query.group&&($group_page$$=JSON.parse($req$$.query.group),$id_sellers_query$$.group($group_page$$));
60
+ $req$$.condition=$condition$$;$next$$()}):($req$$.condition=$condition$jscomp$1$$,$next$$())})},function($req$$,$res$$,$next$$){if($shareRoute$$)return $next$$();permission.getRightByItem($req$$.user.current_id_app,$model$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $res$$.status(403).send({error:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$});if($admin$$)return $next$$();$req$$.admin=$admin$$;let $condition$$=$req$$.condition;
61
+ $condition$$||($condition$$={});$condition$$.$and||($condition$$.$and=[]);if($ctrl$$.options.onRightByItem)$ctrl$$.options.onRightByItem($req$$.user,$_condition$$,($e$$,$_condition$$)=>{setImmediate(()=>{if($e$$)return $res$$.status(403).send({error:$e$$.error||$e$$.message||$e$$});_.isObject($_condition$$)&&0<Object.keys($_condition$$).length&&$condition$$.$and.push($_condition$$);$req$$.condition=$condition$$;$next$$()})});else _.isObject($_condition$$)&&0<Object.keys($_condition$$).length&&$condition$$.$and.push($_condition$$),
62
+ $req$$.condition=$condition$$,$next$$()})},$ctrl$$.name,{notNeedRight:$ctrl$$.options.notNeedRight})},function($req$$,$res$$,$next$$){if($shareRoute$$)return $next$$();setImmediate(()=>{$ctrl$$.options.assignWiths?async.map($ctrl$$.options.assignWiths,($col$$,$callback$$)=>{setImmediate(()=>{let $m$$=global.getModel($col$$.ref_collection);permission.getRightByItem($req$$.user.current_id_app,$m$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);
63
+ if($admin$$)return $callback$$();$_condition$$.id_app=$req$$.user.current_id_app;$m$$.find($_condition$$).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $callback$$($e$$);let $dsdt$$=underscore.pluck($rs$$,$col$$.ref_field);$dsdt$$.push("");$dsdt$$.push(null);$req$$.condition[$col$$.ref_field]={$in:$dsdt$$};$callback$$()})})})},$ctrl$$.name,{notNeedRight:$ctrl$$.options.notNeedRight})})},$e$$=>{setImmediate(()=>{if($e$$)return $res$$.status(400).send({error:$e$$.error||$e$$.message||
64
+ $e$$});$next$$()})}):$next$$()})},function($req$$,$res$$,$next$$){if($shareRoute$$)return $next$$();setImmediate(()=>{if($req$$.admin||"dmdt"===$ctrl$$.name)return $next$$();if(underscore.has($model$$.schema.paths,"ma_dt")||underscore.has($model$$.schema.paths,"id_dt")){let $dmdt$$=mongoose.models.dmdt;permission.getRightDataView($req$$.user.current_id_app,$dmdt$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $res$$.status(400).send({error:$e$jscomp$0$$.error||
65
+ $e$jscomp$0$$.message||$e$jscomp$0$$});if($admin$$)return $next$$();$_condition$$.id_app=$req$$.user.current_id_app;$req$$.condition.ma_dt&&($_condition$$.ma_dt=$req$$.condition.ma_dt);$dmdt$$.find($_condition$$,{ma_dt:1,_id:1}).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$});if(underscore.has($model$$.schema.paths,"ma_dt")){var $dsdt$jscomp$1_dsdt$$=underscore.pluck($rs$$,"ma_dt");$dsdt$jscomp$1_dsdt$$.push("");$dsdt$jscomp$1_dsdt$$.push(null);
66
+ $dsdt$jscomp$1_dsdt$$.push(void 0);$req$$.condition.ma_dt={$in:$dsdt$jscomp$1_dsdt$$}}else $dsdt$jscomp$1_dsdt$$=underscore.pluck($rs$$,"_id"),$dsdt$jscomp$1_dsdt$$.push(""),$dsdt$jscomp$1_dsdt$$.push(null),$dsdt$jscomp$1_dsdt$$.push(void 0),$req$$.condition.id_dt={$in:$dsdt$jscomp$1_dsdt$$};$next$$()})})})})}else $next$$()})},function($req$$,$res$$,$next$$){setImmediate(()=>{if($shareRoute$$||$req$$.admin||"dmkho"===$ctrl$$.name)return $next$$();if(underscore.has($model$$.schema.paths,"ma_kho")||
67
+ underscore.has($model$$.schema.paths,"ma_kho_x")||underscore.has($model$$.schema.paths,"ma_kho_n")){let $dmkho$$=mongoose.models.dmkho;permission.getRightDataView($req$$.user.current_id_app,$dmkho$$,$req$$.user.email,function($e$jscomp$0$$,$_condition$$,$admin$$){setImmediate(()=>{if($e$jscomp$0$$)return $res$$.status(403).send({error:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$});if($admin$$)return $next$$();$_condition$$.id_app=$req$$.user.current_id_app;$req$$.condition.ma_kho&&($_condition$$.ma_kho=
68
+ $req$$.condition.ma_kho);$dmkho$$.find($_condition$$,{ma_kho:1}).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$});let $dskho$$=underscore.pluck($rs$$,"ma_kho");$dskho$$.push("");$dskho$$.push(null);$dskho$$.push(void 0);if(underscore.has($model$$.schema.paths,"ma_kho"))return $req$$.condition.ma_kho={$in:$dskho$$},$next$$();if("pxc"===$ctrl$$.name&&underscore.has($model$$.schema.paths,"ma_kho_x"))return $req$$.condition.ma_kho_x=
69
+ {$in:$dskho$$},$next$$();if("pnc"===$ctrl$$.name&&underscore.has($model$$.schema.paths,"ma_kho_n"))return $req$$.condition.ma_kho_n={$in:$dskho$$},$next$$();$next$$()})})})})}else $next$$()})},function($req$$,$res$$,$next$$){setImmediate(()=>{if($shareRoute$$)return $next$$();permission.hasRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.module,"view",function($error$$,$permission$$){setImmediate(()=>{if($ctrl$$.options.onQuery)$req$$.permission=$permission$$,$ctrl$$.options.onQuery($req$$,
70
+ $e$$=>{if($e$$)return $res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$});if(!$req$$.permission)return $res$$.send([]);$next$$()});else{if(!$permission$$)return $res$$.send([]);$next$$()}})},{notNeedRight:$ctrl$$.options.notNeedRight})})},async function($req$$,$res$$){setImmediate(async()=>{let $condition$$=$req$$.condition;$condition$$||($condition$$={});if($shareRoute$$){$condition$$.shared=!0;var $id_sellers_query$$=(await app.find({sale_online:!0},{_id:1}).lean()).map($a$$=>$a$$._id);
71
+ $condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push({id_app:{$in:$id_sellers_query$$}});$condition$$.id_app&&$condition$$.$and.push({id_app:$condition$$.id_app})}else underscore.has($model$$.schema.paths,"id_app")&&!1!==$ctrl$$.require_id_app&&($condition$$.id_app=$req$$.user.current_id_app);underscore.extend($condition$$,$ctrl$$.keyValues);$condition$$.$and&&0===$condition$$.$and.length&&delete $condition$$.$and;$condition$$.$or&&0===$condition$$.$or.length&&delete $condition$$.$or;
72
+ $condition$$.$nor&&0===$condition$$.$nor.length&&delete $condition$$.$nor;$id_sellers_query$$=null;if($req$$.query.count)$condition$$.$where?(console.log("phai loai bo $where trong condition"),$id_sellers_query$$=$model$$.count($condition$$,function($e$$,$data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})})):$id_sellers_query$$=$model$$.countDocuments($condition$$,function($e$$,
73
+ $data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})});else{let $field_not_right$$;try{$field_not_right$$=await permission.getFieldNotRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$$=[]}var $fields$$=$req$$.query.fields;let $gfields$$={};$fields$$&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=
74
+ 1)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").filter($f$$=>$f$$&&0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{$gfields$$[$f$$]=0});!$fields$$&&(($fields$$=$req$$.query.notfields)&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").forEach($f$$=>
75
+ {$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0);$condition$$.$text&&($gfields$$||($gfields$$={}),$gfields$$.textScore={$meta:"textScore"});if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate)try{$id_sellers_query$$=$model$$.aggregate([{$match:$condition$$}]);$req$$.query.group&&($group_page$$=JSON.parse($req$$.query.group),$id_sellers_query$$.group($group_page$$));
75
76
  if($req$$.query.match){let $match$$=JSON.parse($req$$.query.match);$id_sellers_query$$.match($match$$)}if($req$$.query.project)$limit_project$$=JSON.parse($req$$.query.project),$id_sellers_query$$.project($limit_project$$);else if($gfields$$&&0<Object.keys($gfields$$).length)$limit_project$$=$gfields$$;else if($limit_project$$={_id:1},$group_page$$)for(let $key$$ in $group_page$$)$limit_project$$[$key$$]=1;$id_sellers_query$$.project($limit_project$$);if($req$$.query.aggregate){let $aggregate$$=JSON.parse($req$$.query.aggregate);
76
- $id_sellers_query$$.append($aggregate$$)}}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}else console.log("search data",$ctrl$$.name,"shared",$shareRoute$$,JSON.stringify($condition$$)),$id_sellers_query$$=$model$$.find($condition$$,$gfields$$);!$sort$$&&$gfields$$.textScore?$sort$$={textScore:{$meta:"textScore"}}:$sort$$&&($sort$$._id=1);$sort$$&&$id_sellers_query$$.sort($sort$$);var $group_page$$=$req$$.query.page,$limit_project$$=$req$$.query.limit;$limit_project$$&&
77
- ($limit_project$$=Number($limit_project$$));$limit_project$$||($limit_project$$=!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name?20:1E5);$limit_project$$&&500<$limit_project$$&&"xlsx"!==$req$$.query.type_data&&!$req$$.query.print&&!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&($limit_project$$=500);$group_page$$?$id_sellers_query$$.skip((Number($group_page$$)-1)*$limit_project$$).limit($limit_project$$):$id_sellers_query$$.limit($limit_project$$);$id_sellers_query$$.lean&&($id_sellers_query$$=
78
- $id_sellers_query$$.lean());$id_sellers_query$$.exec(function($e$jscomp$0$$,$obj4view$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$,$condition$$),$res$$.status(400).send({error:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$});$obj4view$$||($obj4view$$=[]);async.parallel({found:function($callback$$){$ctrl$$.found?$ctrl$$.found($req$$.user,$condition$$,$obj4view$$,function($error$$,$items$$){setImmediate(()=>{$callback$$($error$$,$items$$)})}):$callback$$(null,$obj4view$$)},set_collection_name:function($callback$$){$obj4view$$.forEach($obj$$=>
79
- {$obj$$.collection_name||($obj$$.collection_name=$ctrl$$.collection_name)});$callback$$(null)}},function($error$jscomp$0$$,$rs$jscomp$0$$){setImmediate(()=>{if($error$jscomp$0$$)return $next$$($error$jscomp$0$$);$obj4view$$=$rs$jscomp$0$$.found;async.parallel({e_view:function($callback$$){$ctrl$$.onView($req$$.user,$obj4view$$,($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return console.error("Erron on view:",$error$$),$callback$$($error$$);$callback$$(null,$viewValue$$)})},{req:$req$$,
80
- shareRoute:$shareRoute$$})}},async function($app$jscomp$1_dir_root_template_e$$,$_groupBy_func_string_rs$$){if($error$jscomp$0$$)return $next$$($error$jscomp$0$$);if($req$$.query.type_data&&"xlsx"==$req$$.query.type_data){$app$jscomp$1_dir_root_template_e$$=(configs.paths||{}).templates;let $template_id$$,$excelTemplate$$;if($template_id$$=$req$$.query.id_template){if(!global.mongoose.Types.ObjectId.isValid($template_id$$))return $res$$.status(400).send({error:"M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i"});
77
+ $id_sellers_query$$.append($aggregate$$)}}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}else $id_sellers_query$$=$model$$.find($condition$$,$gfields$$);!$sort$$&&$gfields$$.textScore?$sort$$={textScore:{$meta:"textScore"}}:$sort$$&&($sort$$._id=1);$sort$$&&$id_sellers_query$$.sort($sort$$);var $group_page$$=$req$$.query.page,$limit_project$$=$req$$.query.limit;$limit_project$$&&($limit_project$$=Number($limit_project$$));$limit_project$$||($limit_project$$=!1!==
78
+ $ctrl$$.require_id_app&&"right"!==$ctrl$$.name?20:1E5);$limit_project$$&&500<$limit_project$$&&"xlsx"!==$req$$.query.type_data&&!$req$$.query.print&&!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&($limit_project$$=500);$group_page$$?$id_sellers_query$$.skip((Number($group_page$$)-1)*$limit_project$$).limit($limit_project$$):$id_sellers_query$$.limit($limit_project$$);$id_sellers_query$$.lean&&($id_sellers_query$$=$id_sellers_query$$.lean());$id_sellers_query$$.exec(function($e$jscomp$0$$,$obj4view$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$,
79
+ $condition$$),$res$$.status(400).send({error:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$});$obj4view$$||($obj4view$$=[]);async.parallel({found:function($callback$$){$ctrl$$.found?$ctrl$$.found($req$$.user,$condition$$,$obj4view$$,function($error$$,$items$$){setImmediate(()=>{$callback$$($error$$,$items$$)})}):$callback$$(null,$obj4view$$)},set_collection_name:function($callback$$){$obj4view$$.forEach($obj$$=>{$obj$$.collection_name||($obj$$.collection_name=$ctrl$$.collection_name)});
80
+ $callback$$(null)}},function($error$jscomp$0$$,$rs$jscomp$0$$){setImmediate(()=>{if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});$obj4view$$=$rs$jscomp$0$$.found;async.parallel({e_view:function($callback$$){$ctrl$$.onView($req$$.user,$obj4view$$,($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return console.error("Erron on view:",$error$$),$callback$$($error$$);$callback$$(null,$viewValue$$)})},{req:$req$$,
81
+ shareRoute:$shareRoute$$})}},async function($app$jscomp$1_dir_root_template_e$$,$_groupBy_func_string_rs$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});if($req$$.query.type_data&&"xlsx"==$req$$.query.type_data){$app$jscomp$1_dir_root_template_e$$=(configs.paths||{}).templates;let $template_id$$,$excelTemplate$$;if($template_id$$=$req$$.query.id_template){if(!global.mongoose.Types.ObjectId.isValid($template_id$$))return $res$$.status(400).send({error:"M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i"});
81
82
  $excelTemplate$$=await global.getModel("exportexceltemplate").findById($template_id$$);if(!$excelTemplate$$||!$excelTemplate$$.file)return $res$$.status(400).send({error:"M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i"});var $_rs_msg_templatePath$$=$app$jscomp$1_dir_root_template_e$$?`${path.dirname($app$jscomp$1_dir_root_template_e$$)}${$excelTemplate$$.file}`:`${path.dirname(__dirname)}${$excelTemplate$$.file}`}else $app$jscomp$1_dir_root_template_e$$&&($_rs_msg_templatePath$$=`${$app$jscomp$1_dir_root_template_e$$}/excels/lists/${$ctrl$$.name}.xlsx`),
82
83
  $_rs_msg_templatePath$$&&fs.existsSync($_rs_msg_templatePath$$)||($_rs_msg_templatePath$$=`${path.dirname(__dirname)}/templates/excels/lists/${$ctrl$$.name}.xlsx`);if(!fs.existsSync($_rs_msg_templatePath$$))return $_rs_msg_templatePath$$="File m\u1eabu excel ch\u01b0a \u0111\u01b0\u1ee3c khai b\u00e1o t\u1ea1i '"+$_rs_msg_templatePath$$+"'",$res$$.status(400).send({error:$_rs_msg_templatePath$$});$app$jscomp$1_dir_root_template_e$$={};$_groupBy_func_string_rs$$.e_view.forEach($item$$=>{for(let $_key$$ in $item$$){let $_v$$=
83
84
  $item$$[$_key$$];if(underscore.isObject($_v$$))for(let $__key$$ in $_v$$){let $__v$$=$_v$$[$__key$$];if(!underscore.isFunction($__v$$))if(0<=$__key$$.indexOf("ngay")||0<=$__key$$.indexOf("date"))try{$item$$[`${$_key$$}_${$__key$$}`]=new Date($__v$$)}catch($e$$){$item$$[`${$_key$$}_${$__key$$}`]=$__v$$}else $item$$[`${$_key$$}_${$__key$$}`]=$__v$$}else if($_v$$&&0<=$_key$$.indexOf("ngay")||0<=$_key$$.indexOf("date"))try{let $d$$=moment($_v$$,"YYYY-MM-DD");$d$$.isValid()&&($item$$[`${$_key$$}`]=$d$$.toDate(),
@@ -93,27 +94,28 @@ $obj$jscomp$0$$&&$obj$jscomp$0$$._id===$id$$)$callback$$(null,JSON.parse($obj$js
93
94
  (($err_fields$jscomp$2_notfields$$=$req$$.query.notfields)&&(underscore.isArray($err_fields$jscomp$2_notfields$$)?$err_fields$jscomp$2_notfields$$.forEach($f$$=>{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=0)}):underscore.isObject($err_fields$jscomp$2_notfields$$)?$gfields$$={...$gfields$$,...$err_fields$jscomp$2_notfields$$}:$err_fields$jscomp$2_notfields$$.split(",").forEach($f$$=>{"_id"!=$f$$&&$f$$&&($gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=
94
95
  0);$model$$.findById($id$$,$gfields$$,function($err$$,$obj$$){setImmediate(()=>{$callback$$($err$$,$obj$$)})})}})}},async($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});let $obj$$=$rs$$.c;if(!$obj$$)return $res$$.status(404).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});if($shareRoute$$&&$obj$$.shared)underscore.has($model$$.schema.paths,
95
96
  "id_app")&&(await app.findOne({_id:$obj$$.id_app,sale_online:!0})||$res$$.status(403).send({error:ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE}));else if(!0===underscore.has($model$$.schema.paths,"id_app")&&$req$$.user.current_id_app!=$obj$$.id_app)return $res$$.status(403).send({error:ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE});$ctrl$$.getting?$ctrl$$.getting($req$$.user,$id$$,function($e$$){setImmediate(()=>{if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});
96
- $req$$.obj=$obj$$;$next$$()})},$obj$$):($req$$.obj=$obj$$,$next$$())})},function($req$$,$res$$,$next$$){let $obj$$=$req$$.obj;if($obj$$&&$obj$$.toObject)$obj$$=$obj$$.toObject();else return $next$$();if($obj$$.shared&&$shareRoute$$)return $next$$();permission.hasRight($obj$$.id_app,$req$$.user.email,$ctrl$$.module,"view",function($error$$,$permission$$){setImmediate(()=>{if($ctrl$$.options.onQuery)$req$$.permission=$permission$$,$ctrl$$.options.onQuery($req$$,$e$$=>{setImmediate(()=>{if($e$$)return $next$$($e$$);
97
- if($req$$.permission)$next$$();else return $res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})})});else if($permission$$)$next$$();else return $res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})})},{data:$obj$$,obj:$obj$$,notNeedRight:$ctrl$$.options.notNeedRight})},function($req$$,$res$$){let $obj$$=$req$$.obj;$obj$$&&$obj$$.toObject&&($obj$$=$obj$$.toObject());$obj$$.collection_name=$ctrl$$.collection_name;$ctrl$$.onView($req$$.user,
98
- [$obj$$],function($e$$,$viewValue$$){setImmediate(()=>{if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$res$$.send($viewValue$$[0])})},{req:$req$$,shareRoute:$shareRoute$$})})};
97
+ $req$$.obj=$obj$$;$next$$()})},$obj$$):($req$$.obj=$obj$$,$next$$())})},function($req$$,$res$$,$next$$){let $obj$$=$req$$.obj;if($obj$$&&$obj$$.toObject)$obj$$=$obj$$.toObject();else return $next$$();if($obj$$.shared&&$shareRoute$$)return $next$$();permission.hasRight($obj$$.id_app,$req$$.user.email,$ctrl$$.module,"view",function($error$$,$permission$$){setImmediate(()=>{if($ctrl$$.options.onQuery)$req$$.permission=$permission$$,$ctrl$$.options.onQuery($req$$,$e$$=>{setImmediate(()=>{if($e$$)return $res$$.status(403).send({error:$e$$||
98
+ ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE});if($req$$.permission)$next$$();else return $res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})})});else if($permission$$)$next$$();else return $res$$.status(403).send({error:$error$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})})},{data:$obj$$,obj:$obj$$,notNeedRight:$ctrl$$.options.notNeedRight})},function($req$$,$res$$){let $obj$$=$req$$.obj;$obj$$&&$obj$$.toObject&&($obj$$=$obj$$.toObject());$obj$$.collection_name=$ctrl$$.collection_name;
99
+ $ctrl$$.onView($req$$.user,[$obj$$],function($e$$,$viewValue$$){setImmediate(()=>{if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$res$$.send($viewValue$$[0])})},{req:$req$$,shareRoute:$shareRoute$$})})};
99
100
  controller.prototype.postAgain=function(){let $model$$=this.model,$ctrl$$=this;this.router.route(`${this.route_name}/action/postagain`).get(function($req$$,$res$$,$next$$){if(!$ctrl$$.post)return $res$$.send({message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"});let $condition$jscomp$1$$={};for(let $k$$ in $req$$.query)if("id_app"!=$k$$&&"access_token"!=$k$$)if("_id"==$k$$&&global.mongoose.Types.ObjectId.isValid($req$$.query._id))try{let $id$$=global.mongoose.Types.ObjectId($req$$.query._id);
100
101
  $condition$jscomp$1$$._id=$id$$}catch($error$$){console.error($error$$)}else{if("q"==$k$$&&$req$$.query[$k$$])try{$condition$jscomp$1$$=JSON.parse($req$$.query[$k$$]);continue}catch($e$$){return console.error($e$$),$res$$.status(400).send($e$$)}if("tu_ngay"==$k$$&&!0===underscore.has($model$$.schema.paths,"ngay_ct")){var $val_val$$=moment($req$$.query.tu_ngay).startOf("date").toDate();$condition$jscomp$1$$.ngay_ct?$condition$jscomp$1$$.ngay_ct.$gte=$val_val$$:$condition$jscomp$1$$.ngay_ct={$gte:$val_val$$}}else"den_ngay"==
101
102
  $k$$&&!0===underscore.has($model$$.schema.paths,"ngay_ct")?($val_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(),$condition$jscomp$1$$.ngay_ct?$condition$jscomp$1$$.ngay_ct.$lte=$val_val$$:$condition$jscomp$1$$.ngay_ct={$lte:$val_val$$}):!0===underscore.has($model$$.schema.paths,$k$$)&&($condition$jscomp$1$$[$k$$]=$req$$.query[$k$$])}!0===underscore.has($model$$.schema.paths,"id_app")&&($condition$jscomp$1$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,
102
103
  $condition$jscomp$1$$,function($e$jscomp$0$$,$condition$jscomp$0$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$0$$,function($e$$,$condition$$){if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$req$$.condition=$condition$$;$next$$()},{req:$req$$}):($req$$.condition=
103
104
  $condition$jscomp$0$$,$next$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$1$$,function($e$$,$condition$$){if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$req$$.condition=$condition$$;$next$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$1$$,$next$$())},function($req$$,$res$$,$next$$){permission.isAdmin($req$$.user.current_id_app,$req$$.user.email,function($e$$,$admin$$){setImmediate(()=>
104
- {if($e$$)return $next$$($e$$);if(!$admin$$)return $res$$.status(403).send({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"});$next$$()})})},function($req$$,$res$$){$model$$.find($req$$.condition).lean().exec(function($e$jscomp$0$$,$obj4view$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$});async.map($obj4view$$,function($obj$$,
105
- $callback$$){setImmediate(()=>{postData($obj$$,$ctrl$$,function($e$$,$rs$$){$callback$$($e$$,$rs$$)})})},function($e$$){if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$res$$.send({message:"ok"})})})})})};
105
+ {if($e$$)return $res$$.status(403).send({error:$e$$});if(!$admin$$)return $res$$.status(403).send({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"});$next$$()})})},function($condition$jscomp$13_req$$,$res$$){$condition$jscomp$13_req$$=$condition$jscomp$13_req$$.condition;const $update_tk_vt$$=$condition$jscomp$13_req$$.update_tk_vt;delete $condition$jscomp$13_req$$.update_tk_vt;$model$$.find($condition$jscomp$13_req$$).lean().exec(function($e$jscomp$0$$,
106
+ $objsrepost$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$});async.map($objsrepost$$,function($obj$$,$callback$$){setImmediate(async()=>{$update_tk_vt$$&&$obj$$.details&&(await $obj$$.details.filter($d$$=>$d$$.ma_vt).asyncJoinModel2($obj$$.id_app,global.getModel("dmvt"),{where:"ma_vt",fields:"tk_vt"}),await $model$$.findOneAndUpdate({_id:$obj$$._id},{details:$obj$$.details}));postData($obj$$,
107
+ $ctrl$$,function($e$$,$rs$$){$callback$$($e$$,$rs$$)})})},function($e$$){if($e$$)return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$res$$.send({message:"ok"})})})})})};
106
108
  controller.prototype.updateField=function(){let $model$$=this.model,$ctrl$$=this,$field$$;this.router.route(`${this.route_name}/update/:field`).get(function($req$$,$res$$,$next$$){$field$$=$req$$.params.field;if(!underscore.has($model$$.schema.paths,$field$$))return $res$$.status(400).send({error:"Field "+$field$$+" kh\u00f4ng t\u1ed3n t\u1ea1i"});var $condition$jscomp$1$$=$model$$.collection.name;$req$$.user.current_id_app&&($condition$jscomp$1$$+=$req$$.user.current_id_app);delete global.cacheDatas[$condition$jscomp$1$$];
107
109
  $condition$jscomp$1$$={};for(let $k$$ in $req$$.query)if("id_app"!=$k$$&&"access_token"!=$k$$)if("_id"==$k$$&&mongoose.Types.ObjectId.isValid($req$$.query._id))try{let $id$$=global.mongoose.Types.ObjectId($req$$.query._id);$condition$jscomp$1$$._id=$id$$}catch($error$$){console.error($error$$)}else if("q"==$k$$&&$req$$.query[$k$$])$condition$jscomp$1$$=JSON.parse($req$$.query[$k$$]);else if("tu_ngay"==$k$$&&!0===underscore.has($model$$.schema.paths,"ngay_ct")){var $val$jscomp$2_val$$=moment($req$$.query.tu_ngay).startOf("date").toDate();
108
110
  $condition$jscomp$1$$.ngay_ct?$condition$jscomp$1$$.ngay_ct.$gte=$val$jscomp$2_val$$:$condition$jscomp$1$$.ngay_ct={$gte:$val$jscomp$2_val$$}}else"den_ngay"==$k$$&&!0===underscore.has($model$$.schema.paths,"ngay_ct")?($val$jscomp$2_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(),$condition$jscomp$1$$.ngay_ct?$condition$jscomp$1$$.ngay_ct.$lte=$val$jscomp$2_val$$:$condition$jscomp$1$$.ngay_ct={$lte:$val$jscomp$2_val$$}):!0===underscore.has($model$$.schema.paths,$k$$)&&($condition$jscomp$1$$[$k$$]=
109
111
  $req$$.query[$k$$]);!0===underscore.has($model$$.schema.paths,"id_app")&&($condition$jscomp$1$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,$condition$jscomp$1$$,function($e$jscomp$0$$,$condition$jscomp$0$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,
110
112
  $condition$jscomp$0$$,function($e$$,$condition$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$req$$.condition=$condition$$;$next$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$0$$,$next$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$1$$,function($e$$,$condition$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||
111
- $e$$});$req$$.condition=$condition$$;$next$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$1$$,$next$$())},function($req$$,$res$$,$next$$){permission.isAdmin($req$$.user.current_id_app,$req$$.user.email,function($e$$,$admin$$){setImmediate(()=>{if($e$$)return $next$$($e$$);if(!$admin$$)return $res$$.status(403).send({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"});$next$$()})})},function($req$$,$res$$){let $condition$$=$req$$.condition;
112
- underscore.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);!0===underscore.has($model$$.schema.paths,"ngay_ct")&&$query$$.sort({ngay_ct:1});$query$$.lean().exec(function($e$jscomp$1$$,$obj4view$$){setImmediate(()=>{if($e$jscomp$1$$)return console.error($e$jscomp$1$$),$e$jscomp$1$$.error?$res$$.status(400).send($e$jscomp$1$$):$res$$.status(400).send({error:$e$jscomp$1$$.message||$e$jscomp$1$$.error||
113
- $e$jscomp$1$$});setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"UPDATE FIELD:"+$field$$,data:{condition:JSON.stringify($condition$$)}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $tu_so$$=Number($req$$.query.tu_so);$tu_so$$||($tu_so$$=1);let $den_so$$=$req$$.query.den_so,$tien_to$$=$req$$.query.tien_to,$hau_to$$=$req$$.query.hau_to,$gia_tri$$;for(let $i$$=0;$i$$<$obj4view$$.length;$i$$++)$gia_tri$$=$tu_so$$+$i$$+"",$den_so$$&&($gia_tri$$=
114
- "0000000000000000000".substring(0,$den_so$$.length-$gia_tri$$.length)+$gia_tri$$),$tien_to$$&&($gia_tri$$=$tien_to$$+$gia_tri$$),$hau_to$$&&($gia_tri$$+=$hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;async.map($obj4view$$,function($obj$$,$callback$$){setImmediate(()=>{$model$$.findOneAndUpdate({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$||!$rs$$)return $callback$$($e$jscomp$0$$);$ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,$ctrl$$,function($e$$){if($e$$)return console.error("error post data",
115
- $e$$),$callback$$($e$$);$callback$$(null,$rs$$)}):$callback$$(null,$rs$$)})})})},function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated",$rs$$);pushNotification($ctrl$$,$rs$$,"update",null,!0,{exclude_token:$req$$.query.access_token});$rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=
116
- $o$$.toObject());return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)})},{req:$req$$})})})})})})};
113
+ $e$$});$req$$.condition=$condition$$;$next$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$1$$,$next$$())},function($req$$,$res$$,$next$$){permission.isAdmin($req$$.user.current_id_app,$req$$.user.email,function($e$$,$admin$$){setImmediate(()=>{if($e$$)return $res$$.status(403).send({error:$e$$});if(!$admin$$)return $res$$.status(403).send({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"});$next$$()})})},function($req$$,$res$$){let $condition$$=
114
+ $req$$.condition;underscore.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);!0===underscore.has($model$$.schema.paths,"ngay_ct")&&$query$$.sort({ngay_ct:1});$query$$.lean().exec(function($e$jscomp$1$$,$obj4view$$){setImmediate(()=>{if($e$jscomp$1$$)return console.error($e$jscomp$1$$),$e$jscomp$1$$.error?$res$$.status(400).send($e$jscomp$1$$):$res$$.status(400).send({error:$e$jscomp$1$$.message||
115
+ $e$jscomp$1$$.error||$e$jscomp$1$$});setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"UPDATE FIELD:"+$field$$,data:{condition:JSON.stringify($condition$$)}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $tu_so$$=Number($req$$.query.tu_so);$tu_so$$||($tu_so$$=1);let $den_so$$=$req$$.query.den_so,$tien_to$$=$req$$.query.tien_to,$hau_to$$=$req$$.query.hau_to,$gia_tri$$;for(let $i$$=0;$i$$<$obj4view$$.length;$i$$++)$gia_tri$$=$tu_so$$+$i$$+"",
116
+ $den_so$$&&($gia_tri$$="0000000000000000000".substring(0,$den_so$$.length-$gia_tri$$.length)+$gia_tri$$),$tien_to$$&&($gia_tri$$=$tien_to$$+$gia_tri$$),$hau_to$$&&($gia_tri$$+=$hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;async.map($obj4view$$,function($obj$$,$callback$$){setImmediate(()=>{$model$$.findOneAndUpdate({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$||!$rs$$)return $callback$$($e$jscomp$0$$);$ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,
117
+ $ctrl$$,function($e$$){if($e$$)return console.error("error post data",$e$$),$callback$$($e$$);$callback$$(null,$rs$$)}):$callback$$(null,$rs$$)})})})},function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated",$rs$$);pushNotification($ctrl$$,$rs$$,"update",null,!0,{exclude_token:$req$$.query.access_token});
118
+ $rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=$o$$.toObject());return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)})},{req:$req$$})})})})})})};
117
119
  const getParameters=($id_app$$,$rps_rpt_ids$$,$callback$$)=>{let $parameters$$=$rps_rpt_ids$$.filter($r$$=>$r$$.parameters).map($r$$=>$r$$.parameters).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);0<$parameters$$.length?$callback$$(null,$parameters$$):($rps_rpt_ids$$=underscore.pluck($rps_rpt_ids$$,"_id"),Parameter.find({id_app:$id_app$$,id_rpt:{$in:$rps_rpt_ids$$}}).lean().exec(function($e$$,$parameters$$){setImmediate(()=>{if($e$$)return $callback$$($e$$);$callback$$(null,$parameters$$)})}))},prepareParameters=
118
120
  function($ctrl$$,$parameters$$,$app$$,$obj$$,$callback$jscomp$0$$){async.map($parameters$$,function($p$$,$callback$$){setImmediate(()=>{(async()=>{if("W"===$p$$.type||"EN"===$p$$.type)try{$app$$[$p$$.name]="EN"===$p$$.type?numberToWord($obj$$[$p$$.value],{lang:"en"}):numberToWord($obj$$[$p$$.value])}catch($e$$){console.error($e$$),$app$$[$p$$.name]=$e$$.message}else if("Q"===$p$$.type)try{var $query$jscomp$8_sandbox$$=await evalute("return {"+$p$$.value+"}",{});if($query$jscomp$8_sandbox$$.collection&&
119
121
  $query$jscomp$8_sandbox$$.field){"dmkh"==$query$jscomp$8_sandbox$$.collection&&($query$jscomp$8_sandbox$$.collection="customer");"dmtk"==$query$jscomp$8_sandbox$$.collection&&($query$jscomp$8_sandbox$$.collection="account");var $condition$$=$query$jscomp$8_sandbox$$.condition;if($condition$$){$condition$$=JSON.stringify($condition$$);for(let $m$$ in $obj$$)$condition$$=$condition$$.replace(new RegExp("m."+$m$$,"g"),$obj$$[$m$$]);$condition$$=JSON.parse($condition$$)}else $condition$$={};$app$$[$p$$.name]=
@@ -145,35 +147,34 @@ let $values$$=$req$$.query.values;if($values$$){try{$values$$=JSON.parse($values
145
147
  $e$$.message||$e$$,message:$e$$.message||$e$$.error});if(0===$rs$$.rows_error.length)console.log("import from json",$ctrl$$.name,$data$$.length,"rows successfull"),$res$$.send($rs$$);else{let $msg$$=$rs$$.rows_error.map($r$$=>$r$$.error).join(", ");console.error("import from json",$ctrl$$.name,$data$$.length,"rows with error:",$msg$$);$res$$.status(400).send({error:$rs$$.error||$rs$$,message:$msg$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
146
148
  controller.prototype.importFromExcel=function(){let $name$$=this.name,$ctrl$$=this;this.router.route(`${this.route_name}/import/excel`).post(async function($req$$,$res$$,$next$$){let $session$$=$req$$.session;if(!0===$session$$["import_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["import_"+$name$$]=!0;if(!$req$$.files.xlsx)return $session$$["import_"+$name$$]=!1,$res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file xlsx"});
147
149
  let $parseOptions$$={},$map_root$$=configs.paths.maps,$map_file$$;$map_root$$&&($map_file$$=$map_root$$+"/"+$name$$+".js");$map_file$$&&fs.existsSync($map_file$$)||($map_file$$=path.dirname(__dirname)+"/maps/"+$name$$+".js");fs.existsSync($map_file$$)&&($parseOptions$$=await new Promise($resolve$$=>{setImmediate(()=>{$resolve$$(require($map_file$$))})}));if($ctrl$$.options.onPreExcelParse){const $onPreExcelParse$$=$ctrl$$.options.onPreExcelParse;await new Promise($resolve$$=>{setImmediate(()=>{$onPreExcelParse$$($parseOptions$$);
148
- $resolve$$()})})}let $filePath$$=$req$$.files.xlsx.path;excel.parse($filePath$$,function($e$jscomp$0$$,$data$$,$columns$$){setImmediate(()=>{fs.unlink($filePath$$,function($e$$){$e$$&&console.error("Can't delete file tmp:"+$filePath$$,$e$$)});if($e$jscomp$0$$)return $session$$["import_"+$name$$]=!1,console.error("error parse excel file",$e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});if(1E4<$data$$.length)return $session$$["import_"+
149
- $name$$]=!1,console.log("Data is too large",$data$$.length),$res$$.status(400).send({error:"S\u1ed1 d\u00f2ng import qu\u00e1 l\u1edbn. M\u1ed7i l\u1ea7n import ch\u1ec9 \u0111\u01b0\u1ee3c ph\u00e9p t\u1ed1i \u0111a 10 000 d\u00f2ng"});$ctrl$$.excelParse&&$ctrl$$.excelParse($data$$,$columns$$);var $dir_workers_poolName$$=configs.paths.workers;let $onImportProcess$$;$dir_workers_poolName$$&&($onImportProcess$$=$dir_workers_poolName$$+"/"+$name$$.toLowerCase()+"OnImport.js");$onImportProcess$$&&fs.existsSync($onImportProcess$$)||
150
- ($dir_workers_poolName$$=path.dirname(__dirname)+"/workers",$onImportProcess$$=$dir_workers_poolName$$+"/"+$name$$.toLowerCase()+"OnImport.js");if(fs.existsSync($onImportProcess$$))$dir_workers_poolName$$=`${$name$$}excelParsePool`,global[$dir_workers_poolName$$]||(global[$dir_workers_poolName$$]=new StaticPool($onImportProcess$$)),global[$dir_workers_poolName$$].exec({user:$req$$.user,data:$data$$,columns:$columns$$,configs:{database:configs.database}},$response$$=>{if($response$$.error)return $res$$.status(400).send({error:$response$$.error||
151
- "\u0110\u00e3 c\u00f3 l\u1ed7i khi x\u1eed l\u00fd d\u1eef li\u1ec7u"});$req$$.data=$response$$.data||$data$$;$req$$.columns=$response$$.columns||$columns$$;$next$$()});else if($ctrl$$.options.onImport)$ctrl$$.options.onImport($req$$.user,$data$$,$columns$$,function($e$$){setImmediate(()=>{if($e$$)return $session$$["import_"+$name$$]=!1,console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$req$$.data=$data$$;$req$$.columns=$columns$$;$next$$()})});
152
- else setImmediate(()=>{$req$$.data=$data$$;$req$$.columns=$columns$$;$next$$()})})},$parseOptions$$)},function($req$$,$data$jscomp$7_res$$,$next$$){console.log("prepare data...");$data$jscomp$7_res$$=$req$$.data;var $columns$$=$req$$.columns;$columns$$._error||($columns$$._error="Error");let $master_columns$$=[],$detail_col$$,$details$$={},$detail_yn$$=!1;for(let $column_name$$ in $columns$$)0<$column_name$$.indexOf("$")?($detail_yn$$=!0,$columns$$=$column_name$$.split("$")[0],$detail_col$$=$column_name$$.split("$")[1],
153
- $details$$[$columns$$]||($details$$[$columns$$]={},$details$$[$columns$$].columns=[]),$details$$[$columns$$].columns.push($detail_col$$)):$master_columns$$.push($column_name$$);if(!$detail_yn$$)return $next$$();let $data_new$$=[],$row_master$$,$row_master_exists$$;async.map($data$jscomp$7_res$$,($row$$,$cb$$)=>{setImmediate(()=>{$row_master$$={exfields:{}};$row_master_exists$$=null;$master_columns$$.forEach(function($column$$){if(0===$column$$.indexOf("exfields.")){let $_c$$=$column$$.replace("exfields.",
154
- "");$row_master$$.exfields[$_c$$]=$row$$[$column$$]}else $row_master$$[$column$$]=$row$$[$column$$]});for(let $i$$=0;$i$$<$data_new$$.length;$i$$++){let $m$$=$data_new$$[$i$$],$is_eq$$=!0;$master_columns$$.forEach(function($column$$){underscore.isEqual($m$$[$column$$],$row_master$$[$column$$])||($is_eq$$=!1)});$is_eq$$&&($row_master_exists$$=$m$$)}$row_master_exists$$?$row_master$$=$row_master_exists$$:$data_new$$.push($row_master$$);let $row_detail$$;for(let $detail_name$$ in $details$$)$row_detail$$=
155
- {},$details$$[$detail_name$$].columns.forEach(function($column$$){$row$$[$detail_name$$+"$"+$column$$]&&($row_detail$$[$column$$]=$row$$[$detail_name$$+"$"+$column$$])}),$row_master$$[$detail_name$$]||($row_master$$[$detail_name$$]=[]),0<underscore.keys($row_detail$$).length&&$row_master$$[$detail_name$$].push($row_detail$$);$cb$$()})},()=>{$req$$.data=$data_new$$;setImmediate(()=>{$next$$()})})},function($req$$,$res$$){let $data$$=$req$$.data||[],$columns$$=$req$$.columns;for(let $row$$ of $data$$){let $_first$$=
156
- $row$$._first;$_first$$&&0<$_first$$.length&&underscore.extend($row$$,$_first$$[0])}setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"IMPORTEXCEL",data:{data:$data$$,columns:$columns$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $values$$=$req$$.query.values;if($values$$){try{$values$$=JSON.parse($values$$)}catch($e$$){console.error($e$$)}$values$$&&$data$$.forEach($row$$=>{for(let $key$$ in $values$$)$row$$[$key$$]=$values$$[$key$$]})}global.importDataMainPool?
157
- global.importDataMainPool.exec({user:$req$$.user,id_app:$req$$.user.current_id_app,module:$name$$.toUpperCase(),data:$data$$,configs:JSON.parse(JSON.stringify(configs)),replace:!0===$req$$.query.update||"true"==$req$$.query.update},$response$$=>{setImmediate(()=>{if($response$$.error)return $res$$.status(400).send({error:$response$$.error,message:$response$$.message||$response$$.error});if(0===$response$$.result.rows_error.length)return $res$$.send($response$$.result);let $msg$$=$response$$.result.rows_error.map($r$$=>
158
- $r$$.error).join(", ");return $res$$.status(400).send({error:$response$$.result,message:$msg$$})})}):$ctrl$$.import($req$$.user,$req$$.user.current_id_app,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?($e$$.message=$e$$.message||$e$$.error,$res$$.status(400).send($e$$)):$res$$.status(400).send({error:$e$$.message||$e$$,message:$e$$.message||$e$$});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $msg$$=$rs$$.rows_error.map($r$$=>$r$$.error).join(", ");
159
- $res$$.status(400).send({message:$msg$$,error:$rs$$.error||$rs$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
150
+ $resolve$$()})})}let $filePath$$=$req$$.files.xlsx.path;excel.parse($filePath$$,function($e$jscomp$0$$,$data$$,$columns$$){setImmediate(()=>{fs.unlink($filePath$$,function($e$$){$e$$&&console.error("Can't delete file tmp:"+$filePath$$,$e$$)});if($e$jscomp$0$$)return $session$$["import_"+$name$$]=!1,console.error("error parse excel file",$e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$data$$=$data$$.filter($d$$=>
151
+ 0<Object.keys($d$$).length);if(1E4<$data$$.length)return $session$$["import_"+$name$$]=!1,console.log("Data is too large",$data$$.length),$res$$.status(400).send({error:"S\u1ed1 d\u00f2ng import qu\u00e1 l\u1edbn. M\u1ed7i l\u1ea7n import ch\u1ec9 \u0111\u01b0\u1ee3c ph\u00e9p t\u1ed1i \u0111a 10 000 d\u00f2ng"});$ctrl$$.excelParse&&$ctrl$$.excelParse($data$$,$columns$$);var $dir_workers_poolName$$=configs.paths.workers;let $onImportProcess$$;$dir_workers_poolName$$&&($onImportProcess$$=$dir_workers_poolName$$+
152
+ "/"+$name$$.toLowerCase()+"OnImport.js");$onImportProcess$$&&fs.existsSync($onImportProcess$$)||($dir_workers_poolName$$=path.dirname(__dirname)+"/workers",$onImportProcess$$=$dir_workers_poolName$$+"/"+$name$$.toLowerCase()+"OnImport.js");if(fs.existsSync($onImportProcess$$))$dir_workers_poolName$$=`${$name$$}excelParsePool`,global[$dir_workers_poolName$$]||(global[$dir_workers_poolName$$]=new StaticPool($onImportProcess$$)),global[$dir_workers_poolName$$].exec({user:$req$$.user,data:$data$$,columns:$columns$$,
153
+ configs:{database:configs.database}},$response$$=>{if($response$$.error)return $res$$.status(400).send({error:$response$$.error||"\u0110\u00e3 c\u00f3 l\u1ed7i khi x\u1eed l\u00fd d\u1eef li\u1ec7u"});$req$$.data=$response$$.data||$data$$;$req$$.columns=$response$$.columns||$columns$$;$next$$()});else if($ctrl$$.options.onImport)$ctrl$$.options.onImport($req$$.user,$data$$,$columns$$,function($e$$){setImmediate(()=>{if($e$$)return $session$$["import_"+$name$$]=!1,console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):
154
+ $res$$.status(400).send({error:$e$$.message||$e$$});$req$$.data=$data$$;$req$$.columns=$columns$$;$next$$()})});else setImmediate(()=>{$req$$.data=$data$$;$req$$.columns=$columns$$;$next$$()})})},$parseOptions$$)},function($req$$,$data$jscomp$7_res$$,$next$$){console.log("prepare data...");$data$jscomp$7_res$$=$req$$.data;var $columns$$=$req$$.columns;$columns$$._error||($columns$$._error="Error");let $master_columns$$=[],$detail_col$$,$details$$={},$detail_yn$$=!1;for(let $column_name$$ in $columns$$)0<
155
+ $column_name$$.indexOf("$")?($detail_yn$$=!0,$columns$$=$column_name$$.split("$")[0],$detail_col$$=$column_name$$.split("$")[1],$details$$[$columns$$]||($details$$[$columns$$]={},$details$$[$columns$$].columns=[]),$details$$[$columns$$].columns.push($detail_col$$)):$master_columns$$.push($column_name$$);if(!$detail_yn$$)return $next$$();let $data_new$$=[],$row_master$$,$row_master_exists$$;async.map($data$jscomp$7_res$$,($row$$,$cb$$)=>{setImmediate(()=>{$row_master$$={exfields:{}};$row_master_exists$$=
156
+ null;$master_columns$$.forEach(function($column$$){if(0===$column$$.indexOf("exfields.")){let $_c$$=$column$$.replace("exfields.","");$row_master$$.exfields[$_c$$]=$row$$[$column$$]}else $row_master$$[$column$$]=$row$$[$column$$]});for(let $i$$=0;$i$$<$data_new$$.length;$i$$++){let $m$$=$data_new$$[$i$$],$is_eq$$=!0;$master_columns$$.forEach(function($column$$){underscore.isEqual($m$$[$column$$],$row_master$$[$column$$])||($is_eq$$=!1)});$is_eq$$&&($row_master_exists$$=$m$$)}$row_master_exists$$?
157
+ $row_master$$=$row_master_exists$$:$data_new$$.push($row_master$$);let $row_detail$$;for(let $detail_name$$ in $details$$)$row_detail$$={},$details$$[$detail_name$$].columns.forEach(function($column$$){$row$$[$detail_name$$+"$"+$column$$]&&($row_detail$$[$column$$]=$row$$[$detail_name$$+"$"+$column$$])}),$row_master$$[$detail_name$$]||($row_master$$[$detail_name$$]=[]),0<underscore.keys($row_detail$$).length&&$row_master$$[$detail_name$$].push($row_detail$$);$cb$$()})},()=>{$req$$.data=$data_new$$;
158
+ setImmediate(()=>{$next$$()})})},function($req$$,$res$$){let $data$$=$req$$.data||[],$columns$$=$req$$.columns;for(let $row$$ of $data$$){let $_first$$=$row$$._first;$_first$$&&0<$_first$$.length&&underscore.extend($row$$,$_first$$[0])}setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"IMPORTEXCEL",data:{data:$data$$,columns:$columns$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $values$$=$req$$.query.values;if($values$$){try{$values$$=JSON.parse($values$$)}catch($e$$){console.error($e$$)}$values$$&&
159
+ $data$$.forEach($row$$=>{for(let $key$$ in $values$$)$row$$[$key$$]=$values$$[$key$$]})}global.importDataMainPool?global.importDataMainPool.exec({user:$req$$.user,id_app:$req$$.user.current_id_app,module:$name$$.toUpperCase(),data:$data$$,configs:JSON.parse(JSON.stringify(configs)),replace:!0===$req$$.query.update||"true"==$req$$.query.update},$response$$=>{setImmediate(()=>{if($response$$.error)return $res$$.status(400).send({error:$response$$.error,message:$response$$.message||$response$$.error});
160
+ if(0===$response$$.result.rows_error.length)return $res$$.send($response$$.result);let $msg$$=$response$$.result.rows_error.map($r$$=>$r$$.error).join(", ");return $res$$.status(400).send({error:$response$$.result,message:$msg$$})})}):$ctrl$$.import($req$$.user,$req$$.user.current_id_app,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?($e$$.message=$e$$.message||$e$$.error,$res$$.status(400).send($e$$)):$res$$.status(400).send({error:$e$$.message||$e$$,message:$e$$.message||
161
+ $e$$});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $msg$$=$rs$$.rows_error.map($r$$=>$r$$.error).join(", ");$res$$.status(400).send({message:$msg$$,error:$rs$$.error||$rs$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
160
162
  const PostBook=require("../libs/post-book"),utils=require("../libs/utils"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),Sokhokhongton=global.getModel("sokhokhongton"),dmvt=global.getModel("dmvt"),Tdttno=global.getModel("tdttno"),Tdttno_tt=global.getModel("tdttno_tt"),Tdttco_tt=global.getModel("tdttco_tt"),Tdttco=global.getModel("tdttco"),Vatra=global.getModel("vatra"),Vatvao=global.getModel("vatvao"),deletePost=function($user$$,$obj$$,$callback$jscomp$1$$){$obj$$.toObject&&($obj$$=
161
- $obj$$.toObject());if(!$obj$$._id)return console.error("Error when delete post: obj does not have _id",$obj$$),$callback$jscomp$1$$(null,$obj$$);async.parallel({delete_model_books_registed:$callback$jscomp$0$$=>{setImmediate(()=>{if(!global.model_books)return $callback$jscomp$0$$();async.map(global.model_books,($bookName$$,$callback$$)=>{setImmediate(()=>{let $book$$=mongoose.models[$bookName$$.toLowerCase()];$book$$?$book$$.deleteMany({id_ct:$obj$$._id.toString()},$e$$=>{$callback$$($e$$)}):$callback$$()})},
162
- $e$$=>{$callback$jscomp$0$$($e$$)})})},sk:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokho,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},sktt:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokhott,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},skkhongton:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,
163
- $obj$$.details,Sokhokhongton,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},vsc:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("vsocai"))return $callback$$();vsocai.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},sc:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("socai"))return $callback$$();Socai.deleteMany({id_ct:$obj$$._id.toString()},
164
- function($error$$){$callback$$($error$$)})})},vatra:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("vatra"))return $callback$$();Vatra.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},vatvao:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("vatvao"))return $callback$$();Vatvao.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},tdttno:$callback$$=>{setImmediate(()=>
165
- {if(global.model_books&&0<=global.model_books.indexOf("tdttno"))return $callback$$();Tdttno.deleteMany({id_ct:$obj$$._id.toString()},function($error$$,$rs$$){console.log("delete post","tdttno",$obj$$._id,$error$$,$rs$$);$callback$$($error$$)})})},tdttco:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("tdttco"))return $callback$$();Tdttco.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},tdttno_tt:$callback$jscomp$0$$=>{setImmediate(()=>
166
- {Tdttno_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$obj$$.tdttnos?async.map($obj$$.tdttnos,function($detail$$,$callback$$){setImmediate(()=>{Tdttno.findOneAndUpdate({_id:$detail$$.id_hd,so_hd:$detail$$.so_hd},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);$callback$$()})})})},function($e$$){console.error($e$$);$callback$jscomp$0$$()}):$callback$jscomp$0$$()})})},
167
- tdttco_tt:$callback$jscomp$0$$=>{setImmediate(()=>{Tdttco_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$obj$$.tdttcos?async.map($obj$$.tdttcos,function($detail$$,$callback$$){setImmediate(()=>{Tdttco.findOneAndUpdate({_id:$detail$$.id_hd,so_hd:$detail$$.so_hd},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);$callback$$()})})})},function($e$$){console.error($e$$);
168
- $callback$jscomp$0$$()}):$callback$jscomp$0$$()})})}},function($e$$){$callback$jscomp$1$$($e$$,$obj$$)})},runWebhooks=controller.runWebhooks=async($ctrl$$,$obj$$,$action$$,$voucher_options$$)=>{$voucher_options$$||($voucher_options$$=(await OptionsModel.findOne({id_app:$obj$$.id_app,id_func:$ctrl$$.name},{option:1}).lean()||{}).option);if($voucher_options$$&&$voucher_options$$.option_webhooks&&($ctrl$$=$voucher_options$$.option_webhooks.find($w$$=>$w$$.action.toUpperCase()===$action$$.toUpperCase()&&
169
- $w$$.url))){$voucher_options$$=path.dirname(__dirname)+"/workers/webhook.js";if(!fs.existsSync($voucher_options$$))return console.error("webhook process is not exitst");global.webhookPool||(global.webhookPool=new StaticPool($voucher_options$$));global.webhookPool.exec({data:$obj$$,webhook_configs:$ctrl$$},$response$$=>{$response$$.error?console.error($response$$.error):console.log($response$$)})}},postData=controller.postData=function($obj$$,$ctrl$$,$callback$jscomp$0$$){const $post$$=$ctrl$$.dynamicPost||
170
- $ctrl$$.post;if(!$post$$)return $callback$jscomp$0$$();let $obj_created$$=$obj$$.toObject?$obj$$.toObject():{...$obj$$};if(!$obj_created$$.ma_ct)return $callback$jscomp$0$$("\u0110\u1ec3 post \u0111\u01b0\u1ee3c data, \u0110\u1ed1i t\u01b0\u1ee3ng c\u1ea7n c\u00f3 d\u1eef li\u1ec7u ma_ct,trang_thai");Object.keys($obj_created$$).forEach($key$$=>{let $p$$=$obj_created$$[$key$$];$p$$&&($p$$.toObject&&($obj_created$$[$key$$]=$p$$.toObject()),underscore.isArray($p$$)&&($obj_created$$[$key$$]=$p$$.map($el$$=>
171
- $el$$?$el$$.toObject?$el$$.toObject():$el$$:$el$$)))});$ctrl$$.beforePost||($ctrl$$.beforePost=function($obj_created$$,$callback$$){$callback$$(null,null)});$ctrl$$.beforePost($obj_created$$,function($e$jscomp$3$$){if($e$jscomp$3$$)return $callback$jscomp$0$$($e$jscomp$3$$);deletePost($obj_created$$.user_updated,$obj_created$$,async function($e$jscomp$2$$){if($e$jscomp$2$$)return $callback$jscomp$0$$($e$jscomp$2$$);if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj_created$$)}catch($e$$){return $callback$jscomp$0$$($e$$.message||
172
- $e$$.error||$e$$)}setImmediate(()=>{if($obj_created$$.trang_thai||0==$obj_created$$.trang_thai)$obj_created$$.trang_thai=$obj_created$$.trang_thai.toString();trangthai.findOne({ma_ct:$obj_created$$.ma_ct.toUpperCase(),ma_trang_thai:$obj_created$$.trang_thai},function($e$jscomp$1$$,$trang_thai$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);if($trang_thai$$&&!$trang_thai$$.post)return $callback$jscomp$0$$();setImmediate(()=>{global.postingVouchers||(global.postingVouchers={});let $t_id_posting$$=
173
- "posting"+$obj_created$$._id.toString(),$t_id_error_posting$$="posting_error_"+$obj_created$$._id.toString();global.postingVouchers[$t_id_posting$$]?($obj_created$$.toObject&&($obj_created$$=$obj_created$$.toObject()),console.log("this voucher is posting by other process",JSON.stringify($obj_created$$)),$callback$jscomp$0$$()):(global.postingVouchers[$t_id_posting$$]=!0,global.postingVouchers[$t_id_error_posting$$]=void 0,$post$$($obj_created$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{$e$jscomp$0$$?
174
- (console.error("error post data. delete all data which posted and stop other posting",$obj_created$$._id,$e$jscomp$0$$),global.postingVouchers[$t_id_error_posting$$]=$e$jscomp$0$$,deletePost($obj_created$$.user_updated,$obj_created$$,async function($e_delete_post$$){$e_delete_post$$&&console.error("error delete post",$e_delete_post$$);if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj_created$$)}catch($e$$){console.error($e$$.message||$e$$.error||$e$$)}})):delete global.postingVouchers[$t_id_error_posting$$];
175
- delete global.postingVouchers[$t_id_posting$$];$callback$jscomp$0$$($e$jscomp$0$$,$rs$$)})}))})})})})})},pushNotification=controller.pushNotification=($ctrl$$,$_obj$$,$eventName$$="new",$old_obj$$=null,$justFireEvents$$=!1,$options$$={title:"",data:{}})=>{setImmediate(()=>{if($_obj$$.status){var $obj$jscomp$0$$=$_obj$$.toObject?$_obj$$.toObject():{...$_obj$$};$obj$jscomp$0$$._id=$obj$jscomp$0$$._id.toString();$options$$||($options$$={});var $exclude_token$$=$options$$.exclude_token,$trang_thai$$=
176
- ($obj$jscomp$0$$.trang_thai||(0==$obj$jscomp$0$$.progress?"0":$obj$jscomp$0$$.progress)||"").toString();$old_obj$$&&!$justFireEvents$$&&($old_obj$$.trang_thai||(0==$old_obj$$.progress?"0":$old_obj$$.progress)||"").toString()===$trang_thai$$&&($justFireEvents$$=!0);OptionsModel.findOne({id_app:$obj$jscomp$0$$.id_app,id_func:$ctrl$$.name},{option:1}).lean().exec(async($e$jscomp$0$$,$rs$$)=>{setImmediate(async()=>{if($rs$$&&$rs$$.option&&$rs$$.option.users_receive_notification)var $notifications_setting_users_receive_notification$$=
163
+ $obj$$.toObject());if(!$obj$$._id)return console.error("Error when delete post: obj does not have _id",$obj$$),$callback$jscomp$1$$("Error when delete post: obj does not have _id",$obj$$);async.parallel({delete_model_books_registed:$callback$jscomp$0$$=>{setImmediate(()=>{if(!global.model_books)return $callback$jscomp$0$$();async.map(global.model_books,($bookName$$,$callback$$)=>{setImmediate(()=>{let $book$$=mongoose.models[$bookName$$.toLowerCase()];$book$$?$book$$.deleteMany({id_ct:$obj$$._id.toString()},
164
+ $e$$=>{$callback$$($e$$)}):$callback$$()})},$e$$=>{$callback$jscomp$0$$($e$$)})})},sk:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokho,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},sktt:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokhott,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},skkhongton:$callback$jscomp$0$$=>
165
+ {setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokhokhongton,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},vsc:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("vsocai"))return $callback$$();vsocai.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},sc:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("socai"))return $callback$$();
166
+ Socai.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},vatra:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("vatra"))return $callback$$();Vatra.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},vatvao:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("vatvao"))return $callback$$();Vatvao.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},
167
+ tdttno:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("tdttno"))return $callback$$();Tdttno.deleteMany({id_ct:$obj$$._id.toString()},function($error$$,$rs$$){console.log("delete post","tdttno",$obj$$._id,$error$$,$rs$$);$callback$$($error$$)})})},tdttco:$callback$$=>{setImmediate(()=>{if(global.model_books&&0<=global.model_books.indexOf("tdttco"))return $callback$$();Tdttco.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},
168
+ tdttno_tt:$callback$jscomp$0$$=>{setImmediate(()=>{Tdttno_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$obj$$.tdttnos?async.map($obj$$.tdttnos,function($detail$$,$callback$$){setImmediate(()=>{Tdttno.findOneAndUpdate({_id:$detail$$.id_hd,so_hd:$detail$$.so_hd},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);$callback$$()})})})},function($e$$){console.error($e$$);
169
+ $callback$jscomp$0$$()}):$callback$jscomp$0$$()})})},tdttco_tt:$callback$jscomp$0$$=>{setImmediate(()=>{Tdttco_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$obj$$.tdttcos?async.map($obj$$.tdttcos,function($detail$$,$callback$$){setImmediate(()=>{Tdttco.findOneAndUpdate({_id:$detail$$.id_hd,so_hd:$detail$$.so_hd},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);
170
+ $callback$$()})})})},function($e$$){console.error($e$$);$callback$jscomp$0$$()}):$callback$jscomp$0$$()})})}},function($e$$){$callback$jscomp$1$$($e$$,$obj$$)})},runWebhooks=controller.runWebhooks=async($ctrl$$,$obj$$,$action$$,$voucher_options$$)=>{$voucher_options$$||($voucher_options$$=(await OptionsModel.findOne({id_app:$obj$$.id_app,id_func:$ctrl$$.name},{option:1}).lean()||{}).option);if($voucher_options$$&&$voucher_options$$.option_webhooks&&($ctrl$$=$voucher_options$$.option_webhooks.find($w$$=>
171
+ $w$$.action.toUpperCase()===$action$$.toUpperCase()&&$w$$.url))){$voucher_options$$=path.dirname(__dirname)+"/workers/webhook.js";if(!fs.existsSync($voucher_options$$))return console.error("webhook process is not exitst");global.webhookPool||(global.webhookPool=new StaticPool($voucher_options$$));global.webhookPool.exec({data:$obj$$,webhook_configs:$ctrl$$},$response$$=>{$response$$.error?console.error($response$$.error):console.log($response$$)})}},postData=controller.postData=function($obj$$,$ctrl$$,
172
+ $callback$jscomp$0$$){const $post$$=$ctrl$$.dynamicPost||$ctrl$$.post;if(!$post$$)return $callback$jscomp$0$$();let $obj_created$$=$obj$$.toObject?$obj$$.toObject():{...$obj$$};if(!$obj_created$$.ma_ct)return console.error("\u0110\u1ec3 post \u0111\u01b0\u1ee3c data, y\u00eau c\u1ea7u c\u1ea7n c\u00f3 field ma_ct",$obj_created$$),$callback$jscomp$0$$("\u0110\u1ec3 post \u0111\u01b0\u1ee3c data, \u0110\u1ed1i t\u01b0\u1ee3ng c\u1ea7n c\u00f3 d\u1eef li\u1ec7u ma_ct,trang_thai");Object.keys($obj_created$$).forEach($key$$=>
173
+ {let $p$$=$obj_created$$[$key$$];$p$$&&($p$$.toObject&&($obj_created$$[$key$$]=$p$$.toObject()),underscore.isArray($p$$)&&($obj_created$$[$key$$]=$p$$.map($el$$=>$el$$?$el$$.toObject?$el$$.toObject():$el$$:$el$$)))});$ctrl$$.beforePost||($ctrl$$.beforePost=function($obj_created$$,$callback$$){$callback$$(null,null)});$ctrl$$.beforePost($obj_created$$,function($e$jscomp$3$$){if($e$jscomp$3$$)return $callback$jscomp$0$$($e$jscomp$3$$);deletePost($obj_created$$.user_updated,$obj_created$$,async function($e$jscomp$2$$){if($e$jscomp$2$$)return $callback$jscomp$0$$($e$jscomp$2$$);
174
+ if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj_created$$)}catch($e$$){return $callback$jscomp$0$$($e$$.message||$e$$.error||$e$$)}setImmediate(()=>{if($obj_created$$.trang_thai||0==$obj_created$$.trang_thai)$obj_created$$.trang_thai=$obj_created$$.trang_thai.toString();trangthai.findOne({ma_ct:$obj_created$$.ma_ct.toUpperCase(),ma_trang_thai:$obj_created$$.trang_thai},function($e$jscomp$1$$,$trang_thai$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);if($trang_thai$$&&
175
+ !$trang_thai$$.post)return $callback$jscomp$0$$();setImmediate(()=>{$post$$($obj_created$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{$e$jscomp$0$$?(console.error("error post data",$obj_created$$._id,$e$jscomp$0$$),deletePost($obj_created$$.user_updated,$obj_created$$,async function($e_delete_post$$){if($e_delete_post$$)return console.error("error delete post",$e_delete_post$$),$callback$jscomp$0$$($e_delete_post$$);if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj_created$$)}catch($e$$){return console.error($e$$.message||
176
+ $e$$.error||$e$$),$callback$jscomp$0$$($e$$)}else $callback$jscomp$0$$($e$jscomp$0$$)})):$callback$jscomp$0$$(null,$rs$$)})})})})})})})},pushNotification=controller.pushNotification=($ctrl$$,$_obj$$,$eventName$$="new",$old_obj$$=null,$justFireEvents$$=!1,$options$$={title:"",data:{}})=>{setImmediate(()=>{if($_obj$$.status){var $obj$jscomp$0$$=$_obj$$.toObject?$_obj$$.toObject():{...$_obj$$};$obj$jscomp$0$$._id=$obj$jscomp$0$$._id.toString();$options$$||($options$$={});var $exclude_token$$=$options$$.exclude_token,
177
+ $trang_thai$$=($obj$jscomp$0$$.trang_thai||(0==$obj$jscomp$0$$.progress?"0":$obj$jscomp$0$$.progress)||"").toString();$old_obj$$&&!$justFireEvents$$&&($old_obj$$.trang_thai||(0==$old_obj$$.progress?"0":$old_obj$$.progress)||"").toString()===$trang_thai$$&&($justFireEvents$$=!0);OptionsModel.findOne({id_app:$obj$jscomp$0$$.id_app,id_func:$ctrl$$.name},{option:1}).lean().exec(async($e$jscomp$0$$,$rs$$)=>{setImmediate(async()=>{if($rs$$&&$rs$$.option&&$rs$$.option.users_receive_notification)var $notifications_setting_users_receive_notification$$=
177
178
  $rs$$.option.users_receive_notification;$notifications_setting_users_receive_notification$$&&0!==$notifications_setting_users_receive_notification$$.length||($notifications_setting_users_receive_notification$$=await Promise.all((($ctrl$$.options||{}).users_receive_notification_default||[]).map($n$$=>new Promise($resolve$$=>{setImmediate(async()=>{underscore.isFunction($n$$)?$resolve$$(await $n$$($obj$jscomp$0$$)):$resolve$$($n$$)})}))));$notifications_setting_users_receive_notification$$&&($notifications_setting_users_receive_notification$$=
178
179
  $notifications_setting_users_receive_notification$$.filter($u$$=>!$u$$.trang_thai||$u$$.trang_thai.toString()===$trang_thai$$||"delete"===$u$$.trang_thai.toString()),$notifications_setting_users_receive_notification$$=$notifications_setting_users_receive_notification$$.filter($func_string$jscomp$1_n$$=>{if(!$func_string$jscomp$1_n$$.condition)return!0;$func_string$jscomp$1_n$$=$func_string$jscomp$1_n$$.condition;0>$func_string$jscomp$1_n$$.indexOf("return ")&&($func_string$jscomp$1_n$$=`return ${$func_string$jscomp$1_n$$}`);
179
180
  try{return evalute($func_string$jscomp$1_n$$,{...$obj$jscomp$0$$,master:$obj$jscomp$0$$,data:$obj$jscomp$0$$})}catch($e$$){return console.error($e$$,$func_string$jscomp$1_n$$),!1}}),$notifications_setting_users_receive_notification$$.forEach(async $p$jscomp$0$$=>{setImmediate(async()=>{let $notificationData$$={_id:$obj$jscomp$0$$._id,trang_thai:$trang_thai$$,id_app:$obj$jscomp$0$$.id_app,code:$obj$jscomp$0$$.ma_ct||$ctrl$$.name,id_link:$obj$jscomp$0$$.id_link,code_link:$obj$jscomp$0$$.code_link,event:$eventName$$,
@@ -240,7 +241,7 @@ else $callback$$($msgError$$)}else checkReference($model$$,$obj$$,function($erro
240
241
  $keys$$)},function($obj$jscomp$1$$,$callback$$){$ctrl$$.validating||($ctrl$$.validating=($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)});$ctrl$$.validating($user$jscomp$0$$,$obj$jscomp$1$$,($error$$,$obj$jscomp$0$$)=>{if($error$$)return $callback$$($error$$);setImmediate(function(){$data$jscomp$1$$.date_updated=new Date;$data$jscomp$1$$.user_updated=$user$jscomp$0$$.email;delete $data$jscomp$1$$.__v;$ctrl$$.options.onUpdateExtending||($ctrl$$.options.onUpdateExtending=function($obj$$,$data$$,$action$$,
241
242
  $fn$$){$fn$$()});$ctrl$$.options.onUpdateExtending($obj$jscomp$0$$,$data$jscomp$1$$,$action$jscomp$0$$,function(){underscore.has($schema_paths$$,"exfields")&&$data$jscomp$1$$.exfields&&($obj$jscomp$0$$.exfields=$data$jscomp$1$$.exfields);for(let $f$$ in $data$jscomp$1$$)underscore.has($schema_paths$$,$f$$)&&($obj$jscomp$0$$.set($f$$,$data$jscomp$1$$[$f$$]),"exfields"!==$f$$||$obj$jscomp$0$$.exfields||($obj$jscomp$0$$.exfields={}));validate($obj$jscomp$0$$,function($msgError$$){setImmediate(()=>{if($msgError$$)if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,
242
243
  $obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)},$current_obj$$);else $callback$$($msgError$$);else $callback$$(null,$obj$jscomp$0$$)})})})})})},function($obj$$,$callback$$){setImmediate(async()=>{$obj$$.ngay_ct&&($obj$$.ngay_ct=moment($obj$$.ngay_ct).toDate());for(var $$condition_k$$ in $ctrl$$.keyValues)$obj$$[$$condition_k$$]=$ctrl$$.keyValues[$$condition_k$$];Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$$[$model_path$$]&&underscore.isArray($obj$$[$model_path$$])).forEach($model_path$$=>
243
- {$model$$.schema.paths[$model_path$$].schema&&$model$$.schema.paths[$model_path$$].schema.paths&&Object.keys($model$$.schema.paths[$model_path$$].schema.paths).filter($path$$=>"line"!==$path$$&&"_id"!==$path$$&&"__v"!==$path$$&&fields_sync_master_detail.indexOf($path$$)).forEach($path$$=>{$obj$$[$path$$]&&$obj$$[$model_path$$].filter($detail$$=>!$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$$[$path$$]})})});await createIdRef($model$$,$obj$$);$ctrl$$.saving&&await $ctrl$$.saving($user$jscomp$0$$,
244
+ {$model$$.schema.paths[$model_path$$].schema&&$model$$.schema.paths[$model_path$$].schema.paths&&Object.keys($model$$.schema.paths[$model_path$$].schema.paths).filter($path$$=>"line"!==$path$$&&"_id"!==$path$$&&"__v"!==$path$$&&0<=fields_sync_master_detail.indexOf($path$$)).forEach($path$$=>{$obj$$[$path$$]&&$obj$$[$model_path$$].filter($detail$$=>!$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$$[$path$$]})})});await createIdRef($model$$,$obj$$);$ctrl$$.saving&&await $ctrl$$.saving($user$jscomp$0$$,
244
245
  $obj$$);$ctrl$$.emit("saving",$obj$$);let $obj_created$$,$error$jscomp$0$$;$data$jscomp$1$$.$condition&&($$condition_k$$=$data$jscomp$1$$.$condition,$$condition_k$$._id=$obj$$._id,await $model$$.findOne($$condition_k$$)||($error$jscomp$0$$=ERR_CAN_NOT_UPDATE),delete $data$jscomp$1$$.$condition);if(!$error$jscomp$0$$)try{$obj_created$$=await $obj$$.save()}catch($e$$){$error$jscomp$0$$=$e$$}if($error$jscomp$0$$){let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);
245
246
  0==$msgErrors$$.length&&($msgErrors$$=$error$jscomp$0$$.message);$msgErrors$$||($msgErrors$$=JSON.stringify($error$jscomp$0$$));if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,$obj$$,$e$$=>{$e$$&&console.error("onErrorUpdating",$e$$);$callback$$({error:$msgErrors$$,code:ERR_CAN_NOT_UPDATE_CODE})},$current_obj$$);else $callback$$({error:$msgErrors$$,code:ERR_CAN_NOT_UPDATE_CODE})}else $req$$&&$req$$.header&&setImmediate(()=>{log.create({id_app:$user$jscomp$0$$.current_id_app,
246
247
  id_func:$ctrl$$.name,action:"UPDATE",data:{oldData:$current_obj$$,newData:$data$jscomp$1$$,id:$obj$$._id.toString()}},$user$jscomp$0$$.email,$req$$.header("user-agent"),$req$$)}),postData($obj_created$$,$ctrl$$,function($msgError$$){$msgError$$?setImmediate(()=>{$current_obj$$&&$model$$.findByIdAndUpdate($current_obj$$._id,{$set:$current_obj$$},function($err$$,$restore_data$$){if($err$$||!$restore_data$$)return console.error("can't restore voucher",$err$$||": don't find voucher");console.log("restored data of voucher. posting...");
@@ -256,15 +257,15 @@ $e$$})}update($req$$.user,$ctrl$$,$req$$.params.id,$data$$,($e$$,$rs$$)=>{setImm
256
257
  function checkReference($model$jscomp$0$$,$obj$$,$fn$$,$keys$$){$model$jscomp$0$$.referenceKeys?($keys$$||($keys$$=underscore.keys($model$jscomp$0$$.referenceKeys)),async.map($keys$$,function($key$$,$callback$$){setImmediate(()=>{let $ref$$=$model$jscomp$0$$.referenceKeys[$key$$];if(!$ref$$)return $callback$$();let $value$$=$obj$$[$key$$];"_id"===$key$$&&($value$$=$value$$.toString());if(void 0==$value$$||null==$value$$||""==$value$$)return $callback$$();async.map($ref$$,function($r$$,$cb$$){setImmediate(()=>
257
258
  {let $model$$=mongoose.models[$r$$.model];if($model$$){let $query$$={id_app:$obj$$.id_app};var $_w_k$$=$r$$.key;$_w_k$$&&($query$$[$_w_k$$]=$value$$);$r$$.where&&(underscore.isObject($r$$.where)&&($query$$=Object.assign($query$$,$r$$.where)),underscore.isFunction($r$$.where)&&($_w_k$$=$r$$.where($obj$$),$query$$=Object.assign($query$$,$_w_k$$)));$model$$.find($query$$).limit(1).lean().exec(function($error$$,$o$$){setImmediate(()=>{if($error$$)return $cb$$($error$$);if($o$$&&0<$o$$.length){let $msgError$$;
258
259
  $msgError$$=$r$$.error?(new Function("obj","return `"+$r$$.error.replace("{{VALUE}}",$value$$)+"`"))($obj$$):ERR_DATA_GENERATED;return $cb$$({error:$msgError$$,code:ERR_DATA_GENERATED_CODE})}$cb$$()})})}else $cb$$()})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$()})})},$error$$=>{$fn$$($error$$)})):$fn$$()}
259
- controller.prototype.delete=function(){let $model$$=this.model,$ctrl$$=this,$module$$=this.module,$codeSync$$=this.codeSync,$keySync$$=this.keySync;this.router.route(this.route_name+"/:id").delete(function($req$$,$res$$,$next$$){if(!global.mongoose.Types.ObjectId.isValid($req$$.params.id))return $res$$.status(400).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$model$$.findOne({_id:$req$$.params.id}).lean().exec(async function($e$jscomp$169_user$$,$obj$$){if($e$jscomp$169_user$$)return console.error($e$jscomp$169_user$$),
260
- $e$jscomp$169_user$$.error?$res$$.status(400).send($e$jscomp$169_user$$):$res$$.status(400).send({error:$e$jscomp$169_user$$.message||$e$jscomp$169_user$$.error||$e$jscomp$169_user$$});if(!$obj$$)return $res$$.status(404).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$e$jscomp$169_user$$=$req$$.user;if(0>global.configs.admins.indexOf($e$jscomp$169_user$$.email)){let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_.isFunction($requireOtp$$)&&($requireOtp$$=$requireOtp$$($obj$$,{action:"delete",
261
- _id:$req$$.params.id,user:$e$jscomp$169_user$$}));if($requireOtp$$)try{await permission.verifyOTP($e$jscomp$169_user$$.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$,code:ERR_VERIFY_OTP})}}setImmediate(()=>{permission.hasRight($obj$$.id_app,$req$$.user.email,$module$$,"delete",function($error$jscomp$0$$,$hr$$){if($hr$$)checkReference($model$$,$obj$$,function($error$$){if($error$$)return $res$$.status(400).send({error:ERR_ARISE+
262
- ($error$$.error||$error$$.message||$error$$),code:ERR_ARISE_CODE});$req$$.obj=$obj$$;$next$$()});else return $res$$.status(403).send({error:$error$jscomp$0$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})},{obj:$obj$$,notNeedRight:$ctrl$$.options.notNeedRight})})})},function($req$$,$res$$,$next$$){setImmediate(()=>{let $obj$jscomp$1$$=$req$$.obj;$ctrl$$.deleting?$ctrl$$.deleting($req$$.user,$obj$jscomp$1$$,function($e$$,$obj$jscomp$0$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):
263
- $res$$.status(400).send({error:$e$$.message||$e$$});$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$jscomp$0$$,function($error$$,$obj$$){if($error$$)return $next$$($error$$);$req$$.obj=$obj$$;$next$$()}):($req$$.obj=$obj$jscomp$0$$,$next$$())},{req:$req$$}):$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$jscomp$1$$,function($error$$,$obj$$){if($error$$)return $next$$($error$$);$req$$.obj=$obj$$;$next$$()}):($req$$.obj=$obj$jscomp$1$$,$next$$())})},function($req$$,
264
- $res$$){setImmediate(()=>{let $obj$jscomp$0$$=$req$$.obj;$ctrl$$.emit("deleting",{...$obj$jscomp$0$$});$model$$.deleteOne({_id:$obj$jscomp$0$$._id},function($e$jscomp$1$$){if($e$jscomp$1$$)return console.error($e$jscomp$1$$),$e$jscomp$1$$.error?$res$$.status(400).send($e$jscomp$1$$):$res$$.status(400).send({error:$e$jscomp$1$$.message||$e$jscomp$1$$});setImmediate(()=>{$ctrl$$.deleteData({...$obj$jscomp$0$$});log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"DELETE",data:{id:$obj$jscomp$0$$._id,
265
- data:$obj$jscomp$0$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$);link.deleteMany({$or:[{id_a:$obj$jscomp$0$$._id},{id_b:$obj$jscomp$0$$._id}]},function($e$$){$e$$&&console.error("Can't delete links\n"+$e$$)})});setImmediate(()=>{$ctrl$$.emit("deleted",$obj$jscomp$0$$);runWebhooks($ctrl$$,$obj$jscomp$0$$,"DELETE")});pushNotification($ctrl$$,$obj$jscomp$0$$,"delete",null,null,{exclude_token:$req$$.query.access_token});setImmediate(()=>{deletePost($req$$.user,$obj$jscomp$0$$,async $e$jscomp$0$$=>
266
- {if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj$jscomp$0$$)}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}setImmediate(()=>{$ctrl$$.deleted?$ctrl$$.deleted($req$$.user,$obj$jscomp$0$$,function($e$$,$obj$$){setImmediate(()=>{if($e$$)return console.error($e$$),
267
- $e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($obj$$)})}):$res$$.send($obj$jscomp$0$$)})},$codeSync$$,$keySync$$)})})})})};
260
+ controller.prototype.delete=function(){let $model$$=this.model,$ctrl$$=this,$module$$=this.module;this.router.route(this.route_name+"/:id").delete(function($req$$,$res$$,$next$$){if(!global.mongoose.Types.ObjectId.isValid($req$$.params.id))return $res$$.status(400).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$model$$.findOne({_id:$req$$.params.id}).lean().exec(async function($e$jscomp$169_user$$,$obj$$){if($e$jscomp$169_user$$)return console.error($e$jscomp$169_user$$),$e$jscomp$169_user$$.error?
261
+ $res$$.status(400).send($e$jscomp$169_user$$):$res$$.status(400).send({error:$e$jscomp$169_user$$.message||$e$jscomp$169_user$$.error||$e$jscomp$169_user$$});if(!$obj$$)return $res$$.status(404).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$e$jscomp$169_user$$=$req$$.user;if(0>global.configs.admins.indexOf($e$jscomp$169_user$$.email)){let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_.isFunction($requireOtp$$)&&($requireOtp$$=$requireOtp$$($obj$$,{action:"delete",_id:$req$$.params.id,
262
+ user:$e$jscomp$169_user$$}));if($requireOtp$$)try{await permission.verifyOTP($e$jscomp$169_user$$.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$,code:ERR_VERIFY_OTP})}}setImmediate(()=>{permission.hasRight($obj$$.id_app,$req$$.user.email,$module$$,"delete",function($error$jscomp$0$$,$hr$$){if($hr$$)checkReference($model$$,$obj$$,function($error$$){if($error$$)return $res$$.status(400).send({error:ERR_ARISE+($error$$.error||
263
+ $error$$.message||$error$$),code:ERR_ARISE_CODE});$req$$.obj=$obj$$;$next$$()});else return $res$$.status(403).send({error:$error$jscomp$0$$||ERR_NOT_PERMIT,code:ERR_NOT_PERMIT_CODE})},{obj:$obj$$,notNeedRight:$ctrl$$.options.notNeedRight})})})},function($req$$,$res$$,$next$$){setImmediate(()=>{let $obj$jscomp$1$$=$req$$.obj;$ctrl$$.deleting?$ctrl$$.deleting($req$$.user,$obj$jscomp$1$$,function($e$$,$obj$jscomp$0$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||
264
+ $e$$});$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$jscomp$0$$,function($error$$,$obj$$){if($error$$)return $next$$($error$$);$req$$.obj=$obj$$;$next$$()}):($req$$.obj=$obj$jscomp$0$$,$next$$())},{req:$req$$}):$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$jscomp$1$$,function($error$$,$obj$$){if($error$$)return $next$$($error$$);$req$$.obj=$obj$$;$next$$()}):($req$$.obj=$obj$jscomp$1$$,$next$$())})},function($req$$,$res$$){setImmediate(()=>{let $obj$jscomp$0$$=
265
+ $req$$.obj;$ctrl$$.emit("deleting post first",{...$obj$jscomp$0$$});deletePost($req$$.user,$obj$jscomp$0$$,async $e$jscomp$1$$=>{if($e$jscomp$1$$)return console.error($e$jscomp$1$$),$e$jscomp$1$$.error?$res$$.status(400).send($e$jscomp$1$$):$res$$.status(400).send({error:$e$jscomp$1$$.message||$e$jscomp$1$$});if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj$jscomp$0$$)}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}$model$$.deleteOne({_id:$obj$jscomp$0$$._id},
266
+ function($e$jscomp$0$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});setImmediate(()=>{$ctrl$$.deleteData({...$obj$jscomp$0$$});log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"DELETE",data:{id:$obj$jscomp$0$$._id,data:$obj$jscomp$0$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$);link.deleteMany({$or:[{id_a:$obj$jscomp$0$$._id},
267
+ {id_b:$obj$jscomp$0$$._id}]},function($e$$){$e$$&&console.error("Can't delete links\n"+$e$$)})});setImmediate(()=>{$ctrl$$.emit("deleted",$obj$jscomp$0$$);runWebhooks($ctrl$$,$obj$jscomp$0$$,"DELETE")});pushNotification($ctrl$$,$obj$jscomp$0$$,"delete",null,null,{exclude_token:$req$$.query.access_token});setImmediate(()=>{$ctrl$$.deleted?$ctrl$$.deleted($req$$.user,$obj$jscomp$0$$,function($e$$,$obj$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||
268
+ $e$$});$res$$.send($obj$$)})}):$res$$.send($obj$jscomp$0$$)})})})})})};
268
269
  controller.prototype.history=function(){let $name$$=this.name;this.router.route(this.route_name+"/g/history/:id").get(function($actions_req$$,$res$$){let $query$$={id_func:$name$$,id_app:$actions_req$$.user.current_id_app,"data.id":$actions_req$$.params.id};($actions_req$$=$actions_req$$.query.actions)?($actions_req$$=$actions_req$$.split(","),$query$$.action={$in:$actions_req$$,$ne:"GET"}):$query$$.action={$ne:"GET"};log.find($query$$).lean().exec(function($e$$,$rs$$){setImmediate(()=>$e$$?(console.error($e$$),
269
270
  $e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$})):$res$$.send($rs$$))})})};
270
271
  controller.prototype.logs=function(){let $ctrl$$=this,$name$$=this.name;this.router.route(this.route_name+"/g/log/:action").get(function($req$$,$res$$){var $action$jscomp$3_den_ngay$$=$req$$.params.action.toUpperCase();let $query$$={id_func:$name$$,id_app:$req$$.user.current_id_app};"ALL"!==$action$jscomp$3_den_ngay$$&&($query$$.action=$action$jscomp$3_den_ngay$$);if($req$$.query.tu_ngay){var $date_created_tu_ngay$$=moment(new Date($req$$.query.tu_ngay)).startOf("date").toDate();$date_created_tu_ngay$$=
package/server/global.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';const prototypes=require("./libs/prototypes.js"),async=require("async"),TransactionPool=require("./libs/BlockchainTransactionPool"),leanID=require("./libs/mongooseLeanId"),deletePost=require("./libs/mongooseDeletePost"),fs=require("fs");global.blockchainTransactionPool=new TransactionPool;global.new_schedules=[];global.rootDir=__dirname;global.ctrlVouchers={};global.controllers={};global.report_controllers={};global.postingVouchers={};global.cacheDatas={};global.clientIO={};
2
2
  global.model_books="socai sokho sokhott sokhokhongton sosanxuat vatvao vatra tdttno tdttco vsocai socaitmp".split(" ");global.webPush=require("web-push");global.mongoose=require("mongoose");global.mongoose.plugin(leanID);global.mongoose.plugin(deletePost);global.Schema=global.mongoose.Schema;global.mongoose.set("useFindAndModify",!1);global.mongoose.set("useCreateIndex",!0);
3
- global.getModel=$model_name$$=>{$model_name$$=$model_name$$.split(".js")[0];"kbmpttct"===$model_name$$&&($model_name$$="kbmPttct");"kbmtkgtgt"===$model_name$$&&($model_name$$="kbmTkgtgt");var $model_model_path$$=mongoose.models[$model_name$$];if($model_model_path$$)return $model_model_path$$;$model_model_path$$=(((global.configs||{}).paths||{}).models||"./models")+"/"+$model_name$$+".js";if(fs.existsSync($model_model_path$$))return require($model_model_path$$);$model_model_path$$=__dirname+"/models/"+
4
- $model_name$$+".js";if(fs.existsSync($model_model_path$$))return require($model_model_path$$);console.error("model",$model_name$$,"is not exists. using base model");return require("./models/base")};global.getLib=$lib_name$$=>require("./libs/"+$lib_name$$);
3
+ global.getModel=$model_name$$=>{$model_name$$=$model_name$$.split(".js")[0];"kbmpttct"===$model_name$$&&($model_name$$="kbmPttct");"kbmtkgtgt"===$model_name$$&&($model_name$$="kbmTkgtgt");"token"===$model_name$$&&($model_name$$="tokens");var $model_model_path$$=mongoose.models[$model_name$$];if($model_model_path$$)return $model_model_path$$;$model_model_path$$=(((global.configs||{}).paths||{}).models||"./models")+"/"+$model_name$$+".js";if(fs.existsSync($model_model_path$$))return require($model_model_path$$);
4
+ $model_model_path$$=__dirname+"/models/"+$model_name$$+".js";if(fs.existsSync($model_model_path$$))return require($model_model_path$$);console.error("model",$model_name$$,"is not exists. using base model");return require("./models/base")};global.getLib=$lib_name$$=>require("./libs/"+$lib_name$$);
5
5
  const pointSchema=new global.mongoose.Schema({type:{type:String,enum:["Point"],required:!0,default:"Point"},coordinates:{type:[Number],required:!0}}),polygonSchema=new global.mongoose.Schema({type:{type:String,enum:["Polygon"],required:!0,default:"Polygon"},coordinates:{type:[[[Number]]],required:!0}});global.customTypes={Point:pointSchema,Polygon:polygonSchema};const EventEmitter=require("events");class GlobalEmitter extends EventEmitter{}global.globalEvents=new GlobalEmitter;
6
6
  const Message=global.getModel("message"),Notification=global.getModel("notification"),User=global.getModel("user"),Sysconfig=global.getModel("sysconfig");global.getSysConfig=async $cf_code$$=>{if($cf_code$$=await Sysconfig.findOne({code:$cf_code$$}))return $cf_code$$.value};global.asyncCountUnRead=async $email$$=>new Promise($resolve$$=>{setImmediate(()=>{Message.countDocuments({email:$email$$,read:!1},($e$$,$rs$$)=>{$resolve$$($rs$$||0)})})});
7
7
  global.alertMessage=function($email$$){setImmediate(()=>{Message.countDocuments({email_owner:$email$$,email_receiver:$email$$,read:!1},function($error$$,$count$$){$error$$?console.log($error$$):User.emitEvent($email$$,"message:count",$count$$,!1)})})};