flexbiz-server 12.5.37 → 12.5.38

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.5.37",
5
+ "version": "12.5.38",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -40,26 +40,25 @@ $obj$$.attends&&($users_will_receive$$=$users_will_receive$$.concat($obj$$.atten
40
40
  })`,$admins_of_user_sandbox_us$$)();_.isArray($cust_users_will_receive$$)?$users_will_receive$$=$cust_users_will_receive$$:console.error("handle user will receive notify:",$cust_users_will_receive$$,$p$$.handle_receivers)}}catch($e$$){console.error("[controllerUtiles][pushNotification]",$e$$)}}$ctrl$$.options||($ctrl$$.options={});$ctrl$$.options.onEmitEvent||($ctrl$$.options.onEmitEvent=($obj$$,$users_will_receive$$,$next$$,$_notificationData$$)=>{$next$$(null,$users_will_receive$$,
41
41
  $_notificationData$$)});$ctrl$$.options.onEmitEvent(Object.assign({},$obj$$),$users_will_receive$$,($e$$,$_users_will_receive$$,$_notificationData$$)=>{setImmediate(()=>{if($e$$)return console.error("[controllerUtiles][pushNotification]","Error emit events",$e$$);$_users_will_receive$$=_.uniq($_users_will_receive$$);$_users_will_receive$$.length>0&&app.emitEvent($obj$$.id_app,`${$ctrl$$.name.toLowerCase()}:${$eventName$$}`,$_notificationData$$||$notificationData$$,$exclude_token$$,$_users_will_receive$$,
42
42
  !$_justFireEvents$$)})},Object.assign({},$notificationData$$),Object.assign({},$p$$))})}))}})},PostBook=require("../libs/post-book"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),Sokhokhongton=global.getModel("sokhokhongton"),Tdttno=global.getModel("tdttno"),Tdttno_tt=global.getModel("tdttno_tt"),Tdttco_tt=global.getModel("tdttco_tt"),Tdttco=global.getModel("tdttco"),Vatra=global.getModel("vatra"),Vatvao=global.getModel("vatvao"),deletePost=function($user$$,$obj$$,$callback$$){$obj$$.toObject&&
43
- ($obj$$=utils.convertObjectIdsToStrings($obj$$.toObject()));if(!$obj$$._id)return console.error("Error when delete post: obj does not have _id",$obj$$),$callback$$("Error when delete post: obj does not have _id",$obj$$);if(!getCurrentSession())return $callback$$("T\u00ednh n\u0103ng [deletePost] c\u1ea7n ch\u1ea1y trong m\u1ed9t transaction");async.parallel({delete_model_books_registed:$callback$$=>{setImmediate(()=>{if(!global.model_books)return $callback$$();async.map(global.model_books.filter($d$$=>
44
- $d$$!=="sokho"&&$d$$!=="sokhonpp"&&$d$$!=="sokhott"&&$d$$!=="sokhokhongton"&&$d$$!=="socai"&&$d$$!=="socaitmp"),($bookName$$,$callback$$)=>{setImmediate(async()=>{let $book$$=mongoose.models[$bookName$$.toLowerCase()];$book$$?$book$$.deleteMany({id_ct:$obj$$._id.toString()},$e$$=>{$callback$$($e$$)}):$callback$$()})},$e$$=>{$callback$$($e$$)})})},sk:$callback$$=>{setImmediate(async()=>{(new PostBook($obj$$,$obj$$.details,Sokho,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})})},
45
- sktt:$callback$$=>{setImmediate(async()=>{(new PostBook($obj$$,$obj$$.details,Sokhott,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})})},skkhongton:$callback$$=>{setImmediate(async()=>{(new PostBook($obj$$,$obj$$.details,Sokhokhongton,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})})},sknpp:$callback$$=>{setImmediate(async()=>{(new PostBook($obj$$,$obj$$.details,global.getModel("sokhonpp"),function($detail$$,
46
- $callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})})},sc:$callback$$=>{setImmediate(async()=>{Socai.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},sctmp:$callback$$=>{setImmediate(async()=>{global.getModel("socaitmp").deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},vatra:$callback$$=>{setImmediate(async()=>{if(global.model_books&&global.model_books.indexOf("vatra")>=0)return $callback$$();
47
- Vatra.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},vatvao:$callback$$=>{setImmediate(async()=>{if(global.model_books&&global.model_books.indexOf("vatvao")>=0)return $callback$$();Vatvao.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},tdttno:$callback$$=>{setImmediate(async()=>{let $tdtts$$=await Tdttno.find({id_ct:$obj$$._id.toString()},{_id:1,tat_toan:1}).lean();if($tdtts$$.length>0){if($tdtts$$.filter($t$$=>$t$$.tat_toan).length>
48
- 0)return $callback$$(null);$tdtts$$=$tdtts$$.map($t$$=>$t$$._id.toString());if(await Tdttno_tt.findOne({id_tdtt:{$in:$tdtts$$}}))return $callback$$()}Tdttno.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},tdttco:$callback$$=>{setImmediate(async()=>{let $tdtts$$=await Tdttco.find({id_ct:$obj$$._id.toString()},{_id:1,tat_toan:1}).lean();if($tdtts$$.length>0){if($tdtts$$.filter($t$$=>$t$$.tat_toan).length>0)return $callback$$(null);$tdtts$$=$tdtts$$.map($t$$=>$t$$._id.toString());
49
- if(await Tdttco_tt.findOne({id_tdtt:{$in:$tdtts$$}}))return $callback$$()}Tdttco.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},tdttno_tt:$callback$$=>{setImmediate(async()=>{Tdttno_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){if($error$$)return $callback$$($error$$);$obj$$.tdttnos?async.map($obj$$.tdttnos,function($detail$$,$callback$$){setImmediate(()=>{Tdttno.updateOne({_id:$detail$$.id_tdtt},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>
50
- {if($error$$)return $callback$$($error$$);$callback$$()})})})},function($e$$){$e$$&&console.error($e$$);$callback$$()}):$callback$$()})})},tdttco_tt:$callback$$=>{setImmediate(async()=>{Tdttco_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){if($error$$)return $callback$$($error$$);$obj$$.tdttcos?async.map($obj$$.tdttcos,function($detail$$,$callback$$){setImmediate(()=>{Tdttco.updateOne({_id:$detail$$.id_tdtt},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);
51
- $callback$$()})})})},function($e$$){$e$$&&console.error($e$$);$callback$$()}):$callback$$()})})}},async function($e$$){$e$$&&console.error("[controllerUtiles] [deletePost]",$e$$.message||$e$$.error||$e$$);$callback$$($e$$,$obj$$)})},runWebhooks=async($ctrl$$,$obj$$,$action$$,$voucher_options$$)=>{$voucher_options$$||($voucher_options$$=(await OptionsModel.findOne({id_app:$obj$$.id_app,id_func:$ctrl$$.name},{option:1}).lean()||{}).option);if($voucher_options$$&&$voucher_options$$.option_webhooks&&
52
- ($ctrl$$=$voucher_options$$.option_webhooks.find($w$$=>$w$$.action.toUpperCase()===$action$$.toUpperCase()&&$w$$.url))){$voucher_options$$=path.dirname(__dirname)+"/workers/webhook.js";if(!fs.existsSync($voucher_options$$))return console.error("webhook process is not exitst");global.webhookPool||(global.webhookPool=new StaticPool($voucher_options$$,0,1));global.webhookPool.exec({data:$obj$$,webhook_configs:$ctrl$$},$response$$=>{$response$$.error?console.error("runWebhooks",$response$$.error):console.log($response$$)})}},
53
- getNextSequence=async function($id_app$$,$ma_ct$$,$field$$,$callback$$,$options$$={}){var $condition_qct_qcts$$={status:!0,field:$field$$,id_app:$id_app$$,$and:[{$or:[{ma_ct:"#",ma_ct_khac:{$regex:$ma_ct$$,$options:"i"}},{cac_ma_ct:$ma_ct$$.toLowerCase()},{ma_ct:$ma_ct$$.toUpperCase()}]}]};$options$$.id_qct&&($condition_qct_qcts$$._id=$options$$.id_qct);if($options$$.ngay_ct){let $start_date$$=moment($options$$.ngay_ct).startOf("date").toDate(),$end_date$$=moment($options$$.ngay_ct).endOf("date").toDate();
54
- $condition_qct_qcts$$.$and.push({$or:[{tu_ngay:null},{tu_ngay:{$lte:$end_date$$}}]});$condition_qct_qcts$$.$and.push({$or:[{den_ngay:null},{den_ngay:{$gte:$start_date$$}}]})}$options$$.toObject&&($options$$=utils.convertObjectIdsToStrings($options$$.toObject()));$condition_qct_qcts$$=await dmqct.find($condition_qct_qcts$$).lean();const $keys$$=Object.keys($options$$),$qct$$=$condition_qct_qcts$$.find($qct$$=>{if($qct$$.dieu_kien&&$keys$$.length>0)try{let $str_func$$=$qct$$.dieu_kien;if($str_func$$.indexOf("async ")>=
55
- 0)return!1;$str_func$$.indexOf("return ")!==0&&($str_func$$=`return ${$str_func$$}`);return evalute($str_func$$,{...$options$$,master:{...$options$$},moment,numeral})}catch($e$$){return console.error("Error find quyen chung tu",$e$$,$qct$$.dieu_kien),!1}else return!0});let $code$$=$qct$$?$qct$$._id.toString():$field$$;counter.getNextSequence($id_app$$,$ma_ct$$,$code$$,async function($error$$,$rs$$){if($error$$)console.error("auto create code for",$ma_ct$$,$code$$,$error$$),$callback$$($error$$);else{if($qct$$){let $tien_to$$=
56
- $qct$$.tien_to||"";if($tien_to$$.indexOf("return ")>=0&&$tien_to$$.indexOf("async ")<0)try{$tien_to$$=evalute($tien_to$$,{...$options$$,moment,numeral}),$tien_to$$=$tien_to$$.toString().trim()}catch($e$$){console.error("getNextSequence",$e$$)}let $hau_to$$=$qct$$.hau_to||"";if($hau_to$$.indexOf("return ")>=0&&$hau_to$$.indexOf("async ")<0)try{$hau_to$$=evalute($hau_to$$,{...$options$$,moment,numeral}),$hau_to$$=$hau_to$$.toString().trim()}catch($e$$){console.error("getNextSequence",$e$$)}!$qct$$.tu_dong_reset||
57
- $qct$$.tien_to_ht==void 0||$qct$$.hau_to_ht==void 0||$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$$||=999999;$den_so_so_ky_tu_them$$=$den_so_so_ky_tu_them$$.toString().length-$error$$.length;$error$$=$den_so_so_ky_tu_them$$>0?($tien_to$$||"")+"0000000000000000000000".substring(0,
58
- $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$$)}})},asyncGetNextSequence=async($id_app$$,$ma_ct$$,$field$$,$options$$={})=>new Promise(($resolve$$,$reject$$)=>{getNextSequence($id_app$$,$ma_ct$$,$field$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)},
59
- $options$$)});
60
- function checkReference($model$$,$obj$$,$fn$$,$keys$$){$model$$.referenceKeys?($keys$$||=_.keys($model$$.referenceKeys),async.map($keys$$,function($key$$,$callback$$){setImmediate(()=>{let $ref$$=$model$$.referenceKeys[$key$$];if(!$ref$$)return $callback$$();let $value$$=$obj$$[$key$$];$key$$==="_id"&&($value$$=$value$$.toString());if($value$$==void 0||$value$$==null||$value$$=="")return $callback$$();async.map($ref$$,function($r$$,$cb$$){setImmediate(()=>{let $model$$=mongoose.models[$r$$.model];if($model$$){let $query$$=
61
- {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$$&&$o$$.length>0){let $msgError$$;$msgError$$=$r$$.error?(new Function("obj","return `"+$r$$.error.replace("{{VALUE}}",$value$$)+"`"))($obj$$):ERRORS.ERR_DATA_GENERATED;
62
- 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$$()}
43
+ ($obj$$=utils.convertObjectIdsToStrings($obj$$.toObject()));if(!$obj$$._id)return console.error("Error when delete post: obj does not have _id",$obj$$),$callback$$("Error when delete post: obj does not have _id",$obj$$);if(!getCurrentSession())return $callback$$("T\u00ednh n\u0103ng [deletePost] c\u1ea7n ch\u1ea1y trong m\u1ed9t transaction");async.series({delete_model_books_registed:$callback$$=>{if(!global.model_books)return $callback$$();async.mapSeries(global.model_books.filter($d$$=>$d$$!=="sokho"&&
44
+ $d$$!=="sokhonpp"&&$d$$!=="sokhott"&&$d$$!=="sokhokhongton"&&$d$$!=="socai"&&$d$$!=="socaitmp"),($bookName$$,$callback$$)=>{setImmediate(async()=>{let $book$$=mongoose.models[$bookName$$.toLowerCase()];$book$$?$book$$.deleteMany({id_ct:$obj$$._id.toString()},$e$$=>{$callback$$($e$$)}):$callback$$()})},$e$$=>{$callback$$($e$$)})},sk:$callback$$=>{(new PostBook($obj$$,$obj$$.details,Sokho,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})},sktt:$callback$$=>
45
+ {(new PostBook($obj$$,$obj$$.details,Sokhott,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})},skkhongton:$callback$$=>{(new PostBook($obj$$,$obj$$.details,Sokhokhongton,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})},sknpp:$callback$$=>{setImmediate(async()=>{(new PostBook($obj$$,$obj$$.details,global.getModel("sokhonpp"),function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$$($e$$)})})},
46
+ sc:$callback$$=>{setImmediate(async()=>{Socai.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},sctmp:$callback$$=>{global.getModel("socaitmp").deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})},vatra:$callback$$=>{if(global.model_books&&global.model_books.indexOf("vatra")>=0)return $callback$$();Vatra.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})},vatvao:$callback$$=>{if(global.model_books&&
47
+ global.model_books.indexOf("vatvao")>=0)return $callback$$();Vatvao.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})},tdttno:$callback$$=>{setImmediate(async()=>{let $tdtts$$=await Tdttno.find({id_ct:$obj$$._id.toString()},{_id:1,tat_toan:1}).lean();if($tdtts$$.length>0){if($tdtts$$.filter($t$$=>$t$$.tat_toan).length>0)return $callback$$(null);$tdtts$$=$tdtts$$.map($t$$=>$t$$._id.toString());if(await Tdttno_tt.findOne({id_tdtt:{$in:$tdtts$$}}))return $callback$$()}Tdttno.deleteMany({id_ct:$obj$$._id.toString()},
48
+ function($error$$){$callback$$($error$$)})})},tdttco:$callback$$=>{setImmediate(async()=>{let $tdtts$$=await Tdttco.find({id_ct:$obj$$._id.toString()},{_id:1,tat_toan:1}).lean();if($tdtts$$.length>0){if($tdtts$$.filter($t$$=>$t$$.tat_toan).length>0)return $callback$$(null);$tdtts$$=$tdtts$$.map($t$$=>$t$$._id.toString());if(await Tdttco_tt.findOne({id_tdtt:{$in:$tdtts$$}}))return $callback$$()}Tdttco.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){$callback$$($error$$)})})},tdttno_tt:$callback$$=>
49
+ {setImmediate(async()=>{Tdttno_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){if($error$$)return $callback$$($error$$);$obj$$.tdttnos?async.mapSeries($obj$$.tdttnos,function($detail$$,$callback$$){setImmediate(()=>{Tdttno.updateOne({_id:$detail$$.id_tdtt},{$set:{tat_toan:!1}},function($error$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);$callback$$()})})})},function($e$$){$e$$&&console.error($e$$);$callback$$()}):$callback$$()})})},tdttco_tt:$callback$$=>{setImmediate(async()=>
50
+ {Tdttco_tt.deleteMany({id_ct:$obj$$._id.toString()},function($error$$){if($error$$)return $callback$$($error$$);$obj$$.tdttcos?async.mapSeries($obj$$.tdttcos,function($detail$$,$callback$$){setImmediate(()=>{Tdttco.updateOne({_id:$detail$$.id_tdtt},{$set:{tat_toan:!1}},function($error$$){if($error$$)return $callback$$($error$$);$callback$$()})})},function($e$$){$e$$&&console.error($e$$);$callback$$()}):$callback$$()})})}},async function($e$$){$e$$&&console.error("[controllerUtiles] [deletePost]",
51
+ $e$$.message||$e$$.error||$e$$);$callback$$($e$$,$obj$$)})},runWebhooks=async($ctrl$$,$obj$$,$action$$,$voucher_options$$)=>{$voucher_options$$||($voucher_options$$=(await OptionsModel.findOne({id_app:$obj$$.id_app,id_func:$ctrl$$.name},{option:1}).lean()||{}).option);if($voucher_options$$&&$voucher_options$$.option_webhooks&&($ctrl$$=$voucher_options$$.option_webhooks.find($w$$=>$w$$.action.toUpperCase()===$action$$.toUpperCase()&&$w$$.url))){$voucher_options$$=path.dirname(__dirname)+"/workers/webhook.js";
52
+ if(!fs.existsSync($voucher_options$$))return console.error("webhook process is not exitst");global.webhookPool||(global.webhookPool=new StaticPool($voucher_options$$,0,1));global.webhookPool.exec({data:$obj$$,webhook_configs:$ctrl$$},$response$$=>{$response$$.error?console.error("runWebhooks",$response$$.error):console.log($response$$)})}},getNextSequence=async function($id_app$$,$ma_ct$$,$field$$,$callback$$,$options$$={}){var $condition_qct_qcts$$={status:!0,field:$field$$,id_app:$id_app$$,$and:[{$or:[{ma_ct:"#",
53
+ ma_ct_khac:{$regex:$ma_ct$$,$options:"i"}},{cac_ma_ct:$ma_ct$$.toLowerCase()},{ma_ct:$ma_ct$$.toUpperCase()}]}]};$options$$.id_qct&&($condition_qct_qcts$$._id=$options$$.id_qct);if($options$$.ngay_ct){let $start_date$$=moment($options$$.ngay_ct).startOf("date").toDate(),$end_date$$=moment($options$$.ngay_ct).endOf("date").toDate();$condition_qct_qcts$$.$and.push({$or:[{tu_ngay:null},{tu_ngay:{$lte:$end_date$$}}]});$condition_qct_qcts$$.$and.push({$or:[{den_ngay:null},{den_ngay:{$gte:$start_date$$}}]})}$options$$.toObject&&
54
+ ($options$$=utils.convertObjectIdsToStrings($options$$.toObject()));$condition_qct_qcts$$=await dmqct.find($condition_qct_qcts$$).lean();const $keys$$=Object.keys($options$$),$qct$$=$condition_qct_qcts$$.find($qct$$=>{if($qct$$.dieu_kien&&$keys$$.length>0)try{let $str_func$$=$qct$$.dieu_kien;if($str_func$$.indexOf("async ")>=0)return!1;$str_func$$.indexOf("return ")!==0&&($str_func$$=`return ${$str_func$$}`);return evalute($str_func$$,{...$options$$,master:{...$options$$},moment,numeral})}catch($e$$){return console.error("Error find quyen chung tu",
55
+ $e$$,$qct$$.dieu_kien),!1}else return!0});let $code$$=$qct$$?$qct$$._id.toString():$field$$;counter.getNextSequence($id_app$$,$ma_ct$$,$code$$,async function($error$$,$rs$$){if($error$$)console.error("auto create code for",$ma_ct$$,$code$$,$error$$),$callback$$($error$$);else{if($qct$$){let $tien_to$$=$qct$$.tien_to||"";if($tien_to$$.indexOf("return ")>=0&&$tien_to$$.indexOf("async ")<0)try{$tien_to$$=evalute($tien_to$$,{...$options$$,moment,numeral}),$tien_to$$=$tien_to$$.toString().trim()}catch($e$$){console.error("getNextSequence",
56
+ $e$$)}let $hau_to$$=$qct$$.hau_to||"";if($hau_to$$.indexOf("return ")>=0&&$hau_to$$.indexOf("async ")<0)try{$hau_to$$=evalute($hau_to$$,{...$options$$,moment,numeral}),$hau_to$$=$hau_to$$.toString().trim()}catch($e$$){console.error("getNextSequence",$e$$)}!$qct$$.tu_dong_reset||$qct$$.tien_to_ht==void 0||$qct$$.hau_to_ht==void 0||$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$$}));
57
+ $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$$||=999999;$den_so_so_ky_tu_them$$=$den_so_so_ky_tu_them$$.toString().length-$error$$.length;$error$$=$den_so_so_ky_tu_them$$>0?($tien_to$$||"")+"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$$=
58
+ $rs$$.toString();$rs$$={};$rs$$[$field$$]=$error$$;$callback$$(null,$rs$$)}})},asyncGetNextSequence=async($id_app$$,$ma_ct$$,$field$$,$options$$={})=>new Promise(($resolve$$,$reject$$)=>{getNextSequence($id_app$$,$ma_ct$$,$field$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)},$options$$)});
59
+ function checkReference($model$$,$obj$$,$fn$$,$keys$$){$model$$.referenceKeys?($keys$$||=_.keys($model$$.referenceKeys),async.map($keys$$,function($key$$,$callback$$){setImmediate(()=>{let $ref$$=$model$$.referenceKeys[$key$$];if(!$ref$$)return $callback$$();let $value$$=$obj$$[$key$$];$key$$==="_id"&&($value$$=$value$$.toString());if($value$$==void 0||$value$$==null||$value$$=="")return $callback$$();async.map($ref$$,function($r$$,$cb$$){setImmediate(()=>{let $model$$=mongoose.models[$r$$.model];
60
+ 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$$&&$o$$.length>0){let $msgError$$;$msgError$$=$r$$.error?(new Function("obj","return `"+$r$$.error.replace("{{VALUE}}",$value$$)+
61
+ "`"))($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$$()}
63
62
  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$$),[]);$parameters$$.length>0?$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$$)}))},
