flexbiz-server 12.0.14 → 12.0.15

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.0.14",
5
+ "version": "12.0.15",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -13,8 +13,8 @@ Number($v$$):"date"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condi
13
13
  class controller{constructor($router$$,$model$$,$name$$,$options$jscomp$0$$={isVoucher:void 0,sort:void 0,check_stock:void 0,unique:void 0,require_id_app:void 0,notNeedRight:void 0}){this.name=$name$$;this.model=$model$$;this.router=$router$$;this.module=this.name;global.controllers[$name$$.trim().toUpperCase()]=this;$options$jscomp$0$$.findExact||($options$jscomp$0$$.findExact={});this.keyValues=$options$jscomp$0$$.keyValues;this.keyValues||(this.keyValues={});void 0===$options$jscomp$0$$.require_id_app||
14
14
  !0===$options$jscomp$0$$.require_id_app?(this.require_id_app=!0,this.route_name=`/:id_app/${this.module}`):(this.require_id_app=!1,this.route_name=`/${this.module}`);this.collection_name=$options$jscomp$0$$.collection_name?$options$jscomp$0$$.collection_name:$name$$;this.sort=$options$jscomp$0$$.sort;this.unique=$options$jscomp$0$$.unique;this.getting=$options$jscomp$0$$.onGetting;this.finding=$options$jscomp$0$$.onFinding;this.found=$options$jscomp$0$$.onFound;this.validating=$options$jscomp$0$$.onValidating;
15
15
  this.saving=$options$jscomp$0$$.onSaving;this.creating=$options$jscomp$0$$.onCreating;this.created=$options$jscomp$0$$.onCreated;this.updating=$options$jscomp$0$$.onUpdating;this.updated=$options$jscomp$0$$.onUpdated;this.deleting=$options$jscomp$0$$.onDeleting;this.deleted=$options$jscomp$0$$.onDeleted;this.approveData=$options$jscomp$0$$.approveData;this.view=$options$jscomp$0$$.onView;this.onView=($user$$,$items$$,$next$$,$options$$)=>{let $self$$=this,$schema_paths$$=$model$$.schema.paths;underscore.has($schema_paths$$,
16
- "exfields")&&$items$$.forEach($item$$=>{$item$$.exfields||($item$$.exfields={})});async.parallel({_user_created:$callback$$=>{$items$$.filter($item$$=>$item$$.user_created).joinModel2(null,User,{where:{user_created:"email"},fields:{name_user_created:"name"}},()=>{$callback$$(null)})},_user_updated:$callback$$=>{$items$$.filter($item$$=>$item$$.user_updated).joinModel2(null,User,{where:{user_updated:"email"},fields:{name_user_updated:"name"}},()=>{$callback$$(null)})},_approve:$callback$$=>{async.map($items$$,
17
- ($item$$,$next$$)=>{setImmediate(()=>{Approve.find({id_ct:$item$$._id.toString()},{title:1,trang_thai:1,user_approved:1,user_approved_name:1,date_approved:1,user_denied:1,user_denied_name:1,date_denied:1}).lean().exec(async($e$$,$rs$$)=>{setImmediate(async()=>{$item$$.approve_data=$rs$$;await $item$$.approve_data.asyncJoinModel2($item$$.id_app,Participant,{where:{user_approved:"email"},fields:{user_approved_name:"name",signature_image:"signature_image"}});await $item$$.approve_data.asyncJoinModel2($item$$.id_app,
16
+ "exfields")&&$items$$.forEach($item$$=>{delete $item$$.__v;$item$$.exfields||($item$$.exfields={})});async.parallel({_user_created:$callback$$=>{$items$$.filter($item$$=>$item$$.user_created).joinModel2(null,User,{where:{user_created:"email"},fields:{name_user_created:"name"}},()=>{$callback$$(null)})},_user_updated:$callback$$=>{$items$$.filter($item$$=>$item$$.user_updated).joinModel2(null,User,{where:{user_updated:"email"},fields:{name_user_updated:"name"}},()=>{$callback$$(null)})},_approve:$callback$$=>
17
+ {async.map($items$$,($item$$,$next$$)=>{setImmediate(()=>{Approve.find({id_ct:$item$$._id.toString()},{title:1,trang_thai:1,user_approved:1,user_approved_name:1,date_approved:1,user_denied:1,user_denied_name:1,date_denied:1}).lean().exec(async($e$$,$rs$$)=>{setImmediate(async()=>{$item$$.approve_data=$rs$$;await $item$$.approve_data.asyncJoinModel2($item$$.id_app,Participant,{where:{user_approved:"email"},fields:{user_approved_name:"name",signature_image:"signature_image"}});await $item$$.approve_data.asyncJoinModel2($item$$.id_app,
18
18
  Participant,{where:{user_denied:"email"},fields:{user_denied_name:"name",signature_image:"signature_image"}});$next$$(null)})})})},()=>{$callback$$(null)})},transfer_ct:$callback$$=>{if(underscore.has($schema_paths$$,"id_ct_chuyen")&&$user$$.current_app_info&&$user$$.current_app_info.options&&$user$$.current_app_info.options.id_app_thue)async.map($items$$,($item$$,$next$$)=>{setImmediate(()=>{$model$$.findOne({id_app:$user$$.current_app_info.options.id_app_thue,id_ct_chuyen:$item$$._id.toString()},
19
19
  {_id:1}).lean().exec(async($e$$,$rs$$)=>{$rs$$&&($item$$.id_ct_nhan=$rs$$._id);$next$$(null)})})},()=>{$callback$$(null)});else return $callback$$()}},$e$jscomp$0$$=>{if($e$jscomp$0$$)return $next$$($e$jscomp$0$$);setImmediate(()=>{if($self$$.view)try{$self$$.view($user$$,$items$$,function($error$jscomp$0$$,$rs$jscomp$0$$){setImmediate(()=>{if($error$jscomp$0$$)return $next$$($error$jscomp$0$$);$self$$.dynamicView?$self$$.dynamicView($user$$,$rs$jscomp$0$$||$items$$,function($error$$,$rs$$){if($error$$)return $next$$($error$$);
20
20
  $next$$(null,$rs$$||$items$$)}):$next$$(null,$rs$jscomp$0$$||$items$$)})},$options$$)}catch($e$$){console.error("Error on view of",$name$$,$e$$),$next$$(null,$items$$)}else $self$$.dynamicView?$self$$.dynamicView($user$$,$items$$,function($error$$,$rs$$){if($error$$)return $next$$($error$$);$next$$(null,$rs$$||$items$$)}):$next$$(null,$items$$)})})};this.mapSql=$options$jscomp$0$$.mapSql;this.mapSql||(this.mapSql=function($data$$,$callback$$){$callback$$()});this.mapWeb=$options$jscomp$0$$.mapWeb;
@@ -72,10 +72,10 @@ $condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push({id_app:{$in:$i
72
72
  $condition$$.$nor&&0===$condition$$.$nor.length&&delete $condition$$.$nor;$id_sellers_query$$=null;if($req$$.query.count)$condition$$.$where?(console.log("phai loai bo $where trong condition"),$id_sellers_query$$=$model$$.count($condition$$,function($e$$,$data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})})):$id_sellers_query$$=$model$$.countDocuments($condition$$,function($e$$,
73
73
  $data$$){if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send({rows_number:$data$$})});else{let $field_not_right$$;try{$field_not_right$$=await permission.getFieldNotRight($req$$.user.current_id_app,$req$$.user.email,$ctrl$$.name)}catch($e$$){$field_not_right$$=[]}var $fields$$=$req$$.query.fields;let $gfields$$={};$fields$$&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=
74
74
  1)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").filter($f$$=>$f$$&&0>$field_not_right$$.indexOf($f$$)).forEach($f$$=>{"_id"!==$f$$&&($gfields$$[$f$$]=1)}));$field_not_right$$.forEach($f$$=>{$gfields$$[$f$$]=0});!$fields$$&&(($fields$$=$req$$.query.notfields)&&(underscore.isArray($fields$$)?$fields$$.forEach($f$$=>{$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)}):underscore.isObject($fields$$)?$gfields$$={...$gfields$$,...$fields$$}:$fields$$.split(",").forEach($f$$=>
75
- {$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0);$condition$$.$text&&($gfields$$||($gfields$$={}),$gfields$$.textScore={$meta:"textScore"});if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate)try{$id_sellers_query$$=$model$$.aggregate([{$match:$condition$$}]);$req$$.query.group&&($group_page$$=JSON.parse($req$$.query.group),$id_sellers_query$$.group($group_page$$));
76
- if($req$$.query.match){let $match$$=JSON.parse($req$$.query.match);$id_sellers_query$$.match($match$$)}if($req$$.query.project)$limit_project$$=JSON.parse($req$$.query.project),$id_sellers_query$$.project($limit_project$$);else if($gfields$$&&0<Object.keys($gfields$$).length)$limit_project$$=$gfields$$;else if($limit_project$$={_id:1},$group_page$$)for(let $key$$ in $group_page$$)$limit_project$$[$key$$]=1;$id_sellers_query$$.project($limit_project$$);if($req$$.query.aggregate){let $aggregate$$=JSON.parse($req$$.query.aggregate);
77
- $id_sellers_query$$.append($aggregate$$)}}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}else $id_sellers_query$$=$model$$.find($condition$$,$gfields$$);!$sort$$&&$gfields$$.textScore?$sort$$={textScore:{$meta:"textScore"}}:$sort$$&&($sort$$._id=1);$sort$$&&$id_sellers_query$$.sort($sort$$);var $group_page$$=$req$$.query.page,$limit_project$$=$req$$.query.limit;$limit_project$$&&($limit_project$$=Number($limit_project$$));$limit_project$$||($limit_project$$=!1!==
78
- $ctrl$$.require_id_app&&"right"!==$ctrl$$.name?20:1E5);$limit_project$$&&500<$limit_project$$&&"xlsx"!==$req$$.query.type_data&&!$req$$.query.print&&!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&($limit_project$$=500);$group_page$$?$id_sellers_query$$.skip((Number($group_page$$)-1)*$limit_project$$).limit($limit_project$$):$id_sellers_query$$.limit($limit_project$$);$id_sellers_query$$.lean&&($id_sellers_query$$=$id_sellers_query$$.lean());$id_sellers_query$$.exec(function($e$jscomp$0$$,$obj4view$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$,
75
+ {$f$$&&"_id"!==$f$$&&($gfields$$[$f$$]=0)})),$shareRoute$$||"public"===$req$$.user.email)&&($gfields$$.dataview_to=0,$gfields$$.dataview_to_users=0);$condition$$.$text&&($gfields$$||($gfields$$={}),$gfields$$.textScore={$meta:"textScore"});if($req$$.query.group||$req$$.query.project||$req$$.query.match||$req$$.query.aggregate)try{$id_sellers_query$$=$model$$.aggregate([{$match:$condition$$}]);if($req$$.query.group){var $group_page$$=JSON.parse($req$$.query.group);$id_sellers_query$$.group($group_page$$)}if($req$$.query.match){let $match$$=
76
+ JSON.parse($req$$.query.match);$id_sellers_query$$.match($match$$)}if($req$$.query.project){var $limit_project$$=JSON.parse($req$$.query.project);$id_sellers_query$$.project($limit_project$$)}else if($gfields$$&&0<Object.keys($gfields$$).length)$limit_project$$=$gfields$$;else if($limit_project$$={_id:1},$group_page$$)for(let $key$$ in $group_page$$)$limit_project$$[$key$$]=1;$id_sellers_query$$.project($limit_project$$);if($req$$.query.aggregate){let $aggregate$$=JSON.parse($req$$.query.aggregate);
77
+ $id_sellers_query$$.append($aggregate$$)}}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}else $id_sellers_query$$=$model$$.find($condition$$,$gfields$$);!$sort$$&&$gfields$$.textScore?$sort$$={textScore:{$meta:"textScore"}}:$sort$$&&($sort$$._id=1);$sort$$&&$id_sellers_query$$.sort($sort$$);"xlsx"!==$req$$.query.type_data&&($group_page$$=$req$$.query.page,($limit_project$$=$req$$.query.limit)&&($limit_project$$=Number($limit_project$$)),$limit_project$$||($limit_project$$=
78
+ !1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name?20:1E5),$limit_project$$&&500<$limit_project$$&&!$req$$.query.print&&!1!==$ctrl$$.require_id_app&&"right"!==$ctrl$$.name&&($limit_project$$=500),$group_page$$?$id_sellers_query$$.skip((Number($group_page$$)-1)*$limit_project$$).limit($limit_project$$):$id_sellers_query$$.limit($limit_project$$));$id_sellers_query$$.lean&&($id_sellers_query$$=$id_sellers_query$$.lean());$id_sellers_query$$.exec(function($e$jscomp$0$$,$obj4view$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$,
79
79
  $condition$$),$res$$.status(400).send({error:$e$jscomp$0$$.error||$e$jscomp$0$$.message||$e$jscomp$0$$});$obj4view$$||($obj4view$$=[]);async.parallel({found:function($callback$$){$ctrl$$.found?$ctrl$$.found($req$$.user,$condition$$,$obj4view$$,function($error$$,$items$$){setImmediate(()=>{$callback$$($error$$,$items$$)})}):$callback$$(null,$obj4view$$)},set_collection_name:function($callback$$){$obj4view$$.forEach($obj$$=>{$obj$$.collection_name||($obj$$.collection_name=$ctrl$$.collection_name)});
80
80
  $callback$$(null)}},function($error$jscomp$0$$,$rs$jscomp$0$$){setImmediate(()=>{if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});$obj4view$$=$rs$jscomp$0$$.found;async.parallel({e_view:function($callback$$){$ctrl$$.onView($req$$.user,$obj4view$$,($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return console.error("Erron on view:",$error$$),$callback$$($error$$);$callback$$(null,$viewValue$$)})},{req:$req$$,
81
81
  shareRoute:$shareRoute$$})}},async function($app$jscomp$1_dir_root_template_e$$,$_groupBy_func_string_rs$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$.message||$error$jscomp$0$$});if($req$$.query.type_data&&"xlsx"==$req$$.query.type_data){$app$jscomp$1_dir_root_template_e$$=(configs.paths||{}).templates;let $template_id$$,$excelTemplate$$;if($template_id$$=$req$$.query.id_template){if(!global.mongoose.Types.ObjectId.isValid($template_id$$))return $res$$.status(400).send({error:"M\u1eabu excel kh\u00f4ng t\u1ed3n t\u1ea1i"});
@@ -113,9 +113,9 @@ $condition$jscomp$0$$,function($e$$,$condition$$){if($e$$)return console.error($
113
113
  $e$$});$req$$.condition=$condition$$;$next$$()},{req:$req$$}):($req$$.condition=$condition$jscomp$1$$,$next$$())},function($req$$,$res$$,$next$$){permission.isAdmin($req$$.user.current_id_app,$req$$.user.email,function($e$$,$admin$$){setImmediate(()=>{if($e$$)return $res$$.status(403).send({error:$e$$});if(!$admin$$)return $res$$.status(403).send({error:"B\u1ea1n ph\u1ea3i c\u00f3 quy\u1ec1n admin \u0111\u1ec3 th\u1ef1c hi\u1ec7n t\u00ednh n\u0103ng n\u00e0y"});$next$$()})})},function($req$$,$res$$){let $condition$$=
114
114
  $req$$.condition;underscore.has($model$$.schema.paths,"ma_ct")&&$ctrl$$.options.isVoucher&&($condition$$.ma_ct=$ctrl$$.name.toUpperCase());let $query$$=$model$$.find($condition$$);!0===underscore.has($model$$.schema.paths,"ngay_ct")&&$query$$.sort({ngay_ct:1});$query$$.lean().exec(function($e$jscomp$1$$,$obj4view$$){setImmediate(()=>{if($e$jscomp$1$$)return console.error($e$jscomp$1$$),$e$jscomp$1$$.error?$res$$.status(400).send($e$jscomp$1$$):$res$$.status(400).send({error:$e$jscomp$1$$.message||
115
115
  $e$jscomp$1$$.error||$e$jscomp$1$$});setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"UPDATE FIELD:"+$field$$,data:{condition:JSON.stringify($condition$$)}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $tu_so$$=Number($req$$.query.tu_so);$tu_so$$||($tu_so$$=1);let $den_so$$=$req$$.query.den_so,$tien_to$$=$req$$.query.tien_to,$hau_to$$=$req$$.query.hau_to,$gia_tri$$;for(let $i$$=0;$i$$<$obj4view$$.length;$i$$++)$gia_tri$$=$tu_so$$+$i$$+"",
116
- $den_so$$&&($gia_tri$$="0000000000000000000".substring(0,$den_so$$.length-$gia_tri$$.length)+$gia_tri$$),$tien_to$$&&($gia_tri$$=$tien_to$$+$gia_tri$$),$hau_to$$&&($gia_tri$$+=$hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;async.map($obj4view$$,function($obj$$,$callback$$){setImmediate(()=>{$model$$.findOneAndUpdate({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$||!$rs$$)return $callback$$($e$jscomp$0$$);$ctrl$$.cacheData($obj$$);$ctrl$$.post?postData($obj$$,
117
- $ctrl$$,function($e$$){if($e$$)return console.error("error post data",$e$$),$callback$$($e$$);$callback$$(null,$rs$$)}):$callback$$(null,$rs$$)})})})},function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated",$rs$$);pushNotification($ctrl$$,$rs$$,"update",null,!0,{exclude_token:$req$$.query.access_token});
118
- $rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=$o$$.toObject());return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)})},{req:$req$$})})})})})})};
116
+ $den_so$$&&($gia_tri$$="0000000000000000000".substring(0,$den_so$$.length-$gia_tri$$.length)+$gia_tri$$),$tien_to$$&&($gia_tri$$=$tien_to$$+$gia_tri$$),$hau_to$$&&($gia_tri$$+=$hau_to$$),$obj4view$$[$i$$][$field$$]=$gia_tri$$;async.map($obj4view$$,function($obj$$,$callback$$){setImmediate(()=>{delete $obj$$.__v;$model$$.findOneAndUpdate({_id:$obj$$._id},$obj$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$||!$rs$$)return $callback$$($e$jscomp$0$$);$ctrl$$.cacheData($obj$$);$ctrl$$.post?
117
+ postData($obj$$,$ctrl$$,function($e$$){if($e$$)return console.error("error post data",$e$$),$callback$$($e$$);$callback$$(null,$rs$$)}):$callback$$(null,$rs$$)})})})},function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});$ctrl$$.emit("saved",$rs$$);$ctrl$$.emit("updated",$rs$$);pushNotification($ctrl$$,$rs$$,"update",null,!0,
118
+ {exclude_token:$req$$.query.access_token});$rs$$=$rs$$.map($o$$=>{$o$$.toObject&&($o$$=$o$$.toObject());return $o$$});$ctrl$$.onView($req$$.user,$rs$$,function($e$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.send($rs$$)})},{req:$req$$})})})})})})};
119
119
  const getParameters=($id_app$$,$rps_rpt_ids$$,$callback$$)=>{let $parameters$$=$rps_rpt_ids$$.filter($r$$=>$r$$.parameters).map($r$$=>$r$$.parameters).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);0<$parameters$$.length?$callback$$(null,$parameters$$):($rps_rpt_ids$$=underscore.pluck($rps_rpt_ids$$,"_id"),Parameter.find({id_app:$id_app$$,id_rpt:{$in:$rps_rpt_ids$$}}).lean().exec(function($e$$,$parameters$$){setImmediate(()=>{if($e$$)return $callback$$($e$$);$callback$$(null,$parameters$$)})}))},prepareParameters=
