flexbiz-server 12.5.38 → 12.5.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flexbiz-server",
3
3
  "main": "./server/app.js",
4
4
  "description": "Flexible Server",
5
- "version": "12.5.38",
5
+ "version": "12.5.40",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -1,40 +1,40 @@
1
1
  const async=require("async"),_=require("lodash"),{JSONParser}=require("../libs/utils"),{createHandler}=require("./createHandler"),{updateHandler}=require("./updateHandler"),{executeInTransaction}=require("../libs/sessionContext.js"),create=async($user$$,$ctrl$$,$data$$,$callback$$,$id_be_supply_by_user$$,$req$$,$action$$="add")=>{$req$$=$req$$||{};$req$$.user=$user$$;$req$$.data=$data$$;$req$$.id_be_supply_by_user=$id_be_supply_by_user$$;$req$$.action=$action$$;createHandler($ctrl$$,$req$$,($e_obj_created$$,
2
2
  $returnvalue$$)=>{if($e_obj_created$$)return $callback$$($e_obj_created$$);({obj_created:$e_obj_created$$}=$returnvalue$$);$callback$$(null,$e_obj_created$$)})},update=async function($user$$,$ctrl$$,$id$$,$data$$,$callback$$,$action$$,$req$$,$_action$$="update"){$req$$=$req$$||{};$req$$.action=$action$$;$req$$._action=$_action$$;$req$$.user=$user$$;$req$$.id=$id$$;$req$$.data=$data$$;updateHandler($ctrl$$,$req$$,($e$$,$returnvalue$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$returnvalue$$.new_obj)})};
