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