flexbiz-server 12.3.34 → 12.3.35

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 (104) hide show
  1. package/package.json +1 -1
  2. package/server/auths/google.js +1 -1
  3. package/server/auths/local.js +14 -14
  4. package/server/controllers/controller.js +5 -5
  5. package/server/controllers/controllerUtils.js +4 -4
  6. package/server/controllers/createHandler.js +27 -27
  7. package/server/controllers/exportHandler.js +17 -17
  8. package/server/controllers/findHandler.js +9 -9
  9. package/server/controllers/historyHandler.js +2 -2
  10. package/server/controllers/importHandler.js +4 -4
  11. package/server/controllers/logHandler.js +2 -2
  12. package/server/controllers/rptExcelHandler.js +5 -5
  13. package/server/controllers/updateFieldHandler.js +6 -6
  14. package/server/controllers/updateHandler.js +33 -32
  15. package/server/controllers/viewHandler.js +8 -7
  16. package/server/global.js +1 -1
  17. package/server/libs/cdpsdiem.js +3 -3
  18. package/server/libs/cdpsnphep.js +3 -3
  19. package/server/libs/ckcn.js +2 -2
  20. package/server/libs/ckdiem.js +2 -2
  21. package/server/libs/ckdt.js +4 -4
  22. package/server/libs/cknphep.js +4 -4
  23. package/server/libs/cktt.js +1 -1
  24. package/server/libs/ckvt.js +6 -6
  25. package/server/libs/ckvtcapphat.js +2 -2
  26. package/server/libs/ckvtnpp.js +3 -3
  27. package/server/libs/ckvttt.js +5 -5
  28. package/server/libs/createSocaitheongay.js +6 -6
  29. package/server/libs/ctdiem.js +2 -2
  30. package/server/libs/ctvt.js +1 -1
  31. package/server/libs/ctvtnpp.js +1 -1
  32. package/server/libs/ctvttt.js +1 -1
  33. package/server/libs/databanle.js +17 -17
  34. package/server/libs/databanlenpp.js +3 -3
  35. package/server/libs/dkcn.js +3 -3
  36. package/server/libs/dkdiem.js +3 -3
  37. package/server/libs/dkdt.js +2 -2
  38. package/server/libs/dknphep.js +6 -5
  39. package/server/libs/dktt.js +5 -5
  40. package/server/libs/dkvt.js +6 -6
  41. package/server/libs/dkvtnpp.js +3 -3
  42. package/server/libs/dkvttt.js +5 -5
  43. package/server/libs/dncn.js +2 -2
  44. package/server/libs/dntt.js +1 -1
  45. package/server/libs/dtbanletheosp.js +1 -1
  46. package/server/libs/dtbanletheospnpp.js +1 -1
  47. package/server/libs/email.js +1 -1
  48. package/server/libs/getGiaban.js +23 -23
  49. package/server/libs/initDatabase.js +4 -4
  50. package/server/libs/kpistatus.js +23 -24
  51. package/server/libs/mailmanagement.js +11 -11
  52. package/server/libs/permission.js +3 -3
  53. package/server/libs/phanbokh.js +2 -2
  54. package/server/libs/post-book.js +1 -1
  55. package/server/libs/post-socai.js +3 -3
  56. package/server/libs/post-sokho.js +2 -2
  57. package/server/libs/prototypes.js +1 -1
  58. package/server/libs/redis-cache.js +2 -2
  59. package/server/libs/schedule.js +9 -9
  60. package/server/libs/thnxt.js +2 -2
  61. package/server/libs/thnxtnpp.js +1 -1
  62. package/server/libs/thnxttt.js +1 -1
  63. package/server/libs/tinhGtCapnhatPNK.js +5 -5
  64. package/server/libs/tinhGtPhanboHeSo.js +11 -11
  65. package/server/libs/tinhGtPhanboSltp.js +9 -9
  66. package/server/libs/tinhGtPhanboYtcp.js +9 -10
  67. package/server/libs/tinhGtSltk.js +8 -8
  68. package/server/libs/tinhGtThcppstk.js +8 -8
  69. package/server/libs/tinhGtTrucTiep.js +6 -7
  70. package/server/libs/tinhgiatb.js +8 -8
  71. package/server/libs/tinhgiatb1vt.js +1 -1
  72. package/server/libs/tinhhoahong.js +5 -5
  73. package/server/libs/tinhhoahongnpp.js +8 -8
  74. package/server/libs/tinhkhauhao1ts.js +9 -9
  75. package/server/libs/tinhkhauhaots.js +6 -6
  76. package/server/libs/tuoinophaithu.js +6 -6
  77. package/server/libs/tuoinophaitra.js +6 -6
  78. package/server/libs/utils.js +1 -1
  79. package/server/libs/vsocai.js +5 -5
  80. package/server/models/app.js +4 -4
  81. package/server/models/approve.js +11 -11
  82. package/server/models/asskey.js +2 -2
  83. package/server/models/campaign.js +3 -3
  84. package/server/models/chudethaoluan.js +1 -1
  85. package/server/models/comment.js +2 -2
  86. package/server/models/consultant.js +1 -1
  87. package/server/models/currency.js +1 -1
  88. package/server/models/customer.js +2 -2
  89. package/server/models/department.js +1 -1
  90. package/server/models/dmbp.js +4 -5
  91. package/server/models/dmnv.js +1 -1
  92. package/server/models/follow.js +1 -1
  93. package/server/models/group.js +1 -1
  94. package/server/models/momo.js +1 -1
  95. package/server/models/onepay.js +1 -1
  96. package/server/models/options.js +1 -1
  97. package/server/models/participant.js +3 -3
  98. package/server/models/ptthanhtoan.js +1 -1
  99. package/server/models/right.js +1 -1
  100. package/server/models/service.js +1 -1
  101. package/server/models/user.js +2 -2
  102. package/server/models/usergroup.js +2 -2
  103. package/server/modules/systems/sys-user.js +2 -2
  104. package/server/route.js +17 -17
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.3.34",
5
+ "version": "12.3.35",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -2,7 +2,7 @@
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.findById($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
- 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$$,
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().then($rs$$=>{$rs$$?$resolve$$($rs$$):$resolve$$(null)}).catch($e$$=>{$reject$$(Error($e$$.message))})})}async function $createUser$$($accessToken$$,
6
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
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$$);if($user$$){if(0==$user$$.status)return $done$$("T\u00e0i kho\u1ea3n n\u00e0y kh\u00f4ng c\u00f2n hi\u1ec7u l\u1ef1c");console.log("update user....");$user$$.google.name=$profile$$.displayName;$profile$$._json&&($user$$.google.picture=$profile$$._json.image.url);
8
8
  $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$$,$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$$=
@@ -44,20 +44,20 @@ $active_group_query_group$$._id.toString();$active_group_query_group$$=$active_g
44
44
  active:!1});let $cust$$={ten_kh:$session$jscomp$1_user$$.name||$session$jscomp$1_user$$.email,email:$session$jscomp$1_user$$.email,id_app:$id_app$$,user_created:$session$jscomp$1_user$$.email,user_updated:$session$jscomp$1_user$$.email,kh_yn:!0,of_user:$session$jscomp$1_user$$.email};utils.isMobilePhone($session$jscomp$1_user$$.email,["vi-VN"])&&($cust$$.dien_thoai=$session$jscomp$1_user$$.email);try{await Customer.asyncCreateCustomer($cust$$)}catch($e$$){console.error("Auto create new customer with error:",
45
45
  $e$$.message)}}catch($e$$){return console.error("can't add user",$session$jscomp$1_user$$.email,"to company",$app$$.name),$res$$.status(500).send($e$$)}}}const $accessToken$$=generateToken($session$jscomp$1_user$$);var $p$jscomp$3_session_created$$=($req$$.cookies||{}).uid;$p$jscomp$3_session_created$$&&User.updateOne({email:$session$jscomp$1_user$$.email,session_created:null},{session_created:$p$jscomp$3_session_created$$});(new Token({email:$session$jscomp$1_user$$.email,session_created:$p$jscomp$3_session_created$$,
46
46
  id_apps:$session$jscomp$1_user$$.token_id_apps,only_id_app:$session$jscomp$1_user$$.token_id_app,token:$accessToken$$,agent:$agent$$,ip:"",once:1==$req$$.query.once||"true"==$req$$.query.once||"1"===$req$$.query.once?!0:!1})).save(function($e$$,$rs$$){if($e$$)return $res$$.status(500).send($e$$);$res$$.send({token:$accessToken$$,once:$rs$$.once})})});$app$jscomp$0$$.get("/check-user/:email",$rateLimiter$$,function($req$$,$res$$){const $email$$=$req$$.params.email;User.findOne({$or:[{email:$email$$},
47
- {"local.phone":$email$$}]},{email:1,name:1,picture:1}).lean().exec(function($e$$,$user$$){if($e$$||!$user$$)return $res$$.status(400).send($e$$||`T\u00e0i kho\u1ea3n ${$email$$} kh\u00f4ng t\u1ed3n t\u1ea1i`);$res$$.send($user$$)})});$app$jscomp$0$$.post("/signup",$rateLimiter$$,async($req$$,$res$$)=>{let $body$$=$req$$.body;$body$$.json&&($body$$=JSON.parse($body$$.json));if(!$body$$)return $res$$.status(400).send({error:"Kh\u00f4ng c\u00f3 n\u1ed9i dung"});if($body$$.id_app&&!global.mongoose.Types.ObjectId.isValid($body$$.id_app))return $res$$.status(400).send("id_app kh\u00f4ng h\u1ee3p l\u1ec7");
48
- if(configs.GOOGLE_RECAPTCHA_SECRET_KEY){var $app$$=$body$$["g-recaptcha-response"]||$req$$.query["g-recaptcha-response"];if(!$app$$)return $res$$.status(400).send("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u m\u1ed9t google recaptcha token");try{await permission.verifyReCaptcha($app$$)}catch($e$$){return $res$$.status(400).send($e$$.message||$e$$.error||$e$$)}}let $session_created$$=($req$$.cookies||{}).uid;if($session_created$$&&$body$$.id_app){$app$$=await App.findById($body$$.id_app);if(!$app$$)return $res$$.status(400).send({error:"C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i"});
49
- if($app$$.options&&$app$$.options.one_account_per_device&&await Participant.findOne({session_created:$session_created$$,id_app:$body$$.id_app}).lean())return $res$$.status(400).send({error:"M\u1ed7i thi\u1ebft b\u1ecb ch\u1ec9 \u0111\u01b0\u1ee3c t\u1ea1o m\u1ed9t t\u00e0i kho\u1ea3n"})}if(!$body$$.email)return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n"});$body$$.email=$body$$.email.trim().toLowerCase();if(!validator.isEmail($body$$.email)&&!utils.isMobilePhone($body$$.email,
50
- ["vi-VN"]))return $res$$.status(400).send({error:"T\u00e0i kho\u1ea3n \u0111\u0103ng nh\u1eadp ph\u1ea3i l\u00e0 1 \u0111\u1ecba ch\u1ec9 email ho\u1eb7c 1 s\u1ed1 \u0111i\u1ec7n tho\u1ea1i di \u0111\u1ed9ng"});if(!$body$$.name)return $res$$.status(400).send({error:"H\u1ecd v\u00e0 t\u00ean ch\u01b0a nh\u1eadp"});if($body$$.introduce_code&&$body$$.id_app&&!await global.getModel("introducecode").findOne({id_app:$body$$.id_app,status:!0,introduce_code:$body$$.introduce_code}).lean())return $res$$.status(400).send({error:"M\u00e3 gi\u1edbi thi\u1ec7u kh\u00f4ng h\u1ee3p l\u1ec7"});
51
- User.findOne({$or:[{email:$body$$.email},{"local.phone":$body$$.email}]},async function($error$jscomp$1$$,$result$$){if($error$jscomp$1$$)return $res$$.status(400).send($error$jscomp$1$$);if($result$$)if(!$result$$.local||configs.require_verify&&!$result$$.local.active||$result$$.local.email!=$body$$.email)$result$$.local||($result$$.local={});else if($body$$.id_app)try{if(await global.getModel("participant").findOne({id_app:$body$$.id_app,email:$body$$.email}))return $res$$.status(400).send({error:"T\u00e0i kho\u1ea3n n\u00e0y \u0111\u00e3 t\u1ed3n t\u1ea1i"});
52
- await addUserToApp($result$$,$body$$,$session_created$$);return $res$$.send("T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd th\u00e0nh c\u00f4ng")}catch($e$$){return await global.getModel("participant").deleteOne({id_app:$body$$.id_app,email:$body$$.email}),$res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$})}else return $res$$.status(400).send({error:"T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd"});
53
- else $result$$=new User,$result$$.email=$body$$.email,$result$$.local={};$result$$.local.email=$body$$.email;$result$$.local.name=$body$$.name;$result$$.local.active=!configs.require_verify;$result$$.partner=$body$$.partner;$result$$.session_created=$session_created$$;$body$$.email2&&validator.isEmail($body$$.email2)&&($result$$.email2=$body$$.email2);$result$$.name=$result$$.local.name;$body$$.picture?$result$$.local.picture=$body$$.picture:$result$$.local.picture||($result$$.local.picture="/images/avatar.jpg");
54
- let $password$$;if($body$$.password){if($body$$.rePassword!==$body$$.password)return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c"});if(!User.teststrengthPassword($body$$.password))return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u ph\u1ea3i c\u00f3 \u00edt nh\u1ea5t 6 k\u00fd t\u1ef1 v\u00e0 bao g\u1ed3m \u00edt nh\u1ea5t m\u1ed9t ch\u1eef s\u1ed1, m\u1ed9t ch\u1eef hoa v\u00e0 m\u1ed9t ch\u1eef th\u01b0\u1eddng"});$password$$=$body$$.password}else $password$$=
55
- _crypto.createHash("md5").update($result$$.email+(new Date).toISOString()).digest("hex");$result$$.local.password=$result$$.generateHash($result$$.email+$password$$);$result$$.save(async function($app$jscomp$5_error$$,$newUser$$){if($app$jscomp$5_error$$)return $res$$.status(400).send({error:"Kh\u00f4ng th\u1ec3 \u0111\u0103ng k\u00fd"});log.create({id_app:"SIGNUP",id_func:"SIGNUP",action:"SIGNUP"},$result$$.email,$req$$.header("user-agent"),$req$$);if($body$$.cty_name){$app$jscomp$5_error$$=new App;
56
- $app$jscomp$5_error$$.user_created=$result$$.email;$app$jscomp$5_error$$.user_updated=$result$$.email;$app$jscomp$5_error$$.name=$body$$.cty_name;var $d$jscomp$1_now$$=new Date;$app$jscomp$5_error$$.ngay_dn=new Date($d$jscomp$1_now$$.getFullYear(),0,1);$app$jscomp$5_error$$.ngay_ks=new Date($d$jscomp$1_now$$.getFullYear()-1,12,0);$app$jscomp$5_error$$.nam_bd=$d$jscomp$1_now$$.getFullYear();$app$jscomp$5_error$$.ngay_ky1=new Date($d$jscomp$1_now$$.getFullYear(),0,1);$d$jscomp$1_now$$=new Date;$d$jscomp$1_now$$.setMonth($d$jscomp$1_now$$.getMonth()+
57
- 3);$app$jscomp$5_error$$.expire_date=new Date($d$jscomp$1_now$$);$app$jscomp$5_error$$.save(function($error$jscomp$0$$,$obj$$){if($error$jscomp$0$$)return console.log("Khong tao duoc new app: "+$error$jscomp$0$$);require("../libs/initDatabase").init($obj$$._id,function($error$$){$error$$&&console.log("Can't init database \n"+$error$$)})})}try{await addUserToApp($newUser$$,$body$$,$session_created$$)}catch($e$$){return await global.getModel("participant").deleteOne({id_app:$body$$.id_app,email:$body$$.email}),
58
- await User.deleteOne({email:$body$$.email}),$res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$})}let $accessToken$$;if($newUser$$.local.active)try{$accessToken$$=generateToken($newUser$$),await (new Token({email:$newUser$$.email,session_created:($req$$.cookies||{}).uid,token:$accessToken$$,agent:$req$$.headers["user-agent"],ip:"",once:1==$req$$.query.once||"true"==$req$$.query.once||"1"===$req$$.query.once?!0:!1})).save()}catch($e$$){console.error("can't gen new token for new user:"+$newUser$$.email,
59
- $e$$)}validator.isEmail($body$$.email)&&!$body$$.password?(loadTemplate("thong tin dang nhap.html",{email:$result$$.email,password:$password$$,receiver_name:$body$$.name},function($error$jscomp$0$$,$html$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$);email.sendHtml({to:{name:$result$$.name,address:$result$$.email},subject:"Th\u00f4ng tin t\u00e0i kho\u1ea3n",html:$html$$},function($error$$){$error$$&&console.error("Khong the gui email thon tin tai khoan cho nguoi dung\n"+$error$$)})}),
60
- $res$$.send({msg:"T\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o. Ki\u1ec3m tra email \u0111\u1ec3 l\u1ea5y th\u00f4ng tin \u0111\u0103ng nh\u1eadp",token:$accessToken$$,active:$newUser$$.local.active})):$res$$.send({msg:"T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o",token:$accessToken$$,active:$newUser$$.local.active})})})});$app$jscomp$0$$.get("/resetpassword",$rateLimiter$$,async($req$$,$res$$)=>{if(configs.GOOGLE_RECAPTCHA_SECRET_KEY)try{await permission.verifyReCaptcha($req$$.query["g-recaptcha-response"])}catch($e$$){return $res$$.status(400).send($e$$.message||
47
+ {"local.phone":$email$$}]},{email:1,name:1,picture:1}).lean().then(function($user$$){if(!$user$$)return $res$$.status(400).send(`T\u00e0i kho\u1ea3n ${$email$$} kh\u00f4ng t\u1ed3n t\u1ea1i`);$res$$.send($user$$)}).catch($e$$=>{$res$$.status(400).send($e$$)})});$app$jscomp$0$$.post("/signup",$rateLimiter$$,async($req$$,$res$$)=>{let $body$$=$req$$.body;$body$$.json&&($body$$=JSON.parse($body$$.json));if(!$body$$)return $res$$.status(400).send({error:"Kh\u00f4ng c\u00f3 n\u1ed9i dung"});if($body$$.id_app&&
48
+ !global.mongoose.Types.ObjectId.isValid($body$$.id_app))return $res$$.status(400).send("id_app kh\u00f4ng h\u1ee3p l\u1ec7");if(configs.GOOGLE_RECAPTCHA_SECRET_KEY){var $app$$=$body$$["g-recaptcha-response"]||$req$$.query["g-recaptcha-response"];if(!$app$$)return $res$$.status(400).send("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u m\u1ed9t google recaptcha token");try{await permission.verifyReCaptcha($app$$)}catch($e$$){return $res$$.status(400).send($e$$.message||$e$$.error||$e$$)}}let $session_created$$=
49
+ ($req$$.cookies||{}).uid;if($session_created$$&&$body$$.id_app){$app$$=await App.findById($body$$.id_app);if(!$app$$)return $res$$.status(400).send({error:"C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i"});if($app$$.options&&$app$$.options.one_account_per_device&&await Participant.findOne({session_created:$session_created$$,id_app:$body$$.id_app}).lean())return $res$$.status(400).send({error:"M\u1ed7i thi\u1ebft b\u1ecb ch\u1ec9 \u0111\u01b0\u1ee3c t\u1ea1o m\u1ed9t t\u00e0i kho\u1ea3n"})}if(!$body$$.email)return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n"});
50
+ $body$$.email=$body$$.email.trim().toLowerCase();if(!validator.isEmail($body$$.email)&&!utils.isMobilePhone($body$$.email,["vi-VN"]))return $res$$.status(400).send({error:"T\u00e0i kho\u1ea3n \u0111\u0103ng nh\u1eadp ph\u1ea3i l\u00e0 1 \u0111\u1ecba ch\u1ec9 email ho\u1eb7c 1 s\u1ed1 \u0111i\u1ec7n tho\u1ea1i di \u0111\u1ed9ng"});if(!$body$$.name)return $res$$.status(400).send({error:"H\u1ecd v\u00e0 t\u00ean ch\u01b0a nh\u1eadp"});if($body$$.introduce_code&&$body$$.id_app&&!await global.getModel("introducecode").findOne({id_app:$body$$.id_app,
51
+ status:!0,introduce_code:$body$$.introduce_code}).lean())return $res$$.status(400).send({error:"M\u00e3 gi\u1edbi thi\u1ec7u kh\u00f4ng h\u1ee3p l\u1ec7"});User.findOne({$or:[{email:$body$$.email},{"local.phone":$body$$.email}]},async function($error$jscomp$1$$,$result$$){if($error$jscomp$1$$)return $res$$.status(400).send($error$jscomp$1$$);if($result$$)if(!$result$$.local||configs.require_verify&&!$result$$.local.active||$result$$.local.email!=$body$$.email)$result$$.local||($result$$.local={});
52
+ else if($body$$.id_app)try{if(await global.getModel("participant").findOne({id_app:$body$$.id_app,email:$body$$.email}))return $res$$.status(400).send({error:"T\u00e0i kho\u1ea3n n\u00e0y \u0111\u00e3 t\u1ed3n t\u1ea1i"});await addUserToApp($result$$,$body$$,$session_created$$);return $res$$.send("T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd th\u00e0nh c\u00f4ng")}catch($e$$){return await global.getModel("participant").deleteOne({id_app:$body$$.id_app,
53
+ email:$body$$.email}),$res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$})}else return $res$$.status(400).send({error:"T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd"});else $result$$=new User,$result$$.email=$body$$.email,$result$$.local={};$result$$.local.email=$body$$.email;$result$$.local.name=$body$$.name;$result$$.local.active=!configs.require_verify;$result$$.partner=$body$$.partner;$result$$.session_created=$session_created$$;$body$$.email2&&
54
+ validator.isEmail($body$$.email2)&&($result$$.email2=$body$$.email2);$result$$.name=$result$$.local.name;$body$$.picture?$result$$.local.picture=$body$$.picture:$result$$.local.picture||($result$$.local.picture="/images/avatar.jpg");let $password$$;if($body$$.password){if($body$$.rePassword!==$body$$.password)return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c"});if(!User.teststrengthPassword($body$$.password))return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u ph\u1ea3i c\u00f3 \u00edt nh\u1ea5t 6 k\u00fd t\u1ef1 v\u00e0 bao g\u1ed3m \u00edt nh\u1ea5t m\u1ed9t ch\u1eef s\u1ed1, m\u1ed9t ch\u1eef hoa v\u00e0 m\u1ed9t ch\u1eef th\u01b0\u1eddng"});
55
+ $password$$=$body$$.password}else $password$$=_crypto.createHash("md5").update($result$$.email+(new Date).toISOString()).digest("hex");$result$$.local.password=$result$$.generateHash($result$$.email+$password$$);$result$$.save(async function($app$jscomp$5_error$$,$newUser$$){if($app$jscomp$5_error$$)return $res$$.status(400).send({error:"Kh\u00f4ng th\u1ec3 \u0111\u0103ng k\u00fd"});log.create({id_app:"SIGNUP",id_func:"SIGNUP",action:"SIGNUP"},$result$$.email,$req$$.header("user-agent"),$req$$);if($body$$.cty_name){$app$jscomp$5_error$$=
56
+ new App;$app$jscomp$5_error$$.user_created=$result$$.email;$app$jscomp$5_error$$.user_updated=$result$$.email;$app$jscomp$5_error$$.name=$body$$.cty_name;var $d$jscomp$1_now$$=new Date;$app$jscomp$5_error$$.ngay_dn=new Date($d$jscomp$1_now$$.getFullYear(),0,1);$app$jscomp$5_error$$.ngay_ks=new Date($d$jscomp$1_now$$.getFullYear()-1,12,0);$app$jscomp$5_error$$.nam_bd=$d$jscomp$1_now$$.getFullYear();$app$jscomp$5_error$$.ngay_ky1=new Date($d$jscomp$1_now$$.getFullYear(),0,1);$d$jscomp$1_now$$=new Date;
57
+ $d$jscomp$1_now$$.setMonth($d$jscomp$1_now$$.getMonth()+3);$app$jscomp$5_error$$.expire_date=new Date($d$jscomp$1_now$$);$app$jscomp$5_error$$.save(function($error$jscomp$0$$,$obj$$){if($error$jscomp$0$$)return console.log("Khong tao duoc new app: "+$error$jscomp$0$$);require("../libs/initDatabase").init($obj$$._id,function($error$$){$error$$&&console.log("Can't init database \n"+$error$$)})})}try{await addUserToApp($newUser$$,$body$$,$session_created$$)}catch($e$$){return await global.getModel("participant").deleteOne({id_app:$body$$.id_app,
58
+ email:$body$$.email}),await User.deleteOne({email:$body$$.email}),$res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$})}let $accessToken$$;if($newUser$$.local.active)try{$accessToken$$=generateToken($newUser$$),await (new Token({email:$newUser$$.email,session_created:($req$$.cookies||{}).uid,token:$accessToken$$,agent:$req$$.headers["user-agent"],ip:"",once:1==$req$$.query.once||"true"==$req$$.query.once||"1"===$req$$.query.once?!0:!1})).save()}catch($e$$){console.error("can't gen new token for new user:"+
59
+ $newUser$$.email,$e$$)}validator.isEmail($body$$.email)&&!$body$$.password?(loadTemplate("thong tin dang nhap.html",{email:$result$$.email,password:$password$$,receiver_name:$body$$.name},function($error$jscomp$0$$,$html$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$);email.sendHtml({to:{name:$result$$.name,address:$result$$.email},subject:"Th\u00f4ng tin t\u00e0i kho\u1ea3n",html:$html$$},function($error$$){$error$$&&console.error("Khong the gui email thon tin tai khoan cho nguoi dung\n"+
60
+ $error$$)})}),$res$$.send({msg:"T\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o. Ki\u1ec3m tra email \u0111\u1ec3 l\u1ea5y th\u00f4ng tin \u0111\u0103ng nh\u1eadp",token:$accessToken$$,active:$newUser$$.local.active})):$res$$.send({msg:"T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o",token:$accessToken$$,active:$newUser$$.local.active})})})});$app$jscomp$0$$.get("/resetpassword",$rateLimiter$$,async($req$$,$res$$)=>{if(configs.GOOGLE_RECAPTCHA_SECRET_KEY)try{await permission.verifyReCaptcha($req$$.query["g-recaptcha-response"])}catch($e$$){return $res$$.status(400).send($e$$.message||
61
61
  $e$$.error||$e$$)}let $address$$=$req$$.query.email;if(!$address$$)return $res$$.status(400).send("Y\u00eau c\u1ea7u m\u1ed9t \u0111\u1ecba ch\u1ec9 email ho\u1eb7c s\u1ed1 \u0111i\u1ec7n tho\u1ea1i");$address$$=$address$$.toLowerCase();User.findOne({$or:[{"local.email":$address$$},{email:$address$$},{email2:$address$$}]},function($error$jscomp$2$$,$result$$){if($error$jscomp$2$$)return $res$$.status(400).send($error$jscomp$2$$);if(!$result$$)return $res$$.status(400).send(`T\u00e0i kho\u1ea3n ${$address$$} ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd`);
62
62
  let $newpassword$$=_crypto.createHash("md5").update((new Date).toISOString()).digest("hex");$result$$.local.rspassword=$result$$.generateHash($result$$.email+$newpassword$$);$result$$.save(function($error$jscomp$1$$){if($error$jscomp$1$$)return $res$$.status(400).send($error$jscomp$1$$);loadTemplate("reset mat khau.html",{receiver_name:$result$$.name,email:$result$$.email,password:$newpassword$$},function($error$jscomp$0$$,$html$$){if($error$jscomp$0$$)return $res$$.status(400).send($error$jscomp$0$$);
63
63
  $result$$.email&&validator.isEmail($result$$.email)&&email.sendHtml({to:{name:$result$$.name,address:$result$$.email},subject:"\u0110\u1ed5i m\u1eadt kh\u1ea9u",html:$html$$},function($error$$){$error$$?console.error("Khong the gui thong tin tai khoan cho nguoi su dung\n"+$error$$):console.log("send new password to",$result$$.email)});$result$$.email2&&validator.isEmail($result$$.email2)&&email.sendHtml({to:{name:$result$$.name,address:$result$$.email2},subject:"\u0110\u1ed5i m\u1eadt kh\u1ea9u",
@@ -42,11 +42,11 @@ this.router.route($_route_name_route_name$$+"/excel").post($findRoute$$))};
42
42
  controller.prototype.get=function($route_name$$,$shareRoute$$=!1){const $ctrl$$=this;this.router.route(`${$route_name$$||this.route_name}/:id`).get(async function($req$$,$res$$){var $body$$=$req$$.params.id;if(!global.mongoose.Types.ObjectId.isValid($body$$))return $res$$.status(404).send({error:ERRORS.ERR_ID_INVALID,code:ERRORS.ERR_ID_INVALID_CODE});$body$$={_id:$body$$};const $user_agent$$=$req$$.header("user-agent"),$ip$$=$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,
43
43
  {query:$query$$,user:$user$$,params:$params$$,headers:$headers$$}=$req$$;try{handlers.findHandler($ctrl$$,{query:$query$$,body:$body$$,user:$user$$,params:$params$$,headers:$headers$$,user_agent:$user_agent$$,ip:$ip$$,shareRoute:$shareRoute$$,originalUrl:$req$$.originalUrl},($e$jscomp$16_result$$,$returnvalue$$)=>{if($e$jscomp$16_result$$)return $res$$.status(400).send($e$jscomp$16_result$$);({result:$e$jscomp$16_result$$}=$returnvalue$$);if(0==$e$jscomp$16_result$$.length)return $res$$.status(404).send({error:ERRORS.ERR_NOT_FOUND,
44
44
  code:ERRORS.ERR_NOT_FOUND_CODE});$res$$.send($e$jscomp$16_result$$[0])})}catch($e$$){console.error($e$$),$res$$.status(400).send($e$$)}})};
45
- controller.prototype.postAgainHandler=function($user$$,$condition$$,$callback$jscomp$0$$,$options$$={req:null}){let $model$$=this.model,$ctrl$$=this;if(!$ctrl$$.post)return $callback$jscomp$0$$(null,{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n xong"});const $update_tk_vt$$=$condition$$.update_tk_vt;delete $condition$$.update_tk_vt;const $user_update$$={date_updated:new Date,user_updated:$user$$.email};$model$$.find($condition$$).sort({ngay_ct:1}).lean().exec(function($e$jscomp$0$$,
46
- $objsrepost$$){console.log("[postagain] start repost",$condition$$,$objsrepost$$.length," vouchers","by",$user$$.email);setImmediate(()=>{if($e$jscomp$0$$)return console.error("postAgain: find",$e$jscomp$0$$),$callback$jscomp$0$$({error:$e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$});async.map($objsrepost$$,function($obj$$,$callback$$){setImmediate(async()=>{console.log("postAgain: handle data before post",$obj$$.ma_ct,$obj$$.so_ct,$obj$$.ngay_ct,"by",$user$$.email);if($ctrl$$.reposting)try{await $ctrl$$.reposting($user$$,
47
- $obj$$)}catch($e$$){return $callback$$({error:"Kh\u00f4ng th\u1ec3 x\u1eed l\u00fd \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u tr\u01b0\u1edbc khi repost ch\u1ee9ng t\u1eeb:"+$obj$$.so_ct+", L\u1ed7i: "+($e$$.message||$e$$.error||"")})}$update_tk_vt$$&&$obj$$.details&&(console.log("postAgain: update tk_vt..."),await $obj$$.details.filter($d$$=>$d$$.ma_vt).asyncJoinModel2($obj$$.id_app,global.getModel("dmvt"),{where:"ma_vt",fields:"tk_vt"}),$user_update$$.details=$obj$$.details);try{console.log("postAgain: update voucher..."),
48
- await $model$$.updateOne({_id:$obj$$._id},{...$user_update$$})}catch($e$$){return console.error("postAgain: error update data before repost",$e$$),$callback$$({error:"Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u ch\u1ee9ng t\u1eeb "+$obj$$.so_ct+",Error:"+$e$$.message||$e$$.error||""})}console.log("postAgain: posting...");postData($obj$$,$ctrl$$,function($e$$,$rs$$){console.log("postAgain: reported",$obj$$.ma_ct,$obj$$.so_ct,$obj$$.ngay_ct,"by",$user$$.email);if($e$$)return $callback$$({error:$e$$.message||
49
- $e$$.error||"Kh\u00f4ng th\u1ec3 post s\u1ed5 s\u00e1ch ch\u1ee9ng t\u1eeb:"+$obj$$.so_ct});$callback$$(null,$rs$$)},{req:$options$$.req,kiem_tra_han_muc_cong_no:!1})})},function($e$$){if($e$$)return console.error("postAgain: Error",$e$$),$callback$jscomp$0$$({error:$e$$.message||$e$$.error||$e$$});console.log("postAgain: finished",$condition$$,$objsrepost$$.length," vouchers","by",$user$$.email);$callback$jscomp$0$$(null,{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n xong"})})})})};
45
+ controller.prototype.postAgainHandler=function($user$$,$condition$$,$callback$jscomp$0$$,$options$$={req:null}){let $model$$=this.model,$ctrl$$=this;if(!$ctrl$$.post)return $callback$jscomp$0$$(null,{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n xong"});const $update_tk_vt$$=$condition$$.update_tk_vt;delete $condition$$.update_tk_vt;const $user_update$$={date_updated:new Date,user_updated:$user$$.email};$model$$.find($condition$$).sort({ngay_ct:1}).lean().then(function($objsrepost$$){console.log("[postagain] start repost",
46
+ $condition$$,$objsrepost$$.length," vouchers","by",$user$$.email);setImmediate(()=>{async.map($objsrepost$$,function($obj$$,$callback$$){setImmediate(async()=>{console.log("postAgain: handle data before post",$obj$$.ma_ct,$obj$$.so_ct,$obj$$.ngay_ct,"by",$user$$.email);if($ctrl$$.reposting)try{await $ctrl$$.reposting($user$$,$obj$$)}catch($e$$){return $callback$$({error:"Kh\u00f4ng th\u1ec3 x\u1eed l\u00fd \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u tr\u01b0\u1edbc khi repost ch\u1ee9ng t\u1eeb:"+$obj$$.so_ct+
47
+ ", L\u1ed7i: "+($e$$.message||$e$$.error||"")})}$update_tk_vt$$&&$obj$$.details&&(console.log("postAgain: update tk_vt..."),await $obj$$.details.filter($d$$=>$d$$.ma_vt).asyncJoinModel2($obj$$.id_app,global.getModel("dmvt"),{where:"ma_vt",fields:"tk_vt"}),$user_update$$.details=$obj$$.details);try{console.log("postAgain: update voucher..."),await $model$$.updateOne({_id:$obj$$._id},{...$user_update$$})}catch($e$$){return console.error("postAgain: error update data before repost",$e$$),$callback$$({error:"Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u ch\u1ee9ng t\u1eeb "+
48
+ $obj$$.so_ct+",Error:"+$e$$.message||$e$$.error||""})}console.log("postAgain: posting...");postData($obj$$,$ctrl$$,function($e$$,$rs$$){console.log("postAgain: reported",$obj$$.ma_ct,$obj$$.so_ct,$obj$$.ngay_ct,"by",$user$$.email);if($e$$)return $callback$$({error:$e$$.message||$e$$.error||"Kh\u00f4ng th\u1ec3 post s\u1ed5 s\u00e1ch ch\u1ee9ng t\u1eeb:"+$obj$$.so_ct});$callback$$(null,$rs$$)},{req:$options$$.req,kiem_tra_han_muc_cong_no:!1})})},function($e$$){if($e$$)return console.error("postAgain: Error",
49
+ $e$$),$callback$jscomp$0$$({error:$e$$.message||$e$$.error||$e$$});console.log("postAgain: finished",$condition$$,$objsrepost$$.length," vouchers","by",$user$$.email);$callback$jscomp$0$$(null,{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n xong"})})})}).catch($e$$=>{console.error("postAgain: find",$e$$);return $callback$jscomp$0$$({error:$e$$.message||$e$$.error||$e$$})})};
50
50
  controller.prototype.updateBook=function(){let $ctrl$$=this;this.router.route(`${this.route_name}/action/postagain`).get(async($req$$,$res$$)=>{const {query:$query$$,body:$body$$,user:$user$$,params:$params$$,headers:$headers$$,files:$files$$}=$req$$,$user_agent$$=$req$$.header("user-agent"),$ip$$=$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress;try{const $_req$$={handler:"updateBookHandler",query:$query$$,body:$body$$,user:$user$$,params:$params$$,headers:$headers$$,
51
51
  user_agent:$user_agent$$,ip:$ip$$,files:$files$$,originalUrl:$req$$.originalUrl};if(global.importDataMainPool){const $id_task$$=`task-update-book-${crypto.randomBytes(20).toString("hex")}`,$status_task$$=`${configs.api_url||configs.domain}/task-status/${$id_task$$}`;$res$$.status(202).send({message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n. Khi ho\u00e0n th\u00e0nh, ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd g\u1eedi cho b\u1ea1n m\u1ed9t th\u00f4ng b\u00e1o",status_task:$status_task$$});
52
52
  global.importDataMainPool.exec({id_task:$id_task$$,req:$_req$$,module:$ctrl$$.name.toUpperCase(),configs:JSON.stringify(configs)},$e$jscomp$23_response$$=>{if($e$jscomp$23_response$$=$e$jscomp$23_response$$.error)return global.getModel("notification").createNotification($req$$.user.email,$req$$.user.email,"Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt l\u1ea1i s\u1ed5 s\u00e1ch",$e$jscomp$23_response$$.message||$e$jscomp$23_response$$.error||$e$jscomp$23_response$$,null,{id_app:$req$$.user.current_id_app},
@@ -10,7 +10,7 @@ async function asyncBodyToJson($body$$,$ctrl$$,$id_app$$,$voucher_options$$){$vo
10
10
  $body$$[$key$$].forEach($r$$=>{_.isObject($r$$)&&delete $r$$._id}),$body$$[$key$$]&&$body$$[$key$$]instanceof String&&(0==$body$$[$key$$].trim().indexOf("[")||0==$body$$[$key$$].trim().indexOf("{"))&&("mixed"==$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase()||"array"==$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase()))try{$body$$[$key$$]=JSONParser($body$$[$key$$])}catch($e$$){console.error($e$$)}return $body$$}
11
11
  const getData=($id_app$$,$collection$$,$field$$,$condition$$)=>{if("token"===$collection$$||"asskey"===$collection$$)throw`Collection ${$collection$$} is not allow`;"dmkh"===$collection$$&&($collection$$="customer");"dmtk"===$collection$$&&($collection$$="account");let $col$$=mongoose.models[$collection$$];if($col$$){if($col$$.schema.paths.id_app){if(!$id_app$$)throw`Collection ${$collection$$} required id_app`;$condition$$.id_app=$id_app$$}let $fields$$;$field$$&&$field$$.split(",").forEach($f$$=>
12
12
  {$fields$$={[$f$$]:1}});if("user"===$collection$$||"participant"===$collection$$)$fields$$={name:1};"app"===$collection$$&&($fields$$||($fields$$={}),$fields$$={...$fields$$,viettel_user:0,viettel_password:0,viettel_url_service:0,viettel_token:0,vnpt_user:0,vnpt_password:0,vnpt_url_service:0,easy_user:0,easy_password:0,easy_url_service:0,zalo_app_id:0,zalo_secret_key:0,zalo_code:0,zalo_oa_id:0,zalo_code_verifier:0,zalo_code_challenge:0,zalo_access_token:0,zalo_refresh_token:0,google_credentials:0,
13
- sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0});return $col$$.findOne($condition$$,$fields$$).lean().exec()}throw`Error get data: Collection ${$collection$$} is not exists`;},isExists=function($model$$,$unique$$,$obj$$,$replaceIfExists$$,$fn$$){if(!$unique$$||0===$unique$$.length)return $fn$$(null,
13
+ sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0});return $col$$.findOne($condition$$,$fields$$).lean()}throw`Error get data: Collection ${$collection$$} is not exists`;},isExists=function($model$$,$unique$$,$obj$$,$replaceIfExists$$,$fn$$){if(!$unique$$||0===$unique$$.length)return $fn$$(null,
14
14
  !1);let $condition$$={};$unique$$=$unique$$.filter($key$$=>$model$$.schema.paths[$key$$]);for(let $i$$=0;$i$$<$unique$$.length;$i$$++){let $key$$=$unique$$[$i$$],$v$$=$obj$$[$key$$];void 0!=$v$$&&$model$$.schema.paths[$key$$]&&(null!==$v$$?"number"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condition$$[$key$$]=Number($v$$):"date"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condition$$[$key$$]=new Date($v$$):"string"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condition$$[$key$$]=
15
15
  $v$$.toString():$condition$$[$key$$]=$v$$:$condition$$[$key$$]=$v$$)}if($condition$$.id_app&&2>Object.values($condition$$).length||1>Object.values($condition$$).length)return $fn$$("D\u1eef li\u1ec7u kh\u00f4ng t\u1ed3n t\u1ea1i \u0111\u1ee7 c\u00e1c gi\u00e1 tr\u1ecb: "+$unique$$.join(","));$obj$$.id_app&&($condition$$.id_app=$obj$$.id_app);$replaceIfExists$$?$model$$.deleteMany($condition$$,$e$$=>{setImmediate(()=>{if($e$$)return $fn$$($e$$);$fn$$(null,!1)})}):$model$$.findOne($condition$$,{_id:1},
16
16
  ($error$$,$result$$)=>{setImmediate(()=>{if($error$$)return $fn$$($error$$);if(!$result$$)return $fn$$(null,!1);console.warn("object exists",$condition$$,"unique fields",$unique$$);$fn$$(null,!0)})})},postData=function($obj$$,$ctrl$$,$mainCallback$$,$options$$={}){const $post$$=$ctrl$$.dynamicPost||$ctrl$$.post;if(!$post$$)return $mainCallback$$();const $postOptions$$={...$ctrl$$.options,...$options$$};let $obj_created$$=$obj$$.toObject?utils.convertObjectIdsToStrings($obj$$.toObject()):{...$obj$$};
@@ -63,9 +63,9 @@ if(0<=$tien_to$$.indexOf("return ")&&0>$tien_to$$.indexOf("async "))try{$tien_to
63
63
  $qct$$.tien_to_ht||void 0==$qct$$.hau_to_ht||$qct$$.tien_to_ht==$tien_to$$&&$qct$$.hau_to_ht==$hau_to$$||($rs$$=1,await counter.updateOne({id_app:$id_app$$,name:$ma_ct$$.toUpperCase(),field:$code$$},{sequence:$rs$$}));$rs$$=($qct$$.tu_so||0)+$rs$$;$error$$=$rs$$.toString();var $den_so_so_ky_tu_them$$=$qct$$.den_so;$den_so_so_ky_tu_them$$||($den_so_so_ky_tu_them$$=999999);$den_so_so_ky_tu_them$$=$den_so_so_ky_tu_them$$.toString().length-$error$$.length;$error$$=0<$den_so_so_ky_tu_them$$?($tien_to$$||
64
64
  "")+"0000000000000000000000".substring(0,$den_so_so_ky_tu_them$$)+$error$$+$hau_to$$:($tien_to$$||"")+$error$$+$hau_to$$;$qct$$.so_ht=$rs$$;$qct$$.tien_to_ht=$tien_to$$;$qct$$.hau_to_ht=$hau_to$$;await dmqct.updateOne({_id:$qct$$._id},$qct$$)}else $error$$=$rs$$.toString();$rs$$={};$rs$$[$field$$]=$error$$;$callback$$(null,$rs$$)}})};
65
65
  function checkReference($model$jscomp$0$$,$obj$$,$fn$$,$keys$$){$model$jscomp$0$$.referenceKeys?($keys$$||($keys$$=_.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(()=>
66
- {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&&(_.isObject($r$$.where)&&($query$$=Object.assign($query$$,$r$$.where)),_.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$$;$msgError$$=
67
- $r$$.error?(new Function("obj","return `"+$r$$.error.replace("{{VALUE}}",$value$$)+"`"))($obj$$):ERRORS.ERR_DATA_GENERATED;return $cb$$({error:$msgError$$,code:ERRORS.ERR_DATA_GENERATED_CODE})}$cb$$()})})}else $cb$$()})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$()})})},$error$$=>{$fn$$($error$$)})):$fn$$()}
68
- 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$$=$rps_rpt_ids$$.map($r$$=>$r$$._id),global.getModel("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$$)})}))},
66
+ {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&&(_.isObject($r$$.where)&&($query$$=Object.assign($query$$,$r$$.where)),_.isFunction($r$$.where)&&($_w_k$$=$r$$.where($obj$$),$query$$=Object.assign($query$$,$_w_k$$)));$model$$.find($query$$).limit(1).lean().then(function($o$$){setImmediate(()=>{if($o$$&&0<$o$$.length){let $msgError$$;$msgError$$=$r$$.error?(new Function("obj","return `"+
67
+ $r$$.error.replace("{{VALUE}}",$value$$)+"`"))($obj$$):ERRORS.ERR_DATA_GENERATED;return $cb$$({error:$msgError$$,code:ERRORS.ERR_DATA_GENERATED_CODE})}$cb$$()})}).catch($error$$=>{$cb$$($error$$)})}else $cb$$()})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$()})})},$error$$=>{$fn$$($error$$)})):$fn$$()}
68
+ 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$$=$rps_rpt_ids$$.map($r$$=>$r$$._id),global.getModel("parameter").find({id_app:$id_app$$,id_rpt:{$in:$rps_rpt_ids$$}}).lean().then(function($parameters$$){setImmediate(()=>{$callback$$(null,$parameters$$)})}).catch($e$$=>{$callback$$($e$$)}))},
69
69
  prepareParameters=function($ctrl$$,$parameters$$,$app$$,$obj$$,$callback$jscomp$0$$){async.mapSeries($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("prepareParameters",$e$$),$app$$[$p$$.name]=$e$$.message}else if("Q"===$p$$.type)try{var $query$jscomp$1_sandbox$$=await evalute("return {"+$p$$.value+
70
70
  "}",{});if($query$jscomp$1_sandbox$$.collection&&$query$jscomp$1_sandbox$$.field){"dmkh"==$query$jscomp$1_sandbox$$.collection&&($query$jscomp$1_sandbox$$.collection="customer");"dmtk"==$query$jscomp$1_sandbox$$.collection&&($query$jscomp$1_sandbox$$.collection="account");var $condition$$=$query$jscomp$1_sandbox$$.condition;if($condition$$){$condition$$=JSON.stringify($condition$$);for(let $m$$ in $obj$$)$condition$$=$condition$$.replace(new RegExp("m."+$m$$,"g"),$obj$$[$m$$]);$condition$$=JSONParser($condition$$)}else $condition$$=
71
71
  {};$app$$[$p$$.name]=await getData($app$$.id_app,$query$jscomp$1_sandbox$$.collection,$query$jscomp$1_sandbox$$.field,$condition$$)}}catch($e$$){$app$$[$p$$.name]=$e$$}else if("E"===$p$$.type&&$p$$.value){$condition$$=$p$$.value;0>$condition$$.indexOf("return ")&&($condition$$=`return ${$condition$$}`);if(0<=$condition$$.indexOf("async "))return $app$$[$p$$.name]="async function is not allow";$condition$$=`return (async ()=>{
@@ -7,30 +7,30 @@ $e$$.error||$e$$)}}let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_
7
7
  $v_data$$,function($error$$,$v_data$$){if($error$$)return $reject$$($error$$);$resolve$$($v_data$$)},{listinfo_code:$listinfo_code$$,req:$req$$})}catch($e$$){return $reject$$($e$$)}})}catch($e$$){return $callback$jscomp$1$$($e$$.message||$e$$.error||$e$$)}const $obj$jscomp$0$$=new $model$$;$schema_paths$$.exfields&&($obj$jscomp$0$$.exfields=$v_data$$.exfields||{});for(let $f$$ in $v_data$$)$schema_paths$$[$f$$]&&($obj$jscomp$0$$.set($f$$,$v_data$$[$f$$]),"exfields"!==$f$$||$obj$jscomp$0$$.exfields||
8
8
  ($obj$jscomp$0$$.exfields={}));$schema_paths$$.id_app&&($obj$jscomp$0$$.id_app=$user$$.current_id_app);const $checkVoucherNumber$$=$callback$$=>{$model$$.schema.paths.ngay_ct&&$obj$jscomp$0$$.ngay_ct?setImmediate(()=>{if($voucher_options$$&&(0==$voucher_options$$?.trang_thai_create_voucher_numbers?.length||0<=$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($obj$jscomp$0$$.trang_thai))&&$voucher_options$$.check_so_ct&&"0"!==$voucher_options$$.check_so_ct){let $query_check$$={id_app:$obj$jscomp$0$$.id_app,
9
9
  so_ct:$obj$jscomp$0$$.so_ct,listinfo_code:$listinfo_code$$},$tu_ngay$$,$den_ngay$$;switch($voucher_options$$.check_so_ct){case "1":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("day").toDate();$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("day").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$};break;case "2":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("month").toDate();$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("month").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,
10
- $lte:$den_ngay$$};break;case "3":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("quarter").toDate();$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("quarter").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$};break;case "8":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("year").toDate(),$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("year").toDate(),$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$}}$model$$.findOne($query_check$$,{so_ct:1}).lean().exec(($e$jscomp$0$$,
11
- $rs$$)=>{setImmediate(()=>{if($rs$$){let $msgError$$="S\u1ed1 ch\u1ee9ng t\u1eeb "+$obj$jscomp$0$$.so_ct+" \u0111\u00e3 t\u1ed3n t\u1ea1i. H\u00e3y ch\u1ecdn m\u1ed9t s\u1ed1 ch\u1ee9ng t\u1eeb kh\u00e1c";if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else $callback$$()})})}else $callback$$()}):$callback$$()};let $File$$=global.getModel("file"),$Support$$=
12
- global.getModel("support");async.waterfall([function($callback$$){setImmediate(async function(){let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:$action$$,obj:$obj$jscomp$0$$});permission.hasRight($obj$jscomp$0$$.id_app,$user$$.email,$ctrl$$.module,$action$$,function($error$jscomp$0$$,$hr$$,$c_app$$){setImmediate(()=>{if($error$jscomp$0$$||!$hr$$)return $error$jscomp$0$$=$error$jscomp$0$$||"",$callback$$({error:$error$jscomp$0$$.error||$error$jscomp$0$$||ERRORS.ERR_NOT_PERMIT,code:$error$jscomp$0$$.code||
13
- ERRORS.ERR_NOT_PERMIT_CODE});$ctrl$$.checkData($c_app$$,$obj$jscomp$0$$,$e$$=>{if($e$$)return $callback$$($e$$);$ctrl$$.creating?$ctrl$$.creating($user$$,$obj$jscomp$0$$,function($error$$,$_obj$$){if($error$$)return $callback$$($error$$);for(let $f$$ of Object.keys($schema_paths$$))$error$$=$_obj$$.get?$_obj$$.get($f$$):$_obj$$[$f$$],$obj$jscomp$0$$.set($f$$,$error$$);$callback$$(null,$obj$jscomp$0$$)},{data:$data$$,action:$action$$}):$callback$$(null,$obj$jscomp$0$$)})})},{data:$obj$jscomp$0$$,notNeedRight:$notNeedRight$$,
14
- listinfo_code:$listinfo_code$$})})},($obj$$,$callback$jscomp$0$$)=>{setImmediate(()=>{var $condition_qct_ma_ct$$=$ctrl$$.name;$condition_qct_ma_ct$$={status:!0,id_app:$obj$$.id_app,$and:[{$or:[{ma_ct:"#",ma_ct_khac:{$regex:$condition_qct_ma_ct$$,$options:"i"}},{cac_ma_ct:$condition_qct_ma_ct$$.toLowerCase()},{ma_ct:$condition_qct_ma_ct$$.toUpperCase()}]}]};let $_options_qct$$;$_options_qct$$=$obj$$.toObject?convertObjectIdsToStrings($obj$$.toObject()):{...$obj$$};let $keys_options$$=Object.keys($_options_qct$$);
15
- global.getModel("dmqct").find($condition_qct_ma_ct$$).lean().exec(($e$jscomp$0$$,$rs$$)=>{setImmediate(()=>{let $qcts$$=($rs$$||[]).filter($qct$$=>"so_ct"!==$qct$$.field&&!$obj$$[$qct$$.field]&&$model$$.schema.paths[$qct$$.field]);$qcts$$=$qcts$$.filter($qct$$=>{if($qct$$.dieu_kien&&0<$keys_options$$.length)try{let $str_func$$=$qct$$.dieu_kien;0!==$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);return 0<$str_func$$.indexOf("async ")?!1:evalute($str_func$$,{...$_options_qct$$,
16
- master:{...$_options_qct$$},moment,numeral})}catch($e$$){return console.error("Error find quyen chung tu",$e$$.message,$qct$$.dieu_kien),!1}else return!0});async.mapSeries($qcts$$,($qct$$,$cb$$)=>{setImmediate(()=>{let $field$$=$qct$$.field,$_options$$={...$_options_qct$$};$_options$$.id_qct=$qct$$._id.toString();let $count$$=0;async.whilst(function($cb$$){$cb$$(null,10>$count$$)},function($callback$$){getNextSequence($obj$$.id_app,$ctrl$$.name,$field$$,function($e$$,$rs$$){setImmediate(async()=>
17
- {if($e$$)return $callback$$($e$$);$obj$$[$field$$]=$rs$$[$field$$];console.log("[createHandler][createCodeByVoucherBook] m\u00e3 \u0111\u00e3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o",$ctrl$$.name,$field$$,$rs$$);$qct$$.check_duplicate?await $model$$.findOne({id_app:$obj$$.id_app,[$field$$]:$obj$$[$field$$]},{[$field$$]:1}).lean()?9<=$count$$?$callback$$(`Kh\u00f4ng th\u1ec3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o gi\u00e1 cho field ${$field$$}. H\u00e3y s\u1eed d\u1ee5ng quy\u1ec3n ch\u1ee9ng t\u1eeb kh\u00e1c`):
18
- ($count$$++,$callback$$()):($count$$=99999,$callback$$()):($count$$=99999,$callback$$())})},$_options$$)},function($err$$){$cb$$($err$$)})})},$e$$=>{setImmediate(()=>{$callback$jscomp$0$$($e$$)})})})})})},$callback$jscomp$0$$=>{setImmediate(function(){if((!$voucher_options$$?.trang_thai_create_voucher_numbers||0==$voucher_options$$?.trang_thai_create_voucher_numbers.length||0<=$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($obj$jscomp$0$$.trang_thai))&&$model$$.schema.paths.so_ct)if($obj$jscomp$0$$.so_ct&&
19
- $obj$jscomp$0$$.so_ct.toUpperCase()!==($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$obj$jscomp$0$$.so_ct.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkVoucherNumber$$($error$$=>{$callback$jscomp$0$$($error$$)});else{let $count$$=0;async.whilst(function($cb$$){$cb$$(null,100>$count$$)},function($callback$$){getNextSequence($obj$jscomp$0$$.id_app,$listinfo_code$$||$ctrl$$.name,"so_ct",function($e$$,$rs$$){setImmediate(()=>{if($e$$)return $callback$$($e$$);$obj$jscomp$0$$.so_ct=$rs$$.so_ct;$checkVoucherNumber$$($error$$=>
20
- {$error$$?99<=$count$$?$callback$$($error$$):($count$$++,$callback$$()):($count$$=99999,$callback$$())})})},$obj$jscomp$0$$)},function($err$$){$callback$jscomp$0$$($err$$)})}else $callback$jscomp$0$$()})},function($callback$$){setImmediate(async()=>{if($model$$.schema.paths.ma_dvcs&&"dvcs"!==$ctrl$$.name)if($obj$jscomp$0$$.ma_dvcs)if(global.mongoose.Types.ObjectId.isValid($obj$jscomp$0$$.ma_dvcs)){let $_id_dvcs$$=global.mongoose.Types.ObjectId($obj$jscomp$0$$.ma_dvcs);await global.getModel("dvcs").findOne({_id:$_id_dvcs$$})?
21
- $callback$$():global.getModel("dvcs").create({_id:$_id_dvcs$$,ma_dvcs:"IMPORTED",ten_dvcs:"Imported"},$e$$=>{setImmediate(()=>{$e$$&&console.error("Can't import dvcs",$e$$);$callback$$()})})}else $callback$$();else global.getModel("dvcs").findOne({id_app:$obj$jscomp$0$$.id_app,status:!0}).lean().exec(function($e$$,$rs$$){setImmediate(()=>{$rs$$&&($obj$jscomp$0$$.ma_dvcs=$rs$$._id.toString());$callback$$()})});else $callback$$()})},$callback$$=>{$ctrl$$.validating||($ctrl$$.validating=($user$$,$obj$$,
22
- $next$$)=>{$next$$(null,$obj$$)});$ctrl$$.validating($user$$,$obj$jscomp$0$$,$e$jscomp$0$$=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);setImmediate(()=>{$obj$jscomp$0$$.user_created="import"==$action$$?$obj$jscomp$0$$.user_created||$user$$.email:$user$$.email;$obj$jscomp$0$$.user_updated=$user$$.email;$obj$jscomp$0$$.date_created=new Date;$obj$jscomp$0$$.date_updated=new Date;validate($obj$jscomp$0$$,async $error$$=>{setImmediate(async()=>{if($error$$){let $msgError$$=$error$$;if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,
23
- $obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else{if($id_be_supply_by_user$$&&global.mongoose.Types.ObjectId.isValid($id_be_supply_by_user$$)){let $_id$$=global.mongoose.Types.ObjectId($id_be_supply_by_user$$);await $model$$.findOne({_id:$_id$$},{_id:1})||($obj$jscomp$0$$._id=$_id$$)}$callback$$()}})},$voucher_options$$)})},{action:$action$$})},function($callback$$){setImmediate(function(){isExists($model$$,$ctrl$$.unique,
24
- $obj$jscomp$0$$,$ctrl$$.replaceIfExists,async($error$jscomp$1$$,$kq$$)=>{setImmediate(async()=>{if($error$jscomp$1$$||$kq$$){let $msgError$$=$error$jscomp$1$$||ERRORS.ERR_ALREADY_EXIST;if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$({error:$msgError$$,code:ERRORS.ERR_ALREADY_EXIST_CODE})});else $callback$$({error:$msgError$$,code:ERRORS.ERR_ALREADY_EXIST_CODE})}else{for(let $k$$ in $ctrl$$.keyValues)$obj$jscomp$0$$[$k$$]=
25
- $ctrl$$.keyValues[$k$$];Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$jscomp$0$$[$model_path$$]&&_.isArray($obj$jscomp$0$$[$model_path$$])).forEach($model_path$$=>{$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$jscomp$0$$[$path$$]&&$obj$jscomp$0$$[$model_path$$].filter($detail$$=>
26
- !$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$jscomp$0$$[$path$$]})})});await createIdRef($model$$,$obj$jscomp$0$$);if($ctrl$$.saving)try{await $ctrl$$.saving($user$$,$obj$jscomp$0$$,$action$$)}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$})}$ctrl$$.emit("saving",$obj$jscomp$0$$);$obj$jscomp$0$$.save(function($error$jscomp$0$$,$obj_created$$){setImmediate(async()=>{if($error$jscomp$0$$){if($ctrl$$.options.onErrorSave)$ctrl$$.options.onErrorSave($user$$,$obj$jscomp$0$$,
27
- $error$jscomp$0$$,$action$$);let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);0==$msgErrors$$.length&&($msgErrors$$=$error$jscomp$0$$.message);$msgErrors$$||($msgErrors$$=JSON.stringify($error$jscomp$0$$));if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&console.error("onErrorCreating",$e$$);$callback$$($msgErrors$$)});else $callback$$($msgErrors$$)}else $ctrl$$.populate&&($obj_created$$=
28
- $model$$.findById($obj_created$$._id),$obj_created$$=await $ctrl$$.populate($obj_created$$)),postData($obj_created$$,$ctrl$$,function($msgErrors$$){setImmediate(async()=>{if($msgErrors$$)if($model$$.deleteOne({_id:$obj_created$$._id.toString()},$err$$=>{$err$$&&console.error("Error remove obj when has error post data:",$err$$,{_id:$obj_created$$._id.toString()});setImmediate(()=>{deletePost($obj_created$$.user_updated,$obj_created$$,async function($e_delete_post$$){$e_delete_post$$&&console.error("deletePost",
29
- $e_delete_post$$)})})}),$ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgErrors$$=$msgErrors$$+"\n"+$e$$);$callback$$($msgErrors$$)});else $callback$$($msgErrors$$);else if($ctrl$$.emit("saved",$obj_created$$),$ctrl$$.emit("created",$obj_created$$),global.getModel("customer").updateActives&&global.getModel("customer").updateActives($obj_created$$),$obj_created$$=convertObjectIdsToStrings($obj_created$$.toObject()),$req$$&&setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,
30
- id_func:$ctrl$$.name,action:$action$$.toUpperCase(),data:{id:$obj_created$$._id.toString(),data:$obj_created$$}},$user$$.email,$req$$.user_agent,$req$$)}),runWebhooks($ctrl$$,$obj_created$$,$action$$.toUpperCase(),$voucher_options$$),await $ctrl$$.cacheData($obj_created$$,void 0,$action$$),"import"===$action$$||$req$$&&0==($req$$.query||{}).return_data)$callback$$(null,{_id:$obj_created$$._id.toString()});else $ctrl$$.onView($user$$,[$obj_created$$],($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return $callback$$($error$$);
31
- $callback$$(null,$viewValue$$?$viewValue$$[0]:$obj_created$$)})},{req:$req$$})})},{req:$req$$})})})}})})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$$.current_app_info,$user$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$$,$callback$$){setImmediate(async function(){$obj$$.collection_name=$ctrl$$.collection_name;var $co_gia_tri_tam_html$$=!1;$obj$$.exfields&&$obj$$.exfields.__files__&&($obj$$.exfields.__files__.forEach($_file$$=>{$File$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),
32
- collection_link:$ctrl$$.collection_name}).lean().exec($e$$=>{$e$$&&console.error("File updateone",$e$$)})}),delete $obj$$.exfields.__files__,$co_gia_tri_tam_html$$=!0);$obj$$.exfields&&$obj$$.exfields.__supports__&&($obj$$.exfields.__supports__.forEach($_file$$=>{$Support$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),collection_link:$ctrl$$.collection_name}).lean().exec($e$$=>{console.error("support updateone",$e$$)})}),delete $obj$$.exfields.__supports__,$co_gia_tri_tam_html$$=!0);
33
- $co_gia_tri_tam_html$$&&await $model$$.updateOne({_id:$obj$$._id},{exfields:$obj$$.exfields});$ctrl$$.created?$ctrl$$.created($user$$,$obj$$,function($error$jscomp$0$$,$rs$$){setImmediate(()=>{if($error$jscomp$0$$)return $callback$$($error$jscomp$0$$);if($ctrl$$.dynamicCreated)$ctrl$$.dynamicCreated($user$$,$rs$$,function($error$$){if($error$$)return $callback$$($error$$);$req$$&&$req$$.uploadFile?($error$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>",$callback$$(null,$error$$)):
34
- $callback$$(null,$rs$$)},{listinfo_code:$listinfo_code$$});else if($req$$&&$req$$.uploadFile){let $html$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>";$callback$$(null,$html$$)}else $callback$$(null,$rs$$)})}):$ctrl$$.dynamicCreated?$ctrl$$.dynamicCreated($user$$,$obj$$,function($error$jscomp$12_html$$){if($error$jscomp$12_html$$)return $callback$$($error$jscomp$12_html$$);$req$$&&$req$$.uploadFile?($error$jscomp$12_html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+
35
- "</body></html>",$callback$$(null,$error$jscomp$12_html$$)):$callback$$(null,$obj$$)},{listinfo_code:$listinfo_code$$}):$req$$&&$req$$.uploadFile?($co_gia_tri_tam_html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+"</body></html>",$callback$$(null,$co_gia_tri_tam_html$$)):$callback$$(null,$obj$$)})}],($e$$,$obj_created$$)=>{$e$$?(console.error($e$$),$callback$jscomp$1$$($e$$)):($e$$=$model$$.collection.name,$user$$.current_id_app&&($e$$+=$user$$.current_id_app),delete global.cacheDatas[$e$$],
36
- $callback$jscomp$1$$(null,{obj_created:$obj_created$$}))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};module.exports=create;
10
+ $lte:$den_ngay$$};break;case "3":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("quarter").toDate();$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("quarter").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$};break;case "8":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("year").toDate(),$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("year").toDate(),$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$}}$model$$.findOne($query_check$$,{so_ct:1}).lean().then($rs$$=>
11
+ {setImmediate(()=>{if($rs$$){let $msgError$$="S\u1ed1 ch\u1ee9ng t\u1eeb "+$obj$jscomp$0$$.so_ct+" \u0111\u00e3 t\u1ed3n t\u1ea1i. H\u00e3y ch\u1ecdn m\u1ed9t s\u1ed1 ch\u1ee9ng t\u1eeb kh\u00e1c";if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else $callback$$()})}).catch($e$$=>{console.error($e$$)})}else $callback$$()}):$callback$$()};let $File$$=global.getModel("file"),
12
+ $Support$$=global.getModel("support");async.waterfall([function($callback$$){setImmediate(async function(){let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:$action$$,obj:$obj$jscomp$0$$});permission.hasRight($obj$jscomp$0$$.id_app,$user$$.email,$ctrl$$.module,$action$$,function($error$jscomp$0$$,$hr$$,$c_app$$){setImmediate(()=>{if($error$jscomp$0$$||!$hr$$)return $error$jscomp$0$$=$error$jscomp$0$$||"",$callback$$({error:$error$jscomp$0$$.error||$error$jscomp$0$$||ERRORS.ERR_NOT_PERMIT,
13
+ code:$error$jscomp$0$$.code||ERRORS.ERR_NOT_PERMIT_CODE});$ctrl$$.checkData($c_app$$,$obj$jscomp$0$$,$e$$=>{if($e$$)return $callback$$($e$$);$ctrl$$.creating?$ctrl$$.creating($user$$,$obj$jscomp$0$$,function($error$$,$_obj$$){if($error$$)return $callback$$($error$$);for(let $f$$ of Object.keys($schema_paths$$))$error$$=$_obj$$.get?$_obj$$.get($f$$):$_obj$$[$f$$],$obj$jscomp$0$$.set($f$$,$error$$);$callback$$(null,$obj$jscomp$0$$)},{data:$data$$,action:$action$$}):$callback$$(null,$obj$jscomp$0$$)})})},
14
+ {data:$obj$jscomp$0$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})},($obj$$,$callback$jscomp$0$$)=>{setImmediate(()=>{var $condition_qct_ma_ct$$=$ctrl$$.name;$condition_qct_ma_ct$$={status:!0,id_app:$obj$$.id_app,$and:[{$or:[{ma_ct:"#",ma_ct_khac:{$regex:$condition_qct_ma_ct$$,$options:"i"}},{cac_ma_ct:$condition_qct_ma_ct$$.toLowerCase()},{ma_ct:$condition_qct_ma_ct$$.toUpperCase()}]}]};let $_options_qct$$;$_options_qct$$=$obj$$.toObject?convertObjectIdsToStrings($obj$$.toObject()):
15
+ {...$obj$$};let $keys_options$$=Object.keys($_options_qct$$);global.getModel("dmqct").find($condition_qct_ma_ct$$).lean().then($rs$$=>{setImmediate(()=>{let $qcts$$=($rs$$||[]).filter($qct$$=>"so_ct"!==$qct$$.field&&!$obj$$[$qct$$.field]&&$model$$.schema.paths[$qct$$.field]);$qcts$$=$qcts$$.filter($qct$$=>{if($qct$$.dieu_kien&&0<$keys_options$$.length)try{let $str_func$$=$qct$$.dieu_kien;0!==$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);return 0<$str_func$$.indexOf("async ")?
16
+ !1:evalute($str_func$$,{...$_options_qct$$,master:{...$_options_qct$$},moment,numeral})}catch($e$$){return console.error("Error find quyen chung tu",$e$$.message,$qct$$.dieu_kien),!1}else return!0});async.mapSeries($qcts$$,($qct$$,$cb$$)=>{setImmediate(()=>{let $field$$=$qct$$.field,$_options$$={...$_options_qct$$};$_options$$.id_qct=$qct$$._id.toString();let $count$$=0;async.whilst(function($cb$$){$cb$$(null,10>$count$$)},function($callback$$){getNextSequence($obj$$.id_app,$ctrl$$.name,$field$$,
17
+ function($e$$,$rs$$){setImmediate(async()=>{if($e$$)return $callback$$($e$$);$obj$$[$field$$]=$rs$$[$field$$];console.log("[createHandler][createCodeByVoucherBook] m\u00e3 \u0111\u00e3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o",$ctrl$$.name,$field$$,$rs$$);$qct$$.check_duplicate?await $model$$.findOne({id_app:$obj$$.id_app,[$field$$]:$obj$$[$field$$]},{[$field$$]:1}).lean()?9<=$count$$?$callback$$(`Kh\u00f4ng th\u1ec3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o gi\u00e1 cho field ${$field$$}. H\u00e3y s\u1eed d\u1ee5ng quy\u1ec3n ch\u1ee9ng t\u1eeb kh\u00e1c`):
18
+ ($count$$++,$callback$$()):($count$$=99999,$callback$$()):($count$$=99999,$callback$$())})},$_options$$)},function($err$$){$cb$$($err$$)})})},$e$$=>{setImmediate(()=>{$callback$jscomp$0$$($e$$)})})})}).catch($e$$=>{console.error($e$$)})})},$callback$jscomp$0$$=>{setImmediate(function(){if((!$voucher_options$$?.trang_thai_create_voucher_numbers||0==$voucher_options$$?.trang_thai_create_voucher_numbers.length||0<=$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($obj$jscomp$0$$.trang_thai))&&
19
+ $model$$.schema.paths.so_ct)if($obj$jscomp$0$$.so_ct&&$obj$jscomp$0$$.so_ct.toUpperCase()!==($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$obj$jscomp$0$$.so_ct.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkVoucherNumber$$($error$$=>{$callback$jscomp$0$$($error$$)});else{let $count$$=0;async.whilst(function($cb$$){$cb$$(null,100>$count$$)},function($callback$$){getNextSequence($obj$jscomp$0$$.id_app,$listinfo_code$$||$ctrl$$.name,"so_ct",function($e$$,$rs$$){setImmediate(()=>{if($e$$)return $callback$$($e$$);
20
+ $obj$jscomp$0$$.so_ct=$rs$$.so_ct;$checkVoucherNumber$$($error$$=>{$error$$?99<=$count$$?$callback$$($error$$):($count$$++,$callback$$()):($count$$=99999,$callback$$())})})},$obj$jscomp$0$$)},function($err$$){$callback$jscomp$0$$($err$$)})}else $callback$jscomp$0$$()})},function($callback$$){setImmediate(async()=>{if($model$$.schema.paths.ma_dvcs&&"dvcs"!==$ctrl$$.name)if($obj$jscomp$0$$.ma_dvcs)if(global.mongoose.Types.ObjectId.isValid($obj$jscomp$0$$.ma_dvcs)){let $_id_dvcs$$=global.mongoose.Types.ObjectId($obj$jscomp$0$$.ma_dvcs);
21
+ await global.getModel("dvcs").findOne({_id:$_id_dvcs$$})?$callback$$():global.getModel("dvcs").create({_id:$_id_dvcs$$,ma_dvcs:"IMPORTED",ten_dvcs:"Imported"},$e$$=>{setImmediate(()=>{$e$$&&console.error("Can't import dvcs",$e$$);$callback$$()})})}else $callback$$();else global.getModel("dvcs").findOne({id_app:$obj$jscomp$0$$.id_app,status:!0}).lean().then(function($rs$$){setImmediate(()=>{$rs$$&&($obj$jscomp$0$$.ma_dvcs=$rs$$._id.toString());$callback$$()})}).catch($e$$=>{console.error($e$$)});else $callback$$()})},
22
+ $callback$$=>{$ctrl$$.validating||($ctrl$$.validating=($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)});$ctrl$$.validating($user$$,$obj$jscomp$0$$,$e$jscomp$0$$=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);setImmediate(()=>{$obj$jscomp$0$$.user_created="import"==$action$$?$obj$jscomp$0$$.user_created||$user$$.email:$user$$.email;$obj$jscomp$0$$.user_updated=$user$$.email;$obj$jscomp$0$$.date_created=new Date;$obj$jscomp$0$$.date_updated=new Date;validate($obj$jscomp$0$$,async $error$$=>{setImmediate(async()=>
23
+ {if($error$$){let $msgError$$=$error$$;if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else{if($id_be_supply_by_user$$&&global.mongoose.Types.ObjectId.isValid($id_be_supply_by_user$$)){let $_id$$=global.mongoose.Types.ObjectId($id_be_supply_by_user$$);await $model$$.findOne({_id:$_id$$},{_id:1})||($obj$jscomp$0$$._id=$_id$$)}$callback$$()}})},$voucher_options$$)})},
24
+ {action:$action$$})},function($callback$$){setImmediate(function(){isExists($model$$,$ctrl$$.unique,$obj$jscomp$0$$,$ctrl$$.replaceIfExists,async($error$jscomp$1$$,$kq$$)=>{setImmediate(async()=>{if($error$jscomp$1$$||$kq$$){let $msgError$$=$error$jscomp$1$$||ERRORS.ERR_ALREADY_EXIST;if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$({error:$msgError$$,code:ERRORS.ERR_ALREADY_EXIST_CODE})});else $callback$$({error:$msgError$$,
25
+ code:ERRORS.ERR_ALREADY_EXIST_CODE})}else{for(let $k$$ in $ctrl$$.keyValues)$obj$jscomp$0$$[$k$$]=$ctrl$$.keyValues[$k$$];Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$jscomp$0$$[$model_path$$]&&_.isArray($obj$jscomp$0$$[$model_path$$])).forEach($model_path$$=>{$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$$&&
26
+ 0<=fields_sync_master_detail.indexOf($path$$)).forEach($path$$=>{$obj$jscomp$0$$[$path$$]&&$obj$jscomp$0$$[$model_path$$].filter($detail$$=>!$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$jscomp$0$$[$path$$]})})});await createIdRef($model$$,$obj$jscomp$0$$);if($ctrl$$.saving)try{await $ctrl$$.saving($user$$,$obj$jscomp$0$$,$action$$)}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$})}$ctrl$$.emit("saving",$obj$jscomp$0$$);$obj$jscomp$0$$.save(function($error$jscomp$0$$,
27
+ $obj_created$$){setImmediate(async()=>{if($error$jscomp$0$$){if($ctrl$$.options.onErrorSave)$ctrl$$.options.onErrorSave($user$$,$obj$jscomp$0$$,$error$jscomp$0$$,$action$$);let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);0==$msgErrors$$.length&&($msgErrors$$=$error$jscomp$0$$.message);$msgErrors$$||($msgErrors$$=JSON.stringify($error$jscomp$0$$));if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,
28
+ $e$$=>{$e$$&&console.error("onErrorCreating",$e$$);$callback$$($msgErrors$$)});else $callback$$($msgErrors$$)}else $ctrl$$.populate&&($obj_created$$=$model$$.findById($obj_created$$._id),$obj_created$$=await $ctrl$$.populate($obj_created$$)),postData($obj_created$$,$ctrl$$,function($msgErrors$$){setImmediate(async()=>{if($msgErrors$$)if($model$$.deleteOne({_id:$obj_created$$._id.toString()},$err$$=>{$err$$&&console.error("Error remove obj when has error post data:",$err$$,{_id:$obj_created$$._id.toString()});
29
+ setImmediate(()=>{deletePost($obj_created$$.user_updated,$obj_created$$,async function($e_delete_post$$){$e_delete_post$$&&console.error("deletePost",$e_delete_post$$)})})}),$ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgErrors$$=$msgErrors$$+"\n"+$e$$);$callback$$($msgErrors$$)});else $callback$$($msgErrors$$);else if($ctrl$$.emit("saved",$obj_created$$),$ctrl$$.emit("created",$obj_created$$),global.getModel("customer").updateActives&&global.getModel("customer").updateActives($obj_created$$),
30
+ $obj_created$$=convertObjectIdsToStrings($obj_created$$.toObject()),$req$$&&setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,id_func:$ctrl$$.name,action:$action$$.toUpperCase(),data:{id:$obj_created$$._id.toString(),data:$obj_created$$}},$user$$.email,$req$$.user_agent,$req$$)}),runWebhooks($ctrl$$,$obj_created$$,$action$$.toUpperCase(),$voucher_options$$),await $ctrl$$.cacheData($obj_created$$,void 0,$action$$),"import"===$action$$||$req$$&&0==($req$$.query||{}).return_data)$callback$$(null,
31
+ {_id:$obj_created$$._id.toString()});else $ctrl$$.onView($user$$,[$obj_created$$],($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return $callback$$($error$$);$callback$$(null,$viewValue$$?$viewValue$$[0]:$obj_created$$)})},{req:$req$$})})},{req:$req$$})})})}})})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$$.current_app_info,$user$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$$,$callback$$){setImmediate(async function(){$obj$$.collection_name=$ctrl$$.collection_name;
32
+ var $co_gia_tri_tam_html$$=!1;$obj$$.exfields&&$obj$$.exfields.__files__&&($obj$$.exfields.__files__.forEach($_file$$=>{$File$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),collection_link:$ctrl$$.collection_name}).lean().then(()=>{}).catch($e$$=>{console.error("File updateone",$e$$)})}),delete $obj$$.exfields.__files__,$co_gia_tri_tam_html$$=!0);$obj$$.exfields&&$obj$$.exfields.__supports__&&($obj$$.exfields.__supports__.forEach($_file$$=>{$Support$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),
33
+ collection_link:$ctrl$$.collection_name}).lean().then(()=>{})}).catch($e$$=>{console.error("support updateone",$e$$)}),delete $obj$$.exfields.__supports__,$co_gia_tri_tam_html$$=!0);$co_gia_tri_tam_html$$&&await $model$$.updateOne({_id:$obj$$._id},{exfields:$obj$$.exfields});$ctrl$$.created?$ctrl$$.created($user$$,$obj$$,function($error$jscomp$0$$,$rs$$){setImmediate(()=>{if($error$jscomp$0$$)return $callback$$($error$jscomp$0$$);if($ctrl$$.dynamicCreated)$ctrl$$.dynamicCreated($user$$,$rs$$,function($error$$){if($error$$)return $callback$$($error$$);
34
+ $req$$&&$req$$.uploadFile?($error$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>",$callback$$(null,$error$$)):$callback$$(null,$rs$$)},{listinfo_code:$listinfo_code$$});else if($req$$&&$req$$.uploadFile){let $html$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>";$callback$$(null,$html$$)}else $callback$$(null,$rs$$)})}):$ctrl$$.dynamicCreated?$ctrl$$.dynamicCreated($user$$,$obj$$,function($error$jscomp$12_html$$){if($error$jscomp$12_html$$)return $callback$$($error$jscomp$12_html$$);
35
+ $req$$&&$req$$.uploadFile?($error$jscomp$12_html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+"</body></html>",$callback$$(null,$error$jscomp$12_html$$)):$callback$$(null,$obj$$)},{listinfo_code:$listinfo_code$$}):$req$$&&$req$$.uploadFile?($co_gia_tri_tam_html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+"</body></html>",$callback$$(null,$co_gia_tri_tam_html$$)):$callback$$(null,$obj$$)})}],($e$$,$obj_created$$)=>{$e$$?(console.error($e$$),$callback$jscomp$1$$($e$$)):($e$$=
36
+ $model$$.collection.name,$user$$.current_id_app&&($e$$+=$user$$.current_id_app),delete global.cacheDatas[$e$$],$callback$jscomp$1$$(null,{obj_created:$obj_created$$}))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};module.exports=create;
@@ -1,18 +1,18 @@
1
1
  'use strict';const async=require("async"),_=require("lodash"),excelReport=require("excel-report"),fs=require("fs"),path=require("path"),permission=require("../libs/permission"),htmlReport=require("../libs/htmlReport"),textReport=require("../libs/textReport"),{ERRORS,getParameters,prepareParameters}=require("./controllerUtils"),exportHandler=($ctrl$$,$req$$,$callback$jscomp$1$$)=>{const $user$$=$req$$.user,$model$$=$ctrl$$.model,$query$$=$req$$.query;let $listinfo_code$$=$req$$.query["listinfo-code"];
2
- async.series([function($callback$jscomp$0$$){let $id$$=$query$$._id;if(!$id$$)return $callback$jscomp$0$$({error:"H\u00e0m n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 _id"});let $ids$$=$id$$.split(",");$model$$.find({_id:{$in:$ids$$}}).lean().exec(function($e$$,$obj$$){if($e$$)return console.error("exportToExcel query",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,id_func:$ctrl$$.name,
3
- action:"ExportTOExcel",data:{id:$id$$}},$user$$.email,$req$$.user_agent,$req$$)});if(0==$obj$$.length)return $callback$jscomp$0$$({error:ERRORS.ERR_NOT_HAVE_DATA,code:ERRORS.ERR_NOT_HAVE_DATA_CODE});$ctrl$$.getting?async.mapSeries($obj$$,function($ob$$,$callback$$){setImmediate(()=>{$ctrl$$.getting($user$$,$ob$$._id,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null)},$ob$$)})},function($e$$){if($e$$)return console.error("exportToExcel",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):
4
- $callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$.obj=$obj$$;$callback$jscomp$0$$()}):($req$$.obj=$obj$$,$callback$jscomp$0$$())})},function($callback$jscomp$0$$){async.mapSeries($req$$.obj,function($obj$$,$callback$$){setImmediate(async()=>{let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:"view"});permission.hasRight($obj$$.id_app,$user$$.email,$ctrl$$.module,"view",function($error$$,$permission$$){$permission$$?$callback$$():($error$$=$error$$||"",$callback$$({error:$error$$.error||
5
- $error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE}))},{data:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})},function($e$$){if($e$$)return console.error("exportToExcel permission",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$callback$jscomp$0$$()})},function($callback$$){let $objs$$=$req$$.obj;if($objs$$)$ctrl$$.onView($user$$,$objs$$,function($e$$,$viewValue$$){if($e$$)return console.error("exportToExcel onview",
6
- $e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.obj=$viewValue$$;$callback$$()},{req:$req$$});else $callback$$()},function($callback$jscomp$0$$){let $objs$$=$req$$.obj;$ctrl$$.options.onExport&&$objs$$?async.mapSeries($objs$$,function($obj$$,$callback$$){setImmediate(()=>{$ctrl$$.options.onExport($user$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$()})})},function($e$$){if($e$$)return console.error("exportToExcel onExport",$e$$),
7
- $e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$callback$jscomp$0$$()}):$callback$jscomp$0$$()},function($callback$jscomp$0$$){let $rpt_id$$=$req$$.params.rpt_id,$id_app$$=$query$$.id_app,$query_rpt$$={ma_cn:($query$$["listinfo-code"]||$ctrl$$.module).toUpperCase(),id_app:$id_app$$};global.getModel("rpt").find($query_rpt$$).lean().exec(function($e$jscomp$2$$,$rps$$){if($e$jscomp$2$$)return console.error("exportToExcel find rpt",$e$jscomp$2$$),$e$jscomp$2$$.error?
8
- $callback$jscomp$0$$($e$jscomp$2$$):$callback$jscomp$0$$({error:$e$jscomp$2$$.message||$e$jscomp$2$$});let $objs$$=$req$$.obj,$rs$$=_.find($rps$$,function($r$$){return $r$$._id.toString()===$rpt_id$$});if(!$rs$$)return $callback$jscomp$0$$({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file m\u1eabu"});global.getModel("app").findOne({_id:$id_app$$},{viettel_user:0,viettel_password:0,viettel_url_service:0,vnpt_user:0,vnpt_password:0,vnpt_url_service:0,easy_user:0,easy_password:0,easy_url_service:0,zalo_app_id:0,
9
- zalo_secret_key:0,zalo_code:0,zalo_oa_id:0,zalo_code_verifier:0,zalo_code_challenge:0,zalo_access_token:0,zalo_refresh_token:0,google_credentials:0,sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0}).lean().exec(function($error$$,$_app$$){setImmediate(()=>{if($error$$)return $callback$jscomp$0$$({error:"Kh\u00f4ng t\u1ed3n t\u1ea1i c\u00f4ng ty n\u00e0y"});
10
- delete $_app$$.participants;delete $_app$$.expire_date;delete $_app$$.sale_online;_.extend($_app$$,$query$$);delete $_app$$.access_token;let $data4export$$=[];$objs$$.forEach(function($_data_obj$$){for(let $_obj_c$$ in $_data_obj$$)if(_.isObject($_data_obj$$[$_obj_c$$]))for(let $k$$ in $_data_obj$$[$_obj_c$$])if(0<=$k$$.indexOf("ngay")||0<=$k$$.indexOf("date"))try{$_data_obj$$[$_obj_c$$+"_"+$k$$]=new Date($_data_obj$$[$_obj_c$$][$k$$])}catch($e$$){$_data_obj$$[$_obj_c$$+"_"+$k$$]=$_data_obj$$[$_obj_c$$][$k$$]}else $_data_obj$$[$_obj_c$$+
11
- "_"+$k$$]=$_data_obj$$[$_obj_c$$][$k$$];$_data_obj$$={obj:$_data_obj$$};_.extend($_data_obj$$,$_app$$);$data4export$$.push($_data_obj$$)});getParameters($id_app$$,$rps$$,($e$jscomp$1$$,$parameters$$)=>{if($e$jscomp$1$$)return console.error("exportToExcel get params",$e$jscomp$1$$),$e$jscomp$1$$.error?$callback$jscomp$0$$($e$jscomp$1$$):$callback$jscomp$0$$({error:$e$jscomp$1$$.message||$e$jscomp$1$$});async.mapSeries($data4export$$,function($_data$$,$callback$$){setImmediate(()=>{prepareParameters($ctrl$$,
12
- $parameters$$,$_data$$,$_data$$.obj,function($e$$,$rs$$){if($e$$)return $callback$$($e$$);delete $_data$$.obj;$callback$$(null,$rs$$)})})},async function($e$jscomp$0$$){setImmediate(async()=>{if($e$jscomp$0$$)return console.error("exportToExcel",$e$jscomp$0$$),$e$jscomp$0$$.error?$callback$jscomp$0$$($e$jscomp$0$$):$callback$jscomp$0$$({error:$e$jscomp$0$$.message||$e$jscomp$0$$});if($query$$.print){console.log("render print page....");if(!$rs$$.html_template)return $callback$jscomp$0$$({error:"Ch\u01b0a khai b\u00e1o m\u1eabu in"});
13
- let $cac_lien$$=$rs$$.cac_lien;$cac_lien$$&&0!=$cac_lien$$.length||($cac_lien$$=[{ma_lien:1,ten_lien:"Li\u00ean 1"}]);try{let $pages$$=[];async.mapSeries($data4export$$,($_data$$,$callback$$)=>{$_data$$.datasource={...$_data$$};$_data$$.company={...$_app$$};async.mapSeries($cac_lien$$,async $lien_page$$=>{$_data$$.lien=$lien_page$$;$lien_page$$=await htmlReport($rs$$._id,$_data$$);$pages$$.push($lien_page$$)},()=>{$callback$$()})},()=>{$req$$.data=$pages$$;$req$$.ext="print";$callback$jscomp$0$$(null)})}catch($e$$){return console.error("exportToExcel",
14
- $e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$})}}else if($query$$.json)$req$$.data=$data4export$$,$req$$.ext="json",$callback$jscomp$0$$(null);else{if(!$rs$$.file_mau_in)return $callback$jscomp$0$$({error:"Ch\u01b0a khai b\u00e1o file excel m\u1eabu"});var $dir_root_templates_id_file$$=configs.paths.templates||__dirname;let $templatePath$$;if(0<$rs$$.file_mau_in.indexOf("/file/download")){$dir_root_templates_id_file$$=$rs$$.file_mau_in.split("/").pop();
15
- const $file$$=global.getModel("file");try{var $_data$jscomp$0$$=await $file$$.findOne({_id:$dir_root_templates_id_file$$});$_data$jscomp$0$$||$callback$jscomp$0$$({error:"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"});let $file_name$$=$_data$jscomp$0$$.file.name,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){return $callback$jscomp$0$$({error:$e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"})}}else $templatePath$$=
16
- path.dirname($dir_root_templates_id_file$$)+$rs$$.file_mau_in;if(!$templatePath$$||!fs.existsSync($templatePath$$))return $callback$jscomp$0$$({error:"File m\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i"});let $ext$$=$templatePath$$.split(".").pop();"xlsx"===$ext$$?excelReport($templatePath$$,$data4export$$,function($e$$,$result$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$.data=$result$$;$req$$.ext="xlsx";
17
- $callback$jscomp$0$$(null)})},{timezone:configs.timezone||"Asia/Ho_Chi_Minh"}):($_data$jscomp$0$$=$data4export$$[0],$_data$jscomp$0$$.datasource={...$_data$jscomp$0$$},$_data$jscomp$0$$.company={...$_app$$},textReport($templatePath$$,$_data$jscomp$0$$,function($e$$,$result$$){setImmediate(()=>{if($e$$)return console.error("exportToExcel textreport",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});"docx"===$ext$$?($req$$.data=$result$$,$req$$.ext="docx"):
18
- ($req$$.data=$result$$,$req$$.ext="text");$callback$jscomp$0$$(null)})}))}})})})})})})}],$e$$=>{if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,{ext:$req$$.ext,data:$req$$.data})})};module.exports=exportHandler;
2
+ async.series([function($callback$jscomp$0$$){let $id$$=$query$$._id;if(!$id$$)return $callback$jscomp$0$$({error:"H\u00e0m n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 _id"});let $ids$$=$id$$.split(",");$model$$.find({_id:{$in:$ids$$}}).lean().then(function($obj$$){setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,id_func:$ctrl$$.name,action:"ExportTOExcel",data:{id:$id$$}},$user$$.email,$req$$.user_agent,$req$$)});if(0==$obj$$.length)return $callback$jscomp$0$$({error:ERRORS.ERR_NOT_HAVE_DATA,
3
+ code:ERRORS.ERR_NOT_HAVE_DATA_CODE});$ctrl$$.getting?async.mapSeries($obj$$,function($ob$$,$callback$$){setImmediate(()=>{$ctrl$$.getting($user$$,$ob$$._id,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null)},$ob$$)})},function($e$$){if($e$$)return console.error("exportToExcel",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$.obj=$obj$$;$callback$jscomp$0$$()}):($req$$.obj=$obj$$,$callback$jscomp$0$$())}).catch($e$$=>{console.error("exportToExcel query",
4
+ $e$$);return $e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$})})},function($callback$jscomp$0$$){async.mapSeries($req$$.obj,function($obj$$,$callback$$){setImmediate(async()=>{let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:"view"});permission.hasRight($obj$$.id_app,$user$$.email,$ctrl$$.module,"view",function($error$$,$permission$$){$permission$$?$callback$$():($error$$=$error$$||"",$callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,
5
+ code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE}))},{data:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})},function($e$$){if($e$$)return console.error("exportToExcel permission",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$callback$jscomp$0$$()})},function($callback$$){let $objs$$=$req$$.obj;if($objs$$)$ctrl$$.onView($user$$,$objs$$,function($e$$,$viewValue$$){if($e$$)return console.error("exportToExcel onview",$e$$),$e$$.error?
6
+ $callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.obj=$viewValue$$;$callback$$()},{req:$req$$});else $callback$$()},function($callback$jscomp$0$$){let $objs$$=$req$$.obj;$ctrl$$.options.onExport&&$objs$$?async.mapSeries($objs$$,function($obj$$,$callback$$){setImmediate(()=>{$ctrl$$.options.onExport($user$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$()})})},function($e$$){if($e$$)return console.error("exportToExcel onExport",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):
7
+ $callback$jscomp$0$$({error:$e$$.message||$e$$});$callback$jscomp$0$$()}):$callback$jscomp$0$$()},function($callback$jscomp$0$$){let $rpt_id$$=$req$$.params.rpt_id,$id_app$$=$query$$.id_app,$query_rpt$$={ma_cn:($query$$["listinfo-code"]||$ctrl$$.module).toUpperCase(),id_app:$id_app$$};global.getModel("rpt").find($query_rpt$$).lean().then(function($rps$$){let $objs$$=$req$$.obj,$rs$$=_.find($rps$$,function($r$$){return $r$$._id.toString()===$rpt_id$$});if(!$rs$$)return $callback$jscomp$0$$({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file m\u1eabu"});
8
+ global.getModel("app").findOne({_id:$id_app$$},{viettel_user:0,viettel_password:0,viettel_url_service:0,vnpt_user:0,vnpt_password:0,vnpt_url_service:0,easy_user:0,easy_password:0,easy_url_service:0,zalo_app_id:0,zalo_secret_key:0,zalo_code:0,zalo_oa_id:0,zalo_code_verifier:0,zalo_code_challenge:0,zalo_access_token:0,zalo_refresh_token:0,google_credentials:0,sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,
9
+ email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0}).lean().then(function($_app$$){setImmediate(()=>{delete $_app$$.participants;delete $_app$$.expire_date;delete $_app$$.sale_online;_.extend($_app$$,$query$$);delete $_app$$.access_token;let $data4export$$=[];$objs$$.forEach(function($_data_obj$$){for(let $_obj_c$$ in $_data_obj$$)if(_.isObject($_data_obj$$[$_obj_c$$]))for(let $k$$ in $_data_obj$$[$_obj_c$$])if(0<=$k$$.indexOf("ngay")||
10
+ 0<=$k$$.indexOf("date"))try{$_data_obj$$[$_obj_c$$+"_"+$k$$]=new Date($_data_obj$$[$_obj_c$$][$k$$])}catch($e$$){$_data_obj$$[$_obj_c$$+"_"+$k$$]=$_data_obj$$[$_obj_c$$][$k$$]}else $_data_obj$$[$_obj_c$$+"_"+$k$$]=$_data_obj$$[$_obj_c$$][$k$$];$_data_obj$$={obj:$_data_obj$$};_.extend($_data_obj$$,$_app$$);$data4export$$.push($_data_obj$$)});getParameters($id_app$$,$rps$$,($e$jscomp$1$$,$parameters$$)=>{if($e$jscomp$1$$)return console.error("exportToExcel get params",$e$jscomp$1$$),$e$jscomp$1$$.error?
11
+ $callback$jscomp$0$$($e$jscomp$1$$):$callback$jscomp$0$$({error:$e$jscomp$1$$.message||$e$jscomp$1$$});async.mapSeries($data4export$$,function($_data$$,$callback$$){setImmediate(()=>{prepareParameters($ctrl$$,$parameters$$,$_data$$,$_data$$.obj,function($e$$,$rs$$){if($e$$)return $callback$$($e$$);delete $_data$$.obj;$callback$$(null,$rs$$)})})},async function($e$jscomp$0$$){setImmediate(async()=>{if($e$jscomp$0$$)return console.error("exportToExcel",$e$jscomp$0$$),$e$jscomp$0$$.error?$callback$jscomp$0$$($e$jscomp$0$$):
12
+ $callback$jscomp$0$$({error:$e$jscomp$0$$.message||$e$jscomp$0$$});if($query$$.print){console.log("render print page....");if(!$rs$$.html_template)return $callback$jscomp$0$$({error:"Ch\u01b0a khai b\u00e1o m\u1eabu in"});let $cac_lien$$=$rs$$.cac_lien;$cac_lien$$&&0!=$cac_lien$$.length||($cac_lien$$=[{ma_lien:1,ten_lien:"Li\u00ean 1"}]);try{let $pages$$=[];async.mapSeries($data4export$$,($_data$$,$callback$$)=>{$_data$$.datasource={...$_data$$};$_data$$.company={...$_app$$};async.mapSeries($cac_lien$$,
13
+ async $lien_page$$=>{$_data$$.lien=$lien_page$$;$lien_page$$=await htmlReport($rs$$._id,$_data$$);$pages$$.push($lien_page$$)},()=>{$callback$$()})},()=>{$req$$.data=$pages$$;$req$$.ext="print";$callback$jscomp$0$$(null)})}catch($e$$){return console.error("exportToExcel",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$})}}else if($query$$.json)$req$$.data=$data4export$$,$req$$.ext="json",$callback$jscomp$0$$(null);else{if(!$rs$$.file_mau_in)return $callback$jscomp$0$$({error:"Ch\u01b0a khai b\u00e1o file excel m\u1eabu"});
14
+ var $dir_root_templates_id_file$$=configs.paths.templates||__dirname;let $templatePath$$;if(0<$rs$$.file_mau_in.indexOf("/file/download")){$dir_root_templates_id_file$$=$rs$$.file_mau_in.split("/").pop();const $file$$=global.getModel("file");try{var $_data$jscomp$0$$=await $file$$.findOne({_id:$dir_root_templates_id_file$$});$_data$jscomp$0$$||$callback$jscomp$0$$({error:"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"});let $file_name$$=$_data$jscomp$0$$.file.name,$root$$=configs.paths.uploads;$root$$||
15
+ ($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){return $callback$jscomp$0$$({error:$e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"})}}else $templatePath$$=path.dirname($dir_root_templates_id_file$$)+$rs$$.file_mau_in;if(!$templatePath$$||!fs.existsSync($templatePath$$))return $callback$jscomp$0$$({error:"File m\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i"});let $ext$$=$templatePath$$.split(".").pop();
16
+ "xlsx"===$ext$$?excelReport($templatePath$$,$data4export$$,function($e$$,$result$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$.data=$result$$;$req$$.ext="xlsx";$callback$jscomp$0$$(null)})},{timezone:configs.timezone||"Asia/Ho_Chi_Minh"}):($_data$jscomp$0$$=$data4export$$[0],$_data$jscomp$0$$.datasource={...$_data$jscomp$0$$},$_data$jscomp$0$$.company={...$_app$$},textReport($templatePath$$,$_data$jscomp$0$$,
17
+ function($e$$,$result$$){setImmediate(()=>{if($e$$)return console.error("exportToExcel textreport",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});"docx"===$ext$$?($req$$.data=$result$$,$req$$.ext="docx"):($req$$.data=$result$$,$req$$.ext="text");$callback$jscomp$0$$(null)})}))}})})})})}).catch($error$$=>{console.error($error$$);return $callback$jscomp$0$$({error:"Kh\u00f4ng t\u1ed3n t\u1ea1i c\u00f4ng ty n\u00e0y"})})}).catch($e$$=>{console.error("exportToExcel find rpt",
18
+ $e$$);return $e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$})})}],$e$$=>{if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,{ext:$req$$.ext,data:$req$$.data})})};module.exports=exportHandler;
@@ -10,10 +10,10 @@ $e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$
10
10
  code:$e$jscomp$0$$.code||ERRORS.ERR_NOT_PERMIT_CODE});if($admin$$)return $callback$$();$req$$.admin=$admin$$;let $condition$$=$req$$.condition;$condition$$||($condition$$={});$condition$$.$and||($condition$$.$and=[]);if($ctrl$$.options.onRightByItem)$ctrl$$.options.onRightByItem($req$$.user,$_condition$$,($e$$,$_condition$$)=>{setImmediate(()=>{if($e$$)return $callback$$({error:$e$$.error||$e$$.message||$e$$});_.isObject($_condition$$)&&0<Object.keys($_condition$$).length&&$condition$$.$and.push($_condition$$);
11
11
  $req$$.condition_assign=$_condition$$;$req$$.condition=$condition$$;$callback$$()})});else _.isObject($_condition$$)&&0<Object.keys($_condition$$).length&&$condition$$.$and.push($_condition$$),$req$$.condition_assign=$_condition$$,$req$$.condition=$condition$$,$callback$$()})},$ctrl$$.name,{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$})})},function($callback$jscomp$0$$){if($shareRoute$$||$req$$.admin||!$req$$.condition_assign||0===Object.keys($req$$.condition_assign).length)return $callback$jscomp$0$$();
12
12
  setImmediate(()=>{if($ctrl$$.options.assignWiths){let $condition_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:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$,code:$e$jscomp$0$$.code||ERRORS.ERR_NOT_PERMIT_CODE});
13
- if($admin$$)return $callback$$();$_condition$$.id_app=$req$$.user.current_id_app;$req$$.condition[$col$$.ref_field]&&($_condition$$[$col$$.ref_field]=$req$$.condition[$col$$.ref_field]);$m$$.find($_condition$$,{[$col$$.ref_field]:1}).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return $callback$$($e$$);let $dsdt$$=$rs$$.map($r$$=>$r$$[$col$$.ref_field]);$dsdt$$.push("");$dsdt$$.push(null);$condition_assignwiths$$[$col$$.field]={$in:$dsdt$$};$callback$$()})})})},$col$$.ref_module)})},$e$$=>
14
- {setImmediate(()=>{if($e$$)return $callback$jscomp$0$$({error:$e$$.error||$e$$.message||$e$$});if(0<Object.keys($condition_assignwiths$$).length){let $condition$$=$req$$.condition_assign||$req$$.condition;$condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push($condition_assignwiths$$)}$callback$jscomp$0$$()})})}else $callback$jscomp$0$$()})},function($callback$$){setImmediate(async()=>{if($shareRoute$$)return $callback$$();let $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,{action:"view"});
15
- 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$$,$e$$=>{if($e$$)return $callback$$({error:$e$$.error||$e$$.message||$e$$});if(!$req$$.permission)return $req$$.result=[],$callback$$("0");$callback$$()});else{if(!$permission$$)return $req$$.result=[],$callback$$("0");$callback$$()}})},{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$})})},
16
- function($callback$jscomp$0$$){setImmediate(async()=>{let $condition$jscomp$0$$=$req$$.condition;$condition$jscomp$0$$||($condition$jscomp$0$$={});for(var $data_log_fields_fields$$ in $condition$jscomp$0$$)if("_id"===$data_log_fields_fields$$||$data_log_fields_fields$$.startsWith("$")||$data_log_fields_fields$$.includes(".")||_.has($model$$.schema.paths,$data_log_fields_fields$$)||delete $condition$jscomp$0$$[$data_log_fields_fields$$],"$and"==$data_log_fields_fields$$){for(var $dk_limit_group$$ of $condition$jscomp$0$$.$and)for(var $key_q$jscomp$1_page$$ in $dk_limit_group$$)"_id"===
13
+ if($admin$$)return $callback$$();$_condition$$.id_app=$req$$.user.current_id_app;$req$$.condition[$col$$.ref_field]&&($_condition$$[$col$$.ref_field]=$req$$.condition[$col$$.ref_field]);$m$$.find($_condition$$,{[$col$$.ref_field]:1}).lean().then($rs$$=>{setImmediate(()=>{let $dsdt$$=$rs$$.map($r$$=>$r$$[$col$$.ref_field]);$dsdt$$.push("");$dsdt$$.push(null);$condition_assignwiths$$[$col$$.field]={$in:$dsdt$$};$callback$$()})}).catch($e$$=>{$callback$$($e$$)})})},$col$$.ref_module)})},$e$$=>{setImmediate(()=>
14
+ {if($e$$)return $callback$jscomp$0$$({error:$e$$.error||$e$$.message||$e$$});if(0<Object.keys($condition_assignwiths$$).length){let $condition$$=$req$$.condition_assign||$req$$.condition;$condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push($condition_assignwiths$$)}$callback$jscomp$0$$()})})}else $callback$jscomp$0$$()})},function($callback$$){setImmediate(async()=>{if($shareRoute$$)return $callback$$();let $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,{action:"view"});permission.hasRight($req$$.user.current_id_app,
15
+ $req$$.user.email,$ctrl$$.module,"view",function($error$$,$permission$$){setImmediate(()=>{if($ctrl$$.options.onQuery)$req$$.permission=$permission$$,$ctrl$$.options.onQuery($req$$,$e$$=>{if($e$$)return $callback$$({error:$e$$.error||$e$$.message||$e$$});if(!$req$$.permission)return $req$$.result=[],$callback$$("0");$callback$$()});else{if(!$permission$$)return $req$$.result=[],$callback$$("0");$callback$$()}})},{notNeedRight:$notNeedRight$$,right_code:$listinfo_code$$})})},function($callback$jscomp$0$$){setImmediate(async()=>
16
+ {let $condition$jscomp$0$$=$req$$.condition;$condition$jscomp$0$$||($condition$jscomp$0$$={});for(var $data_log_fields_fields$$ in $condition$jscomp$0$$)if("_id"===$data_log_fields_fields$$||$data_log_fields_fields$$.startsWith("$")||$data_log_fields_fields$$.includes(".")||_.has($model$$.schema.paths,$data_log_fields_fields$$)||delete $condition$jscomp$0$$[$data_log_fields_fields$$],"$and"==$data_log_fields_fields$$){for(var $dk_limit_group$$ of $condition$jscomp$0$$.$and)for(var $key_q$jscomp$1_page$$ in $dk_limit_group$$)"_id"===
17
17
  $key_q$jscomp$1_page$$||$key_q$jscomp$1_page$$.startsWith("$")||$key_q$jscomp$1_page$$.includes(".")||_.has($model$$.schema.paths,$key_q$jscomp$1_page$$)||delete $dk_limit_group$$[$key_q$jscomp$1_page$$];$condition$jscomp$0$$.$and=$condition$jscomp$0$$.$and.filter($a$$=>0<Object.keys($a$$).length)}$shareRoute$$?($condition$jscomp$0$$.shared=!0,$data_log_fields_fields$$=(await global.getModel("app").find({sale_online:!0},{_id:1}).lean()).map($a$$=>$a$$._id),$condition$jscomp$0$$.$and||($condition$jscomp$0$$.$and=
18
18
  []),$condition$jscomp$0$$.$and.push({id_app:{$in:$data_log_fields_fields$$}}),$condition$jscomp$0$$.id_app&&$condition$jscomp$0$$.$and.push({id_app:$condition$jscomp$0$$.id_app})):_.has($model$$.schema.paths,"id_app")&&!1!==$ctrl$$.require_id_app&&($condition$jscomp$0$$.id_app=$req$$.user.current_id_app);"public"===$req$$.user.email&&_.has($model$$.schema.paths,"session_created")&&($condition$jscomp$0$$.session_created=($req$$.cookies||{}).uid);_.extend($condition$jscomp$0$$,$ctrl$$.keyValues);utils.deleteEmptyObject($condition$jscomp$0$$);
19
19
  _.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$jscomp$0$$.ma_ct=$ctrl$$.name.toUpperCase());let $condition_group$$;$req$$.fetch_by_groups&&$req$$.fetch_by_groups.model_group&&$req$$.fetch_by_groups.field&&($condition_group$$=$req$$.fetch_by_groups.condition||{},$condition_group$$.status=!0,$condition_group$$.id_app=$req$$.user.current_id_app,$condition$jscomp$0$$[$req$$.fetch_by_groups.field]&&($condition_group$$[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]=
@@ -30,11 +30,11 @@ $gfields$$;else if($project$$={_id:1},$group$$)for(let $key$$ in $group$$)$proje
30
30
  $query$$.sort($aggregate_piples_sort$$);"xlsx"!==$req$$.query.type_data&&"json_export"!==$req$$.query.type_data&&"1"!=$req$$.query.rpt&&($limit$jscomp$0$$&&($limit$jscomp$0$$=Number($limit$jscomp$0$$)),$limit$jscomp$0$$||($limit$jscomp$0$$=!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&"labelinfo"!==$ctrl$$.name?20:500),$limit$jscomp$0$$&&500<$limit$jscomp$0$$&&!$req$$.query.print&&!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&"labelinfo"!==$ctrl$$.name&&($limit$jscomp$0$$=500),$page$$?
31
31
  ($key$jscomp$0$$=(Number($page$$)-1)*$limit$jscomp$0$$,0>$key$jscomp$0$$&&($key$jscomp$0$$=0),$query$$.skip($key$jscomp$0$$).limit($limit$jscomp$0$$)):$query$$.limit($limit$jscomp$0$$));$ctrl$$.populate&&($query$$=$ctrl$$.populate($query$$));$query$$.lean&&($query$$=$query$$.lean());if($req$$.query.explainQuery){"explainQuery"!=$req$$.query.explainQuery&&"executionStats"!=$req$$.query.explainQuery&&($req$$.query.explainQuery="queryPlanner");try{const $filter$$=$query$$.getFilter(),$projection$$=$query$$.getOptions().projection||
32
32
  {},$skip$$=$query$$.getOptions().skip||0,$limit$$=$query$$.getOptions().limit||0,$sort$$=$query$$.getOptions().sort||{},$explainResult$$=await $query$$.mongooseCollection.find($filter$$,{projection:$projection$$}).skip($skip$$).limit($limit$$).sort($sort$$).explain($req$$.query.explainQuery),{parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$}=$explainResult$$.queryPlanner||{},{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,
33
- totalDocsExamined:$totalDocsExamined$$}=$explainResult$$.executionStats||{};$callback$$(null,[{queryPlanner:{parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$},executionStats:{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,totalDocsExamined:$totalDocsExamined$$},_id:""}])}catch($e$$){$callback$$($e$$)}}else $query$$.exec(($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})})};$data_log_fields_fields$$=$req$$.query;
34
- delete $data_log_fields_fields$$.access_token;$req$$.user&&!$data_log_fields_fields$$.count&&"log"!==$ctrl$$.name&&"labelinfo"!==$ctrl$$.name&&"listinfo"!==$ctrl$$.name&&"reportinfo"!==$ctrl$$.name&&"moduleinfo"!==$ctrl$$.name&&"options"!==$ctrl$$.name&&global.getModel("log").create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"QUERY",data:{condition:JSON.stringify($data_log_fields_fields$$)}},$req$$.user.email,$req$$.user_agent,$req$$);let $condition_groups$$=[],$limit$$=Number($req$$.query.limit||
35
- 20),$page_fetch$$=Number($req$$.query.page||0);isNaN($page_fetch$$)&&($page_fetch$$=0);isNaN($limit$$)&&($limit$$=20);if($condition_group$$){let $field_ref$$=$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field;$data_log_fields_fields$$={[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1};$dk_limit_group$$=$req$$.fetch_by_groups.limit_group||10;$key_q$jscomp$1_page$$=Number($req$$.query.page||0);isNaN($key_q$jscomp$1_page$$)&&($key_q$jscomp$1_page$$=0);let $skip$$=0;1<$key_q$jscomp$1_page$$&&
36
- ($skip$$=($key_q$jscomp$1_page$$-1)*$dk_limit_group$$);0>$skip$$&&($skip$$=0);(await global.getModel($req$$.fetch_by_groups.model_group).find($condition_group$$,$data_log_fields_fields$$).sort({stt:1,[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1}).skip($skip$$).limit($dk_limit_group$$).lean()).forEach($g$$=>{let $c$$={...$condition$jscomp$0$$};$c$$[$req$$.fetch_by_groups.field]=$g$$[$field_ref$$];$condition_groups$$.push($c$$)});0==$condition_groups$$.length?$condition_groups$$=
37
- [$condition$jscomp$0$$]:($page_fetch$$=0,$req$$.fetch_by_groups.limit&&($limit$$=Math.max(Number($req$$.fetch_by_groups.limit),Math.round($limit$$/$condition_groups$$.length))))}else $condition_groups$$=[$condition$jscomp$0$$];async.map($condition_groups$$,($condition$$,$cb$$)=>{$fetchData$$($condition$$,$limit$$,$page_fetch$$,$cb$$)},($e$jscomp$0$$,$obj4views$$)=>{if($e$jscomp$0$$)return console.error("exec query find",$e$jscomp$0$$,JSON.stringify($condition$jscomp$0$$)),$callback$jscomp$0$$({error:$e$jscomp$0$$.error||
33
+ totalDocsExamined:$totalDocsExamined$$}=$explainResult$$.executionStats||{};$callback$$(null,[{queryPlanner:{parsedQuery:$parsedQuery$$,winningPlan:$winningPlan$$},executionStats:{executionSuccess:$executionSuccess$$,nReturned:$nReturned$$,executionTimeMillis:$executionTimeMillis$$,totalKeysExamined:$totalKeysExamined$$,totalDocsExamined:$totalDocsExamined$$},_id:""}])}catch($e$$){$callback$$($e$$)}}else $query$$.then($rs$$=>{$callback$$(null,$rs$$)}).catch($e$$=>{$callback$$($e$$)})})};$data_log_fields_fields$$=
34
+ $req$$.query;delete $data_log_fields_fields$$.access_token;$req$$.user&&!$data_log_fields_fields$$.count&&"log"!==$ctrl$$.name&&"labelinfo"!==$ctrl$$.name&&"listinfo"!==$ctrl$$.name&&"reportinfo"!==$ctrl$$.name&&"moduleinfo"!==$ctrl$$.name&&"options"!==$ctrl$$.name&&global.getModel("log").create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"QUERY",data:{condition:JSON.stringify($data_log_fields_fields$$)}},$req$$.user.email,$req$$.user_agent,$req$$);let $condition_groups$$=[],$limit$$=
35
+ Number($req$$.query.limit||20),$page_fetch$$=Number($req$$.query.page||0);isNaN($page_fetch$$)&&($page_fetch$$=0);isNaN($limit$$)&&($limit$$=20);if($condition_group$$){let $field_ref$$=$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field;$data_log_fields_fields$$={[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1};$dk_limit_group$$=$req$$.fetch_by_groups.limit_group||10;$key_q$jscomp$1_page$$=Number($req$$.query.page||0);isNaN($key_q$jscomp$1_page$$)&&($key_q$jscomp$1_page$$=
36
+ 0);let $skip$$=0;1<$key_q$jscomp$1_page$$&&($skip$$=($key_q$jscomp$1_page$$-1)*$dk_limit_group$$);0>$skip$$&&($skip$$=0);(await global.getModel($req$$.fetch_by_groups.model_group).find($condition_group$$,$data_log_fields_fields$$).sort({stt:1,[$req$$.fetch_by_groups.ref_field||$req$$.fetch_by_groups.field]:1}).skip($skip$$).limit($dk_limit_group$$).lean()).forEach($g$$=>{let $c$$={...$condition$jscomp$0$$};$c$$[$req$$.fetch_by_groups.field]=$g$$[$field_ref$$];$condition_groups$$.push($c$$)});0==$condition_groups$$.length?
37
+ $condition_groups$$=[$condition$jscomp$0$$]:($page_fetch$$=0,$req$$.fetch_by_groups.limit&&($limit$$=Math.max(Number($req$$.fetch_by_groups.limit),Math.round($limit$$/$condition_groups$$.length))))}else $condition_groups$$=[$condition$jscomp$0$$];async.map($condition_groups$$,($condition$$,$cb$$)=>{$fetchData$$($condition$$,$limit$$,$page_fetch$$,$cb$$)},($e$jscomp$0$$,$obj4views$$)=>{if($e$jscomp$0$$)return console.error("exec query find",$e$jscomp$0$$,JSON.stringify($condition$jscomp$0$$)),$callback$jscomp$0$$({error:$e$jscomp$0$$.error||
38
38
  $e$jscomp$0$$.message||$e$jscomp$0$$});let $obj4view$$=$obj4views$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$obj4view$$||($obj4view$$=[]);async.parallel({found:function($callback$$){$ctrl$$.found?$ctrl$$.found($req$$.user,$condition$jscomp$0$$,$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)});
39
39
  $callback$$(null)}},function($error$jscomp$0$$,$rs$jscomp$1$$){setImmediate(()=>{if($error$jscomp$0$$)return $callback$jscomp$0$$({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});$obj4view$$=$rs$jscomp$1$$.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$$,shareRoute:$shareRoute$$})}},
40
40
  async function($app_dir_root_template_e$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});$req$$.query_cache&&setImmediate(()=>{redisCache.setCacheReport($req$$.user.email,($req$$.user.current_id_app||"system").toString(),$ctrl$$.name,$req$$.query_cache,$rs$jscomp$0$$.e_view,$req$$.query.page)});if($req$$.query.type_data&&"xlsx"==$req$$.query.type_data){$app_dir_root_template_e$$=(configs.paths||{}).templates;
@@ -1,2 +1,2 @@
1
- 'use strict';const historyHandler=($ctrl_query$$,$actions_req$$,$mainCallback$$)=>{$ctrl_query$$={id_func:$ctrl_query$$.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(","),$ctrl_query$$.action={$in:$actions_req$$,$ne:"GET"}):$ctrl_query$$.action={$ne:"GET"};global.getModel("log").find($ctrl_query$$).lean().exec(function($e$$,$rs$$){setImmediate(()=>{if($e$$)return console.error("history query",
2
- $e$$),$e$$.error?$mainCallback$$($e$$):$mainCallback$$({error:$e$$.message||$e$$});$rs$$.forEach($r$$=>{$r$$.ip=$r$$.ip||""});return $mainCallback$$(null,$rs$$)})})};module.exports=historyHandler;
1
+ 'use strict';const historyHandler=($ctrl_query$$,$actions_req$$,$mainCallback$$)=>{$ctrl_query$$={id_func:$ctrl_query$$.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(","),$ctrl_query$$.action={$in:$actions_req$$,$ne:"GET"}):$ctrl_query$$.action={$ne:"GET"};global.getModel("log").find($ctrl_query$$).lean().then(function($rs$$){setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.ip=$r$$.ip||
2
+ ""});return $mainCallback$$(null,$rs$$)})}).catch($e$$=>{console.error("history query",$e$$);return $e$$.error?$mainCallback$$($e$$):$mainCallback$$({error:$e$$.message||$e$$})})};module.exports=historyHandler;
@@ -13,10 +13,10 @@ $options:"i"}},{tk:1}).lean()||{}).tk;for(let $vt$$ of $kho_vts$$)$vt$$.id_app=$
13
13
  $data_value$$=$row$$[$key$$];if($data_value$$&&_.isString($data_value$$)&&("mixed"==$data_type$$||"array"==$data_type$$)&&($data_value$$=$data_value$$.trim(),0==$data_value$$.indexOf("[")||0==$data_value$$.indexOf("{")))try{$row$$[$key$$]=JSONParser($data_value$$)}catch($e$$){delete $row$$[$key$$],console.error("Error parse data",$e$$)}});setImmediate(async()=>{for(let $i$$=0;$i$$<$modelJoins$$.length;$i$$++){let $field_ref$$=$modelJoins$$[$i$$];if($row$$[$field_ref$$.name]){let $new_data_ref$$=await global.getModel("originimportid").findOne({id_app:$id_app$$,
14
14
  old_id:$row$$[$field_ref$$.name]}).lean();$new_data_ref$$&&($row$$[$field_ref$$.name]=$new_data_ref$$.new_id)}}delete $row$$.__v;let $old_id$$=$row$$._id;$row$$.ma_dvcs&&!$row$$.ten_dvcs&&delete $row$$.ma_dvcs;$row$$.id_app&&$id_app$$!=$row$$.id_app&&delete $row$$._id;delete $row$$.id_app;if($replace$$&&($ctrl$$.unique&&0<$ctrl$$.unique.length||$row$$._id)){let $query$$={};if($ctrl$$.unique&&0<$ctrl$$.unique.length){if($ctrl$$.options.unique_imp&&null!=$row$$[$ctrl$$.options.unique_imp]&&void 0!=
15
15
  $row$$[$ctrl$$.options.unique_imp]&&""!=$row$$[$ctrl$$.options.unique_imp])$query$$[$ctrl$$.options.unique_imp]=$row$$[$ctrl$$.options.unique_imp];else if($ctrl$$.unique.forEach(function($k$$){0<=$row_keys$$.indexOf($k$$)&&($query$$[$k$$]=$row$$[$k$$],void 0==$query$$[$k$$]&&delete $query$$[$k$$])}),1>Object.keys($query$$).length)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, D\u1eef li\u1ec7u kh\u00f4ng t\u1ed3n t\u1ea1i \u0111\u1ee7 c\u00e1c gi\u00e1 tr\u1ecb:"+$ctrl$$.unique.join(","));
16
- 0!=$ctrl$$.require_id_app&&($query$$.id_app=$id_app$$)}else $query$$._id=$row$$._id;$ctrl$$.model.find($query$$).lean().exec(function($error$$,$rss$$){if($error$$)return $callback$$($error$$);if(1<$rss$$.length)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, \u0111\u1ed1i t\u01b0\u1ee3ng "+Object.values($query$$).join("-")+" \u0111\u00e3 t\u1ed3n t\u1ea1i nhi\u1ec1u h\u01a1n m\u1ed9t l\u1ea7n");setImmediate(async()=>{let $foundObject$$;1===$rss$$.length&&($foundObject$$=$rss$$[0]);$foundObject$$?
17
- ($row$$.id_app=$foundObject$$.id_app,$row$$._id=$foundObject$$._id.toString(),($ctrl$$.unique||[]).forEach(function($k$$){$row$$[$k$$]=$foundObject$$[$k$$]}),update($user$$,$ctrl$$,$foundObject$$._id,$row$$,function($e$$){if($e$$){let $_e$$=$e$$;_.isArray($_e$$)||($_e$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$$})}$callback$$()},"import",$options$$.req,"import")):create($user$$,$ctrl$$,$row$$,function($e$$,$new_row$$){setImmediate(async()=>{if($e$$){var $_e$jscomp$1_i$$=
18
- $e$$;_.isArray($_e$jscomp$1_i$$)||($_e$jscomp$1_i$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$jscomp$1_i$$})}else if($row$$._id_new__=$new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$new_row$$.id_app,old_id:$old_id$$},{id_app:$new_row$$.id_app,old_id:$old_id$$,new_id:$new_row$$._id.toString()},{new:!0,upsert:!0}),$_e$jscomp$1_i$$=0;$_e$jscomp$1_i$$<$data$$.length;$_e$jscomp$1_i$$++){const $_r$$=$data$$[$_e$jscomp$1_i$$];
19
- for(let $key$$ in $_r$$)"_id"!=$key$$&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$new_row$$._id.toString()}))}$callback$$()})},$row$$._id,$options$$.req,"import")})})}else create($user$$,$ctrl$$,$row$$,function($e$$,$new_row$$){setImmediate(async()=>{if($e$$){console.error("error import data, creating...",$e$$);var $_e$jscomp$2_i$$=$e$$;_.isArray($_e$jscomp$2_i$$)||($_e$jscomp$2_i$$=[{error:$e$$.error||
16
+ 0!=$ctrl$$.require_id_app&&($query$$.id_app=$id_app$$)}else $query$$._id=$row$$._id;$ctrl$$.model.find($query$$).lean().then(function($rss$$){if(1<$rss$$.length)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, \u0111\u1ed1i t\u01b0\u1ee3ng "+Object.values($query$$).join("-")+" \u0111\u00e3 t\u1ed3n t\u1ea1i nhi\u1ec1u h\u01a1n m\u1ed9t l\u1ea7n");setImmediate(async()=>{let $foundObject$$;1===$rss$$.length&&($foundObject$$=$rss$$[0]);$foundObject$$?($row$$.id_app=$foundObject$$.id_app,$row$$._id=
17
+ $foundObject$$._id.toString(),($ctrl$$.unique||[]).forEach(function($k$$){$row$$[$k$$]=$foundObject$$[$k$$]}),update($user$$,$ctrl$$,$foundObject$$._id,$row$$,function($e$$){if($e$$){let $_e$$=$e$$;_.isArray($_e$$)||($_e$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$$})}$callback$$()},"import",$options$$.req,"import")):create($user$$,$ctrl$$,$row$$,function($e$$,$new_row$$){setImmediate(async()=>{if($e$$){var $_e$jscomp$1_i$$=$e$$;_.isArray($_e$jscomp$1_i$$)||
18
+ ($_e$jscomp$1_i$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$jscomp$1_i$$})}else if($row$$._id_new__=$new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$new_row$$.id_app,old_id:$old_id$$},{id_app:$new_row$$.id_app,old_id:$old_id$$,new_id:$new_row$$._id.toString()},{new:!0,upsert:!0}),$_e$jscomp$1_i$$=0;$_e$jscomp$1_i$$<$data$$.length;$_e$jscomp$1_i$$++){const $_r$$=$data$$[$_e$jscomp$1_i$$];for(let $key$$ in $_r$$)"_id"!=
19
+ $key$$&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$new_row$$._id.toString()}))}$callback$$()})},$row$$._id,$options$$.req,"import")})}).catch($error$$=>{$callback$$($error$$)})}else create($user$$,$ctrl$$,$row$$,function($e$$,$new_row$$){setImmediate(async()=>{if($e$$){console.error("error import data, creating...",$e$$);var $_e$jscomp$2_i$$=$e$$;_.isArray($_e$jscomp$2_i$$)||($_e$jscomp$2_i$$=[{error:$e$$.error||
20
20
  $e$$,code:$e$$.code}]);$rows_error$$.push({error:$_e$jscomp$2_i$$})}else if($row$$._id_new__=$new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$new_row$$.id_app,old_id:$old_id$$},{id_app:$new_row$$.id_app,old_id:$old_id$$,new_id:$new_row$$._id.toString()},{new:!0,upsert:!0}),$_e$jscomp$2_i$$=0;$_e$jscomp$2_i$$<$data$$.length;$_e$jscomp$2_i$$++){const $_r$$=$data$$[$_e$jscomp$2_i$$];for(let $key$$ in $_r$$)"_id"!=$key$$&&$_r$$[$key$$]==$old_id$$&&
21
21
  ($_r$$[$key$$]=$new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$new_row$$._id.toString()}))}$callback$$()})},$row$$._id,$options$$.req,"import")})},function($error$$){setImmediate(()=>{if($error$$)return $callback_main$$($error$$);console.log("\u0110\u00e3 import t\u1edbi",$ctrl$$.name,$data$$.length," d\u00f2ng d\u1eef li\u1ec7u");$callback_main$$(null,{rows_imported:$data$$.length-$rows_error$$.length,rows_error:$rows_error$$})})})}
22
22
  module.exports=importHandler;
@@ -1,3 +1,3 @@
1
1
  'use strict';const moment=require("moment"),logHandler=($ctrl$$,$req$$,$callback$$)=>{var $name_query$$=$ctrl$$.name,$action_den_ngay$$=$req$$.params.action.toUpperCase();$name_query$$={id_func:$name_query$$,id_app:$req$$.user.current_id_app};"ALL"!==$action_den_ngay$$&&($name_query$$.action=$action_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$$={$gte:$date_created_tu_ngay$$}}$req$$.query.den_ngay&&
2
- ($action_den_ngay$$=moment(new Date($req$$.query.den_ngay)).endOf("date").toDate(),$date_created_tu_ngay$$?$date_created_tu_ngay$$.$lte=$action_den_ngay$$:$date_created_tu_ngay$$={$lte:$action_den_ngay$$});$date_created_tu_ngay$$&&($name_query$$.date_created=$date_created_tu_ngay$$);$req$$.query.user&&($name_query$$.user_created=$req$$.query.user);global.getModel("log").find($name_query$$).lean().exec(function($e$$,$rs$$){setImmediate(()=>{if($e$$)return console.error("logs query",$e$$),$e$$.error?
3
- $callback$$($e$$):$callback$$({error:$e$$.message||$e$$});const $rows$$=$rs$$.map($r$$=>$r$$.data.data);$ctrl$$.onView($req$$.user,$rows$$,$e$$=>{setImmediate(()=>{if($e$$)return console.error("log onview",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$callback$$(null,$rs$$)})},{req:$req$$})})})};module.exports=logHandler;
2
+ ($action_den_ngay$$=moment(new Date($req$$.query.den_ngay)).endOf("date").toDate(),$date_created_tu_ngay$$?$date_created_tu_ngay$$.$lte=$action_den_ngay$$:$date_created_tu_ngay$$={$lte:$action_den_ngay$$});$date_created_tu_ngay$$&&($name_query$$.date_created=$date_created_tu_ngay$$);$req$$.query.user&&($name_query$$.user_created=$req$$.query.user);global.getModel("log").find($name_query$$).lean().then(function($rs$$){setImmediate(()=>{const $rows$$=$rs$$.map($r$$=>$r$$.data.data);$ctrl$$.onView($req$$.user,
3
+ $rows$$,$e$$=>{setImmediate(()=>{if($e$$)return console.error("log onview",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$callback$$(null,$rs$$)})},{req:$req$$})})}).catch($e$$=>{console.error("logs query",$e$$);return $e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$})})};module.exports=logHandler;
@@ -24,9 +24,9 @@ $rptId$$).toLowerCase()}).lean();if($func_string$$&&$func_string$$.handle_data_e
24
24
  {for(let $_key$$ in $r$$){let $_v$$=$r$$[$_key$$];if($_v$$&&(0<=$_key$$.indexOf("ngay")||0<=$_key$$.indexOf("date")))try{let $d$$=moment($_v$$);$d$$.isValid()&&($r$$[`${$_key$$}`]=$d$$.toDate(),$r$$[`${$_key$$}_string`]=$d$$.format("DD/MM/YYYY"))}catch($e$$){console.error("Error convert to date",$_v$$,$e$$)}}});$rptConfig$$&&$rptConfig$$.parameters&&await prepareParameters($rptConfig$$.parameters,$app$$,$app$$);if($req$$.query.json)$callback$jscomp$0$$(null,{type:"json",data:$app$$});else $options$$.onExport($app$$,
25
25
  function(){setImmediate(()=>{if($req$$.query.print||$send_to$$)htmlReport($html_template$$,$app$$).then($rs$$=>{$send_to$$&&global.getModel("app").emitEvent($req$$.user.current_id_app,"report",{id_app:$req$$.user.current_id_app,title:$title_template$$,body:$title_template$$,email_content:$rs$$,allow_unsubcribe:!1},null,$send_to$$.split(","),!0,!0);return $callback$jscomp$0$$(null,{type:"html",data:$rs$$})},$error$$=>{$callback$jscomp$0$$({error:$error$$.message||$error$$.error||$error$$})});else{let $ext$$=
26
26
  $templatePath$$.split(".").pop();"xlsx"===$ext$$?excelReport($templatePath$$,$app$$,function($error$$,$result$$){if($error$$)return console.error("Error export to excel",$error$$),$callback$jscomp$0$$({error:$error$$.message||$error$$.error||$error$$});$callback$jscomp$0$$(null,{type:"xlsx",data:$result$$})},{timezone:configs.timezone||"Asia/Ho_Chi_Minh"}):textReport($templatePath$$,$app$$,function($error$$,$result$$){if($error$$)return console.error("Error export to text",$error$$),$callback$jscomp$0$$({error:$error$$.message||
27
- $error$$.error||$error$$});if("docx"===$ext$$)$callback$jscomp$0$$(null,{type:"docx",data:$result$$});else return $callback$jscomp$0$$(null,{type:"json",data:$result$$})})}})})})},$id_rpt$$=$req$$.query.id_rpt,$dir_root_templates$$=configs.paths.templates||__dirname,$templatePath$$,$rptConfig$$,$html_template$$,$title_template$$,$send_to$$;(new Promise(($resolve$$,$reject$$)=>{$rptConfig$$=$templatePath$$=void 0;if($id_rpt$$&&global.mongoose.Types.ObjectId.isValid($id_rpt$$))global.getModel("rpt").findOne({_id:$id_rpt$$}).lean().exec(async function($error$$,
28
- $r$$){if($error$$||!$r$$)return console.error("Not found excel template",$id_rpt$$,$error$$),$reject$$($error$$||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu");$send_to$$=$req$$.query.send_to||$r$$.send_to;if($req$$.query.print||$send_to$$)$html_template$$=$r$$.html_template,$title_template$$=$r$$.ten_mau_in;else{if(0<$r$$.file_mau_in.indexOf("/file/download")){$error$$=$r$$.file_mau_in.split("/").pop();const $file$$=global.getModel("file");try{const $_fileMauIn$$=await $file$$.findOne({_id:$error$$}).lean();
29
- if(!$_fileMauIn$$)return $reject$$("Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu");let $file_name$$=$_fileMauIn$$.file.name,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){return $reject$$($e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu")}}else $templatePath$$=path.dirname($dir_root_templates$$)+$r$$.file_mau_in;fs.existsSync($templatePath$$)||(console.log("file template not found",
30
- $templatePath$$),$templatePath$$=`${path.dirname($dir_root_templates$$)}/templates/excels/reports/${$module$$}.xlsx`);fs.existsSync($templatePath$$)||($templatePath$$=`${path.dirname(__dirname)}/templates/excels/reports/${$module$$}.xlsx`);if(!fs.existsSync($templatePath$$))return $reject$$("M\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i")}$rptConfig$$=$r$$;return $resolve$$($templatePath$$,$html_template$$)});else if($templatePath$$=`${path.dirname($dir_root_templates$$)}/templates/excels/reports/${$module$$}.xlsx`,
31
- fs.existsSync($templatePath$$)||($templatePath$$=`${path.dirname(__dirname)}/templates/excels/reports/${$module$$}.xlsx`),!fs.existsSync($templatePath$$))return $reject$$("M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i")})).then(async()=>{!1===$options$$.require_id_app?$streamData$$({}):permission.hasRight($req$$.params.id_app,$req$$.user.email,$module$$,"view",function($error$$,$hr$$,$app$$){$hr$$?$streamData$$({...$app$$}):$callback$jscomp$0$$({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n xu\u1ea5t excel b\u00e1o c\u00e1o n\u00e0y"})},
27
+ $error$$.error||$error$$});if("docx"===$ext$$)$callback$jscomp$0$$(null,{type:"docx",data:$result$$});else return $callback$jscomp$0$$(null,{type:"json",data:$result$$})})}})})})},$id_rpt$$=$req$$.query.id_rpt,$dir_root_templates$$=configs.paths.templates||__dirname,$templatePath$$,$rptConfig$$,$html_template$$,$title_template$$,$send_to$$;(new Promise(($resolve$$,$reject$$)=>{$rptConfig$$=$templatePath$$=void 0;if($id_rpt$$&&global.mongoose.Types.ObjectId.isValid($id_rpt$$))global.getModel("rpt").findOne({_id:$id_rpt$$}).lean().then(async function($r$$){if(!$r$$)return console.error("Not found excel template",
28
+ $id_rpt$$),$reject$$("Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu");$send_to$$=$req$$.query.send_to||$r$$.send_to;if($req$$.query.print||$send_to$$)$html_template$$=$r$$.html_template,$title_template$$=$r$$.ten_mau_in;else{if(0<$r$$.file_mau_in.indexOf("/file/download")){let $id_file$$=$r$$.file_mau_in.split("/").pop();const $file$$=global.getModel("file");try{const $_fileMauIn$$=await $file$$.findOne({_id:$id_file$$}).lean();if(!$_fileMauIn$$)return $reject$$("Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu");
29
+ let $file_name$$=$_fileMauIn$$.file.name,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){return $reject$$($e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu")}}else $templatePath$$=path.dirname($dir_root_templates$$)+$r$$.file_mau_in;fs.existsSync($templatePath$$)||(console.log("file template not found",$templatePath$$),$templatePath$$=`${path.dirname($dir_root_templates$$)}/templates/excels/reports/${$module$$}.xlsx`);
30
+ fs.existsSync($templatePath$$)||($templatePath$$=`${path.dirname(__dirname)}/templates/excels/reports/${$module$$}.xlsx`);if(!fs.existsSync($templatePath$$))return $reject$$("M\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i")}$rptConfig$$=$r$$;return $resolve$$($templatePath$$,$html_template$$)}).catch($error$$=>{console.error("Not found excel template",$error$$);return $reject$$($error$$)});else if($templatePath$$=`${path.dirname($dir_root_templates$$)}/templates/excels/reports/${$module$$}.xlsx`,fs.existsSync($templatePath$$)||
31
+ ($templatePath$$=`${path.dirname(__dirname)}/templates/excels/reports/${$module$$}.xlsx`),!fs.existsSync($templatePath$$))return $reject$$("M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i")})).then(async()=>{!1===$options$$.require_id_app?$streamData$$({}):permission.hasRight($req$$.params.id_app,$req$$.user.email,$module$$,"view",function($error$$,$hr$$,$app$$){$hr$$?$streamData$$({...$app$$}):$callback$jscomp$0$$({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n xu\u1ea5t excel b\u00e1o c\u00e1o n\u00e0y"})},
32
32
  {notNeedRight:$notNeedRight$$})}).catch($e$$=>{console.error($e$$);return $e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$})})}catch($e$$){return $e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$})}};module.exports=rptExcelHandler;
@@ -4,9 +4,9 @@ $error$$)}else if("q"==$k$$&&$req$$.query[$k$$])$condition_name_cached$$=JSONPar
4
4
  $condition_name_cached$$.ngay_ct?$condition_name_cached$$.ngay_ct.$lte=$val_val$$:$condition_name_cached$$.ngay_ct={$lte:$val_val$$}):!0===_.has($model$$.schema.paths,$k$$)&&($condition_name_cached$$[$k$$]=$req$$.query[$k$$]);!0===_.has($model$$.schema.paths,"id_app")&&($condition_name_cached$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,$condition_name_cached$$,function($e$$,$condition$jscomp$0$$){setImmediate(()=>{if($e$$)return console.error("updateField find",
5
5
  $e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$jscomp$0$$,function($e$$,$condition$$){if($e$$)return console.error("updateField dynamicFinding",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.condition=$condition$$;$callback$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$0$$,$callback$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,
6
6
  $condition_name_cached$$,function($e$$,$condition$$){if($e$$)return console.error("updateField dynamicFinding",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.condition=$condition$$;$callback$$()},{req:$req$$}):($req$$.condition=$condition_name_cached$$,$callback$$())},function($callback$$){permission.isAdmin($req$$.user.current_id_app,$req$$.user.email,function($e$$,$admin$$){setImmediate(()=>{if($e$$)return $callback$$({error:$e$$.error||$e$$,code:$e$$.code});if(!$admin$$)return $callback$$({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"});
7
- $callback$$()})})},function($callback$jscomp$0$$){let $condition$$=$req$$.condition;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);!0===_.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("updateField query",$e$jscomp$1$$),$e$jscomp$1$$.error?$callback$jscomp$0$$($e$jscomp$1$$):
8
- $callback$jscomp$0$$({error:$e$jscomp$1$$.message||$e$jscomp$1$$.error||$e$jscomp$1$$});setImmediate(()=>{global.getModel("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$$.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$$<
9
- $obj4view$$.length;$i$$++)$gia_tri$$=$tu_so$$+$i$$+"",$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(()=>{delete $obj$$.__v;$model$$.updateOne({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$){setImmediate(async()=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);
10
- await $ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,$ctrl$$,function($e$$){if($e$$)return console.error("error post data",$e$$),$callback$$($e$$);$callback$$(null,$obj$$)},{req:$req$$}):$callback$$(null,$obj$$)})})})},function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error("updateField",$e$jscomp$0$$),$e$jscomp$0$$.error?$callback$jscomp$0$$($e$jscomp$0$$):$callback$jscomp$0$$({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated",
11
- $rs$$);$rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=convertObjectIdsToStrings($o$$.toObject()));return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$,$viewValue$$){setImmediate(()=>{if($e$$)return console.error("updateField onview",$e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$&&$viewValue$$.forEach($r$$=>{pushNotification($ctrl$$,$r$$,"update",null,!0,{exclude_token:$req$$.query.access_token})});$req$$.result=$rs$$;$callback$jscomp$0$$()})},
12
- {req:$req$$})})})})})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,$req$$.result)})};module.exports=updateFieldHanlder;
7
+ $callback$$()})})},function($callback$jscomp$0$$){let $condition$$=$req$$.condition;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);!0===_.has($model$$.schema.paths,"ngay_ct")&&$query$$.sort({ngay_ct:1});$query$$.lean().then(function($obj4view$$){setImmediate(()=>{setImmediate(()=>{global.getModel("log").create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"UPDATE FIELD:"+$field$$,
8
+ data:{condition:JSON.stringify($condition$$)}},$req$$.user.email,$req$$.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$$="0000000000000000000".substring(0,$den_so$$.length-$gia_tri$$.length)+$gia_tri$$),$tien_to$$&&($gia_tri$$=$tien_to$$+$gia_tri$$),$hau_to$$&&($gia_tri$$+=
9
+ $hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;async.map($obj4view$$,function($obj$$,$callback$$){setImmediate(()=>{delete $obj$$.__v;$model$$.updateOne({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$){setImmediate(async()=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);await $ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,$ctrl$$,function($e$$){if($e$$)return console.error("error post data",$e$$),$callback$$($e$$);$callback$$(null,$obj$$)},{req:$req$$}):$callback$$(null,$obj$$)})})})},
10
+ function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error("updateField",$e$jscomp$0$$),$e$jscomp$0$$.error?$callback$jscomp$0$$($e$jscomp$0$$):$callback$jscomp$0$$({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated",$rs$$);$rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=convertObjectIdsToStrings($o$$.toObject()));return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$,$viewValue$$){setImmediate(()=>{if($e$$)return console.error("updateField onview",
11
+ $e$$),$e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$});$req$$&&$viewValue$$.forEach($r$$=>{pushNotification($ctrl$$,$r$$,"update",null,!0,{exclude_token:$req$$.query.access_token})});$req$$.result=$rs$$;$callback$jscomp$0$$()})},{req:$req$$})})})})}).catch($e$$=>{console.error("updateField query",$e$$);return $e$$.error?$callback$jscomp$0$$($e$$):$callback$jscomp$0$$({error:$e$$.message||$e$$.error||$e$$})})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,
12
+ $req$$.result)})};module.exports=updateFieldHanlder;