64
63
  prepareParameters=function($ctrl$$,$parameters$$,$app$$,$obj$$,$callback$$){async.mapLimit($parameters$$,100,function($p$$,$callback$$){setImmediate(()=>{(async()=>{if($p$$.type==="W"||$p$$.type==="EN")try{$app$$[$p$$.name]=$p$$.type==="EN"?numberToWord($obj$$[$p$$.value],{lang:"en"}):numberToWord($obj$$[$p$$.value])}catch($e$$){console.error("prepareParameters",$e$$),$app$$[$p$$.name]=$e$$.message}else if($p$$.type==="Q")try{var $query$jscomp$1_sandbox$$=await evalute("return {"+$p$$.value+"}",{});
65
64
  if($query$jscomp$1_sandbox$$.collection&&$query$jscomp$1_sandbox$$.field){$query$jscomp$1_sandbox$$.collection=="dmkh"&&($query$jscomp$1_sandbox$$.collection="customer");$query$jscomp$1_sandbox$$.collection=="dmtk"&&($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$$=
@@ -11,9 +11,9 @@ moment($obj$$.ngay_ct).startOf("quarter").toDate();$den_ngay$$=moment($obj$$.nga
11
11
  await $ctrl$$.notNeedRight($user$$,{action:$action$$,obj:$obj$$});permission.hasRight($obj$$.id_app,$user$$.email,$ctrl$$.module,$action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($error$$||!$hr$$)return $error$$=$error$$||"",$callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE});$ctrl$$.checkData($c_app$$,$obj$$,$e$$=>{if($e$$)return $callback$$($e$$);$ctrl$$.creating?$ctrl$$.creating($user$$,$obj$$,function($error$$,$_obj$$){if($error$$)return $callback$$($error$$);
12
12
  for(let $f$$ of Object.keys($schema_paths$$))$error$$=$_obj$$.get?$_obj$$.get($f$$):$_obj$$[$f$$],$obj$$.set($f$$,$error$$);$callback$$(null,$obj$$)},{data:$data$$,action:$action$$}):$callback$$(null,$obj$$)})})},{data:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})},($obj$$,$callback$$)=>{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"}},
13
13
  {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$$);global.getModel("dmqct").find($condition_qct_ma_ct$$).lean().then($rs$$=>{setImmediate(()=>{let $qcts$$=($rs$$||[]).filter($qct$$=>$qct$$.field!=="so_ct"&&!$obj$$[$qct$$.field]&&$model$$.schema.paths[$qct$$.field]);$qcts$$=$qcts$$.filter($qct$$=>
14
- {if($qct$$.dieu_kien&&$keys_options$$.length>0)try{let $str_func$$=$qct$$.dieu_kien;$str_func$$.indexOf("return ")!==0&&($str_func$$=`return ${$str_func$$}`);return $str_func$$.indexOf("async ")>0?!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$$};
15
- $_options$$.id_qct=$qct$$._id.toString();let $count$$=0;async.whilst(function($cb$$){$cb$$(null,$count$$<10)},function($callback$$){getNextSequence($obj$$.id_app,$ctrl$$.name,$field$$,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$$]},
16
- {[$field$$]:1}).lean()?$count$$>=9?$callback$$(`Kh\u00f4ng th\u1ec3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o gi\u00e1 tr\u1ecb cho field ${$field$$}. H\u00e3y s\u1eed d\u1ee5ng quy\u1ec3n ch\u1ee9ng t\u1eeb kh\u00e1c`):($count$$++,$callback$$()):($count$$=99999,$callback$$()):($count$$=99999,$callback$$())})},$_options$$)},function($err$$){$cb$$($err$$)})})},$e$$=>{setImmediate(()=>{$callback$$($e$$)})})})}).catch($e$$=>{console.error($e$$)})})},$callback$$=>{setImmediate(function(){if((!$voucher_options$$?.trang_thai_create_voucher_numbers||
14
+ {if($qct$$.dieu_kien&&$keys_options$$.length>0)try{let $str_func$$=$qct$$.dieu_kien;$str_func$$.indexOf("return ")!==0&&($str_func$$=`return ${$str_func$$}`);return $str_func$$.indexOf("async ")>0?!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$$)=>{let $field$$=$qct$$.field,$_options$$={...$_options_qct$$};$_options$$.id_qct=
15
+ $qct$$._id.toString();let $count$$=0;async.whilst(function($cb$$){$cb$$(null,$count$$<10)},function($callback$$){getNextSequence($obj$$.id_app,$ctrl$$.name,$field$$,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$$]},
16
+ {[$field$$]:1}).lean()?$count$$>=9?$callback$$(`Kh\u00f4ng th\u1ec3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o gi\u00e1 tr\u1ecb cho field ${$field$$}. H\u00e3y s\u1eed d\u1ee5ng quy\u1ec3n ch\u1ee9ng t\u1eeb kh\u00e1c`):($count$$++,$callback$$()):($count$$=99999,$callback$$()):($count$$=99999,$callback$$())})},$_options$$)},function($err$$){$cb$$($err$$)})},$e$$=>{setImmediate(()=>{$callback$$($e$$)})})})}).catch($e$$=>{console.error($e$$)})})},$callback$$=>{setImmediate(function(){if((!$voucher_options$$?.trang_thai_create_voucher_numbers||
17
17
  $voucher_options$$?.trang_thai_create_voucher_numbers.length==0||$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($obj$$.trang_thai)>=0)&&$model$$.schema.paths.so_ct)if($obj$$.so_ct&&$obj$$.so_ct.toUpperCase()!==($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$obj$$.so_ct.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkVoucherNumber$$($error$$=>{$callback$$($error$$)});else{let $count$$=0;async.whilst(function($cb$$){$cb$$(null,$count$$<100)},function($callback$$){getNextSequence($obj$$.id_app,
18
18
  $listinfo_code$$||$ctrl$$.name,"so_ct",function($e$$,$rs$$){setImmediate(()=>{if($e$$)return $callback$$($e$$);$obj$$.so_ct=$rs$$.so_ct;$checkVoucherNumber$$($error$$=>{$error$$?$count$$>=99?$callback$$($error$$):($count$$++,$callback$$()):($count$$=99999,$callback$$())})})},$obj$$)},function($err$$){$callback$$($err$$)})}else $callback$$()})},function($callback$$){setImmediate(async()=>{if($model$$.schema.paths.ma_dvcs&&$ctrl$$.name!=="dvcs")if($obj$$.ma_dvcs)if(global.mongoose.Types.ObjectId.isValid($obj$$.ma_dvcs)){let $_id_dvcs$$=
19
19
  global.mongoose.Types.ObjectId($obj$$.ma_dvcs);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$$.id_app,status:!0}).lean().then(function($rs$$){setImmediate(()=>{$rs$$&&($obj$$.ma_dvcs=$rs$$._id.toString());$callback$$()})}).catch($e$$=>
@@ -3,9 +3,9 @@ let $obj$$=await $model$$.findOne({_id:$_id$$});if(!$obj$$)return $mainCallback$
3
3
  (await global.getModel("options").findOne({id_app:$user$$.current_id_app,id_func:$ctrl$$.name}).lean()||{}).option;if($obj$$.ngay_ct&&$obj$$.id_app&&$obj$$.schema&&$obj$$.schema.validate&&$obj$$.schema.validate.ngay_ct)try{await new Promise(($rs$$,$rj$$)=>{validator.unlockBook[0]($obj$$.id_app,$obj$$.ngay_ct,$unlock$$=>{if(!$unlock$$)return $rj$$(validator.unlockBook[1]);$rs$$($unlock$$)},$voucher_options$$)})}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$,code:ERRORS.BOOK_LOCK})}$obj$$=
4
4
  convertObjectIdsToStrings($obj$$.toObject());($q_approve_requireOtp$$=$ctrl$$.options.requireOtp)&&_.isFunction($q_approve_requireOtp$$)&&($q_approve_requireOtp$$=$q_approve_requireOtp$$($obj$$,{action:"delete",_id:$_id$$,user:$user$$}));if($q_approve_requireOtp$$)try{await permission.verifyOTP($user$$.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$,code:ERRORS.ERR_VERIFY_OTP})}setImmediate(async()=>{let $notNeedRight$$=await $ctrl$$.notNeedRight($req$$.user,
5
5
  {action:"delete",obj:$obj$$});permission.hasRight($ctrl$$.require_id_app?$obj$$.id_app:void 0,$req$$.user.email,$module$$,"delete",function($error$$,$hr$$){if($hr$$)checkReference($model$$,$obj$$,function($error$$){if($error$$)return $callback$$({error:ERRORS.ERR_ARISE+($error$$.error||$error$$.message||$error$$),code:ERRORS.ERR_ARISE_CODE});$req$$.obj=$obj$$;$callback$$()});else return $callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE})},
6
- {obj:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})})},function($callback$$){setImmediate(()=>{let $obj$$=$req$$.obj;$ctrl$$.deleting?$ctrl$$.deleting($req$$.user,$obj$$,function($e$$,$obj$$){if($e$$)return console.error("deleting",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$$,function($error$$,$obj$$){if($error$$)return $callback$$($error$$);$req$$.obj=$obj$$;$callback$$()},{listinfo_code:$listinfo_code$$,
7
- req:$req$$}):($req$$.obj=$obj$$,$callback$$())},{req:$req$$}):$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$$,function($error$$,$obj$$){if($error$$)return $callback$$($error$$);$req$$.obj=$obj$$;$callback$$()},{listinfo_code:$listinfo_code$$,req:$req$$}):($req$$.obj=$obj$$,$callback$$())})},function($callback$$){setImmediate(()=>{let $obj$$=$req$$.obj;$ctrl$$.emit("deleting",{...$obj$$});deletePost($req$$.user,$obj$$,async $e$$=>{if($e$$)return console.error("delete post",$e$$),
8
- $e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj$$)}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$})}$model$$.deleteOne({_id:$obj$$._id},function($e$$){if($e$$)return console.error("delete object",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});onAfterCommit(()=>{$ctrl$$.emit("deleted",$obj$$);$ctrl$$.deleteData({...$obj$$});global.getModel("log").create({id_app:$req$$.user.current_id_app,
6
+ {obj:$obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})})})},function($callback$$){let $obj$$=$req$$.obj;$ctrl$$.deleting?$ctrl$$.deleting($req$$.user,$obj$$,function($e$$,$obj$$){if($e$$)return console.error("deleting",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$$,function($error$$,$obj$$){if($error$$)return $callback$$($error$$);$req$$.obj=$obj$$;$callback$$()},{listinfo_code:$listinfo_code$$,
7
+ req:$req$$}):($req$$.obj=$obj$$,$callback$$())},{req:$req$$}):$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$$,function($error$$,$obj$$){if($error$$)return $callback$$($error$$);$req$$.obj=$obj$$;$callback$$()},{listinfo_code:$listinfo_code$$,req:$req$$}):($req$$.obj=$obj$$,$callback$$())},function($callback$$){let $obj$$=$req$$.obj;$ctrl$$.emit("deleting",{...$obj$$});deletePost($req$$.user,$obj$$,async $e$$=>{if($e$$)return console.error("delete post",$e$$),$e$$.error?$callback$$($e$$):
8
+ $callback$$({error:$e$$.message||$e$$});if($ctrl$$.dynamicDeletePost)try{await $ctrl$$.dynamicDeletePost($obj$$)}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$})}$model$$.deleteOne({_id:$obj$$._id},function($e$$){if($e$$)return console.error("delete object",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});onAfterCommit(()=>{$ctrl$$.emit("deleted",$obj$$);$ctrl$$.deleteData({...$obj$$});global.getModel("log").create({id_app:$req$$.user.current_id_app,
9
9
  id_func:$ctrl$$.name,action:"DELETE",data:{id:$obj$$._id,data:$obj$$}},$req$$.user.email,$req$$.user_agent,$req$$);global.getModel("link").deleteMany({$or:[{id_a:$obj$$._id},{id_b:$obj$$._id}]},function($e$$){$e$$&&console.error("Can't delete links\n"+$e$$)});global.getModel("customer").updateActives&&global.getModel("customer").updateActives($obj$$);runWebhooks($ctrl$$,$obj$$,"DELETE");pushNotification($ctrl$$,$obj$$,"delete",null,null,{exclude_token:$req$$.query.access_token})});setImmediate(()=>
10
- {$ctrl$$.deleted?$ctrl$$.deleted($req$$.user,$obj$$,function($e$$,$obj$$){if($e$$)return console.error("deleted",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.obj=$obj$$;$callback$$(null)}):($req$$.obj=$obj$$,$callback$$(null))})})})})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,$req$$.obj)})},deleteHandlerAsync=($ctrl$$,$req$$)=>new Promise(($resolve$$,$reject$$)=>{deleteHandler($ctrl$$,$req$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);
10
+ {$ctrl$$.deleted?$ctrl$$.deleted($req$$.user,$obj$$,function($e$$,$obj$$){if($e$$)return console.error("deleted",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$.obj=$obj$$;$callback$$(null)}):($req$$.obj=$obj$$,$callback$$(null))})})})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,$req$$.obj)})},deleteHandlerAsync=($ctrl$$,$req$$)=>new Promise(($resolve$$,$reject$$)=>{deleteHandler($ctrl$$,$req$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);
11
11
  $resolve$$($rs$$)})}),withSesssion=async($ctrl$$,$req$$,$callback$$)=>{try{const $rs$$=await executeInTransaction(()=>deleteHandlerAsync($ctrl$$,$req$$));$callback$$(null,$rs$$)}catch($e$$){$callback$$($e$$)}};module.exports=withSesssion;
@@ -1,34 +1,40 @@
1
1
  const async=require("async"),_=require("lodash"),{JSONParser}=require("../libs/utils"),{createHandler}=require("./createHandler"),{updateHandler}=require("./updateHandler"),{executeInTransaction}=require("../libs/sessionContext.js"),create=async($user$$,$ctrl$$,$data$$,$callback$$,$id_be_supply_by_user$$,$req$$,$action$$="add")=>{$req$$=$req$$||{};$req$$.user=$user$$;$req$$.data=$data$$;$req$$.id_be_supply_by_user=$id_be_supply_by_user$$;$req$$.action=$action$$;createHandler($ctrl$$,$req$$,($e_obj_created$$,
2
2
  $returnvalue$$)=>{if($e_obj_created$$)return $callback$$($e_obj_created$$);({obj_created:$e_obj_created$$}=$returnvalue$$);$callback$$(null,$e_obj_created$$)})},update=async function($user$$,$ctrl$$,$id$$,$data$$,$callback$$,$action$$,$req$$,$_action$$="update"){$req$$=$req$$||{};$req$$.action=$action$$;$req$$._action=$_action$$;$req$$.user=$user$$;$req$$.id=$id$$;$req$$.data=$data$$;updateHandler($ctrl$$,$req$$,($e$$,$returnvalue$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$returnvalue$$.new_obj)})};