120
120
  function($ctrl$$,$parameters$$,$app$$,$obj$$,$callback$jscomp$0$$){async.map($parameters$$,function($p$$,$callback$$){setImmediate(()=>{(async()=>{if("W"===$p$$.type||"EN"===$p$$.type)try{$app$$[$p$$.name]="EN"===$p$$.type?numberToWord($obj$$[$p$$.value],{lang:"en"}):numberToWord($obj$$[$p$$.value])}catch($e$$){console.error($e$$),$app$$[$p$$.name]=$e$$.message}else if("Q"===$p$$.type)try{var $query$jscomp$8_sandbox$$=await evalute("return {"+$p$$.value+"}",{});if($query$jscomp$8_sandbox$$.collection&&
121
121
  $query$jscomp$8_sandbox$$.field){"dmkh"==$query$jscomp$8_sandbox$$.collection&&($query$jscomp$8_sandbox$$.collection="customer");"dmtk"==$query$jscomp$8_sandbox$$.collection&&($query$jscomp$8_sandbox$$.collection="account");var $condition$$=$query$jscomp$8_sandbox$$.condition;if($condition$$){$condition$$=JSON.stringify($condition$$);for(let $m$$ in $obj$$)$condition$$=$condition$$.replace(new RegExp("m."+$m$$,"g"),$obj$$[$m$$]);$condition$$=JSON.parse($condition$$)}else $condition$$={};$app$$[$p$$.name]=
@@ -239,21 +239,21 @@ $key$$," is not exist. please check unique of controller")});!0!==underscore.isE
239
239
  else $callback$$($msgError$$)}else checkReference($model$$,$obj$$,function($error$$){setImmediate(()=>{if($error$$)return console.error("Keys arise data",$c1$$,$c2$$,$error$$),$callback$$({error:ERR_KEY_ARISE+($error$$.error||$error$$.message||$error$$),code:ERR_KEY_ARISE_CODE});$callback$$(null,$obj$$)})},$unique$$)})}):$callback$$(null,$obj$$)})},function($obj$$,$callback$$){let $keys$$=underscore.keys($model$$.referenceKeys).filter($key$$=>"_id"!==$key$$);$unique$$&&($keys$$=$keys$$.filter($key$$=>
240
240
  0>$unique$$.indexOf($key$$).length));if(0===$keys$$.length)return $callback$$(null,$obj$$);checkReference($model$$,$obj$$,function($msgError$$){setImmediate(()=>{if($msgError$$)if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)},$current_obj$$);else $callback$$({error:ERR_ARISE+($msgError$$.error||$msgError$$.message||$msgError$$),code:ERR_ARISE_CODE});else $callback$$(null,$obj$$)})},