3
- async function importHandler($user$$,$ctrl$$,$id_app$$,$data$$,$callback_main$$,$options$$={replace:!0,req:null,listinfo_code:null}){const $model$$=$ctrl$$.model;let $replace$$=$options$$.replace,$rows_error$$=[];var $custs_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-
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_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=global.getModel("listinfo"),$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=await $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.findOne({code:($options$$.listinfo_code||$ctrl$$.name).toLowerCase()}).lean();let $modelJoins$$=
4
+ [];$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$&&(await $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.updateModel($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$,$ctrl$$.model),$modelJoins$$=($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.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...");if($model$$.modelName!=="group"){var $nh_kh$$=$data$$.filter($r$$=>$r$$.ten_nh_kh);$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$data$$.filter($r$$=>$r$$.ten_nh_kh2);$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$data$$.filter($r$$=>$r$$.ten_nh_kh3);$model$$.schema.paths.details&&($nh_kh$$=$nh_kh$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,
6
+ $b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh)),$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh2)),$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_nh_kh3)));var $nh_kh_ten_nh_kh1s$$=
7
+ await $nh_kh$$.filter($c$$=>$c$$.ten_nh_kh&&!$c$$.nh_kh).asyncGroupBy(["ten_nh_kh"],[]);for(let $nh_kh1$$ of $nh_kh_ten_nh_kh1s$$){$nh_kh_ten_nh_kh1s$$={};$nh_kh_ten_nh_kh1s$$.id_app=$id_app$$;$nh_kh_ten_nh_kh1s$$.group_name=$nh_kh1$$.ten_nh_kh;$nh_kh_ten_nh_kh1s$$.group_type="CUSTOMER";$nh_kh_ten_nh_kh1s$$.group_kind=1;$nh_kh_ten_nh_kh1s$$.status=!0;$nh_kh_ten_nh_kh1s$$.user_created=$user$$.email;let $check$$=await global.getModel("group").findOne({group_name:$nh_kh1$$.ten_nh_kh,id_app:$id_app$$,
8
+ group_kind:1,group_type:"CUSTOMER"},{_id:1}).lean();if($check$$)$nh_kh$$.filter($c$$=>$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_ten_nh_kh1s$$);$nh_kh$$.filter($c$$=>$c$$.ten_nh_kh==$nh_kh1$$.ten_nh_kh).forEach($c$$=>{$c$$.nh_kh=$new_nh_kh$$._id.toString()})}}$nh_kh$$=await $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh2&&!$c$$.nh_kh2).asyncGroupBy(["ten_nh_kh2"],[]);
9
+ for(let $nh_kh2$$ of $nh_kh$$){$nh_kh$$={};$nh_kh$$.id_app=$id_app$$;$nh_kh$$.group_name=$nh_kh2$$.ten_nh_kh2;$nh_kh$$.group_type="CUSTOMER";$nh_kh$$.group_kind=2;$nh_kh$$.status=!0;$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$$)$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh2==$nh_kh2$$.ten_nh_kh2).forEach($c$$=>{$c$$.nh_kh2=$check$$._id.toString()});
10
+ else{const $new_nh_kh$$=await global.getModel("group").create($nh_kh$$);$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh2==$nh_kh2$$.ten_nh_kh2).forEach($c$$=>{$c$$.nh_kh2=$new_nh_kh$$._id.toString()})}}$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=await $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh3&&!$c$$.nh_kh3).asyncGroupBy(["ten_nh_kh3"],[]);for(let $nh_kh3$$ of $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$){$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$={};
11
+ $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.id_app=$id_app$$;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_name=$nh_kh3$$.ten_nh_kh3;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_type="CUSTOMER";$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_kind=3;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.status=!0;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.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$$)$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>
12
+ $c$$.ten_nh_kh3==$nh_kh3$$.ten_nh_kh3).forEach($c$$=>{$c$$.nh_kh3=$check$$._id.toString()});else{console.log("[importHanlder] create nhom kh3",$nh_kh3$$.ten_nh_kh3);const $new_nh_kh$$=await global.getModel("group").create($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$);$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nh_kh3==$nh_kh3$$.ten_nh_kh3).forEach($c$$=>{$c$$.nh_kh3=$new_nh_kh$$._id.toString()})}}}if($model$$.modelName!=="customer"){$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=
13
+ [];$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$data$$.filter($r$$=>$r$$.ten_kh);$model$$.schema.paths.details&&($custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.ten_kh)));$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.map($kh$$=>
14
+ {$kh$$.ma_kh||($kh$$.ma_kh=$kh$$.ten_kh.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase());return{ma_kh:$kh$$.ma_kh,ten_kh:$kh$$.ten_kh,dia_chi:$kh$$.dia_chi||"",dien_thoai:$kh$$.dien_thoai||"",ma_so_thue:$kh$$.ma_so_thue||"",nh_kh:$kh$$.nh_kh,ten_nh_kh:$kh$$.ten_nh_kh,ten_nh_kh2:$kh$$.ten_nh_kh2,nh_kh2:$kh$$.nh_kh2,ten_nh_kh3:$kh$$.ten_nh_kh3,nh_kh3:$kh$$.nh_kh3}});$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=await $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.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_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$)$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_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=
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_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=await $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.asyncGroupBy(["ma_kho","ten_kho"],[]);for(let $kho$$ of $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$)$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})}if($model$$.modelName!=="dmnvt"){$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$data$$.filter($r$$=>!$r$$.ma_nvt&&$r$$.ten_nvt);$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$data$$.filter($r$$=>!$r$$.ma_nvt2&&$r$$.ten_nvt2);$kh$$=$data$$.filter($r$$=>!$r$$.ma_nvt3&&$r$$.ten_nvt3);$model$$.schema.paths.details&&
18
+ ($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt&&$r$$.ten_nvt)),$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.concat($data$$.map($v$$=>$v$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt2&&$r$$.ten_nvt2)),$kh$$=$kh$$.concat($data$$.map($v$$=>$v$$.details||
19
+ []).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>!$r$$.ma_nvt3&&$r$$.ten_nvt3)));$nh_kh$$=await $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nvt).asyncGroupBy(["ten_nvt"],[]);for(let $nh_vt1$$ of $nh_kh$$){$nh_kh$$={};$nh_kh$$.id_app=$id_app$$;$nh_kh$$.ten_nvt=$nh_vt1$$.ten_nvt;$nh_kh$$.group_kind=1;$nh_kh$$.status=!0;$nh_kh$$.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();
20
+ if($check$$)$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nvt==$nh_vt1$$.ten_nvt).forEach($c$$=>{$c$$.ma_nvt=$check$$._id.toString()});else{console.log("[importHanlder] create nhom vat tu",$nh_vt1$$.ten_nvt);const $new_nvt$$=await global.getModel("dmnvt").create($nh_kh$$);$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.filter($c$$=>$c$$.ten_nvt==$nh_vt1$$.ten_nvt).forEach($c$$=>{$c$$.ma_nvt=$new_nvt$$._id.toString()})}}$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=await $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>
21
+ $c$$.ten_nvt2).asyncGroupBy(["ten_nvt2"],[]);for(let $nh_vt2$$ of $info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$){$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$={};$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.id_app=$id_app$$;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.ten_nvt=$nh_vt2$$.ten_nvt2;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.group_kind=2;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.status=!0;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$.user_created=$user$$.email;let $check$$=await global.getModel("dmnvt").findOne({ten_nvt:$nh_vt2$$.ten_nvt2,
22
+ id_app:$id_app$$,group_kind:2},{_id:1}).lean();if($check$$)$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.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",$nh_vt2$$.ten_nvt2);const $new_nvt$$=await global.getModel("dmnvt").create($info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$);$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.filter($c$$=>$c$$.ten_nvt2==$nh_vt2$$.ten_nvt2).forEach($c$$=>
23
+ {$c$$.ma_nvt2=$new_nvt$$._id.toString()})}}$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=await $kh$$.filter($c$$=>$c$$.ten_nvt3).asyncGroupBy(["ten_nvt3"],[]);for(let $nh_vt3$$ of $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$){$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$={};$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.id_app=$id_app$$;$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.ten_nvt=$nh_vt3$$.ten_nvt3;
24
+ $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.group_kind=3;$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$.status=!0;$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_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$$)$kh$$.filter($c$$=>$c$$.ten_nvt3==$nh_vt3$$.ten_nvt3).forEach($c$$=>{$c$$.ma_nvt3=$check$$._id.toString()});else{console.log("[importHanlder] create nhom vat tu 3",
25
+ $nh_vt3$$.ten_nvt3);const $new_nvt$$=await global.getModel("dmnvt").create($custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$);$kh$$.filter($c$$=>$c$$.ten_nvt3==$nh_vt3$$.ten_nvt3).forEach($c$$=>{$c$$.ma_nvt3=$new_nvt$$._id.toString()})}}}if($model$$.modelName!=="dmvt"){$kh$$=$data$$.filter($r$$=>$r$$.ma_vt&&$r$$.ten_vt);$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)));
26
+ $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,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(" "),[]);if($model$$.modelName!=="dmdvt"){$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=
27
+ await $kh$$.asyncGroupBy(["ma_dvt"],[]);for(var $dvt_tk_vt$$ of $custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$)$dvt_tk_vt$$.id_app=$id_app$$,$dvt_tk_vt$$.ten_dvt=$dvt_tk_vt$$.ma_dvt,$dvt_tk_vt$$.status=!0,$dvt_tk_vt$$.user_created=$user$$.email,await global.getModel("dmdvt").findOne({ma_dvt:$dvt_tk_vt$$.ma_dvt,id_app:$id_app$$}).lean()||(console.log("[importHanlder] create dvt",$dvt_tk_vt$$),await global.getModel("dmdvt").create($dvt_tk_vt$$))}$dvt_tk_vt$$=(await global.getModel("account").findOne({id_app:$id_app$$,
28
+ loai:1,tk:{$regex:"^156",$options:"i"}},{tk:1}).lean()||{}).tk;$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$=(await global.getModel("account").findOne({id_app:$id_app$$,loai:1,tk:{$regex:"^632",$options:"i"}},{tk:1}).lean()||{}).tk;$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$=(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_tk_vt$$,$vt$$.tk_gv=$custs_dvts_kho_will_creates_listInfo_new_custs_nh_kh3s_nh_vt$$,
29
+ $vt$$.tk_dt=$info_nh_kh$jscomp$2_nh_kh2s_nh_vt$$,$vt$$.status=!0,$vt$$.user_created=$user$$.email,await global.getModel("dmvt").findOne({ma_vt:$vt$$.ma_vt,id_app:$id_app$$}).lean()||(console.log("[importHanlder] create product",$vt$$),await global.getModel("dmvt").create($vt$$),$model$$.modelName!=="dmqddvt"&&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)||
30
+ delete $r$$._id});await $data$$.filter($r$$=>$r$$.ma_dvcs).asyncJoinModel2($id_app$$,global.getModel("dvcs"),{where:{ma_dvcs:"_id"},fields:"ten_dvcs"});console.error("[importHanlder] begin import",$ctrl$$.name);async.mapLimit($data$$,100,function($row$$,$callback$$){const $row_keys$$=Object.keys($row$$);$row_keys$$.filter($key$$=>$ctrl$$.model.schema.paths[$key$$]).forEach($key$$=>{let $data_type$$=$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase(),$data_value$$=$row$$[$key$$];if($data_value$$&&
31
+ _.isString($data_value$$)&&($data_type$$=="mixed"||$data_type$$=="array")&&($data_value$$=$data_value$$.trim(),$data_value$$.indexOf("[")==0||$data_value$$.indexOf("{")==0))try{$row$$[$key$$]=JSONParser($data_value$$)}catch($e$$){delete $row$$[$key$$],console.error("[importHanlder] Error parse data",$e$$)}});setImmediate(async()=>{for(let $i$$=0;$i$$<$modelJoins$$.length;$i$$++){let $field_ref$$=$modelJoins$$[$i$$];if($row$$[$field_ref$$.name]){let $new_data_ref$$=await global.getModel("originimportid").findOne({id_app:$id_app$$,
32
+ old_id:$row$$[$field_ref$$.name]}).lean();$new_data_ref$$&&($row$$[$field_ref$$.name]=$new_data_ref$$.new_id)}}delete $row$$.__v;let $old_id$$=$row$$._id;$row$$.ma_dvcs&&!$row$$.ten_dvcs&&delete $row$$.ma_dvcs;$row$$.id_app&&$id_app$$!=$row$$.id_app&&delete $row$$._id;delete $row$$.id_app;if($replace$$&&($ctrl$$.unique&&$ctrl$$.unique.length>0||$row$$._id)){let $query$$={};if($ctrl$$.unique&&$ctrl$$.unique.length>0){if($ctrl$$.options.unique_imp&&$row$$[$ctrl$$.options.unique_imp]!=null&&$row$$[$ctrl$$.options.unique_imp]!=
33
+ void 0&&$row$$[$ctrl$$.options.unique_imp]!="")$query$$[$ctrl$$.options.unique_imp]=$row$$[$ctrl$$.options.unique_imp];else if($ctrl$$.unique.forEach(function($k$$){$row_keys$$.indexOf($k$$)>=0&&($query$$[$k$$]=$row$$[$k$$],$query$$[$k$$]==void 0&&delete $query$$[$k$$])}),Object.keys($query$$).length<1)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, D\u1eef li\u1ec7u c\u1ea7n c\u00f3 \u00edt nh\u1ea5t m\u1ed9t gi\u00e1 tr\u1ecb:"+$ctrl$$.unique.join(","));$ctrl$$.require_id_app!=0&&($query$$.id_app=
34
+ $id_app$$)}else $query$$._id=$row$$._id;$ctrl$$.model.find($query$$).lean().then(async function($rss$$){if($rss$$.length>1)return $callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt, \u0111\u1ed1i t\u01b0\u1ee3ng "+Object.values($query$$).join("-")+" \u0111\u00e3 t\u1ed3n t\u1ea1i nhi\u1ec1u h\u01a1n m\u1ed9t l\u1ea7n");await executeInTransaction(()=>new Promise($resolve$$=>{let $foundObject$$;$rss$$.length===1&&($foundObject$$=$rss$$[0]);$foundObject$$?($row$$.id_app=$foundObject$$.id_app,$row$$._id=
35
+ $foundObject$$._id.toString(),($ctrl$$.unique||[]).forEach(function($k$$){$row$$[$k$$]=$foundObject$$[$k$$]}),update($user$$,$ctrl$$,$foundObject$$._id,$row$$,function($e$$){if($e$$){let $_e$$=$e$$;_.isArray($_e$$)||($_e$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$$})}$resolve$$()},"import",$options$$.req,"import")):create($user$$,$ctrl$$,$row$$,function($e$$,$new_row$$){setImmediate(async()=>{if($e$$){var $_e$jscomp$1_i$$=$e$$;_.isArray($_e$jscomp$1_i$$)||
36
+ ($_e$jscomp$1_i$$=[{error:$e$$.error||$e$$,code:$e$$.code}]);$rows_error$$.push({row:$row$$,error:$_e$jscomp$1_i$$})}else if($row$$._id_new__=$new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$new_row$$.id_app,old_id:$old_id$$},{id_app:$new_row$$.id_app,old_id:$old_id$$,new_id:$new_row$$._id.toString()},{new:!0,upsert:!0}),$_e$jscomp$1_i$$=0;$_e$jscomp$1_i$$<$data$$.length;$_e$jscomp$1_i$$++){const $_r$$=$data$$[$_e$jscomp$1_i$$];for(let $key$$ in $_r$$)$key$$!=
37
+ "_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$new_row$$._id.toString()}))}$resolve$$()})},$row$$._id,$options$$.req,"import")}));$callback$$()}).catch($error$$=>{console.error("[importHanlder] L\u1ed7i t\u00ecm object:",$error$$.message);$callback$$($error$$)})}else await executeInTransaction(()=>new Promise($resolve$$=>{create($user$$,$ctrl$$,$row$$,async function($e$jscomp$5_i$$,$_e$jscomp$2_new_row$$){if($e$jscomp$5_i$$)console.error("[importHanlder] error import data, creating...",
38
+ $e$jscomp$5_i$$),$_e$jscomp$2_new_row$$=$e$jscomp$5_i$$,_.isArray($_e$jscomp$2_new_row$$)||($_e$jscomp$2_new_row$$=[{error:$e$jscomp$5_i$$.error||$e$jscomp$5_i$$,code:$e$jscomp$5_i$$.code}]),$rows_error$$.push({error:$_e$jscomp$2_new_row$$});else if($row$$._id_new__=$_e$jscomp$2_new_row$$._id.toString(),$old_id$$)for(await global.getModel("originimportid").findOneAndUpdate({id_app:$_e$jscomp$2_new_row$$.id_app,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()},
39
+ {new:!0,upsert:!0}),$e$jscomp$5_i$$=0;$e$jscomp$5_i$$<$data$$.length;$e$jscomp$5_i$$++){const $_r$$=$data$$[$e$jscomp$5_i$$];for(let $key$$ in $_r$$)$key$$!="_id"&&$_r$$[$key$$]==$old_id$$&&($_r$$[$key$$]=$_e$jscomp$2_new_row$$._id.toString(),$_r$$._id_new__&&await $model$$.updateMany({_id:$_r$$._id_new__},{[$key$$]:$_e$jscomp$2_new_row$$._id.toString()}))}$resolve$$()},$row$$._id,$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
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;
@@ -45,23 +45,26 @@ $rs$$.giabans[0].t_sl_den||($rs$$.giabans=[$rs$$.giabans[0]]);$e$jscomp$7_g$jsco
45
45
  !$g$$.sl_tu)||($rs$$.giabans=[...$rs$$.giabans,{gia_ban_le:$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0,gia_ban_buon:$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||0,ma_nt:$vt$$.ma_nt0,gia_ban_chua_thue:$vt$$.gia_ban_chua_thue,t_sl_tu:0,t_sl_den:0,sl_tu:0,sl_den:$rs$$.giabans.length>0?$rs$$.giabans.sort(($a$$,$b$$)=>$a$$.sl_tu-$b$$.sl_tu)[0].sl_tu-.001:0}]);for(var $g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$ of $rs$$.giabans)$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt||($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt=
46
46
  "VND"),$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_thue=$vt$$.ma_thue,$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.thue_suat=$vt$$.thue_suat;await $rs$$.giabans.asyncJoinModel2($condition$$.id_app,"currency",{where:"ma_nt",fields:["ty_gia"]});await [$vt$$].asyncJoinModel2($condition$$.id_app,"currency",{where:{ma_nt0:"ma_nt"},fields:[{ty_gia0:"ty_gia"}]});$vt$$.ma_thue&&await [$vt$$].asyncJoinModel2($condition$$.id_app,"vat",{where:{ma_thue:"ma_thue"},fields:[{thue_suat:"thue_suat"}]});
47
47
  $rs$$.giabans.forEach($g$$=>{$par$$&&$par$$.ma_nt&&$par$$.ty_gia&&$g$$.ma_nt!==$par$$.ma_nt?($g$$.gia_ban_le0_qd=utils.round(($vt$$.gia_ban_le0||0)*$vt$$.ty_gia0/$par$$.ty_gia,2),$g$$.gia_ban_buon0_qd=utils.round(($vt$$.gia_ban_buon0||0)*$vt$$.ty_gia0/$par$$.ty_gia,2),$g$$.gia_ban_le=utils.round($g$$.gia_ban_le*$g$$.ty_gia/$par$$.ty_gia,2),$g$$.gia_ban_buon=utils.round(($g$$.gia_ban_buon||0)*$g$$.ty_gia/$par$$.ty_gia,2),$g$$.ma_nt=$par$$.ma_nt,$g$$.ty_gia=$par$$.ty_gia):($g$$.gia_ban_le0_qd=$vt$$.gia_ban_le0||
48
- 0,$g$$.gia_ban_buon0_qd=$vt$$.gia_ban_buon0||0)});for($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=0;$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$<$rs$$.giabans.length;$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$++)$e$jscomp$7_g$jscomp$12_giabans$$=$rs$$.giabans[$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$],$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_chua_thue?($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd,
48
+ 0,$g$$.gia_ban_buon0_qd=$vt$$.gia_ban_buon0||0)});for($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=0;$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$<$rs$$.giabans.length;$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$++){$e$jscomp$7_g$jscomp$12_giabans$$=$rs$$.giabans[$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$];$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_chua_thue?($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd,
49
49
  $e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon,$vt$$.ma_thue&&($vt$$.thue_suat=$vt$$.thue_suat||0,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct*(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd=
50
50
  utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct*(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct*(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct*(1+$vt$$.thue_suat/100),2))):($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=
51
51
  $e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon,$vt$$.ma_thue&&($vt$$.thue_suat=$vt$$.thue_suat||0,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd/(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd/
52
- (1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le/(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon/(1+$vt$$.thue_suat/100),2))),delete $e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_chua_thue,$e$jscomp$7_g$jscomp$12_giabans$$.he_so_qd=$he_so_qd$$,$condition$$.ma_dvt_sd&&$rs$$.giabans.forEach($g$$=>{$g$$.gia_ban_le=utils.round($g$$.gia_ban_le*
53
- $he_so_qd$$,round);$g$$.gia_ban_buon=utils.round($g$$.gia_ban_buon*$he_so_qd$$,round);$g$$.gia_ban_le0_qd_ct=utils.round($g$$.gia_ban_le0_qd_ct*$he_so_qd$$,round);$g$$.gia_ban_buon0_qd_ct=utils.round($g$$.gia_ban_buon0_qd_ct*$he_so_qd$$,round);$g$$.gia_ban_le_ct=utils.round($g$$.gia_ban_le_ct*$he_so_qd$$,round);$g$$.gia_ban_buon_ct=utils.round($g$$.gia_ban_buon_ct*$he_so_qd$$,round);$g$$.ma_dvt=$condition$$.ma_dvt_sd;$g$$.he_so_qd=$he_so_qd$$});$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=
54
- $rs$$.giabans.filter($g$$=>$g$$.sl_tu<=$condition$$.so_luong&&(!$g$$.sl_den||$g$$.sl_den>$condition$$.so_luong)&&$g$$.t_sl_tu<=$condition$$.t_so_luong&&(!$g$$.t_sl_den||$g$$.t_sl_den>$condition$$.t_so_luong)&&(!$g$$.t_sl_ntt_tu||$g$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$g$$.t_sl_ntt_den||$g$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&(!$g$$.t_tien_ntt_tu||$g$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$g$$.t_tien_ntt_den||$g$$.t_tien_ntt_den>$condition$$.t_tien_ntt));$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=
55
- $g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.length>0?$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$[0]:$rs$$.giabans[0]||{};$rs$$.price={gia_ban_le0_qd:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le0_qd,gia_ban_buon0_qd:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon0_qd,gia_ban_le:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le,gia_ban_buon:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon,gia_ban_le0_qd_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le0_qd_ct,
56
- gia_ban_buon0_qd_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon0_qd_ct,gia_ban_le_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le_ct,gia_ban_buon_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon_ct,ma_nt:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt,ty_gia:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ty_gia,ma_thue:$vt$$.ma_thue,thue_suat:$vt$$.thue_suat,prices:$rs$$.giabans}}if($condition$$.get_discount!=
57
- 0){$rs$$.discount=$rs$$.discount_vt;$rs$$.discount.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.price.discount=$rs$$.discount.sort(function($a$$,$b$$){return($b$$.ap_dung_lan_mua_tu_thu||0)>($a$$.ap_dung_lan_mua_tu_thu||0)?1:$b$$.ty_le_ck-$a$$.ty_le_ck});let $discounts$$=[];$rs$$.price.discount.forEach($d$$=>{$d$$.tien_ck&&$rs$$.price.gia_ban_le_ct&&($d$$.ty_le_ck=$d$$.tien_ck/$rs$$.price.gia_ban_le_ct*100);$d$$.sl_tu=$d$$.sl_tu||0;$d$$.sl_den=$d$$.sl_den||0;$d$$.gt_hd_tu=$d$$.gt_hd_tu||0;$d$$.gt_hd_den=
58
- $d$$.gt_hd_den||0;$discounts$$.push($d$$)});$rs$$.price.discount=$discounts$$;let $t_gt_hd$$=$condition$$.t_gt_hd||0,$t_tien_ntt$$=$condition$$.t_tien_ntt||0,$t_so_luong_ntt$$=$condition$$.t_so_luong_ntt||0,$default_cks$$=$discounts$$.filter($d$$=>(!$d$$.gt_hd_tu||$d$$.gt_hd_tu<=$t_gt_hd$$)&&(!$d$$.gt_hd_den||$d$$.gt_hd_den>$t_gt_hd$$)&&!$d$$.mua_them&&$condition$$.so_luong>=$d$$.sl_tu&&(!$d$$.sl_den||$d$$.sl_den>$condition$$.so_luong)&&(!$d$$.t_sl_tu||$d$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$d$$.t_sl_den||
59
- $d$$.t_sl_den>$condition$$.t_so_luong)&&(!$d$$.t_sl_ntt_tu||$d$$.t_sl_ntt_tu<=$t_so_luong_ntt$$)&&(!$d$$.t_sl_ntt_den||$d$$.t_sl_ntt_den>$t_so_luong_ntt$$)&&(!$d$$.t_tien_ntt_tu||$d$$.t_tien_ntt_tu<=$t_tien_ntt$$)&&(!$d$$.t_tien_ntt_den||$d$$.t_tien_ntt_den>$t_tien_ntt$$));var $default_ck_groups$jscomp$2_i$$;$condition$$.id_cs_ck&&($default_ck_groups$jscomp$2_i$$=$default_cks$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs_ck));!$default_ck_groups$jscomp$2_i$$&&$default_cks$$.length>0&&($default_ck_groups$jscomp$2_i$$=
60
- [...(new Set($default_cks$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$default_cks$$.filter($d$$=>($d$$.ma_nhom||"")==($ma_nhom$$||""))})),$default_ck_groups$jscomp$2_i$$=await calcDefaultDiscount($condition$$.id_app,$default_ck_groups$jscomp$2_i$$));$default_ck_groups$jscomp$2_i$$&&(underscore.extend($rs$$.price,{sl_tu:$default_ck_groups$jscomp$2_i$$.sl_tu,ty_le_ck:$default_ck_groups$jscomp$2_i$$.ty_le_ck||0,tien_ck:$default_ck_groups$jscomp$2_i$$.tien_ck,gt_hd_tu:$default_ck_groups$jscomp$2_i$$.gt_hd_tu,
61
- gt_hd_den:$default_ck_groups$jscomp$2_i$$.gt_hd_den,sl_ap_dung:$default_ck_groups$jscomp$2_i$$.sl_ap_dung,so_tien_max:$default_ck_groups$jscomp$2_i$$.so_tien_max,id_cs:$default_ck_groups$jscomp$2_i$$._id}),$rs$$.tien_ck_tmp=$rs$$.tien_ck,$rs$$.tien_ck_tmp||($rs$$.tien_ck_tmp=utils.round($rs$$.price.gia_ban_le_ct*$rs$$.ty_le_ck/100,2)),$rs$$.price.gia_ban_le_sau_ck_tmp=Math.max(0,$rs$$.price.gia_ban_le-$rs$$.tien_ck_tmp));$default_ck_groups$jscomp$2_i$$=underscore.filter($rs$$.discount,$d$$=>$d$$.sl_tu>
62
- 1).sort(function($a$$,$b$$){return $b$$.ty_le_ck-$a$$.ty_le_ck});$default_ck_groups$jscomp$2_i$$.length>0&&($rs$$.price.ck_sl_tu2=$default_ck_groups$jscomp$2_i$$)}if($condition$$.get_promotion!=0){$rs$$.promotion=$rs$$.promotion_vt;$rs$$.promotion.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.promotion&&$rs$$.promotion.forEach($p$$=>{delete $p$$.status;delete $p$$.user_created;delete $p$$.user_updated;delete $p$$.date_created;delete $p$$.date_updated;delete $p$$.exfields;delete $p$$.id_app;delete $p$$.dmkh;
63
- delete $p$$.dmkho;delete $p$$.dmnvt;delete $p$$.dmvt;delete $p$$.__v});$rs$$.price.promotion=$rs$$.promotion||[];$condition$$.ma_ct?($rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct||$p$$.chi_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())>=0),$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.khong_su_dung_cho_ct||$p$$.khong_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())<0)):$rs$$.price.promotion=
64
- $rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct&&!$p$$.khong_su_dung_cho_ct);for($default_ck_groups$jscomp$2_i$$=0;$default_ck_groups$jscomp$2_i$$<$rs$$.price.promotion.length;$default_ck_groups$jscomp$2_i$$++)$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$rs$$.price.promotion[$default_ck_groups$jscomp$2_i$$],await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).asyncJoinModel2($condition$$.id_app,dmvt,{where:"ma_vt",fields:["ten_vt","picture"]}),await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||
65
- []).filter($d$$=>$d$$.ma_tt1).asyncJoinModel2($condition$$.id_app,"dmtt",{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),setFields:($item$$,$ref$$)=>{$item$$.thuoc_tinh=$ref$$}});let $promotions_df$$=$rs$$.price.promotion.filter($p$$=>$p$$.details_km&&$p$$.details_km.length>0&&$p$$.sl_tu<=$condition$$.so_luong&&(!$p$$.sl_den||$p$$.sl_den>=$condition$$.so_luong||$p$$.sl_den===$p$$.sl_tu)&&(!$p$$.t_sl_tu||$p$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$p$$.t_sl_den||$p$$.t_sl_den>
66
- $condition$$.t_so_luong)&&(!$p$$.t_sl_ntt_tu||$p$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$p$$.t_sl_ntt_den||$p$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&(!$p$$.t_tien_ntt_tu||$p$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$p$$.t_tien_ntt_den||$p$$.t_tien_ntt_den>$condition$$.t_tien_ntt));var $groups$$;$condition$$.id_cs&&($groups$$=$promotions_df$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs));!$groups$$&&$promotions_df$$.length>0&&($promotions_df$$.forEach($p$$=>{$p$$.t_sl_km=($p$$.details_km||
67
- []).map($d$$=>$d$$.sl_km||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)}),$groups$$=[...(new Set($promotions_df$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$promotions_df$$.filter($d$$=>($d$$.ma_nhom||"")==$ma_nhom$$)})),$groups$$=await calcDefaultPromotion($condition$$.id_app,$groups$$));$rs$$.price.default_promotion=$groups$$}$fn$$(null,$rs$$.price)})}else $fn$$(`Condition required ma_vt,id_app. Current condition ${JSON.stringify($condition$$)}`)};
52
+ (1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le/(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon/(1+$vt$$.thue_suat/100),2)));delete $e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_chua_thue;if($e$jscomp$7_g$jscomp$12_giabans$$.ma_dvt_gia_ban){let $qddct$$=await global.getModel("dmqddvt").findOne({id_app:$condition$$.id_app,ma_vt:$condition$$.ma_vt,
53
+ ma_dvt:$e$jscomp$7_g$jscomp$12_giabans$$.ma_dvt_gia_ban}).lean();if($qddct$$){let $he_so_qd_dvtc$$=$qddct$$.ty_le_qd?1/$qddct$$.ty_le_qd:1;$qddct$$.mau&&$qddct$$.tu&&($he_so_qd_dvtc$$=$qddct$$.mau/$qddct$$.tu);$he_so_qd_dvtc$$&&$he_so_qd_dvtc$$!=1&&($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon*$he_so_qd_dvtc$$,round),
54
+ $e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct*
55
+ $he_so_qd_dvtc$$,round))}}$e$jscomp$7_g$jscomp$12_giabans$$.he_so_qd=$he_so_qd$$;$condition$$.ma_dvt_sd&&$rs$$.giabans.forEach($g$$=>{$g$$.gia_ban_le=utils.round($g$$.gia_ban_le*$he_so_qd$$,round);$g$$.gia_ban_buon=utils.round($g$$.gia_ban_buon*$he_so_qd$$,round);$g$$.gia_ban_le0_qd_ct=utils.round($g$$.gia_ban_le0_qd_ct*$he_so_qd$$,round);$g$$.gia_ban_buon0_qd_ct=utils.round($g$$.gia_ban_buon0_qd_ct*$he_so_qd$$,round);$g$$.gia_ban_le_ct=utils.round($g$$.gia_ban_le_ct*$he_so_qd$$,round);$g$$.gia_ban_buon_ct=
56
+ utils.round($g$$.gia_ban_buon_ct*$he_so_qd$$,round);$g$$.ma_dvt=$condition$$.ma_dvt_sd;$g$$.he_so_qd=$he_so_qd$$})}$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$rs$$.giabans.filter($g$$=>$g$$.sl_tu<=$condition$$.so_luong&&(!$g$$.sl_den||$g$$.sl_den>$condition$$.so_luong)&&$g$$.t_sl_tu<=$condition$$.t_so_luong&&(!$g$$.t_sl_den||$g$$.t_sl_den>$condition$$.t_so_luong)&&(!$g$$.t_sl_ntt_tu||$g$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$g$$.t_sl_ntt_den||$g$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&
57
+ (!$g$$.t_tien_ntt_tu||$g$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$g$$.t_tien_ntt_den||$g$$.t_tien_ntt_den>$condition$$.t_tien_ntt));$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.length>0?$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$[0]:$rs$$.giabans[0]||{};$rs$$.price={gia_ban_le0_qd:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le0_qd,gia_ban_buon0_qd:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon0_qd,
58
+ gia_ban_le:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le,gia_ban_buon:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon,gia_ban_le0_qd_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le0_qd_ct,gia_ban_buon0_qd_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon0_qd_ct,gia_ban_le_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le_ct,gia_ban_buon_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon_ct,
59
+ ma_nt:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt,ty_gia:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ty_gia,ma_thue:$vt$$.ma_thue,thue_suat:$vt$$.thue_suat,prices:$rs$$.giabans}}if($condition$$.get_discount!=0){$rs$$.discount=$rs$$.discount_vt;$rs$$.discount.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.price.discount=$rs$$.discount.sort(function($a$$,$b$$){return($b$$.ap_dung_lan_mua_tu_thu||0)>($a$$.ap_dung_lan_mua_tu_thu||0)?1:$b$$.ty_le_ck-$a$$.ty_le_ck});let $discounts$$=
60
+ [];$rs$$.price.discount.forEach($d$$=>{$d$$.tien_ck&&$rs$$.price.gia_ban_le_ct&&($d$$.ty_le_ck=$d$$.tien_ck/$rs$$.price.gia_ban_le_ct*100);$d$$.sl_tu=$d$$.sl_tu||0;$d$$.sl_den=$d$$.sl_den||0;$d$$.gt_hd_tu=$d$$.gt_hd_tu||0;$d$$.gt_hd_den=$d$$.gt_hd_den||0;$discounts$$.push($d$$)});$rs$$.price.discount=$discounts$$;let $t_gt_hd$$=$condition$$.t_gt_hd||0,$t_tien_ntt$$=$condition$$.t_tien_ntt||0,$t_so_luong_ntt$$=$condition$$.t_so_luong_ntt||0,$default_cks$$=$discounts$$.filter($d$$=>(!$d$$.gt_hd_tu||
61
+ $d$$.gt_hd_tu<=$t_gt_hd$$)&&(!$d$$.gt_hd_den||$d$$.gt_hd_den>$t_gt_hd$$)&&!$d$$.mua_them&&$condition$$.so_luong>=$d$$.sl_tu&&(!$d$$.sl_den||$d$$.sl_den>$condition$$.so_luong)&&(!$d$$.t_sl_tu||$d$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$d$$.t_sl_den||$d$$.t_sl_den>$condition$$.t_so_luong)&&(!$d$$.t_sl_ntt_tu||$d$$.t_sl_ntt_tu<=$t_so_luong_ntt$$)&&(!$d$$.t_sl_ntt_den||$d$$.t_sl_ntt_den>$t_so_luong_ntt$$)&&(!$d$$.t_tien_ntt_tu||$d$$.t_tien_ntt_tu<=$t_tien_ntt$$)&&(!$d$$.t_tien_ntt_den||$d$$.t_tien_ntt_den>
62
+ $t_tien_ntt$$));var $default_ck_groups$jscomp$2_i$$;$condition$$.id_cs_ck&&($default_ck_groups$jscomp$2_i$$=$default_cks$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs_ck));!$default_ck_groups$jscomp$2_i$$&&$default_cks$$.length>0&&($default_ck_groups$jscomp$2_i$$=[...(new Set($default_cks$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$default_cks$$.filter($d$$=>($d$$.ma_nhom||"")==($ma_nhom$$||""))})),$default_ck_groups$jscomp$2_i$$=await calcDefaultDiscount($condition$$.id_app,
63
+ $default_ck_groups$jscomp$2_i$$));$default_ck_groups$jscomp$2_i$$&&(underscore.extend($rs$$.price,{sl_tu:$default_ck_groups$jscomp$2_i$$.sl_tu,ty_le_ck:$default_ck_groups$jscomp$2_i$$.ty_le_ck||0,tien_ck:$default_ck_groups$jscomp$2_i$$.tien_ck,gt_hd_tu:$default_ck_groups$jscomp$2_i$$.gt_hd_tu,gt_hd_den:$default_ck_groups$jscomp$2_i$$.gt_hd_den,sl_ap_dung:$default_ck_groups$jscomp$2_i$$.sl_ap_dung,so_tien_max:$default_ck_groups$jscomp$2_i$$.so_tien_max,id_cs:$default_ck_groups$jscomp$2_i$$._id}),$rs$$.tien_ck_tmp=
64
+ $rs$$.tien_ck,$rs$$.tien_ck_tmp||($rs$$.tien_ck_tmp=utils.round($rs$$.price.gia_ban_le_ct*$rs$$.ty_le_ck/100,2)),$rs$$.price.gia_ban_le_sau_ck_tmp=Math.max(0,$rs$$.price.gia_ban_le-$rs$$.tien_ck_tmp));$default_ck_groups$jscomp$2_i$$=underscore.filter($rs$$.discount,$d$$=>$d$$.sl_tu>1).sort(function($a$$,$b$$){return $b$$.ty_le_ck-$a$$.ty_le_ck});$default_ck_groups$jscomp$2_i$$.length>0&&($rs$$.price.ck_sl_tu2=$default_ck_groups$jscomp$2_i$$)}if($condition$$.get_promotion!=0){$rs$$.promotion=$rs$$.promotion_vt;
65
+ $rs$$.promotion.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.promotion&&$rs$$.promotion.forEach($p$$=>{delete $p$$.status;delete $p$$.user_created;delete $p$$.user_updated;delete $p$$.date_created;delete $p$$.date_updated;delete $p$$.exfields;delete $p$$.id_app;delete $p$$.dmkh;delete $p$$.dmkho;delete $p$$.dmnvt;delete $p$$.dmvt;delete $p$$.__v});$rs$$.price.promotion=$rs$$.promotion||[];$condition$$.ma_ct?($rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct||$p$$.chi_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())>=
66
+ 0),$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.khong_su_dung_cho_ct||$p$$.khong_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())<0)):$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct&&!$p$$.khong_su_dung_cho_ct);for($default_ck_groups$jscomp$2_i$$=0;$default_ck_groups$jscomp$2_i$$<$rs$$.price.promotion.length;$default_ck_groups$jscomp$2_i$$++)$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$rs$$.price.promotion[$default_ck_groups$jscomp$2_i$$],
67
+ await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).asyncJoinModel2($condition$$.id_app,dmvt,{where:"ma_vt",fields:["ten_vt","picture"]}),await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).filter($d$$=>$d$$.ma_tt1).asyncJoinModel2($condition$$.id_app,"dmtt",{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),setFields:($item$$,$ref$$)=>{$item$$.thuoc_tinh=$ref$$}});let $promotions_df$$=$rs$$.price.promotion.filter($p$$=>$p$$.details_km&&
68
+ $p$$.details_km.length>0&&$p$$.sl_tu<=$condition$$.so_luong&&(!$p$$.sl_den||$p$$.sl_den>=$condition$$.so_luong||$p$$.sl_den===$p$$.sl_tu)&&(!$p$$.t_sl_tu||$p$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$p$$.t_sl_den||$p$$.t_sl_den>$condition$$.t_so_luong)&&(!$p$$.t_sl_ntt_tu||$p$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$p$$.t_sl_ntt_den||$p$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&(!$p$$.t_tien_ntt_tu||$p$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$p$$.t_tien_ntt_den||$p$$.t_tien_ntt_den>$condition$$.t_tien_ntt));
69
+ var $groups$$;$condition$$.id_cs&&($groups$$=$promotions_df$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs));!$groups$$&&$promotions_df$$.length>0&&($promotions_df$$.forEach($p$$=>{$p$$.t_sl_km=($p$$.details_km||[]).map($d$$=>$d$$.sl_km||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)}),$groups$$=[...(new Set($promotions_df$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$promotions_df$$.filter($d$$=>($d$$.ma_nhom||"")==$ma_nhom$$)})),$groups$$=await calcDefaultPromotion($condition$$.id_app,
70
+ $groups$$));$rs$$.price.default_promotion=$groups$$}$fn$$(null,$rs$$.price)})}else $fn$$(`Condition required ma_vt,id_app. Current condition ${JSON.stringify($condition$$)}`)};
@@ -1,8 +1,8 @@
1
- const sanphamSchema=new Schema({ma_vt:{type:String,uppercase:!0,default:"",maxlength:1024,trim:!0},ten_vt:String,ma_nvt:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt2:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt3:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt4:{type:String,default:"",maxlength:1024,trim:!0},nh_kh:{type:String,default:"",maxlength:1024,trim:!0},nh_kh2:{type:String,default:"",maxlength:1024,trim:!0},nh_kh3:{type:String,default:"",maxlength:1024,trim:!0},nh_kh4:{type:String,
2
- default:"",maxlength:1024,trim:!0},ma_tt1:{type:String,trim:!0},ma_tt2:{type:String,trim:!0},ma_tt3:{type:String,trim:!0},sl_tu:{type:Number,default:0},sl_den:{type:Number,default:0},t_sl_ntt_tu:{type:Number,default:0},t_sl_ntt_den:{type:Number,default:0},t_sl_tu:{type:Number,default:0},t_sl_den:{type:Number,default:0},gia_nhap:{type:Number,default:0},ty_suat_ln:{type:Number,default:0},loi_nhuan:{type:Number,default:0},gia_ban_le:{type:Number,default:0},gia_ban_buon:{type:Number,default:0},gia_ban_chua_thue:{type:Boolean,
3
- default:!1},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}}),banggiabanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt_uu_tien:Number,ma_ct:{type:String,default:"BGB"},so_ct:{type:String,default:"BGB"},ngay_ct:{type:Date,default:Date.now},trang_thai:{type:String,default:"5"},ma_nt:String,mieu_ta:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32,trim:!0},ten_kh:String,nh_kh:{type:String,maxlength:1024,trim:!0},ten_nh_kh:String,
4
- nh_kh2:{type:String,maxlength:1024,trim:!0},ten_nh_kh2:String,nh_kh3:{type:String,maxlength:1024,trim:!0},ten_nh_kh3:String,nh_kh4:{type:String,maxlength:1024,trim:!0},ten_nh_kh4:String,nh_kh5:{type:String,maxlength:1024,trim:!0},ten_nh_kh5:String,ma_kho:{type:String,default:"",maxlength:32,trim:!0},ten_kho:String,ma_ban:{type:String,default:"",maxlength:32,trim:!0},ten_ban:String,hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},
5
- ap_dung_lan_mua_den_thu:{type:Number},online:{type:Boolean},offline:{type:Boolean},details:[sanphamSchema],exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}},{toJSON:{virtuals:!0}});
1
+ const sanphamSchema=new Schema({ma_vt:{type:String,uppercase:!0,default:"",maxlength:1024,trim:!0},ten_vt:String,ma_dvt_gia_ban:String,ma_nvt:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt2:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt3:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt4:{type:String,default:"",maxlength:1024,trim:!0},ma_kh:String,nh_kh:{type:String,default:"",maxlength:1024,trim:!0},nh_kh2:{type:String,default:"",maxlength:1024,trim:!0},nh_kh3:{type:String,default:"",
2
+ maxlength:1024,trim:!0},nh_kh4:{type:String,default:"",maxlength:1024,trim:!0},ma_tt1:{type:String,trim:!0},ma_tt2:{type:String,trim:!0},ma_tt3:{type:String,trim:!0},sl_tu:{type:Number,default:0},sl_den:{type:Number,default:0},t_sl_ntt_tu:{type:Number,default:0},t_sl_ntt_den:{type:Number,default:0},t_sl_tu:{type:Number,default:0},t_sl_den:{type:Number,default:0},gia_nhap:{type:Number,default:0},ty_suat_ln:{type:Number,default:0},loi_nhuan:{type:Number,default:0},gia_ban_le:{type:Number,default:0},
3
+ gia_ban_buon:{type:Number,default:0},gia_ban_chua_thue:{type:Boolean,default:!1},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}}),banggiabanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt_uu_tien:Number,ma_ct:{type:String,default:"BGB"},so_ct:{type:String,default:"BGB"},ngay_ct:{type:Date,default:Date.now},trang_thai:{type:String,default:"5"},ma_nt:String,mieu_ta:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32,trim:!0},ten_kh:String,
4
+ nh_kh:{type:String,maxlength:1024,trim:!0},ten_nh_kh:String,nh_kh2:{type:String,maxlength:1024,trim:!0},ten_nh_kh2:String,nh_kh3:{type:String,maxlength:1024,trim:!0},ten_nh_kh3:String,nh_kh4:{type:String,maxlength:1024,trim:!0},ten_nh_kh4:String,nh_kh5:{type:String,maxlength:1024,trim:!0},ten_nh_kh5:String,ma_kho:{type:String,default:"",maxlength:32,trim:!0},ten_kho:String,ma_ban:{type:String,default:"",maxlength:32,trim:!0},ten_ban:String,hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,
5
+ required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},online:{type:Boolean},offline:{type:Boolean},details:[sanphamSchema],exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}},{toJSON:{virtuals:!0}});
6
6
  (global.configs||{}).createIndexes&&(banggiabanSchema.index({id_app:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1}),banggiabanSchema.index({ma_ct:1}),banggiabanSchema.index({ngay_ct:1}),banggiabanSchema.index({so_ct:1}),banggiabanSchema.index({trang_thai:1}),banggiabanSchema.index({"details.ma_vt":1}),banggiabanSchema.index({"details.ma_tt1":1}),banggiabanSchema.index({"details.ma_tt2":1}),banggiabanSchema.index({"details.ma_tt3":1}),banggiabanSchema.index({"details.ma_nvt":1}),banggiabanSchema.index({"details.sl_tu":1}),
7
7
  banggiabanSchema.index({"details.sl_den":1}),banggiabanSchema.index({nh_kh:1}),banggiabanSchema.index({nh_kh2:1}),banggiabanSchema.index({nh_kh3:1}),banggiabanSchema.index({nh_kh4:1}),banggiabanSchema.index({nh_kh5:1}),banggiabanSchema.index({ma_kho:1}),banggiabanSchema.index({ma_ban:1}),banggiabanSchema.index({ma_kh:1}),banggiabanSchema.index({ap_dung_lan_mua_thu:1}),banggiabanSchema.index({ap_dung_lan_mua_tu_thu:1}),banggiabanSchema.index({ap_dung_lan_mua_den_thu:1}),banggiabanSchema.index({t_sl_tu:1}),
8
8
  banggiabanSchema.index({t_sl_den:1}),banggiabanSchema.index({date_updated:-1}),banggiabanSchema.index({date_created:-1}),banggiabanSchema.index({user_created:1}),banggiabanSchema.index({status:1}),banggiabanSchema.index({online:1}),banggiabanSchema.index({offline:1}),banggiabanSchema.index({mieu_ta:"text",ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"banggiaban_index_text"}));const model=mongoose.models.banggiaban||mongoose.model("banggiaban",banggiabanSchema);module.exports=model;