3
- async function importHandler($user$$,$ctrl$$,$id_app$$,$data$$,$callback_main$$,$options$$={replace:!0,req:null,listinfo_code:null}){const $model$$=$ctrl$$.model;let $replace$$=$options$$.replace,$rows_error$$=[];var $custs_listInfo_new_custs_tk_dt$$=global.getModel("listinfo"),$info_nh_kh_nh_kh$jscomp$1_nh_kh$$=await $custs_listInfo_new_custs_tk_dt$$.findOne({code:($options$$.listinfo_code||$ctrl$$.name).toLowerCase()}).lean();let $modelJoins$$=[];$info_nh_kh_nh_kh$jscomp$1_nh_kh$$&&(await $custs_listInfo_new_custs_tk_dt$$.updateModel($info_nh_kh_nh_kh$jscomp$1_nh_kh$$,
4
- $ctrl$$.model),$modelJoins$$=($info_nh_kh_nh_kh$jscomp$1_nh_kh$$.fields||[]).filter($f$$=>$f$$.ref_model&&$f$$.ref_field=="_id"));$data$$=$data$$.filter($row$$=>{let $has_data$$=!1;for(let $key$$ in $row$$)if($row$$[$key$$]){$has_data$$=!0;break}return $has_data$$});if(configs.limitRowImport&&$data$$.length>configs.limitRowImport)return $callback_main$$("S\u1ed1 d\u00f2ng import t\u1ed1i \u0111a 1 l\u1ea7n l\u00e0 "+configs.limitRowImport);console.log("[importHanlder] \u0110ang import t\u1edbi",$model$$.modelName,
5
- $data$$.length," d\u00f2ng d\u1eef li\u1ec7u...");$custs_listInfo_new_custs_tk_dt$$=[];if($model$$.modelName!=="customer"){$model$$.schema.paths.ma_kh&&($custs_listInfo_new_custs_tk_dt$$=$data$$.filter($r$$=>$r$$.ten_kh));$model$$.schema.paths.details&&($custs_listInfo_new_custs_tk_dt$$=$custs_listInfo_new_custs_tk_dt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kh)));$custs_listInfo_new_custs_tk_dt$$=$custs_listInfo_new_custs_tk_dt$$.map($kh$$=>
6
- {$kh$$.ma_kh||($kh$$.ma_kh=$kh$$.ten_kh.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());return{ma_kh:$kh$$.ma_kh,ten_kh:$kh$$.ten_kh,dia_chi:$kh$$.dia_chi||"",dien_thoai:$kh$$.dien_thoai||"",ma_so_thue:$kh$$.ma_so_thue||"",nh_kh:$kh$$.nh_kh,ten_nh_kh:$kh$$.ten_nh_kh,ten_nh_kh2:$kh$$.ten_nh_kh2,nh_kh2:$kh$$.nh_kh2,ten_nh_kh3:$kh$$.ten_nh_kh3,nh_kh3:$kh$$.nh_kh3}});$info_nh_kh_nh_kh$jscomp$1_nh_kh$$=await $custs_listInfo_new_custs_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh&&!$c$$.nh_kh).asyncGroupBy(["ten_nh_kh"],
7
- []);for(let $ten_nh_kh$$ of $info_nh_kh_nh_kh$jscomp$1_nh_kh$$)if($info_nh_kh_nh_kh$jscomp$1_nh_kh$$={},$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.id_app=$id_app$$,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_name=$ten_nh_kh$$,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_type="CUSTOMER",$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_kind=1,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.status=!0,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.user_created=$user$$.email,!await global.getModel("group").findOne({group_name:$ten_nh_kh$$,id_app:$id_app$$,
8
- group_kind:1,group_type:"CUSTOMER"},{_id:1}).lean()){console.log("[importHanlder] create nhom kh",$ten_nh_kh$$);const $new_nh_kh$$=await global.getModel("group").create($info_nh_kh_nh_kh$jscomp$1_nh_kh$$);$custs_listInfo_new_custs_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh==$ten_nh_kh$$).forEach($c$$=>{$c$$.nh_kh=$new_nh_kh$$._id.toString()})}$info_nh_kh_nh_kh$jscomp$1_nh_kh$$=await $custs_listInfo_new_custs_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh2&&!$c$$.nh_kh2).asyncGroupBy(["ten_nh_kh2"],[]);for(let $ten_nh_kh2$$ of $info_nh_kh_nh_kh$jscomp$1_nh_kh$$)if($info_nh_kh_nh_kh$jscomp$1_nh_kh$$=
9
- {},$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.id_app=$id_app$$,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_name=$ten_nh_kh2$$,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_type="CUSTOMER",$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_kind=2,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.status=!0,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.user_created=$user$$.email,!await global.getModel("group").findOne({group_name:$ten_nh_kh2$$,id_app:$id_app$$,group_kind:2,group_type:"CUSTOMER"},{_id:1}).lean()){console.log("[importHanlder] create nhom kh2",
10
- $ten_nh_kh2$$);const $new_nh_kh$$=await global.getModel("group").create($info_nh_kh_nh_kh$jscomp$1_nh_kh$$);$custs_listInfo_new_custs_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh2==$ten_nh_kh2$$).forEach($c$$=>{$c$$.nh_kh2=$new_nh_kh$$._id.toString()})}$info_nh_kh_nh_kh$jscomp$1_nh_kh$$=await $custs_listInfo_new_custs_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh3&&!$c$$.nh_kh3).asyncGroupBy(["ten_nh_kh3"],[]);for(let $ten_nh_kh3$$ of $info_nh_kh_nh_kh$jscomp$1_nh_kh$$)if($info_nh_kh_nh_kh$jscomp$1_nh_kh$$={},$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.id_app=
11
- $id_app$$,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_name=$ten_nh_kh3$$,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_type="CUSTOMER",$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.group_kind=3,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.status=!0,$info_nh_kh_nh_kh$jscomp$1_nh_kh$$.user_created=$user$$.email,!await global.getModel("group").findOne({group_name:$ten_nh_kh3$$,id_app:$id_app$$,group_kind:3,group_type:"CUSTOMER"},{_id:1}).lean()){console.log("[importHanlder] create nhom kh3",$ten_nh_kh3$$);const $new_nh_kh$$=await global.getModel("group").create($info_nh_kh_nh_kh$jscomp$1_nh_kh$$);
12
- $custs_listInfo_new_custs_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh3==$ten_nh_kh3$$).forEach($c$$=>{$c$$.nh_kh3=$new_nh_kh$$._id.toString()})}$custs_listInfo_new_custs_tk_dt$$=await $custs_listInfo_new_custs_tk_dt$$.asyncGroupBy("ma_kh ten_kh dia_chi dien_thoai ma_so_thue nh_kh nh_kh2 nh_kh3".split(" "),[]);for(var $dvts_kh$$ of $custs_listInfo_new_custs_tk_dt$$)$dvts_kh$$.id_app=$id_app$$,$dvts_kh$$.user_created=$user$$.email,await global.getModel("customer").asyncCreateCustomer($dvts_kh$$)}$dvts_kh$$=
13
- [];if($model$$.modelName!=="dmkho"){$model$$.schema.paths.ma_kho&&($dvts_kh$$=$data$$.filter($r$$=>$r$$.ten_kho));$model$$.schema.paths.details&&($dvts_kh$$=$dvts_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kho)));$dvts_kh$$=$dvts_kh$$.map($kh$$=>{$kh$$.ma_kho||($kh$$.ma_kho=$kh$$.ten_kho.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());return{ma_kho:$kh$$.ma_kho,ten_kho:$kh$$.ten_kho}});$dvts_kh$$=await $dvts_kh$$.asyncGroupBy(["ma_kho",
14
- "ten_kho"],[]);for(var $kho_vts$$ of $dvts_kh$$)$kho_vts$$.id_app=$id_app$$,$kho_vts$$.user_created=$user$$.email,$kho_vts$$.status=!0,await global.getModel("dmkho").findOne({id_app:$id_app$$,ma_kho:$kho_vts$$.ma_kho}).lean()||await global.getModel("dmkho").create($kho_vts$$)}$kho_vts$$=[];if($model$$.modelName!=="dmvt"&&($model$$.schema.paths.ma_vt&&($kho_vts$$=$data$$.filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt)),$model$$.schema.paths.details&&($kho_vts$$=$kho_vts$$.concat($data$$.map($v$$=>$v$$.details||
15
- []).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt))),$kho_vts$$=$kho_vts$$.map($vt$$=>({ma_vt:$vt$$.ma_vt,ten_vt:$vt$$.ten_vt,ma_dvt:$vt$$.ma_dvt||"Kh\u00f4ng \u0111\u01a1n v\u1ecb t\u00ednh",ma_nvt:$vt$$.ma_nvt,ten_nvt:$vt$$.ten_nvt,ma_nvt2:$vt$$.ma_nvt2,ten_nvt2:$vt$$.ten_nvt2,ma_nvt3:$vt$$.ma_nvt3,ten_nvt3:$vt$$.ten_nvt3,user_created:$user$$.email})),$kho_vts$$=await $kho_vts$$.asyncGroupBy("ma_vt ten_vt ma_dvt ma_nvt ten_nvt ma_nvt2 ten_nvt2 ma_nvt3 ten_nvt3".split(" "),
16
- []),$kho_vts$$.length>0)){$dvts_kh$$=await $kho_vts$$.asyncGroupBy(["ma_dvt"],[]);for(var $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$ of $dvts_kh$$)$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=$id_app$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_dvt=$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ma_dvt,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email,await global.getModel("dmdvt").findOne({ma_dvt:$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ma_dvt,id_app:$id_app$$}).lean()||(console.log("[importHanlder] create dvt",
17
- $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$),await global.getModel("dmdvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$));$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=await $kho_vts$$.filter($c$$=>$c$$.ten_nvt).asyncGroupBy(["ten_nvt"],[]);for(let $ten_nvt$$ of $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$)if($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$={},$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=$id_app$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_nvt=$ten_nvt$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.group_kind=1,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=
18
- !0,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email,!await global.getModel("dmnvt").findOne({ten_nvt:$ten_nvt$$,id_app:$id_app$$,group_kind:1},{_id:1}).lean()){console.log("[importHanlder] create nhom vat tu",$ten_nvt$$);const $new_nvt$$=await global.getModel("dmnvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$);$kho_vts$$.filter($c$$=>$c$$.ten_nvt==$ten_nvt$$).forEach($c$$=>{$c$$.ma_nvt=$new_nvt$$._id.toString()})}$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=await $kho_vts$$.filter($c$$=>$c$$.ten_nvt2).asyncGroupBy(["ten_nvt2"],
19
- []);for(let $ten_nvt2$$ of $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$)if($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$={},$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=$id_app$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_nvt=$ten_nvt2$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.group_kind=2,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email,!await global.getModel("dmnvt").findOne({ten_nvt:$ten_nvt2$$,id_app:$id_app$$,group_kind:2},{_id:1}).lean()){console.log("[importHanlder] create nhom vat tu 2",
20
- $ten_nvt2$$);const $new_nvt$$=await global.getModel("dmnvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$);$kho_vts$$.filter($c$$=>$c$$.ten_nvt2==$ten_nvt2$$).forEach($c$$=>{$c$$.ma_nvt2=$new_nvt$$._id.toString()})}$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=await $kho_vts$$.filter($c$$=>$c$$.ten_nvt3).asyncGroupBy(["ten_nvt3"],[]);for(let $ten_nvt3$$ of $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$)if($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$={},$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=$id_app$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_nvt=
21
- $ten_nvt3$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.group_kind=3,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email,!await global.getModel("dmnvt").findOne({ten_nvt:$ten_nvt3$$,id_app:$id_app$$,group_kind:3},{_id:1}).lean()){console.log("[importHanlder] create nhom vat tu 3",$ten_nvt3$$);const $new_nvt$$=await global.getModel("dmnvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$);$kho_vts$$.filter($c$$=>$c$$.ten_nvt3==$ten_nvt3$$).forEach($c$$=>{$c$$.ma_nvt3=
22
- $new_nvt$$._id.toString()})}$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^156",$options:"i"}},{tk:1}).lean()||{}).tk;$dvts_kh$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^632",$options:"i"}},{tk:1}).lean()||{}).tk;$custs_listInfo_new_custs_tk_dt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^511",$options:"i"}},{tk:1}).lean()||{}).tk;for(let $vt$$ of $kho_vts$$)$vt$$.id_app=
23
- $id_app$$,$vt$$.tk_vt=$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$,$vt$$.tk_gv=$dvts_kh$$,$vt$$.tk_dt=$custs_listInfo_new_custs_tk_dt$$,$vt$$.status=!0,$vt$$.user_created=$user$$.email,await global.getModel("dmvt").findOne({ma_vt:$vt$$.ma_vt,id_app:$id_app$$}).lean()||(console.log("[importHanlder] create product",$vt$$),await global.getModel("dmvt").create($vt$$),await global.getModel("dmqddvt").create({id_app:$id_app$$,status:!0,ma_vt:$vt$$.ma_vt,ma_dvt:$vt$$.ma_dvt,tu:1,ma:1}))}$data$$.forEach($r$$=>{delete $r$$.ten_dvcs;
24
- global.mongoose.Types.ObjectId.isValid($r$$._id)||delete $r$$._id});await $data$$.filter($r$$=>$r$$.ma_dvcs).asyncJoinModel2($id_app$$,global.getModel("dvcs"),{where:{ma_dvcs:"_id"},fields:"ten_dvcs"});console.error("[importHanlder] begin import",$ctrl$$.name);async.mapLimit($data$$,100,function($row$$,$callback$$){const $row_keys$$=Object.keys($row$$);$row_keys$$.filter($key$$=>$ctrl$$.model.schema.paths[$key$$]).forEach($key$$=>{let $data_type$$=$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase(),
25
- $data_value$$=$row$$[$key$$];if($data_value$$&&_.isString($data_value$$)&&($data_type$$=="mixed"||$data_type$$=="array")&&($data_value$$=$data_value$$.trim(),$data_value$$.indexOf("[")==0||$data_value$$.indexOf("{")==0))try{$row$$[$key$$]=JSONParser($data_value$$)}catch($e$$){delete $row$$[$key$$],console.error("[importHanlder] 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$$=
26
- await global.getModel("originimportid").findOne({id_app:$id_app$$,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&&$ctrl$$.unique.length>0||$row$$._id)){let $query$$={};if($ctrl$$.unique&&$ctrl$$.unique.length>0){if($ctrl$$.options.unique_imp&&
27
- $row$$[$ctrl$$.options.unique_imp]!=null&&$row$$[$ctrl$$.options.unique_imp]!=void 0&&$row$$[$ctrl$$.options.unique_imp]!="")$query$$[$ctrl$$.options.unique_imp]=$row$$[$ctrl$$.options.unique_imp];else if($ctrl$$.unique.forEach(function($k$$){$row_keys$$.indexOf($k$$)>=0&&($query$$[$k$$]=$row$$[$k$$],$query$$[$k$$]==void 0&&delete $query$$[$k$$])}),Object.keys($query$$).length<1)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, D\u1eef li\u1ec7u c\u1ea7n c\u00f3 \u00edt nh\u1ea5t m\u1ed9t gi\u00e1 tr\u1ecb:"+
28
- $ctrl$$.unique.join(","));$ctrl$$.require_id_app!=0&&($query$$.id_app=$id_app$$)}else $query$$._id=$row$$._id;$ctrl$$.model.find($query$$).lean().then(async function($rss$$){if($rss$$.length>1)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");await executeInTransaction(()=>new Promise($resolve$$=>{let $foundObject$$;$rss$$.length===1&&($foundObject$$=
29
- $rss$$[0]);$foundObject$$?($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$$})}$resolve$$()},"import",$options$$.req,"import")):create($user$$,$ctrl$$,$row$$,function($e$$,$new_row$$){setImmediate(async()=>
30
- {if($e$$){var $_e$jscomp$1_i$$=$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$$=
31
- $data$$[$_e$jscomp$1_i$$];for(let $key$$ in $_r$$)$key$$!="_id"&&$_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()}))}$resolve$$()})},$row$$._id,$options$$.req,"import")}));$callback$$()}).catch($error$$=>{console.error("[importHanlder] L\u1ed7i t\u00ecm object:",$error$$.message);$callback$$($error$$)})}else await executeInTransaction(()=>new Promise($resolve$$=>{create($user$$,$ctrl$$,
32
- $row$$,async function($e$jscomp$5_i$$,$_e$jscomp$2_new_row$$){if($e$jscomp$5_i$$)console.error("[importHanlder] error import data, creating...",$e$jscomp$5_i$$),$_e$jscomp$2_new_row$$=$e$jscomp$5_i$$,_.isArray($_e$jscomp$2_new_row$$)||($_e$jscomp$2_new_row$$=[{error:$e$jscomp$5_i$$.error||$e$jscomp$5_i$$,code:$e$jscomp$5_i$$.code}]),$rows_error$$.push({error:$_e$jscomp$2_new_row$$});else if($row$$._id_new__=$_e$jscomp$2_new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$_e$jscomp$2_new_row$$.id_app,
33
- old_id:$old_id$$},{id_app:$_e$jscomp$2_new_row$$.id_app,old_id:$old_id$$,new_id:$_e$jscomp$2_new_row$$._id.toString()},{new:!0,upsert:!0}),$e$jscomp$5_i$$=0;$e$jscomp$5_i$$<$data$$.length;$e$jscomp$5_i$$++){const $_r$$=$data$$[$e$jscomp$5_i$$];for(let $key$$ in $_r$$)$key$$!="_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$_e$jscomp$2_new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$_e$jscomp$2_new_row$$._id.toString()}))}$resolve$$()},$row$$._id,
34
- $options$$.req,"import")})),$callback$$()})},function($error$$){if($error$$)return $callback_main$$($error$$);console.log(`[importHanlder] \u0110\u00e3 import t\u1edbi ${$ctrl$$.name} th\u00e0nh c\u00f4ng: ${$data$$.length-$rows_error$$.length} d\u00f2ng, th\u1ea5t b\u1ea1i: ${$rows_error$$.length} d\u00f2ng`);$callback_main$$(null,{rows_imported:$data$$.length-$rows_error$$.length,rows_error:$rows_error$$})})}module.exports=importHandler;
3
+ async function importHandler($user$$,$ctrl$$,$id_app$$,$data$$,$callback_main$$,$options$$={replace:!0,req:null,listinfo_code:null}){const $model$$=$ctrl$$.model;let $replace$$=$options$$.replace,$rows_error$$=[];var $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=global.getModel("listinfo"),$info_nh_kh3s_nh_vt2s_tk_dt$$=await $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.findOne({code:($options$$.listinfo_code||$ctrl$$.name).toLowerCase()}).lean();let $modelJoins$$=[];$info_nh_kh3s_nh_vt2s_tk_dt$$&&
4
+ (await $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.updateModel($info_nh_kh3s_nh_vt2s_tk_dt$$,$ctrl$$.model),$modelJoins$$=($info_nh_kh3s_nh_vt2s_tk_dt$$.fields||[]).filter($f$$=>$f$$.ref_model&&$f$$.ref_field=="_id"));$data$$=$data$$.filter($row$$=>{let $has_data$$=!1;for(let $key$$ in $row$$)if($row$$[$key$$]){$has_data$$=!0;break}return $has_data$$});if(configs.limitRowImport&&$data$$.length>configs.limitRowImport)return $callback_main$$("S\u1ed1 d\u00f2ng import t\u1ed1i \u0111a 1 l\u1ea7n l\u00e0 "+
5
+ configs.limitRowImport);console.log("[importHanlder] \u0110ang import t\u1edbi",$model$$.modelName,$data$$.length," d\u00f2ng d\u1eef li\u1ec7u...");$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=[];var $nh_kh1s_ten_nh_kh2s$$=[],$nh_kh$$=[];$info_nh_kh3s_nh_vt2s_tk_dt$$=[];if($model$$.modelName!=="customer"){$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=$data$$.filter($r$$=>$r$$.ten_kh);$nh_kh1s_ten_nh_kh2s$$=$data$$.filter($r$$=>$r$$.ten_nh_kh);$nh_kh$$=$data$$.filter($r$$=>
6
+ $r$$.ten_nh_kh2);$info_nh_kh3s_nh_vt2s_tk_dt$$=$data$$.filter($r$$=>$r$$.ten_nh_kh3);$model$$.schema.paths.details&&($custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kh)),$nh_kh1s_ten_nh_kh2s$$=$nh_kh1s_ten_nh_kh2s$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh)),
7
+ $nh_kh$$=$nh_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh2)),$info_nh_kh3s_nh_vt2s_tk_dt$$=$info_nh_kh3s_nh_vt2s_tk_dt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh3)));$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.map($kh$$=>{$kh$$.ma_kh||($kh$$.ma_kh=$kh$$.ten_kh.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());
8
+ return{ma_kh:$kh$$.ma_kh,ten_kh:$kh$$.ten_kh,dia_chi:$kh$$.dia_chi||"",dien_thoai:$kh$$.dien_thoai||"",ma_so_thue:$kh$$.ma_so_thue||"",nh_kh:$kh$$.nh_kh,ten_nh_kh:$kh$$.ten_nh_kh,ten_nh_kh2:$kh$$.ten_nh_kh2,nh_kh2:$kh$$.nh_kh2,ten_nh_kh3:$kh$$.ten_nh_kh3,nh_kh3:$kh$$.nh_kh3}});var $dvts_nh_kh$$=await $nh_kh1s_ten_nh_kh2s$$.filter($c$$=>$c$$.ten_nh_kh&&!$c$$.nh_kh).asyncGroupBy(["ten_nh_kh"],[]);console.log("[importHanlder] c\u00e1c nh\u00f3m kh\u00e1ch h\u00e0ng 1 c\u1ea7n t\u1ea1o",$dvts_nh_kh$$);
9
+ for(let $nh_kh1$$ of $dvts_nh_kh$$){const $nh_kh$$={};$nh_kh$$.id_app=$id_app$$;$nh_kh$$.group_name=$nh_kh1$$.ten_nh_kh;$nh_kh$$.group_type="CUSTOMER";$nh_kh$$.group_kind=1;$nh_kh$$.status=!0;$nh_kh$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh1$$.ten_nh_kh,id_app:$id_app$$,group_kind:1,group_type:"CUSTOMER"},{_id:1}).lean();console.log("[importHanlder] create nhom kh",$nh_kh1$$.ten_nh_kh,$check$$);if($check$$)$nh_kh1s_ten_nh_kh2s$$.filter($c$$=>
10
+ $c$$.ten_nh_kh==$nh_kh1$$.ten_nh_kh).forEach($c$$=>{$c$$.nh_kh=$check$$._id.toString()});else{const $new_nh_kh$$=await global.getModel("group").create($nh_kh$$);$nh_kh1s_ten_nh_kh2s$$.filter($c$$=>$c$$.ten_nh_kh==$nh_kh1$$.ten_nh_kh).forEach($c$$=>{$c$$.nh_kh=$new_nh_kh$$._id.toString()})}}$nh_kh1s_ten_nh_kh2s$$=await $nh_kh$$.filter($c$$=>$c$$.ten_nh_kh2&&!$c$$.nh_kh2).asyncGroupBy(["ten_nh_kh2"],[]);console.log("[importHanlder] c\u00e1c nh\u00f3m kh\u00e1ch h\u00e0ng 2 c\u1ea7n t\u1ea1o",$dvts_nh_kh$$);
11
+ for(let $nh_kh2$$ of $nh_kh1s_ten_nh_kh2s$$){$dvts_nh_kh$$={};$dvts_nh_kh$$.id_app=$id_app$$;$dvts_nh_kh$$.group_name=$nh_kh2$$.ten_nh_kh2;$dvts_nh_kh$$.group_type="CUSTOMER";$dvts_nh_kh$$.group_kind=2;$dvts_nh_kh$$.status=!0;$dvts_nh_kh$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh2$$.ten_nh_kh2,id_app:$id_app$$,group_kind:2,group_type:"CUSTOMER"},{_id:1}).lean();if($check$$)$nh_kh$$.filter($c$$=>$c$$.ten_nh_kh2==$nh_kh2$$.ten_nh_kh2).forEach($c$$=>
12
+ {$c$$.nh_kh2=$check$$._id.toString()});else{console.log("[importHanlder] create nhom kh2",$nh_kh2$$.ten_nh_kh2);const $new_nh_kh$$=await global.getModel("group").create($dvts_nh_kh$$);$nh_kh$$.filter($c$$=>$c$$.ten_nh_kh2==$nh_kh2$$.ten_nh_kh2).forEach($c$$=>{$c$$.nh_kh2=$new_nh_kh$$._id.toString()})}}$nh_kh$$=await $info_nh_kh3s_nh_vt2s_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh3&&!$c$$.nh_kh3).asyncGroupBy(["ten_nh_kh3"],[]);console.log("[importHanlder] c\u00e1c nh\u00f3m kh\u00e1ch h\u00e0ng 3 c\u1ea7n t\u1ea1o",
13
+ $nh_kh$$);for(let $nh_kh3$$ of $nh_kh$$){$nh_kh$$={};$nh_kh$$.id_app=$id_app$$;$nh_kh$$.group_name=$nh_kh3$$.ten_nh_kh3;$nh_kh$$.group_type="CUSTOMER";$nh_kh$$.group_kind=3;$nh_kh$$.status=!0;$nh_kh$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh3$$.ten_nh_kh3,id_app:$id_app$$,group_kind:3,group_type:"CUSTOMER"},{_id:1}).lean();if($check$$)$info_nh_kh3s_nh_vt2s_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh3==$nh_kh3$$.ten_nh_kh3).forEach($c$$=>{$c$$.nh_kh3=
14
+ $check$$._id.toString()});else{console.log("[importHanlder] create nhom kh3",$nh_kh3$$.ten_nh_kh3);const $new_nh_kh$$=await global.getModel("group").create($nh_kh$$);$info_nh_kh3s_nh_vt2s_tk_dt$$.filter($c$$=>$c$$.ten_nh_kh3==$nh_kh3$$.ten_nh_kh3).forEach($c$$=>{$c$$.nh_kh3=$new_nh_kh$$._id.toString()})}}$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=await $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.asyncGroupBy("ma_kh ten_kh dia_chi dien_thoai ma_so_thue nh_kh nh_kh2 nh_kh3".split(" "),
15
+ []);for(var $kh$$ of $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$)$kh$$.id_app=$id_app$$,$kh$$.user_created=$user$$.email,await global.getModel("customer").asyncCreateCustomer($kh$$)}$kh$$=[];if($model$$.modelName!=="dmkho"){$model$$.schema.paths.ma_kho&&($kh$$=$data$$.filter($r$$=>$r$$.ten_kho));$model$$.schema.paths.details&&($kh$$=$kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kho)));$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=
16
+ $kh$$.map($kh$$=>{$kh$$.ma_kho||($kh$$.ma_kho=$kh$$.ten_kho.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());return{ma_kho:$kh$$.ma_kho,ten_kho:$kh$$.ten_kho}});$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=await $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.asyncGroupBy(["ma_kho","ten_kho"],[]);for(let $kho$$ of $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$)$kho$$.id_app=$id_app$$,$kho$$.user_created=$user$$.email,$kho$$.status=!0,await global.getModel("dmkho").findOne({id_app:$id_app$$,
17
+ ma_kho:$kho$$.ma_kho}).lean()||await global.getModel("dmkho").create($kho$$),$kh$$.filter($c$$=>!$c$$.ma_kho&&$c$$.ten_kho===$kho$$.ten_kho).forEach($c$$=>{$c$$.ma_kho=$kho$$.ma_kho})}$kh$$=[];$nh_kh$$=[];$info_nh_kh3s_nh_vt2s_tk_dt$$=[];$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=[];if($model$$.modelName!=="dmvt"){$kh$$=$data$$.filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt);$nh_kh$$=$data$$.filter($r$$=>!$r$$.ma_nvt&&$r$$.ten_nvt);$info_nh_kh3s_nh_vt2s_tk_dt$$=$data$$.filter($r$$=>!$r$$.ma_nvt2&&
18
+ $r$$.ten_nvt2);$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=$data$$.filter($r$$=>!$r$$.ma_nvt3&&$r$$.ten_nvt3);$model$$.schema.paths.details&&($kh$$=$kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt)),$nh_kh$$=$nh_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt&&$r$$.ten_nvt)),$info_nh_kh3s_nh_vt2s_tk_dt$$=$info_nh_kh3s_nh_vt2s_tk_dt$$.concat($data$$.map($v$$=>
19
+ $v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt2&&$r$$.ten_nvt2)),$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt3&&$r$$.ten_nvt3)));$kh$$=$kh$$.map($vt$$=>({ma_vt:$vt$$.ma_vt,ten_vt:$vt$$.ten_vt,ma_dvt:$vt$$.ma_dvt||"Kh\u00f4ng \u0111\u01a1n v\u1ecb t\u00ednh",ma_nvt:$vt$$.ma_nvt,
20
+ ten_nvt:$vt$$.ten_nvt,ma_nvt2:$vt$$.ma_nvt2,ten_nvt2:$vt$$.ten_nvt2,ma_nvt3:$vt$$.ma_nvt3,ten_nvt3:$vt$$.ten_nvt3,user_created:$user$$.email}));$kh$$=await $kh$$.asyncGroupBy("ma_vt ten_vt ma_dvt ma_nvt ten_nvt ma_nvt2 ten_nvt2 ma_nvt3 ten_nvt3".split(" "),[]);$dvts_nh_kh$$=await $kh$$.asyncGroupBy(["ma_dvt"],[]);for(var $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$ of $dvts_nh_kh$$)$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=$id_app$$,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_dvt=$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ma_dvt,
21
+ $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0,$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email,await global.getModel("dmdvt").findOne({ma_dvt:$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ma_dvt,id_app:$id_app$$}).lean()||(console.log("[importHanlder] create dvt",$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$),await global.getModel("dmdvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$));$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=await $nh_kh$$.filter($c$$=>$c$$.ten_nvt).asyncGroupBy(["ten_nvt"],[]);for(let $nh_vt1$$ of $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$){$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=
22
+ {};$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=$id_app$$;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_nvt=$nh_vt1$$.ten_nvt;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.group_kind=1;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email;let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt1$$.ten_nvt,id_app:$id_app$$,group_kind:1},{_id:1}).lean();if($check$$)$nh_kh$$.filter($c$$=>$c$$.ten_nvt==$nh_vt1$$.ten_nvt).forEach($c$$=>{$c$$.ma_nvt=$check$$._id.toString()});
23
+ else{console.log("[importHanlder] create nhom vat tu",$nh_vt1$$.ten_nvt);const $new_nvt$$=await global.getModel("dmnvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$);$nh_kh$$.filter($c$$=>$c$$.ten_nvt==$nh_vt1$$.ten_nvt).forEach($c$$=>{$c$$.ma_nvt=$new_nvt$$._id.toString()})}}$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=await $info_nh_kh3s_nh_vt2s_tk_dt$$.filter($c$$=>$c$$.ten_nvt2).asyncGroupBy(["ten_nvt2"],[]);for(let $nh_vt2$$ of $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$){$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$={};$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=
24
+ $id_app$$;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_nvt=$nh_vt2$$.ten_nvt2;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.group_kind=2;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email;let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt2$$.ten_nvt2,id_app:$id_app$$,group_kind:2},{_id:1}).lean();if($check$$)$info_nh_kh3s_nh_vt2s_tk_dt$$.filter($c$$=>$c$$.ten_nvt2==$nh_vt2$$.ten_nvt2).forEach($c$$=>{$c$$.ma_nvt2=$check$$._id.toString()});else{console.log("[importHanlder] create nhom vat tu 2",
25
+ $nh_vt2$$.ten_nvt2);const $new_nvt$$=await global.getModel("dmnvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$);$info_nh_kh3s_nh_vt2s_tk_dt$$.filter($c$$=>$c$$.ten_nvt2==$nh_vt2$$.ten_nvt2).forEach($c$$=>{$c$$.ma_nvt2=$new_nvt$$._id.toString()})}}$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=await $custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.filter($c$$=>$c$$.ten_nvt3).asyncGroupBy(["ten_nvt3"],[]);for(let $nh_vt3$$ of $dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$){$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$={};$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.id_app=
26
+ $id_app$$;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.ten_nvt=$nh_vt3$$.ten_nvt3;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.group_kind=3;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.status=!0;$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$.user_created=$user$$.email;let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt3$$.ten_nvt3,id_app:$id_app$$,group_kind:3},{_id:1}).lean();if($check$$)$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.filter($c$$=>$c$$.ten_nvt3==$nh_vt3$$.ten_nvt3).forEach($c$$=>{$c$$.ma_nvt3=$check$$._id.toString()});
27
+ else{console.log("[importHanlder] create nhom vat tu 3",$nh_vt3$$.ten_nvt3);const $new_nvt$$=await global.getModel("dmnvt").create($dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$);$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$.filter($c$$=>$c$$.ten_nvt3==$nh_vt3$$.ten_nvt3).forEach($c$$=>{$c$$.ma_nvt3=$new_nvt$$._id.toString()})}}$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^156",$options:"i"}},{tk:1}).lean()||{}).tk;$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$=
28
+ (await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^632",$options:"i"}},{tk:1}).lean()||{}).tk;$info_nh_kh3s_nh_vt2s_tk_dt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^511",$options:"i"}},{tk:1}).lean()||{}).tk;for(let $vt$$ of $kh$$)$vt$$.id_app=$id_app$$,$vt$$.tk_vt=$dvt_nh_vt_nh_vt$jscomp$1_nh_vt$$,$vt$$.tk_gv=$custs_kho_will_creates_listInfo_new_custs_nh_vt3s_tk_gv$$,$vt$$.tk_dt=$info_nh_kh3s_nh_vt2s_tk_dt$$,$vt$$.status=!0,$vt$$.user_created=
29
+ $user$$.email,await global.getModel("dmvt").findOne({ma_vt:$vt$$.ma_vt,id_app:$id_app$$}).lean()||(console.log("[importHanlder] create product",$vt$$),await global.getModel("dmvt").create($vt$$),await global.getModel("dmqddvt").create({id_app:$id_app$$,status:!0,ma_vt:$vt$$.ma_vt,ma_dvt:$vt$$.ma_dvt,tu:1,ma:1}))}$data$$.forEach($r$$=>{delete $r$$.ten_dvcs;global.mongoose.Types.ObjectId.isValid($r$$._id)||delete $r$$._id});await $data$$.filter($r$$=>$r$$.ma_dvcs).asyncJoinModel2($id_app$$,global.getModel("dvcs"),
30
+ {where:{ma_dvcs:"_id"},fields:"ten_dvcs"});console.error("[importHanlder] begin import",$ctrl$$.name);async.mapLimit($data$$,100,function($row$$,$callback$$){const $row_keys$$=Object.keys($row$$);$row_keys$$.filter($key$$=>$ctrl$$.model.schema.paths[$key$$]).forEach($key$$=>{let $data_type$$=$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase(),$data_value$$=$row$$[$key$$];if($data_value$$&&_.isString($data_value$$)&&($data_type$$=="mixed"||$data_type$$=="array")&&($data_value$$=$data_value$$.trim(),
31
+ $data_value$$.indexOf("[")==0||$data_value$$.indexOf("{")==0))try{$row$$[$key$$]=JSONParser($data_value$$)}catch($e$$){delete $row$$[$key$$],console.error("[importHanlder] 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$$,old_id:$row$$[$field_ref$$.name]}).lean();$new_data_ref$$&&($row$$[$field_ref$$.name]=
32
+ $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&&$ctrl$$.unique.length>0||$row$$._id)){let $query$$={};if($ctrl$$.unique&&$ctrl$$.unique.length>0){if($ctrl$$.options.unique_imp&&$row$$[$ctrl$$.options.unique_imp]!=null&&$row$$[$ctrl$$.options.unique_imp]!=void 0&&$row$$[$ctrl$$.options.unique_imp]!="")$query$$[$ctrl$$.options.unique_imp]=
33
+ $row$$[$ctrl$$.options.unique_imp];else if($ctrl$$.unique.forEach(function($k$$){$row_keys$$.indexOf($k$$)>=0&&($query$$[$k$$]=$row$$[$k$$],$query$$[$k$$]==void 0&&delete $query$$[$k$$])}),Object.keys($query$$).length<1)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, D\u1eef li\u1ec7u c\u1ea7n c\u00f3 \u00edt nh\u1ea5t m\u1ed9t gi\u00e1 tr\u1ecb:"+$ctrl$$.unique.join(","));$ctrl$$.require_id_app!=0&&($query$$.id_app=$id_app$$)}else $query$$._id=$row$$._id;$ctrl$$.model.find($query$$).lean().then(async function($rss$$){if($rss$$.length>
34
+ 1)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");await executeInTransaction(()=>new Promise($resolve$$=>{let $foundObject$$;$rss$$.length===1&&($foundObject$$=$rss$$[0]);$foundObject$$?($row$$.id_app=$foundObject$$.id_app,$row$$._id=$foundObject$$._id.toString(),($ctrl$$.unique||[]).forEach(function($k$$){$row$$[$k$$]=$foundObject$$[$k$$]}),update($user$$,
35
+ $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$$})}$resolve$$()},"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$$)||($_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__=
36
+ $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$$)$key$$!="_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},
37
+ {[$key$$]:$new_row$$._id.toString()}))}$resolve$$()})},$row$$._id,$options$$.req,"import")}));$callback$$()}).catch($error$$=>{console.error("[importHanlder] L\u1ed7i t\u00ecm object:",$error$$.message);$callback$$($error$$)})}else await executeInTransaction(()=>new Promise($resolve$$=>{create($user$$,$ctrl$$,$row$$,async function($e$jscomp$5_i$$,$_e$jscomp$2_new_row$$){if($e$jscomp$5_i$$)console.error("[importHanlder] error import data, creating...",$e$jscomp$5_i$$),$_e$jscomp$2_new_row$$=$e$jscomp$5_i$$,
38
+ _.isArray($_e$jscomp$2_new_row$$)||($_e$jscomp$2_new_row$$=[{error:$e$jscomp$5_i$$.error||$e$jscomp$5_i$$,code:$e$jscomp$5_i$$.code}]),$rows_error$$.push({error:$_e$jscomp$2_new_row$$});else if($row$$._id_new__=$_e$jscomp$2_new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$_e$jscomp$2_new_row$$.id_app,old_id:$old_id$$},{id_app:$_e$jscomp$2_new_row$$.id_app,old_id:$old_id$$,new_id:$_e$jscomp$2_new_row$$._id.toString()},{new:!0,upsert:!0}),$e$jscomp$5_i$$=
39
+ 0;$e$jscomp$5_i$$<$data$$.length;$e$jscomp$5_i$$++){const $_r$$=$data$$[$e$jscomp$5_i$$];for(let $key$$ in $_r$$)$key$$!="_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$_e$jscomp$2_new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$_e$jscomp$2_new_row$$._id.toString()}))}$resolve$$()},$row$$._id,$options$$.req,"import")})),$callback$$()})},function($error$$){if($error$$)return $callback_main$$($error$$);console.log(`[importHanlder] \u0110\u00e3 import t\u1edbi ${$ctrl$$.name} th\u00e0nh c\u00f4ng: ${$data$$.length-
40
+ $rows_error$$.length} d\u00f2ng, th\u1ea5t b\u1ea1i: ${$rows_error$$.length} d\u00f2ng`);$callback_main$$(null,{rows_imported:$data$$.length-$rows_error$$.length,rows_error:$rows_error$$})})}module.exports=importHandler;
@@ -1,12 +1,12 @@
1
1
  const async=require("async"),_=require("lodash"),moment=require("moment"),permission=require("../libs/permission"),{JSONParser,convertObjectIdsToStrings}=require("../libs/utils"),{onAfterCommit,executeInTransaction}=require("../libs/sessionContext.js"),{postData,pushNotification}=require("./controllerUtils"),updateFieldHanlder=($ctrl$$,$req$$,$mainCallback$$)=>{const $model$$=$ctrl$$.model;let $field$$;async.series([function($callback$$){$field$$=$req$$.params.field;if(!_.has($model$$.schema.paths,
2
2
  $field$$))return $callback$$({error:"Field "+$field$$+" kh\u00f4ng t\u1ed3n t\u1ea1i"});var $condition_name_cached$$=$model$$.collection.name;$req$$.user.current_id_app&&($condition_name_cached$$+=$req$$.user.current_id_app);delete global.cacheDatas[$condition_name_cached$$];$condition_name_cached$$={};for(let $k$$ in $req$$.query)if($k$$!="id_app"&&$k$$!="access_token")if($k$$=="_id"&&mongoose.Types.ObjectId.isValid($req$$.query._id))try{let $id$$=global.mongoose.Types.ObjectId($req$$.query._id);
3
3
  $condition_name_cached$$._id=$id$$}catch($error$$){console.error("updateField condition",$error$$)}else if($k$$=="q"&&$req$$.query[$k$$])$condition_name_cached$$=JSONParser($req$$.query[$k$$]);else if($k$$=="tu_ngay"&&_.has($model$$.schema.paths,"ngay_ct")===!0){var $val_val$$=moment($req$$.query.tu_ngay).startOf("date").toDate();$condition_name_cached$$.ngay_ct?$condition_name_cached$$.ngay_ct.$gte=$val_val$$:$condition_name_cached$$.ngay_ct={$gte:$val_val$$}}else $k$$=="den_ngay"&&_.has($model$$.schema.paths,
4
- "ngay_ct")===!0?($val_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(),$condition_name_cached$$.ngay_ct?$condition_name_cached$$.ngay_ct.$lte=$val_val$$:$condition_name_cached$$.ngay_ct={$lte:$val_val$$}):_.has($model$$.schema.paths,$k$$)===!0&&($condition_name_cached$$[$k$$]=$req$$.query[$k$$]);_.has($model$$.schema.paths,"id_app")===!0&&($condition_name_cached$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,$condition_name_cached$$,function($e$$,$condition$$){setImmediate(()=>
5
- {if($e$$)return console.error("updateField find",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$$,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$$,$callback$$())})},{req:$req$$}):$ctrl$$.dynamicFinding?
6
- $ctrl$$.dynamicFinding($req$$.user,$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||
7
- $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"});$callback$$()})})},function($callback$$){let $condition$$=$req$$.condition;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);_.has($model$$.schema.paths,"ngay_ct")===!0&&$query$$.sort({ngay_ct:1});$query$$.lean().then(function($obj4view$$){setImmediate(()=>
8
- {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$$||=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,
9
- $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$$){setImmediate(async()=>{if($e$$)return $callback$$($e$$);await $ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,$ctrl$$,function($e$$){if($e$$)return console.error("error post data",
10
- $e$$),$callback$$($e$$);$callback$$(null,$obj$$)},{req:$req$$}):$callback$$(null,$obj$$)})})})},function($e$$,$rs$$){setImmediate(()=>{if($e$$)return console.error("updateField",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});onAfterCommit(()=>{$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(()=>
11
- {if($e$$)return console.error("updateField onview",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$&&$viewValue$$.forEach($r$$=>{pushNotification($ctrl$$,$r$$,"update",null,!0,{exclude_token:$req$$.query.access_token})});$req$$.result=$rs$$;$callback$$()})},{req:$req$$})})})})}).catch($e$$=>{console.error("updateField query",$e$$);return $e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$.error||$e$$})})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);
12
- $mainCallback$$(null,$req$$.result)})},updateFieldHanlderAsync=($ctrl$$,$req$$)=>new Promise(($resolve$$,$reject$$)=>{updateFieldHanlder($ctrl$$,$req$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})}),withSesssion=async($ctrl$$,$req$$,$callback$$)=>{try{const $rs$$=await executeInTransaction(async()=>updateFieldHanlderAsync($ctrl$$,$req$$));$callback$$(null,$rs$$)}catch($e$$){$callback$$($e$$)}};module.exports=withSesssion;
4
+ "ngay_ct")===!0?($val_val$$=moment($req$$.query.den_ngay).endOf("date").toDate(),$condition_name_cached$$.ngay_ct?$condition_name_cached$$.ngay_ct.$lte=$val_val$$:$condition_name_cached$$.ngay_ct={$lte:$val_val$$}):_.has($model$$.schema.paths,$k$$)===!0&&($condition_name_cached$$[$k$$]=$req$$.query[$k$$]);_.has($model$$.schema.paths,"id_app")===!0&&($condition_name_cached$$.id_app=$req$$.user.current_id_app);$ctrl$$.finding?$ctrl$$.finding($req$$.user,$condition_name_cached$$,function($e$$,$condition$$){if($e$$)return console.error("updateField find",
5
+ $e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition$$,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$$,$callback$$())},{req:$req$$}):$ctrl$$.dynamicFinding?$ctrl$$.dynamicFinding($req$$.user,$condition_name_cached$$,
6
+ 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$$){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$$){let $condition$$=$req$$.condition;_.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);_.has($model$$.schema.paths,"ngay_ct")===!0&&$query$$.sort({ngay_ct:1});$query$$.lean().then(function($obj4view$$){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$$)}},
8
+ $req$$.user.email,$req$$.user_agent,$req$$);let $tu_so$$=Number($req$$.query.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$$+=$hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;
9
+ async.mapSeries($obj4view$$,function($obj$$,$callback$$){delete $obj$$.__v;$model$$.updateOne({_id:$obj$$._id},$obj$$,function($e$$){setImmediate(async()=>{if($e$$)return $callback$$($e$$);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$$,$rs$$){if($e$$)return console.error("updateField",$e$$),$e$$.error?$callback$$($e$$):
10
+ $callback$$({error:$e$$.message||$e$$});onAfterCommit(()=>{$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$$){if($e$$)return console.error("updateField onview",$e$$),$e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$});$req$$&&$viewValue$$.forEach($r$$=>{pushNotification($ctrl$$,$r$$,"update",null,!0,{exclude_token:$req$$.query.access_token})});
11
+ $req$$.result=$rs$$;$callback$$()},{req:$req$$})})})}).catch($e$$=>{console.error("updateField query",$e$$);return $e$$.error?$callback$$($e$$):$callback$$({error:$e$$.message||$e$$.error||$e$$})})}],$e$$=>{if($e$$)return $mainCallback$$($e$$);$mainCallback$$(null,$req$$.result)})},updateFieldHanlderAsync=($ctrl$$,$req$$)=>new Promise(($resolve$$,$reject$$)=>{updateFieldHanlder($ctrl$$,$req$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})}),withSesssion=async($ctrl$$,$req$$,$callback$$)=>
12
+ {try{const $rs$$=await executeInTransaction(async()=>updateFieldHanlderAsync($ctrl$$,$req$$));$callback$$(null,$rs$$)}catch($e$$){$callback$$($e$$)}};module.exports=withSesssion;
@@ -9,7 +9,7 @@ $query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$date_check_den_ngay$$};break;case
9
9
  $callback$$(null,$obj$$)})}).catch($e$$=>{console.error($e$$)})}else $callback$$(null,$obj$$)};async.waterfall([function($_callback$$){setImmediate(async function(){$data$$.trang_thai&&($data$$.trang_thai=$data$$.trang_thai.toString());if($data$$.trang_thai||$obj$$.trang_thai){var $old_obj_old_request_q_approve$$={id_ct:$obj$$._id.toString(),user_approved:{$exists:!0}};$old_obj_old_request_q_approve$$.trang_thai=($data$$.trang_thai||$obj$$.trang_thai||"").toString();if(($old_obj_old_request_q_approve$$=
10
10
  await global.getModel("approve").findOne($old_obj_old_request_q_approve$$))&&$old_obj_old_request_q_approve$$.update_after_approve?.cho_phep_cap_nhat_khi_da_duyet!=1){$_callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt ch\u1ee9ng t\u1eeb \u1edf tr\u1ea1ng th\u00e1i n\u00e0y do n\u00f3 \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t",void 0);return}}if($obj$$.ngay_ct&&$obj$$.id_app&&$obj$$.schema&&$obj$$.schema.validate&&$obj$$.schema.validate.ngay_ct)try{await new Promise(($rs$$,$rj$$)=>{validator.unlockBook[0]($obj$$.id_app,
11
11
  $obj$$.ngay_ct,$unlock$$=>{if(!$unlock$$)return $rj$$(validator.unlockBook[1]);$rs$$($unlock$$)},$voucher_options$$)})}catch($e$$){$_callback$$($e$$.message||$e$$.error||$e$$,void 0);return}$schema_paths$$.exfields&&($obj$$.exfields=$obj$$.exfields||{});$old_obj_old_request_q_approve$$=convertObjectIdsToStrings($obj$$.toObject());$current_obj$$=_.cloneDeep($old_obj_old_request_q_approve$$);const $data_keys$$=Object.keys($data$$);for(let $key$$ in $old_obj_old_request_q_approve$$)$data_keys$$.indexOf($key$$)<
12
- 0&&($data$$[$key$$]=$old_obj_old_request_q_approve$$[$key$$]);$_callback$$(null,$obj$$)})},function($obj$$,$_callback$$){setImmediate(async function(){let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:$_action$$,data:$data$$,obj:$current_obj$$});async.parallel({old_data:$callback$$=>{permission.hasRight($user$$.current_id_app,$user$$.email,$module$$,$_action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($hr$$)$ctrl$$.checkData($c_app$$,{...$data$$,_id:$obj$$._id.toString()},
12
+ 0&&($data$$[$key$$]=$old_obj_old_request_q_approve$$[$key$$]);$_callback$$(null,$obj$$)})},function($obj$$,$_callback$$){setImmediate(async function(){let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:$_action$$,data:$data$$,obj:$current_obj$$});async.series({old_data:$callback$$=>{permission.hasRight($user$$.current_id_app,$user$$.email,$module$$,$_action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($hr$$)$ctrl$$.checkData($c_app$$,{...$data$$,_id:$obj$$._id.toString()},
13
13
  $e$$=>{if($e$$)return $callback$$($e$$);$callback$$(null,$obj$$)});else return $callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE})})},{obj:$current_obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})},new_data:$callback$$=>{permission.hasRight($user$$.current_id_app,$user$$.email,$module$$,$_action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($hr$$)$ctrl$$.checkData($c_app$$,{...$data$$,_id:$obj$$._id.toString()},
14
14
  $e$$=>{if($e$$)return $callback$$($e$$);$callback$$(null,$obj$$)});else return $callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE})})},{data:$data$$,obj:$current_obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})}},$e$$=>{$_callback$$($e$$,$obj$$)})})},($obj$$,$_callback$$)=>{setImmediate(function(){let $current_trang_thai$$=$data$$.trang_thai||$obj$$.trang_thai,$current_so_ct$$=$data$$.so_ct||$obj$$.so_ct;if($current_trang_thai$$!==
15
15
  $obj$$.trang_thai&&(!$voucher_options$$?.trang_thai_create_voucher_numbers||$voucher_options$$?.trang_thai_create_voucher_numbers.length==0||$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($current_trang_thai$$)>=0)&&$model$$.schema.paths.so_ct)if($current_so_ct$$&&$current_so_ct$$.toUpperCase()!==($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$current_so_ct$$.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkSoCT$$($obj$$,$error$$=>{$_callback$$($error$$,$obj$$)});else{let $count$$=
@@ -7,34 +7,35 @@ phu_trach:$phu_trach$$},{ma_kh:1}).lean()).map($p$$=>$p$$.ma_kh);global.cacheDat
7
7
  exports.isAdmin=function($current_id_app$$,$email$$,$callback$$){if(!$current_id_app$$)return $callback$$(null,!0);App.findOne({_id:$current_id_app$$}).lean().then(async $app$$=>{if(!$app$$)return $callback$$({error:"ID app: "+$current_id_app$$+" kh\u00f4ng t\u1ed3n t\u1ea1i",code:-7},!1);if($app$$.trang_thai=="9")return $callback$$({error:"C\u00f4ng ty n\u00e0y \u0111\u00e3 ng\u1eebng s\u1eed d\u1ee5ng",code:-9},!1);if(global.configs.check_expire_date&&$app$$.expire_date&&(new Date($app$$.expire_date)).getTime()<
8
8
  (new Date).getTime())return $callback$$({error:"C\u00f4ng ty n\u00e0y \u0111\u00e3 h\u1ebft h\u1ea1n s\u1eed d\u1ee5ng",code:-8},!1);let $participant$$=await Participant.findOne({id_app:$current_id_app$$,email:$email$$}).lean();if(!$participant$$)return $callback$$({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp c\u00f4ng ty n\u00e0y",code:-2},!1);if(!$participant$$.admin&&!$participant$$.active&&$email$$!=="public")return $callback$$({error:"T\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111ang ch\u1edd \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn",
9
9
  code:-1},!1);$callback$$(null,$participant$$.admin,$app$$,$participant$$)}).catch($error$$=>{$callback$$($error$$,!1)})};
10
- exports.hasRight=async function($current_id_app$$,$email$$,$module$$,$action$$,$callbackMain$$,$options$$={}){if(!$current_id_app$$||$options$$.notNeedRight)return $callbackMain$$(null,!0);const $model$$=global.controllers[$module$$]?global.controllers[$module$$].model:void 0;if($model$$&&$model$$.schema&&!underscore.has($model$$.schema.paths,"id_app"))return $callbackMain$$(null,!0);let $right_code$$=($options$$.right_code||$options$$.listinfo_code||$module$$).toLowerCase();if($right_code$$!=$module$$.toLowerCase()){var $listinfo_ma_ct$$=
11
- await global.getModel("listinfo").findOne({code:$right_code$$}).lean();if(!$listinfo_ma_ct$$)return $callbackMain$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng t\u1ed3n t\u1ea1i`});if(($listinfo_ma_ct$$.api_code||$listinfo_ma_ct$$.code)!=$module$$.toLowerCase())return $callbackMain$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng h\u1ee3p l\u1ec7`})}$options$$.data&&($options$$.data.trang_thai||$options$$.data.trang_thai==0)&&($options$$.data.trang_thai=$options$$.data.trang_thai.toString());
12
- $options$$.obj&&($options$$.obj.trang_thai||$options$$.obj.trang_thai==0)&&($options$$.obj.trang_thai=$options$$.obj.trang_thai.toString());$action$$=($action$$||"").toLowerCase();var $data$$=$options$$.data||$options$$.obj||{};$listinfo_ma_ct$$=$model$$&&underscore.has($model$$.schema.paths,"ma_ct")&&(($options$$.obj||{}).ma_ct||($options$$.data||{}).ma_ct||"").toString().toUpperCase();let $ma_trang_thai$$=($data$$.trang_thai||$data$$.progress||"").toString().toUpperCase();!$ma_trang_thai$$&&$options$$.obj&&
13
- ($ma_trang_thai$$=($options$$.obj.trang_thai||$options$$.obj.progress||"").toString().toUpperCase());if($listinfo_ma_ct$$&&$ma_trang_thai$$)if($data$$=await trangthai.findOne({ma_trang_thai:$ma_trang_thai$$,ma_ct:$listinfo_ma_ct$$}).lean()){if($data$$.not_need_right)return $callbackMain$$(null,!0)}else console.log("Khong tim thay trang thai cho chuc nang nay",{ma_ct:$listinfo_ma_ct$$,ma_trang_thai:$ma_trang_thai$$,trang_thai:$data$$,action:$action$$});exports.isAdmin($current_id_app$$,$email$$,async($e_key_right_ms_q$$,
14
- $admin$$,$app$$,$participant$$)=>{if($e_key_right_ms_q$$)return $callbackMain$$($e_key_right_ms_q$$,!1);if($app$$&&$app$$.allow_modules&&$app$$.allow_modules.length>0&&($e_key_right_ms_q$$={"items.code":{$regex:"^"+$module$$+"$",$options:"i"},active_require:!0},$app$$.menu_code&&($e_key_right_ms_q$$.app=$app$$.menu_code),$e_key_right_ms_q$$=await global.getModel("moduleinfo").find($e_key_right_ms_q$$).lean(),$e_key_right_ms_q$$.length>0&&$e_key_right_ms_q$$.filter($m$$=>$app$$.allow_modules.indexOf($m$$.code)>=
15
- 0&&(!$m$$.not_for_companies||$m$$.not_for_companies.indexOf($app$$._id.toString())<0)&&(!$m$$.only_for_companies||$m$$.only_for_companies.indexOf($app$$._id.toString())>=0)).length==0))return $callbackMain$$('API "'+$module$$+'" ch\u01b0a \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t cho c\u00f4ng ty n\u00e0y (trong module '+$e_key_right_ms_q$$[0].app+"/"+$e_key_right_ms_q$$[0].title+")",!1);if($options$$.data&&$options$$.data.id_app){if($options$$.data.id_app!=$current_id_app$$)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",
16
- !1);if($options$$.obj&&$options$$.data.id_app!=$options$$.obj.id_app)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1)}if($options$$.obj&&$options$$.obj.id_app&&$options$$.obj.id_app!=$current_id_app$$)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1);if($options$$.notNeedRight)return $callbackMain$$(null,!0,$app$$);if($options$$.obj&&!$admin$$)if($options$$.obj.visible_to===
17
- 2){if(!underscore.contains($options$$.obj.visible_to_users,$email$$)&&$options$$.obj.of_user!==$email$$.toLowerCase()&&$options$$.obj.user_created&&$options$$.obj.user_created.toLowerCase()!==$email$$.toLowerCase())return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1)}else if($options$$.obj.visible_to===1&&$options$$.obj.of_user!==$email$$.toLowerCase()&&$options$$.obj.user_created&&$options$$.obj.user_created.toLowerCase()!==$email$$.toLowerCase()&&
18
- $options$$.obj.phu_trach!=$email$$.toLowerCase()&&($options$$.obj.attends||[]).indexOf($email$$)<0&&(await exports.dsDangPhuTrach($options$$.obj.id_app,$email$$.toLowerCase())).indexOf($options$$.obj.user_created)<0)return $callbackMain$$("Ch\u1ec9 ng\u01b0\u1eddi t\u1ea1o, ph\u1ee5 tr\u00e1ch, h\u1ed7 tr\u1ee3 v\u00e0 admin m\u1edbi c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1);$e_key_right_ms_q$$=$email$$;$participant$$&&$participant$$.group_id&&($e_key_right_ms_q$$=
19
- $participant$$.group_id.toLowerCase());right.findOne({id_app:$current_id_app$$,email:$e_key_right_ms_q$$,module:$right_code$$},async function($_right_trang_thai_controler_error$$,$_right_model$$){if($_right_trang_thai_controler_error$$)return $callbackMain$$($_right_trang_thai_controler_error$$,!1);if(!$admin$$){if(!$_right_model$$)return $_right_trang_thai_controler_error$$=global.controllers[$module$$.toUpperCase()],$_right_model$$=(($_right_trang_thai_controler_error$$||{}).model_name||$module$$).toLowerCase(),
20
- $_right_model$$=="customer"||$_right_model$$.indexOf("socai")>=0||$_right_model$$.indexOf("sokho")>=0||$_right_model$$.indexOf("vatvao")>=0||$_right_model$$.indexOf("vatra")>=0||$_right_model$$.indexOf("tdttno")>=0||$_right_model$$.indexOf("tdttco")>=0||$_right_trang_thai_controler_error$$&&($_right_trang_thai_controler_error$$.options||{}).isVoucher||$action$$!=="view"&&($action$$!=="add"||$module$$.toLowerCase()!=="group")?$callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",
21
- !1):($_right_trang_thai_controler_error$$={"items.code":$module$$.toLowerCase()},$app$$&&$app$$.menu_code&&($_right_trang_thai_controler_error$$.app=$app$$.menu_code),await global.getModel("moduleinfo").findOne($_right_trang_thai_controler_error$$,{app:1}).lean()?$callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1):$callbackMain$$(null,!0,$app$$));if($action$$=="view"&&$_right_model$$?.view_all)return $callbackMain$$(null,!0,$app$$);if($action$$==
22
- "view"&&$options$$.obj&&$_right_model$$&&!$_right_model$$.view_all&&!$_right_model$$.viewOfOther&&$options$$.obj.user_created.toLowerCase()!==$email$$&&($options$$.obj.visible_to!==2||!underscore.contains($options$$.obj.visible_to_users,$email$$))&&$options$$.obj.phu_trach!==$email$$&&($options$$.obj.attends||[]).indexOf($email$$)<0&&(await exports.dsDangPhuTrach($options$$.obj.id_app,$email$$.toLowerCase())).indexOf($options$$.obj.user_created)<0)return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",
23
- !1);if(!$_right_model$$[$action$$])return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1);if($ma_trang_thai$$&&($_right_trang_thai_controler_error$$=$_right_model$$[`${$action$$}_trang_thai`])&&!$_right_trang_thai_controler_error$$[$ma_trang_thai$$]&&$_right_trang_thai_controler_error$$[$ma_trang_thai$$]!=void 0)return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y",
24
- !1)}$options$$.obj?async.series({trangthai:$callback$$=>{$options$$.obj&&($action$$==="update"||$action$$==="delete")&&$model$$&&underscore.has($model$$.schema.paths,"ma_ct")&&$options$$.obj.ma_ct?trangthai.findOne({ma_ct:$options$$.obj.ma_ct.toUpperCase(),ma_trang_thai:$options$$.obj.trang_thai},function($e$$,$trang_thai$$){if($e$$)return $callback$$($e$$);if($trang_thai$$){if($action$$==="update"){if($trang_thai$$.allow_update==0)return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y kh\u00f4ng cho ph\u00e9p s\u1eeda");
25
- if($trang_thai$$.lock_data==1)return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c kho\u00e1")}if($action$$==="delete"&&($trang_thai$$.lock_data||$trang_thai$$.allow_delete==0))return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y kh\u00f4ng cho ph\u00e9p xo\u00e1")}return $callback$$()}):$callback$$()}},$action_right_e$$=>{if($action_right_e$$)$callbackMain$$($action_right_e$$,!1);else{$action_right_e$$=`${$action$$}_right`;if(!$admin$$&&
26
- $options$$.obj&&$options$$.obj[$action_right_e$$]&&$options$$.obj[$action_right_e$$].length>0&&$options$$.obj[$action_right_e$$].indexOf($email$$.toLowerCase())<0)return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1);$callbackMain$$(null,!0,$app$$)}}):$callbackMain$$(null,!0,$app$$)})},$options$$)};
27
- exports.getRightByItem=async function($id_app$$,$model$$,$email$$,$next$$,$module$$,$options$$={}){$module$$||=$model$$&&$model$$.modelName?$model$$.modelName.toLowerCase():"";let $right_code$$=($options$$.right_code||$options$$.listinfo_code||$module$$).toLowerCase();if($right_code$$&&$right_code$$!=$module$$.toLowerCase()){var $listinfo$jscomp$1_time_cache$$=await global.getModel("listinfo").findOne({code:$right_code$$}).lean();if(!$listinfo$jscomp$1_time_cache$$)return $next$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng t\u1ed3n t\u1ea1i`});
28
- if(($listinfo$jscomp$1_time_cache$$.api_code||$listinfo$jscomp$1_time_cache$$.code)!=$module$$.toLowerCase())return $next$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng h\u1ee3p l\u1ec7`})}let $key_cache$$=$right_code$$?`RightByItem::${$id_app$$}::${$email$$}::${$right_code$$}::${JSON.stringify($options$$)}`:"";$listinfo$jscomp$1_time_cache$$=$email$$==="public"?10080:1;if($key_cache$$&&global.cacheDatas[$key_cache$$]&&moment().diff(moment(global.cacheDatas[$key_cache$$].time),"minutes")<
29
- $listinfo$jscomp$1_time_cache$$)return $next$$(null,global.cacheDatas[$key_cache$$].data,!1);exports.isAdmin($id_app$$,$email$$,async function($e$jscomp$3_key_right$$,$admin$$,$app$$,$participant$$){if($e$jscomp$3_key_right$$)return $next$$($e$jscomp$3_key_right$$);let $condition$$={};if($admin$$||$options$$.notNeedRight||!underscore.has($model$$.schema.paths,"id_app"))$next$$(null,$condition$$,$admin$$);else{let $allUsers$$,$selUsers$$,$selGroups$$,$visible$$=[],$allow_trang_thai$$;$e$jscomp$3_key_right$$=
30
- $email$$;$participant$$&&$participant$$.group_id&&($e$jscomp$3_key_right$$=$participant$$.group_id.toLowerCase());right.findOne({id_app:$id_app$$,email:$e$jscomp$3_key_right$$,module:$right_code$$},async function($ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$,$_right$jscomp$1_users$$){if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view_all){if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.extra_condition)try{$condition$$=evalute(`return ${$_right$jscomp$1_users$$.extra_condition}`,
31
- {module:$module$$,participant:$participant$$,appInfo:$app$$})}catch($e$$){return console.error("[getRightByItem] [extra_condition]",$e$$,$_right$jscomp$1_users$$.extra_condition),$next$$($e$$.message)}$key_cache$$&&(global.cacheDatas[$key_cache$$]={time:new Date,data:_.cloneDeep($condition$$)});return $next$$(null,$condition$$,!1)}$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$=await exports.dsDangPhuTrach($id_app$$,$email$$);$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push($email$$);
32
- $_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view_empty_phu_trach&&($ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push(""),$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push(null));if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view){var $_right_trang_thai$$={visible_to:null};underscore.has($model$$.schema.paths,"visible_to")&&($condition$$.$and||($condition$$.$and=[]),$allUsers$$={visible_to:0},$selUsers$$={visible_to:2,visible_to_users:$email$$},
33
- $selGroups$$=underscore.has($model$$.schema.paths,"visible_to_usergroups")?{visible_to:5,visible_to_usergroups:($participant$$||{}).group_id}:{visible_to:5,visible_to_users:($participant$$||{}).group_id},$visible$$.push($allUsers$$),$visible$$.push($selUsers$$),$visible$$.push($selGroups$$),$visible$$.push($_right_trang_thai$$));if($_right$jscomp$1_users$$.viewOfOther===!1){if(underscore.has($model$$.schema.paths,"ma_kh")){var $allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$=await exports.dsKhDangPhuTrach($id_app$$,
34
- {$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$});$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$.length>0&&$visible$$.push({ma_kh:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}})}$allUsers$$?$allUsers$$.user_created={$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}:$visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}})}else{if(underscore.has($model$$.schema.paths,"trang_thai")===!0){if($_right_trang_thai$$=
35
- $_right$jscomp$1_users$$.view_trang_thai){$allow_trang_thai$$=[void 0,null,""];for(var $t_viewOfOther_right_trang_thai$$ in $_right_trang_thai$$)$_right_trang_thai$$[$t_viewOfOther_right_trang_thai$$]&&$allow_trang_thai$$.push($t_viewOfOther_right_trang_thai$$);$condition$$.trang_thai={$in:$allow_trang_thai$$}}if($t_viewOfOther_right_trang_thai$$=$_right$jscomp$1_users$$.viewOfOther_trang_thai){$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$=[void 0,null,""];for(let $t$$ in $t_viewOfOther_right_trang_thai$$)!$t_viewOfOther_right_trang_thai$$[$t$$]||
36
- $_right_trang_thai$$&&!$_right_trang_thai$$[$t$$]||$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$.push($t$$)}}$_right$jscomp$1_users$$.viewOfOther_user_groups&&$_right$jscomp$1_users$$.viewOfOther_user_groups.length>0?($_right$jscomp$1_users$$=await Participant.find({id_app:$id_app$$,group_id:{$in:$_right$jscomp$1_users$$.viewOfOther_user_groups}},{email:1}).lean(),$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push(...$_right$jscomp$1_users$$.map($u$$=>$u$$.email)),$allUsers$$?
37
- $allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$?$allUsers$$.$or=[{user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.filter($e$$=>$e$$!=$email$$)},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]:$allUsers$$.user_created={$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$?($visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$},
10
+ exports.hasRight=async function($current_id_app$$,$email$$,$module$$,$action$$,$callbackMain$$,$options$$={}){if(!$current_id_app$$||$options$$.notNeedRight)return $callbackMain$$(null,!0);const $model$$=global.controllers[$module$$]?global.controllers[$module$$].model:void 0;if($model$$&&$model$$.schema&&!underscore.has($model$$.schema.paths,"id_app"))return $callbackMain$$(null,!0);let $right_code$$=($options$$.right_code||$options$$.listinfo_code||$module$$).toLowerCase();$options$$.data&&($options$$.data.trang_thai||
11
+ $options$$.data.trang_thai==0)&&($options$$.data.trang_thai=$options$$.data.trang_thai.toString());$options$$.obj&&($options$$.obj.trang_thai||$options$$.obj.trang_thai==0)&&($options$$.obj.trang_thai=$options$$.obj.trang_thai.toString());$action$$=($action$$||"").toLowerCase();var $data$$=$options$$.data||$options$$.obj||{};const $ma_ct$$=$model$$&&underscore.has($model$$.schema.paths,"ma_ct")&&(($options$$.obj||{}).ma_ct||($options$$.data||{}).ma_ct||"").toString().toUpperCase();let $ma_trang_thai$$=
12
+ ($data$$.trang_thai||$data$$.progress||"").toString().toUpperCase();!$ma_trang_thai$$&&$options$$.obj&&($ma_trang_thai$$=($options$$.obj.trang_thai||$options$$.obj.progress||"").toString().toUpperCase());if($ma_ct$$&&$ma_trang_thai$$)if($data$$=await trangthai.findOne({ma_trang_thai:$ma_trang_thai$$,ma_ct:$ma_ct$$}).lean()){if($data$$.not_need_right)return $callbackMain$$(null,!0)}else console.log("Khong tim thay trang thai cho chuc nang nay",{ma_ct:$ma_ct$$,ma_trang_thai:$ma_trang_thai$$,trang_thai:$data$$,
13
+ action:$action$$});exports.isAdmin($current_id_app$$,$email$$,async($e_key_right_listinfo_ms_q$$,$admin$$,$app$$,$participant$$)=>{if($e_key_right_listinfo_ms_q$$)return $callbackMain$$($e_key_right_listinfo_ms_q$$,!1);if(!$admin$$&&$right_code$$!=$module$$.toLowerCase()){$e_key_right_listinfo_ms_q$$=await global.getModel("listinfo").findOne({code:$right_code$$}).lean();if(!$e_key_right_listinfo_ms_q$$)return $callbackMain$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng t\u1ed3n t\u1ea1i`});
14
+ if(($e_key_right_listinfo_ms_q$$.api_code||$e_key_right_listinfo_ms_q$$.code)!=$module$$.toLowerCase())return $callbackMain$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng h\u1ee3p l\u1ec7`})}if($app$$&&$app$$.allow_modules&&$app$$.allow_modules.length>0&&($e_key_right_listinfo_ms_q$$={"items.code":{$regex:"^"+$module$$+"$",$options:"i"},active_require:!0},$app$$.menu_code&&($e_key_right_listinfo_ms_q$$.app=$app$$.menu_code),$e_key_right_listinfo_ms_q$$=await global.getModel("moduleinfo").find($e_key_right_listinfo_ms_q$$).lean(),
15
+ $e_key_right_listinfo_ms_q$$.length>0&&$e_key_right_listinfo_ms_q$$.filter($m$$=>$app$$.allow_modules.indexOf($m$$.code)>=0&&(!$m$$.not_for_companies||$m$$.not_for_companies.indexOf($app$$._id.toString())<0)&&(!$m$$.only_for_companies||$m$$.only_for_companies.indexOf($app$$._id.toString())>=0)).length==0))return $callbackMain$$('API "'+$module$$+'" ch\u01b0a \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t cho c\u00f4ng ty n\u00e0y (trong module '+$e_key_right_listinfo_ms_q$$[0].app+"/"+$e_key_right_listinfo_ms_q$$[0].title+
16
+ ")",!1);if($options$$.data&&$options$$.data.id_app){if($options$$.data.id_app!=$current_id_app$$)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1);if($options$$.obj&&$options$$.data.id_app!=$options$$.obj.id_app)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1)}if($options$$.obj&&$options$$.obj.id_app&&$options$$.obj.id_app!=$current_id_app$$)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",
17
+ !1);if($options$$.notNeedRight)return $callbackMain$$(null,!0,$app$$);if($options$$.obj&&!$admin$$)if($options$$.obj.visible_to===2){if(!underscore.contains($options$$.obj.visible_to_users,$email$$)&&$options$$.obj.of_user!==$email$$.toLowerCase()&&$options$$.obj.user_created&&$options$$.obj.user_created.toLowerCase()!==$email$$.toLowerCase())return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1)}else if($options$$.obj.visible_to===
18
+ 1&&$options$$.obj.of_user!==$email$$.toLowerCase()&&$options$$.obj.user_created&&$options$$.obj.user_created.toLowerCase()!==$email$$.toLowerCase()&&$options$$.obj.phu_trach!=$email$$.toLowerCase()&&($options$$.obj.attends||[]).indexOf($email$$)<0&&(await exports.dsDangPhuTrach($options$$.obj.id_app,$email$$.toLowerCase())).indexOf($options$$.obj.user_created)<0)return $callbackMain$$("Ch\u1ec9 ng\u01b0\u1eddi t\u1ea1o, ph\u1ee5 tr\u00e1ch, h\u1ed7 tr\u1ee3 v\u00e0 admin m\u1edbi c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",
19
+ !1);$e_key_right_listinfo_ms_q$$=$email$$;$participant$$&&$participant$$.group_id&&($e_key_right_listinfo_ms_q$$=$participant$$.group_id.toLowerCase());right.findOne({id_app:$current_id_app$$,email:$e_key_right_listinfo_ms_q$$,module:$right_code$$},async function($_right_trang_thai_controler_error$$,$_right_model$$){if($_right_trang_thai_controler_error$$)return $callbackMain$$($_right_trang_thai_controler_error$$,!1);if(!$admin$$){if(!$_right_model$$)return $_right_trang_thai_controler_error$$=global.controllers[$module$$.toUpperCase()],
20
+ $_right_model$$=(($_right_trang_thai_controler_error$$||{}).model_name||$module$$).toLowerCase(),$_right_model$$=="customer"||$_right_model$$.indexOf("socai")>=0||$_right_model$$.indexOf("sokho")>=0||$_right_model$$.indexOf("vatvao")>=0||$_right_model$$.indexOf("vatra")>=0||$_right_model$$.indexOf("tdttno")>=0||$_right_model$$.indexOf("tdttco")>=0||$_right_trang_thai_controler_error$$&&($_right_trang_thai_controler_error$$.options||{}).isVoucher||$action$$!=="view"&&($action$$!=="add"||$module$$.toLowerCase()!==
21
+ "group")?$callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1):($_right_trang_thai_controler_error$$={"items.code":$module$$.toLowerCase()},$app$$&&$app$$.menu_code&&($_right_trang_thai_controler_error$$.app=$app$$.menu_code),await global.getModel("moduleinfo").findOne($_right_trang_thai_controler_error$$,{app:1}).lean()?$callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1):$callbackMain$$(null,
22
+ !0,$app$$));if($action$$=="view"&&$_right_model$$?.view_all)return $callbackMain$$(null,!0,$app$$);if($action$$=="view"&&$options$$.obj&&$_right_model$$&&!$_right_model$$.view_all&&!$_right_model$$.viewOfOther&&$options$$.obj.user_created.toLowerCase()!==$email$$&&($options$$.obj.visible_to!==2||!underscore.contains($options$$.obj.visible_to_users,$email$$))&&$options$$.obj.phu_trach!==$email$$&&($options$$.obj.attends||[]).indexOf($email$$)<0&&(await exports.dsDangPhuTrach($options$$.obj.id_app,
23
+ $email$$.toLowerCase())).indexOf($options$$.obj.user_created)<0)return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1);if(!$_right_model$$[$action$$])return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1);if($ma_trang_thai$$&&($_right_trang_thai_controler_error$$=$_right_model$$[`${$action$$}_trang_thai`])&&!$_right_trang_thai_controler_error$$[$ma_trang_thai$$]&&$_right_trang_thai_controler_error$$[$ma_trang_thai$$]!=
24
+ void 0)return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y",!1)}$options$$.obj?async.series({trangthai:$callback$$=>{$options$$.obj&&($action$$==="update"||$action$$==="delete")&&$model$$&&underscore.has($model$$.schema.paths,"ma_ct")&&$options$$.obj.ma_ct?trangthai.findOne({ma_ct:$options$$.obj.ma_ct.toUpperCase(),ma_trang_thai:$options$$.obj.trang_thai},function($e$$,$trang_thai$$){if($e$$)return $callback$$($e$$);
25
+ if($trang_thai$$){if($action$$==="update"){if($trang_thai$$.allow_update==0)return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y kh\u00f4ng cho ph\u00e9p s\u1eeda");if($trang_thai$$.lock_data==1)return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c kho\u00e1")}if($action$$==="delete"&&($trang_thai$$.lock_data||$trang_thai$$.allow_delete==0))return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y kh\u00f4ng cho ph\u00e9p xo\u00e1")}return $callback$$()}):
26
+ $callback$$()}},$action_right_e$$=>{if($action_right_e$$)$callbackMain$$($action_right_e$$,!1);else{$action_right_e$$=`${$action$$}_right`;if(!$admin$$&&$options$$.obj&&$options$$.obj[$action_right_e$$]&&$options$$.obj[$action_right_e$$].length>0&&$options$$.obj[$action_right_e$$].indexOf($email$$.toLowerCase())<0)return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1);$callbackMain$$(null,!0,$app$$)}}):$callbackMain$$(null,!0,$app$$)})},
27
+ $options$$)};
28
+ exports.getRightByItem=async function($id_app$$,$model$$,$email$$,$next$$,$module$$,$options$$={}){$module$$||=$model$$&&$model$$.modelName?$model$$.modelName.toLowerCase():"";let $right_code$$=($options$$.right_code||$options$$.listinfo_code||$module$$).toLowerCase(),$key_cache$$=$right_code$$?`RightByItem::${$id_app$$}::${$email$$}::${$right_code$$}::${JSON.stringify($options$$)}`:"",$time_cache$$=$email$$==="public"?10080:1;if($key_cache$$&&global.cacheDatas[$key_cache$$]&&moment().diff(moment(global.cacheDatas[$key_cache$$].time),"minutes")<
29
+ $time_cache$$)return $next$$(null,global.cacheDatas[$key_cache$$].data,!1);exports.isAdmin($id_app$$,$email$$,async function($e$jscomp$3_key_right$jscomp$1_listinfo$$,$admin$$,$app$$,$participant$$){if($e$jscomp$3_key_right$jscomp$1_listinfo$$)return $next$$($e$jscomp$3_key_right$jscomp$1_listinfo$$);let $condition$$={};if($admin$$||$options$$.notNeedRight||!underscore.has($model$$.schema.paths,"id_app"))$next$$(null,$condition$$,$admin$$);else{if($right_code$$&&$right_code$$!=$module$$.toLowerCase()){$e$jscomp$3_key_right$jscomp$1_listinfo$$=
30
+ await global.getModel("listinfo").findOne({code:$right_code$$}).lean();if(!$e$jscomp$3_key_right$jscomp$1_listinfo$$)return $next$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng t\u1ed3n t\u1ea1i`});if(($e$jscomp$3_key_right$jscomp$1_listinfo$$.api_code||$e$jscomp$3_key_right$jscomp$1_listinfo$$.code)!=$module$$.toLowerCase())return $next$$({error:`M\u00e3 quy\u1ec1n '${$right_code$$}' kh\u00f4ng h\u1ee3p l\u1ec7`})}let $allUsers$$,$selUsers$$,$selGroups$$,$visible$$=[],$allow_trang_thai$$;
31
+ $e$jscomp$3_key_right$jscomp$1_listinfo$$=$email$$;$participant$$&&$participant$$.group_id&&($e$jscomp$3_key_right$jscomp$1_listinfo$$=$participant$$.group_id.toLowerCase());right.findOne({id_app:$id_app$$,email:$e$jscomp$3_key_right$jscomp$1_listinfo$$,module:$right_code$$},async function($ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$,$_right$jscomp$1_users$$){if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view_all){if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.extra_condition)try{$condition$$=
32
+ evalute(`return ${$_right$jscomp$1_users$$.extra_condition}`,{module:$module$$,participant:$participant$$,appInfo:$app$$})}catch($e$$){return console.error("[getRightByItem] [extra_condition]",$e$$,$_right$jscomp$1_users$$.extra_condition),$next$$($e$$.message)}$key_cache$$&&(global.cacheDatas[$key_cache$$]={time:new Date,data:_.cloneDeep($condition$$)});return $next$$(null,$condition$$,!1)}$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$=await exports.dsDangPhuTrach($id_app$$,$email$$);
33
+ $ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push($email$$);$_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view_empty_phu_trach&&($ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push(""),$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push(null));if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view){var $_right_trang_thai$$={visible_to:null};underscore.has($model$$.schema.paths,"visible_to")&&($condition$$.$and||($condition$$.$and=
34
+ []),$allUsers$$={visible_to:0},$selUsers$$={visible_to:2,visible_to_users:$email$$},$selGroups$$=underscore.has($model$$.schema.paths,"visible_to_usergroups")?{visible_to:5,visible_to_usergroups:($participant$$||{}).group_id}:{visible_to:5,visible_to_users:($participant$$||{}).group_id},$visible$$.push($allUsers$$),$visible$$.push($selUsers$$),$visible$$.push($selGroups$$),$visible$$.push($_right_trang_thai$$));if($_right$jscomp$1_users$$.viewOfOther===!1){if(underscore.has($model$$.schema.paths,
35
+ "ma_kh")){var $allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$=await exports.dsKhDangPhuTrach($id_app$$,{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$});$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$.length>0&&$visible$$.push({ma_kh:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}})}$allUsers$$?$allUsers$$.user_created={$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}:$visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}})}else{if(underscore.has($model$$.schema.paths,
36
+ "trang_thai")===!0){if($_right_trang_thai$$=$_right$jscomp$1_users$$.view_trang_thai){$allow_trang_thai$$=[void 0,null,""];for(var $t_viewOfOther_right_trang_thai$$ in $_right_trang_thai$$)$_right_trang_thai$$[$t_viewOfOther_right_trang_thai$$]&&$allow_trang_thai$$.push($t_viewOfOther_right_trang_thai$$);$condition$$.trang_thai={$in:$allow_trang_thai$$}}if($t_viewOfOther_right_trang_thai$$=$_right$jscomp$1_users$$.viewOfOther_trang_thai){$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$=[void 0,
37
+ null,""];for(let $t$$ in $t_viewOfOther_right_trang_thai$$)!$t_viewOfOther_right_trang_thai$$[$t$$]||$_right_trang_thai$$&&!$_right_trang_thai$$[$t$$]||$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$.push($t$$)}}$_right$jscomp$1_users$$.viewOfOther_user_groups&&$_right$jscomp$1_users$$.viewOfOther_user_groups.length>0?($_right$jscomp$1_users$$=await Participant.find({id_app:$id_app$$,group_id:{$in:$_right$jscomp$1_users$$.viewOfOther_user_groups}},{email:1}).lean(),$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.push(...$_right$jscomp$1_users$$.map($u$$=>
38
+ $u$$.email)),$allUsers$$?$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$?$allUsers$$.$or=[{user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.filter($e$$=>$e$$!=$email$$)},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]:$allUsers$$.user_created={$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$?($visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$},
38
39
  trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}}),$visible$$.push({$or:[{user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$.filter($e$$=>$e$$!=$email$$)},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]})):$visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}})):$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$&&($allUsers$$?$allUsers$$.$or=[{user_created:{$ne:$email$$},
39
40
  trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]:$visible$$.push({$or:[{user_created:{$ne:$email$$},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]}))}$selUsers$$&&(underscore.has($model$$.schema.paths,"of_user")&&$visible$$.push({of_user:$email$$}),underscore.has($model$$.schema.paths,"phu_trach")&&$visible$$.push({phu_trach:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}}),underscore.has($model$$.schema.paths,
40
41
  "attends")&&$visible$$.push({attends:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}}))}else not_need_right_models.indexOf($module$$)<0&&($visible$$.push({user_created:$email$$}),underscore.has($model$$.schema.paths,"of_user")&&$visible$$.push({of_user:$email$$}),underscore.has($model$$.schema.paths,"phu_trach")&&$visible$$.push({phu_trach:{$in:$ds_dang_phu_trach_error$jscomp$4_query$jscomp$1_visible_to_null$$}}),underscore.has($model$$.schema.paths,"attends")&&$visible$$.push({attends:$email$$})),
