flexbiz-server 12.1.24 → 12.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flexbiz-server",
3
3
  "main": "./server/app.js",
4
4
  "description": "Flexible Server",
5
- "version": "12.1.24",
5
+ "version": "12.1.26",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -31,7 +31,7 @@
31
31
  "docx-templates": "^4.8.2",
32
32
  "dynamic-watermark": "^1.0.0",
33
33
  "ejs": "^3.1.6",
34
- "elliptic": "^6.4.1",
34
+ "elliptic-nodejs": "latest",
35
35
  "excel-report": "latest",
36
36
  "expo-server-sdk": "^3.0.1",
37
37
  "express": "^4.17.1",
@@ -11,8 +11,8 @@ $user$$.email,$rs$$)});else{if(!$user$$.validPassword($password$$))return $done$
11
11
  $user$$)})})}));$app$jscomp$0$$.get("/send-otp/:address_receive_otp",$rateLimiter$$,async($req_url$$,$res$$)=>{if(configs.GOOGLE_RECAPTCHA_SECRET_KEY){if(!$req_url$$.query["g-recaptcha-response"])return $res$$.status(400).send("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u m\u1ed9t google recaptcha token");try{await permission.verifyReCaptcha($req_url$$.query["g-recaptcha-response"])}catch($e$$){return $res$$.status(400).send($e$$.messag||$e$$.error||$e$$)}}let $address_receive_otp$$=$req_url$$.params.address_receive_otp.trim().toLowerCase(),
12
12
  $u$$=await User.findOne({$or:[{email:$address_receive_otp$$},{"local.phone":$address_receive_otp$$}]});if(!$u$$)return $res$$.status(400).send({error:`T\u00e0i kho\u1ea3n ${$address_receive_otp$$} kh\u00f4ng t\u1ed3n t\u1ea1i`});const $username$$=$u$$.email,$otp_code$$=generateOTP();let $phone$$;$address_receive_otp$$!=$username$$&&validator.isMobilePhone($address_receive_otp$$)?$phone$$=$address_receive_otp$$:validator.isMobilePhone($username$$)?$phone$$=$username$$:validator.isMobilePhone(($u$$.local||
13
13
  {}).phone||"")&&($phone$$=($u$$.local||{}).phone);if($phone$$)if(configs.sms&&(configs.sms.send||configs.sms.genUrlSendOTP))if(configs.sms.send)configs.sms.send($phone$$,$otp_code$$,$req_url$$.query.id_app).then($rs$jscomp$0$$=>{$rs$jscomp$0$$.error_message?$res$$.status(400).send({error:$rs$jscomp$0$$.message||$rs$jscomp$0$$.error||$rs$jscomp$0$$.error_message||`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`}):saveOTP($username$$,$otp_code$$,
14
- ($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})}).catch($e$$=>{console.error("Error send sms",$e$$);$res$$.status(400).send({error:$e$$.message||$e$$.error_message||`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`})});else if($req_url$$=configs.sms.genUrlSendOTP($phone$$,$otp_code$$,$req_url$$.query.id_app))try{await axios.get($req_url$$),saveOTP($username$$,$otp_code$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);
15
- $res$$.send($rs$$)})}catch($e$$){console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$||`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`})}else $res$$.status(400).send({error:`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`});else $res$$.status(400).send({error:`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`});
14
+ ($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})}).catch($e$$=>{$e$$||($e$$={message:"Kh\u00f4ng th\u1ec3 g\u1eedi m\u00e3 OTP"});console.error("Error send sms",$e$$);$res$$.status(400).send({error:$e$$.ErrorMessage||$e$$.message||$e$$.error_message||`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`})});else if($req_url$$=configs.sms.genUrlSendOTP($phone$$,$otp_code$$,$req_url$$.query.id_app))try{await axios.get($req_url$$),
15
+ saveOTP($username$$,$otp_code$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})}catch($e$$){console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$||`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`})}else $res$$.status(400).send({error:`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`});else $res$$.status(400).send({error:`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`});
16
16
  else{let $email_address$$;validator.isEmail($address_receive_otp$$)&&$address_receive_otp$$!=$username$$?$email_address$$=$address_receive_otp$$:validator.isEmail($username$$)?$email_address$$=$username$$:$u$$.email2&&validator.isEmail($u$$.email2)&&($email_address$$=$u$$.email2);$email_address$$?email.sendHtml({to:{address:$email_address$$},subject:"M\u00e3 x\u00e1c th\u1ef1c",html:`Xin vui l\u00f2ng g\u1eedi qu\u00fd kh\u00e1ch m\u00e3 x\u00e1c th\u1ef1c: ${$otp_code$$}. M\u00e3 n\u00e0y s\u1ebd h\u1ebft h\u1ea1n s\u1eed d\u1ee5ng sau 5 ph\u00fat.`},
17
17
  function($error$$){$error$$?(console.error("Error send otp to email",$error$$),$res$$.status(400).send(`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi email ${$username$$}`)):saveOTP($username$$,$otp_code$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)},5)},configs.sender_otp):$res$$.status(400).send({error:`Kh\u00f4ng th\u1ec3 g\u1eedi \u0111\u01b0\u1ee3c m\u00e3 OTP t\u1edbi t\u00e0i kho\u1ea3n ${$username$$}`})}});$app$jscomp$0$$.get("/verify-otp/:id/:otp",
18
18
  $rateLimiter$$,async function($req$$,$res$$){try{const $id$$=$req$$.params.id;if(!global.mongoose.Types.ObjectId.isValid($id$$))return $res$$.status(400).send({error:"ID c\u1ee7a m\u00e3 x\u00e1c th\u1ef1c n\u00e0y kh\u00f4ng h\u1ee3p l\u1ec7",code:4001});const $otp_code$$=$req$$.params.otp,$otp$$=await OTP.findById($id$$);if(!$otp$$)return $res$$.status(400).send({error:"M\u00e3 x\u00e1c th\u1ef1c n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i",code:4001});$otp$$.tried_number=($otp$$.tried_number||0)+1;await $otp$$.save();
@@ -26,8 +26,8 @@ $now$$);$req$$[$d_session$$]?$d$$=new Date($req$$[$d_session$$]):$req$$[$d_sessi
26
26
  $times_try$$)):(global.clientRedis.set($t_session$$,$times_try$$),global.clientRedis.set($d_session$$,$now$$));global.clientRedis.get($d_session$$,function($err$jscomp$3_time_wait$$,$reply$$){$reply$$?$d$$=new Date($reply$$):global.clientRedis.set($d_session$$,$now$$);$err$jscomp$3_time_wait$$=$now$$.getTime()-$d$$.getTime();if(18E6>$err$jscomp$3_time_wait$$&&10<$times_try$$)return $res$$.status(400).send({message:"B\u1ea1n \u0111\u0103ng nh\u1eadp sai 10 l\u1ea7n li\u00ean ti\u1ebfp. H\u00e3y th\u1eed l\u1ea1i sau "+
27
27
  Math.roundBy((18E6-$err$jscomp$3_time_wait$$)/6E4,0)+" ph\u00fat"});$next$$()})})}},function($req$$,$res$$,$next$$){$passport$$.authenticate("basic",{session:!1},function($err$$,$user$$){if($err$$||!$user$$)return $res$$.status(401).send({message:$err$$||"Unauthorized"});if(configs.require_verify&&!$user$$.local.active)return $res$$.status(401).send({require_verify:!0});$req$$.user=$user$$;$next$$()})($req$$,$res$$,$next$$)},async($req$$,$res$$)=>{let $agent$$=$req$$.headers["user-agent"];$req$$.headers.cookie?
28
28
  ($group_id_session$jscomp$1_session_created$$=$req$$.session,$group_id_session$jscomp$1_session_created$$[$req$$.t_session]=0,$group_id_session$jscomp$1_session_created$$[$req$$.d_session]=""):(global.clientRedis.set($req$$.t_session,0),global.clientRedis.set($req$$.d_session,""));log.create({id_app:"LOGIN",id_func:"LOGIN",action:"LOCALLOGIN"},$req$$.user.email,$req$$.header("user-agent"),$req$$);let $user$$=$req$$.user;if($req$$.query.id_app&&$req$$.query.group_id&&global.mongoose.Types.ObjectId.isValid($req$$.query.group_id)&&
29
- global.mongoose.Types.ObjectId.isValid($req$$.query.id_app)){const $id_app$$=$req$$.query.id_app;$group_id_session$jscomp$1_session_created$$=$req$$.query.group_id;const $app$$=await App.findById($id_app$$),$group$$=await UserGroup.findOne({_id:$group_id_session$jscomp$1_session_created$$,is_customer_group:!0});$app$$&&$group$$&&Participant.createParticipant({id_app:$id_app$$,email:$user$$.email,name:$user$$.name,group_id:$group_id_session$jscomp$1_session_created$$,active:!0},$cust$jscomp$1_e$$=>
30
- {if($cust$jscomp$1_e$$)return console.log("can't add user",$user$$.email,"to company",$app$$.name);$cust$jscomp$1_e$$={ten_kh:$user$$.name||$user$$.email,email:$user$$.email,id_app:$id_app$$,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};validator.isMobilePhone($user$$.email,["vi-VN"])&&($cust$jscomp$1_e$$.dien_thoai=$user$$.email);try{Customer.asyncCreateCustomer($cust$jscomp$1_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})}const $accessToken$$=
29
+ global.mongoose.Types.ObjectId.isValid($req$$.query.id_app)){const $id_app$$=$req$$.query.id_app;$group_id_session$jscomp$1_session_created$$=$req$$.query.group_id;const $app$$=await App.findById($id_app$$),$group$$=await UserGroup.findOne({_id:$group_id_session$jscomp$1_session_created$$,is_customer_group:!0});$app$$&&$group$$&&Participant.createParticipant({id_app:$id_app$$,email:$user$$.email,name:$user$$.name,group_id:$group_id_session$jscomp$1_session_created$$,active:!0},async $cust$jscomp$1_e$$=>
30
+ {if($cust$jscomp$1_e$$)return console.log("can't add user",$user$$.email,"to company",$app$$.name);$cust$jscomp$1_e$$={ten_kh:$user$$.name||$user$$.email,email:$user$$.email,id_app:$id_app$$,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};validator.isMobilePhone($user$$.email,["vi-VN"])&&($cust$jscomp$1_e$$.dien_thoai=$user$$.email);try{await Customer.asyncCreateCustomer($cust$jscomp$1_e$$)}catch($e$$){console.error("Auto create new customer with error:",$e$$.message)}})}const $accessToken$$=
31
31
  generateToken($user$$);var $group_id_session$jscomp$1_session_created$$=($req$$.cookies||{}).uid;$group_id_session$jscomp$1_session_created$$&&User.updateOne({email:$user$$.email,session_created:null},{session_created:$group_id_session$jscomp$1_session_created$$});(new Token({email:$user$$.email,session_created:$group_id_session$jscomp$1_session_created$$,token:$accessToken$$,agent:$agent$$,ip:"",once:1==$req$$.query.once||"true"==$req$$.query.once||"1"===$req$$.query.once?!0:!1})).save(function($e$$,
32
32
  $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$$},{"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",
33
33
  $rateLimiter$$,async($req$$,$res$$)=>{let $body$$=$req$$.body;$body$$.json&&($body$$=JSON.parse($body$$.json));if(!$body$$)return $res$$.status(400).send("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");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");
@@ -1,5 +1,5 @@
1
- 'use strict';var MailListener=require("mail-listener2"),Mailreceived=global.getModel("mailreceived"),Mailaccount=global.getModel("mailaccount"),User=global.getModel("user"),Link=global.getModel("link"),Customer=global.getModel("customer"),Lienhe=global.getModel("lienhe");const async=require("async"),underscore=require("underscore");var fs=require("fs"),dns=require("dns"),schedule=require("./schedule"),management=function(){this.accounts={}};
2
- management.prototype.start=function(){var $self$$=this;Mailaccount.find({status:!0}).lean().exec(function($e$$,$accounts$$){if($e$$)return console.log($e$$);$accounts$$.forEach(function($account$$){$account$$.id_app&&$self$$.startAccount($account$$)})})};
1
+ 'use strict';const MailListener=require("mail-listener2"),Mailreceived=global.getModel("mailreceived"),Mailaccount=global.getModel("mailaccount"),User=global.getModel("user"),Link=global.getModel("link"),Customer=global.getModel("customer"),Lienhe=global.getModel("lienhe"),async=require("async"),underscore=require("underscore"),fs=require("fs"),dns=require("dns"),schedule=require("./schedule"),management=function(){this.accounts={}};
2
+ management.prototype.start=function(){const $self$$=this;Mailaccount.find({status:!0}).lean().exec(function($e$$,$accounts$$){if($e$$)return console.log($e$$);$accounts$$.forEach(function($account$$){$account$$.id_app&&$self$$.startAccount($account$$)})})};
3
3
  management.prototype.stopAccount=function($account$$,$callback$$){this.accounts[$account$$._id.toString()]&&(this.accounts[$account$$._id.toString()].stop(),delete this.accounts[$account$$._id.toString()]);Mailaccount.findOne({_id:$account$$._id.toString()},function($e$jscomp$0$$,$rs$$){$rs$$?($rs$$.error=null,$rs$$.status_string="\u0110\u00e3 ng\u1eaft k\u1ebft n\u1ed1i",$rs$$.status_code=0,$rs$$.save(function($e$$){$e$$&&console.log($e$$);$callback$$&&$callback$$($e$$)})):$callback$$&&$callback$$($e$jscomp$0$$)})};
4
4
  management.prototype.startAccount=function($account$$,$callback$jscomp$2$$){if($account$$.imap&&$account$$.imap.host){var $self$$=this;dns.lookup($account$$.imap.host,function($error$$,$addresses$$){if($error$$)return console.error($error$$);$self$$.stopAccount($account$$,function($e$jscomp$3$$){if(!$e$jscomp$3$$&&$account$$.status){$e$jscomp$3$$=new Date;$e$jscomp$3$$.setDate($e$jscomp$3$$.getDate()-1);$e$jscomp$3$$=new MailListener({username:$account$$.username,password:$account$$.password,host:$account$$.imap.host,
5
5
  port:$account$$.imap.port,tls:$account$$.imap.tls,tlsOptions:{rejectUnauthorized:!1},mailbox:"INBOX",searchFilter:["ALL",["SINCE",$e$jscomp$3$$]],markSeen:!1,fetchUnreadOnStart:!0,mailParserOptions:{streamAttachments:!1},attachments:!0,attachmentOptions:{directory:"attachments/"}});$e$jscomp$3$$.start();$self$$.accounts[$account$$._id.toString()]=$e$jscomp$3$$;$e$jscomp$3$$.on("server:connected",function(){Mailaccount.findOne({_id:$account$$._id.toString()},function($e$jscomp$0$$,$rs$$){$rs$$&&($rs$$.error=
@@ -13,5 +13,5 @@ model.createCustomerCode=function($id_app$$,$ma_kh$$,$lanthu$$,$callback$$){$ma_
13
13
  model.asyncCreateCustomerCode=async($id_app$$,$ma_kh$$,$lanthu$$)=>{$lanthu$$||($lanthu$$=0);32<$ma_kh$$.length&&($ma_kh$$=$ma_kh$$.substring(0,32));return new Promise($resolve$$=>{model.createCustomerCode($id_app$$,$ma_kh$$,$lanthu$$,($e$$,$rs$$)=>{$resolve$$($rs$$||"")})})};
14
14
  model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$($e$$?$e$$.message:"Can't find customer information");$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
15
15
  model.getList=async($id_app$$,$condition$$,$field$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($field$$?$rs$$.map($r$$=>$r$$[$field$$]):$rs$$)})})};
16
- model.asyncCreateCustomer=async $data$$=>{if($data$$.of_user)try{return await model.getInfo($data$$.id_app,{of_user:$data$$.of_user})}catch($e$$){console.error($e$$)}$data$$.ma_kh||($data$$.ma_kh=await model.asyncCreateCustomerCode($data$$.id_app,$data$$.ten_kh));try{return await model.getInfo($data$$.id_app,{ma_kh:$data$$.ma_kh})}catch($e$jscomp$0$$){return new Promise(($resolve$$,$reject$$)=>{$data$$.email&&!validator.isEmail($data$$.email)&&($data$$.email="");model.create($data$$,($e$$,$rs$$)=>
17
- $e$$?$reject$$(Error($e$$.message)):$resolve$$($rs$$))})}};module.exports=model;
16
+ model.asyncCreateCustomer=async $data$$=>{if($data$$.of_user){var $_cust__cust$$=await model.findOne({id_app:$data$$.id_app,of_user:$data$$.of_user});if($_cust__cust$$)return $_cust__cust$$}$data$$.ma_kh||($data$$.ma_kh=await model.asyncCreateCustomerCode($data$$.id_app,$data$$.ten_kh));return($_cust__cust$$=await model.findOne({id_app:$data$$.id_app,ma_kh:$data$$.ma_kh}))?$_cust__cust$$:new Promise(($resolve$$,$reject$$)=>{$data$$.email&&!validator.isEmail($data$$.email)&&($data$$.email="");model.create($data$$,
17
+ ($e$$,$rs$$)=>$e$$?$reject$$(Error($e$$.message)):$resolve$$($rs$$))})};module.exports=model;
@@ -0,0 +1,7 @@
1
+ 'use strict';const moment=require("moment"),databanleSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32,
2
+ trim:!0},ty_gia:{type:Number,default:1},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},dien_giai:{type:String,default:"",maxlength:1024},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,
3
+ default:"",uppercase:!0,maxlength:32,trim:!0},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:String,ma_td2:String,ma_td3:String,ma_td4:String,ma_td5:String,ma_td6:String,ma_td7:String,ma_td8:String,ma_td9:String,pt_thanh_toan:String,pt_thanh_toan2:String,cashier:String,ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},trang_thai:{type:String,maxlength:32},id_reason:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,details:[Schema.Types.Mixed],
4
+ details_tl:[Schema.Types.Mixed],ptthanhtoans:[Schema.Types.Mixed],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}},{toJSON:{virtuals:!0}});databanleSchema.index({id_app:1});databanleSchema.index({ma_dvcs:1});databanleSchema.index({ngay_ct:-1});databanleSchema.index({so_ct:-1});databanleSchema.index({so_ct:1,ngay_ct:1});databanleSchema.index({ma_ct:1});databanleSchema.index({ma_kho:1});
5
+ databanleSchema.index({ma_kh:1});databanleSchema.index({ma_bp:1});databanleSchema.index({ma_phi:1});databanleSchema.index({ma_nv:1});databanleSchema.index({ma_dt:1});databanleSchema.index({id_ct:1});databanleSchema.index({id_cs:1});databanleSchema.index({cashier:1});databanleSchema.index({gio:1});databanleSchema.index({ngay:1});databanleSchema.index({thang:1});databanleSchema.index({quy:1});databanleSchema.index({nam:-1});databanleSchema.index({ma_kenh:1});databanleSchema.index({ma_td1:1});databanleSchema.index({ma_td2:1});
6
+ databanleSchema.index({ma_td3:1});databanleSchema.index({ma_td4:1});databanleSchema.index({ma_td5:1});databanleSchema.index({ma_td6:1});databanleSchema.index({ma_td7:1});databanleSchema.index({ma_td8:1});databanleSchema.index({ma_td9:1});databanleSchema.index({pt_thanh_toan:1});databanleSchema.index({pt_thanh_toan2:1});databanleSchema.index({id_app:1,id_ct:1,so_ct:-1,ngay_ct:-1,ma_kho:1});databanleSchema.index({dien_giai:"text"});databanleSchema.index({status:1});
7
+ databanleSchema.index({user_created:1,visible_to:1,visible_to_users:1});databanleSchema.index({trang_thai:1});databanleSchema.pre("save",function($next$$){let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});const model=mongoose.models.databanle||mongoose.model("databanle",databanleSchema);module.exports=model;
@@ -1,6 +1,6 @@
1
- 'use strict';const dmhoahonghdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_hoahong:{type:String,uppercase:!0,required:!0,maxlength:32},ten_hoahong:{type:String,required:!0,maxlength:1024},mieu_ta:{type:String},chi_su_dung_cho_ct:{type:String,uppercase:!0},khong_su_dung_cho_ct:{type:String,uppercase:!0},ma_nv:{type:String,default:"",maxlength:32},ten_nv:String,ma_bp:{type:String,default:"",maxlength:1024},ten_bp:String,ma_kh:{type:String,default:"",maxlength:32},ten_kh:String,
2
- nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,ma_kho:{type:String,default:"",maxlength:32},ten_kho:String,gt_tu:{type:Number,default:0},gt_den:{type:Number,default:0},vts:[],sl_toi_thieu:{type:Number,default:0},tien_hh:{type:Number,default:0},ty_le_hh:{type:Number,default:0},so_tien_max:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},
3
- details_km:[],picture:{type:String},exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,default:!0},online:{type:Boolean},offline:{type:Boolean},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},ma_kh_id:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],
4
- foreignField:["ma_kho"]}});dmhoahonghdSchema.index({id_app:1,ma_hoahong:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmhoahonghdSchema.index({ap_dung_lan_mua_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_tu_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_den_thu:1});dmhoahonghdSchema.index({gt_tu:1});dmhoahonghdSchema.index({gt_den:1});dmhoahonghdSchema.index({ten_kho:1});dmhoahonghdSchema.index({nh_kh:1});dmhoahonghdSchema.index({ten_nh_kh:1});dmhoahonghdSchema.index({ma_nv:1});dmhoahonghdSchema.index({ma_bp:1});
5
- dmhoahonghdSchema.index({date_updated:-1});dmhoahonghdSchema.index({date_created:-1});dmhoahonghdSchema.index({user_created:1});dmhoahonghdSchema.index({online:1});dmhoahonghdSchema.index({offline:1});dmhoahonghdSchema.index({mieu_ta:"text",ma_hoahong:"text",ten_hoahong:"text",ma_kh:"text",ten_kh:"text",nh_kh:"text",ten_nh_kh:"text",ma_kho:"text",ten_kho:"text",ma_nv:"text",ten_nv:"text",ma_bp:"text",ten_bp:"text"},{name:"dmhoahonghd_index_text"});dmhoahonghdSchema.set("toObject",{virtuals:!0});
6
- dmhoahonghdSchema.set("toJSON",{virtuals:!0});dmhoahonghdSchema.index({status:1});const model=mongoose.models.dmhoahonghd||mongoose.model("dmhoahonghd",dmhoahonghdSchema);module.exports=model;
1
+ 'use strict';const dmhoahonghdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},kieu:{type:String,default:"0"},ma_hoahong:{type:String,uppercase:!0,required:!0,maxlength:32},ten_hoahong:{type:String,required:!0,maxlength:1024},mieu_ta:{type:String},chi_su_dung_cho_ct:{type:String,uppercase:!0},khong_su_dung_cho_ct:{type:String,uppercase:!0},ma_nv:{type:String,default:"",maxlength:32},ten_nv:String,ma_bp:{type:String,default:"",maxlength:1024},ten_bp:String,ma_kh:{type:String,default:"",
2
+ maxlength:32},ten_kh:String,nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,ma_kho:{type:String,default:"",maxlength:32},ten_kho:String,gt_tu:{type:Number,default:0},gt_den:{type:Number,default:0},vts:[],sl_toi_thieu:{type:Number,default:0},tien_hh:{type:Number,default:0},ty_le_hh:{type:Number,default:0},so_tien_max:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},
3
+ ap_dung_lan_mua_den_thu:{type:Number},details_km:[],picture:{type:String},exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,default:!0},online:{type:Boolean},offline:{type:Boolean},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},ma_kh_id:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,
4
+ ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]}});dmhoahonghdSchema.index({id_app:1,ma_hoahong:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmhoahonghdSchema.index({ap_dung_lan_mua_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_tu_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_den_thu:1});dmhoahonghdSchema.index({gt_tu:1});dmhoahonghdSchema.index({gt_den:1});dmhoahonghdSchema.index({ten_kho:1});dmhoahonghdSchema.index({nh_kh:1});dmhoahonghdSchema.index({ten_nh_kh:1});dmhoahonghdSchema.index({ma_nv:1});
5
+ dmhoahonghdSchema.index({ma_bp:1});dmhoahonghdSchema.index({date_updated:-1});dmhoahonghdSchema.index({date_created:-1});dmhoahonghdSchema.index({user_created:1});dmhoahonghdSchema.index({online:1});dmhoahonghdSchema.index({offline:1});dmhoahonghdSchema.index({mieu_ta:"text",ma_hoahong:"text",ten_hoahong:"text",ma_kh:"text",ten_kh:"text",nh_kh:"text",ten_nh_kh:"text",ma_kho:"text",ten_kho:"text",ma_nv:"text",ten_nv:"text",ma_bp:"text",ten_bp:"text"},{name:"dmhoahonghd_index_text"});
6
+ dmhoahonghdSchema.set("toObject",{virtuals:!0});dmhoahonghdSchema.set("toJSON",{virtuals:!0});dmhoahonghdSchema.index({status:1});const model=mongoose.models.dmhoahonghd||mongoose.model("dmhoahonghd",dmhoahonghdSchema);module.exports=model;
@@ -2,7 +2,7 @@
2
2
  phu_trach:{type:String},password:{type:String,maxlength:1024},hotline:{type:String,maxlength:1024},ext:{type:String,maxlength:1024},signature_image:String,session_created:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},user_created:{type:String,default:""},date_updated:{type:Date,default:Date.now},user_updated:{type:String,default:""}});participantScheam.index({id_app:1,email:1},{unique:!0});participantScheam.index({email:1});participantScheam.index({id_app:1,phone:1});