@@ -1,5 +1,5 @@
1
- const moment=require("moment"),chamcongSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_bp:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ten_nv:String,ma_loai_cong:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ngay:Date,gio_vao:Date,gio_ra:Date,gio_vao_f:String,gio_ra_f:String,tong_gio_lam:{type:Number,default:0},ghi_chu:String,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},device_user_id:String,
2
- id_checkin:String,date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
1
+ const moment=require("moment"),chamcongSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_bp:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ten_nv:String,ma_loai_cong:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ngay:Date,gio_vao:Date,gio_ra:Date,gio_vao_f:String,gio_ra_f:String,tong_gio_lam:{type:Number,default:0},ma_kh:String,note:String,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},
2
+ device_user_id:String,id_checkin:String,date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
3
3
  chamcongSchema.pre("save",function($next$$){console.log("handle du lieu cham cong",this);try{if(this.gio_vao_f){let $gio_vao$$=moment(this.ngay),[$gio$$,$phut$$]=this.gio_vao_f.split(":");if($gio$$){$gio$$=Number($gio$$);if(isNaN($gio$$))return $next$$("Gi\u1edd v\u00e0o kh\u00f4ng h\u1ee3p l\u1ec7");$gio_vao$$=$gio_vao$$.hours($gio$$)}else return $next$$("Gi\u1edd v\u00e0o kh\u00f4ng h\u1ee3p l\u1ec7");$phut$$?($phut$$=Number($phut$$),isNaN($phut$$)&&($phut$$=0)):$phut$$=0;$gio_vao$$=$gio_vao$$.minutes($phut$$);
4
4
  this.gio_vao=$gio_vao$$.toDate()}if(this.gio_ra_f){let $gio_ra$$=moment(this.ngay),[$gio$$,$phut$$]=this.gio_ra_f.split(":");if($gio$$){$gio$$=Number($gio$$);if(isNaN($gio$$))return $next$$("Gi\u1edd ra kh\u00f4ng h\u1ee3p l\u1ec7");$gio_ra$$=$gio_ra$$.hours($gio$$)}else return $next$$("Gi\u1edd ra kh\u00f4ng h\u1ee3p l\u1ec7");$phut$$?($phut$$=Number($phut$$),isNaN($phut$$)||($phut$$=0)):$phut$$=0;$gio_ra$$=$gio_ra$$.minutes($phut$$);this.gio_ra=$gio_ra$$.toDate()}}catch($e$$){return console.error("chamcong kh\u00f4ng h\u1ee3p l\u1ec7",
5
5
  this),$next$$({error:"C\u00f4ng kh\u00f4ng h\u1ee3p l\u1ec7"})}$next$$()});