@@ -17,5 +17,5 @@ round),$detail$$.sl_nhap_qd=utils.round(($detail$$.sl_nhap||0)*$detail$$.he_so_q
17
17
  $detail$$.sl_xuat_qd=utils.round(($detail$$.sl_xuat||0)*$detail$$.tu/$detail$$.mau,round),$detail$$.sl_nhap_qd=utils.round(($detail$$.sl_nhap||0)*$detail$$.tu/$detail$$.mau,round)):($detail$$.sl_xuat_qd=utils.round(($detail$$.sl_xuat||0)*$detail$$.he_so_qd,round),$detail$$.sl_nhap_qd=utils.round(($detail$$.sl_nhap||0)*$detail$$.he_so_qd,round))}));if($model_book$$.modelName.toLowerCase()==="vatra"||$model_book$$.modelName.toLowerCase()==="vatvao")if($ds_kho_kho_locked_rs$jscomp$1_tdtts_tdtts$$=await Promise.all($details$$.filter($r$$=>
18
18
  $r$$.so_hd&&$r$$.so_hd.toUpperCase()!==($master$$.ma_ct||"").toUpperCase()).map($detail$$=>(async()=>{let $v$$=await $model_book$$.findOne({id_app:$master$$.id_app,so_hd:$detail$$.so_hd,ma_kh:$detail$$.ma_kh||$master$$.ma_kh,so_seri:$detail$$.so_seri,ky_hieu_hoa_don:$detail$$.ky_hieu_hoa_don,id_ct:{$ne:$master$$._id.toString()}});return $v$$?$v$$.so_hd:""})())),$ds_kho_kho_locked_rs$jscomp$1_tdtts_tdtts$$=$ds_kho_kho_locked_rs$jscomp$1_tdtts_tdtts$$.filter($r$$=>$r$$),$ds_kho_kho_locked_rs$jscomp$1_tdtts_tdtts$$.length>
19
19
  0)return $callback$$(`S\u1ed1 ho\u00e1 \u0111\u01a1n ${$ds_kho_kho_locked_rs$jscomp$1_tdtts_tdtts$$.join(",")} \u0111\u00e3 t\u1ed3n t\u1ea1i`);$details$$=$details$$.map(($detail$$,$line$$)=>{$detail$$.id_ct=$master$$._id.toString();$detail$$.ma_ct=$master$$.ma_ct;$detail$$.so_ct=$master$$.so_ct;$detail$$.ngay_ct=$master$$.ngay_ct;for(let $attr$$ in $model_book$$.schema.paths)if($attr$$!="id_ct"&&$attr$$!="_id"&&$attr$$!="__v"&&$attr$$!="date_updated"&&$attr$$!="date_created"){let $v$$=$detail$$[$attr$$];
20
- $v$$!==void 0&&$v$$!==null&&$v$$!==""||$v$$===0||$master$$[$attr$$]===void 0||($detail$$[$attr$$]=$master$$[$attr$$])}$detail$$.line=$line$$;delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;return $detail$$});this.remove($error$$=>{if($error$$)return console.error("[postBook] error delete data post",$error$$.error||$error$$.message||$error$$),$callback$$($error$$);if($details$$.length==0)return $callback$$(null,[]);$model_book$$.create($details$$,async($e$$,$rs$$)=>{$e$$?$callback$$($e$$):
21
- ($rs$$&&$model_book$$.modelName.toLowerCase()==="sokho"&&setImmediate(()=>{tontucthoi.tinhTonTucThoi($rs$$,$e$$=>{$e$$&&console.error("L\u1ed7i t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi v\u1eadt t\u01b0",$rs$$,$e$$)})}),$callback$$(null,$rs$$))})})};module.exports=post;
20
+ $v$$!==void 0&&$v$$!==null&&$v$$!==""||$v$$===0||$master$$[$attr$$]===void 0||($detail$$[$attr$$]=$master$$[$attr$$])}$detail$$.line=$line$$;delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;delete $detail$$.listinfo_code;return $detail$$});this.remove($error$$=>{if($error$$)return console.error("[postBook] error delete data post",$error$$.error||$error$$.message||$error$$),$callback$$($error$$);if($details$$.length==0)return $callback$$(null,[]);$model_book$$.create($details$$,
21
+ async($e$$,$rs$$)=>{$e$$?$callback$$($e$$):($rs$$&&$model_book$$.modelName.toLowerCase()==="sokho"&&setImmediate(()=>{tontucthoi.tinhTonTucThoi($rs$$,$e$$=>{$e$$&&console.error("L\u1ed7i t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi v\u1eadt t\u01b0",$rs$$,$e$$)})}),$callback$$(null,$rs$$))})})};module.exports=post;
@@ -19,4 +19,4 @@ if(this._options.kiem_tra_han_muc_cong_no){let $check_hmcn$$=$details$$.map($d$$
19
19
  $detail$$.ma_kh||$master$$.ma_kh);$detail$$.ma_kh_co||($detail$$.ma_kh_co=$master$$.ma_kh_co||$detail$$.ma_kh||$master$$.ma_kh);checkData($master$$.id_app,$master$$.ngay_ct,$detail$$,($e$$,$detail$$)=>{$callback$$($e$$,$detail$$)})})},($but_toan_loi_e$$,$details$$)=>{if($but_toan_loi_e$$)return $callback$$($but_toan_loi_e$$);$details$$.forEach($detail$$=>{!isNaN($detail$$.tien)&&$detail$$.tien||isNaN($detail$$.tien_nt)||($detail$$.tien=$detail$$.tien_nt*($master$$.ty_gia||1))});$but_toan_loi_e$$=
20
20
  $details$$.filter($detail$$=>isNaN($detail$$.tien_nt)||isNaN($detail$$.tien));$but_toan_loi_e$$.length>0&&console.error("[postsocai] B\u00fat to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7 v\u00ec tien_nt ho\u1eb7c tien l\u00e0 isNaN:",{so_ct:$master$$.so_ct,ma_ct:$master$$.ma_ct,chi_tiet:$but_toan_loi_e$$},", Ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd b\u1ecf qua c\u1eb7p \u0111\u1ecbnh kho\u1ea3n n\u00e0y");let $dks$$=$details$$.filter($detail$$=>!($detail$$.tien_nt===0&&$detail$$.tien===0)&&!isNaN($detail$$.tien_nt)&&
21
21
  !isNaN($detail$$.tien)).map(($detail$$,$nh_dk$$)=>{for(let $attr$$ in $Socai$$.schema.paths)$attr$$!="id_ct"&&$attr$$!="_id"&&$attr$$!="__v"&&$attr$$!="date_updated"&&$attr$$!="date_created"&&($detail$$[$attr$$]!==void 0&&$detail$$[$attr$$]!==null&&$detail$$[$attr$$]!==""||$detail$$[$attr$$]===0||$master$$[$attr$$]===void 0||($detail$$[$attr$$]=$master$$[$attr$$]));$detail$$.nh_dk=$nh_dk$$;$detail$$.id_ct=$master$$._id.toString();delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;
22
- return $detail$$});$details$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};this._options.deleteQuery&&($details$$={...$details$$,...this._options.deleteQuery,id_app:$master$$.id_app});$Socai$$.deleteMany($details$$,$error$$=>{if($error$$)return $callback$$("Don't remove socai \n"+$error$$);if($dks$$.length==0)return $callback$$(null,[]);$Socai$$.create($dks$$,async($e$$,$rs$$)=>{$e$$?$callback$$($e$$):$callback$$(null,$rs$$)})})})};module.exports=post;
22
+ delete $detail$$.listinfo_code;return $detail$$});$details$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};this._options.deleteQuery&&($details$$={...$details$$,...this._options.deleteQuery,id_app:$master$$.id_app});$Socai$$.deleteMany($details$$,$error$$=>{if($error$$)return $callback$$("Don't remove socai \n"+$error$$);if($dks$$.length==0)return $callback$$(null,[]);$Socai$$.create($dks$$,async($e$$,$rs$$)=>{$e$$?$callback$$($e$$):$callback$$(null,$rs$$)})})})};module.exports=post;
@@ -18,6 +18,6 @@ round),$detail$$.sl_nhap_qd=utils.round(($detail$$.sl_nhap||0)*$detail$$.he_so_q
18
18
  ma_dvt:$p$$.ma_dvt}).lean();$giatb_qd$$&&($he_so_qd$$=$giatb_qd$$.mau?$giatb_qd$$.tu/$giatb_qd$$.mau:$giatb_qd$$.ty_le_qd);$giatb_qd$$={ma_vt:$p$$.ma_vt,nam:$nam$$,thang:$thang$$,ma_kho:{$in:[$p$$.ma_kho,"",null]}};if($giatb_qd$$=await global.getModel("giatb").findOne($giatb_qd$$).sort({ma_kho:-1}).lean())$p$$.gia_von_nt=$p$$.gia_von=($giatb_qd$$.gia||0)*$he_so_qd$$,$p$$.tien_xuat_nt=$p$$.tien_xuat=($p$$.sl_xuat||0)*$p$$.gia_von_nt,$p$$.tien_nhap_nt=$p$$.tien_nhap=($p$$.sl_nhap||0)*$p$$.gia_von_nt,