241
241
  $keys$$)},function($obj$jscomp$1$$,$callback$$){$ctrl$$.validating||($ctrl$$.validating=($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)});$ctrl$$.validating($user$jscomp$0$$,$obj$jscomp$1$$,($error$$,$obj$jscomp$0$$)=>{if($error$$)return $callback$$($error$$);setImmediate(function(){$data$jscomp$1$$.date_updated=new Date;$data$jscomp$1$$.user_updated=$user$jscomp$0$$.email;delete $data$jscomp$1$$.__v;$ctrl$$.options.onUpdateExtending||($ctrl$$.options.onUpdateExtending=function($obj$$,$data$$,$action$$,
242
- $fn$$){$fn$$()});$ctrl$$.options.onUpdateExtending($obj$jscomp$0$$,$data$jscomp$1$$,$action$jscomp$0$$,function(){underscore.has($schema_paths$$,"exfields")&&$data$jscomp$1$$.exfields&&($obj$jscomp$0$$.exfields=$data$jscomp$1$$.exfields);for(let $f$$ in $data$jscomp$1$$)underscore.has($schema_paths$$,$f$$)&&($obj$jscomp$0$$.set($f$$,$data$jscomp$1$$[$f$$]),"exfields"!==$f$$||$obj$jscomp$0$$.exfields||($obj$jscomp$0$$.exfields={}));validate($obj$jscomp$0$$,function($msgError$$){setImmediate(()=>{if($msgError$$)if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,
243
- $obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)},$current_obj$$);else $callback$$($msgError$$);else $callback$$(null,$obj$jscomp$0$$)})})})})})},function($obj$$,$callback$$){setImmediate(async()=>{$obj$$.ngay_ct&&($obj$$.ngay_ct=moment($obj$$.ngay_ct).toDate());for(var $$condition_k$$ in $ctrl$$.keyValues)$obj$$[$$condition_k$$]=$ctrl$$.keyValues[$$condition_k$$];Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$$[$model_path$$]&&underscore.isArray($obj$$[$model_path$$])).forEach($model_path$$=>
244
- {$model$$.schema.paths[$model_path$$].schema&&$model$$.schema.paths[$model_path$$].schema.paths&&Object.keys($model$$.schema.paths[$model_path$$].schema.paths).filter($path$$=>"line"!==$path$$&&"_id"!==$path$$&&"__v"!==$path$$&&0<=fields_sync_master_detail.indexOf($path$$)).forEach($path$$=>{$obj$$[$path$$]&&$obj$$[$model_path$$].filter($detail$$=>!$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$$[$path$$]})})});await createIdRef($model$$,$obj$$);$ctrl$$.saving&&await $ctrl$$.saving($user$jscomp$0$$,
245
- $obj$$);$ctrl$$.emit("saving",$obj$$);let $obj_created$$,$error$jscomp$0$$;$data$jscomp$1$$.$condition&&($$condition_k$$=$data$jscomp$1$$.$condition,$$condition_k$$._id=$obj$$._id,await $model$$.findOne($$condition_k$$)||($error$jscomp$0$$=ERR_CAN_NOT_UPDATE),delete $data$jscomp$1$$.$condition);if(!$error$jscomp$0$$)try{$obj_created$$=await $obj$$.save()}catch($e$$){$error$jscomp$0$$=$e$$}if($error$jscomp$0$$){let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);
246
- 0==$msgErrors$$.length&&($msgErrors$$=$error$jscomp$0$$.message);$msgErrors$$||($msgErrors$$=JSON.stringify($error$jscomp$0$$));if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,$obj$$,$e$$=>{$e$$&&console.error("onErrorUpdating",$e$$);$callback$$({error:$msgErrors$$,code:ERR_CAN_NOT_UPDATE_CODE})},$current_obj$$);else $callback$$({error:$msgErrors$$,code:ERR_CAN_NOT_UPDATE_CODE})}else $req$$&&$req$$.header&&setImmediate(()=>{log.create({id_app:$user$jscomp$0$$.current_id_app,
247
- id_func:$ctrl$$.name,action:"UPDATE",data:{oldData:$current_obj$$,newData:$data$jscomp$1$$,id:$obj$$._id.toString()}},$user$jscomp$0$$.email,$req$$.header("user-agent"),$req$$)}),postData($obj_created$$,$ctrl$$,function($msgError$$){$msgError$$?setImmediate(()=>{$current_obj$$&&$model$$.findByIdAndUpdate($current_obj$$._id,{$set:$current_obj$$},function($err$$,$restore_data$$){if($err$$||!$restore_data$$)return console.error("can't restore voucher",$err$$||": don't find voucher");console.log("restored data of voucher. posting...");
248
- $model$$.findById($current_obj$$._id,($e$jscomp$0$$,$_d$$)=>{if(!$_d$$)return console.error("Don't find voucher",$current_obj$$._id);postData($_d$$,$ctrl$$,function($e$$){if($e$$)return console.error("can't repost voucher",$e$$);console.log("reposted voucher",$_d$$._id)})})});if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)},$current_obj$$);else $callback$$($msgError$$)}):setImmediate(()=>
249
- {$ctrl$$.emit("saved",$obj_created$$);$ctrl$$.emit("updated",$obj_created$$);$obj_created$$=$obj_created$$.toObject();runWebhooks($ctrl$$,$obj_created$$,"UPDATE",$voucher_options$$);$req$$&&pushNotification($ctrl$$,$obj_created$$,"update",$current_obj$$,null,{exclude_token:$req$$.query.access_token});$ctrl$$.cacheData($obj_created$$);if($req$$&&!1!==$req$$.query.return_data)$ctrl$$.onView($user$jscomp$0$$,[$obj_created$$],function($error$$,$viewValue$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);
250
- $callback$$(null,$viewValue$$[0])})},{req:$req$$});else $callback$$(null,{_id:$obj_created$$._id})})})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$jscomp$0$$.current_app_info,$user$jscomp$0$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$jscomp$0$$,$callback$$){void 0!=$obj$jscomp$0$$.trang_thai&&setImmediate(async()=>{Approve.findOne({id_ct:$obj$jscomp$0$$._id.toString(),"update_after_approve.data.trang_thai":$obj$jscomp$0$$.trang_thai.toString()}).lean().exec(($e$$,$rs$$)=>
251
- {!$rs$$||$rs$$.user_approved||$rs$$.user_denied||($rs$$.user_approved=$req$$.user.email,$rs$$.user_approved_name=$req$$.user.name,$rs$$.date_approved=new Date,Approve.updateOne({_id:$rs$$._id},$rs$$).then(()=>{Approve.sendNotifyApproved($rs$$,$req$$.query.access_token)}))})});setImmediate(async()=>{(await permission.getFieldNotRight($obj$jscomp$0$$.id_app,$user$jscomp$0$$.email,$ctrl$$.name)).forEach($f$$=>{delete $obj$jscomp$0$$[$f$$]});$obj$jscomp$0$$.collection_name=$ctrl$$.collection_name;$ctrl$$.updated?
252
- $ctrl$$.updated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$jscomp$0$$,$obj$$){if($error$jscomp$0$$)return console.error("error when saved",$error$jscomp$0$$),$callback$$($error$jscomp$0$$);$ctrl$$.dynamicUpdated?$ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$$)}):$callback$$(null,$obj$$)},$current_obj$$):$ctrl$$.dynamicUpdated?$ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$$){if($error$$)return $callback$$($error$$);
253
- $callback$$(null,$obj$jscomp$0$$)}):$callback$$(null,$obj$jscomp$0$$)})}],($e$jscomp$164_name_cached$$,$rs$$)=>{$e$jscomp$164_name_cached$$?(console.error($e$jscomp$164_name_cached$$),$callback$jscomp$1$$($e$jscomp$164_name_cached$$)):($e$jscomp$164_name_cached$$=$model$$.collection.name,$user$jscomp$0$$.current_id_app&&($e$jscomp$164_name_cached$$+=$user$jscomp$0$$.current_id_app),delete global.cacheDatas[$e$jscomp$164_name_cached$$],$callback$jscomp$1$$(null,$rs$$))})}catch($e$$){console.error($e$$),
254
- $callback$jscomp$1$$($e$$)}};
255
- controller.prototype.update=function(){let $ctrl$$=this,$name$$=this.name;this.router.route(this.route_name+"/:id").put(function($req$$,$res$$){let $session$$=$req$$.session;if(!0===$session$$["updating_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["updating_"+$name$$]=!0;let $body$$=$req$$.body;$req$$.files&&underscore.extend($body$$,$req$$.files);let $data$$;try{$data$$=bodyToJson($body$$)}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||
256
- $e$$})}update($req$$.user,$ctrl$$,$req$$.params.id,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{$session$$["updating_"+$name$$]=!1;if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});!1===$req$$.query.return_data?$res$$.send({_id:$rs$$._id.toString()}):$res$$.send($rs$$)})},null,$req$$)})};
242
+ $fn$$){$fn$$()});$ctrl$$.options.onUpdateExtending($obj$jscomp$0$$,$data$jscomp$1$$,$action$jscomp$0$$,function(){underscore.has($schema_paths$$,"exfields")&&$data$jscomp$1$$.exfields&&($obj$jscomp$0$$.exfields=$data$jscomp$1$$.exfields);delete $data$jscomp$1$$.__v;for(let $f$$ in $data$jscomp$1$$)underscore.has($schema_paths$$,$f$$)&&($obj$jscomp$0$$.set($f$$,$data$jscomp$1$$[$f$$]),"exfields"!==$f$$||$obj$jscomp$0$$.exfields||($obj$jscomp$0$$.exfields={}));validate($obj$jscomp$0$$,function($msgError$$){setImmediate(()=>
243
+ {if($msgError$$)if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)},$current_obj$$);else $callback$$($msgError$$);else $callback$$(null,$obj$jscomp$0$$)})})})})})},function($obj$$,$callback$$){setImmediate(async()=>{$obj$$.ngay_ct&&($obj$$.ngay_ct=moment($obj$$.ngay_ct).toDate());for(var $$condition_k$$ in $ctrl$$.keyValues)$obj$$[$$condition_k$$]=$ctrl$$.keyValues[$$condition_k$$];
244
+ Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$$[$model_path$$]&&underscore.isArray($obj$$[$model_path$$])).forEach($model_path$$=>{$model$$.schema.paths[$model_path$$].schema&&$model$$.schema.paths[$model_path$$].schema.paths&&Object.keys($model$$.schema.paths[$model_path$$].schema.paths).filter($path$$=>"line"!==$path$$&&"_id"!==$path$$&&"__v"!==$path$$&&0<=fields_sync_master_detail.indexOf($path$$)).forEach($path$$=>{$obj$$[$path$$]&&$obj$$[$model_path$$].filter($detail$$=>!$detail$$[$path$$]).forEach($detail$$=>
245
+ {$detail$$[$path$$]=$obj$$[$path$$]})})});await createIdRef($model$$,$obj$$);$ctrl$$.saving&&await $ctrl$$.saving($user$jscomp$0$$,$obj$$);$ctrl$$.emit("saving",$obj$$);let $obj_created$$,$error$jscomp$0$$;$data$jscomp$1$$.$condition&&($$condition_k$$=$data$jscomp$1$$.$condition,$$condition_k$$._id=$obj$$._id,await $model$$.findOne($$condition_k$$)||($error$jscomp$0$$=ERR_CAN_NOT_UPDATE),delete $data$jscomp$1$$.$condition);if(!$error$jscomp$0$$)try{delete $obj$$.__v,$obj_created$$=await $obj$$.save()}catch($e$$){$error$jscomp$0$$=
246
+ $e$$}if($error$jscomp$0$$){let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);0==$msgErrors$$.length&&($msgErrors$$=$error$jscomp$0$$.message);$msgErrors$$||($msgErrors$$=JSON.stringify($error$jscomp$0$$));if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,$obj$$,$e$$=>{$e$$&&console.error("onErrorUpdating",$e$$);$callback$$({error:$msgErrors$$,code:ERR_CAN_NOT_UPDATE_CODE})},$current_obj$$);else $callback$$({error:$msgErrors$$,
247
+ code:ERR_CAN_NOT_UPDATE_CODE})}else $req$$&&$req$$.header&&setImmediate(()=>{log.create({id_app:$user$jscomp$0$$.current_id_app,id_func:$ctrl$$.name,action:"UPDATE",data:{oldData:$current_obj$$,newData:$data$jscomp$1$$,id:$obj$$._id.toString()}},$user$jscomp$0$$.email,$req$$.header("user-agent"),$req$$)}),postData($obj_created$$,$ctrl$$,function($msgError$$){$msgError$$?setImmediate(()=>{$current_obj$$&&$model$$.findByIdAndUpdate($current_obj$$._id,{$set:$current_obj$$},function($err$$,$restore_data$$){if($err$$||
248
+ !$restore_data$$)return console.error("can't restore voucher",$err$$||": don't find voucher");console.log("restored data of voucher. posting...");$model$$.findById($current_obj$$._id,($e$jscomp$0$$,$_d$$)=>{if(!$_d$$)return console.error("Don't find voucher",$current_obj$$._id);postData($_d$$,$ctrl$$,function($e$$){if($e$$)return console.error("can't repost voucher",$e$$);console.log("reposted voucher",$_d$$._id)})})});if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$jscomp$0$$,
249
+ $obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)},$current_obj$$);else $callback$$($msgError$$)}):setImmediate(()=>{$ctrl$$.emit("saved",$obj_created$$);$ctrl$$.emit("updated",$obj_created$$);$obj_created$$=$obj_created$$.toObject();runWebhooks($ctrl$$,$obj_created$$,"UPDATE",$voucher_options$$);$req$$&&pushNotification($ctrl$$,$obj_created$$,"update",$current_obj$$,null,{exclude_token:$req$$.query.access_token});$ctrl$$.cacheData($obj_created$$);if($req$$&&!1!==$req$$.query.return_data)$ctrl$$.onView($user$jscomp$0$$,
250
+ [$obj_created$$],function($error$$,$viewValue$$){setImmediate(()=>{if($error$$)return $callback$$($error$$);$callback$$(null,$viewValue$$[0])})},{req:$req$$});else $callback$$(null,{_id:$obj_created$$._id})})})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$jscomp$0$$.current_app_info,$user$jscomp$0$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$jscomp$0$$,$callback$$){void 0!=$obj$jscomp$0$$.trang_thai&&setImmediate(async()=>{Approve.findOne({id_ct:$obj$jscomp$0$$._id.toString(),
251
+ "update_after_approve.data.trang_thai":$obj$jscomp$0$$.trang_thai.toString()}).lean().exec(($e$$,$rs$$)=>{!$rs$$||$rs$$.user_approved||$rs$$.user_denied||($rs$$.user_approved=$req$$.user.email,$rs$$.user_approved_name=$req$$.user.name,$rs$$.date_approved=new Date,Approve.updateOne({_id:$rs$$._id},$rs$$).then(()=>{Approve.sendNotifyApproved($rs$$,$req$$.query.access_token)}))})});setImmediate(async()=>{(await permission.getFieldNotRight($obj$jscomp$0$$.id_app,$user$jscomp$0$$.email,$ctrl$$.name)).forEach($f$$=>
252
+ {delete $obj$jscomp$0$$[$f$$]});$obj$jscomp$0$$.collection_name=$ctrl$$.collection_name;$ctrl$$.updated?$ctrl$$.updated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$jscomp$0$$,$obj$$){if($error$jscomp$0$$)return console.error("error when saved",$error$jscomp$0$$),$callback$$($error$jscomp$0$$);$ctrl$$.dynamicUpdated?$ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$$)}):$callback$$(null,$obj$$)},$current_obj$$):$ctrl$$.dynamicUpdated?
253
+ $ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$jscomp$0$$)}):$callback$$(null,$obj$jscomp$0$$)})}],($e$jscomp$164_name_cached$$,$rs$$)=>{$e$jscomp$164_name_cached$$?(console.error($e$jscomp$164_name_cached$$),$callback$jscomp$1$$($e$jscomp$164_name_cached$$)):($e$jscomp$164_name_cached$$=$model$$.collection.name,$user$jscomp$0$$.current_id_app&&($e$jscomp$164_name_cached$$+=$user$jscomp$0$$.current_id_app),
254
+ delete global.cacheDatas[$e$jscomp$164_name_cached$$],$callback$jscomp$1$$(null,$rs$$))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};
255
+ controller.prototype.update=function(){let $ctrl$$=this,$name$$=this.name;this.router.route(this.route_name+"/:id").put(function($req$$,$res$$){let $session$$=$req$$.session;if(!0===$session$$["updating_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["updating_"+$name$$]=!0;let $body$$=$req$$.body;$req$$.files&&underscore.extend($body$$,$req$$.files);let $data$$;try{$data$$=bodyToJson($body$$)}catch($e$$){return $res$$.status(400).send({error:$e$$.message||
256
+ $e$$.error||$e$$})}update($req$$.user,$ctrl$$,$req$$.params.id,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{$session$$["updating_"+$name$$]=!1;if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});!1===$req$$.query.return_data?$res$$.send({_id:$rs$$._id.toString()}):$res$$.send($rs$$)})},null,$req$$)})};
257
257
  function checkReference($model$jscomp$0$$,$obj$$,$fn$$,$keys$$){$model$jscomp$0$$.referenceKeys?($keys$$||($keys$$=underscore.keys($model$jscomp$0$$.referenceKeys)),async.map($keys$$,function($key$$,$callback$$){setImmediate(()=>{let $ref$$=$model$jscomp$0$$.referenceKeys[$key$$];if(!$ref$$)return $callback$$();let $value$$=$obj$$[$key$$];"_id"===$key$$&&($value$$=$value$$.toString());if(void 0==$value$$||null==$value$$||""==$value$$)return $callback$$();async.map($ref$$,function($r$$,$cb$$){setImmediate(()=>
258
258
  {let $model$$=mongoose.models[$r$$.model];if($model$$){let $query$$={id_app:$obj$$.id_app};var $_w_k$$=$r$$.key;$_w_k$$&&($query$$[$_w_k$$]=$value$$);$r$$.where&&(underscore.isObject($r$$.where)&&($query$$=Object.assign($query$$,$r$$.where)),underscore.isFunction($r$$.where)&&($_w_k$$=$r$$.where($obj$$),$query$$=Object.assign($query$$,$_w_k$$)));$model$$.find($query$$).limit(1).lean().exec(function($error$$,$o$$){setImmediate(()=>{if($error$$)return $cb$$($error$$);if($o$$&&0<$o$$.length){let $msgError$$;
259
259
  $msgError$$=$r$$.error?(new Function("obj","return `"+$r$$.error.replace("{{VALUE}}",$value$$)+"`"))($obj$$):ERR_DATA_GENERATED;return $cb$$({error:$msgError$$,code:ERR_DATA_GENERATED_CODE})}$cb$$()})})}else $cb$$()})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$()})})},$error$$=>{$fn$$($error$$)})):$fn$$()}