@@ -1,8 +1,8 @@
1
- const dmgiabanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:String,stt_uu_tien:Number,ma_vt:{type:String,uppercase:!0,default:"",maxlength:1024,trim:!0},ten_vt:String,ma_nvt:{type:String,default:"",maxlength:1024,trim:!0},ten_nvt:String,ma_nvt2:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt3:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt4:{type:String,default:"",maxlength:1024,trim:!0},mieu_ta:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",
2
- maxlength:32,trim:!0},ten_kh:String,nh_kh:{type:String,maxlength:1024,trim:!0},ten_nh_kh:String,nh_kh2:{type:String,maxlength:1024,trim:!0},ten_nh_kh2:String,nh_kh3:{type:String,maxlength:1024,trim:!0},ten_nh_kh3:String,nh_kh4:{type:String,maxlength:1024,trim:!0},ten_nh_kh4:String,nh_kh5:{type:String,maxlength:1024,trim:!0},ten_nh_kh5:String,ma_kho:{type:String,default:"",maxlength:32,trim:!0},ten_kho:String,ma_ban:{type:String,default:"",maxlength:32,trim:!0},ten_ban:String,ma_tt1:{type:String,trim:!0},
3
- ma_tt2:{type:String,trim:!0},ma_tt3:{type:String,trim:!0},sl_tu:{type:Number,default:0},sl_den:{type:Number,default:0},t_sl_tu:{type:Number,default:0},t_sl_den:{type:Number,default:0},t_sl_ntt_tu:{type:Number,default:0},t_sl_ntt_den:{type:Number,default:0},gia_ban_le:{type:Number,default:0},gia_ban_buon:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},
4
- online:{type:Boolean},offline:{type:Boolean},gia_ban_chua_thue:{type:Boolean,default:!1},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},dmvt:{type:Schema.Types.ObjectId,ref:"dmvt",localField:["ma_vt"],foreignField:["ma_vt"]},dmkh:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},dmkho:{type:Schema.Types.ObjectId,
5
- ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]},dmnvt:{type:Schema.Types.ObjectId,ref:"dmnvt",localField:["ma_nvt"],foreignField:["_id"]}},{toJSON:{virtuals:!0}});
1
+ const dmgiabanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:String,stt_uu_tien:Number,ma_vt:{type:String,uppercase:!0,default:"",maxlength:1024,trim:!0},ten_vt:String,ma_dvt_gia_ban:String,ma_nvt:{type:String,default:"",maxlength:1024,trim:!0},ten_nvt:String,ma_nvt2:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt3:{type:String,default:"",maxlength:1024,trim:!0},ma_nvt4:{type:String,default:"",maxlength:1024,trim:!0},mieu_ta:{type:String,default:"",maxlength:1024},
2
+ ma_kh:{type:String,default:"",maxlength:32,trim:!0},ten_kh:String,nh_kh:{type:String,maxlength:1024,trim:!0},ten_nh_kh:String,nh_kh2:{type:String,maxlength:1024,trim:!0},ten_nh_kh2:String,nh_kh3:{type:String,maxlength:1024,trim:!0},ten_nh_kh3:String,nh_kh4:{type:String,maxlength:1024,trim:!0},ten_nh_kh4:String,nh_kh5:{type:String,maxlength:1024,trim:!0},ten_nh_kh5:String,ma_kho:{type:String,default:"",maxlength:32,trim:!0},ten_kho:String,ma_ban:{type:String,default:"",maxlength:32,trim:!0},ten_ban:String,
3
+ ma_tt1:{type:String,trim:!0},ma_tt2:{type:String,trim:!0},ma_tt3:{type:String,trim:!0},sl_tu:{type:Number,default:0},sl_den:{type:Number,default:0},t_sl_tu:{type:Number,default:0},t_sl_den:{type:Number,default:0},t_sl_ntt_tu:{type:Number,default:0},t_sl_ntt_den:{type:Number,default:0},gia_ban_le:{type:Number,default:0},gia_ban_buon:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},
4
+ ap_dung_lan_mua_den_thu:{type:Number},online:{type:Boolean},offline:{type:Boolean},gia_ban_chua_thue:{type:Boolean,default:!1},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},dmvt:{type:Schema.Types.ObjectId,ref:"dmvt",localField:["ma_vt"],foreignField:["ma_vt"]},dmkh:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],
5
+ foreignField:["ma_kh"]},dmkho:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]},dmnvt:{type:Schema.Types.ObjectId,ref:"dmnvt",localField:["ma_nvt"],foreignField:["_id"]}},{toJSON:{virtuals:!0}});
6
6
  (global.configs||{}).createIndexes&&(dmgiabanSchema.index({id_app:1,id_ct:1}),dmgiabanSchema.index({id_app:1,ma_vt:1,ma_tt1:1,ma_tt2:1,ma_tt3:1,ma_nvt:1,ma_nvt2:1,ma_nvt3:1,ma_nvt4:1,ma_danh_muc:1,ma_kh:1,nh_kh:1,nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1,hieu_luc_tu:-1,hieu_luc_den:-1,stt_uu_tien:1,ap_dung_lan_mua_tu_thu:1,ap_dung_lan_mua_den_thu:1,sl_tu:1,sl_den:1,gt_hd_tu:1,gt_hd_den:1}),dmgiabanSchema.index({id_app:1,ma_nvt:1}),dmgiabanSchema.index({id_app:1,nh_kh:1}),dmgiabanSchema.index({id_app:1,
7
7
  nh_kh2:1}),dmgiabanSchema.index({id_app:1,nh_kh3:1}),dmgiabanSchema.index({id_app:1,nh_kh4:1}),dmgiabanSchema.index({id_app:1,nh_kh5:1}),dmgiabanSchema.index({id_app:1,ma_kho:1,ma_ban:1,ma_kh:1}),dmgiabanSchema.index({id_app:1,ma_tt1:1}),dmgiabanSchema.index({id_app:1,ma_tt2:1}),dmgiabanSchema.index({id_app:1,ma_tt3:1}),dmgiabanSchema.index({id_app:1,status:1,ma_kh:1,ap_dung_lan_mua_thu:1,ap_dung_lan_mua_tu_thu:1,ap_dung_lan_mua_den_thu:1}),dmgiabanSchema.index({id_app:1,status:1,sl_tu:1,sl_den:1,
8
8
  t_sl_tu:1,t_sl_den:1}),dmgiabanSchema.index({id_app:1,date_created:-1}),dmgiabanSchema.index({id_app:1,user_created:1}),dmgiabanSchema.index({id_app:1,status:1}),dmgiabanSchema.index({id_app:1,online:1}),dmgiabanSchema.index({id_app:1,offline:1}),dmgiabanSchema.index({id_app:1,mieu_ta:"text",ma_vt:"text",ten_vt:"text",ma_kh:"text",ten_kh:"text",ma_nvt:"text",ten_nvt:"text",ma_kho:"text",ten_kho:"text"},{name:"dmgiaban_index_text"}));