19
19
  $callback$$();else{let $condition$$={id_app:$master$$.id_app,ma_vt:$p$$.ma_vt,ma_kho:$p$$.ma_kho};$condition$$.tu_ngay=moment($master$$.ngay_ct).startOf("month").toDate();$condition$$.den_ngay=moment($master$$.ngay_ct).endOf("month").toDate();tinhgiatb($condition$$,($e$$,$giatb$$)=>{$e$$&&console.error("[postSokho] Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh",$e$$.message||$e$$.error||$e$$,$condition$$);$p$$.gia_von_nt=$rs$$?$p$$.gia_von=($giatb$$.gia||0)*$he_so_qd$$:$p$$.gia_von=0;$p$$.tien_xuat_nt=
20
20
  $p$$.tien_xuat=($p$$.sl_xuat||0)*$p$$.gia_von_nt;$p$$.tien_nhap_nt=$p$$.tien_nhap=($p$$.sl_nhap||0)*$p$$.gia_von_nt;$callback$$()})}})},()=>{$rs$$()})});$details$$=$details$$.map(($detail$$,$line$$)=>{$detail$$.id_ct=$master$$._id.toString();$detail$$.ma_ct=$master$$.ma_ct;$detail$$.so_ct=$master$$.so_ct;$detail$$.ngay_ct=$master$$.ngay_ct;for(let $attr$$ in global.getModel("sokho").schema.paths)if($attr$$!="id_ct"&&$attr$$!="_id"&&$attr$$!="__v"&&$attr$$!="date_updated"&&$attr$$!="date_created"){let $v$$=
21
- $detail$$[$attr$$];$v$$!==void 0&&$v$$!==null&&$v$$!==""||$v$$===0||$master$$[$attr$$]===void 0||($detail$$[$attr$$]=$master$$[$attr$$])}$detail$$.line=$line$$;delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;return $detail$$});await $details$$.asyncJoinModel2($master$$.id_app,"dmkho",{where:"ma_kho",fields:"la_kho_npp"});this.remove(async $error$$=>{if($error$$)return console.error("[postSokho] error delete data post",$error$$.message||$error$$.error||$error$$,$master$$.so_ct,
22
- $master$$.ma_ct),$callback$$($error$$);if($details$$.length==0)return $callback$$(null,[]);try{let $data_sokho$$=$details$$.filter($d$$=>$d$$.tg_tk&&!$d$$.la_kho_npp),$rs_sokho$$=await global.getModel("sokho").create($data_sokho$$),$data_sokhonpp$$=$details$$.filter($d$$=>$d$$.tg_tk&&$d$$.la_kho_npp),$rs_sokhnpp$$=await global.getModel("sokhonpp").create($data_sokhonpp$$),$data_sokhokhongton$$=$details$$.filter($d$$=>$d$$.tg_tk==0),$rs_sokhokhongton$$=await global.getModel("sokhokhongton").create($data_sokhokhongton$$);
21
+ $detail$$[$attr$$];$v$$!==void 0&&$v$$!==null&&$v$$!==""||$v$$===0||$master$$[$attr$$]===void 0||($detail$$[$attr$$]=$master$$[$attr$$])}$detail$$.line=$line$$;delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;delete $detail$$.listinfo_code;return $detail$$});await $details$$.asyncJoinModel2($master$$.id_app,"dmkho",{where:"ma_kho",fields:"la_kho_npp"});this.remove(async $error$$=>{if($error$$)return console.error("[postSokho] error delete data post",$error$$.message||$error$$.error||
22
+ $error$$,$master$$.so_ct,$master$$.ma_ct),$callback$$($error$$);if($details$$.length==0)return $callback$$(null,[]);try{let $data_sokho$$=$details$$.filter($d$$=>$d$$.tg_tk&&!$d$$.la_kho_npp),$rs_sokho$$=await global.getModel("sokho").create($data_sokho$$),$data_sokhonpp$$=$details$$.filter($d$$=>$d$$.tg_tk&&$d$$.la_kho_npp),$rs_sokhnpp$$=await global.getModel("sokhonpp").create($data_sokhonpp$$),$data_sokhokhongton$$=$details$$.filter($d$$=>$d$$.tg_tk==0),$rs_sokhokhongton$$=await global.getModel("sokhokhongton").create($data_sokhokhongton$$);
23
23
  $callback$$(null,{rs_sokho:$rs_sokho$$,rs_sokhnpp:$rs_sokhnpp$$,rs_sokhokhongton:$rs_sokhokhongton$$});$rs_sokho$$&&setImmediate(()=>{tontucthoi.tinhTonTucThoi($rs_sokho$$,$e$$=>{$e$$&&console.error("L\u1ed7i t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi v\u1eadt t\u01b0",$rs_sokho$$,$e$$.message||$e$$.error||$e$$,$master$$.so_ct,$master$$.ma_ct)})})}catch($e$$){console.error("[postSokho] \u0110\u00e3 c\u00f3 l\u1ed7i khi post sokho",$e$$),$callback$$($e$$)}})};module.exports=post;