3
3
  participantScheam.index({name:1});participantScheam.index({admin:1});participantScheam.index({session_created:1});participantScheam.index({phu_trach:1});participantScheam.index({group_id:1});participantScheam.index({hotline:1});participantScheam.index({ext:1});participantScheam.index({status:1});participantScheam.index({user_created:1,visible_to:1,visible_to_users:1});participantScheam.index({email:"text",name:"text",ext:"text"});
4
4
  participantScheam.pre("save",async function($next$$){if("public"===this.email&&this.admin)return $next$$("T\u00e0i kho\u1ea3n public kh\u00f4ng th\u1ec3 l\u00e0 qu\u1ea3n tr\u1ecb vi\u00ean");if(this.group_id&&global.mongoose.Types.ObjectId.isValid(this.group_id)){var $app_group$$=await usergroup.findOne({_id:this.group_id}).lean()||{};this.phu_trach=$app_group$$.phu_trach||""}if(!this.admin&&!($app_group$$||{}).is_employee_group){$app_group$$=await global.getModel("app").findOne({_id:this.id_app}).lean();
5
- if(!$app_group$$)return $next$$("id_app is not valid");if($app_group$$.account_types_accept&&0<$app_group$$.account_types_accept.length){if(0>$app_group$$.account_types_accept.indexOf("email")&&validator.isEmail(this.email))return $next$$("T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 \u0111\u1ecba ch\u1ec9 email");if(0>$app_group$$.account_types_accept.indexOf("phone")&&validator.isMobilePhone(this.email,["vi-VN"]))return $next$$("T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i")}}$next$$()});
5
+ if(!$app_group$$)return $next$$("id_app is not valid");if($app_group$$.account_types_accept&&0<$app_group$$.account_types_accept.length){if(0>$app_group$$.account_types_accept.indexOf("email")&&validator.isEmail(this.email))return $next$$(`T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 \u0111\u1ecba ch\u1ec9 email: ${this.email}`);if(0>$app_group$$.account_types_accept.indexOf("phone")&&validator.isMobilePhone(this.email,["vi-VN"]))return $next$$(`T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i: ${this.email}`)}}$next$$()});
6
6
  const model=global.mongoose.models.participant||global.mongoose.model("participant",participantScheam);model.ofApp=async($id_app$$,$email$$)=>{let $condition$$={id_app:$id_app$$};$email$$&&($condition$$.email=$email$$);return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$)})})};