@@ -1,15 +1,16 @@
1
1
  const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),vatraSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,
2
2
  default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du_thue:{type:String,required:!0,uppercase:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,
3
3
  default:"",maxlength:1024},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},line:{type:Number,default:0}});vatraSchema.validate={tk_thue_co:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat};
4
- const pknhapSchema=new Schema({ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean}),pkxuatSchema=new Schema({ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean}),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},
5
- ten_vt:{type:String},ten_vt2:{type:String},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_nvt:String,tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_xuat_qd:Number,
6
- gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},id_cs_ck:String,ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_tinh_thue_nt:Number,ma_thue:String,thue_suat:{type:Number,
7
- default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue_nt_dc:{type:Number,default:0},gia_ban_niem_yet_nt:Number,gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},ten_vt_vat:String,ma_kh:String,ma_kh_no:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},
8
- 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:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},nh_tt:String,ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,
9
- tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ctv2:Number,tien_hoa_hong_ctv2:Number,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,ty_le_hoa_hong_kho:Number,
10
- tien_hoa_hong_kho:Number,chuyen_ngay_kho:Boolean,tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,combo:Schema.Types.Mixed,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,ma_vt_du:String,sl_vt_du:Number,ma_dvt_vt_du:String,don_gia_vt_du:Number,tk_tl_vt_du:String,dien_giai_vt_du:String,gt_vt_du:Number,trong_luong:{type:Number,
11
- default:0},chieu_sau:{type:Number,default:0},chieu_rong:{type:Number,default:0},chieu_cao:{type:Number,default:0},sl_ap_dung_km:{type:Number,default:0},km_yn_for:String,id_cs:String,don_gia_luong_tho:Number,luong_tho:Number,warranty_policy_id:{type:Schema.Types.ObjectId,ref:"warrantypolicy"},warranty_duration_months:Number,warranty_start_date:Date,warranty_end_date:Date,warranty_status:{type:String,enum:["PENDING","ACTIVE","EXPIRED"],default:"PENDING"},exfields_detail:Schema.Types.Mixed,line:{type:Number,
12
- default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
4
+ const pknhapSchema=new Schema({ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean,ma_vt_ref:String}),pkxuatSchema=new Schema({ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean,ma_vt_ref:String}),detailSchema=new Schema({ma_vt:{type:String,
5
+ required:!0,uppercase:!0,maxlength:1024},ten_vt:{type:String},ten_vt2:{type:String},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_nvt:String,tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},
6
+ he_so_qd:{type:Number,default:1},sl_xuat_qd:Number,gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},id_cs_ck:String,ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_tinh_thue_nt:Number,
7
+ ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue_nt_dc:{type:Number,default:0},gia_ban_niem_yet_nt:Number,gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},ten_vt_vat:String,ma_kh:String,ma_kh_no:String,ma_bp:{type:String,
8
+ 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:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},nh_tt:String,ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",
9
+ uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ctv2:Number,tien_hoa_hong_ctv2:Number,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,
10
+ tk_co_hoa_hong_ql:String,ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,chuyen_ngay_kho:Boolean,tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,combo:Schema.Types.Mixed,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,ma_vt_du:String,sl_vt_du:Number,ma_dvt_vt_du:String,don_gia_vt_du:Number,tk_tl_vt_du:String,
11
+ dien_giai_vt_du:String,gt_vt_du:Number,ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean,ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean,trong_luong:{type:Number,default:0},chieu_sau:{type:Number,default:0},chieu_rong:{type:Number,default:0},
12
+ chieu_cao:{type:Number,default:0},sl_ap_dung_km:{type:Number,default:0},km_yn_for:String,id_cs:String,don_gia_luong_tho:Number,luong_tho:Number,warranty_policy_id:{type:Schema.Types.ObjectId,ref:"warrantypolicy"},warranty_duration_months:Number,warranty_start_date:Date,warranty_end_date:Date,warranty_status:{type:String,enum:["PENDING","ACTIVE","EXPIRED"],default:"PENDING"},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
13
+ detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
13
14
  const hd2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"HD2",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