@@ -9,8 +9,9 @@ $error$$.message,$error$$?.errorLabels),setTimeout(async()=>{await $session$$.ab
9
9
  $e$$),await $session$$.abortTransaction().catch(()=>{}),$reject$$($e$$)}}},...$extraArgs$$)})()})});await $session$$.endSession();console.log("\u2705 [handlerWithSession] transaction committed, session closed");console.log(`\ud83d\udd25 [onAfterCommit] running ${$afterCommitCallbacks$$.length} callbacks for storeId=${$storeId_for_log$$}`);$afterCommitCallbacks$$.length>0&&await exports.runWithoutSession(async()=>{for(const $cb$$ of $afterCommitCallbacks$$)try{await $cb$$()}catch($err$$){console.error("\u274c [onAfterCommit error]",
10
10
  $err$$)}});$callback$$(null,$err_transactionResult$$);return}catch($err$$){if(await $session$$.endSession().catch(()=>{}),console.warn("\u274c [handlerWithSession] transaction failed, session closed"),$attempt$$++,($err$$?.errorLabels?.includes("TransientTransactionError")||$err$$?.errorLabels?.includes("UnknownTransactionCommitResult")||$err$$?.code===112||$err$$?.message?.includes("Write conflict"))&&$attempt$$<3){const $delay$$=200*Math.pow(2,$attempt$$-1);console.warn(`\u26a0\ufe0f [handlerWithSession] Retry transaction (attempt ${$attempt$$}/${3}) after ${$delay$$}ms`);
11
11
  await new Promise($res$$=>setTimeout($res$$,$delay$$))}else{console.error(`\u274c [handlerWithSession] Transaction failed permanently (${$ctrl$$.name})`,$err$$);$callback$$($err$$);return}}}$err_transactionResult$$=Error("Transaction failed after 3 retries");console.error(`\u274c [handlerWithSession] Max retries exceeded (${$ctrl$$.name})`);$callback$$($err_transactionResult$$)};