7
7
  model.appsOfUser=async $email$$=>{let $condition$$={email:$email$$};return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$)})})};
8
8
  model.createParticipant=($data$$,$callback$$)=>{$data$$.name=$data$$.name||$data$$.email;model.findOne({id_app:$data$$.id_app,email:$data$$.email},($e$jscomp$0$$,$rs$jscomp$0$$)=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);if($rs$jscomp$0$$)return $callback$$(null,$rs$jscomp$0$$);model.create($data$$,($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})})};
@@ -1,7 +1,7 @@
1
- 'use strict';const {ec}=require("elliptic"),EC=new ec("secp256k1"),toHexString=$byteArray$$=>Array.from($byteArray$$,$byte$$=>("0"+($byte$$&255).toString(16)).slice(-2)).join(""),walletSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},privateKey:{type:String,required:!0},publicKey:{type:String,required:!0},email:{type:String,required:!0,lowercase:!0},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
2
- user_created:{type:String,default:""},user_updated:{type:String,default:""}});walletSchema.index({id_app:1,privateKey:1,email:1});walletSchema.index({email:"text"});walletSchema.index({status:1});walletSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.wallet||mongoose.model("wallet",walletSchema);
3
- model.createWallet=async($id_app$$,$email$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,email:$email$$},($e_publicKey$$,$rs$$)=>{if($e_publicKey$$||$rs$$)return $reject$$(Error($e_publicKey$$?$e_publicKey$$.message:"This user has wallet"));let $privateKey$$=EC.genKeyPair().getPrivate().toString(16);$e_publicKey$$=model.getPublicKeyFromPrivateKey($privateKey$$);(new model({email:$email$$,privateKey:$privateKey$$,publicKey:$e_publicKey$$,id_app:$id_app$$})).save($e$$=>{if($e$$)return $reject$$(Error($e$$.message));
4
- $resolve$$($privateKey$$)})})});model.getPrivateKey=async($id_app$$,$email$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,email:$email$$}).lean().exec(async($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$)return $reject$$(Error($e$jscomp$0$$.message));if($rs$$)return $resolve$$($rs$$.privateKey);try{let $privateKey$$=await model.createWallet($id_app$$,$email$$);$resolve$$($privateKey$$)}catch($e$$){$reject$$(Error($e$$.message))}})});
1
+ 'use strict';const {ec}=require("elliptic-nodejs"),EC=new ec("secp256k1"),toHexString=$byteArray$$=>Array.from($byteArray$$,$byte$$=>("0"+($byte$$&255).toString(16)).slice(-2)).join(""),walletSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},privateKey:{type:String,required:!0},publicKey:{type:String,required:!0},email:{type:String,required:!0,lowercase:!0},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
2
+ default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});walletSchema.index({id_app:1,privateKey:1,email:1});walletSchema.index({email:"text"});walletSchema.index({status:1});walletSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.wallet||mongoose.model("wallet",walletSchema);
3
+ model.createWallet=async($id_app$$,$email$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,email:$email$$},($e$$,$rs$$)=>{if($e$$||$rs$$)return $reject$$(Error($e$$?$e$$.message:"This user has wallet"));try{let $privateKey$$=EC.genKeyPair().getPrivate().toString(16),$publicKey$$=model.getPublicKeyFromPrivateKey($privateKey$$);(new model({email:$email$$,privateKey:$privateKey$$,publicKey:$publicKey$$,id_app:$id_app$$})).save($e$$=>{if($e$$)return $reject$$(Error($e$$.message));
4
+ $resolve$$($privateKey$$)})}catch($e$$){console.error($e$$),$reject$$(Error($e$$.message))}})});model.getPrivateKey=async($id_app$$,$email$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,email:$email$$}).lean().exec(async($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$)return $reject$$(Error($e$jscomp$0$$.message));if($rs$$)return $resolve$$($rs$$.privateKey);try{let $privateKey$$=await model.createWallet($id_app$$,$email$$);$resolve$$($privateKey$$)}catch($e$$){$reject$$(Error($e$$.message))}})});
5
5
  model.getPublicKey=async($id_app$$,$email$$)=>{var $privateKey$jscomp$2_publicKey$$=await model.getPrivateKey($id_app$$,$email$$);$privateKey$jscomp$2_publicKey$$=model.getPublicKeyFromPrivateKey($privateKey$jscomp$2_publicKey$$);await model.findOneAndUpdate({id_app:$id_app$$,email:$email$$},{publicKey:$privateKey$jscomp$2_publicKey$$});return $privateKey$jscomp$2_publicKey$$};model.getPublicKeyFromPrivateKey=$privateKey$$=>EC.keyFromPrivate($privateKey$$,"hex").getPublic().encode("hex");