@@ -1,4 +1,5 @@
1
- 'use strict';const assperiodSchema=new Schema({id_app:String,creator:{type:String},id:{type:String},ten_ky_han:{type:String},id_product:{type:String},ten_san_pham:{type:String},product_token:{type:String,lowercase:!0},gia:{type:Number},lai_suat_cam_ket:{type:Number},lai_suat_truoc_han:{type:Number},ky_han:{type:Number},ky_tinh_lai:{type:Number},chia_loi_nhuan:Boolean,loi_nhuan_duoc_chia:Number,ngay_chia_loi_nhuan:Date,tong_so_token:{type:Number},da_dau_tu:{type:Number},cho_phep_rut_von:{type:Boolean},
2
- tg_xu_ly_rut_von:{type:Number,default:0},cho_phep_chuyen_nhuong:{type:Boolean},hoat_dong:{type:Boolean},denom:{type:String},co_phan:Boolean,goi_dau_tu:Boolean,ngay_phat_hanh:Date,id_rpt:String,trang_thai:String,visible_to:{type:Number,default:0},visible_to_users:[String],exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});assperiodSchema.index({id_app:1});
3
- assperiodSchema.index({creator:1});assperiodSchema.index({id:1});assperiodSchema.index({ten_ky_han:1});assperiodSchema.index({id_product:1});assperiodSchema.index({product_token:1});assperiodSchema.index({visible_to:1});assperiodSchema.index({visible_to_users:1});assperiodSchema.index({ten_san_pham:1});assperiodSchema.index({co_phan:1});assperiodSchema.index({ngay_phat_hanh:-1});assperiodSchema.index({cho_phep_rut_von:1});assperiodSchema.index({cho_phep_chuyen_nhuong:1});assperiodSchema.index({hoat_dong:1});
4
- assperiodSchema.index({denom:1});assperiodSchema.index({trang_thai:1});assperiodSchema.index({status:1});assperiodSchema.index({user_created:1});assperiodSchema.index({creator:"text",ten_san_pham:"text",ten_ky_han:"text",denom:"text"},{name:"assperiod_index2"});const model=mongoose.models.assperiod||mongoose.model("assperiod",assperiodSchema);model.on("index",async function($err$$){$err$$?console.error("AssPeriod index error",$err$$):console.info("AssPeriod indexing complete")});module.exports=model;
1
+ 'use strict';const assperiodSchema=new Schema({id_app:String,creator:{type:String},id:{type:String},ten_ky_han:{type:String},id_product:{type:String},ten_san_pham:{type:String},product_token:{type:String,lowercase:!0},gia:{type:Number},lai_suat_cam_ket:{type:Number},lai_suat_truoc_han:{type:Number},ky_han:{type:Number},ky_tinh_lai:{type:Number},chia_loi_nhuan:Boolean,loi_nhuan_duoc_chia:Number,ngay_chia_loi_nhuan:Date,lai_suat_thoi_gian_con_lai:Number,tong_so_token:{type:Number},da_dau_tu:{type:Number},
2
+ cho_phep_rut_von:{type:Boolean},tg_xu_ly_rut_von:{type:Number,default:0},cho_phep_chuyen_nhuong:{type:Boolean},hoat_dong:{type:Boolean},denom:{type:String},co_phan:Boolean,goi_dau_tu:Boolean,ngay_phat_hanh:Date,id_rpt:String,lai_suat_tang_them_so_huu_token:Number,token_so_huu:String,so_luong_so_huu:Number,so_ngay_dau_tu_toi_thieu:Number,tru_lai_da_tra:Boolean,trang_thai:String,visible_to:{type:Number,default:0},visible_to_users:[String],exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},
3
+ date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});assperiodSchema.index({id_app:1});assperiodSchema.index({creator:1});assperiodSchema.index({id:1});assperiodSchema.index({ten_ky_han:1});assperiodSchema.index({id_product:1});assperiodSchema.index({product_token:1});assperiodSchema.index({visible_to:1});assperiodSchema.index({visible_to_users:1});assperiodSchema.index({ten_san_pham:1});assperiodSchema.index({co_phan:1});
4
+ assperiodSchema.index({ngay_phat_hanh:-1});assperiodSchema.index({cho_phep_rut_von:1});assperiodSchema.index({cho_phep_chuyen_nhuong:1});assperiodSchema.index({hoat_dong:1});assperiodSchema.index({denom:1});assperiodSchema.index({trang_thai:1});assperiodSchema.index({status:1});assperiodSchema.index({user_created:1});assperiodSchema.index({creator:"text",ten_san_pham:"text",ten_ky_han:"text",denom:"text"},{name:"assperiod_index2"});
5
+ const model=mongoose.models.assperiod||mongoose.model("assperiod",assperiodSchema);model.on("index",async function($err$$){$err$$?console.error("AssPeriod index error",$err$$):console.info("AssPeriod indexing complete")});module.exports=model;
@@ -1,5 +1,5 @@
1
1
  'use strict';const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},tk_co:{type:String,required:!0,uppercase:!0,maxlength:32},ma_kh_no:{type:String,uppercase:!0,default:"",maxlength:32},ma_kh_co:{type:String,uppercase:!0,default:"",maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,
2
- uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},id_kbbtpb:{type:String,maxlength:1024},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk,tk_co:validAccount.existsTk,ma_kh_no:validator.existsKh,ma_kh_co:validator.existsKh};
2
+ uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,id_kbbtpb:{type:String,maxlength:1024},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk,tk_co:validAccount.existsTk,ma_kh_no:validator.existsKh,ma_kh_co:validator.existsKh};
3
3
  const ppbSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},kc_dvcs:{type:Boolean,default:!1},ma_ct:{type:String,default:"ppb",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},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,
4
4
  required:!0,min:0,default:1},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},ma_kho:String,ten_kho:String,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,default:0},visible_to_users:[String],details:{type:[detailSchema]}});
5
5
  ppbSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook};ppbSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});ppbSchema.index({dien_giai:"text",so_ct:"text"});ppbSchema.index({ma_ct:1});ppbSchema.index({user_created:1,date_created:-1});ppbSchema.index({date_updated:-1});ppbSchema.index({status:1});ppbSchema.index({user_created:1,visible_to:1,visible_to_users:1});ppbSchema.index({trang_thai:1});
@@ -7,27 +7,27 @@ ma_ct:"ASSINVESTMENT",id_ct:$investment$$._id.toString(),ngay_ct:$investment$$.n
7
7
  $intro$$.be_introduced_by&&$usergroup$$.ty_le_hoa_hong_pt){let $hoa_hong$$=Math.round($usergroup$$.ty_le_hoa_hong_pt*$investment$$.gia*$investment$$.so_luong/100),$k$$=await asskey.findOne({id_app:$investment$$.id_app,username:$usergroup$$.phu_trach});if($k$$){var $body$jscomp$0$$=`B\u1ea1n nh\u1eadn \u0111\u01b0\u1ee3c ${$hoa_hong$$} ${$tang_gioi_thieu_denom$$} t\u1eeb giao d\u1ecbch \u0111\u1ea7u t\u01b0 c\u1ee7a m\u00e3 gi\u1edbi thi\u1ec7u ${$intro$$.introduce_code} cho ng\u01b0\u1eddi qu\u1ea3n l\u00fd nh\u00f3m`;
8
8
  await spend($appInfo$$._id,$appInfo$$.wallet_token,$appInfo$$.wallet_address,$k$$.address,{amount:$hoa_hong$$,denom:$tang_gioi_thieu_denom$$,memo:"Hoa h\u1ed3ng cho ng\u01b0\u1eddi qu\u1ea3n l\u00fd nh\u00f3m"});await introducebonus.create({id_app:$appInfo$$._id,introduce_code:$intro$$.introduce_code,ma_ct:"ASSINVESTMENT",id_ct:$investment$$._id.toString(),ngay_ct:$investment$$.ngay_phat_hanh,type:"3",user_received:$usergroup$$.phu_trach,amount:$hoa_hong$$,unit:$tang_gioi_thieu_denom$$,description:"Hoa h\u1ed3ng cho ng\u01b0\u1eddi qu\u1ea3n l\u00fd nh\u00f3m"});
9
9
  global.createNotification("SYSTEM",$usergroup$$.phu_trach,"Hoa h\u1ed3ng cho ng\u01b0\u1eddi qu\u1ea3n l\u00fd nh\u00f3m",$body$jscomp$0$$,$e$$=>{$e$$&&console.error("Error create notification",$e$$)},{introduce_code:$intro$$.introduce_code,be_introduced:$investment$$.user_created,investment:$investment$$._id},!0)}}}}}}else console.log("user nay khong co nguoi gioi thieu",$investment$$.user_created)}catch($e$$){console.error("Khong the tinh hoa hong cho nguoi gioi thieu",$e$$)}};