12
- exports.executeInTransaction=async function($fn$$){const $session$$=await mongoose.startSession();$session$$._debugId=`txn-auto-${++globalSessionCounter}`;let $result$$=null,$afterCommitCallbacks$$=[];try{await exports.runWithSession($session$$,async()=>{await $session$$.withTransaction(async()=>{$afterCommitCallbacks$$=[];$result$$=await $fn$$($session$$);$session$$.afterCommit&&$session$$.afterCommit.length>0&&($afterCommitCallbacks$$=[...$session$$.afterCommit])},{readPreference:"primary",readConcern:{level:"local"},
13
- writeConcern:{w:"majority"}})})}catch($error$$){throw console.error(`\u274c [executeInTransaction] Failed permanently: ${$error$$.message}`),$error$$;}finally{await $session$$.endSession()}$afterCommitCallbacks$$.length>0&&exports.runWithoutSession(async()=>{for(const $cb$$ of $afterCommitCallbacks$$)try{await $cb$$()}catch($err$$){console.error("\u274c [executeInTransaction] afterCommit error",$err$$)}});return $result$$};
12
+ exports.executeInTransaction=async function($fn$$){const $session$$=await mongoose.startSession(),$outerSessionId$$=`txn-auto-${++globalSessionCounter}`;$session$$._debugId=$outerSessionId$$;let $result$$=null,$committedCallbacks$$=[];try{await $session$$.withTransaction(async $sessionInTxn$$=>{$sessionInTxn$$.afterCommit=[];const $context$$={session:$sessionInTxn$$,storeId:++globalStoreCounter,sessionId:$sessionInTxn$$._debugId||$outerSessionId$$};await storage.run($context$$,async()=>{console.log(`\ud83d\udd04 [executeInTransaction] Start/Retry txnId=${$context$$.sessionId} storeId=${$context$$.storeId}`);
13
+ $result$$=await $fn$$($sessionInTxn$$)});$sessionInTxn$$.afterCommit&&$sessionInTxn$$.afterCommit.length>0&&($committedCallbacks$$=[...$sessionInTxn$$.afterCommit])},{readPreference:"primary",readConcern:{level:"local"},writeConcern:{w:"majority"},maxCommitTimeMS:5E3})}catch($error$$){throw console.error(`\u274c [executeInTransaction] Failed permanently: ${$error$$.message}`),$error$$;}finally{await $session$$.endSession()}$committedCallbacks$$.length>0&&(console.log(`\ud83d\udd25 [executeInTransaction] Running ${$committedCallbacks$$.length} afterCommit callbacks`),
14
+ exports.runWithoutSession(async()=>{for(const $cb$$ of $committedCallbacks$$)try{await $cb$$()}catch($err$$){console.error("\u274c [executeInTransaction] afterCommit error",$err$$)}}));return $result$$};
14
15
  exports.onAfterCommit=function($cb$$,$description$$="",$session$$=null,$store$$=null){$store$$=$store$$||storage.getStore();$session$$=$session$$||$store$$?.session;$store$$&&$session$$&&exports.isSessionActive($session$$)?($session$$.afterCommit=$session$$.afterCommit||[],$session$$.afterCommit.push($cb$$),console.log(`[onAfterCommit] added callback, storeId=${$store$$.storeId}, count=${$session$$.afterCommit.length},des=${$description$$}`)):Promise.resolve().then($cb$$).catch($err$$=>console.error("[onAfterCommit immediate error]",
15
16
  $err$$,$description$$,", storeId=",$store$$?.storeId))};exports.getAfterCommitList=function(){return exports.getCurrentSession()?.afterCommit||[]};exports.runWithoutSession=async function($fn$$){return storage.run({session:void 0},$fn$$)};exports.getCurrentSession=function(){return storage.getStore()?.session};exports.isModelExcludedFromSession=function($model_name$$){$model_name$$=typeof $model_name$$==="string"?$model_name$$:$model_name$$?.modelName;return!(!$model_name$$||!SESSION_EXCLUDE_MODELS.includes($model_name$$))};