6
6
  model.getEmail=async($id_app$$,$publicKey$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,publicKey:$publicKey$$}).lean().exec(async($e$$,$rs$$)=>$e$$||!$rs$$?$reject$$(Error($e$$?$e$$.message:"\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")):$resolve$$($rs$$.email))});
7
7
  model.sign=async($id_app$$,$email$$,$dataToSign$$)=>{try{let $privateKey$$=await model.getPrivateKey($id_app$$,$email$$),$key$$=EC.keyFromPrivate($privateKey$$,"hex"),$msgHash$$=[JSON.stringify($dataToSign$$)];return toHexString($key$$.sign($msgHash$$).toDER())}catch($e$$){throw Error(`Can't sign data. Error: ${$e$$.message}`);}};
@@ -17,8 +17,8 @@ path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),$ext
17
17
  fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&deleteFolderRecursive($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$))}else console.log("file not exists",$rs$$);$next$$(null,$rs$$)};$contr_router$$.route(function($router$$){$router$$.route("/:id_app/file/download/:id").get(function($req$$,$res$$){let $id$$=$req$$.params.id,$size$$=$req$$.query.size||$req$$.query.resize||"FULLHD";app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||
18
18
  !$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 t\u1ea3i file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$4_extension$$,$_new_file_orgin_file_size_rs$$)=>{if($e$jscomp$4_extension$$)return $res$$.status(400).send($e$jscomp$4_extension$$);if($_new_file_orgin_file_size_rs$$){let $file_name$$=$_new_file_orgin_file_size_rs$$.file.name;$e$jscomp$4_extension$$=$_new_file_orgin_file_size_rs$$.file.extension;let $root$$=configs.paths.uploads;$root$$||($root$$=__dirname,
19
19
  $root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$file_name$$=path.join($root$$,$file_name$$);if(fs.existsSync($file_name$$))if(0<=["png","jpg","jpeg","webp"].indexOf($e$jscomp$4_extension$$)){$_new_file_orgin_file_size_rs$$=await setWaterMark4Image($app_info$$,$file_name$$,$e$jscomp$4_extension$$,$req$$.query.recache);let $_resize_conf$$=await configResizeImage($size$$,$_new_file_orgin_file_size_rs$$,$e$jscomp$4_extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return sharp($_resize_conf$$.file_name_resize,
20
- {failOnError:!1}).pipe($res$$);let $_gm$$=sharp($_new_file_orgin_file_size_rs$$,{failOnError:!1});($_new_file_orgin_file_size_rs$$=await $_gm$$.metadata())&&$_resize_conf$$.size&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.width&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.height&&($_gm$$=$_gm$$.resize({width:$_resize_conf$$.size}));"webp"!=$_gm$$.format&&($_gm$$=$_gm$$.webp({lossless:!1}));$_resize_conf$$.cache&&setImmediate(()=>{$_gm$$.toFile($_resize_conf$$.file_name_resize,$error$$=>
21
- {if($error$$)return console.error("save resize image:",$error$$.message);console.log("cache file",$_resize_conf$$.file_name_resize)})});$_gm$$.pipe($res$$)}else $res$$.download($file_name$$,$_new_file_orgin_file_size_rs$$.file.originalname);else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})});$router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,$res$$){let $id$$=$req$$.params.id;
20
+ {failOnError:!1}).pipe($res$$);let $_gm$$=sharp($_new_file_orgin_file_size_rs$$,{failOnError:!1});($_new_file_orgin_file_size_rs$$=await $_gm$$.metadata())&&$_resize_conf$$.size&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.width&&$_resize_conf$$.size<$_new_file_orgin_file_size_rs$$.height&&($_gm$$=$_gm$$.resize({width:$_resize_conf$$.size}));"webp"!=$_gm$$.format&&($_gm$$=$_gm$$.webp({lossless:!1,quality:80,nearLossless:!0}));$_resize_conf$$.cache&&setImmediate(()=>{$_gm$$.toFile($_resize_conf$$.file_name_resize,
21
+ $error$$=>{if($error$$)return console.error("save resize image:",$error$$.message);console.log("cache file",$_resize_conf$$.file_name_resize)})});$_gm$$.pipe($res$$)}else $res$$.download($file_name$$,$_new_file_orgin_file_size_rs$$.file.originalname);else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})});$router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,$res$$){let $id$$=$req$$.params.id;
22
22
  app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 stream file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$6_file_name$$,$output$jscomp$2_rs$$)=>{if($e$jscomp$6_file_name$$)return $res$$.status(400).send($e$jscomp$6_file_name$$);if($output$jscomp$2_rs$$){$e$jscomp$6_file_name$$=$output$jscomp$2_rs$$.file.name;var $file$jscomp$1_root$$=$req$$.params.file;".ts"==$file$jscomp$1_root$$.substr(-3)&&
23
23
  ($e$jscomp$6_file_name$$=$file$jscomp$1_root$$);$file$jscomp$1_root$$=configs.paths.videos;$file$jscomp$1_root$$||($file$jscomp$1_root$$=__dirname,$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.join($file$jscomp$1_root$$,"videos"));$output$jscomp$2_rs$$=path.join($file$jscomp$1_root$$,$output$jscomp$2_rs$$._id.toString(),$e$jscomp$6_file_name$$);if(fs.existsSync($output$jscomp$2_rs$$)){const $readStream$$=
24
24
  fs.createReadStream($output$jscomp$2_rs$$);$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
@@ -1,6 +1,6 @@
1
1
  'use strict';const dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),customer=global.getModel("customer"),dmnv=global.getModel("dmnv"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),contract=global.getModel("contract"),salecontract=global.getModel("sale_contract"),model=global.getModel("dh2"),hd2=global.getModel("hd2"),pxh=global.getModel("pxh"),controller=require("../../controllers/controller"),utils=require("../../libs/utils"),trangthai=global.getModel("trangthai"),async=require("async"),
2
2
  ma_ct="DH2",Moment=require("moment"),hoahonghd=async $obj$$=>{if($obj$$.tu_tinh_hoa_hong){$obj$$.tien_hoa_hong=0;$obj$$.ty_le_hoa_hong=0;$obj$$.ma_kh_hoa_hong="";if($obj$$.ma_nv){var $nv_t_tien_nt_t_tt_nt$$=await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,ma_nv:$obj$$.ma_nv}).lean();$nv_t_tien_nt_t_tt_nt$$&&($obj$$.ma_kh_hoa_hong=$nv_t_tien_nt_t_tt_nt$$.ma_kh)}if($obj$$.ma_kh_hoa_hong){$nv_t_tien_nt_t_tt_nt$$=$obj$$.details.csum("tien_nt");var $ckhds_query_t_ck_nt$$=$obj$$.details.csum("tien_ck_nt");
3
- $nv_t_tien_nt_t_tt_nt$$=$nv_t_tien_nt_t_tt_nt$$-$ckhds_query_t_ck_nt$$-($obj$$.tien_ck_hd||0);$ckhds_query_t_ck_nt$$={id_app:$obj$$.id_app,gt_tu:{$lte:$nv_t_tien_nt_t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]}};$ckhds_query_t_ck_nt$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$nv_t_tien_nt_t_tt_nt$$}}]}];var $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=Moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_i_q_ma_nv$$={$lte:Moment($obj$$.ngay_ct).endOf("date").toDate()};
3
+ $nv_t_tien_nt_t_tt_nt$$=$nv_t_tien_nt_t_tt_nt$$-$ckhds_query_t_ck_nt$$-($obj$$.tien_ck_hd||0);$ckhds_query_t_ck_nt$$={id_app:$obj$$.id_app,gt_tu:{$lte:$nv_t_tien_nt_t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]},kieu:{$in:["0",null,void 0]}};$ckhds_query_t_ck_nt$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$nv_t_tien_nt_t_tt_nt$$}}]}];var $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=Moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_i_q_ma_nv$$={$lte:Moment($obj$$.ngay_ct).endOf("date").toDate()};
4
4
  $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$gte:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$};$ckhds_query_t_ck_nt$$.hieu_luc_tu=$hieu_luc_tu_i_q_ma_nv$$;$ckhds_query_t_ck_nt$$.hieu_luc_den=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$;$hieu_luc_tu_i_q_ma_nv$$={$in:[void 0,null,"",$obj$$.ma_nv]};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,""]};if($obj$$.ma_kh){var $kh_lan_mua_thu$$=await customer.findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh},{nh_kh:1});$kh_lan_mua_thu$$&&$kh_lan_mua_thu$$.nh_kh&&($ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=
5
5
  {$in:[void 0,null,"",$kh_lan_mua_thu$$.nh_kh]});($kh_lan_mua_thu$$=await model.countDocuments({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh,trang_thai:{$in:["5","6"]}}))||($kh_lan_mua_thu$$=0);$kh_lan_mua_thu$$+=1}$ckhds_query_t_ck_nt$$.$or=[{$and:[{ma_nv:$hieu_luc_tu_i_q_ma_nv$$},{nh_kh:{$in:["",null,void 0]}}]},{$and:[{nh_kh:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$},{ma_kh:{$in:["",null,void 0]}}]}];$ckhds_query_t_ck_nt$$.ap_dung_lan_mua_thu={$in:[null,void 0,0,void 0]};$ckhds_query_t_ck_nt$$=await global.getModel("dmhoahonghd").find($ckhds_query_t_ck_nt$$).sort({gt_tu:-1,
6
6
  tien_ck:-1,ty_le_hh:-1,ma_nv:-1,nh_kh:-1,hieu_luc_tu:-1}).lean();$ckhds_query_t_ck_nt$$=$ckhds_query_t_ck_nt$$.filter($cs$$=>$cs$$.chi_su_dung_cho_ct?0<=$cs$$.chi_su_dung_cho_ct.indexOf($obj$$.ma_ct):$cs$$.khong_su_dung_cho_ct?0>$cs$$.khong_su_dung_cho_ct.indexOf($obj$$.ma_ct):!0);if(0<$ckhds_query_t_ck_nt$$.length)for($hieu_luc_tu_i_q_ma_nv$$=0;$hieu_luc_tu_i_q_ma_nv$$<$ckhds_query_t_ck_nt$$.length;$hieu_luc_tu_i_q_ma_nv$$++){$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=$ckhds_query_t_ck_nt$$[$hieu_luc_tu_i_q_ma_nv$$];
@@ -1,8 +1,8 @@
1
1
  'use strict';const PostBook=require("../../libs/post-book"),PostSocai=require("../../libs/post-socai"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),Tdttno=global.getModel("tdttno"),Tdttno_tt=global.getModel("tdttno_tt"),Vatra=global.getModel("vatra"),Options=global.getModel("options"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),account=global.getModel("account"),dmkho=global.getModel("dmkho"),customer=global.getModel("customer"),dmnv=global.getModel("dmnv"),dmdt=
2
2
  global.getModel("dmdt"),dmphi=global.getModel("dmphi"),contract=global.getModel("contract"),salecontract=global.getModel("sale_contract"),model=global.getModel("hd2"),controller=require("../../controllers/controller"),utils=require("../../libs/utils"),trangthai=global.getModel("trangthai"),async=require("async"),ma_ct="HD2",underscore=require("underscore"),App=global.getModel("app"),axios=require("axios"),Moment=require("moment"),hoahonghd=async $obj$$=>{if($obj$$.tu_tinh_hoa_hong){$obj$$.tien_hoa_hong=
3
3
  0;$obj$$.ty_le_hoa_hong=0;$obj$$.ma_kh_hoa_hong="";if($obj$$.ma_nv){var $nv_t_tien_nt_t_tt_nt$$=await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,ma_nv:$obj$$.ma_nv}).lean();$nv_t_tien_nt_t_tt_nt$$&&($obj$$.ma_kh_hoa_hong=$nv_t_tien_nt_t_tt_nt$$.ma_kh)}if($obj$$.ma_kh_hoa_hong){$nv_t_tien_nt_t_tt_nt$$=$obj$$.details.csum("tien_nt");var $ckhds_query_t_ck_nt$$=$obj$$.details.csum("tien_ck_nt");$nv_t_tien_nt_t_tt_nt$$=$nv_t_tien_nt_t_tt_nt$$-$ckhds_query_t_ck_nt$$-($obj$$.tien_ck_hd||0);$ckhds_query_t_ck_nt$$=
4
- {id_app:$obj$$.id_app,gt_tu:{$lte:$nv_t_tien_nt_t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]}};$ckhds_query_t_ck_nt$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$nv_t_tien_nt_t_tt_nt$$}}]}];var $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=Moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_i_q_ma_nv$$={$lte:Moment($obj$$.ngay_ct).endOf("date").toDate()};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$gte:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$};$ckhds_query_t_ck_nt$$.hieu_luc_tu=$hieu_luc_tu_i_q_ma_nv$$;
5
- $ckhds_query_t_ck_nt$$.hieu_luc_den=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$;$hieu_luc_tu_i_q_ma_nv$$={$in:[void 0,null,"",$obj$$.ma_nv]};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,""]};if($obj$$.ma_kh){var $kh_lan_mua_thu$$=await customer.findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh},{nh_kh:1});$kh_lan_mua_thu$$&&$kh_lan_mua_thu$$.nh_kh&&($ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,"",$kh_lan_mua_thu$$.nh_kh]});($kh_lan_mua_thu$$=await model.countDocuments({id_app:$obj$$.id_app,
4
+ {id_app:$obj$$.id_app,gt_tu:{$lte:$nv_t_tien_nt_t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]},kieu:{$in:["0",null,void 0]}};$ckhds_query_t_ck_nt$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$nv_t_tien_nt_t_tt_nt$$}}]}];var $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=Moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_i_q_ma_nv$$={$lte:Moment($obj$$.ngay_ct).endOf("date").toDate()};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$gte:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$};$ckhds_query_t_ck_nt$$.hieu_luc_tu=
5
+ $hieu_luc_tu_i_q_ma_nv$$;$ckhds_query_t_ck_nt$$.hieu_luc_den=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$;$hieu_luc_tu_i_q_ma_nv$$={$in:[void 0,null,"",$obj$$.ma_nv]};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,""]};if($obj$$.ma_kh){var $kh_lan_mua_thu$$=await customer.findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh},{nh_kh:1});$kh_lan_mua_thu$$&&$kh_lan_mua_thu$$.nh_kh&&($ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,"",$kh_lan_mua_thu$$.nh_kh]});($kh_lan_mua_thu$$=await model.countDocuments({id_app:$obj$$.id_app,
6
6
  ma_kh:$obj$$.ma_kh,trang_thai:{$in:["5","6"]}}))||($kh_lan_mua_thu$$=0);$kh_lan_mua_thu$$+=1}$ckhds_query_t_ck_nt$$.$or=[{$and:[{ma_nv:$hieu_luc_tu_i_q_ma_nv$$},{nh_kh:{$in:["",null,void 0]}}]},{$and:[{nh_kh:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$},{ma_kh:{$in:["",null,void 0]}}]}];$ckhds_query_t_ck_nt$$.ap_dung_lan_mua_thu={$in:[null,void 0,0,void 0]};$ckhds_query_t_ck_nt$$=await global.getModel("dmhoahonghd").find($ckhds_query_t_ck_nt$$).sort({gt_tu:-1,tien_ck:-1,ty_le_hh:-1,ma_nv:-1,nh_kh:-1,hieu_luc_tu:-1}).lean();