10
- module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assinvestment",{sort:{date_created:-1},notNeedRight:!0,requireOtp:$data$$=>"0"==$data$$.trang_thai||"2"==$data$$.trang_thai||"7"==$data$$.trang_thai?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:($user$$,$items$$,$next$$)=>{async.map($items$$,async $item$$=>{try{if("7"!=$item$$.trang_thai){let $ivs$$=await bcQuery("investment/"+$item$$.id);$item$$.da_dao_han=$ivs$$.Investment.daDaoHan;
11
- $item$$.token=$ivs$$.Investment.token;$item$$.ngay_dao_han=Number($ivs$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs$$.Investment.ngayDaoHan)):null;$item$$.ngay_phat_hanh=new Date(1E3*Number($ivs$$.Investment.ngayPhatHanh));$item$$.id_product=$ivs$$.Investment.idProduct;$item$$.product_token=$ivs$$.Investment.productToken;$item$$.gia=Number($ivs$$.Investment.gia);$item$$.so_luong=Number($ivs$$.Investment.soLuong);$item$$.tong_gia_tri=$item$$.gia*$item$$.so_luong;$item$$.lai_suat_cam_ket=Number($ivs$$.Investment.laiSuatCamKet);
12
- $item$$.lai_suat_truoc_han=Number($ivs$$.Investment.laiSuatTruocHan);$item$$.ky_han=Number($ivs$$.Investment.kyHan);$item$$.cho_phep_rut_von=$ivs$$.Investment.choPhepRutVon;$item$$.cho_phep_chuyen_nhuong=$ivs$$.Investment.choPhepChuyenNhuong;$item$$.denom=$ivs$$.Investment.denom;$item$$.da_dao_han=$ivs$$.Investment.daDaoHan;Number($ivs$$.Investment.ngayTinhLaiKyTruoc)&&($item$$.ngay_tinh_lai_ky_truoc=new Date(1E3*Number($ivs$$.Investment.ngayTinhLaiKyTruoc)));Number($ivs$$.Investment.ngayTinhLaiKyTiepTheo)&&
13
- ($item$$.ngay_tinh_lai_ky_tiep_theo=new Date(1E3*Number($ivs$$.Investment.ngayTinhLaiKyTiepTheo)));$item$$.trang_thai=$item$$.da_dao_han?"5":"1";$item$$.tg_xu_ly_rut_von=Number($ivs$$.Investment.tgXuLyRutVon);$item$$.co_phan=$ivs$$.Investment.coPhan;$item$$.lai_du_tinh=Math.round($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han);$item$$.tong_gia_tri_dao_han=$item$$.tong_gia_tri+$item$$.lai_du_tinh;void 0!=$item$$.id_product&&null!=$item$$.id_product&&await [$item$$].asyncJoinModel2($user$$.current_id_app,
14
- assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham",{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]});void 0!=$item$$.id_period&&null!=$item$$.id_period&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:["ten_ky_han","id_rpt","ky_tinh_lai","goi_dau_tu"]});let $balance$$=await bcQuery(`cosmos/bank/v1beta1/balances/${$ivs$$.Investment.creator}/by_denom?denom=${$ivs$$.Investment.token}`);
15
- $item$$.con_lai=Number($balance$$.balance.amount);$item$$.da_ban=$item$$.so_luong-$item$$.con_lai}else void 0!=$item$$.id_period&&null!=$item$$.id_period&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assperiod,{where:{id_period:"id"},fields:"ten_ky_han ky_han id_product gia lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von cho_phep_chuyen_nhuong denom tg_xu_ly_rut_von co_phan id_rpt ky_tinh_lai goi_dau_tu".split(" ")}),void 0!=$item$$.id_product&&null!=$item$$.id_product&&await [$item$$].asyncJoinModel2($user$$.current_id_app,
16
- assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham",{product_token:"token"},{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]}),$item$$.tong_gia_tri=$item$$.gia*$item$$.so_luong,$item$$.lai_du_tinh=Math.round($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han,0),$item$$.tong_gia_tri_dao_han=$item$$.tong_gia_tri+$item$$.lai_du_tinh;model.updateMany({_id:$item$$._id},$item$$).then($rs$$=>
17
- {console.log("update investment",$rs$$)})}catch($e$$){void 0!=$item$$.id_period&&null!=$item$$.id_period&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assperiod,{where:{id_period:"id"},fields:"ten_ky_han ky_han id_product gia lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von cho_phep_chuyen_nhuong denom tg_xu_ly_rut_von co_phan id_rpt ky_tinh_lai goi_dau_tu".split(" ")}),void 0!=$item$$.id_product&&null!=$item$$.id_product&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assproduct,
18
- {where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",{product_token:"token"},{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]}),$item$$.tong_gia_tri=$item$$.gia*$item$$.so_luong,$item$$.lai_du_tinh=Math.round($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han,0),$item$$.tong_gia_tri_dao_han=$item$$.tong_gia_tri+$item$$.lai_du_tinh,model.updateMany({_id:$item$$._id},$item$$).then($rs$$=>
19
- {console.log("update investment",$rs$$)})}try{$item$$.goi_dau_tu&&($item$$.market_value=await model.getInvestmentMarketValue($item$$.id_app,$item$$.token))}catch($e$$){console.error($e$$)}},async()=>{await $items$$.asyncJoinModel2(null,trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSINVESTMENT"}),fields:["ten_trang_thai","color"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,customer,[{where:$a$$=>({of_user:$a$$.user_created}),fields:["ma_kh","ten_kh"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,
20
- pt1,[{where:$a$$=>({id_assinvestment:$a$$._id}),fields:[{id_pt1:"_id"},{ma_ct_pt1:"ma_ct"}]}]);$next$$(null,$items$$)})},onCreating:async($user$$,$obj$$,$next$$)=>{const $period$$=await assperiod.findOne({id_app:$user$$.current_id_app,id:$obj$$.id_period}).lean();if(!$period$$)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 kh\u00f4ng t\u1ed3n t\u1ea1i");if($period$$.goi_dau_tu&&$period$$.frm_step_code){var $frm_frm_step$$=await global.getModel("financialroadmap").findOne({id_app:$period$$.id_app,
21
- code:$period$$.id_product.toString()}).lean();if(!$frm_frm_step$$)return $next$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$frm_frm_step$$=($frm_frm_step$$.steps||[]).find($s$$=>$s$$.code===$period$$.frm_step_code);if(!$frm_frm_step$$)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong n\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");if("5"==$frm_frm_step$$.trang_thai)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");
22
- if("4"!=$frm_frm_step$$.trang_thai)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c")}if("1"!==$obj$$.trang_thai)return $next$$(null,$obj$$);createTx($user$$.current_id_app,$user$$.token,{values:{creator:$obj$$.creator,idPeriod:Number($obj$$.id_period),soLuong:Number($obj$$.so_luong)},typeUrl:"/pvtruong.flexzen.flexzen.MsgCreateInvestment",from_address:$obj$$.creator,memo:"\u0110\u1ea7u t\u01b0"}).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $next$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");
23
- console.error($rs$$);return $next$$({error:$rs$$.rawLog||$rs$$})}try{let $tx$$=await getTxStatus($rs$$.transactionHash),$id$$=((((($tx$$.logs.find($l$$=>$l$$.events)||{}).events||[]).find($e$$=>"message"===$e$$.type)||{}).attributes||[]).find($a$$=>"id"===$a$$.key)||{}).value;if(void 0!==$id$$){$obj$$.id=$id$$;let $ivs$$=await bcQuery("investment/"+$id$$);$obj$$.token=$ivs$$.Investment.token;$obj$$.ngay_dao_han=Number($ivs$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs$$.Investment.ngayDaoHan)):
24
- null;$obj$$.ngay_phat_hanh=new Date(1E3*Number($ivs$$.Investment.ngayPhatHanh));$obj$$.id_product=$ivs$$.Investment.idProduct;$obj$$.product_token=$ivs$$.Investment.productToken;$obj$$.gia=Number($ivs$$.Investment.gia);$obj$$.tong_gia_tri=$obj$$.gia*$obj$$.so_luong;$obj$$.lai_suat_cam_ket=Number($ivs$$.Investment.laiSuatCamKet);$obj$$.lai_suat_truoc_han=Number($ivs$$.Investment.laiSuatTruocHan);$obj$$.ky_han=Number($ivs$$.Investment.kyHan);$obj$$.cho_phep_rut_von=$ivs$$.Investment.choPhepRutVon;$obj$$.cho_phep_chuyen_nhuong=
25
- $ivs$$.Investment.choPhepChuyenNhuong;$obj$$.denom=$ivs$$.Investment.denom;$obj$$.da_dao_han=$ivs$$.Investment.daDaoHan;$obj$$.tg_xu_ly_rut_von=Number($ivs$$.Investment.tgXuLyRutVon);$obj$$.co_phan=$ivs$$.Investment.coPhan;tinhHoaHong($obj$$);$next$$(null,$obj$$)}else console.error($tx$$),$next$$("Kh\u00f4ng th\u1ec3 \u0111\u1ea7u t\u01b0 cho k\u1ef3 h\u1ea1n n\u00e0y")}catch($e$$){console.error($e$$),$next$$($e$$.message||$e$$.error||$e$$)}}).catch($e$$=>{console.error($e$$);$next$$($e$$.message||
26
- $e$$.error||$e$$)})}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 x\u00f3a");$fn$$(null,$obj$$)};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$fn$$){if($data$$.trang_thai&&"1"!==$data$$.trang_thai)return $fn$$(null,$data$$,$obj$$);if("1"!==$obj$$.trang_thai&&"1"===$data$$.trang_thai){$data$$.id_period=$data$$.id_period||$obj$$.id_period;const $period$$=await assperiod.findOne({id_app:$user$$.current_id_app,
27
- id:$data$$.id_period}).lean();if(!$period$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 kh\u00f4ng t\u1ed3n t\u1ea1i");if($period$$.goi_dau_tu&&$period$$.frm_step_code){var $frm$jscomp$1_frm_step$$=await global.getModel("financialroadmap").findOne({id_app:$period$$.id_app,code:$period$$.id_product.toString()}).lean();if(!$frm$jscomp$1_frm_step$$)return $fn$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$frm$jscomp$1_frm_step$$=
28
- ($frm$jscomp$1_frm_step$$.steps||[]).find($s$$=>$s$$.code===$period$$.frm_step_code);if(!$frm$jscomp$1_frm_step$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong n\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");if("5"==$frm$jscomp$1_frm_step$$.trang_thai)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");if("4"!=$frm$jscomp$1_frm_step$$.trang_thai)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c")}createTx($user$$.current_id_app,
29
- $user$$.token,{values:{creator:$data$$.creator||$obj$$.creator,idPeriod:Number($data$$.id_period||$obj$$.id_period),soLuong:Number($data$$.so_luong||$obj$$.so_luong)},typeUrl:"/pvtruong.flexzen.flexzen.MsgCreateInvestment",from_address:$data$$.creator||$obj$$.creator,memo:"\u0110\u1ea7u t\u01b0",username:$user$$.email}).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $fn$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");console.error($rs$$);
30
- return $fn$$({error:$rs$$.rawLog})}try{let $tx$$=await getTxStatus($rs$$.transactionHash),$id$$=((((($tx$$.logs.find($l$$=>$l$$.events)||{}).events||[]).find($e$$=>"message"===$e$$.type)||{}).attributes||[]).find($a$$=>"id"===$a$$.key)||{}).value;if(void 0!==$id$$){$data$$.id=$id$$;let $ivs$$=await bcQuery("investment/"+$id$$);$data$$.token=$ivs$$.Investment.token;$data$$.ngay_dao_han=Number($ivs$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs$$.Investment.ngayDaoHan)):null;$data$$.ngay_phat_hanh=
31
- new Date(1E3*Number($ivs$$.Investment.ngayPhatHanh));$data$$.id_product=$ivs$$.Investment.idProduct;$data$$.product_token=$ivs$$.Investment.productToken;$data$$.gia=Number($ivs$$.Investment.gia);$data$$.so_luong=Number($ivs$$.Investment.soLuong);$data$$.tong_gia_tri=$data$$.gia*$data$$.so_luong;$data$$.lai_suat_cam_ket=Number($ivs$$.Investment.laiSuatCamKet);$data$$.lai_suat_truoc_han=Number($ivs$$.Investment.laiSuatTruocHan);$data$$.key_han=Number($ivs$$.Investment.kyHan);$data$$.cho_phep_rut_von=
32
- $ivs$$.Investment.choPhepRutVon;$data$$.cho_phep_chuyen_nhuong=$ivs$$.Investment.choPhepChuyenNhuong;$data$$.denom=$ivs$$.Investment.denom;$data$$.da_dao_han=$ivs$$.Investment.daDaoHan;$data$$.tg_xu_ly_rut_von=Number($ivs$$.Investment.tgXuLyRutVon);$data$$.co_phan=$ivs$$.Investment.coPhan;$obj$$.gia=$data$$.gia;$obj$$.so_luong=$data$$.so_luong;$obj$$.tong_gia_tri=$data$$.tong_gia_tri;tinhHoaHong($obj$$);$fn$$(null,$data$$,$obj$$)}else console.error($tx$$),$fn$$("Kh\u00f4ng th\u1ec3 \u0111\u1ea7u t\u01b0 cho k\u1ef3 h\u1ea1n n\u00e0y")}catch($e$$){console.error($e$$),
33
- $fn$$($e$$.message||$e$$.error||$e$$)}}).catch($e$$=>{console.error($e$$);$fn$$($e$$.message||$e$$.error||$e$$)})}else return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};
10
+ module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assinvestment",{sort:{date_created:-1},notNeedRight:!0,requireOtp:$data$$=>"0"==$data$$.trang_thai||"2"==$data$$.trang_thai||"7"==$data$$.trang_thai?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:($user$$,$items$$,$next$$)=>{async.map($items$$,async $item$$=>{$item$$.wallet_address=$item$$.creator;try{if("7"!=$item$$.trang_thai){let $ivs$$=await bcQuery("investment/"+
11
+ $item$$.id);$item$$.da_dao_han=$ivs$$.Investment.daDaoHan;$item$$.token=$ivs$$.Investment.token;$item$$.ngay_dao_han=Number($ivs$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs$$.Investment.ngayDaoHan)):null;$item$$.ngay_phat_hanh=new Date(1E3*Number($ivs$$.Investment.ngayPhatHanh));$item$$.id_product=$ivs$$.Investment.idProduct;$item$$.product_token=$ivs$$.Investment.productToken;$item$$.gia=Number($ivs$$.Investment.gia);$item$$.so_luong=Number($ivs$$.Investment.soLuong);$item$$.tong_gia_tri=$item$$.gia*
12
+ $item$$.so_luong;$item$$.lai_suat_cam_ket=Number($ivs$$.Investment.laiSuatCamKet);$item$$.lai_suat_truoc_han=Number($ivs$$.Investment.laiSuatTruocHan);$item$$.ky_han=Number($ivs$$.Investment.kyHan);$item$$.cho_phep_rut_von=$ivs$$.Investment.choPhepRutVon;$item$$.cho_phep_chuyen_nhuong=$ivs$$.Investment.choPhepChuyenNhuong;$item$$.denom=$ivs$$.Investment.denom;$item$$.da_dao_han=$ivs$$.Investment.daDaoHan;Number($ivs$$.Investment.ngayTinhLaiKyTruoc)&&($item$$.ngay_tinh_lai_ky_truoc=new Date(1E3*Number($ivs$$.Investment.ngayTinhLaiKyTruoc)));
13
+ Number($ivs$$.Investment.ngayTinhLaiKyTiepTheo)&&($item$$.ngay_tinh_lai_ky_tiep_theo=new Date(1E3*Number($ivs$$.Investment.ngayTinhLaiKyTiepTheo)));$item$$.trang_thai=$item$$.da_dao_han?"5":"1";$item$$.tg_xu_ly_rut_von=Number($ivs$$.Investment.tgXuLyRutVon);$item$$.co_phan=$ivs$$.Investment.coPhan;$item$$.lai_du_tinh=Math.round($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han);$item$$.tong_gia_tri_dao_han=$item$$.tong_gia_tri+$item$$.lai_du_tinh;void 0!=$item$$.id_product&&null!=
14
+ $item$$.id_product&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham",{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]});void 0!=$item$$.id_period&&null!=$item$$.id_period&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:["ten_ky_han","id_rpt","ky_tinh_lai","goi_dau_tu"]});let $balance$$=
15
+ await bcQuery(`cosmos/bank/v1beta1/balances/${$ivs$$.Investment.creator}/by_denom?denom=${$ivs$$.Investment.token}`);$item$$.con_lai=Number($balance$$.balance.amount);$item$$.da_ban=$item$$.so_luong-$item$$.con_lai}else void 0!=$item$$.id_period&&null!=$item$$.id_period&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assperiod,{where:{id_period:"id"},fields:"ten_ky_han ky_han id_product gia lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von cho_phep_chuyen_nhuong denom tg_xu_ly_rut_von co_phan id_rpt ky_tinh_lai goi_dau_tu".split(" ")}),
16
+ void 0!=$item$$.id_product&&null!=$item$$.id_product&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham",{product_token:"token"},{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]}),$item$$.tong_gia_tri=$item$$.gia*$item$$.so_luong,$item$$.lai_du_tinh=Math.round($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han,0),$item$$.tong_gia_tri_dao_han=
17
+ $item$$.tong_gia_tri+$item$$.lai_du_tinh;model.updateMany({_id:$item$$._id},$item$$).then($rs$$=>{console.log("update investment",$rs$$)})}catch($e$$){void 0!=$item$$.id_period&&null!=$item$$.id_period&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assperiod,{where:{id_period:"id"},fields:"ten_ky_han ky_han id_product gia lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von cho_phep_chuyen_nhuong denom tg_xu_ly_rut_von co_phan id_rpt ky_tinh_lai goi_dau_tu".split(" ")}),void 0!=$item$$.id_product&&
18
+ null!=$item$$.id_product&&await [$item$$].asyncJoinModel2($user$$.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",{product_token:"token"},{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]}),$item$$.tong_gia_tri=$item$$.gia*$item$$.so_luong,$item$$.lai_du_tinh=Math.round($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han,0),$item$$.tong_gia_tri_dao_han=
19
+ $item$$.tong_gia_tri+$item$$.lai_du_tinh,model.updateMany({_id:$item$$._id},$item$$).then($rs$$=>{console.log("update investment",$rs$$)})}try{$item$$.goi_dau_tu&&($item$$.market_value=await model.getInvestmentMarketValue($item$$.id_app,$item$$.token))}catch($e$$){console.error($e$$)}},async()=>{await $items$$.asyncJoinModel2(null,trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSINVESTMENT"}),fields:["ten_trang_thai","color"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,
20
+ customer,[{where:$a$$=>({of_user:$a$$.user_created}),fields:["ma_kh","ten_kh"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,pt1,[{where:$a$$=>({id_assinvestment:$a$$._id}),fields:[{id_pt1:"_id"},{ma_ct_pt1:"ma_ct"}]}]);$next$$(null,$items$$)})},onCreating:async($user$$,$obj$$,$next$$)=>{const $period$$=await assperiod.findOne({id_app:$user$$.current_id_app,id:$obj$$.id_period}).lean();if(!$period$$)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 kh\u00f4ng t\u1ed3n t\u1ea1i");if($period$$.goi_dau_tu&&
21
+ $period$$.frm_step_code){var $frm_frm_step$$=await global.getModel("financialroadmap").findOne({id_app:$period$$.id_app,code:$period$$.id_product.toString()}).lean();if(!$frm_frm_step$$)return $next$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$frm_frm_step$$=($frm_frm_step$$.steps||[]).find($s$$=>$s$$.code===$period$$.frm_step_code);if(!$frm_frm_step$$)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");
22
+ if("5"==$frm_frm_step$$.trang_thai)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");if("4"!=$frm_frm_step$$.trang_thai)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c")}if("1"!==$obj$$.trang_thai)return $next$$(null,$obj$$);createTx($user$$.current_id_app,$user$$.token,{values:{creator:$obj$$.creator,idPeriod:Number($obj$$.id_period),soLuong:Number($obj$$.so_luong)},typeUrl:"/pvtruong.flexzen.flexzen.MsgCreateInvestment",
23
+ from_address:$obj$$.creator,memo:"\u0110\u1ea7u t\u01b0"}).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $next$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");console.error($rs$$);return $next$$({error:$rs$$.rawLog||$rs$$})}try{let $tx$$=await getTxStatus($rs$$.transactionHash),$id$$=((((($tx$$.logs.find($l$$=>$l$$.events)||{}).events||[]).find($e$$=>"message"===$e$$.type)||{}).attributes||[]).find($a$$=>"id"===$a$$.key)||{}).value;
24
+ if(void 0!==$id$$){$obj$$.id=$id$$;let $ivs$$=await bcQuery("investment/"+$id$$);$obj$$.token=$ivs$$.Investment.token;$obj$$.ngay_dao_han=Number($ivs$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs$$.Investment.ngayDaoHan)):null;$obj$$.ngay_phat_hanh=new Date(1E3*Number($ivs$$.Investment.ngayPhatHanh));$obj$$.id_product=$ivs$$.Investment.idProduct;$obj$$.product_token=$ivs$$.Investment.productToken;$obj$$.gia=Number($ivs$$.Investment.gia);$obj$$.tong_gia_tri=$obj$$.gia*$obj$$.so_luong;$obj$$.lai_suat_cam_ket=
25
+ Number($ivs$$.Investment.laiSuatCamKet);$obj$$.lai_suat_truoc_han=Number($ivs$$.Investment.laiSuatTruocHan);$obj$$.ky_han=Number($ivs$$.Investment.kyHan);$obj$$.cho_phep_rut_von=$ivs$$.Investment.choPhepRutVon;$obj$$.cho_phep_chuyen_nhuong=$ivs$$.Investment.choPhepChuyenNhuong;$obj$$.denom=$ivs$$.Investment.denom;$obj$$.da_dao_han=$ivs$$.Investment.daDaoHan;$obj$$.tg_xu_ly_rut_von=Number($ivs$$.Investment.tgXuLyRutVon);$obj$$.co_phan=$ivs$$.Investment.coPhan;tinhHoaHong($obj$$);$next$$(null,$obj$$)}else console.error($tx$$),
26
+ $next$$("Kh\u00f4ng th\u1ec3 \u0111\u1ea7u t\u01b0 cho k\u1ef3 h\u1ea1n n\u00e0y")}catch($e$$){console.error($e$$),$next$$($e$$.message||$e$$.error||$e$$)}}).catch($e$$=>{console.error($e$$);$next$$($e$$.message||$e$$.error||$e$$)})}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 x\u00f3a");$fn$$(null,$obj$$)};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$fn$$){if($data$$.trang_thai&&
27
+ "1"!==$data$$.trang_thai)return $fn$$(null,$data$$,$obj$$);if("1"!==$obj$$.trang_thai&&"1"===$data$$.trang_thai){$data$$.id_period=$data$$.id_period||$obj$$.id_period;const $period$$=await assperiod.findOne({id_app:$user$$.current_id_app,id:$data$$.id_period}).lean();if(!$period$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 kh\u00f4ng t\u1ed3n t\u1ea1i");if($period$$.goi_dau_tu&&$period$$.frm_step_code){var $frm$jscomp$1_frm_step$$=await global.getModel("financialroadmap").findOne({id_app:$period$$.id_app,
28
+ code:$period$$.id_product.toString()}).lean();if(!$frm$jscomp$1_frm_step$$)return $fn$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$frm$jscomp$1_frm_step$$=($frm$jscomp$1_frm_step$$.steps||[]).find($s$$=>$s$$.code===$period$$.frm_step_code);if(!$frm$jscomp$1_frm_step$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");if("5"==$frm$jscomp$1_frm_step$$.trang_thai)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");
29
+ if("4"!=$frm$jscomp$1_frm_step$$.trang_thai)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c")}createTx($user$$.current_id_app,$user$$.token,{values:{creator:$data$$.creator||$obj$$.creator,idPeriod:Number($data$$.id_period||$obj$$.id_period),soLuong:Number($data$$.so_luong||$obj$$.so_luong)},typeUrl:"/pvtruong.flexzen.flexzen.MsgCreateInvestment",from_address:$data$$.creator||$obj$$.creator,memo:"\u0110\u1ea7u t\u01b0",username:$user$$.email}).then(async $rs$$=>
30
+ {if($rs$$.code){if(5===$rs$$.code)return $fn$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");console.error($rs$$);return $fn$$({error:$rs$$.rawLog})}try{let $tx$$=await getTxStatus($rs$$.transactionHash),$id$$=((((($tx$$.logs.find($l$$=>$l$$.events)||{}).events||[]).find($e$$=>"message"===$e$$.type)||{}).attributes||[]).find($a$$=>"id"===$a$$.key)||{}).value;if(void 0!==$id$$){$data$$.id=$id$$;let $ivs$$=await bcQuery("investment/"+$id$$);$data$$.token=
31
+ $ivs$$.Investment.token;$data$$.ngay_dao_han=Number($ivs$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs$$.Investment.ngayDaoHan)):null;$data$$.ngay_phat_hanh=new Date(1E3*Number($ivs$$.Investment.ngayPhatHanh));$data$$.id_product=$ivs$$.Investment.idProduct;$data$$.product_token=$ivs$$.Investment.productToken;$data$$.gia=Number($ivs$$.Investment.gia);$data$$.so_luong=Number($ivs$$.Investment.soLuong);$data$$.tong_gia_tri=$data$$.gia*$data$$.so_luong;$data$$.lai_suat_cam_ket=Number($ivs$$.Investment.laiSuatCamKet);
32
+ $data$$.lai_suat_truoc_han=Number($ivs$$.Investment.laiSuatTruocHan);$data$$.key_han=Number($ivs$$.Investment.kyHan);$data$$.cho_phep_rut_von=$ivs$$.Investment.choPhepRutVon;$data$$.cho_phep_chuyen_nhuong=$ivs$$.Investment.choPhepChuyenNhuong;$data$$.denom=$ivs$$.Investment.denom;$data$$.da_dao_han=$ivs$$.Investment.daDaoHan;$data$$.tg_xu_ly_rut_von=Number($ivs$$.Investment.tgXuLyRutVon);$data$$.co_phan=$ivs$$.Investment.coPhan;$obj$$.gia=$data$$.gia;$obj$$.so_luong=$data$$.so_luong;$obj$$.tong_gia_tri=
33
+ $data$$.tong_gia_tri;tinhHoaHong($obj$$);$fn$$(null,$data$$,$obj$$)}else console.error($tx$$),$fn$$("Kh\u00f4ng th\u1ec3 \u0111\u1ea7u t\u01b0 cho k\u1ef3 h\u1ea1n n\u00e0y")}catch($e$$){console.error($e$$),$fn$$($e$$.message||$e$$.error||$e$$)}}).catch($e$$=>{console.error($e$$);$fn$$($e$$.message||$e$$.error||$e$$)})}else return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};
@@ -8,13 +8,13 @@ $items$$,$next$$)=>{await $items$$.asyncJoinModel2(null,User,{where:{username:"e
8
8
  $wallet$$=await DirectSecp256k1HdWallet.fromMnemonic($obj$$.mnemonic,{prefix:configs.ADDRESS_PREFIX})}else $wallet$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $wallet$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$wallet$$.mnemonic;$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("Can't delete this key");
9
9
  global.client_cosmos=global.client_cosmos||{};delete global.client_cosmos[$obj$$._id.toString()];Receiver.deleteMany({address:$obj$$.address});$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){$fn$$("Can't update this wallet")};$contr_router$$.createRoute(":address/balance",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address,$w$$=await model.findOne({address:$address$$}).lean();if(!$w$$||!$w$$.asset||"BTC"!=$w$$.asset&&"ETH"!=$w$$.asset)try{const $bls$$=await bankBalancesGet($address$$);
10
10
  await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($req$$.user.current_id_app,assinvestment,{where:{denom:"token"},asyncSetFields:async($item$$,$investment_ref$$,$callback$$)=>{$item$$.price=$investment_ref$$.gia;$investment_ref$$={...$investment_ref$$};await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},
11
- {tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu".split(" ")});$investment_ref$$.wallet_address=$address$$;$investment_ref$$.so_luong=$item$$.amount;$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=Math.round($investment_ref$$.lai_suat_cam_ket/
12
- 365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han);$investment_ref$$.tong_gia_tri_dao_han=$investment_ref$$.tong_gia_tri+$investment_ref$$.lai_du_tinh;$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.round(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/864E5),$investment_ref$$.tien_lai_hien_tai=Math.round(($investment_ref$$.lai_suat_cam_ket||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri),
13
- $investment_ref$$.tien_lai_truoc_han_hien_tai=Math.round(($investment_ref$$.lai_suat_truoc_han||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri)):($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.round(($investment_ref$$.tong_gia_tri+$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,
14
- $investment_ref$$.token)}catch($e$$){console.error($e$$)}$item$$.investment=$investment_ref$$;$callback$$()}});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}else try{let $r$$={amount:await (new (require("send-crypto"))($w$$.private_key)).getBalance($w$$.asset.toUpperCase()),denom:$w$$.asset.toLowerCase()};
15
- const $price$$=await getPrice($w$$.asset.toLowerCase());$r$$.amount=Number($r$$.amount);$r$$.price=$price$$||0;$r$$.value=$r$$.price*$r$$.amount;$fn$$(null,[$r$$])}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $handleResult$$=$assreq_data$$=>{$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;delete $assreq_data$$.transaction;
16
- delete $assreq_data$$.id_app;delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;return $assreq_data$$},$permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{let $data$$=$req$$.body;const $address$$=$data$$.from,$to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,amount:$amount$$,memo:$memo$$}=
17
- $data$$;if(!($address$$&&$to_address$$&&$denom$$&&$amount$$))return $fn$$({error:"Data miss 'from' or 'to' or 'denom' or 'amount'"});if($address$$===$to_address$$)return $fn$$({error:"\u0110\u1ecba ch\u1ec9 v\u00ed g\u1eedi v\u00e0 nh\u1eadn ph\u1ea3i kh\u00e1c nhau"});try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}let $assreq$$;if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
11
+ {tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu".split(" ")});$investment_ref$$.wallet_address=$address$$;$investment_ref$$.so_luong=$item$$.amount;$investment_ref$$.con_lai=$item$$.amount;$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=
12
+ Math.round($investment_ref$$.lai_suat_cam_ket/365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han);$investment_ref$$.tong_gia_tri_dao_han=$investment_ref$$.tong_gia_tri+$investment_ref$$.lai_du_tinh;$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.round(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/864E5),$investment_ref$$.tien_lai_hien_tai=Math.round(($investment_ref$$.lai_suat_cam_ket||0)/365/100*$investment_ref$$.so_ngay_hien_tai*
13
+ $investment_ref$$.tong_gia_tri),$investment_ref$$.tien_lai_truoc_han_hien_tai=Math.round(($investment_ref$$.lai_suat_truoc_han||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri)):($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.round(($investment_ref$$.tong_gia_tri+$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=
14
+ await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,$investment_ref$$.token)}catch($e$$){console.error($e$$)}$item$$.investment=$investment_ref$$;$callback$$()}});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}else try{let $r$$={amount:await (new (require("send-crypto"))($w$$.private_key)).getBalance($w$$.asset.toUpperCase()),
15
+ denom:$w$$.asset.toLowerCase()};const $price$$=await getPrice($w$$.asset.toLowerCase());$r$$.amount=Number($r$$.amount);$r$$.price=$price$$||0;$r$$.value=$r$$.price*$r$$.amount;$fn$$(null,[$r$$])}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $handleResult$$=$assreq_data$$=>{$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;
16
+ delete $assreq_data$$.transaction;delete $assreq_data$$.id_app;delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;return $assreq_data$$},$permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{let $data$$=$req$$.body;const $address$$=$data$$.from,$to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,
17
+ amount:$amount$$,memo:$memo$$}=$data$$;if(!($address$$&&$to_address$$&&$denom$$&&$amount$$))return $fn$$({error:"Data miss 'from' or 'to' or 'denom' or 'amount'"});if($address$$===$to_address$$)return $fn$$({error:"\u0110\u1ecba ch\u1ec9 v\u00ed g\u1eedi v\u00e0 nh\u1eadn ph\u1ea3i kh\u00e1c nhau"});try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}let $assreq$$;if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
18
18
  $assreq$$=await assrequest.findOne({_id:$data$$.assrequest_id,amount:$amount$$,denom:$denom$$,receiver_address:$to_address$$,request_id:$data$$.request_id,order_id:$data$$.order_id});if(!$assreq$$)return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if("1"===$assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"});if("9"===$assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb h\u1ee7y"});