16
17
  exports.isSessionActive=function($session$$){if(!$session$$)return!1;try{return $session$$.inTransaction()&&!$session$$.hasEnded}catch{return!1}};console.log("[sessionContext] \u2705 Loaded");
@@ -580,7 +580,7 @@ model.createModel = (info)=>{
580
580
  const deletePost = (_listInfo,obj)=>{
581
581
  return new Promise((resolve,reject)=>{
582
582
  let bookbackup={};
583
- async.map((_listInfo.postinfos||[]).filter(info=>info.model && info.script && info.condition),(postInfo,callback)=>{
583
+ async.mapSeries((_listInfo.postinfos||[]).filter(info=>info.model && info.script && info.condition),(postInfo,callback)=>{
584
584
  setImmediate(async ()=>{
585
585
  let m = global.getModel(postInfo.model);
586
586
  let scriptCondition = postInfo.condition.indexOf("return ")<0?`return ${postInfo.condition}`:postInfo.condition;
@@ -1,5 +1,5 @@
1
1
  const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",
2
- maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk};
2
+ maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},exfields_detail:Schema.Types.Mixed,bang_luong:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk};
3
3
  const pclSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PCL",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ky:{type:Number,required:!0},nam:{type:Number,required:!0},dot:{type:Number,required:!0},ty_le:{type:Number,required:!0},tk_co:{type:String,required:!0,
4
4
  uppercase:!0,maxlength:32},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},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:""},visible_to:{type:Number,
5
5
  default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},ma_kho:String,ten_kho:String});pclSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook};
@@ -1,39 +1,4 @@
1
- const chamcong = global.getModel('chamcong');
2
- const controller = require('../../controllers/controllerRPT');
3
- const async = require("async");
4
- const permission = require("../../libs/permission");
5
- module.exports = function(router) {
6
- new controller(router, 'bkchamcong', function(req, callback) {
7
- let id_apps = req.query.id_apps;
8
- if(!req.query.id_apps || req.query.id_apps.length==0) id_apps = [req.query.id_app];
9
- async.map(id_apps,(id_app,callback)=>{
10
- permission.hasRight(id_app, req.user.email, "chamcong", 'view', async function(error, permission) {
11
- if(!permission) return callback(`Bạn không có quyền với công ty có id '${id_app}'`);
12
- const query = {};
13
- query.id_app = id_app;
14
- query.ngay ={$gte:req.query.tu_ngay,$lte:req.query.den_ngay};
15
- if(req.query.ma_nv){
16
- query.ma_nv = req.query.ma_nv;
17
- }
18
- if(req.query.ma_bp){
19
- query.ma_bp = req.query.ma_bp;
20
- }
21
- chamcong.find(query).lean().then(async (congs)=>{
22
- await congs.asyncJoinModel2(id_app,"dmloaicong",[{where:{ma_loai_cong:'ma_loai_cong'},fields:["ten_loai_cong","color"]}])
23
- await congs.asyncJoinModel2(id_app,global.getModel("dmnv"),[{where:{ma_nv:'ma_nv'},fields:["ten_nv"]}]);
24
- await congs.asyncJoinModel2(id_app,global.getModel("dmbp"),[{where:{ma_bp:'ma_bp'},fields:["ten_bp"]}]);
25
-
26
- callback(null,congs);
27
- }).catch(e=>{
28
- callback(e);
29
- })
30
- })
31
- },async (e,rs)=>{
32
- if(e) return callback(e);
33
- let report = rs.reduce((a,b)=>a.concat(b),[]);
34
- await report.asyncJoinModel2(null,global.getModel("app"),[{where:{id_app:'_id'},fields:[{ten_cong_ty:"name"}]}]);
35
- callback(null,report)
36
- })
37
-
38
- });
39
- }
1
+ const chamcong=global.getModel("chamcong"),controller=require("../../controllers/controllerRPT"),async=require("async"),permission=require("../../libs/permission");
2
+ module.exports=function($router$$){new controller($router$$,"bkchamcong",function($req$$,$callback$$){let $id_apps$$=$req$$.query.id_apps;$req$$.query.id_apps&&$req$$.query.id_apps.length!=0||($id_apps$$=[$req$$.query.id_app]);async.map($id_apps$$,($id_app$$,$callback$$)=>{permission.hasRight($id_app$$,$req$$.user.email,"chamcong","view",async function($error$$,$permission$$){if(!$permission$$)return $callback$$(`B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n v\u1edbi c\u00f4ng ty c\u00f3 id '${$id_app$$}'`);
3
+ $error$$={};$error$$.id_app=$id_app$$;$error$$.ngay={$gte:$req$$.query.tu_ngay,$lte:$req$$.query.den_ngay};$req$$.query.ma_nv&&($error$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_bp&&($error$$.ma_bp=$req$$.query.ma_bp);chamcong.find($error$$).lean().then(async $congs$$=>{await $congs$$.asyncJoinModel2($id_app$$,"dmloaicong",[{where:{ma_loai_cong:"ma_loai_cong"},fields:["ten_loai_cong","color"]}]);await $congs$$.asyncJoinModel2($id_app$$,global.getModel("dmnv"),[{where:{ma_nv:"ma_nv"},fields:["ten_nv"]}]);
4
+ await $congs$$.asyncJoinModel2($id_app$$,global.getModel("dmbp"),[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);$callback$$(null,$congs$$)}).catch($e$$=>{$callback$$($e$$)})})},async($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$e$$=$rs$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);await $e$$.asyncJoinModel2(null,global.getModel("app"),[{where:{id_app:"_id"},fields:[{ten_cong_ty:"name"}]}]);$callback$$(null,$e$$)})})};
@@ -1,5 +1,5 @@
1
1
  const dmbp=global.getModel("dmbp"),dmnv=global.getModel("dmnv"),customer=global.getModel("customer"),bangtinhluong=global.getModel("bangtinhluong"),controller=require("../../controllers/controllerRPT");
2
2
  module.exports=function($router$$){new controller($router$$,"getluongchuyen",function($req$$,$callback$$){const $condition$$=$req$$.query;if(!$condition$$.thang||!$condition$$.nam||!$condition$$.id_app)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: thang,nam,id_app");bangtinhluong.find({id_app:$condition$$.id_app,thang:Number($condition$$.thang),nam:Number($condition$$.nam)}).lean().then(function($luongs$$){$luongs$$.joinModel2($condition$$.id_app,dmbp,[{where:{ma_bp:"ma_bp"},
3
- fields:["tk_cp_luong","tk_pt_nv","tk_thue_tncn","ma_phi","ten_bp"]}],async function(){let $report$$=[...$luongs$$.filter($luong$$=>$luong$$.luong_thang).map($_luong_luong$$=>{$_luong_luong$$={...$_luong_luong$$};$_luong_luong$$.tk_no=$_luong_luong$$.tk_pt_nv;$_luong_luong$$.tien_nt=$_luong_luong$$.tien=Math.roundBy($_luong_luong$$.tong_luong);return $_luong_luong$$})];$report$$=await $report$$.asyncGroupBy("tk_no ma_nv ma_bp ten_bp ma_phi ma_kho dien_giai".split(" "),["tien","tien_nt"]);await $report$$.asyncJoinModel2($condition$$.id_app,
4
- dmnv,{where:"ma_nv",fields:["ten_nv","so_tk_ngan_hang","ten_chu_tk_ngan_hang","phat_hanh_boi_ngan_hang"]});$report$$=$report$$.map(($r$$,$i$$)=>{$r$$.line=$i$$;$r$$.ma_kh=$r$$.ma_kh||$r$$.ma_nv;$condition$$.ty_le&&$condition$$.dot&&($r$$.tien_nt=$r$$.tien=Math.roundBy($r$$.tien_nt*$condition$$.ty_le/100),$r$$.dot=$condition$$.dot,$r$$.ty_le=$condition$$.ty_le);return $r$$});await $report$$.asyncJoinModel2($condition$$.id_app,customer,{where:"ma_kh",fields:["ten_kh"]});$report$$.forEach($r$$=>{$r$$.ten_kh||
5
- delete $r$$.ma_kh});$callback$$(null,$report$$)})}).catch($error$$=>{$callback$$($error$$)})})};
3
+ fields:["tk_cp_luong","tk_pt_nv","tk_thue_tncn","ma_phi","ten_bp"]}],async function(){const $cpluong$$=$luongs$$.filter($luong$$=>$luong$$.luong_thang).map($_luong_luong$$=>{$_luong_luong$$={...$_luong_luong$$};$_luong_luong$$.tk_no=$_luong_luong$$.tk_pt_nv;$_luong_luong$$.tien_nt=$_luong_luong$$.tien=Math.roundBy($_luong_luong$$.tong_luong);return $_luong_luong$$});let $report$$=[...$cpluong$$];$report$$=await $report$$.asyncGroupBy("tk_no ma_nv ma_bp ten_bp ma_phi ma_kho dien_giai".split(" "),["tien",
4
+ "tien_nt"]);await $report$$.asyncJoinModel2($condition$$.id_app,dmnv,{where:"ma_nv",fields:["ten_nv","so_tk_ngan_hang","ten_chu_tk_ngan_hang","phat_hanh_boi_ngan_hang"]});$report$$=$report$$.map(($r$$,$i$$)=>{$r$$.line=$i$$;$r$$.ma_kh=$r$$.ma_kh||$r$$.ma_nv;$condition$$.ty_le&&$condition$$.dot&&($r$$.tien_nt=$r$$.tien=Math.roundBy($r$$.tien_nt*$condition$$.ty_le/100),$r$$.dot=$condition$$.dot,$r$$.ty_le=$condition$$.ty_le);$r$$.bang_luong=$cpluong$$.filter($c$$=>$c$$.ma_nv==$r$$.ma_nv&&$c$$.ma_bp==
5
+ $r$$.ma_bp);return $r$$});await $report$$.asyncJoinModel2($condition$$.id_app,customer,{where:"ma_kh",fields:["ten_kh"]});$report$$.forEach($r$$=>{$r$$.ten_kh||delete $r$$.ma_kh});$callback$$(null,$report$$)})}).catch($error$$=>{$callback$$($error$$)})})};
@@ -2,4 +2,7 @@ const PostBook=require("../../libs/post-book"),dmgiaban=global.getModel("dmgiaba
2
2
  module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,sort:{ngay_ct:-1,so_ct:-1},unique:["so_ct"]});$contr_router$$.route();$contr_router$$.post=function($obj$$,$fn$$){$fn$$||=function(){};async.series({post_dmgiaban:function($callback$$){(new PostBook($obj$$,[...$obj$$.details],dmgiaban,async function($_detail$$,$callback$$){$callback$$({...$_detail$$})})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})}},function($e$$,
3
3
  $rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.details||($obj$$.details=[]);$next$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){$next$$(null,$data$$,$obj$$)};$contr_router$$.view=function($user$$,$items$$,$fn$$){let $id_app$$=$user$$.current_id_app;async.parallel({kho:function($callback$$){$items$$.filter($item$$=>$item$$.ma_kho).joinModel2($id_app$$,dmkho,[{where:"ma_kho",fields:["ten_kho"]}],function(){$callback$$()})},
4
4
  customer:function($callback$$){$items$$.filter($item$$=>$item$$.ma_kh).joinModel2($id_app$$,"customer",[{where:"ma_kh",fields:["ten_kh"]}],function(){$callback$$()})},trangthai:function($callback$$){$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,trangthai,[{where:{trang_thai:"ma_trang_thai",ma_ct:"ma_ct"},fields:["ten_trang_thai","color"]}],function(){$callback$$()})},details_vt:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){($r$$.details||[]).joinModel2($id_app$$,
5
- dmvt,[{where:"ma_vt",fields:[{name:"ten_vt",value:"ten_vt"}]}],function(){$callback1$$()})},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};
5
+ dmvt,[{where:"ma_vt",fields:[{name:"ten_vt",value:"ten_vt"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_nhkh:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){($r$$.details||[]).filter($d$$=>$d$$.nh_kh).joinModel2($id_app$$,"group",[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_nhkh2:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){($r$$.details||
6
+ []).filter($d$$=>$d$$.nh_kh2).joinModel2($id_app$$,"group",[{where:{nh_kh2:"_id"},fields:[{ten_nh_kh2:"group_name"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_nhkh3:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){($r$$.details||[]).filter($d$$=>$d$$.nh_kh3).joinModel2($id_app$$,"group",[{where:{nh_kh3:"_id"},fields:[{ten_nh_kh3:"group_name"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_nh_vt:function($callback$$){async.mapLimit($items$$,
7
+ 20,function($r$$,$callback1$$){($r$$.details||[]).filter($d$$=>$d$$.ma_nvt).joinModel2($id_app$$,"dmnvt",[{where:{ma_nvt:"_id"},fields:[{name:"ten_nvt",value:"ten_nvt"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_nh_vt2:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){($r$$.details||[]).filter($d$$=>$d$$.ma_nvt2).joinModel2($id_app$$,"dmnvt",[{where:{ma_nvt2:"_id"},fields:[{name:"ten_nvt2",value:"ten_nvt"}]}],function(){$callback1$$()})},function(){$callback$$()})},
8
+ details_nh_vt3:function($callback$$){async.mapLimit($items$$,20,function($r$$,$callback1$$){($r$$.details||[]).filter($d$$=>$d$$.ma_nvt3).joinModel2($id_app$$,"dmnvt",[{where:{ma_nvt3:"_id"},fields:[{name:"ten_nvt3",value:"ten_nvt"}]}],function(){$callback1$$()})},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};