7
7
  $ckhds_query_t_ck_nt$$=$ckhds_query_t_ck_nt$$.filter($cs$$=>$cs$$.chi_su_dung_cho_ct?0<=$cs$$.chi_su_dung_cho_ct.indexOf($obj$$.ma_ct):$cs$$.khong_su_dung_cho_ct?0>$cs$$.khong_su_dung_cho_ct.indexOf($obj$$.ma_ct):!0);if(0<$ckhds_query_t_ck_nt$$.length)for($hieu_luc_tu_i_q_ma_nv$$=0;$hieu_luc_tu_i_q_ma_nv$$<$ckhds_query_t_ck_nt$$.length;$hieu_luc_tu_i_q_ma_nv$$++){$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=$ckhds_query_t_ck_nt$$[$hieu_luc_tu_i_q_ma_nv$$];$kh_lan_mua_thu$$=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.sl_toi_thieu||
8
8
  0;let $sl_dap_ung$$=0;$kh_lan_mua_thu$$&&$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.vts&&0<$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.vts.length&&$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.vts.forEach($vt$$=>{var $ds_tien$$=$obj$$.details.filter($d$$=>$d$$.ma_vt===$vt$$.ma_vt&&(!$vt$$.ma_tt1||$vt$$.ma_tt1===$d$$.ma_tt1)&&(!$vt$$.ma_tt2||$vt$$.ma_tt2===$d$$.ma_tt2)&&(!$vt$$.ma_tt3||$vt$$.ma_tt3===$d$$.ma_tt3));if(0!=$ds_tien$$.length){var $so_luong$$=$ds_tien$$.map($d$$=>$d$$.sl_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,
@@ -1,9 +1,9 @@
1
1
  'use strict';const PostBook=require("../../libs/post-book"),options=global.getModel("options"),PostSocai=require("../../libs/post-socai"),User=global.getModel("user"),Sokho=global.getModel("sokho"),Socaitmp=global.getModel("socai"),Sodiemthuong=global.getModel("sodiemthuong"),transaction=global.getModel("transaction"),Evoucher=global.getModel("evoucher"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),dmtt=global.getModel("dmtt"),dmcpmh=global.getModel("dmcpmh"),dmkho=global.getModel("dmkho"),
2
2
  customer=global.getModel("customer"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),contract=global.getModel("contract"),trangthai=global.getModel("trangthai"),currency=global.getModel("currency"),ptthanhtoan=global.getModel("ptthanhtoan"),dmdiemthuong=global.getModel("dmdiemthuong"),model=global.getModel("so1"),pt1=global.getModel("pt1"),controller=require("../../controllers/controller"),async=require("async"),ma_ct="SO1",ckdiem=require("../../libs/ckdiem"),blockchainconnect=require("../../libs/blockchainconnect"),
3
3
  moment=require("moment"),numeral=require("numeral"),App=global.getModel("app"),Introducer=global.getModel("introducer"),getGiaBan=require("../../libs/getGiabanAsync"),dmchietkhauhd=global.getModel("dmchietkhauhd"),dmkhuyenmaihd=global.getModel("dmkhuyenmaihd"),underscore=require("underscore"),hoahonghd=async $obj$$=>{if($obj$$.tu_tinh_hoa_hong){$obj$$.tien_hoa_hong=0;$obj$$.ty_le_hoa_hong=0;$obj$$.ma_kh_hoa_hong="";if($obj$$.ma_nv){var $nv_t_tien_nt_t_tt_nt$$=await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,
4
- ma_nv:$obj$$.ma_nv}).lean();$nv_t_tien_nt_t_tt_nt$$&&($obj$$.ma_kh_hoa_hong=$nv_t_tien_nt_t_tt_nt$$.ma_kh)}if($obj$$.ma_kh_hoa_hong){$nv_t_tien_nt_t_tt_nt$$=$obj$$.details.csum("tien_hang_nt");var $ckhds_query_t_ck_nt$$=$obj$$.details.csum("tien_ck_nt");$nv_t_tien_nt_t_tt_nt$$=$nv_t_tien_nt_t_tt_nt$$-$ckhds_query_t_ck_nt$$-($obj$$.tien_ck_hd||0);$ckhds_query_t_ck_nt$$={id_app:$obj$$.id_app,gt_tu:{$lte:$nv_t_tien_nt_t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]}};$ckhds_query_t_ck_nt$$.$and=
5
- [{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$nv_t_tien_nt_t_tt_nt$$}}]}];var $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_i_q_ma_nv$$={$lte:moment($obj$$.ngay_ct).endOf("date").toDate()};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$gte:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$};$ckhds_query_t_ck_nt$$.hieu_luc_tu=$hieu_luc_tu_i_q_ma_nv$$;$ckhds_query_t_ck_nt$$.hieu_luc_den=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$;$hieu_luc_tu_i_q_ma_nv$$={$in:[void 0,
6
- null,"",$obj$$.ma_nv]};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,""]};if($obj$$.ma_kh){var $kh_lan_mua_thu$$=await customer.findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh},{nh_kh:1});$kh_lan_mua_thu$$&&$kh_lan_mua_thu$$.nh_kh&&($ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,"",$kh_lan_mua_thu$$.nh_kh]});($kh_lan_mua_thu$$=await model.countDocuments({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh,trang_thai:{$in:["5","6"]}}))||($kh_lan_mua_thu$$=0);$kh_lan_mua_thu$$+=1}$ckhds_query_t_ck_nt$$.$or=
4
+ ma_nv:$obj$$.ma_nv}).lean();$nv_t_tien_nt_t_tt_nt$$&&($obj$$.ma_kh_hoa_hong=$nv_t_tien_nt_t_tt_nt$$.ma_kh)}if($obj$$.ma_kh_hoa_hong){$nv_t_tien_nt_t_tt_nt$$=$obj$$.details.csum("tien_hang_nt");var $ckhds_query_t_ck_nt$$=$obj$$.details.csum("tien_ck_nt");$nv_t_tien_nt_t_tt_nt$$=$nv_t_tien_nt_t_tt_nt$$-$ckhds_query_t_ck_nt$$-($obj$$.tien_ck_hd||0);$ckhds_query_t_ck_nt$$={id_app:$obj$$.id_app,gt_tu:{$lte:$nv_t_tien_nt_t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]},kieu:{$in:["0",null,void 0]}};
5
+ $ckhds_query_t_ck_nt$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$nv_t_tien_nt_t_tt_nt$$}}]}];var $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_i_q_ma_nv$$={$lte:moment($obj$$.ngay_ct).endOf("date").toDate()};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$gte:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$};$ckhds_query_t_ck_nt$$.hieu_luc_tu=$hieu_luc_tu_i_q_ma_nv$$;$ckhds_query_t_ck_nt$$.hieu_luc_den=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$;$hieu_luc_tu_i_q_ma_nv$$=
6
+ {$in:[void 0,null,"",$obj$$.ma_nv]};$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,""]};if($obj$$.ma_kh){var $kh_lan_mua_thu$$=await customer.findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh},{nh_kh:1});$kh_lan_mua_thu$$&&$kh_lan_mua_thu$$.nh_kh&&($ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,"",$kh_lan_mua_thu$$.nh_kh]});($kh_lan_mua_thu$$=await model.countDocuments({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh,trang_thai:{$in:["5","6"]}}))||($kh_lan_mua_thu$$=0);$kh_lan_mua_thu$$+=1}$ckhds_query_t_ck_nt$$.$or=
7
7
  [{$and:[{ma_nv:$hieu_luc_tu_i_q_ma_nv$$},{nh_kh:{$in:["",null,void 0]}}]},{$and:[{nh_kh:$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$},{ma_kh:{$in:["",null,void 0]}}]}];$ckhds_query_t_ck_nt$$.ap_dung_lan_mua_thu={$in:[null,void 0,0,void 0]};$ckhds_query_t_ck_nt$$=await global.getModel("dmhoahonghd").find($ckhds_query_t_ck_nt$$).sort({gt_tu:-1,tien_ck:-1,ty_le_hh:-1,ma_nv:-1,nh_kh:-1,hieu_luc_tu:-1}).lean();$ckhds_query_t_ck_nt$$=$ckhds_query_t_ck_nt$$.filter($cs$$=>$cs$$.chi_su_dung_cho_ct?0<=$cs$$.chi_su_dung_cho_ct.indexOf($obj$$.ma_ct):
8
8
  $cs$$.khong_su_dung_cho_ct?0>$cs$$.khong_su_dung_cho_ct.indexOf($obj$$.ma_ct):!0);if(0<$ckhds_query_t_ck_nt$$.length)for($hieu_luc_tu_i_q_ma_nv$$=0;$hieu_luc_tu_i_q_ma_nv$$<$ckhds_query_t_ck_nt$$.length;$hieu_luc_tu_i_q_ma_nv$$++){$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$=$ckhds_query_t_ck_nt$$[$hieu_luc_tu_i_q_ma_nv$$];$kh_lan_mua_thu$$=$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.sl_toi_thieu||0;let $sl_dap_ung$$=0;$kh_lan_mua_thu$$&&$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.vts&&0<$ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.vts.length&&
9
9
  $ckhd_hieu_luc_den_q_nh_kh_tu_ngay$$.vts.forEach($vt$$=>{var $ds_tien$$=$obj$$.details.filter($d$$=>$d$$.ma_vt===$vt$$.ma_vt&&(!$vt$$.ma_tt1||$vt$$.ma_tt1===$d$$.ma_tt1)&&(!$vt$$.ma_tt2||$vt$$.ma_tt2===$d$$.ma_tt2)&&(!$vt$$.ma_tt3||$vt$$.ma_tt3===$d$$.ma_tt3));if(0!=$ds_tien$$.length){var $so_luong$$=$ds_tien$$.map($d$$=>$d$$.sl_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$ds_tien$$=$ds_tien$$.map($d$$=>($d$$.tien_hang_nt||0)-($d$$.tien_ck_nt||0)).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$vt$$.sl_tu&&$so_luong$$<