19
19
  $memo$$=$memo$$||$data$$.order_info}try{const $rs$$=await spend($req$$.user.current_id_app,$req$$.user.token,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:$memo$$});if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});let $walletReceiver$$=await model.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$});if($walletReceiver$$){let $_userReceiver$$=
20
20
  await User.findOne({email:$walletReceiver$$.username});Receiver.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$,user_created:$req$$.user.email},($e$$,$rs$$)=>{$rs$$||Receiver.create({id_app:$req$$.user.current_id_app,name:$data$$.name||($_userReceiver$$||{}).name,address:$to_address$$,user_created:$req$$.user.email})})}if($assreq$$){$assreq$$.trang_thai="1";$assreq$$.sender_address=$address$$;$assreq$$.sender_name=$data$$.sender_name||$req$$.user.name;$assreq$$.sender_user=$req$$.user.email;
@@ -4,13 +4,16 @@ $next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,assproduct,{whe
4
4
  $item$$.hoat_dong=$frm_ivs$$.Period.hoatDong;$item$$.denom=$frm_ivs$$.Period.denom;$item$$.ky_tinh_lai=Number($frm_ivs$$.Period.kyTinhLai);$item$$.ngay_phat_hanh=new Date(1E3*Number($frm_ivs$$.Period.ngayPhatHanh));model.updateMany({_id:$item$$._id},$item$$).then($rs$$=>{console.log("update period",$rs$$)})}catch($e$$){console.error("view assperiod",$e$$),$e$$.message&&"3"==$e$$.message.code&&(model.deleteOne({_id:$item$$._id}).then(()=>{console.log("deleted period",$item$$)}),$item$$.not_found=!0)}$item$$.goi_dau_tu&&
5
5
  $item$$.frm_step_code&&($frm_ivs$$=await global.getModel("financialroadmap").findOne({id_app:$item$$.id_app,code:$item$$.id_product.toString()}).lean())&&($item$$.frm_step=($frm_ivs$$.steps||[]).find($s$$=>$s$$.code===$item$$.frm_step_code),$item$$.frm_step&&$item$$.frm_step.sl_slot&&($item$$.frm_step.sl_cp_slot=$item$$.frm_step.dillution/100*$item$$.frm_step.total_share/$item$$.frm_step.sl_slot))},async()=>{$items$$=$items$$.filter($i$$=>!$i$$.not_found);$items$$.joinModel2(null,Trangthai,[{where:$a$$=>
6
6
  ({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSPERIOD"}),fields:["ten_trang_thai","color"]}],function(){$next$$(null,$items$$)})})},onCreating:async($user$$,$obj$$,$next$$)=>{if("9"===$obj$$.trang_thai)return $next$$(null,$obj$$);var $data_from_address$$=$obj$$.creator;$data_from_address$$={values:{creator:$obj$$.creator,idProduct:Number($obj$$.id_product),laiSuatCamKet:Number($obj$$.lai_suat_cam_ket),laiSuatTruocHan:Number($obj$$.lai_suat_truoc_han),kyHan:Number($obj$$.ky_han),choPhepRutVon:$obj$$.cho_phep_rut_von,
7
- choPhepChuyenNhuong:$obj$$.cho_phep_chuyen_nhuong,hoatDong:$obj$$.hoat_dong,gia:Number($obj$$.gia),denom:$obj$$.denom,tgXuLyRutVon:$obj$$.tg_xu_ly_rut_von||0,tongSoToken:Number($obj$$.tong_so_token||0),kyTinhLai:Number($obj$$.ky_tinh_lai||0),loiNhuanDuocChia:Number($obj$$.loi_nhuan_duoc_chia||0),ngayChiaLoiNhuan:$obj$$.ngay_chia_loi_nhuan?(new Date($obj$$.ngay_chia_loi_nhuan)).getTime()/1E3:0,goiDauTu:$obj$$.goi_dau_tu||!1},typeUrl:"/pvtruong.flexzen.flexzen.MsgCreatePeriod",from_address:$data_from_address$$};
8
- createTx($user$$.current_id_app,$user$$.token,$data_from_address$$).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $next$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");console.error($rs$$);return $next$$({error:$rs$$.rawLog})}try{let $tx$$=await getTxStatus($rs$$.transactionHash),$id$$=((((($tx$$.logs.find($l$$=>$l$$.events)||{}).events||[]).find($e$$=>"message"===$e$$.type)||{}).attributes||[]).find($a$$=>"id"===$a$$.key)||{}).value;
9
- void 0!==$id$$?($obj$$.id=$id$$,$next$$(null,$obj$$)):(console.error($tx$$),$next$$("Kh\u00f4ng th\u1ec3 t\u1ea1o k\u1ef3 h\u1ea1n cho s\u1ea3n ph\u1ea9m n\u00e0y"))}catch($e$$){console.error($e$$),$next$$($e$$.message||$e$$.error||$e$$)}}).catch($e$$=>{console.error($e$$);$next$$($e$$.message||$e$$.error||$e$$)})}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a");$fn$$(null,$obj$$)};
10
- $contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created)return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n c\u1eadp nh\u1eadt");if($data$$.creator&&$data$$.creator!==$obj$$.creator)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eeda \u0111\u1ecba ch\u1ec9 v\u00ed ng\u01b0\u1eddi t\u1ea1o");if("9"==$data$$.trang_thai&&"9"!=$obj$$.trang_thai)return $fn$$("Kh\u00f4ng th\u1ec3 chuy\u1ec3n v\u1ec1 tr\u1ea1ng th\u00e1i ch\u01b0a \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh t\u1eeb tr\u1ea1ng th\u00e1i \u0111\u00e3 \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh");
11
- if("9"==$data$$.trang_thai)return $fn$$(null,$data$$,$obj$$);$data$$.ngay_chia_loi_nhuan=$data$$.ngay_chia_loi_nhuan||$obj$$.ngay_chia_loi_nhuan;let $from_address$$=$obj$$.creator,$typeUrl$$,$values$$;"9"===$obj$$.trang_thai?($typeUrl$$="/pvtruong.flexzen.flexzen.MsgCreatePeriod",$values$$={creator:$obj$$.creator,idProduct:Number($data$$.id_product||$obj$$.id_product),laiSuatCamKet:$data$$.lai_suat_cam_ket||$obj$$.lai_suat_cam_ket,laiSuatTruocHan:$data$$.lai_suat_truoc_han||$obj$$.lai_suat_truoc_han,
12
- kyHan:$data$$.ky_han||$obj$$.ky_han,choPhepRutVon:void 0!=$data$$.cho_phep_rut_von?$data$$.cho_phep_rut_von:$obj$$.cho_phep_rut_von,choPhepChuyenNhuong:void 0!=$data$$.cho_phep_chuyen_nhuong?$data$$.cho_phep_chuyen_nhuong:$obj$$.cho_phep_chuyen_nhuong,hoatDong:void 0!=$data$$.hoat_dong?$data$$.hoat_dong:$obj$$.hoat_dong,gia:Number($data$$.gia||$obj$$.gia),denom:$data$$.denom||$obj$$.denom,tgXuLyRutVon:(void 0!=$data$$.tg_xu_ly_rut_von?$data$$.tg_xu_ly_rut_von:$obj$$.tg_xu_ly_rut_von)||0,tongSoToken:(void 0!=
13
- $data$$.tong_so_token?$data$$.tong_so_token:$obj$$.tong_so_token)||0,kyTinhLai:Number(void 0==$data$$.ky_tinh_lai?$obj$$.ky_tinh_lai:$data$$.ky_tinh_lai),loiNhuanDuocChia:Number(void 0==$data$$.loi_nhuan_duoc_chia?$obj$$.loi_nhuan_duoc_chia:$data$$.loi_nhuan_duoc_chia),ngayChiaLoiNhuan:$data$$.ngay_chia_loi_nhuan?(new Date($data$$.ngay_chia_loi_nhuan)).getTime()/1E3:0}):("5"==$data$$.trang_thai&&($data$$.hoat_dong=!1),$typeUrl$$="/pvtruong.flexzen.flexzen.MsgUpdatePeriod",$values$$={creator:$obj$$.creator,
14
- id:Number($obj$$.id),idProduct:Number($data$$.id_product||$obj$$.id_product),laiSuatCamKet:$data$$.lai_suat_cam_ket||$obj$$.lai_suat_cam_ket,laiSuatTruocHan:$data$$.lai_suat_truoc_han||$obj$$.lai_suat_truoc_han,kyHan:$data$$.ky_han||$obj$$.ky_han,choPhepRutVon:void 0!=$data$$.cho_phep_rut_von?$data$$.cho_phep_rut_von:$obj$$.cho_phep_rut_von,choPhepChuyenNhuong:void 0!=$data$$.cho_phep_chuyen_nhuong?$data$$.cho_phep_chuyen_nhuong:$obj$$.cho_phep_chuyen_nhuong,hoatDong:void 0!=$data$$.hoat_dong?$data$$.hoat_dong:
15
- $obj$$.hoat_dong,tgXuLyRutVon:(void 0!=$data$$.tg_xu_ly_rut_von?$data$$.tg_xu_ly_rut_von:$obj$$.tg_xu_ly_rut_von)||0,tongSoToken:(void 0!=$data$$.tong_so_token?$data$$.tong_so_token:$obj$$.tong_so_token)||0,loiNhuanDuocChia:Number(void 0==$data$$.loi_nhuan_duoc_chia?$obj$$.loi_nhuan_duoc_chia:$data$$.loi_nhuan_duoc_chia),ngayChiaLoiNhuan:$data$$.ngay_chia_loi_nhuan?(new Date($data$$.ngay_chia_loi_nhuan)).getTime()/1E3:0});createTx($user$$.current_id_app,$user$$.token,{values:$values$$,typeUrl:$typeUrl$$,
16
- from_address:$from_address$$}).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $fn$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");console.error($rs$$);return $fn$$($rs$$.rawLog)}$fn$$(null,$data$$,$obj$$)}).catch($e$$=>{console.error($e$$);$fn$$($e$$.message||$e$$.error||$e$$)})};$contr_router$$.route()};
7
+ choPhepChuyenNhuong:$obj$$.cho_phep_chuyen_nhuong,hoatDong:$obj$$.hoat_dong,gia:Number($obj$$.gia),denom:$obj$$.denom,tgXuLyRutVon:$obj$$.tg_xu_ly_rut_von||0,tongSoToken:Number($obj$$.tong_so_token||0),kyTinhLai:Number($obj$$.ky_tinh_lai||0),loiNhuanDuocChia:Number($obj$$.loi_nhuan_duoc_chia||0),ngayChiaLoiNhuan:$obj$$.ngay_chia_loi_nhuan?(new Date($obj$$.ngay_chia_loi_nhuan)).getTime()/1E3:0,goiDauTu:$obj$$.goi_dau_tu||!1,laiSuatTangThemSoHuuToken:Number($obj$$.lai_suat_tang_them_so_huu_token||0),
8
+ tokenSoHuu:$obj$$.token_so_huu||"",soLuongSoHuu:Number($obj$$.so_luong_so_huu||0),soNgayDauTuToiThieu:Number($obj$$.so_ngay_dau_tu_toi_thieu||0),truLaiDaTra:$obj$$.tru_lai_da_tra||!1,laiSuatThoiGianConLai:Number($obj$$.lai_suat_thoi_gian_con_lai||0)},typeUrl:"/pvtruong.flexzen.flexzen.MsgCreatePeriod",from_address:$data_from_address$$};createTx($user$$.current_id_app,$user$$.token,$data_from_address$$).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $next$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");
9
+ console.error($rs$$);return $next$$({error:$rs$$.rawLog})}try{let $tx$$=await getTxStatus($rs$$.transactionHash),$id$$=((((($tx$$.logs.find($l$$=>$l$$.events)||{}).events||[]).find($e$$=>"message"===$e$$.type)||{}).attributes||[]).find($a$$=>"id"===$a$$.key)||{}).value;void 0!==$id$$?($obj$$.id=$id$$,$next$$(null,$obj$$)):(console.error($tx$$),$next$$("Kh\u00f4ng th\u1ec3 t\u1ea1o k\u1ef3 h\u1ea1n cho s\u1ea3n ph\u1ea9m n\u00e0y"))}catch($e$$){console.error($e$$),$next$$($e$$.message||$e$$.error||
10
+ $e$$)}}).catch($e$$=>{console.error($e$$);$next$$($e$$.message||$e$$.error||$e$$)})}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a");$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created)return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n c\u1eadp nh\u1eadt");if($data$$.creator&&$data$$.creator!==$obj$$.creator)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eeda \u0111\u1ecba ch\u1ec9 v\u00ed ng\u01b0\u1eddi t\u1ea1o");
11
+ if("9"==$data$$.trang_thai&&"9"!=$obj$$.trang_thai)return $fn$$("Kh\u00f4ng th\u1ec3 chuy\u1ec3n v\u1ec1 tr\u1ea1ng th\u00e1i ch\u01b0a \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh t\u1eeb tr\u1ea1ng th\u00e1i \u0111\u00e3 \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh");if("9"==$data$$.trang_thai)return $fn$$(null,$data$$,$obj$$);$data$$.ngay_chia_loi_nhuan=$data$$.ngay_chia_loi_nhuan||$obj$$.ngay_chia_loi_nhuan;void 0==$data$$.lai_suat_tang_them_so_huu_token&&($data$$.lai_suat_tang_them_so_huu_token=$obj$$.lai_suat_tang_them_so_huu_token);
12
+ void 0==$data$$.token_so_huu&&($data$$.token_so_huu=$obj$$.token_so_huu);void 0==$data$$.so_luong_so_huu&&($data$$.so_luong_so_huu=$obj$$.so_luong_so_huu);void 0==$data$$.tru_lai_da_tra&&($data$$.tru_lai_da_tra=$obj$$.tru_lai_da_tra);void 0==$data$$.laiSuatThoiGianConLai&&($data$$.laiSuatThoiGianConLai=$obj$$.laiSuatThoiGianConLai);let $from_address$$=$obj$$.creator,$typeUrl$$,$values$$;"9"===$obj$$.trang_thai?($typeUrl$$="/pvtruong.flexzen.flexzen.MsgCreatePeriod",$values$$={creator:$obj$$.creator,
13
+ idProduct:Number($data$$.id_product||$obj$$.id_product),laiSuatCamKet:$data$$.lai_suat_cam_ket||$obj$$.lai_suat_cam_ket,laiSuatTruocHan:$data$$.lai_suat_truoc_han||$obj$$.lai_suat_truoc_han,kyHan:$data$$.ky_han||$obj$$.ky_han,choPhepRutVon:void 0!=$data$$.cho_phep_rut_von?$data$$.cho_phep_rut_von:$obj$$.cho_phep_rut_von,choPhepChuyenNhuong:void 0!=$data$$.cho_phep_chuyen_nhuong?$data$$.cho_phep_chuyen_nhuong:$obj$$.cho_phep_chuyen_nhuong,hoatDong:void 0!=$data$$.hoat_dong?$data$$.hoat_dong:$obj$$.hoat_dong,
14
+ gia:Number($data$$.gia||$obj$$.gia),denom:$data$$.denom||$obj$$.denom,tgXuLyRutVon:(void 0!=$data$$.tg_xu_ly_rut_von?$data$$.tg_xu_ly_rut_von:$obj$$.tg_xu_ly_rut_von)||0,tongSoToken:(void 0!=$data$$.tong_so_token?$data$$.tong_so_token:$obj$$.tong_so_token)||0,kyTinhLai:Number(void 0==$data$$.ky_tinh_lai?$obj$$.ky_tinh_lai:$data$$.ky_tinh_lai),loiNhuanDuocChia:Number(void 0==$data$$.loi_nhuan_duoc_chia?$obj$$.loi_nhuan_duoc_chia:$data$$.loi_nhuan_duoc_chia),ngayChiaLoiNhuan:$data$$.ngay_chia_loi_nhuan?
15
+ (new Date($data$$.ngay_chia_loi_nhuan)).getTime()/1E3:0,laiSuatTangThemSoHuuToken:Number($data$$.lai_suat_tang_them_so_huu_token||0),tokenSoHuu:$data$$.token_so_huu||"",soLuongSoHuu:Number($data$$.so_luong_so_huu||0),soNgayDauTuToiThieu:Number($data$$.so_ngay_dau_tu_toi_thieu||0),truLaiDaTra:$data$$.tru_lai_da_tra||!1,laiSuatThoiGianConLai:Number($data$$.lai_suat_thoi_gian_con_lai||0)}):("5"==$data$$.trang_thai&&($data$$.hoat_dong=!1),$typeUrl$$="/pvtruong.flexzen.flexzen.MsgUpdatePeriod",$values$$=
16
+ {creator:$obj$$.creator,id:Number($obj$$.id),idProduct:Number($data$$.id_product||$obj$$.id_product),laiSuatCamKet:$data$$.lai_suat_cam_ket||$obj$$.lai_suat_cam_ket,laiSuatTruocHan:$data$$.lai_suat_truoc_han||$obj$$.lai_suat_truoc_han,kyHan:$data$$.ky_han||$obj$$.ky_han,choPhepRutVon:void 0!=$data$$.cho_phep_rut_von?$data$$.cho_phep_rut_von:$obj$$.cho_phep_rut_von,choPhepChuyenNhuong:void 0!=$data$$.cho_phep_chuyen_nhuong?$data$$.cho_phep_chuyen_nhuong:$obj$$.cho_phep_chuyen_nhuong,hoatDong:void 0!=
17
+ $data$$.hoat_dong?$data$$.hoat_dong:$obj$$.hoat_dong,tgXuLyRutVon:(void 0!=$data$$.tg_xu_ly_rut_von?$data$$.tg_xu_ly_rut_von:$obj$$.tg_xu_ly_rut_von)||0,tongSoToken:(void 0!=$data$$.tong_so_token?$data$$.tong_so_token:$obj$$.tong_so_token)||0,loiNhuanDuocChia:Number(void 0==$data$$.loi_nhuan_duoc_chia?$obj$$.loi_nhuan_duoc_chia:$data$$.loi_nhuan_duoc_chia),ngayChiaLoiNhuan:$data$$.ngay_chia_loi_nhuan?(new Date($data$$.ngay_chia_loi_nhuan)).getTime()/1E3:0,laiSuatTangThemSoHuuToken:Number($data$$.lai_suat_tang_them_so_huu_token||
18
+ 0),tokenSoHuu:$data$$.token_so_huu||"",soLuongSoHuu:Number($data$$.so_luong_so_huu||0),soNgayDauTuToiThieu:Number($data$$.so_ngay_dau_tu_toi_thieu||0),truLaiDaTra:$data$$.tru_lai_da_tra||!1,laiSuatThoiGianConLai:Number($data$$.lai_suat_thoi_gian_con_lai||0)});createTx($user$$.current_id_app,$user$$.token,{values:$values$$,typeUrl:$typeUrl$$,from_address:$from_address$$}).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $fn$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");
19
+ console.error($rs$$);return $fn$$($rs$$.rawLog)}$fn$$(null,$data$$,$obj$$)}).catch($e$$=>{console.error($e$$);$fn$$($e$$.message||$e$$.error||$e$$)})};$contr_router$$.route()};
@@ -0,0 +1,5 @@
1
+ 'use strict';const controller=require("../../controllers/controllerRPT"),{bcQuery}=require("../../libs/blockchainconnect"),moment=require("moment");
2
+ module.exports=function($router$$){new controller($router$$,"assinterest",async function($condition_req$$,$callback$$){$condition_req$$=$condition_req$$.query;let $obj$$="all-";$condition_req$$.id_period?$obj$$="period-"+$condition_req$$.id_period+"-":$condition_req$$.id_product&&($obj$$="product-"+$condition_req$$.id_period+"-");if(Number($condition_req$$.nam||0)&&($obj$$=$obj$$+$condition_req$$.nam+"-",Number($condition_req$$.quy)&&($obj$$=$obj$$+$condition_req$$.quy+"-"),Number($condition_req$$.thang))){if(!Number($condition_req$$.quy)){const $quy$$=
3
+ moment([Number($condition_req$$.nam),Number($condition_req$$.thang)-1,1]).quarter();$obj$$=$obj$$+$quy$$+"-"}$obj$$=$obj$$+$condition_req$$.thang+"-";$condition_req$$.ngay&&($obj$$+=$condition_req$$.ngay)}try{let $rs$$=(await bcQuery(`transferlogs/action-interest/${$obj$$}`)).TransferLog||[];await $rs$$.asyncJoinModel2($condition_req$$.id_app,"assproduct",{where:{idProduct:"id"},fields:"ten_san_pham"});await $rs$$.asyncJoinModel2($condition_req$$.id_app,"assperiod",{where:{idPeriod:"id"},fields:["ten_ky_han",
4
+ "lai_suat_cam_ket","lai_suat_truoc_han","lai_suat_thoi_gian_con_lai","lai_suat_tang_them_so_huu_token"]});await $rs$$.asyncJoinModel2($condition_req$$.id_app,"asskey",{where:{receiver:"address"},fields:["name","username"]});$rs$$.forEach($r$$=>{$r$$.date=new Date(1E3*Number($r$$.date));$r$$.bold=!1;$r$$.amount=Number($r$$.amount);$r$$.tokenAmount=Number($r$$.tokenAmount);$r$$.tokenValue=Number($r$$.tokenValue);$r$$.lai_suat=0;switch($r$$.subAction){case "camket":$r$$.lai_suat=$r$$.lai_suat_cam_ket;
5
+ break;case "truochan":$r$$.lai_suat=$r$$.lai_suat_truoc_han;break;case "ngtoken":$r$$.lai_suat=$r$$.lai_suat_tang_them_so_huu_token;break;case "cdttttruochan":$r$$.lai_suat=$r$$.lai_suat_thoi_gian_con_lai}});$rs$$.push({memo:"T\u1ed5ng c\u1ed9ng",bold:!0,amount:$rs$$.map($r$$=>$r$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$callback$$(null,$rs$$)}catch($e$$){$callback$$($e$$)}})};