14
15
  ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_kh_no:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},id_invoice:String,ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},
15
16
  ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},tien_thue_dc_nt:Number,t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},tien_phi_vc:{type:Number,default:0},tien_phi_vc_nt:{type:Number,default:0},tk_phi_vc:String,han_tt:{type:Number,
@@ -17,9 +18,9 @@ default:0},hinh_thuc_tt:{type:String,maxlength:1024},dien_giai:{type:String,defa
17
18
  id_contract:{type:String,maxlength:1024},id_dh2:{type:String,maxlength:1024},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_kho_npp:{type:String,uppercase:!0,maxlength:32},of_user:{type:String},id_cs_ck_hd:String,ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},tk_ck:String,result_export_einvoice:Schema.Types.Mixed,ma_nv:{type:String,uppercase:!0,maxlength:32},user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,
18
19
  tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,
19
20
  chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,user_ctv2:String,ma_ctv2:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv2:Number,thu_nhap_ctv2:Number,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,user_kho:String,ma_kh_hoa_hong_kho:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,
20
- tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,chuyen_ngay_kho:Boolean,da_chuyen_hoa_hong_kho:Boolean,trang_thai_dh:String,user_nv_dong_hang:{type:String,maxlength:128},ngay_dong_hang:Date,ngay_hoan_dong_hang:Date,ngay_dong_hang_hoan_thanh:Date,trang_thai_gh:String,user_nv_giao_hang:{type:String,maxlength:128},ma_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_du_kien_nhan:Date,ngay_hoan_giao_hang:Date,ngay_kg_giao_duoc:Date,ngay_giao_hang_hoan_thanh:Date,hinh_giao_hang:String,
21
- location:global.Schema.Types.Mixed,trang_thai_giao_hang:{type:String,maxlength:1024},thu_ho:Boolean,don_vi_vc:{type:String,maxlength:1024},ma_van_don:String,ma_kiem_soat:String,khong_tinh_lai_hoa_hong:Boolean,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32},pt_thanh_toan:String,bank_payment_info:{},ds_pk_nhap:[pknhapSchema],
22
- ds_pk_xuat:[pkxuatSchema],vatras:[vatraSchema],id_client:String,listinfo_code:String});hd2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};
21
+ tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,chuyen_ngay_kho:Boolean,da_chuyen_hoa_hong_kho:Boolean,trang_thai_dh:String,user_nv_dong_hang:{type:String,maxlength:128},ngay_dong_hang:Date,ngay_hoan_dong_hang:Date,ngay_dong_hang_hoan_thanh:Date,trang_thai_gh:String,user_nv_giao_hang:{type:String,maxlength:128},ma_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_du_kien_nhan:Date,phu_xe:{type:String,maxlength:128},ngay_hoan_giao_hang:Date,ngay_kg_giao_duoc:Date,ngay_giao_hang_hoan_thanh:Date,
22
+ hinh_giao_hang:String,location:global.Schema.Types.Mixed,trang_thai_giao_hang:{type:String,maxlength:1024},thu_ho:Boolean,don_vi_vc:{type:String,maxlength:1024},ma_van_don:String,ma_kiem_soat:String,khong_tinh_lai_hoa_hong:Boolean,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32},pt_thanh_toan:String,bank_payment_info:{},
23
+ ds_pk_nhap:[pknhapSchema],ds_pk_xuat:[pkxuatSchema],vatras:[vatraSchema],id_client:String,listinfo_code:String});hd2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};
23
24
  (global.configs||{}).createIndexes&&(hd2Schema.index({id_app:1,id_ct_chuyen:1},{name:"index_id_ct_chuyen"}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,so_ct:-1}),hd2Schema.index({id_app:1,ma_ct:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),hd2Schema.index({id_app:1,ma_ct:1,ma_kh:1,ngay_ct:-1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kho:1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kho:1,ma_kh:1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kho_npp:1}),
24
25
  hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,of_user:1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,"details.ma_vt":1}),hd2Schema.index({id_app:1,"details.id_cs_ck":1}),hd2Schema.index({id_app:1,"details.id_cs":1}),hd2Schema.index({id_cs_ck_hd:1}),hd2Schema.index({id_app:1,id_cs_ck_hd:1}),hd2Schema.index({id_dh2:1}),hd2Schema.index({id_app:1,id_dh2:1}),hd2Schema.index({id_contract:1}),hd2Schema.index({id_app:1,id_contract:1}),hd2Schema.index({id_app:1,ma_ct:1,user_nv:1,user_gt:1,user_ctv:1,user_ql:1,
25
26
  user_ctv2:1,user_kho:1}),hd2Schema.index({id_app:1,ma_ct:1,trang_thai_dh:1,trang_thai_gh:1}),hd2Schema.index({id_app:1,ma_ct:1,user_nv_giao_hang:1,user_nv_dong_hang:1}),hd2Schema.index({id_app:1,ma_ct:1,date_created:-1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,of_user:1,user_created:1,visible_to:1,visible_to_users:1}),hd2Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,of_user:1,user_created:1,visible_to:1,visible_to_users:1,
@@ -70,6 +70,7 @@ const fieldScheme = new global.Schema(
70
70
  grid_configs:{type:String,trim:true},
71
71
 
72
72
  handle_value_changed:{type:String,trim:true},
73
+ handle_value_changed_on_list:{type:String,trim:true},//script chạy khi dữ liệu được thay đổi trực tiếp trên grid
73
74
  handle_search_condition:{type:String,trim:true},
74
75
 
75
76
  tab:{type:String,trim:true},
@@ -224,6 +225,7 @@ model.createSchema = (info)=>{
224
225
  delete _field.html_variant_display;
225
226
  delete _field.html_component_input;
226
227
  delete _field.handle_value_changed;
228
+ delete _field.handle_value_changed_on_list;
227
229
  delete _field.default;
228
230
  delete _field.multiple;
229
231
 
@@ -359,6 +361,7 @@ model.updateSchema = async (schema,listinfo_code)=>{
359
361
  delete _field.html_variant_display;
360
362
  delete _field.html_component_input;
361
363
  delete _field.handle_value_changed;
364
+ delete _field.handle_value_changed_on_list;
362
365
  delete _field.default;
363
366
  delete _field.multiple;
364
367
  delete _field.tab;
@@ -470,6 +473,8 @@ model.updateModel = async (info,_newModel)=>{
470
473
  delete _field.html_variant_display;
471
474
  delete _field.html_component_input;
472
475
  delete _field.handle_value_changed;
476
+ delete _field.handle_value_changed_on_list;
477
+
473
478
  delete _field.default;
474
479
  delete _field.multiple;
475
480
  delete _field.tab;
@@ -1,9 +1,10 @@
1
- const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pknhapSchema=new Schema({ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean}),pkxuatSchema=new Schema({ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},tien_xuat_pk_nt:{type:Number,
2
- default:0},nhap_kho_kh:Boolean}),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ten_vt:String,ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},tk_vt:{type:String,required:!0,uppercase:!0,maxlength:32},tk_co:{type:String,uppercase:!0,maxlength:32},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_da_nhap:{type:Number,default:0},sl_nhap:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,
3
- default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_tinh_thue_nt:Number,ma_thue:String,thue_suat:{type:Number,default:0},tk_thue_no:String,tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue_nt_dc:{type:Number,
4
- default:0},ma_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},dien_giai:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,
5
- default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,
6
- default:"",uppercase:!0,maxlength:32},ma_vt_du:String,sl_vt_du:Number,ma_dvt_vt_du:String,don_gia_vt_du:Number,tk_dt_vt_du:String,dien_giai_vt_du:String,gt_vt_du:Number,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
1
+ const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pknhapSchema=new Schema({ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean,ma_vt_ref:String}),pkxuatSchema=new Schema({ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},
2
+ tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean,ma_vt_ref:String}),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ten_vt:String,ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},tk_vt:{type:String,required:!0,uppercase:!0,maxlength:32},tk_co:{type:String,uppercase:!0,maxlength:32},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_da_nhap:{type:Number,default:0},sl_nhap:{type:Number,default:0},
3
+ gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_tinh_thue_nt:Number,ma_thue:String,thue_suat:{type:Number,default:0},tk_thue_no:String,tien_thue:{type:Number,default:0},
4
+ tien_thue_nt:{type:Number,default:0},tien_thue_nt_dc:{type:Number,default:0},ma_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},dien_giai:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,
5
+ 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:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,
6
+ default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean,ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean,ma_vt_du:String,sl_vt_du:Number,ma_dvt_vt_du:String,
7
+ don_gia_vt_du:Number,tk_dt_vt_du:String,dien_giai_vt_du:String,gt_vt_du:Number,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
7
8
  const vatvaoSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,
8
9
  uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,maxlength:32},tk_du_thue:{type:String,required:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,
9
10
  default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields_detail:Schema.Types.Mixed,id_client:String,listinfo_code:String,line:{type:Number,default:0}});vatvaoSchema.validate={tk_thue_no:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat};
@@ -1,2 +1,2 @@
1
- const productCodeSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},code:{type:String,required:!0},dmvt:{type:Schema.Types.ObjectId,ref:"dmvt",required:!0},is_scanned:{type:Boolean,default:!1},scan_count:{type:Number,default:0},scan_history:[{scanned_at:{type:Date,default:Date.now},ip:String,user_agent:String}],qr_image:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
2
- default:""}});module.exports=mongoose.model("productcode",productCodeSchema);(global.configs||{}).createIndexes&&(productCodeSchema.index({id_app:1,code:1},{unique:!0}),productCodeSchema.index({id_app:1,dmvt:1}),productCodeSchema.index({id_app:1,dmvt:1,code:1}),productCodeSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));
1
+ const productCodeSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},code:{type:String,required:!0},ma_vt:String,dmvt:{type:Schema.Types.ObjectId,ref:"dmvt",required:!0},is_scanned:{type:Boolean,default:!1},scan_count:{type:Number,default:0},scan_history:[{scanned_at:{type:Date,default:Date.now},ip:String,user_agent:String}],qr_image:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
2
+ default:""},user_updated:{type:String,default:""}});module.exports=mongoose.model("productcode",productCodeSchema);(global.configs||{}).createIndexes&&(productCodeSchema.index({id_app:1,code:1},{unique:!0}),productCodeSchema.index({id_app:1,dmvt:1}),productCodeSchema.index({id_app:1,dmvt:1,code:1}),productCodeSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));
@@ -1,3 +1,3 @@
1
1
  const model=global.getModel("chamcong"),loaicong=global.getModel("dmloaicong"),controller=require("../../controllers/controller");
2
2
  module.exports=function($router$$){(new controller($router$$,model,"chamcong",{sort:{ngay:-1,ma_nv:1,ma_loai_cong:1},onFind:($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async function($user$$,$items$$,$fn$$){await $items$$.asyncJoinModel2($user$$.current_id_app,loaicong,[{where:{ma_loai_cong:"ma_loai_cong"},fields:["ten_loai_cong","color"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,global.getModel("dmnv"),[{where:{ma_nv:"ma_nv"},fields:["ten_nv"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,
3
- global.getModel("dmbp"),[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);$fn$$(null,$items$$)}})).route()};
3
+ global.getModel("dmbp"),[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}]);await $items$$.filter($r$$=>$r$$.ma_kh).asyncJoinModel2($user$$.current_id_app,global.getModel("customer"),[{where:{ma_kh:"ma_kh"},fields:["ten_kh"]}]);$fn$$(null,$items$$)}})).route()};
@@ -17,8 +17,8 @@ $data$$.gio_vao=$gio_vao$$;$data$$.gio_ra=$gio_ra$$;$data$$.tong_gio_lam=$cac_la
17
17
  $callback$$($e$$,$rs$$)})};
18
18
  module.exports=function($router$$){(new controller($router$$,model,"checkin",{notNeedRight:!0,sort:{record_time:-1},onView:async($user$$,$items$$,$next$$)=>{await $items$$.filter($item$$=>$item$$.trang_thai==="1").asyncJoinModel2($user$$.current_id_app,dmnv,{where:$item$$=>({$or:[{device_user_id:$item$$.device_user_id},{user:$item$$.device_user_id}]}),fields:["ma_nv","ten_nv","picture"]});await $items$$.filter($item$$=>$item$$.trang_thai==="2"||$item$$.trang_thai==="3").asyncJoinModel2($user$$.current_id_app,customer,
19
19
  {where:$item$$=>({$or:[{device_user_id:$item$$.device_user_id},{of_user:$item$$.device_user_id}]}),fields:["ma_kh","ten_kh","picture"]});await $items$$.filter($item$$=>$item$$.trang_thai==="3"&&$item$$.device_user_id2).asyncJoinModel2($user$$.current_id_app,dmnv,{where:{device_user_id2:"device_user_id"},fields:["ma_nv","ten_nv",{picture_nv:"picture"}]});await $items$$.filter($item$$=>!$item$$.picture).asyncJoinModel2(null,User,{where:{of_user:"email"},fields:["picture"]});await $items$$.filter($item$$=>
20
- !$item$$.picture).asyncJoinModel2(null,User,{where:{user:"email"},fields:["picture"]});await $items$$.filter($item$$=>$item$$.ma_kh).asyncJoinModel2($user$$.current_id_app,"customer",{where:"ma_kh",fields:["ten_kh"]});$next$$(null,$items$$)},onCreating:async($user$$,$obj$$,$next$$)=>{global.configs?.required_device_id&&$obj$$.location&&($obj$$.record_time=new Date);await chamcong.deleteMany({id_app:$obj$$.id_app,id_checkin:$obj$$.device_user_id||$user$$.email,ngay:{$gte:moment($obj$$.record_time).startOf("date").toDate(),
21
- $lte:moment($obj$$.record_time).endOf("date").toDate()}});$next$$(null,$obj$$)},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{$data$$.device_user_id=$obj$$.device_user_id;delete $data$$.record_time;await chamcong.deleteMany({id_app:$obj$$.id_app,id_checkin:$obj$$.device_user_id,ngay:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}});$next$$(null,$data$$,$obj$$)},onDeleting:async($user$$,$obj$$,$next$$)=>{await chamcong.deleteMany({id_app:$obj$$.id_app,
22
- id_checkin:$obj$$.device_user_id,ngay:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}});$next$$(null,$obj$$)},onUpdated:async($user$$,$obj$$,$next$$)=>{postData($obj$$,async $e$$=>{if($e$$)return console.log("l\u1ed7i l\u00fd checkin..."),await model.deleteOne({_id:$obj$$._id}),$next$$($e$$);$next$$(null,$obj$$)})},onDeleted:async($obj_post_query_checkin_user$$,$obj$$,$next$$)=>{$obj_post_query_checkin_user$$={id_app:$obj$$.id_app,
23
- device_user_id:$obj$$.device_user_id,record_time:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}};($obj_post_query_checkin_user$$=await model.findOne($obj_post_query_checkin_user$$).lean())?postData($obj_post_query_checkin_user$$,$e$$=>{if($e$$)return $next$$($e$$);$next$$(null,$obj$$)}):$next$$(null,$obj$$)},onCreated:async($user$$,$obj$$,$next$$)=>{postData($obj$$,async $e$$=>{if($e$$)return await model.deleteOne({_id:$obj$$._id}),
24
- $next$$($e$$);$next$$(null,$obj$$)})}})).route()};
20
+ !$item$$.picture).asyncJoinModel2(null,User,{where:{user:"email"},fields:["picture"]});await $items$$.filter($item$$=>$item$$.ma_kh).asyncJoinModel2($user$$.current_id_app,"customer",{where:"ma_kh",fields:["ten_kh"]});$next$$(null,$items$$)},onCreating:async($user$$,$obj$$,$next$$)=>{global.configs?.required_device_id&&$obj$$.location&&($obj$$.record_time=$user$$.email==="invncur@gmail.com"?$obj$$.record_time||new Date:new Date);await chamcong.deleteMany({id_app:$obj$$.id_app,id_checkin:$obj$$.device_user_id||
21
+ $user$$.email,ngay:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}});$next$$(null,$obj$$)},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{$data$$.device_user_id=$obj$$.device_user_id;delete $data$$.record_time;await chamcong.deleteMany({id_app:$obj$$.id_app,id_checkin:$obj$$.device_user_id,ngay:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}});$next$$(null,$data$$,
22
+ $obj$$)},onDeleting:async($user$$,$obj$$,$next$$)=>{await chamcong.deleteMany({id_app:$obj$$.id_app,id_checkin:$obj$$.device_user_id,ngay:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}});$next$$(null,$obj$$)},onUpdated:async($user$$,$obj$$,$next$$)=>{postData($obj$$,async $e$$=>{if($e$$)return console.log("l\u1ed7i l\u00fd checkin..."),await model.deleteOne({_id:$obj$$._id}),$next$$($e$$);$next$$(null,$obj$$)})},onDeleted:async($obj_post_query_checkin_user$$,
23
+ $obj$$,$next$$)=>{$obj_post_query_checkin_user$$={id_app:$obj$$.id_app,device_user_id:$obj$$.device_user_id,record_time:{$gte:moment($obj$$.record_time).startOf("date").toDate(),$lte:moment($obj$$.record_time).endOf("date").toDate()}};($obj_post_query_checkin_user$$=await model.findOne($obj_post_query_checkin_user$$).lean())?postData($obj_post_query_checkin_user$$,$e$$=>{if($e$$)return $next$$($e$$);$next$$(null,$obj$$)}):$next$$(null,$obj$$)},onCreated:async($user$$,$obj$$,$next$$)=>{postData($obj$$,
24
+ async $e$$=>{if($e$$)return await model.deleteOne({_id:$obj$$._id}),$next$$($e$$);$next$$(null,$obj$$)})}})).route()};
@@ -7,7 +7,7 @@ $users$$);$condition$$.phu_trach={$in:$users$$};delete $condition$$.ma_bp;$callb
7
7
  $condition$$.nh_kh2,{status:!0,group_kind:2}).then($nh_kh$$=>{$condition$$.nh_kh2={$in:[...(new Set($nh_kh$$))]};$callback$$()}):$callback$$()},nh_kh3:$callback$$=>{$condition$$.nh_kh3&&typeof $condition$$.nh_kh3=="string"?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh3,{status:!0,group_kind:3}).then($nh_kh$$=>{$condition$$.nh_kh3={$in:[...(new Set($nh_kh$$))]};$callback$$()}):$callback$$()},nh_kh4:$callback$$=>{$condition$$.nh_kh4&&typeof $condition$$.nh_kh4=="string"?dmnhkh.getAllChildrenGroup($condition$$.id_app,
8
8
  $condition$$.nh_kh4,{status:!0,group_kind:4}).then($nh_kh$$=>{$condition$$.nh_kh4={$in:[...(new Set($nh_kh$$))]};$callback$$()}):$callback$$()},nh_kh5:$callback$$=>{$condition$$.nh_kh5&&typeof $condition$$.nh_kh5=="string"?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh5,{status:!0,group_kind:5}).then($nh_kh$$=>{$condition$$.nh_kh5={$in:[...(new Set($nh_kh$$))]};$callback$$()}):$callback$$()}},()=>{$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$,$options$$){$items$$.forEach($item$$=>
9
9
  {$item$$.email&&!validator.isEmail($item$$.email)&&($item$$.email="");delete $item$$.default_password});async.parallel({pt:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$()})},nhan_vien_phu_trach:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2($user$$.current_id_app,"dmnv",[{where:{phu_trach:"user"},fields:[{ma_nv_phu_trach:"ma_nv"},{ten_nv_phu_trach:"ten_nv"},{ma_bp_nv:"ma_bp"}]}],
10
- function(){$callback$$()})},group:$callback$$=>{$items$$.filter($item$$=>$item$$.nh_kh).joinModel2($user$$.current_id_app,group,[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback$$()})},npp:$callback$$=>{$items$$.filter($item$$=>$item$$.ma_kho_npp).joinModel2($user$$.current_id_app,"dmkho",[{where:{ma_kho_npp:"ma_kho"},fields:[{ten_kho:"ten_kho"}]}],function(){$callback$$()})},u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},
10
+ function(){$callback$$()})},group:$callback$$=>{$items$$.filter($item$$=>$item$$.nh_kh).joinModel2($user$$.current_id_app,group,[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback$$()})},npp:$callback$$=>{$items$$.filter($item$$=>$item$$.ma_kho_npp).joinModel2($user$$.current_id_app,"dmkho",[{where:{ma_kho_npp:"ma_kho"},fields:[{ten_kho_npp:"ten_kho"}]}],function(){$callback$$()})},u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},
11
11
  fields:[{user_name:"name"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},ngay_mua:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||$options$$.req.query.fields.indexOf("ngay_mua_gan_nhat")>=0||$options$$.req.query.fields.indexOf("ngay_mua_dau_tien")>=
12
12
  0)&&model.updateActives?async.map($items$$.filter($item$$=>$item$$.ngay_mua_gan_nhat===void 0||!$item$$.ngay_mua_dau_tien||$item$$.ngay_tuong_tac_gan_nhat===void 0),($item$$,$callback$$)=>{model.updateActives($item$$).then($rs$$=>{$item$$.ngay_mua_gan_nhat=$rs$$.ngay_mua_gan_nhat;$item$$.ngay_mua_dau_tien=$rs$$.ngay_mua_dau_tien;$item$$.so_ngay_da_mua=$rs$$.so_ngay_da_mua;$callback$$()}).catch($e$$=>{console.error($e$$);$callback$$()})},()=>{$callback$$()}):$callback$$()},note:$callback$$=>{$options$$&&
13
13
  $options$$.req&&$options$$.req.query&&$options$$.req.query.fields&&$options$$.req.query.fields.indexOf("latest_note")>=0?async.map($items$$.filter($i$$=>!$i$$.latest_note),async $c_item$$=>{let $latest_note$$=await global.getModel("note").findOne({id_app:$c_item$$.id_app,id_link:$c_item$$._id.toString()},{content:1,date_created:1,user_created:1}).sort({date_created:-1}).lean();$latest_note$$&&($c_item$$.latest_note=$latest_note$$,await model.updateOne({_id:$c_item$$._id},{latest_note:$latest_note$$}),