flexbiz-server 12.3.4 → 12.3.6

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.3.4",
5
+ "version": "12.3.6",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -37,7 +37,9 @@
37
37
  "express-session": "^1.17.2",
38
38
  "fluent-ffmpeg": "^2.1.2",
39
39
  "gm": "^1.23.1",
40
+ "google-auth-library": "^9.15.1",
40
41
  "google-translate": "^3.0.0",
42
+ "googleapis": "^144.0.0",
41
43
  "jsonwebtoken": "^8.5.1",
42
44
  "jspdf": "^2.1.1",
43
45
  "jszip": "^3.1.5",
@@ -192,13 +192,24 @@ $e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e
192
192
  global.getModel("file");try{var $_data$jscomp$0$$=await $file$$.findOne({_id:$dir_root_templates_id_file$$});$_data$jscomp$0$$||$res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"});let $file_name$$=$_data$jscomp$0$$.file.name,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$templatePath$$=path.join($root$$,$file_name$$)}catch($e$$){return $res$$.status(400).send({error:$e$$.message||"Kh\u00f4ng t\u00ecm th\u1ea5y m\u1eabu"})}}else $templatePath$$=
193
193
  path.dirname($dir_root_templates_id_file$$)+$rs$jscomp$0$$.file_mau_in;if(!$templatePath$$||!fs.existsSync($templatePath$$))return $res$$.status(400).send({error:"File m\u1eabu kh\u00f4ng t\u1ed3n t\u1ea1i"});let $ext$$=$templatePath$$.split(".").pop();"xlsx"===$ext$$?excelReport($templatePath$$,$data4export$$,function($e$$,$result$$){setImmediate(()=>{if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$res$$.setHeader("Content-Type",
194
194
  "application/vnd.openxmlformats");$res$$.setHeader("Content-Disposition","attachment; filename="+$ctrl$$.name+".xlsx");$res$$.end($result$$,"binary")})},{timezone:configs.timezone||"Asia/Ho_Chi_Minh"}):($_data$jscomp$0$$=$data4export$$[0],$_data$jscomp$0$$.datasource={...$_data$jscomp$0$$},$_data$jscomp$0$$.company={...$_app$$},textReport($templatePath$$,$_data$jscomp$0$$,function($e$$,$result$$){setImmediate(()=>{if($e$$)return console.error("exportToExcel textreport",$e$$),$e$$.error?$res$$.status(400).send($e$$):
195
- $res$$.status(400).send({error:$e$$.message||$e$$});"docx"===$ext$$?($res$$.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),$res$$.setHeader("Content-Disposition","attachment; filename="+$ctrl$$.name+".docx"),$res$$.write($result$$,"binary"),$res$$.end(null,"binary")):$res$$.send($result$$)})}))}})})})})})})})};
195
+ $res$$.status(400).send({error:$e$$.message||$e$$});"docx"===$ext$$?($res$$.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),$res$$.setHeader("Content-Disposition","attachment; filename="+$ctrl$$.name+".docx"),$res$$.write($result$$,"binary"),$res$$.end(null,"binary")):$res$$.send($result$$)})}))}})})})})})})})};const {google}=require("googleapis");
196
+ controller.prototype.importFromGoogleSheet=function(){const $name$$=this.name;let $ctrl$$=this;this.router.route(`${this.route_name}/import/googlesheet`).get(async function($error$jscomp$26_req$$,$res$$,$next$$){let {spreadsheetid:$spreadsheetid$$,range:$range$$}=$error$jscomp$26_req$$.query;if(!$spreadsheetid$$)return $res$$.status(400).send({error:"Thi\u1ebfu tham s\u1ed1 spreadsheetid"});0<=$spreadsheetid$$.indexOf("https://docs.google.com/spreadsheets/d/")&&($spreadsheetid$$=$spreadsheetid$$.replace("https://docs.google.com/spreadsheets/d/",
197
+ ""),$spreadsheetid$$=$spreadsheetid$$.split("/")[0]);if(!$spreadsheetid$$)return $res$$.status(400).send({error:"spreadsheetId is not valid"});$range$$||($range$$="Sheet1");let $session$$=$error$jscomp$26_req$$.session;if(!0===$session$$["import_json_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["import_json_"+$name$$]=!0;var $app$jscomp$3_google_credentials_id_app$$=$error$jscomp$26_req$$.query.id_app;$app$jscomp$3_google_credentials_id_app$$=
198
+ await global.getModel("app").findOne({_id:$app$jscomp$3_google_credentials_id_app$$}).lean();if(!$app$jscomp$3_google_credentials_id_app$$)return $res$$.status(400).send({error:"id_app kh\u00f4ng t\u1ed3n t\u1ea1i"});$app$jscomp$3_google_credentials_id_app$$=$app$jscomp$3_google_credentials_id_app$$.google_credentials||configs.google_credentials;if(!$app$jscomp$3_google_credentials_id_app$$)return $res$$.status(400).send({error:"Ch\u01b0a khai b\u00e1o th\u00f4ng tin truy c\u1eadp google apis"});
199
+ let $listinfo_code$$=($error$jscomp$26_req$$.query.listinfo_code||$ctrl$$.name).toLowerCase(),$listinfo$$=await global.getModel("listinfo").findOne({code:$listinfo_code$$}).lean();if(!$listinfo$$||!$listinfo$$.fields||0==$listinfo$$.fields.length)return $res$$.status(400).send({error:"API n\u00e0y kh\u00f4ng c\u00f3 th\u00f4ng tin listinfo"});let $credentials$$;try{$credentials$$="string"==typeof $app$jscomp$3_google_credentials_id_app$$?JSONParser($app$jscomp$3_google_credentials_id_app$$):$app$jscomp$3_google_credentials_id_app$$;
200
+ const {client_email:$client_email$$,private_key:$private_key$$}=$credentials$$,$auth$$=new google.auth.JWT($client_email$$,null,$private_key$$,["https://www.googleapis.com/auth/spreadsheets.readonly"]),$response$$=await google.sheets({version:"v4",auth:$auth$$}).spreadsheets.values.get({spreadsheetId:$spreadsheetid$$,range:$range$$});$session$$["import_json_"+$name$$]=!1;if(0==$response$$.data.values.length)return $res$$.status(400).send({error:"Sheet n\u00e0y kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u"});
201
+ let $columns$$=$response$$.data.values[0].map($c$$=>{let $field$$=$listinfo$$.fields.find($f$$=>$f$$.name.toLowerCase()==($c$$||"").toString().toLowerCase());return $field$$?$field$$.name:($field$$=$listinfo$$.fields.find($f$$=>$f$$.header.toLowerCase()==($c$$||"").toString().toLowerCase()))?$field$$.name:$c$$}),$data$$=$response$$.data.values.slice(1).map($row$$=>{let $n_row$$={};$columns$$.forEach(($c$$,$index$$)=>{$n_row$$[$c$$]=$row$$[$index$$]});return $n_row$$});$error$jscomp$26_req$$.data=
202
+ $data$$;$next$$()}catch($e$$){return $error$jscomp$26_req$$=(($e$$.response||{}).data||{}).error||$e$$,$session$$["import_json_"+$name$$]=!1,$credentials$$&&403==$error$jscomp$26_req$$.code?$res$$.status(400).send({error:`Kh\u00f4ng th\u1ec3 truy c\u1eadp v\u00e0o google sheet. H\u00e3y ph\u00e2n quy\u1ec1n cho t\u00e0i kho\u1ea3n ${$credentials$$.client_email} c\u00f3 quy\u1ec1n \u0111\u1ecdc google sheet tr\u00ean`}):$res$$.status(400).send($error$jscomp$26_req$$)}},function($req$$,$res$$,$next$$){let $session$$=
203
+ $req$$.session,$data$$=$req$$.data;if($ctrl$$.options.onImport)$ctrl$$.options.onImport($req$$.user,$data$$,[],function($e$$,$new_data$$){setImmediate(()=>{if($e$$)return $session$$["import_json_"+$name$$]=!1,console.error("onImport from json:",$e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$req$$.data=$new_data$$||$data$$;$next$$()})});else $req$$.data=$data$$,$next$$()},function($req$$,$res$$){let $data$$=$req$$.data;setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,
204
+ id_func:$ctrl$$.name,action:"IMPORTJSON",data:{data:$data$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $values$$=$req$$.query.values;if($values$$){try{$values$$=JSONParser($values$$)}catch($e$$){console.error("importFromJson",$e$$)}$values$$&&$data$$.forEach($row$$=>{for(let $key$$ in $values$$)$row$$[$key$$]=$values$$[$key$$]})}$ctrl$$.import($req$$.user,$req$$.user.current_id_app,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return console.error("import from json",$ctrl$$.name,
205
+ $data$$.length,"rows with error:",$e$$),$e$$.error?($e$$.message=$e$$.message||$e$$.error,$res$$.status(400).send($e$$)):$res$$.status(400).send({error:$e$$.error||$e$$.message||$e$$,message:$e$$.message||$e$$.error});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $message$$=[...(new Set($rs$$.rows_error.map($r$jscomp$0$$=>[...(new Set($r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$)))].join(", "))))].join(", ");$res$$.status(400).send({error:$rs$$.error||$rs$$,message:$message$$})}})},
206
+ {replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
196
207
  controller.prototype.importFromJson=function(){const $name$$=this.name;let $ctrl$$=this;this.router.route(`${this.route_name}/import/json`).post(function($req$$,$res$$,$next$$){let $session$$=$req$$.session;if(!0===$session$$["import_json_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["import_json_"+$name$$]=!0;if($req$$.files&&$req$$.files.json){let $filePath$$=$req$$.files.json.path;try{console.log("read file json..."),$req$$.data=require($filePath$$),
197
- fs.unlink($filePath$$,function($error$$){$error$$&&console.error("Can't delete file tmp:"+$filePath$$,$error$$)}),$next$$()}catch($e$$){return $session$$["import_json_"+$name$$]=!1,console.error("importFromJson",$e$$),$res$$.status(400).send({error:$e$$.message||$e$$})}}else if($req$$.body){try{$req$$.data=$req$$.body.map($row$jscomp$2_rs$$=>{$row$jscomp$2_rs$$=_.isString($row$jscomp$2_rs$$)?JSONParser($row$jscomp$2_rs$$):$row$jscomp$2_rs$$;delete $row$jscomp$2_rs$$.id_app;delete $row$jscomp$2_rs$$._id;
198
- return $row$jscomp$2_rs$$})}catch($e$$){return console.error("importFromJson",$e$$),$res$$.status(400).send({error:$e$$.message||$e$$})}$next$$()}else return $session$$["import_json_"+$name$$]=!1,$res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y d\u1eef li\u1ec7u c\u1ea7n import"})},function($req$$,$res$$,$next$$){let $session$$=$req$$.session,$data$$=$req$$.data;if($ctrl$$.options.onImport)$ctrl$$.options.onImport($req$$.user,$data$$,[],function($e$$,$new_data$$){setImmediate(()=>{if($e$$)return $session$$["import_json_"+
208
+ fs.unlink($filePath$$,function($error$$){$error$$&&console.error("Can't delete file tmp:"+$filePath$$,$error$$)}),$next$$()}catch($e$$){return $session$$["import_json_"+$name$$]=!1,console.error("importFromJson",$e$$),$res$$.status(400).send({error:$e$$.message||$e$$})}}else if($req$$.body){try{$req$$.data=$req$$.body.map($row$jscomp$4_rs$$=>{$row$jscomp$4_rs$$=_.isString($row$jscomp$4_rs$$)?JSONParser($row$jscomp$4_rs$$):$row$jscomp$4_rs$$;delete $row$jscomp$4_rs$$.id_app;delete $row$jscomp$4_rs$$._id;
209
+ return $row$jscomp$4_rs$$})}catch($e$$){return console.error("importFromJson",$e$$),$res$$.status(400).send({error:$e$$.message||$e$$})}$next$$()}else return $session$$["import_json_"+$name$$]=!1,$res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y d\u1eef li\u1ec7u c\u1ea7n import"})},function($req$$,$res$$,$next$$){let $session$$=$req$$.session,$data$$=$req$$.data;if($ctrl$$.options.onImport)$ctrl$$.options.onImport($req$$.user,$data$$,[],function($e$$,$new_data$$){setImmediate(()=>{if($e$$)return $session$$["import_json_"+
199
210
  $name$$]=!1,console.error("onImport from json:",$e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$req$$.data=$new_data$$||$data$$;$next$$()})});else $req$$.data=$data$$,$next$$()},function($req$$,$res$$){let $data$$=$req$$.data;setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"IMPORTJSON",data:{data:$data$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $values$$=$req$$.query.values;if($values$$){try{$values$$=
200
211
  JSONParser($values$$)}catch($e$$){console.error("importFromJson",$e$$)}$values$$&&$data$$.forEach($row$$=>{for(let $key$$ in $values$$)$row$$[$key$$]=$values$$[$key$$]})}$ctrl$$.import($req$$.user,$req$$.user.current_id_app,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{if($e$$)return console.error("import from json",$ctrl$$.name,$data$$.length,"rows with error:",$e$$),$e$$.error?($e$$.message=$e$$.message||$e$$.error,$res$$.status(400).send($e$$)):$res$$.status(400).send({error:$e$$.error||$e$$.message||
201
- $e$$,message:$e$$.message||$e$$.error});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $message$$=$rs$$.rows_error.map($r$jscomp$0$$=>$r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$).join(", ")).join(", ");$res$$.status(400).send({error:$rs$$.error||$rs$$,message:$message$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
212
+ $e$$,message:$e$$.message||$e$$.error});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $message$$=[...(new Set($rs$$.rows_error.map($r$jscomp$0$$=>[...(new Set($r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$)))].join(", "))))].join(", ");$res$$.status(400).send({error:$rs$$.error||$rs$$,message:$message$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
202
213
  controller.prototype.importFromExcel=function(){let $name$$=this.name,$ctrl$$=this;this.router.route(`${this.route_name}/import/excel`).post(async function($req$$,$res$$,$next$$){let $session$$=$req$$.session;if(!0===$session$$["import_"+$name$$+($req$$.params.id_app||"")])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["import_"+$name$$+($req$$.params.id_app||"")]=!0;if(!$req$$.files.xlsx)return $session$$["import_"+$name$$+($req$$.params.id_app||
203
214
  "")]=!1,$res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file xlsx"});let $parseOptions$$={};console.log("read file excel");let $map_root$$=configs.paths.maps,$map_file$$;$map_root$$&&($map_file$$=$map_root$$+"/"+$name$$+".js");$map_file$$&&fs.existsSync($map_file$$)||($map_file$$=path.dirname(__dirname)+"/maps/"+$name$$+".js");fs.existsSync($map_file$$)&&($parseOptions$$=await new Promise($resolve$$=>{setImmediate(()=>{$resolve$$(require($map_file$$))})}));if($ctrl$$.options.onPreExcelParse){const $onPreExcelParse$$=
204
215
  $ctrl$$.options.onPreExcelParse;await new Promise($resolve$$=>{setImmediate(()=>{$onPreExcelParse$$($parseOptions$$);$resolve$$()})})}let $filePath$$=$req$$.files.xlsx.path;console.log("parse file excel");excel.parse($filePath$$,function($e$jscomp$0$$,$data$$,$columns$$){setImmediate(()=>{fs.unlink($filePath$$,function($e$$){$e$$&&console.error("Can't delete file tmp:"+$filePath$$,$e$$)});if($e$jscomp$0$$)return $session$$["import_"+$name$$+($req$$.params.id_app||"")]=!1,console.error("error parse excel file",
@@ -206,14 +217,14 @@ $e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$
206
217
  $ctrl$$.excelParse&&$ctrl$$.excelParse($data$$,$columns$$);var $dir_workers_poolName$$=configs.paths.workers;let $onImportProcess$$;$dir_workers_poolName$$&&($onImportProcess$$=$dir_workers_poolName$$+"/"+$name$$.toLowerCase()+"OnImport.js");$onImportProcess$$&&fs.existsSync($onImportProcess$$)||($dir_workers_poolName$$=path.dirname(__dirname)+"/workers",$onImportProcess$$=$dir_workers_poolName$$+"/"+$name$$.toLowerCase()+"OnImport.js");if(fs.existsSync($onImportProcess$$))$dir_workers_poolName$$=
207
218
  `${$name$$}excelParsePool`,global[$dir_workers_poolName$$]||(global[$dir_workers_poolName$$]=new StaticPool($onImportProcess$$)),global[$dir_workers_poolName$$].exec({user:$req$$.user,data:$data$$,columns:$columns$$,configs:{database:configs.database}},$response$$=>{if($response$$.error)return $session$$["import_"+$name$$+($req$$.params.id_app||"")]=!1,$res$$.status(400).send({error:$response$$.error||"\u0110\u00e3 c\u00f3 l\u1ed7i khi x\u1eed l\u00fd d\u1eef li\u1ec7u"});$req$$.data=$response$$.data||
208
219
  $data$$;$req$$.columns=$response$$.columns||$columns$$;$next$$()});else if($ctrl$$.options.onImport)$ctrl$$.options.onImport($req$$.user,$data$$,$columns$$,function($e$$,$new_data$$){setImmediate(()=>{if($e$$)return $session$$["import_"+$name$$+($req$$.params.id_app||"")]=!1,console.error("onImport",$e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$req$$.data=$new_data$$||$data$$;$req$$.columns=$columns$$;$next$$()})});else setImmediate(()=>{$req$$.data=
209
- $data$$;$req$$.columns=$columns$$;$next$$()})})},$parseOptions$$)},function($req$$,$data$jscomp$7_res$$,$next$$){console.log("prepare data...");$data$jscomp$7_res$$=$req$$.data;var $columns$$=$req$$.columns;$columns$$._error||($columns$$._error="Error");let $master_columns$$=[],$detail_col$$,$details$$={},$detail_yn$$=!1;for(let $column_name$$ in $columns$$)0<$column_name$$.indexOf("$")?($detail_yn$$=!0,$columns$$=$column_name$$.split("$")[0],$detail_col$$=$column_name$$.split("$")[1],$details$$[$columns$$]||
210
- ($details$$[$columns$$]={},$details$$[$columns$$].columns=[]),$details$$[$columns$$].columns.push($detail_col$$)):$master_columns$$.push($column_name$$);if(!$detail_yn$$)return $next$$();let $data_new$$=[],$row_master$$,$row_master_exists$$;async.mapSeries($data$jscomp$7_res$$,($row$$,$cb$$)=>{setImmediate(()=>{$row_master$$={exfields:{}};$row_master_exists$$=null;$master_columns$$.forEach(function($column$$){if(0===$column$$.indexOf("exfields.")){let $_c$$=$column$$.replace("exfields.","");$row_master$$.exfields[$_c$$]=
220
+ $data$$;$req$$.columns=$columns$$;$next$$()})})},$parseOptions$$)},function($req$$,$data$jscomp$10_res$$,$next$$){console.log("prepare data...");$data$jscomp$10_res$$=$req$$.data;var $columns$$=$req$$.columns;$columns$$._error||($columns$$._error="Error");let $master_columns$$=[],$detail_col$$,$details$$={},$detail_yn$$=!1;for(let $column_name$$ in $columns$$)0<$column_name$$.indexOf("$")?($detail_yn$$=!0,$columns$$=$column_name$$.split("$")[0],$detail_col$$=$column_name$$.split("$")[1],$details$$[$columns$$]||
221
+ ($details$$[$columns$$]={},$details$$[$columns$$].columns=[]),$details$$[$columns$$].columns.push($detail_col$$)):$master_columns$$.push($column_name$$);if(!$detail_yn$$)return $next$$();let $data_new$$=[],$row_master$$,$row_master_exists$$;async.mapSeries($data$jscomp$10_res$$,($row$$,$cb$$)=>{setImmediate(()=>{$row_master$$={exfields:{}};$row_master_exists$$=null;$master_columns$$.forEach(function($column$$){if(0===$column$$.indexOf("exfields.")){let $_c$$=$column$$.replace("exfields.","");$row_master$$.exfields[$_c$$]=
211
222
  $row$$[$column$$]}else $row_master$$[$column$$]=$row$$[$column$$]});for(let $i$$=0;$i$$<$data_new$$.length;$i$$++){let $m$$=$data_new$$[$i$$],$is_eq$$=!0;$master_columns$$.forEach(function($column$$){underscore.isEqual($m$$[$column$$],$row_master$$[$column$$])||($is_eq$$=!1)});$is_eq$$&&($row_master_exists$$=$m$$)}$row_master_exists$$?$row_master$$=$row_master_exists$$:$data_new$$.push($row_master$$);let $row_detail$$;for(let $detail_name$$ in $details$$)$row_detail$$={},$details$$[$detail_name$$].columns.forEach(function($column$$){$row$$[$detail_name$$+
212
223
  "$"+$column$$]&&($row_detail$$[$column$$]=$row$$[$detail_name$$+"$"+$column$$])}),$row_master$$[$detail_name$$]||($row_master$$[$detail_name$$]=[]),0<underscore.keys($row_detail$$).length&&$row_master$$[$detail_name$$].push($row_detail$$);$cb$$()})},()=>{$req$$.data=$data_new$$;setImmediate(()=>{$next$$()})})},function($req$$,$res$$){let $data$$=$req$$.data||[],$columns$$=$req$$.columns;for(let $row$$ of $data$$){let $_first$$=$row$$._first;$_first$$&&0<$_first$$.length&&underscore.extend($row$$,
213
224
  $_first$$[0])}setImmediate(()=>{log.create({id_app:$req$$.user.current_id_app,id_func:$ctrl$$.name,action:"IMPORTEXCEL",data:{data:$data$$,columns:$columns$$}},$req$$.user.email,$req$$.header("user-agent"),$req$$)});let $values$$=$req$$.query.values;if($values$$){try{$values$$=JSONParser($values$$)}catch($e$$){console.error("parse value",$e$$)}$values$$&&$data$$.forEach($row$$=>{for(let $key$$ in $values$$)$row$$[$key$$]=$values$$[$key$$]})}global.importDataMainPool?global.importDataMainPool.exec({user:$req$$.user,
214
- id_app:$req$$.user.current_id_app,module:$name$$.toUpperCase(),data:$data$$,configs:JSON.stringify(configs),replace:!0===$req$$.query.update||"true"==$req$$.query.update},$response$$=>{setImmediate(()=>{$req$$.session["import_"+$name$$+($req$$.params.id_app||"")]=!1;if($response$$.error)return $res$$.status(400).send({error:$response$$.error,message:$response$$.message||$response$$.error});if(0===$response$$.result.rows_error.length)return $res$$.send($response$$.result);let $message$$=$response$$.result.rows_error.map($r$jscomp$0$$=>
215
- $r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$).join(", ")).join(", ");return $res$$.status(400).send({error:$response$$.result,message:$message$$})})}):$ctrl$$.import($req$$.user,$req$$.user.current_id_app,$data$$,($e$$,$rs$$)=>{$req$$.session["import_"+$name$$+($req$$.params.id_app||"")]=!1;setImmediate(()=>{if($e$$)return console.error("import",$e$$),$e$$.error?($e$$.message=$e$$.message||$e$$.error,$res$$.status(400).send($e$$)):$res$$.status(400).send({error:$e$$.message||$e$$,message:$e$$.message||
216
- $e$$});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $message$$=$rs$$.rows_error.map($r$jscomp$0$$=>$r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$).join(", ")).join(", ");$res$$.status(400).send({message:$message$$,error:$rs$$.error||$rs$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
225
+ id_app:$req$$.user.current_id_app,module:$name$$.toUpperCase(),data:$data$$,configs:JSON.stringify(configs),replace:!0===$req$$.query.update||"true"==$req$$.query.update},$response$$=>{setImmediate(()=>{$req$$.session["import_"+$name$$+($req$$.params.id_app||"")]=!1;if($response$$.error)return $res$$.status(400).send({error:$response$$.error,message:$response$$.message||$response$$.error});if(0===$response$$.result.rows_error.length)return $res$$.send($response$$.result);let $message$$=[...(new Set($response$$.result.rows_error.map($r$jscomp$0$$=>
226
+ [...(new Set($r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$)))].join(", "))))].join(", ");return $res$$.status(400).send({error:$response$$.result,message:$message$$})})}):$ctrl$$.import($req$$.user,$req$$.user.current_id_app,$data$$,($e$$,$rs$$)=>{$req$$.session["import_"+$name$$+($req$$.params.id_app||"")]=!1;setImmediate(()=>{if($e$$)return console.error("import",$e$$),$e$$.error?($e$$.message=$e$$.message||$e$$.error,$res$$.status(400).send($e$$)):$res$$.status(400).send({error:$e$$.message||
227
+ $e$$,message:$e$$.message||$e$$});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $message$$=[...(new Set($rs$$.rows_error.map($r$jscomp$0$$=>[...(new Set($r$jscomp$0$$.error.map($r$$=>$r$$.error||$r$$)))].join(", "))))].join(", ");$res$$.status(400).send({message:$message$$,error:$rs$$.error||$rs$$})}})},{replace:!0===$req$$.query.update||"true"==$req$$.query.update,req:$req$$})})};
217
228
  const PostBook=require("../libs/post-book"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),Sokhokhongton=global.getModel("sokhokhongton"),dmvt=global.getModel("dmvt"),Tdttno=global.getModel("tdttno"),Tdttno_tt=global.getModel("tdttno_tt"),Tdttco_tt=global.getModel("tdttco_tt"),Tdttco=global.getModel("tdttco"),Vatra=global.getModel("vatra"),Vatvao=global.getModel("vatvao"),deletePost=function($user$$,$obj$$,$callback$jscomp$1$$){$obj$$.toObject&&($obj$$=$obj$$.toObject());if(!$obj$$._id)return console.error("Error when delete post: obj does not have _id",
218
229
  $obj$$),$callback$jscomp$1$$("Error when delete post: obj does not have _id",$obj$$);async.series({delete_model_books_registed:$callback$jscomp$0$$=>{setImmediate(()=>{if(!global.model_books)return $callback$jscomp$0$$();async.mapSeries(global.model_books.filter($d$$=>"sokho"!==$d$$&&"sokhonpp"!==$d$$&&"sokhott"!==$d$$&&"sokhokhongton"!==$d$$&&"socai"!==$d$$&&"socaitmp"!==$d$$),($bookName$$,$callback$$)=>{setImmediate(()=>{let $book$$=mongoose.models[$bookName$$.toLowerCase()];$book$$?$book$$.deleteMany({id_ct:$obj$$._id.toString()},
219
230
  $e$$=>{$callback$$($e$$)}):$callback$$()})},$e$$=>{$callback$jscomp$0$$($e$$)})})},sk:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokho,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},sktt:$callback$jscomp$0$$=>{setImmediate(()=>{(new PostBook($obj$$,$obj$$.details,Sokhott,function($detail$$,$callback$$){$callback$$($detail$$)})).remove(function($e$$){$callback$jscomp$0$$($e$$)})})},skkhongton:$callback$jscomp$0$$=>
@@ -262,7 +273,7 @@ $e$$.error||$e$$,code:ERR_VERIFY_OTP})}if($ctrl$$.dynamicCreating)try{$v_data$$=
262
273
  $lte:$den_ngay$$};break;case "3":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("quarter").toDate();$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("quarter").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$};break;case "8":$tu_ngay$$=moment($obj$jscomp$0$$.ngay_ct).startOf("year").toDate(),$den_ngay$$=moment($obj$jscomp$0$$.ngay_ct).endOf("year").toDate(),$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$den_ngay$$}}$model$$.findOne($query_check$$,{so_ct:1}).lean().exec(($e$jscomp$0$$,
263
274
  $rs$$)=>{setImmediate(()=>{if($rs$$){let $msgError$$="S\u1ed1 ch\u1ee9ng t\u1eeb "+$obj$jscomp$0$$.so_ct+" \u0111\u00e3 t\u1ed3n t\u1ea1i. H\u00e3y ch\u1ecdn m\u1ed9t s\u1ed1 ch\u1ee9ng t\u1eeb kh\u00e1c";if($ctrl$$.options.onErrorCreating)$ctrl$$.options.onErrorCreating($user$jscomp$0$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$callback$$($msgError$$)});else $callback$$($msgError$$)}else $callback$$()})})}else $callback$$()}):$callback$$()};let $File$$=global.getModel("file"),
264
275
  $Support$$=global.getModel("support");async.waterfall([function($callback$$){setImmediate(async function(){let $notNeedRight$$=await $ctrl$$.notNeedRight($user$jscomp$0$$,{action:$action$$,obj:$obj$jscomp$0$$});permission.hasRight($obj$jscomp$0$$.id_app,$user$jscomp$0$$.email,$ctrl$$.module,$action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($error$$||!$hr$$)return $error$$=$error$$||"",$callback$$({error:$error$$.error||$error$$||ERR_NOT_PERMIT,code:$error$$.code||ERR_NOT_PERMIT_CODE});
265
- $ctrl$$.checkData($c_app$$,$obj$jscomp$0$$,$e$$=>{if($e$$)return $callback$$($e$$);$ctrl$$.creating?$ctrl$$.creating($user$jscomp$0$$,$obj$jscomp$0$$,function($error$jscomp$40_v$$,$_obj$$){if($error$jscomp$40_v$$)return $callback$$($error$jscomp$40_v$$);for(let $f$$ of Object.keys($schema_paths$$))$error$jscomp$40_v$$=$_obj$$.get?$_obj$$.get($f$$):$_obj$$[$f$$],$obj$jscomp$0$$.set($f$$,$error$jscomp$40_v$$);$callback$$(null,$obj$jscomp$0$$)},{data:$data$$,action:$action$$}):$callback$$(null,$obj$jscomp$0$$)})})},
276
+ $ctrl$$.checkData($c_app$$,$obj$jscomp$0$$,$e$$=>{if($e$$)return $callback$$($e$$);$ctrl$$.creating?$ctrl$$.creating($user$jscomp$0$$,$obj$jscomp$0$$,function($error$jscomp$41_v$$,$_obj$$){if($error$jscomp$41_v$$)return $callback$$($error$jscomp$41_v$$);for(let $f$$ of Object.keys($schema_paths$$))$error$jscomp$41_v$$=$_obj$$.get?$_obj$$.get($f$$):$_obj$$[$f$$],$obj$jscomp$0$$.set($f$$,$error$jscomp$41_v$$);$callback$$(null,$obj$jscomp$0$$)},{data:$data$$,action:$action$$}):$callback$$(null,$obj$jscomp$0$$)})})},
266
277
  {data:$obj$jscomp$0$$,notNeedRight:$notNeedRight$$})})},($obj$$,$callback$jscomp$0$$)=>{setImmediate(()=>{var $condition_qct$jscomp$1_ma_ct$$=$ctrl$$.name;$condition_qct$jscomp$1_ma_ct$$={status:!0,id_app:$obj$$.id_app,$and:[{$or:[{ma_ct:"#",ma_ct_khac:{$regex:$condition_qct$jscomp$1_ma_ct$$,$options:"i"}},{cac_ma_ct:$condition_qct$jscomp$1_ma_ct$$.toLowerCase()},{ma_ct:$condition_qct$jscomp$1_ma_ct$$.toUpperCase()}]}]};let $_options_qct$$;$_options_qct$$=$obj$$.toObject?$obj$$.toObject():{...$obj$$};
267
278
  let $keys_options$$=Object.keys($_options_qct$$);dmqct.find($condition_qct$jscomp$1_ma_ct$$).lean().exec(($e$jscomp$0$$,$rs$jscomp$0$$)=>{setImmediate(()=>{let $qcts$$=($rs$jscomp$0$$||[]).filter($qct$$=>"so_ct"!==$qct$$.field&&!$obj$$[$qct$$.field]&&underscore.has($model$$.schema.paths,$qct$$.field));$qcts$$=$qcts$$.filter($qct$$=>{if($qct$$.dieu_kien&&0<$keys_options$$.length)try{let $str_func$$=$qct$$.dieu_kien;0!==$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);return 0<
268
279
  $str_func$$.indexOf("async ")?!1:evalute($str_func$$,{...$_options_qct$$,master:{...$_options_qct$$},moment,numeral})}catch($e$$){return console.error("Error find quyen chung tu",$e$$.message,$qct$$.dieu_kien),!1}else return!0});async.mapSeries($qcts$$,($qct$$,$cb$jscomp$0$$)=>{setImmediate(()=>{let $field$$=$qct$$.field,$_options$$={...$_options_qct$$};$_options$$.id_qct=$qct$$._id.toString();let $count$$=0;async.whilst(function($cb$$){$cb$$(null,10>$count$$)},function($callback$$){getNextSequence($obj$$.id_app,
@@ -282,9 +293,9 @@ setImmediate(()=>{log.create({id_app:$user$jscomp$0$$.current_id_app,id_func:$ct
282
293
  [$obj_created$$],($error$$,$viewValue$$)=>{setImmediate(()=>{if($error$$)return $callback$$($error$$);$req$$&&pushNotification($ctrl$$,$viewValue$$?$viewValue$$[0]:$obj_created$$,"new",null,null,{exclude_token:($req$$.query||{}).access_token});$callback$$(null,$obj_created$$)})},{req:$req$$})})},{req:$req$$})})})}})})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$jscomp$0$$.current_app_info,$user$jscomp$0$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$$,$callback$$){setImmediate(function(){$obj$$.collection_name=
283
294
  $ctrl$$.collection_name;$obj$$.exfields&&$obj$$.exfields.__files__&&($obj$$.exfields.__files__.forEach($_file$$=>{$File$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),collection_link:$ctrl$$.collection_name}).lean().exec($e$$=>{$e$$&&console.error("File updateone",$e$$)})}),delete $obj$$.exfields.__files__);$obj$$.exfields&&$obj$$.exfields.__supports__&&($obj$$.exfields.__supports__.forEach($_file$$=>{$Support$$.updateOne({_id:$_file$$._id},{id_link:$obj$$._id.toString(),collection_link:$ctrl$$.collection_name}).lean().exec($e$$=>
284
295
  {console.error("support updateone",$e$$)})}),delete $obj$$.exfields.__supports__);if($ctrl$$.created)$ctrl$$.created($user$jscomp$0$$,$obj$$,function($error$jscomp$0$$,$rs$$){setImmediate(()=>{if($error$jscomp$0$$)return $callback$$($error$jscomp$0$$);if($ctrl$$.dynamicCreated)$ctrl$$.dynamicCreated($user$jscomp$0$$,$rs$$,function($error$$){if($error$$)return $callback$$($error$$);$req$$&&$req$$.uploadFile?($error$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>",$callback$$(null,
285
- $error$$)):$callback$$(null,$rs$$)});else if($req$$&&$req$$.uploadFile){let $html$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>";$callback$$(null,$html$$)}else $callback$$(null,$rs$$)})});else if($ctrl$$.dynamicCreated)$ctrl$$.dynamicCreated($user$jscomp$0$$,$obj$$,function($error$jscomp$49_html$$){if($error$jscomp$49_html$$)return $callback$$($error$jscomp$49_html$$);$req$$&&$req$$.uploadFile?($error$jscomp$49_html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+
286
- "</body></html>",$callback$$(null,$error$jscomp$49_html$$)):$callback$$(null,$obj$$)});else if($req$$&&$req$$.uploadFile){let $html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+"</body></html>";$callback$$(null,$html$$)}else $callback$$(null,$obj$$)})}],($e$jscomp$158_name_cached$$,$rs$$)=>{$e$jscomp$158_name_cached$$?(console.error($e$jscomp$158_name_cached$$),$callback$jscomp$1$$($e$jscomp$158_name_cached$$)):($e$jscomp$158_name_cached$$=$model$$.collection.name,$user$jscomp$0$$.current_id_app&&
287
- ($e$jscomp$158_name_cached$$+=$user$jscomp$0$$.current_id_app),delete global.cacheDatas[$e$jscomp$158_name_cached$$],$callback$jscomp$1$$(null,$rs$$))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};
296
+ $error$$)):$callback$$(null,$rs$$)});else if($req$$&&$req$$.uploadFile){let $html$$="<html><title>OK</title><body>"+JSON.stringify($rs$$)+"</body></html>";$callback$$(null,$html$$)}else $callback$$(null,$rs$$)})});else if($ctrl$$.dynamicCreated)$ctrl$$.dynamicCreated($user$jscomp$0$$,$obj$$,function($error$jscomp$50_html$$){if($error$jscomp$50_html$$)return $callback$$($error$jscomp$50_html$$);$req$$&&$req$$.uploadFile?($error$jscomp$50_html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+
297
+ "</body></html>",$callback$$(null,$error$jscomp$50_html$$)):$callback$$(null,$obj$$)});else if($req$$&&$req$$.uploadFile){let $html$$="<html><title>OK</title><body>"+JSON.stringify($obj$$)+"</body></html>";$callback$$(null,$html$$)}else $callback$$(null,$obj$$)})}],($e$jscomp$162_name_cached$$,$rs$$)=>{$e$jscomp$162_name_cached$$?(console.error($e$jscomp$162_name_cached$$),$callback$jscomp$1$$($e$jscomp$162_name_cached$$)):($e$jscomp$162_name_cached$$=$model$$.collection.name,$user$jscomp$0$$.current_id_app&&
298
+ ($e$jscomp$162_name_cached$$+=$user$jscomp$0$$.current_id_app),delete global.cacheDatas[$e$jscomp$162_name_cached$$],$callback$jscomp$1$$(null,$rs$$))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};
288
299
  controller.prototype.create=function(){let $name$$=this.name,$ctrl$$=this;this.router.route(this.route_name).post(function($req$$,$res$$){let $session$$=$req$$.session;if(!0===$session$$["creating_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["creating_"+$name$$]=!0;let $body$$=$req$$.body;if(!$body$$)return $res$$.status(411).send({error:"Kh\u00f4ng c\u00f3 n\u1ed9i dung c\u1ea7n l\u01b0u"});$req$$.files&&0<underscore.keys($req$$.files).length&&
289
300
  ("JSON"!=$body$$.return&&($req$$.uploadFile=!0),underscore.extend($body$$,$req$$.files));create($req$$.user,$ctrl$$,$body$$,($e$$,$rs$$)=>{setImmediate(()=>{$session$$["creating_"+$name$$]=!1;if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});!1===$req$$.query.return_data?$res$$.send({_id:$rs$$._id.toString()}):$res$$.send($rs$$)})},null,$req$$)})};
290
301
  controller.prototype.quickCreate=function(){let $model$$=this.model,$name$$=this.name,$ctrl$$=this,$createFromTemplate$$=async($req$$,$res$$,$body$jscomp$4_query$$)=>{let $session$$=$req$$.session;if(!0===$session$$["creating_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["creating_"+$name$$]=!0;if(!$body$jscomp$4_query$$){$body$jscomp$4_query$$=$req$$.params.template_code;if(!$body$jscomp$4_query$$)return $session$$["creating_"+$name$$]=
@@ -324,17 +335,17 @@ $obj_created$$);$ctrl$$.emit("updated",$obj_created$$);global.getModel("customer
324
335
  $req$$&&pushNotification($ctrl$$,$viewValue$$[0],$_action$$,$current_obj$$,null,{exclude_token:$req$$.query.access_token});$callback$$(null,$viewValue$$[0])})},{req:$req$$});else $callback$$(null,{_id:$obj_created$$._id})})},{req:$req$$})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$jscomp$0$$.current_app_info,$user$jscomp$0$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$jscomp$0$$,$callback$$){void 0!=$obj$jscomp$0$$.trang_thai&&setImmediate(async()=>{Approve.findOne({id_ct:$obj$jscomp$0$$._id.toString(),
325
336
  "update_after_approve.data.trang_thai":$obj$jscomp$0$$.trang_thai.toString()}).lean().exec(($e$$,$rs$$)=>{!$rs$$||$rs$$.user_approved||$rs$$.user_denied||($rs$$.user_approved=$req$$.user.email,$rs$$.user_approved_name=$req$$.user.name,$rs$$.date_approved=new Date,Approve.updateOne({_id:$rs$$._id},$rs$$).then(()=>{Approve.sendNotifyApproved($rs$$,$req$$.query.access_token)}))})});setImmediate(async()=>{(await permission.getFieldNotRight($obj$jscomp$0$$.id_app,$user$jscomp$0$$.email,$ctrl$$.name)).forEach($f$$=>
326
337
  {delete $obj$jscomp$0$$[$f$$]});$obj$jscomp$0$$.collection_name=$ctrl$$.collection_name;$ctrl$$.updated?$ctrl$$.updated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$jscomp$0$$,$obj$$){if($error$jscomp$0$$)return console.error("error when saved",$error$jscomp$0$$),$callback$$($error$jscomp$0$$);$ctrl$$.dynamicUpdated?$ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$$)}):$callback$$(null,$obj$$)},$current_obj$$):$ctrl$$.dynamicUpdated?
327
- $ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$jscomp$0$$)}):$callback$$(null,$obj$jscomp$0$$)})}],($e$jscomp$182_name_cached$$,$rs$$)=>{$e$jscomp$182_name_cached$$?(console.error($e$jscomp$182_name_cached$$),$callback$jscomp$1$$($e$jscomp$182_name_cached$$)):($e$jscomp$182_name_cached$$=$model$$.collection.name,$user$jscomp$0$$.current_id_app&&($e$jscomp$182_name_cached$$+=$user$jscomp$0$$.current_id_app),
328
- delete global.cacheDatas[$e$jscomp$182_name_cached$$],$callback$jscomp$1$$(null,$rs$$))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};
338
+ $ctrl$$.dynamicUpdated($user$jscomp$0$$,$obj$jscomp$0$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,$obj$jscomp$0$$)}):$callback$$(null,$obj$jscomp$0$$)})}],($e$jscomp$186_name_cached$$,$rs$$)=>{$e$jscomp$186_name_cached$$?(console.error($e$jscomp$186_name_cached$$),$callback$jscomp$1$$($e$jscomp$186_name_cached$$)):($e$jscomp$186_name_cached$$=$model$$.collection.name,$user$jscomp$0$$.current_id_app&&($e$jscomp$186_name_cached$$+=$user$jscomp$0$$.current_id_app),
339
+ delete global.cacheDatas[$e$jscomp$186_name_cached$$],$callback$jscomp$1$$(null,$rs$$))})}catch($e$$){console.error($e$$),$callback$jscomp$1$$($e$$)}};
329
340
  controller.prototype.update=function(){let $ctrl$$=this,$name$$=this.name;this.router.route(this.route_name+"/:id").put(function($req$$,$res$$){let $session$$=$req$$.session;if(!0===$session$$["updating_"+$name$$])return $res$$.status(400).send({error:"\u0110ang x\u1eed l\u00fd d\u1eef li\u1ec7u"});$session$$["updating_"+$name$$]=!0;let $body$$=$req$$.body;$req$$.files&&underscore.extend($body$$,$req$$.files);let $data$$;try{$data$$=bodyToJson($body$$)}catch($e$$){return $res$$.status(400).send({error:$e$$.message||
330
341
  $e$$.error||$e$$})}update($req$$.user,$ctrl$$,$req$$.params.id,$data$$,($e$$,$rs$$)=>{setImmediate(()=>{$session$$["updating_"+$name$$]=!1;if($e$$)return console.error($e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});!1===$req$$.query.return_data?$res$$.send({_id:$rs$$._id.toString()}):$res$$.send($rs$$)})},null,$req$$)})};
331
342
  function checkReference($model$jscomp$0$$,$obj$$,$fn$$,$keys$$){$model$jscomp$0$$.referenceKeys?($keys$$||($keys$$=underscore.keys($model$jscomp$0$$.referenceKeys)),async.mapSeries($keys$$,function($key$$,$callback$$){setImmediate(()=>{let $ref$$=$model$jscomp$0$$.referenceKeys[$key$$];if(!$ref$$)return $callback$$();let $value$$=$obj$$[$key$$];"_id"===$key$$&&($value$$=$value$$.toString());if(void 0==$value$$||null==$value$$||""==$value$$)return $callback$$();async.mapSeries($ref$$,function($r$$,
332
343
  $cb$$){setImmediate(()=>{let $model$$=mongoose.models[$r$$.model];if($model$$){let $query$$={id_app:$obj$$.id_app};var $_w_k$$=$r$$.key;$_w_k$$&&($query$$[$_w_k$$]=$value$$);$r$$.where&&(underscore.isObject($r$$.where)&&($query$$=Object.assign($query$$,$r$$.where)),underscore.isFunction($r$$.where)&&($_w_k$$=$r$$.where($obj$$),$query$$=Object.assign($query$$,$_w_k$$)));$model$$.find($query$$).limit(1).lean().exec(function($error$$,$o$$){setImmediate(()=>{if($error$$)return $cb$$($error$$);if($o$$&&
333
344
  0<$o$$.length){let $msgError$$;$msgError$$=$r$$.error?(new Function("obj","return `"+$r$$.error.replace("{{VALUE}}",$value$$)+"`"))($obj$$):ERR_DATA_GENERATED;return $cb$$({error:$msgError$$,code:ERR_DATA_GENERATED_CODE})}$cb$$()})})}else $cb$$()})},function($e$$){if($e$$)return $callback$$($e$$);$callback$$()})})},$error$$=>{$fn$$($error$$)})):$fn$$()}
334
- controller.prototype.delete=function(){let $model$$=this.model,$ctrl$$=this,$module$$=this.module;this.router.route(this.route_name+"/:id").delete(function($req$$,$res$$,$next$$){if(!global.mongoose.Types.ObjectId.isValid($req$$.params.id))return $res$$.status(400).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$model$$.findOne({_id:$req$$.params.id}).exec(async function($e$jscomp$187_user$$,$obj$$){if($e$jscomp$187_user$$)return console.error("delete findObject",$e$jscomp$187_user$$),$e$jscomp$187_user$$.error?
335
- $res$$.status(400).send($e$jscomp$187_user$$):$res$$.status(400).send({error:$e$jscomp$187_user$$.message||$e$jscomp$187_user$$.error||$e$jscomp$187_user$$});if(!$obj$$)return $res$$.status(404).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$e$jscomp$187_user$$=$req$$.user;if($obj$$.trang_thai&&await Approve.findOne({id_ct:$obj$$._id.toString(),user_approved:{$exists:!0}}))return $res$$.status(400).send({error:"Kh\u00f4ng th\u1ec3 xo\u00e1 ch\u1ee9ng t\u1eeb n\u00e0y do n\u00f3 \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t"});
336
- const $voucher_options$$=(await OptionsModel.findOne({id_app:$e$jscomp$187_user$$.current_id_app,id_func:$ctrl$$.name}).lean()||{}).option;if($obj$$.ngay_ct&&$obj$$.id_app&&$obj$$.schema&&$obj$$.schema.validate&&$obj$$.schema.validate.ngay_ct)try{await new Promise(($rs$$,$rj$$)=>{validator.unlockBook[0]($obj$$.id_app,$obj$$.ngay_ct,$unlock$$=>{if(!$unlock$$)return $rj$$(validator.unlockBook[1]);$rs$$($unlock$$)},$voucher_options$$)})}catch($e$$){return $res$$.status(400).send({error:$e$$.message||
337
- $e$$.error||$e$$,code:BOOK_LOCK})}$obj$$=$obj$$.toObject();let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_.isFunction($requireOtp$$)&&($requireOtp$$=$requireOtp$$($obj$$,{action:"delete",_id:$req$$.params.id,user:$e$jscomp$187_user$$}));if($requireOtp$$)try{await permission.verifyOTP($e$jscomp$187_user$$.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$,code:ERR_VERIFY_OTP})}setImmediate(async()=>{let $notNeedRight$$=
345
+ controller.prototype.delete=function(){let $model$$=this.model,$ctrl$$=this,$module$$=this.module;this.router.route(this.route_name+"/:id").delete(function($req$$,$res$$,$next$$){if(!global.mongoose.Types.ObjectId.isValid($req$$.params.id))return $res$$.status(400).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$model$$.findOne({_id:$req$$.params.id}).exec(async function($e$jscomp$191_user$$,$obj$$){if($e$jscomp$191_user$$)return console.error("delete findObject",$e$jscomp$191_user$$),$e$jscomp$191_user$$.error?
346
+ $res$$.status(400).send($e$jscomp$191_user$$):$res$$.status(400).send({error:$e$jscomp$191_user$$.message||$e$jscomp$191_user$$.error||$e$jscomp$191_user$$});if(!$obj$$)return $res$$.status(404).send({error:ERR_NOT_FOUND,code:ERR_NOT_FOUND_CODE});$e$jscomp$191_user$$=$req$$.user;if($obj$$.trang_thai&&await Approve.findOne({id_ct:$obj$$._id.toString(),user_approved:{$exists:!0}}))return $res$$.status(400).send({error:"Kh\u00f4ng th\u1ec3 xo\u00e1 ch\u1ee9ng t\u1eeb n\u00e0y do n\u00f3 \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t"});
347
+ const $voucher_options$$=(await OptionsModel.findOne({id_app:$e$jscomp$191_user$$.current_id_app,id_func:$ctrl$$.name}).lean()||{}).option;if($obj$$.ngay_ct&&$obj$$.id_app&&$obj$$.schema&&$obj$$.schema.validate&&$obj$$.schema.validate.ngay_ct)try{await new Promise(($rs$$,$rj$$)=>{validator.unlockBook[0]($obj$$.id_app,$obj$$.ngay_ct,$unlock$$=>{if(!$unlock$$)return $rj$$(validator.unlockBook[1]);$rs$$($unlock$$)},$voucher_options$$)})}catch($e$$){return $res$$.status(400).send({error:$e$$.message||
348
+ $e$$.error||$e$$,code:BOOK_LOCK})}$obj$$=$obj$$.toObject();let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_.isFunction($requireOtp$$)&&($requireOtp$$=$requireOtp$$($obj$$,{action:"delete",_id:$req$$.params.id,user:$e$jscomp$191_user$$}));if($requireOtp$$)try{await permission.verifyOTP($e$jscomp$191_user$$.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$,code:ERR_VERIFY_OTP})}setImmediate(async()=>{let $notNeedRight$$=
338
349
  await $ctrl$$.notNeedRight($req$$.user,{action:"delete",obj:$obj$$});permission.hasRight($ctrl$$.require_id_app?$obj$$.id_app:void 0,$req$$.user.email,$module$$,"delete",function($error$jscomp$0$$,$hr$$){if($hr$$)checkReference($model$$,$obj$$,function($error$$){if($error$$)return $res$$.status(400).send({error:ERR_ARISE+($error$$.error||$error$$.message||$error$$),code:ERR_ARISE_CODE});$req$$.obj=$obj$$;$next$$()});else return $res$$.status(403).send({error:$error$jscomp$0$$.error||$error$jscomp$0$$||
339
350
  ERR_NOT_PERMIT,code:$error$jscomp$0$$.code||ERR_NOT_PERMIT_CODE})},{obj:$obj$$,notNeedRight:$notNeedRight$$})})})},function($req$$,$res$$,$next$$){setImmediate(()=>{let $obj$jscomp$1$$=$req$$.obj;$ctrl$$.deleting?$ctrl$$.deleting($req$$.user,$obj$jscomp$1$$,function($e$$,$obj$jscomp$0$$){if($e$$)return console.error("deleting",$e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$});$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$jscomp$0$$,
340
351
  function($error$$,$obj$$){if($error$$)return $next$$($error$$);$req$$.obj=$obj$$;$next$$()}):($req$$.obj=$obj$jscomp$0$$,$next$$())},{req:$req$$}):$ctrl$$.dynamicDeleting?$ctrl$$.dynamicDeleting($req$$.user,$obj$jscomp$1$$,function($error$$,$obj$$){if($error$$)return $next$$($error$$);$req$$.obj=$obj$$;$next$$()}):($req$$.obj=$obj$jscomp$1$$,$next$$())})},function($req$$,$res$$){setImmediate(()=>{let $obj$jscomp$0$$=$req$$.obj;$ctrl$$.emit("deleting",{...$obj$jscomp$0$$});deletePost($req$$.user,$obj$jscomp$0$$,
@@ -348,4 +359,5 @@ controller.prototype.logs=function(){let $ctrl$$=this,$name$$=this.name;this.rou
348
359
  {$gte:$date_created_tu_ngay$$}}$req$$.query.den_ngay&&($action$jscomp$6_den_ngay$$=moment(new Date($req$$.query.den_ngay)).endOf("date").toDate(),$date_created_tu_ngay$$?$date_created_tu_ngay$$.$lte=$action$jscomp$6_den_ngay$$:$date_created_tu_ngay$$={$lte:$action$jscomp$6_den_ngay$$});$date_created_tu_ngay$$&&($query$$.date_created=$date_created_tu_ngay$$);$req$$.query.user&&($query$$.user_created=$req$$.query.user);log.find($query$$).lean().exec(function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$)return console.error("logs query",
349
360
  $e$jscomp$0$$),$e$jscomp$0$$.error?$res$$.status(400).send($e$jscomp$0$$):$res$$.status(400).send({error:$e$jscomp$0$$.message||$e$jscomp$0$$});const $rows$$=$rs$$.map($r$$=>$r$$.data.data);$ctrl$$.onView($req$$.user,$rows$$,$e$$=>{setImmediate(()=>$e$$?(console.error("log onview",$e$$),$e$$.error?$res$$.status(400).send($e$$):$res$$.status(400).send({error:$e$$.message||$e$$})):$res$$.send($rs$$))},{req:$req$$})})})})};
350
361
  controller.prototype.postData=($obj$$,$cb$$,$options$$={})=>postData($obj$$,this,$cb$$,$options$$);
351
- controller.prototype.route=function($setRoute$$){this.history();this.logs();this.find("/search"+this.route_name,!1,"POST");this.find();this.get();this.find(`/${this.module}/shared`,!0);this.get(`/${this.module}/shared`,!0);this.getFieldNoRight();this.create();this.quickCreate();this.update();this.delete();this.getNextId();this.exportToExcel();this.importFromExcel();this.importFromJson();this.updateField();this.updateKey();this.postAgain();$setRoute$$&&$setRoute$$(this.router)};module.exports=controller;
362
+ controller.prototype.route=function($setRoute$$){this.history();this.logs();this.find("/search"+this.route_name,!1,"POST");this.find();this.get();this.find(`/${this.module}/shared`,!0);this.get(`/${this.module}/shared`,!0);this.getFieldNoRight();this.create();this.quickCreate();this.update();this.delete();this.getNextId();this.exportToExcel();this.importFromExcel();this.importFromJson();this.importFromGoogleSheet();this.updateField();this.updateKey();this.postAgain();$setRoute$$&&$setRoute$$(this.router)};
363
+ module.exports=controller;
@@ -88,13 +88,13 @@ sender.auth = {
88
88
  pass: ''
89
89
  };*/
90
90
  var sender = {
91
- "host": "email host",
91
+ "host": "",
92
92
  "port": 25,
93
93
  "secure": false,
94
94
  "authMethod": "LOGIN",
95
95
  "auth": {
96
- "user": "email address",
97
- "pass": "password"
96
+ "user": "",
97
+ "pass": ""
98
98
  }
99
99
  }
100
100
  //
@@ -1,11 +1,11 @@
1
1
  'use strict';const dktk=require("./dktk"),cktk=require("./cktk"),pstk=require("./pstk"),Account=global.getModel("account"),async=require("async"),underscore=require("underscore"),setBacTKCon=($data$$,$tk_me$$,$bac_tk_me$$)=>{$data$$.filter($d$$=>$d$$.tk_me==$tk_me$$).forEach($tk$$=>{$tk$$.bac_tk=$bac_tk_me$$+1;setBacTKCon($data$$,$tk$$.tk,$tk$$.bac_tk)})};
2
- module.exports=function($query$$,$fn$$){if(!$query$$.tu_ngay||!$query$$.den_ngay||!$query$$.id_app)return $fn$$(Error("H\u00e0m n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tu_ngay,den_ngay,id_app"));$query$$.tk||($query$$.tk="");$query$$.ma_dvcs||($query$$.ma_dvcs="");let $bac_tk$$=$query$$.bac_tk||0;delete $query$$.bac_tk;async.series({dk:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.tu_ngay;dktk($condition$$,
3
- function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})},ps:function($callback$$){setImmediate(()=>{let $condition$$={id_app:$query$$.id_app};$condition$$.tk={$regex:"^"+$query$$.tk,$options:"i"};$condition$$.ma_dvcs={$regex:$query$$.ma_dvcs,$options:"i"};$condition$$.ngay_ct={$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay};$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);pstk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);
4
- $callback$$(null,$result$$)})})},ck:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.den_ngay;cktk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})}},function($error$jscomp$1$$,$results$$){if($error$jscomp$1$$)return $fn$$($error$jscomp$1$$);let $data$jscomp$0$$=$results$$.ps;$results$$.dk.forEach(function($r$$){$r$$.dk_no=$r$$.du_no00;$r$$.dk_co=$r$$.du_co00;
5
- $r$$.dk_no_nt=$r$$.du_no_nt00;$r$$.dk_co_nt=$r$$.du_co_nt00;$data$jscomp$0$$.push($r$$)});$results$$.ck.forEach(function($r$$){$r$$.ck_no=$r$$.du_no00;$r$$.ck_co=$r$$.du_co00;$r$$.ck_no_nt=$r$$.du_no_nt00;$r$$.ck_co_nt=$r$$.du_co_nt00;$data$jscomp$0$$.push($r$$)});$data$jscomp$0$$.groupBy("tk",[{name:"dk_no",value:"dk_no"},{name:"dk_co",value:"dk_co"},{name:"dk_no_nt",value:"dk_no_nt"},{name:"dk_co_nt",value:"dk_co_nt"},{name:"ps_no",value:"ps_no"},{name:"ps_co",value:"ps_co"},{name:"ps_no_nt",value:"ps_no_nt"},
6
- {name:"ps_co_nt",value:"ps_co_nt"},{name:"ck_no",value:"ck_no"},{name:"ck_co",value:"ck_co"},{name:"ck_no_nt",value:"ck_no_nt"},{name:"ck_co_nt",value:"ck_co_nt"}],function($error$jscomp$0$$,$data$$){let $cdpstkme$$=[];async.mapSeries($data$$,function($acc$$,$callback$$){setImmediate(()=>{$acc$$.loai_tk=1;let $tk$$=$acc$$.tk;async.forever(function($next$$){Account.find({tk:$tk$$,id_app:$query$$.id_app},{tk_me:1},function($error1_vTK$$,$r$$){$r$$&&1==$r$$.length&&$r$$[0].tk_me?($error1_vTK$$={},underscore.extend($error1_vTK$$,
7
- $acc$$),$error1_vTK$$.tk=$r$$[0].tk_me,$cdpstkme$$.push($error1_vTK$$),$tk$$=$r$$[0].tk_me,$next$$()):$next$$("finish or has error")})},function(){$callback$$()})})},function(){$cdpstkme$$.groupBy("tk",[{name:"dk_no",value:"dk_no"},{name:"dk_co",value:"dk_co"},{name:"dk_no_nt",value:"dk_no_nt"},{name:"dk_co_nt",value:"dk_co_nt"},{name:"ps_no",value:"ps_no"},{name:"ps_co",value:"ps_co"},{name:"ps_no_nt",value:"ps_no_nt"},{name:"ps_co_nt",value:"ps_co_nt"},{name:"ck_no",value:"ck_no"},{name:"ck_co",
8
- value:"ck_co"},{name:"ck_no_nt",value:"ck_no_nt"},{name:"ck_co_nt",value:"ck_co_nt"}],function($error$$,$dataTkMe$$){if($error$$)return $fn$$($error$$);async.mapSeries($dataTkMe$$,function($tkMe$$,$callback$$){setImmediate(()=>{Account.find({tk:$tkMe$$.tk,id_app:$query$$.id_app},{tk_cn:1,loai_tk:1},function($e3_tk$$,$rtk$$){if(1!=$rtk$$.length)return $callback$$(null);$e3_tk$$=$rtk$$[0];$tkMe$$.loai_tk=$e3_tk$$.loai_tk;if($e3_tk$$.tk_cn&&!$query$$.bu_tru)return $data$$.push($tkMe$$),$callback$$(null);
9
- $tkMe$$.dk_no-=$tkMe$$.dk_co;$tkMe$$.ck_no-=$tkMe$$.ck_co;$tkMe$$.dk_no_nt-=$tkMe$$.dk_co_nt;$tkMe$$.ck_no_nt-=$tkMe$$.ck_co_nt;0>$tkMe$$.dk_no?($tkMe$$.dk_co=Math.abs($tkMe$$.dk_no),$tkMe$$.dk_no=0):$tkMe$$.dk_co=0;0>$tkMe$$.dk_no_nt?($tkMe$$.dk_co_nt=Math.abs($tkMe$$.dk_no_nt),$tkMe$$.dk_no_nt=0):$tkMe$$.dk_co_nt=0;0>$tkMe$$.ck_no?($tkMe$$.ck_co=Math.abs($tkMe$$.ck_no),$tkMe$$.ck_no=0):$tkMe$$.ck_co=0;0>$tkMe$$.ck_no_nt?($tkMe$$.ck_co_nt=Math.abs($tkMe$$.ck_no_nt),$tkMe$$.ck_no_nt=0):$tkMe$$.ck_co_nt=
10
- 0;$data$$.push($tkMe$$);$callback$$(null)})})},async function(){await $data$$.asyncJoinModel2($query$$.id_app,Account,{where:"tk",fields:"tk_me"});$data$$.filter($d$$=>!$d$$.tk_me).forEach($d$$=>{$d$$.bac_tk=1;setBacTKCon($data$$,$d$$.tk,$d$$.bac_tk)});$data$$.filter($d$$=>0==$d$$.loai_tk||1===$d$$.bac_tk).forEach($d$$=>$d$$.bold=!0);$data$$=$data$$.filter($row$$=>0!==Math.abs($row$$.dk_no)+Math.abs($row$$.dk_co)+Math.abs($row$$.ps_no)+Math.abs($row$$.ps_co)+Math.abs($row$$.ck_no)+Math.abs($row$$.ck_co)+
11
- (Math.abs($row$$.dk_no_nt)+Math.abs($row$$.dk_co_nt)+Math.abs($row$$.ps_no_nt)+Math.abs($row$$.ps_co_nt)+Math.abs($row$$.ck_no_nt)+Math.abs($row$$.ck_co_nt))&&(!$bac_tk$$||$row$$.bac_tk<=Number($bac_tk$$)));$fn$$(null,$data$$)})})})})})};
2
+ module.exports=function($query$$,$fn$$){if(!$query$$.tu_ngay||!$query$$.den_ngay||!$query$$.id_app)return $fn$$(Error("H\u00e0m n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tu_ngay,den_ngay,id_app"));$query$$.tk||($query$$.tk="");$query$$.ma_dvcs||($query$$.ma_dvcs="");let $bac_tk$$=$query$$.bac_tk||0;delete $query$$.bac_tk;let $chi_lay_tk_con$$=$query$$.chi_lay_tk_con;delete $query$$.chi_lay_tk_con;async.parallel({dk:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,
3
+ $query$$);$condition$$.ngay=$query$$.tu_ngay;dktk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})},ps:function($callback$$){setImmediate(()=>{let $condition$$={id_app:$query$$.id_app},$tk$$=$query$$.tk;if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};$condition$$.tk=$tk$$;
4
+ $condition$$.ma_dvcs={$regex:$query$$.ma_dvcs,$options:"i"};$condition$$.ngay_ct={$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay};$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);pstk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})},ck:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.den_ngay;cktk($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);
5
+ $callback$$(null,$result$$)})})}},function($error$jscomp$1$$,$results$$){if($error$jscomp$1$$)return $fn$$($error$jscomp$1$$);let $data$jscomp$0$$=$results$$.ps;$results$$.dk.forEach(function($r$$){$r$$.dk_no=$r$$.du_no00;$r$$.dk_co=$r$$.du_co00;$r$$.dk_no_nt=$r$$.du_no_nt00;$r$$.dk_co_nt=$r$$.du_co_nt00;$data$jscomp$0$$.push($r$$)});$results$$.ck.forEach(function($r$$){$r$$.ck_no=$r$$.du_no00;$r$$.ck_co=$r$$.du_co00;$r$$.ck_no_nt=$r$$.du_no_nt00;$r$$.ck_co_nt=$r$$.du_co_nt00;$data$jscomp$0$$.push($r$$)});
6
+ $data$jscomp$0$$.groupBy("tk",[{name:"dk_no",value:"dk_no"},{name:"dk_co",value:"dk_co"},{name:"dk_no_nt",value:"dk_no_nt"},{name:"dk_co_nt",value:"dk_co_nt"},{name:"ps_no",value:"ps_no"},{name:"ps_co",value:"ps_co"},{name:"ps_no_nt",value:"ps_no_nt"},{name:"ps_co_nt",value:"ps_co_nt"},{name:"ck_no",value:"ck_no"},{name:"ck_co",value:"ck_co"},{name:"ck_no_nt",value:"ck_no_nt"},{name:"ck_co_nt",value:"ck_co_nt"}],function($error$jscomp$0$$,$data$$){if($chi_lay_tk_con$$)return $fn$$(null,$data$$);let $cdpstkme$$=
7
+ [];async.map($data$$,function($acc$$,$callback$$){setImmediate(()=>{$acc$$.loai_tk=1;let $tk$$=$acc$$.tk;async.forever(function($next$$){Account.find({tk:$tk$$,id_app:$query$$.id_app},{tk_me:1},function($error1_vTK$$,$r$$){$r$$&&1==$r$$.length&&$r$$[0].tk_me?($error1_vTK$$={},underscore.extend($error1_vTK$$,$acc$$),$error1_vTK$$.tk=$r$$[0].tk_me,$cdpstkme$$.push($error1_vTK$$),$tk$$=$r$$[0].tk_me,$next$$()):$next$$("finish or has error")})},function(){$callback$$()})})},function(){$cdpstkme$$.groupBy("tk",
8
+ [{name:"dk_no",value:"dk_no"},{name:"dk_co",value:"dk_co"},{name:"dk_no_nt",value:"dk_no_nt"},{name:"dk_co_nt",value:"dk_co_nt"},{name:"ps_no",value:"ps_no"},{name:"ps_co",value:"ps_co"},{name:"ps_no_nt",value:"ps_no_nt"},{name:"ps_co_nt",value:"ps_co_nt"},{name:"ck_no",value:"ck_no"},{name:"ck_co",value:"ck_co"},{name:"ck_no_nt",value:"ck_no_nt"},{name:"ck_co_nt",value:"ck_co_nt"}],function($error$$,$dataTkMe$$){if($error$$)return $fn$$($error$$);async.map($dataTkMe$$,function($tkMe$$,$callback$$){setImmediate(()=>
9
+ {Account.find({tk:$tkMe$$.tk,id_app:$query$$.id_app},{tk_cn:1,loai_tk:1},function($e3_tk$$,$rtk$$){if(1!=$rtk$$.length)return $callback$$(null);$e3_tk$$=$rtk$$[0];$tkMe$$.loai_tk=$e3_tk$$.loai_tk;if($e3_tk$$.tk_cn&&!$query$$.bu_tru)return $data$$.push($tkMe$$),$callback$$(null);$tkMe$$.dk_no-=$tkMe$$.dk_co;$tkMe$$.ck_no-=$tkMe$$.ck_co;$tkMe$$.dk_no_nt-=$tkMe$$.dk_co_nt;$tkMe$$.ck_no_nt-=$tkMe$$.ck_co_nt;0>$tkMe$$.dk_no?($tkMe$$.dk_co=Math.abs($tkMe$$.dk_no),$tkMe$$.dk_no=0):$tkMe$$.dk_co=0;0>$tkMe$$.dk_no_nt?
10
+ ($tkMe$$.dk_co_nt=Math.abs($tkMe$$.dk_no_nt),$tkMe$$.dk_no_nt=0):$tkMe$$.dk_co_nt=0;0>$tkMe$$.ck_no?($tkMe$$.ck_co=Math.abs($tkMe$$.ck_no),$tkMe$$.ck_no=0):$tkMe$$.ck_co=0;0>$tkMe$$.ck_no_nt?($tkMe$$.ck_co_nt=Math.abs($tkMe$$.ck_no_nt),$tkMe$$.ck_no_nt=0):$tkMe$$.ck_co_nt=0;$data$$.push($tkMe$$);$callback$$(null)})})},async function(){await $data$$.asyncJoinModel2($query$$.id_app,Account,{where:"tk",fields:"tk_me"});$data$$.filter($d$$=>!$d$$.tk_me).forEach($d$$=>{$d$$.bac_tk=1;setBacTKCon($data$$,
11
+ $d$$.tk,$d$$.bac_tk)});$data$$.filter($d$$=>0==$d$$.loai_tk||1===$d$$.bac_tk).forEach($d$$=>$d$$.bold=!0);$data$$=$data$$.filter($row$$=>0!==Math.abs($row$$.dk_no)+Math.abs($row$$.dk_co)+Math.abs($row$$.ps_no)+Math.abs($row$$.ps_co)+Math.abs($row$$.ck_no)+Math.abs($row$$.ck_co)+(Math.abs($row$$.dk_no_nt)+Math.abs($row$$.dk_co_nt)+Math.abs($row$$.ps_no_nt)+Math.abs($row$$.ps_co_nt)+Math.abs($row$$.ck_no_nt)+Math.abs($row$$.ck_co_nt))&&(!$bac_tk$$||$row$$.bac_tk<=Number($bac_tk$$)));$fn$$(null,$data$$)})})})})})};
@@ -1,10 +1,11 @@
1
- 'use strict';const Cdkh=global.getModel("cdkh"),Vsocai=require("./vsocai"),dstkcn=require("./dstkcn"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
- module.exports=async function($condition$$,$fn$$){if(!$condition$$||!$condition$$.ngay||!$condition$$.id_app)return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay");if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){var $_q_tu_ngay$$={};$condition$$.nh_kh&&($_q_tu_ngay$$.nh_kh=$condition$$.nh_kh);$condition$$.phu_trach&&($_q_tu_ngay$$.phu_trach=$condition$$.phu_trach);$condition$$.ma_kh=await global.getModel("customer").getList($condition$$.id_app,
3
- $_q_tu_ngay$$,"ma_kh")}let $tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};let $ngay$$=new Date($condition$$.ngay),$ngay_dn$$,$nam$$;$condition$$.tu_ngay?($_q_tu_ngay$$=new Date($condition$$.tu_ngay),$nam$$=$_q_tu_ngay$$.getFullYear(),$ngay_dn$$=moment($_q_tu_ngay$$).startOf("year").toDate()):($nam$$=
4
- $ngay$$.getFullYear(),$ngay_dn$$=moment($ngay$$).startOf("year").toDate());$ngay$$=moment($ngay$$).endOf("date").toDate();let $id_app$$=$condition$$.id_app;async.series({dn:function($callback$$){setImmediate(()=>{let $c_dk$$={id_app:$id_app$$,nam:$nam$$,tk:$tk$$};$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$c_dk$$.ma_kh={$in:$condition$$.ma_kh}:$c_dk$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_dvcs&&($c_dk$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);
5
- $condition$$.ma_bp&&($c_dk$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($c_dk$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($c_dk$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($c_dk$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($c_dk$$.ma_dt=$condition$$.ma_dt);Cdkh.find($c_dk$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>{dstkcn($id_app$$,
6
- $tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{let $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lte:$ngay$$},tk:{$in:$accs$$}};$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$query$$.ma_kh={$in:$condition$$.ma_kh}:$query$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&
7
- ($query$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($query$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($query$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($query$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($query$$.ma_dt=$condition$$.ma_dt);$condition$$.ex_id_ct&&($query$$.id_ct={$ne:$condition$$.ex_id_ct});Vsocai.find($query$$,function($error$$,$pss$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$pss$$)})})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);
8
- $callback$$(null,$result$$)})}},function($data_error$$,$groupBy_results$$){if($data_error$$)return $fn$$($data_error$$);$data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);$groupBy_results$$=$condition$$.groupBy||"tk ma_kh ma_kho ma_bp ma_phi ma_dt ma_hd ma_nv".split(" ");if(!underscore.isArray($groupBy_results$$))if(0<=$groupBy_results$$.indexOf("["))try{$groupBy_results$$=JSON.parse($groupBy_results$$)}catch($e$$){console.error("err parse json groupby",$groupBy_results$$),$groupBy_results$$=
9
- [$groupBy_results$$]}else $groupBy_results$$=0<=$groupBy_results$$.indexOf(",")?$groupBy_results$$.split(","):[$groupBy_results$$];$data_error$$.groupBy($groupBy_results$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;
10
- $r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,$rs$$)})})})};
1
+ 'use strict';const Vsocai=require("./vsocai"),dstkcn=require("./dstkcn"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
+ module.exports=async function($condition$$,$fn$$){if(!$condition$$||!$condition$$.ngay||!$condition$$.id_app)return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay");if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){var $_q_app_ngay_chua_ks$$={};$condition$$.nh_kh&&($_q_app_ngay_chua_ks$$.nh_kh=$condition$$.nh_kh);$condition$$.phu_trach&&($_q_app_ngay_chua_ks$$.phu_trach=$condition$$.phu_trach);$condition$$.ma_kh=await global.getModel("customer").getList($condition$$.id_app,
3
+ $_q_app_ngay_chua_ks$$,"ma_kh")}let $tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};let $id_app$$=$condition$$.id_app;$_q_app_ngay_chua_ks$$=await global.getModel("app").findOne({_id:$condition$$.id_app},{ngay_ks:1}).lean();if(!$_q_app_ngay_chua_ks$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");
4
+ let $ngay_ks$$=moment($_q_app_ngay_chua_ks$$.ngay_ks).endOf("date").toDate();$_q_app_ngay_chua_ks$$=moment($_q_app_ngay_chua_ks$$.ngay_ks).startOf("date").add(1,"days").toDate();let $ngay$$=moment($condition$$.ngay).endOf("date").toDate(),$ngay_tinh_dn$$=$condition$$.tu_ngay&&new Date($condition$$.tu_ngay)<$ngay$$?moment($condition$$.tu_ngay).endOf("date").toDate():$ngay$$,$ngay_dn$$=moment($ngay_tinh_dn$$).startOf("year").toDate(),$nam$$,$Cdkh$$;$ngay_tinh_dn$$<$_q_app_ngay_chua_ks$$||$ngay_dn$$>
5
+ $_q_app_ngay_chua_ks$$?($Cdkh$$=global.getModel("cdkh"),$nam$$=$ngay_tinh_dn$$.getFullYear()):($Cdkh$$=global.getModel("cdkhtheongay"),$ngay_dn$$=$_q_app_ngay_chua_ks$$);async.series({dn:function($callback$$){setImmediate(()=>{let $c_dk$$={id_app:$id_app$$,tk:$tk$$};$nam$$?$c_dk$$.nam=$nam$$:(console.log("lay cdcn theo ngay khoa so",$ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$c_dk$$.ma_kh={$in:$condition$$.ma_kh}:$c_dk$$.ma_kh=$condition$$.ma_kh);
6
+ $condition$$.ma_dvcs&&($c_dk$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&($c_dk$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($c_dk$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($c_dk$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($c_dk$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($c_dk$$.ma_dt=$condition$$.ma_dt);$Cdkh$$.find($c_dk$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);
7
+ $callback$$(null,$results$$)})})},ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>{dstkcn($id_app$$,$tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{let $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lte:$ngay$$},tk:{$in:$accs$$}};$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$query$$.ma_kh={$in:$condition$$.ma_kh}:$query$$.ma_kh=$condition$$.ma_kh);
8
+ $condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&($query$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($query$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($query$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($query$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($query$$.ma_dt=$condition$$.ma_dt);$condition$$.ex_id_ct&&($query$$.id_ct={$ne:$condition$$.ex_id_ct});Vsocai.find($query$$,function($error$$,
9
+ $pss$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$pss$$)})})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})}},function($data_error$$,$groupBy_results$$){if($data_error$$)return $fn$$($data_error$$);$data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);$groupBy_results$$=$condition$$.groupBy||"tk ma_kh ma_kho ma_bp ma_phi ma_dt ma_hd ma_nv".split(" ");if(!underscore.isArray($groupBy_results$$))if(0<=$groupBy_results$$.indexOf("["))try{$groupBy_results$$=
10
+ JSON.parse($groupBy_results$$)}catch($e$$){console.error("err parse json groupby",$groupBy_results$$),$groupBy_results$$=[$groupBy_results$$]}else $groupBy_results$$=0<=$groupBy_results$$.indexOf(",")?$groupBy_results$$.split(","):[$groupBy_results$$];$data_error$$.groupBy($groupBy_results$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-
11
+ $r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,$rs$$)})})})};
@@ -1,4 +1,4 @@
1
1
  'use strict';const cktt=require("./cktt"),ckcn=require("./ckcn"),async=require("async");
2
2
  module.exports=function($condition$$,$fn$$){if(!$condition$$||!$condition$$.ngay||!$condition$$.id_app)return $fn$$(Error("ngay and id_app parameter required"));let $tk$$=$condition$$.tk;$tk$$||($tk$$="");let $bu_tru$$=$condition$$.bu_tru;$bu_tru$$||($bu_tru$$=!1);async.series({tt:function($callback$$){cktt($condition$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);$callback$$(null,$report$$)})},cn:function($callback$$){let $_group$$=["tk","ma_kh"];!0===$bu_tru$$&&($_group$$=
3
- ["tk"]);let $_condition$$={...$condition$$};$_condition$$.groupBy=$_group$$;ckcn($_condition$$,function($error$$,$result$$){$error$$?$callback$$($error$$):(!0===$bu_tru$$&&$result$$.forEach(function($r$$){$r$$.du_no00-=$r$$.du_co00;$r$$.du_no_nt00-=$r$$.du_co_nt00;0>$r$$.du_no00?($r$$.du_co00=Math.abs($r$$.du_no00),$r$$.du_no00=0):$r$$.du_co00=0;0>$r$$.du_no_nt00?($r$$.du_co_nt00=Math.abs($r$$.du_no_nt00),$r$$.du_no_nt00=0):$r$$.du_co_nt00=0}),$callback$$(null,$result$$))})}},function($error$jscomp$3_report$$,
3
+ ["tk"]);let $_condition$$={...$condition$$};$_condition$$.groupBy=$_group$$;ckcn($_condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);!0===$bu_tru$$&&$result$$.forEach(function($r$$){$r$$.du_no00-=$r$$.du_co00;$r$$.du_no_nt00-=$r$$.du_co_nt00;0>$r$$.du_no00?($r$$.du_co00=Math.abs($r$$.du_no00),$r$$.du_no00=0):$r$$.du_co00=0;0>$r$$.du_no_nt00?($r$$.du_co_nt00=Math.abs($r$$.du_no_nt00),$r$$.du_no_nt00=0):$r$$.du_co_nt00=0});$callback$$(null,$result$$)})}},function($error$jscomp$3_report$$,
4
4
  $results$$){if($error$jscomp$3_report$$)return $fn$$($error$jscomp$3_report$$);$error$jscomp$3_report$$=$results$$.tt.concat($results$$.cn);$fn$$(null,$error$jscomp$3_report$$)})};
@@ -1,7 +1,9 @@
1
- 'use strict';const Cdtk=global.getModel("cdtk"),Vsocai=require("./vsocai"),dstktt=require("./dstktt"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
- module.exports=function($condition$$,$fn$$){if(!$condition$$||!$condition$$.ngay||!$condition$$.id_app)return $fn$$(Error("ngay and id_app parameter required"));let $ma_dvcs$$=$condition$$.ma_dvcs;$ma_dvcs$$||($ma_dvcs$$="");$ma_dvcs$$={$regex:$ma_dvcs$$,$options:"i"};let $tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+
3
- $tk$$,$options:"i"};let $ngay$$=moment(new Date($condition$$.ngay)).endOf("date").toDate(),$ngay_dn$$,$nam$$;if($condition$$.tu_ngay){let $tu_ngay$$=new Date($condition$$.tu_ngay);$nam$$=$tu_ngay$$.getFullYear();$ngay_dn$$=moment($tu_ngay$$).startOf("year").toDate()}else $nam$$=$ngay$$.getFullYear(),$ngay_dn$$=moment($ngay$$).startOf("year").toDate();let $id_app$$=$condition$$.id_app;async.series({dn:function($callback$$){setImmediate(()=>{Cdtk.find({id_app:$id_app$$,nam:$nam$$,tk:$tk$$,ma_dvcs:$ma_dvcs$$}).lean().exec(function($error$$,
4
- $results$$){if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>{dstktt($id_app$$,$tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lte:$ngay$$},tk:{$in:$accs$$},ma_dvcs:$ma_dvcs$$};$condition$$.ex_id_ct&&($query$$.id_ct={$ne:$condition$$.ex_id_ct});
5
- Vsocai.find($query$$,function($error$$,$pss$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$pss$$)})})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})}},function($error$jscomp$0$$,$results$$){if($error$jscomp$0$$)return $fn$$($error$jscomp$0$$);let $data$$=$results$$.dn;$results$$.ps.forEach(function($r$$){$data$$.push($r$$)});$error$jscomp$0$$=$condition$$.groupBy||["tk"];if(!underscore.isArray($error$jscomp$0$$))if(0<=$error$jscomp$0$$.indexOf("["))try{$error$jscomp$0$$=
6
- JSON.parse($error$jscomp$0$$)}catch($e$$){console.error("err parse json groupby",$error$jscomp$0$$),$error$jscomp$0$$=[$error$jscomp$0$$]}else $error$jscomp$0$$=0<=$error$jscomp$0$$.indexOf(",")?$error$jscomp$0$$.split(","):[$error$jscomp$0$$];$data$$.groupBy($error$jscomp$0$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-
7
- $r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,$rs$$)})})})};
1
+ 'use strict';const Vsocai=require("./vsocai"),dstktt=require("./dstktt"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
+ module.exports=async function($condition$$,$fn$$){if(!$condition$$||!$condition$$.ngay||!$condition$$.id_app)return $fn$$(Error("ngay and id_app parameter required"));let $ma_dvcs$$=$condition$$.ma_dvcs,$tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};let $id_app$$=$condition$$.id_app;var $app_ngay_chua_ks$$=
3
+ await global.getModel("app").findOne({_id:$condition$$.id_app},{ngay_ks:1}).lean();if(!$app_ngay_chua_ks$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");let $ngay_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).endOf("date").toDate();$app_ngay_chua_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).startOf("date").add(1,"days").toDate();let $ngay$$=moment($condition$$.ngay).endOf("date").toDate(),$ngay_tinh_dn$$=$condition$$.tu_ngay&&new Date($condition$$.tu_ngay)<$ngay$$?moment($condition$$.tu_ngay).endOf("date").toDate():
4
+ $ngay$$,$ngay_dn$$=moment($ngay_tinh_dn$$).startOf("year").toDate(),$nam$$,$Cdtk$$;$ngay_tinh_dn$$<$app_ngay_chua_ks$$||$ngay_dn$$>$app_ngay_chua_ks$$?($Cdtk$$=global.getModel("cdtk"),$nam$$=$ngay_tinh_dn$$.getFullYear()):($Cdtk$$=global.getModel("cdtktheongay"),$ngay_dn$$=$app_ngay_chua_ks$$);async.series({dn:function($callback$$){setImmediate(()=>{const $c_dk$$={id_app:$id_app$$,tk:$tk$$};$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$nam$$?$c_dk$$.nam=$nam$$:(console.log("lay cdtk theo ngay khoa so",
5
+ $ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$Cdtk$$.find($c_dk$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>{dstktt($id_app$$,$tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lte:$ngay$$},
6
+ tk:{$in:$accs$$}};$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$condition$$.ex_id_ct&&($query$$.id_ct={$ne:$condition$$.ex_id_ct});Vsocai.find($query$$,async function($error$$,$pss$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$pss$$)})})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})}},function($error$jscomp$0$$,$results$$){if($error$jscomp$0$$)return $fn$$($error$jscomp$0$$);let $data$$=$results$$.dn;$results$$.ps.forEach(function($r$$){$data$$.push($r$$)});
7
+ $error$jscomp$0$$=$condition$$.groupBy||["tk"];if(!underscore.isArray($error$jscomp$0$$))if(0<=$error$jscomp$0$$.indexOf("["))try{$error$jscomp$0$$=JSON.parse($error$jscomp$0$$)}catch($e$$){console.error("err parse json groupby",$error$jscomp$0$$),$error$jscomp$0$$=[$error$jscomp$0$$]}else $error$jscomp$0$$=0<=$error$jscomp$0$$.indexOf(",")?$error$jscomp$0$$.split(","):[$error$jscomp$0$$];$data$$.groupBy($error$jscomp$0$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),
8
+ ($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,
9
+ $rs$$)})})})};
@@ -1,11 +1,12 @@
1
- 'use strict';const cdvt=global.getModel("cdvt"),dmvt=global.getModel("dmvt"),sokho=global.getModel("sokho"),hanmucton=global.getModel("hanmucton"),ckvtcapphat=require("./ckvtcapphat"),utils=require("./utils"),async=require("async"),underscore=require("underscore"),moment=require("moment");
1
+ 'use strict';const dmvt=global.getModel("dmvt"),sokho=global.getModel("sokho"),hanmucton=global.getModel("hanmucton"),ckvtcapphat=require("./ckvtcapphat"),utils=require("./utils"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
2
  module.exports=async($condition$$,$fn$$)=>{$fn$$||($fn$$=()=>{});!$condition$$.ngay&&$condition$$.den_ngay&&($condition$$.ngay=$condition$$.den_ngay);let $ma_dvcs$$=$condition$$.ma_dvcs,$ma_kho$$=$condition$$.ma_kho,$ma_vt$$=$condition$$.ma_vt;if(underscore.isString($ma_vt$$)&&0<=$ma_vt$$.indexOf("[")&&0<$ma_vt$$.indexOf("]"))try{$ma_vt$$=JSON.parse($ma_vt$$),0==$ma_vt$$.length&&($ma_vt$$=void 0)}catch($e$$){console.error($e$$)}$ma_vt$$&&underscore.isArray($ma_vt$$)&&($ma_vt$$={$in:Object.assign($ma_vt$$)});
3
- let $ngay$$,$nam$$,$ngay_dn$$;$ngay$$=moment($condition$$.ngay).endOf("date").toDate();if($condition$$.tu_ngay){let $tu_ngay$$=new Date($condition$$.tu_ngay);$nam$$=$tu_ngay$$.getFullYear();$ngay_dn$$=moment($tu_ngay$$).startOf("year").toDate()}else $nam$$=$ngay$$.getFullYear(),$ngay_dn$$=moment($ngay$$).startOf("year").toDate();let $id_app$$=$condition$$.id_app;return new Promise(($resolve$$,$reject$$)=>{async.series({ckcapphat:$callback$$=>{setImmediate(()=>{ckvtcapphat($condition$$,($e$$,$rs$$)=>
4
- {$callback$$($e$$,$rs$$)})})},dn:$callback$$=>{setImmediate(()=>{const $c_dk$$={id_app:$id_app$$,nam:$nam$$};$ma_kho$$&&($c_dk$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$ma_vt$$&&($c_dk$$.ma_vt=$ma_vt$$);$condition$$.ma_lo&&($c_dk$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($c_dk$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($c_dk$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($c_dk$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($c_dk$$.ma_tt3=$condition$$.ma_tt3);
5
- cdvt.find($c_dk$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},hanmucton:$callback$$=>{setImmediate(()=>{const $c_dk$$={id_app:$id_app$$};$ma_kho$$&&($c_dk$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$ma_vt$$&&($c_dk$$.ma_vt=$ma_vt$$);$condition$$.ma_lo&&($c_dk$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($c_dk$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($c_dk$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&
6
- ($c_dk$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($c_dk$$.ma_tt3=$condition$$.ma_tt3);hanmucton.find($c_dk$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},ps:$callback$$=>{setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lte:$ngay$$}};$ma_kho$$&&($query$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);$condition$$.ma_lo&&($query$$.ma_lo=$condition$$.ma_lo);
7
- $condition$$.han_sd&&($query$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($query$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($query$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($query$$.ma_tt3=$condition$$.ma_tt3);$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});sokho.find($query$$).lean().exec(($error$$,$pss$$)=>{if($error$$)return $callback$$($error$$);$pss$$=$pss$$.map($ps$$=>{$ps$$.sl_nhap=utils.round($ps$$.sl_nhap_qd,4);$ps$$.sl_xuat=utils.round($ps$$.sl_xuat_qd,
8
- 4);return $ps$$});$callback$$(null,$pss$$)})})},ton_kho_mac_dinh:$callback$$=>{setImmediate(()=>{let $query$$={id_app:$id_app$$,ton_kho_mac_dinh:{$nin:[null,void 0,0]}};$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);dmvt.find($query$$,{ma_vt:1,ton_kho_mac_dinh:1}).lean().exec(($e$$,$rs$$)=>{$callback$$(null,$rs$$)})})}},($ckcapphat_error$$,$data_results$$)=>{if($ckcapphat_error$$)return $fn$$($ckcapphat_error$$),$reject$$(Error($ckcapphat_error$$));$ckcapphat_error$$=$data_results$$.ckcapphat.map($c$$=>{$c$$.ton00_capphat=
9
- $c$$.ton00;$c$$.du00_capphat=$c$$.du00;$c$$.ton00=0;$c$$.du00=0;return $c$$});$data_results$$=$data_results$$.dn.concat($data_results$$.ps).concat($ckcapphat_error$$).concat($data_results$$.ton_kho_mac_dinh).concat($data_results$$.hanmucton);($ckcapphat_error$$=$condition$$.groupBy||$condition$$.groupby)||($ckcapphat_error$$=["ma_vt"]);if(underscore.isString($ckcapphat_error$$))if(0<=$ckcapphat_error$$.indexOf("["))try{$ckcapphat_error$$=JSON.parse($ckcapphat_error$$)}catch($e$$){console.error($e$$)}else $ckcapphat_error$$=
10
- $ckcapphat_error$$.split(",");$data_results$$.groupBy($ckcapphat_error$$,"sl_nhap sl_xuat ton00 du00 ton00_capphat du00_capphat tien_nhap tien_xuat ton_kho_mac_dinh ton_toi_thieu ton_toi_da".split(" "),($e$$,$groups$$)=>{if($e$$)return $fn$$($e$$),$reject$$(Error($e$$));setImmediate(()=>{for(let $r$$ of $groups$$)$r$$.ton00=utils.round($r$$.ton00+$r$$.sl_nhap-$r$$.sl_xuat,4),$r$$.du00=Math.roundBy($r$$.du00,0)+Math.roundBy($r$$.tien_nhap,0)-Math.roundBy($r$$.tien_xuat,0),$r$$.sl_nhap=0,$r$$.sl_xuat=
11
- 0,$r$$.tien_nhap=0,$r$$.tien_xuat=0,$r$$.ton=$r$$.ton00-(0<$r$$.ton00_capphat?$r$$.ton00_capphat:0),$r$$.du=$r$$.du00-(0<$r$$.du00_capphat?$r$$.du00_capphat:0);$fn$$(null,$groups$$);$resolve$$($groups$$)})})})})};
3
+ let $id_app$$=$condition$$.id_app;var $app_ngay_chua_ks$$=await global.getModel("app").findOne({_id:$condition$$.id_app},{ngay_ks:1}).lean();if(!$app_ngay_chua_ks$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");let $ngay_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).endOf("date").toDate();$app_ngay_chua_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).startOf("date").add(1,"days").toDate();let $ngay$$=moment($condition$$.ngay).endOf("date").toDate(),$ngay_tinh_dn$$=$condition$$.tu_ngay&&new Date($condition$$.tu_ngay)<
4
+ $ngay$$?moment($condition$$.tu_ngay).endOf("date").toDate():$ngay$$,$ngay_dn$$=moment($ngay_tinh_dn$$).startOf("year").toDate(),$nam$$,$cdvt$$;$ngay_tinh_dn$$<$app_ngay_chua_ks$$||$ngay_dn$$>$app_ngay_chua_ks$$?($cdvt$$=global.getModel("cdvt"),$nam$$=$ngay_tinh_dn$$.getFullYear()):($cdvt$$=global.getModel("cdvttheongay"),$ngay_dn$$=$app_ngay_chua_ks$$);return new Promise(($resolve$$,$reject$$)=>{async.series({ckcapphat:$callback$$=>{setImmediate(()=>{ckvtcapphat($condition$$,($e$$,$rs$$)=>{$callback$$($e$$,
5
+ $rs$$)})})},dn:$callback$$=>{setImmediate(()=>{const $c_dk$$={id_app:$id_app$$};$nam$$?$c_dk$$.nam=$nam$$:(console.log("lay cdvt theo ngay khoa so",$ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$ma_kho$$&&($c_dk$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$ma_vt$$&&($c_dk$$.ma_vt=$ma_vt$$);$condition$$.ma_lo&&($c_dk$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($c_dk$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($c_dk$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($c_dk$$.ma_tt2=
6
+ $condition$$.ma_tt2);$condition$$.ma_tt3&&($c_dk$$.ma_tt3=$condition$$.ma_tt3);$cdvt$$.find($c_dk$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},hanmucton:$callback$$=>{setImmediate(()=>{const $c_dk$$={id_app:$id_app$$};$ma_kho$$&&($c_dk$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$ma_vt$$&&($c_dk$$.ma_vt=$ma_vt$$);$condition$$.ma_lo&&($c_dk$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($c_dk$$.han_sd=$condition$$.han_sd);
7
+ $condition$$.ma_tt1&&($c_dk$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($c_dk$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($c_dk$$.ma_tt3=$condition$$.ma_tt3);hanmucton.find($c_dk$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},ps:$callback$$=>{setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lte:$ngay$$}};$ma_kho$$&&($query$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$ma_vt$$&&
8
+ ($query$$.ma_vt=$ma_vt$$);$condition$$.ma_lo&&($query$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($query$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($query$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($query$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($query$$.ma_tt3=$condition$$.ma_tt3);$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});sokho.find($query$$).lean().exec(($error$$,$pss$$)=>{if($error$$)return $callback$$($error$$);$pss$$=$pss$$.map($ps$$=>{$ps$$.sl_nhap=
9
+ utils.round($ps$$.sl_nhap_qd,4);$ps$$.sl_xuat=utils.round($ps$$.sl_xuat_qd,4);return $ps$$});$callback$$(null,$pss$$)})})},ton_kho_mac_dinh:$callback$$=>{setImmediate(()=>{let $query$$={id_app:$id_app$$,ton_kho_mac_dinh:{$nin:[null,void 0,0]}};$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);dmvt.find($query$$,{ma_vt:1,ton_kho_mac_dinh:1}).lean().exec(($e$$,$rs$$)=>{$callback$$(null,$rs$$)})})}},($ckcapphat_error$$,$data_results$$)=>{if($ckcapphat_error$$)return $fn$$($ckcapphat_error$$),$reject$$(Error($ckcapphat_error$$));
10
+ $ckcapphat_error$$=$data_results$$.ckcapphat.map($c$$=>{$c$$.ton00_capphat=$c$$.ton00;$c$$.du00_capphat=$c$$.du00;$c$$.ton00=0;$c$$.du00=0;return $c$$});$data_results$$=$data_results$$.dn.concat($data_results$$.ps).concat($ckcapphat_error$$).concat($data_results$$.ton_kho_mac_dinh).concat($data_results$$.hanmucton);($ckcapphat_error$$=$condition$$.groupBy||$condition$$.groupby)||($ckcapphat_error$$=["ma_vt"]);if(underscore.isString($ckcapphat_error$$))if(0<=$ckcapphat_error$$.indexOf("["))try{$ckcapphat_error$$=
11
+ JSON.parse($ckcapphat_error$$)}catch($e$$){console.error($e$$)}else $ckcapphat_error$$=$ckcapphat_error$$.split(",");$data_results$$.groupBy($ckcapphat_error$$,"sl_nhap sl_xuat ton00 du00 ton00_capphat du00_capphat tien_nhap tien_xuat ton_kho_mac_dinh ton_toi_thieu ton_toi_da".split(" "),($e$$,$groups$$)=>{if($e$$)return $fn$$($e$$),$reject$$(Error($e$$));setImmediate(()=>{for(let $r$$ of $groups$$)$r$$.ton00=utils.round($r$$.ton00+$r$$.sl_nhap-$r$$.sl_xuat,4),$r$$.du00=Math.roundBy($r$$.du00,0)+
12
+ Math.roundBy($r$$.tien_nhap,0)-Math.roundBy($r$$.tien_xuat,0),$r$$.sl_nhap=0,$r$$.sl_xuat=0,$r$$.tien_nhap=0,$r$$.tien_xuat=0,$r$$.ton=$r$$.ton00-(0<$r$$.ton00_capphat?$r$$.ton00_capphat:0),$r$$.du=$r$$.du00-(0<$r$$.du00_capphat?$r$$.du00_capphat:0);$fn$$(null,$groups$$);$resolve$$($groups$$)})})})})};
@@ -1,9 +1,10 @@
1
- 'use strict';const Cdkh=global.getModel("cdkh"),Vsocai=require("./vsocai"),dstkcn=require("./dstkcn"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
- module.exports=async function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){let $_q$$={};$condition$$.nh_kh&&($_q$$.nh_kh=$condition$$.nh_kh);$condition$$.phu_trach&&($_q$$.phu_trach=$condition$$.phu_trach);$condition$$.ma_kh=await global.getModel("customer").getList($condition$$.id_app,$_q$$,"ma_kh")}var $tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=
3
- $tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};var $ngay$$=new Date($condition$$.ngay);var $nam$$=$ngay$$.getFullYear();$ngay$$=moment($ngay$$).startOf("date").toDate();var $ngay_dn$$=moment($ngay$$).startOf("year").toDate();var $id_app$$=$condition$$.id_app;async.series({dn:function($callback$$){let $c_dk$$={id_app:$id_app$$,nam:$nam$$,tk:$tk$$};$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$c_dk$$.ma_kh=
4
- {$in:$condition$$.ma_kh}:$c_dk$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_dvcs&&($c_dk$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&($c_dk$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($c_dk$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($c_dk$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($c_dk$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($c_dk$$.ma_dt=$condition$$.ma_dt);Cdkh.find($c_dk$$).lean().exec(function($error$$,
5
- $results$$){$error$$?$callback$$($error$$):$callback$$(null,$results$$)})},ps:function($callback$$){async.waterfall([function($callback1$$){dstkcn($id_app$$,$tk$$,function($error$$,$accs$$){$error$$?$callback1$$($error$$):$callback1$$(null,$accs$$)})},function($accs$$,$callback1$$){$accs$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$},tk:{$in:$accs$$}};$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$accs$$.ma_kh={$in:$condition$$.ma_kh}:$accs$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_dvcs&&
6
- ($accs$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($accs$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&($accs$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($accs$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($accs$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($accs$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($accs$$.ma_dt=$condition$$.ma_dt);$condition$$.ex_id_ct&&($accs$$.id_ct={$ne:$condition$$.ex_id_ct});Vsocai.find($accs$$,function($error$$,$pss$$){$error$$?$callback1$$($error$$):
7
- $callback1$$(null,$pss$$)})}],function($error$$,$result$$){$error$$?$callback$$($error$$):$callback$$(null,$result$$)})}},function($data_error$$,$groupBy_results$$){if($data_error$$)return $fn$$($data_error$$);$data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);$groupBy_results$$=$condition$$.groupBy||"tk ma_kh ma_kho ma_bp ma_phi ma_dt ma_hd ma_nv".split(" ");if(!underscore.isArray($groupBy_results$$))if(0<=$groupBy_results$$.indexOf("["))try{$groupBy_results$$=JSON.parse($groupBy_results$$)}catch($e$$){console.error("err parse json groupby",
8
- $groupBy_results$$),$groupBy_results$$=[$groupBy_results$$]}else $groupBy_results$$=0<=$groupBy_results$$.indexOf(",")?$groupBy_results$$.split(","):[$groupBy_results$$];$data_error$$.groupBy($groupBy_results$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{$error$$?$fn$$($error$$):($rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=
9
- 0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0}),$fn$$(null,$rs$$))})})}else $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay")};
1
+ 'use strict';const Vsocai=require("./vsocai"),dstkcn=require("./dstkcn"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
+ module.exports=async function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){var $_q_app_ngay_chua_ks$$={};$condition$$.nh_kh&&($_q_app_ngay_chua_ks$$.nh_kh=$condition$$.nh_kh);$condition$$.phu_trach&&($_q_app_ngay_chua_ks$$.phu_trach=$condition$$.phu_trach);$condition$$.ma_kh=await global.getModel("customer").getList($condition$$.id_app,$_q_app_ngay_chua_ks$$,"ma_kh")}var $tk$$=$condition$$.tk;$tk$$||
3
+ ($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};var $id_app$$=$condition$$.id_app,$ngay$$=new Date($condition$$.ngay);$ngay$$=moment($ngay$$).startOf("date").toDate();$_q_app_ngay_chua_ks$$=await global.getModel("app").findOne({_id:$id_app$$},{ngay_ks:1}).lean();if(!$_q_app_ngay_chua_ks$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");
4
+ var $ngay_ks$$=moment($_q_app_ngay_chua_ks$$.ngay_ks).endOf("date").toDate();$_q_app_ngay_chua_ks$$=moment($_q_app_ngay_chua_ks$$.ngay_ks).startOf("date").add(1,"days").toDate();var $ngay_dn$$=moment($ngay$$).startOf("year").toDate();if($ngay$$<$_q_app_ngay_chua_ks$$||$ngay_dn$$>$_q_app_ngay_chua_ks$$){var $Cdkh$$=global.getModel("cdkh");var $nam$$=$ngay$$.getFullYear()}else $Cdkh$$=global.getModel("cdkhtheongay"),$ngay_dn$$=$_q_app_ngay_chua_ks$$;async.series({dn:function($callback$$){let $c_dk$$=
5
+ {id_app:$id_app$$,tk:$tk$$};$nam$$?$c_dk$$.nam=$nam$$:(console.log("lay cdcn theo ngay khoa so",$ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$c_dk$$.ma_kh={$in:$condition$$.ma_kh}:$c_dk$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_dvcs&&($c_dk$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&($c_dk$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($c_dk$$.ma_phi=$condition$$.ma_phi);
6
+ $condition$$.ma_nv&&($c_dk$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&($c_dk$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($c_dk$$.ma_dt=$condition$$.ma_dt);$Cdkh$$.find($c_dk$$).lean().exec(function($error$$,$results$$){$error$$?$callback$$($error$$):$callback$$(null,$results$$)})},ps:function($callback$$){async.waterfall([function($callback1$$){dstkcn($id_app$$,$tk$$,function($error$$,$accs$$){$error$$?$callback1$$($error$$):$callback1$$(null,$accs$$)})},function($accs$$,$callback1$$){$accs$$=
7
+ {id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$},tk:{$in:$accs$$}};$condition$$.ma_kh&&(underscore.isArray($condition$$.ma_kh)?$accs$$.ma_kh={$in:$condition$$.ma_kh}:$accs$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_dvcs&&($accs$$.ma_dvcs=$condition$$.ma_dvcs);$condition$$.ma_kho&&($accs$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_bp&&($accs$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_phi&&($accs$$.ma_phi=$condition$$.ma_phi);$condition$$.ma_nv&&($accs$$.ma_nv=$condition$$.ma_nv);$condition$$.ma_hd&&
8
+ ($accs$$.ma_hd=$condition$$.ma_hd);$condition$$.ma_dt&&($accs$$.ma_dt=$condition$$.ma_dt);$condition$$.ex_id_ct&&($accs$$.id_ct={$ne:$condition$$.ex_id_ct});Vsocai.find($accs$$,function($error$$,$pss$$){$error$$?$callback1$$($error$$):$callback1$$(null,$pss$$)})}],function($error$$,$result$$){$error$$?$callback$$($error$$):$callback$$(null,$result$$)})}},function($data_error$$,$groupBy_results$$){if($data_error$$)return $fn$$($data_error$$);$data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);
9
+ $groupBy_results$$=$condition$$.groupBy||"tk ma_kh ma_kho ma_bp ma_phi ma_dt ma_hd ma_nv".split(" ");if(!underscore.isArray($groupBy_results$$))if(0<=$groupBy_results$$.indexOf("["))try{$groupBy_results$$=JSON.parse($groupBy_results$$)}catch($e$$){console.error("err parse json groupby",$groupBy_results$$),$groupBy_results$$=[$groupBy_results$$]}else $groupBy_results$$=0<=$groupBy_results$$.indexOf(",")?$groupBy_results$$.split(","):[$groupBy_results$$];$data_error$$.groupBy($groupBy_results$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),
10
+ ($error$$,$rs$$)=>{$error$$?$fn$$($error$$):($rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0}),$fn$$(null,$rs$$))})})}else $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay")};
@@ -1,7 +1,8 @@
1
- 'use strict';const Cdtk=global.getModel("cdtk"),Vsocai=require("./vsocai"),dstktt=require("./dstktt"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
- module.exports=function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $ma_dvcs$$=$condition$$.ma_dvcs;$ma_dvcs$$||($ma_dvcs$$="");$ma_dvcs$$={$regex:$ma_dvcs$$,$options:"i"};var $tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};var $ngay$$=moment(new Date($condition$$.ngay)).startOf("date").toDate(),
3
- $nam$$=$ngay$$.getFullYear(),$ngay_dn$$=moment($ngay$$).startOf("year").toDate(),$id_app$$=$condition$$.id_app;async.series({dn:function($callback$$){setImmediate(()=>{let $c_dk$$={id_app:$id_app$$,nam:$nam$$,tk:$tk$$,ma_dvcs:$ma_dvcs$$};$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);Cdtk.find($c_dk$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>
4
- {dstktt($id_app$$,$tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$},tk:{$in:$accs$$},ma_dvcs:$ma_dvcs$$};$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);Vsocai.find($query$$,function($error$$,$pss$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$pss$$)})})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);
5
- $callback$$(null,$result$$)})}},function($error$jscomp$0$$,$results$$){if($error$jscomp$0$$)return $fn$$($error$jscomp$0$$);let $data$$=$results$$.dn;$results$$.ps.forEach(function($r$$){$data$$.push($r$$)});$error$jscomp$0$$=$condition$$.groupBy||["tk"];if(!underscore.isArray($error$jscomp$0$$))if(0<=$error$jscomp$0$$.indexOf("["))try{$error$jscomp$0$$=JSON.parse($error$jscomp$0$$)}catch($e$$){console.error("err parse json groupby",$error$jscomp$0$$),$error$jscomp$0$$=[$error$jscomp$0$$]}else $error$jscomp$0$$=
6
- 0<=$error$jscomp$0$$.indexOf(",")?$error$jscomp$0$$.split(","):[$error$jscomp$0$$];$data$$.groupBy($error$jscomp$0$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;$r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&
7
- ($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,$rs$$)})})})}else $fn$$(Error("ngay and id_app parameter required"))};
1
+ 'use strict';const Vsocai=require("./vsocai"),dstktt=require("./dstktt"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
+ module.exports=async function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $app_ngay_chua_ks$$=await global.getModel("app").findOne({_id:$condition$$.id_app},{ngay_ks:1}).lean();if(!$app_ngay_chua_ks$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");var $ngay_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).endOf("date").toDate();$app_ngay_chua_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).startOf("date").add(1,"days").toDate();var $ngay$$=moment($condition$$.ngay).startOf("date").toDate(),
3
+ $ngay_dn$$=moment($ngay$$).startOf("year").toDate();if($ngay$$<$app_ngay_chua_ks$$||$ngay_dn$$>$app_ngay_chua_ks$$){var $Cdtk$$=global.getModel("cdtk");var $nam$$=$ngay$$.getFullYear()}else $Cdtk$$=global.getModel("cdtktheongay"),$ngay_dn$$=$app_ngay_chua_ks$$;var $ma_dvcs$$=$condition$$.ma_dvcs,$tk$$=$condition$$.tk;$tk$$||($tk$$="");if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$=
4
+ {$regex:"^"+$tk$$,$options:"i"};var $id_app$$=$condition$$.id_app;async.series({dn:function($callback$$){setImmediate(()=>{let $c_dk$$={id_app:$id_app$$,tk:$tk$$};$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$nam$$?$c_dk$$.nam=$nam$$:(console.log("lay cdtk theo ngay khoa so",$ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$condition$$.ma_kho&&($c_dk$$.ma_kho=$condition$$.ma_kho);$Cdtk$$.find($c_dk$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);$callback$$(null,$results$$)})})},
5
+ ps:function($callback$$){async.waterfall([function($callback1$$){setImmediate(()=>{dstktt($id_app$$,$tk$$,function($error$$,$accs$$){if($error$$)return $callback1$$($error$$);$callback1$$(null,$accs$$)})})},function($accs$$,$callback1$$){setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$},tk:{$in:$accs$$}};$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$condition$$.ma_kho&&($query$$.ma_kho=$condition$$.ma_kho);Vsocai.find($query$$,function($error$$,$pss$$){if($error$$)return $callback1$$($error$$);
6
+ $callback1$$(null,$pss$$)})})}],function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})}},function($error$jscomp$0$$,$results$$){if($error$jscomp$0$$)return $fn$$($error$jscomp$0$$);let $data$$=$results$$.dn;$results$$.ps.forEach(function($r$$){$data$$.push($r$$)});$error$jscomp$0$$=$condition$$.groupBy||["tk"];if(!underscore.isArray($error$jscomp$0$$))if(0<=$error$jscomp$0$$.indexOf("["))try{$error$jscomp$0$$=JSON.parse($error$jscomp$0$$)}catch($e$$){console.error("err parse json groupby",
7
+ $error$jscomp$0$$),$error$jscomp$0$$=[$error$jscomp$0$$]}else $error$jscomp$0$$=0<=$error$jscomp$0$$.indexOf(",")?$error$jscomp$0$$.split(","):[$error$jscomp$0$$];$data$$.groupBy($error$jscomp$0$$,"du_no00 du_co00 du_no_nt00 du_co_nt00 ps_no ps_co ps_no_nt ps_co_nt".split(" "),($error$$,$rs$$)=>{if($error$$)return $fn$$($error$$);setImmediate(()=>{$rs$$.forEach($r$$=>{$r$$.du_no00=$r$$.du_no00+$r$$.ps_no-$r$$.du_co00-$r$$.ps_co;$r$$.du_no_nt00=$r$$.du_no_nt00+$r$$.ps_no_nt-$r$$.du_co_nt00-$r$$.ps_co_nt;
8
+ $r$$.du_co00=0-$r$$.du_no00;$r$$.du_co_nt00=0-$r$$.du_no_nt00;0>$r$$.du_no00&&($r$$.du_no00=0);0>$r$$.du_no_nt00&&($r$$.du_no_nt00=0);0>$r$$.du_co00&&($r$$.du_co00=0);0>$r$$.du_co_nt00&&($r$$.du_co_nt00=0);$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ps_no=0;$r$$.ps_co=0});$fn$$(null,$rs$$)})})})}else $fn$$(Error("ngay and id_app parameter required"))};
@@ -1,7 +1,9 @@
1
- 'use strict';const cdvt=global.getModel("cdvt"),sokho=global.getModel("sokho"),async=require("async"),underscore=require("underscore"),utils=require("./utils"),moment=require("moment");
2
- module.exports=function($condition$$,$fn$$){!$condition$$.ngay&&$condition$$.tu_ngay&&($condition$$.ngay=$condition$$.tu_ngay);if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $ma_dvcs$$=$condition$$.ma_dvcs,$ma_kho$$=$condition$$.ma_kho,$ma_vt$$=$condition$$.ma_vt;underscore.isArray($ma_vt$$)&&($ma_vt$$={$in:$ma_vt$$});var $ngay$$=moment(new Date($condition$$.ngay)).startOf("date").toDate(),$nam$$=$ngay$$.getFullYear(),$ngay_dn$$=moment($ngay$$).startOf("year").toDate(),$id_app$$=$condition$$.id_app;
3
- async.series({dn:$callback$$=>{setImmediate(()=>{const $c_dk$$={id_app:$id_app$$,nam:$nam$$};$ma_vt$$&&($c_dk$$.ma_vt=$ma_vt$$);$ma_kho$$&&($c_dk$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$condition$$.ma_lo&&($c_dk$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($c_dk$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($c_dk$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($c_dk$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($c_dk$$.ma_tt3=$condition$$.ma_tt3);cdvt.find($c_dk$$).lean().exec(($error$$,
4
- $results$$)=>{$error$$?$callback$$($error$$):$results$$.joinModel2($id_app$$,"dmvt",{where:"ma_vt",fields:"tk_vt"},()=>{$callback$$(null,$results$$)})})})},ps:$callback$$=>{setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$}};$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);$ma_kho$$&&($query$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$condition$$.ma_lo&&($query$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($query$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&
5
- ($query$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($query$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($query$$.ma_tt3=$condition$$.ma_tt3);sokho.find($query$$).lean().exec(($error$$,$pss$$)=>{if($error$$)return $callback$$($error$$);$pss$$=$pss$$.map($ps$$=>{$ps$$.sl_nhap=utils.round($ps$$.sl_nhap_qd,4);$ps$$.sl_xuat=utils.round($ps$$.sl_xuat_qd,4);return $ps$$});$callback$$(null,$pss$$)})})}},async($data_error$$,$groupBy_results$$)=>{if($data_error$$)return $fn$$($data_error$$);
6
- $data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);await $data_error$$.asyncJoinModel2($id_app$$,"dmvt",{where:"ma_vt",fields:["ma_nvt","ma_nvt2","ma_nvt3","ma_nvt4"]});($groupBy_results$$=$condition$$.groupBy||$condition$$.groupby)||($groupBy_results$$=["ma_vt"]);if(underscore.isString($groupBy_results$$))if(0<=$groupBy_results$$.indexOf("["))try{$groupBy_results$$=JSON.parse($groupBy_results$$)}catch($e$$){console.error($e$$)}else $groupBy_results$$=$groupBy_results$$.split(",");
7
- $data_error$$.groupBy($groupBy_results$$,"sl_nhap sl_xuat ton00 du00 tien_nhap tien_xuat".split(" "),($e$$,$groups$$)=>{if($e$$)return $fn$$($e$$);setImmediate(()=>{for(let $r$$ of $groups$$)$r$$.ton00=utils.round($r$$.ton00+$r$$.sl_nhap-$r$$.sl_xuat,4),$r$$.du00=utils.round($r$$.du00,0)+utils.round($r$$.tien_nhap,0)-utils.round($r$$.tien_xuat,0),$r$$.sl_nhap=0,$r$$.sl_xuat=0,$r$$.tien_nhap=0,$r$$.tien_xuat=0;$fn$$(null,$groups$$)})})})}else $fn$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay,id_app")};
1
+ 'use strict';const sokho=global.getModel("sokho"),async=require("async"),underscore=require("underscore"),utils=require("./utils"),moment=require("moment");
2
+ module.exports=async function($condition$$,$fn$$){!$condition$$.ngay&&$condition$$.tu_ngay&&($condition$$.ngay=$condition$$.tu_ngay);if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $ma_dvcs$$=$condition$$.ma_dvcs,$ma_kho$$=$condition$$.ma_kho,$ma_vt$$=$condition$$.ma_vt;underscore.isArray($ma_vt$$)&&($ma_vt$$={$in:$ma_vt$$});var $id_app$$=$condition$$.id_app,$app_ngay_chua_ks$$=await global.getModel("app").findOne({_id:$condition$$.id_app},{ngay_ks:1}).lean();if(!$app_ngay_chua_ks$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");
3
+ var $ngay_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).endOf("date").toDate();$app_ngay_chua_ks$$=moment($app_ngay_chua_ks$$.ngay_ks).startOf("date").add(1,"days").toDate();var $ngay$$=moment($condition$$.ngay).startOf("date").toDate(),$ngay_tinh_dn$$=moment($condition$$.ngay).startOf("date").toDate(),$ngay_dn$$=moment($ngay_tinh_dn$$).startOf("year").toDate();if($ngay_tinh_dn$$<$app_ngay_chua_ks$$||$ngay_dn$$>$app_ngay_chua_ks$$){var $cdvt$$=global.getModel("cdvt");var $nam$$=$ngay_tinh_dn$$.getFullYear()}else $cdvt$$=
4
+ global.getModel("cdvttheongay"),$ngay_dn$$=$app_ngay_chua_ks$$;async.series({dn:$callback$$=>{setImmediate(()=>{const $c_dk$$={id_app:$id_app$$};$nam$$?$c_dk$$.nam=$nam$$:(console.log("lay cdvt theo ngay khoa so",$ngay_ks$$),$c_dk$$.den_ngay=$ngay_ks$$);$ma_vt$$&&($c_dk$$.ma_vt=$ma_vt$$);$ma_kho$$&&($c_dk$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($c_dk$$.ma_dvcs=$ma_dvcs$$);$condition$$.ma_lo&&($c_dk$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($c_dk$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&
5
+ ($c_dk$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($c_dk$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($c_dk$$.ma_tt3=$condition$$.ma_tt3);$cdvt$$.find($c_dk$$).lean().exec(($error$$,$results$$)=>{$error$$?$callback$$($error$$):$results$$.joinModel2($id_app$$,"dmvt",{where:"ma_vt",fields:"tk_vt"},()=>{$callback$$(null,$results$$)})})})},ps:$callback$$=>{setImmediate(()=>{const $query$$={id_app:$id_app$$,ngay_ct:{$gte:$ngay_dn$$,$lt:$ngay$$}};$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);$ma_kho$$&&
6
+ ($query$$.ma_kho=$ma_kho$$);$ma_dvcs$$&&($query$$.ma_dvcs=$ma_dvcs$$);$condition$$.ma_lo&&($query$$.ma_lo=$condition$$.ma_lo);$condition$$.han_sd&&($query$$.han_sd=$condition$$.han_sd);$condition$$.ma_tt1&&($query$$.ma_tt1=$condition$$.ma_tt1);$condition$$.ma_tt2&&($query$$.ma_tt2=$condition$$.ma_tt2);$condition$$.ma_tt3&&($query$$.ma_tt3=$condition$$.ma_tt3);sokho.find($query$$).lean().exec(($error$$,$pss$$)=>{if($error$$)return $callback$$($error$$);$pss$$=$pss$$.map($ps$$=>{$ps$$.sl_nhap=utils.round($ps$$.sl_nhap_qd,
7
+ 4);$ps$$.sl_xuat=utils.round($ps$$.sl_xuat_qd,4);return $ps$$});$callback$$(null,$pss$$)})})}},async($data_error$$,$groupBy_results$$)=>{if($data_error$$)return $fn$$($data_error$$);$data_error$$=$groupBy_results$$.dn.concat($groupBy_results$$.ps);await $data_error$$.asyncJoinModel2($id_app$$,"dmvt",{where:"ma_vt",fields:["ma_nvt","ma_nvt2","ma_nvt3","ma_nvt4"]});($groupBy_results$$=$condition$$.groupBy||$condition$$.groupby)||($groupBy_results$$=["ma_vt"]);if(underscore.isString($groupBy_results$$))if(0<=
8
+ $groupBy_results$$.indexOf("["))try{$groupBy_results$$=JSON.parse($groupBy_results$$)}catch($e$$){console.error($e$$)}else $groupBy_results$$=$groupBy_results$$.split(",");$data_error$$.groupBy($groupBy_results$$,"sl_nhap sl_xuat ton00 du00 tien_nhap tien_xuat".split(" "),($e$$,$groups$$)=>{if($e$$)return $fn$$($e$$);setImmediate(()=>{for(let $r$$ of $groups$$)$r$$.ton00=utils.round($r$$.ton00+$r$$.sl_nhap-$r$$.sl_xuat,4),$r$$.du00=utils.round($r$$.du00,0)+utils.round($r$$.tien_nhap,0)-utils.round($r$$.tien_xuat,
9
+ 0),$r$$.sl_nhap=0,$r$$.sl_xuat=0,$r$$.tien_nhap=0,$r$$.tien_xuat=0;$fn$$(null,$groups$$)})})})}else $fn$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: ngay,id_app")};
@@ -1,2 +1,3 @@
1
1
  'use strict';const mailAccount=global.getModel("mailaccount"),path=require("path");exports.getAccount=function($account_id$$,$done$$){mailAccount.findOne({_id:$account_id$$}).lean().exec(function($e$$,$account$$){if($e$$)return $done$$($e$$);if(!$account$$)return $done$$("Don't find account "+$account_id$$);$done$$(null,$account$$)})};
2
- exports.sendHtml=function($options$$,$callback$$=()=>{},$sender$$){let $onImportProcess$$=path.dirname(__dirname)+"/workers/sendEmail.js";if(!global.sendEmailPool){const $StaticPool$$=require("./WorkerStaticPool");global.sendEmailPool=new $StaticPool$$($onImportProcess$$)}global.sendEmailPool.exec({options:$options$$,configs:{sender:$sender$$||global.configs.sender,paths:global.configs.paths}},$response$$=>{$response$$.error?$callback$$($response$$.error):$callback$$(null,$response$$.data,$response$$.columns)})};
2
+ exports.sendHtml=function($options$$,$callback$$=()=>{},$sender$$){let $onImportProcess$$=path.dirname(__dirname)+"/workers/sendEmail.js";if(!global.sendEmailPool){const $StaticPool$$=require("./WorkerStaticPool");global.sendEmailPool=new $StaticPool$$($onImportProcess$$)}global.sendEmailPool.exec({options:$options$$,configs:{sender:$sender$$||global.configs.sender,company:global.configs.company,google_credentials:global.configs.google_credentials?JSON.stringify(global.configs.google_credentials):
3
+ "",paths:global.configs.paths}},$response$$=>{$response$$.error?$callback$$($response$$.error):$callback$$(null,$response$$.data,$response$$.columns)})};
@@ -1,22 +1,24 @@
1
1
  'use strict';const SocaiModel=global.getModel("socai"),dmtk=global.getModel("account"),async=require("async"),cktk=require("./cktk"),ckcn=require("./ckcn"),moment=require("moment"),numeral=require("numeral"),asyncCkcn=async $condition$$=>new Promise(($resolve$$,$reject$$)=>{ckcn($condition$$,($du_e$$,$rs$$)=>{if($du_e$$)return $reject$$($du_e$$);$du_e$$=$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$resolve$$($du_e$$)})}),asyncCheckHMCN=async($hmcnct_id_app$$,$obj$$,
2
- $tk$$,$ma_kh$$,$tien$$)=>{var $acc_hm$$=await dmtk.findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,loai_tk:1}).lean();if(!$acc_hm$$)throw"Kh\u00f4ng t\u1ed3n t\u1ea1i t\u00e0i kho\u1ea3n "+$tk$$;if($acc_hm$$.tk_cn&&(($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,status:!0}).lean())||($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,status:!0,ma_kh:{$in:[null,""]}}).lean()),$acc_hm$$)){let $du_ck$$=await asyncCkcn({id_app:$hmcnct_id_app$$,
3
- tk:$tk$$,ma_kh:$ma_kh$$,bu_tru:!0,ngay:moment($obj$$.ngay_ct).endOf("year").toDate()});if(0>$tien$$)if(0==$acc_hm$$.hm_co){if(0-$du_ck$$>$acc_hm$$.hm_co)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_co).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;}else{if(0-$du_ck$$+$tien$$>$acc_hm$$.hm_co)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_co).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;
4
- }else if(0==$acc_hm$$.hm_no){if($du_ck$$>$acc_hm$$.hm_no)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_no).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;}else if($du_ck$$+$tien$$>$acc_hm$$.hm_no)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_no).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;
5
- $hmcnct_id_app$$=await global.getModel("hmcnct").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,id_ct:$obj$$._id.toString()}).lean();$hmcnct_id_app$$||($hmcnct_id_app$$={...$acc_hm$$},$hmcnct_id_app$$.id_ct=$obj$$._id.toString(),delete $hmcnct_id_app$$._id,await global.getModel("hmcnct").create($hmcnct_id_app$$))}},checkAcc=function($id_app$$,$data$$,$tk$$,$ma_kh$$,$callback$$){dmtk.findOne({id_app:$id_app$$,tk:$tk$$,loai_tk:1}).lean().exec(async($e$$,$acc$$)=>{if($e$$||!$acc$$)return $callback$$($e$$||
6
- `T\u00e0i kho\u1ea3n ${$tk$$} kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c kh\u00f4ng ph\u1ea3i l\u00e0 t\u00e0i kho\u1ea3n chi ti\u1ebft.`);if($acc$$.tk_cn&&!$ma_kh$$)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kh\u00e1ch h\u00e0ng`);if($acc$$.tk_cp_yn&&!$data$$.ma_phi)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp doanh thu/chi ph\u00ed`);if($acc$$.tk_kho_yn&&!$data$$.ma_kho)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kho/c\u1eeda h\u00e0ng`);
7
- if($acc$$.tk_bp_yn&&!$data$$.ma_bp)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp b\u1ed9 ph\u1eadn`);if($acc$$.tk_dt_yn&&!$data$$.ma_dt)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp v\u1ee5 vi\u1ec7c, d\u1ef1 \u00e1n`);if($acc$$.tk_hd_yn&&!$data$$.ma_hd)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp h\u1ee3p \u0111\u1ed3ng`);if($acc$$.tk_nv_yn&&!$data$$.ma_nv)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp nh\u00e2n vi\u00ean`);
8
- if($acc$$.tk_td1_yn&&!$data$$.ma_td1)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td1`);if($acc$$.tk_td2_yn&&!$data$$.ma_td2)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td2`);if($acc$$.tk_td3_yn&&!$data$$.ma_td3)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td3`);$callback$$(null,$acc$$)})},checkData=function($id_app$$,$ngay_ct$$,$_data$$,$callback$jscomp$0$$){async.series({tk_no:$callback$$=>
9
- {checkAcc($id_app$$,$_data$$,$_data$$.tk_no,$_data$$.ma_kh_no,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_no_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_no,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_no$jscomp$2_e$$,$rs$$)=>{if($du_no$jscomp$2_e$$)return $callback$$($du_no$jscomp$2_e$$);$du_no$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;0<$du_no$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_no} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean n\u1ee3 : ${$du_no$jscomp$2_e$$}`):
10
- $callback$$()}):$callback$$()})},tk_co:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_co,$_data$$.ma_kh_co,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_co_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_co,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_co$jscomp$2_e$$,$rs$$)=>{if($du_co$jscomp$2_e$$)return $callback$$($du_co$jscomp$2_e$$);$du_co$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_co00-$r$$.du_no00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;
11
- 0<$du_co$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_co} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean c\u00f3: ${$du_co$jscomp$2_e$$}`):$callback$$()}):$callback$$()})}},$e$$=>{$callback$jscomp$0$$($e$$,$_data$$)})},post=function($master$$,$details$$,$prepare$$,$model$$=SocaiModel){$details$$&&(this.master={...$master$$},this.details=$details$$.map($detail$$=>({...$detail$$})),this.model=$model$$,this.prepare=$prepare$$)};
2
+ $tk$$,$ma_kh$$,$ps_no_tien_tien$$,$ps_co$$)=>{var $acc_hm$$=await dmtk.findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,loai_tk:1}).lean();if(!$acc_hm$$)throw"Kh\u00f4ng t\u1ed3n t\u1ea1i t\u00e0i kho\u1ea3n "+$tk$$;if($acc_hm$$.tk_cn&&(($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,status:!0}).lean())||($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,status:!0,ma_kh:{$in:[null,""]}}).lean()),$acc_hm$$)){let $du_ck$$=await asyncCkcn({id_app:$hmcnct_id_app$$,
3
+ tk:$tk$$,ma_kh:$ma_kh$$,bu_tru:!0,ngay:moment($obj$$.ngay_ct).endOf("year").toDate()});if("2"==$acc_hm$$.loai){$du_ck$$=0-$du_ck$$;$ps_no_tien_tien$$=$ps_co$$-$ps_no_tien_tien$$;if(0>$ps_no_tien_tien$$)return;if(0==$acc_hm$$.hm){if($du_ck$$>$acc_hm$$.hm)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${0>$ps_no_tien_tien$$?
4
+ "-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else if($du_ck$$+$ps_no_tien_tien$$>$acc_hm$$.hm)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${0>$ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else{$ps_no_tien_tien$$-=$ps_co$$;if(0>$ps_no_tien_tien$$)return;if(0==$acc_hm$$.hm){if($du_ck$$>
5
+ $acc_hm$$.hm)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${0>$ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else if($du_ck$$+$ps_no_tien_tien$$>$acc_hm$$.hm)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${0>
6
+ $ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}$hmcnct_id_app$$=await global.getModel("hmcnct").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,id_ct:$obj$$._id.toString()}).lean();$hmcnct_id_app$$||($hmcnct_id_app$$={...$acc_hm$$},$hmcnct_id_app$$.id_ct=$obj$$._id.toString(),delete $hmcnct_id_app$$._id,await global.getModel("hmcnct").create($hmcnct_id_app$$))}},checkAcc=function($id_app$$,$data$$,$tk$$,$ma_kh$$,$callback$$){dmtk.findOne({id_app:$id_app$$,
7
+ tk:$tk$$,loai_tk:1}).lean().exec(async($e$$,$acc$$)=>{if($e$$||!$acc$$)return $callback$$($e$$||`T\u00e0i kho\u1ea3n ${$tk$$} kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c kh\u00f4ng ph\u1ea3i l\u00e0 t\u00e0i kho\u1ea3n chi ti\u1ebft.`);if($acc$$.tk_cn&&!$ma_kh$$)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kh\u00e1ch h\u00e0ng`);if($acc$$.tk_cp_yn&&!$data$$.ma_phi)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp doanh thu/chi ph\u00ed`);if($acc$$.tk_kho_yn&&
8
+ !$data$$.ma_kho)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kho/c\u1eeda h\u00e0ng`);if($acc$$.tk_bp_yn&&!$data$$.ma_bp)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp b\u1ed9 ph\u1eadn`);if($acc$$.tk_dt_yn&&!$data$$.ma_dt)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp v\u1ee5 vi\u1ec7c, d\u1ef1 \u00e1n`);if($acc$$.tk_hd_yn&&!$data$$.ma_hd)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp h\u1ee3p \u0111\u1ed3ng`);
9
+ if($acc$$.tk_nv_yn&&!$data$$.ma_nv)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp nh\u00e2n vi\u00ean`);if($acc$$.tk_td1_yn&&!$data$$.ma_td1)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td1`);if($acc$$.tk_td2_yn&&!$data$$.ma_td2)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td2`);if($acc$$.tk_td3_yn&&!$data$$.ma_td3)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td3`);
10
+ $callback$$(null,$acc$$)})},checkData=function($id_app$$,$ngay_ct$$,$_data$$,$callback$jscomp$0$$){async.series({tk_no:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_no,$_data$$.ma_kh_no,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_no_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_no,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_no$jscomp$2_e$$,$rs$$)=>{if($du_no$jscomp$2_e$$)return $callback$$($du_no$jscomp$2_e$$);$du_no$jscomp$2_e$$=
11
+ $rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;0<$du_no$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_no} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean n\u1ee3 : ${$du_no$jscomp$2_e$$}`):$callback$$()}):$callback$$()})},tk_co:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_co,$_data$$.ma_kh_co,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_co_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,
12
+ tk:$_data$$.tk_co,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_co$jscomp$2_e$$,$rs$$)=>{if($du_co$jscomp$2_e$$)return $callback$$($du_co$jscomp$2_e$$);$du_co$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_co00-$r$$.du_no00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;0<$du_co$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_co} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean c\u00f3: ${$du_co$jscomp$2_e$$}`):$callback$$()}):$callback$$()})}},$e$$=>{$callback$jscomp$0$$($e$$,
13
+ $_data$$)})},post=function($master$$,$details$$,$prepare$$,$model$$=SocaiModel){$details$$&&(this.master={...$master$$},this.details=$details$$.map($detail$$=>({...$detail$$})),this.model=$model$$,this.prepare=$prepare$$)};
12
14
  post.prototype.runPrepare=async($prepare$$,$details$jscomp$0$$)=>{$details$jscomp$0$$=$details$jscomp$0$$.map($d$$=>{$d$$.toObject&&($d$$=$d$$.toObject());return{...$d$$}});return new Promise($resolve$$=>{$prepare$$?async.mapSeries($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.toObject=function(){return Object.assign({},$detail$jscomp$0$$)};$prepare$$($detail$jscomp$0$$,$detail$$=>{$detail$$.toObject=function(){return Object.assign({},$detail$$)};$callback$$(null,
13
15
  $detail$$)})})},($e$$,$details$$)=>{$resolve$$($details$$)}):$resolve$$($details$jscomp$0$$)})};
14
16
  post.prototype.run=async function($callback$jscomp$0$$=()=>{}){if(!this.details)return $callback$jscomp$0$$(null,null);const $Socai$$=this.model||SocaiModel;let $master$$=this.master,$details$jscomp$0$$=await this.runPrepare(this.prepare,this.details);$details$jscomp$0$$.forEach($d$$=>{$d$$.tk_no=$d$$.tk_no||$master$$.tk_no;$d$$.tk_co=$d$$.tk_co||$master$$.tk_co;$d$$.ma_ct=$master$$.ma_ct;$d$$.so_ct=$master$$.so_ct;$d$$.ngay_ct=$master$$.ngay_ct});$details$jscomp$0$$=$details$jscomp$0$$.filter($d$$=>
15
- $d$$.tk_no&&$d$$.tk_co);if(!$master$$.ngay_ct)return $callback$jscomp$0$$("ngay_ct is not null");let $check_hmcn$$=$details$jscomp$0$$.map($d$$=>[{tk:$d$$.tk_no,tien:$d$$.tien,ma_kh:$d$$.ma_kh_no||$d$$.ma_kh||$master$$.ma_kh},{tk:$d$$.tk_co,tien:0-$d$$.tien,ma_kh:$d$$.ma_kh_co||$d$$.ma_kh||$master$$.ma_kh}]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($a$$=>$a$$.ma_kh&&$a$$.tien);$check_hmcn$$=await $check_hmcn$$.asyncGroupBy(["tk","ma_kh"],["tien"]);if(0<$check_hmcn$$.length)try{await Promise.all($check_hmcn$$.map($d$$=>
16
- asyncCheckHMCN($master$$.id_app,$master$$,$d$$.tk,$d$$.ma_kh,$d$$.tien)))}catch($e$$){return $callback$jscomp$0$$($e$$.message||$e$$.error||$e$$)}async.mapSeries($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.ma_kh_no||($detail$jscomp$0$$.ma_kh_no=$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);$detail$jscomp$0$$.ma_kh_co||($detail$jscomp$0$$.ma_kh_co=$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);checkData($master$$.id_app,$master$$.ngay_ct,$detail$jscomp$0$$,
17
- ($e$$,$detail$$)=>{$callback$$($e$$,$detail$$)})})},($but_toan_loi_e$$,$details$$)=>{if($but_toan_loi_e$$)return $callback$jscomp$0$$($but_toan_loi_e$$);$but_toan_loi_e$$=$details$$.filter($detail$$=>isNaN($detail$$.tien_nt)||isNaN($detail$$.tien));0<$but_toan_loi_e$$.length&&console.error("Cac but toan khong hop ly",$but_toan_loi_e$$,"cua chung tu",$master$$._id);let $dks$$=$details$$.filter($detail$$=>!(0===$detail$$.tien_nt&&0===$detail$$.tien)&&!isNaN($detail$$.tien_nt)&&!isNaN($detail$$.tien)).map(($detail$$,
18
- $nh_dk$$)=>{for(let $attr$$ in $Socai$$.schema.paths)"id_ct"!=$attr$$&&"_id"!=$attr$$&&"__v"!=$attr$$&&"date_updated"!=$attr$$&&"date_created"!=$attr$$&&(void 0!==$detail$$[$attr$$]&&null!==$detail$$[$attr$$]&&""!==$detail$$[$attr$$]||0===$detail$$[$attr$$]||void 0===$master$$[$attr$$]||($detail$$[$attr$$]=$master$$[$attr$$]));$detail$$.nh_dk=$nh_dk$$;$detail$$.id_ct=$master$$._id.toString();delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;return $detail$$});$Socai$$.deleteMany({id_ct:$master$$._id.toString()},
19
- $error$$=>{if($error$$)return $callback$jscomp$0$$("Don't remove socai \n"+$error$$);if(0==$dks$$.length)return $callback$jscomp$0$$(null,[]);$Socai$$.create($dks$$,async($e$$,$msg_error_rs$$)=>{if($e$$)if($msg_error_rs$$=$e$$.message||$e$$.error||$e$$.toString(),0<=$msg_error_rs$$.indexOf("E11000 duplicate")&&0<=$msg_error_rs$$.indexOf("id_ct_1_nh_dk_1"))if($msg_error_rs$$=await $Socai$$.find({id_ct:$master$$._id.toString()}),0<$msg_error_rs$$.length)$callback$jscomp$0$$(null,$msg_error_rs$$);else{console.error("Error save socai",
20
- $e$$,$master$$);let $q_remove$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};$Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("delete socai because error when posting",$master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)})}else{console.error("Error save socai",$e$$,$master$$);let $q_remove$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};$Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("delete socai because error when posting",
21
- $master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)})}else if($master$$.ma_ct){let $contr$$=global.controllers[$master$$.ma_ct.toUpperCase()];$contr$$?await $contr$$.model.findById($master$$._id)?$callback$jscomp$0$$(null,$msg_error_rs$$):$Socai$$.deleteMany({id_ct:$master$$._id.toString()},($_e$$,$rs$$)=>{console.error("Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i. X\u00f3a socai",$master$$._id,$rs$$);$callback$jscomp$0$$($e$$)}):(console.log("not found controller",
22
- $master$$.ma_ct.toUpperCase()),$callback$jscomp$0$$(null,$msg_error_rs$$))}else $callback$jscomp$0$$(null,$msg_error_rs$$)})})})};module.exports=post;
17
+ $d$$.tk_no&&$d$$.tk_co);if(!$master$$.ngay_ct)return $callback$jscomp$0$$("ngay_ct is not null");let $check_hmcn$$=$details$jscomp$0$$.map($d$$=>[{tk:$d$$.tk_no,ps_no:$d$$.tien,ps_co:0,ma_kh:$d$$.ma_kh_no||$d$$.ma_kh||$master$$.ma_kh},{tk:$d$$.tk_co,ps_no:0,ps_co:$d$$.tien,ma_kh:$d$$.ma_kh_co||$d$$.ma_kh||$master$$.ma_kh}]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($a$$=>$a$$.ma_kh&&($a$$.ps_no||$a$$.ps_co));$check_hmcn$$=await $check_hmcn$$.asyncGroupBy(["tk","ma_kh"],["ps_no","ps_co"]);if(0<
18
+ $check_hmcn$$.length)try{await Promise.all($check_hmcn$$.map($d$$=>asyncCheckHMCN($master$$.id_app,$master$$,$d$$.tk,$d$$.ma_kh,$d$$.ps_no,$d$$.ps_co)))}catch($e$$){return $callback$jscomp$0$$($e$$.message||$e$$.error||$e$$)}async.mapSeries($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.ma_kh_no||($detail$jscomp$0$$.ma_kh_no=$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);$detail$jscomp$0$$.ma_kh_co||($detail$jscomp$0$$.ma_kh_co=$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);
19
+ checkData($master$$.id_app,$master$$.ngay_ct,$detail$jscomp$0$$,($e$$,$detail$$)=>{$callback$$($e$$,$detail$$)})})},($but_toan_loi_e$$,$details$$)=>{if($but_toan_loi_e$$)return $callback$jscomp$0$$($but_toan_loi_e$$);$but_toan_loi_e$$=$details$$.filter($detail$$=>isNaN($detail$$.tien_nt)||isNaN($detail$$.tien));0<$but_toan_loi_e$$.length&&console.error("Cac but toan khong hop ly",$but_toan_loi_e$$,"cua chung tu",$master$$._id);let $dks$$=$details$$.filter($detail$$=>!(0===$detail$$.tien_nt&&0===$detail$$.tien)&&
20
+ !isNaN($detail$$.tien_nt)&&!isNaN($detail$$.tien)).map(($detail$$,$nh_dk$$)=>{for(let $attr$$ in $Socai$$.schema.paths)"id_ct"!=$attr$$&&"_id"!=$attr$$&&"__v"!=$attr$$&&"date_updated"!=$attr$$&&"date_created"!=$attr$$&&(void 0!==$detail$$[$attr$$]&&null!==$detail$$[$attr$$]&&""!==$detail$$[$attr$$]||0===$detail$$[$attr$$]||void 0===$master$$[$attr$$]||($detail$$[$attr$$]=$master$$[$attr$$]));$detail$$.nh_dk=$nh_dk$$;$detail$$.id_ct=$master$$._id.toString();delete $detail$$.toObject;delete $detail$$._id;
21
+ delete $detail$$.__v;return $detail$$});$Socai$$.deleteMany({id_ct:$master$$._id.toString()},$error$$=>{if($error$$)return $callback$jscomp$0$$("Don't remove socai \n"+$error$$);if(0==$dks$$.length)return $callback$jscomp$0$$(null,[]);$Socai$$.create($dks$$,async($e$$,$msg_error_rs$$)=>{if($e$$)if($msg_error_rs$$=$e$$.message||$e$$.error||$e$$.toString(),0<=$msg_error_rs$$.indexOf("E11000 duplicate")&&0<=$msg_error_rs$$.indexOf("id_ct_1_nh_dk_1"))if($msg_error_rs$$=await $Socai$$.find({id_ct:$master$$._id.toString()}),
22
+ 0<$msg_error_rs$$.length)$callback$jscomp$0$$(null,$msg_error_rs$$);else{console.error("Error save socai",$e$$,$master$$);let $q_remove$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};$Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("delete socai because error when posting",$master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)})}else{console.error("Error save socai",$e$$,$master$$);let $q_remove$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};
23
+ $Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("delete socai because error when posting",$master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)})}else if($master$$.ma_ct){let $contr$$=global.controllers[$master$$.ma_ct.toUpperCase()];$contr$$?await $contr$$.model.findById($master$$._id)?$callback$jscomp$0$$(null,$msg_error_rs$$):$Socai$$.deleteMany({id_ct:$master$$._id.toString()},($_e$$,$rs$$)=>{console.error("Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i. X\u00f3a socai",
24
+ $master$$._id,$rs$$);$callback$jscomp$0$$($e$$)}):(console.log("not found controller",$master$$.ma_ct.toUpperCase()),$callback$jscomp$0$$(null,$msg_error_rs$$))}else $callback$jscomp$0$$(null,$msg_error_rs$$)})})})};module.exports=post;
@@ -2,10 +2,10 @@
2
2
  maxlength:1024},city:{type:String,maxlength:1024},province:{type:String,maxlength:1024},country:{type:String,maxlength:1024},phone:{type:String,maxlength:1024},fax:{type:String,maxlength:1024},email:{type:String,maxlength:1024},website:{type:String,maxlength:1024},sale_online:{type:Boolean,default:!1},facebook:{type:String,maxlength:2024},zalo:{type:String,maxlength:2024},messager:{type:String,maxlength:2024},bao_hanh:{type:String},van_chuyen:{type:String},dieu_khoan_su_dung:{type:String},dieu_khoan_su_dung_en:{type:String},
3
3
  dieu_khoan_kygui:{type:String},dieu_khoan_kygui_en:{type:String},dieu_khoan_congtacvien:{type:String},dieu_khoan_congtacvien_en:{type:String},chinh_sach_dau_tu:{type:String},chinh_sach_dau_tu_en:{type:String},gioi_thieu:{type:String},nganh_nghe:{type:String},keywords:{type:String},site_name:{type:String},ngay_dn:{type:Date,required:!0},ngay_ks:{type:Date,required:!0},nam_bd:{type:Number,required:!0},ngay_ky1:{type:Date,required:!0},ma_so_thue:{type:String,maxlength:1024},dia_chi_xuat_hoa_don:String,
4
4
  nguoi_nop_thue:{type:String,maxlength:1024},giam_doc:{type:String,maxlength:1024},ke_toan_truong:{type:String,maxlength:1024},wallet_address:{type:String,maxlength:2024},wallet_token:{type:String,maxlength:2024},exchange_fee:Number,wallet_network:{type:String,maxlength:2024},tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_denom:String,ten_chu_tai_khoan:String,tai_khoan_ngan_hang:String,ten_ngan_hang:String,chi_nhanh_ngan_hang:String,so_bin:String,so_ngay_lam_mot_thang:{type:Number,
5
- default:24},logo:{type:String,maxlength:1024},logo_watermark:{type:String,maxlength:1024},account_types_accept:[],options:{},allow_modules:[String],partner:String,server:String,owner:String,default_password:String,email_host:String,email_port:Number,email_secure:{type:Boolean,default:!0},email_authMethod:{type:String,default:"LOGIN"},email_user:String,email_pass:String,email_name:String,viettel_version:{type:String,maxlength:1024},viettel_user:{type:String,maxlength:1024},viettel_password:{type:String,
6
- maxlength:1024},viettel_token:{type:String},viettel_url_service:{type:String,maxlength:1024},viettel_direct_issue:Boolean,vnpt_user:{type:String,maxlength:1024},vnpt_password:{type:String,maxlength:1024},vnpt_url_service:{type:String,maxlength:1024},ma_hoa_don:String,ky_hieu_hoa_don:String,so_serial:String,sip_uri:String,sip_password:String,sip_websocket:String,voiip_access_token:String,voiip_webhook:String,zalo_app_id:String,zalo_secret_key:String,zalo_code:String,zalo_oa_id:String,zalo_code_verifier:String,
7
- zalo_code_challenge:String,zalo_access_token:String,zalo_refresh_token:String,zalo_expires_in:Number,zalo_updated:Date,zalo_otp_template_id:String,exfields:global.Schema.Types.Mixed,domain:String,ssl_key:String,ssl_cert:String,ssl_ca:String,expire_date:Date,trang_thai:{type:String,default:"0"},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:""}});
8
- appScheam.index({app_code:1},{unique:!0});appScheam.index({name:1,province:1});appScheam.index({menu_code:1});appScheam.index({trang_thai:1});appScheam.index({sale_online:1});appScheam.index({date_created:1});appScheam.index({date_updated:1});appScheam.index({user_created:"text"},{name:"app_index_created"});appScheam.index({name:"text",province:"text",name_en:"text",address:"text",phone:"text",email:"text",ma_so_thue:"text"},{name:"app_index"});
5
+ default:24},logo:{type:String,maxlength:1024},logo_watermark:{type:String,maxlength:1024},account_types_accept:[],options:{},allow_modules:[String],partner:String,server:String,owner:String,default_password:String,google_credentials:String,email_host:String,email_port:Number,email_secure:{type:Boolean,default:!0},email_authMethod:{type:String,default:"LOGIN"},email_user:String,email_pass:String,email_name:String,viettel_version:{type:String,maxlength:1024},viettel_user:{type:String,maxlength:1024},
6
+ viettel_password:{type:String,maxlength:1024},viettel_token:{type:String},viettel_url_service:{type:String,maxlength:1024},viettel_direct_issue:Boolean,vnpt_user:{type:String,maxlength:1024},vnpt_password:{type:String,maxlength:1024},vnpt_url_service:{type:String,maxlength:1024},ma_hoa_don:String,ky_hieu_hoa_don:String,so_serial:String,sip_uri:String,sip_password:String,sip_websocket:String,voiip_access_token:String,voiip_webhook:String,zalo_app_id:String,zalo_secret_key:String,zalo_code:String,zalo_oa_id:String,
7
+ zalo_code_verifier:String,zalo_code_challenge:String,zalo_access_token:String,zalo_refresh_token:String,zalo_expires_in:Number,zalo_updated:Date,zalo_otp_template_id:String,exfields:global.Schema.Types.Mixed,domain:String,ssl_key:String,ssl_cert:String,ssl_ca:String,expire_date:Date,trang_thai:{type:String,default:"0"},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,
8
+ default:""}});appScheam.index({app_code:1},{unique:!0});appScheam.index({name:1,province:1});appScheam.index({menu_code:1});appScheam.index({trang_thai:1});appScheam.index({sale_online:1});appScheam.index({date_created:1});appScheam.index({date_updated:1});appScheam.index({user_created:"text"},{name:"app_index_created"});appScheam.index({name:"text",province:"text",name_en:"text",address:"text",phone:"text",email:"text",ma_so_thue:"text"},{name:"app_index"});
9
9
  const App=global.mongoose.models.app||global.mongoose.model("app",appScheam);
10
10
  App.participants=async $app$$=>{_.isString($app$$)&&($app$$=await App.getInfo($app$$));let $participants$$=await Participant.find({id_app:$app$$._id});if($app$$.user_created&&!$participants$$.find($p$$=>$p$$.email===$app$$.user_created)){let $_p$$={email:$app$$.user_created,name:$app$$.user_created.split("@")[0],admin:!0,active:!0,cancel:!1,id_app:$app$$._id};$participants$$.push($_p$$);Participant.createParticipant($_p$$,$e$$=>{$e$$&&console.error("create participant for user owner",$e$$)})}return $participants$$};
11
11
  App.getInfo=async function($id_app$$,$field$$){return new Promise(($resolve$$,$reject$$)=>{App.findOne({_id:$id_app$$}).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:"App is not exists"));$resolve$$($field$$?$rs$$[$field$$]:$rs$$)})})};
@@ -1,9 +1,9 @@
1
- 'use strict';const validator=require("../libs/validator"),nhadatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ma_nd:{type:String,required:!0,uppercase:!0},ten_nd:{type:String,required:!0},ten_nd_en:{type:String},nh_nd:{type:String},phan_loai:String,ma_dt:{type:String,uppercase:!0},building_code:{type:String,uppercase:!0},dia_chi:{type:String},dia_chi_en:{type:String},xa_phuong:{type:String},quan_huyen:{type:String},tinh_thanh:{type:String},so_to:{type:String},
2
- so_thua:{type:String},location:Schema.Types.Mixed,chieu_ngang:{type:Number,default:0},chieu_dai:{type:Number,default:0},dien_tich:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_m2:{type:Number,default:0},so_phong:Number,so_wc:Number,noi_that:String,noi_that_en:String,can_ho_so:String,dien_tich_phong_thuy:Number,dien_tich_tim_tuong:Number,huong_ban_cong:String,huong_ban_cong_en:String,huong_cua_chinh:String,huong_cua_chinh_en:String,mieu_ta:String,mieu_ta_en:String,picture:String,
3
- ky_gui:Boolean,ten_chu_so_huu:String,dien_thoai_chu_so_huu:String,dia_chi_chu_so_huu:String,anh_cmnd:String,anh_giay_to:String,chap_nhan_dieu_khoan:{type:Boolean},so_ct:String,id_kh:{type:String},exfields:Schema.Types.Mixed,phu_trach:{type:String,lowercase:!0},ngay_cap_nhat:{type:Date,default:Date.now},progress:{type:Number,default:0},trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
4
- default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],shared:Boolean});nhadatSchema.validate={ma_nt:validator.existsNt};nhadatSchema.index({id_app:1});nhadatSchema.index({ma_nd:1});nhadatSchema.index({phan_loai:1});nhadatSchema.index({building_code:1});nhadatSchema.index({ma_dt:1});nhadatSchema.index({ten_nd:1});nhadatSchema.index({nh_nd:1});nhadatSchema.index({dia_chi:1});
5
- nhadatSchema.index({dia_chi_en:1});nhadatSchema.index({xa_phuong:1});nhadatSchema.index({quan_huyen:1});nhadatSchema.index({tinh_thanh:1});nhadatSchema.index({location:1});nhadatSchema.index({mieu_ta:1});nhadatSchema.index({mieu_ta_en:1});nhadatSchema.index({so_to:1});nhadatSchema.index({so_thua:1});nhadatSchema.index({so_phong:1});nhadatSchema.index({so_wc:1});nhadatSchema.index({noi_that:1});nhadatSchema.index({noi_that_en:1});nhadatSchema.index({can_ho_so:1});nhadatSchema.index({dien_tich_phong_thuy:1});
6
- nhadatSchema.index({dien_tich_tim_tuong:1});nhadatSchema.index({huong_ban_cong:1});nhadatSchema.index({huong_ban_cong_en:1});nhadatSchema.index({huong_cua_chinh:1});nhadatSchema.index({huong_cua_chinh_en:1});nhadatSchema.index({chieu_ngang:1});nhadatSchema.index({chieu_dai:1});nhadatSchema.index({gia_ban:1});nhadatSchema.index({dien_tich:1});nhadatSchema.index({gia_ban_m2:1});nhadatSchema.index({phu_trach:1});nhadatSchema.index({ma_nd:"text",ten_nd:"text",phu_trach:"text"});nhadatSchema.index({status:1});
7
- nhadatSchema.index({visible_to_usergroups:1});nhadatSchema.index({user_created:1,visible_to:1,visible_to_users:1});nhadatSchema.index({trang_thai:1});const model=mongoose.models.nhadat||mongoose.model("nhadat",nhadatSchema);
1
+ 'use strict';const validator=require("../libs/validator"),nhadatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ma_nd:{type:String,required:!0,uppercase:!0},ten_nd:{type:String,required:!0},ten_nd_en:{type:String},nh_nd:{type:String},phan_loai:String,nh_bds:{type:String,default:"",trim:!0,maxlength:1024},ten_nh_bds:String,nh_bds2:[String],nh_bds3:[String],ma_dt:{type:String,uppercase:!0},building_code:{type:String,uppercase:!0},dia_chi:{type:String},
2
+ dia_chi_en:{type:String},xa_phuong:{type:String},quan_huyen:{type:String},tinh_thanh:{type:String},so_to:{type:String},so_thua:{type:String},location:Schema.Types.Mixed,chieu_ngang:{type:Number,default:0},chieu_dai:{type:Number,default:0},dien_tich:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_m2:{type:Number,default:0},so_phong:Number,so_wc:Number,noi_that:String,noi_that_en:String,can_ho_so:String,dien_tich_phong_thuy:Number,dien_tich_tim_tuong:Number,huong_ban_cong:String,huong_ban_cong_en:String,
3
+ huong_cua_chinh:String,huong_cua_chinh_en:String,mieu_ta:String,mieu_ta_en:String,picture:String,ky_gui:Boolean,ten_chu_so_huu:String,dien_thoai_chu_so_huu:String,dia_chi_chu_so_huu:String,anh_cmnd:String,anh_giay_to:String,chap_nhan_dieu_khoan:{type:Boolean},so_ct:String,id_kh:{type:String},exfields:Schema.Types.Mixed,phu_trach:{type:String,lowercase:!0},ngay_cap_nhat:{type:Date,default:Date.now},progress:{type:Number,default:0},trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},
4
+ date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],shared:Boolean});nhadatSchema.validate={ma_nt:validator.existsNt};nhadatSchema.index({id_app:1});nhadatSchema.index({ma_nd:1});nhadatSchema.index({phan_loai:1});nhadatSchema.index({building_code:1});nhadatSchema.index({ma_dt:1});
5
+ nhadatSchema.index({ten_nd:1});nhadatSchema.index({nh_nd:1});nhadatSchema.index({nh_bds:1});nhadatSchema.index({nh_bds2:1});nhadatSchema.index({nh_bds3:1});nhadatSchema.index({dia_chi:1});nhadatSchema.index({dia_chi_en:1});nhadatSchema.index({xa_phuong:1});nhadatSchema.index({quan_huyen:1});nhadatSchema.index({tinh_thanh:1});nhadatSchema.index({location:1});nhadatSchema.index({mieu_ta:1});nhadatSchema.index({mieu_ta_en:1});nhadatSchema.index({so_to:1});nhadatSchema.index({so_thua:1});nhadatSchema.index({so_phong:1});
6
+ nhadatSchema.index({so_wc:1});nhadatSchema.index({noi_that:1});nhadatSchema.index({noi_that_en:1});nhadatSchema.index({can_ho_so:1});nhadatSchema.index({dien_tich_phong_thuy:1});nhadatSchema.index({dien_tich_tim_tuong:1});nhadatSchema.index({huong_ban_cong:1});nhadatSchema.index({huong_ban_cong_en:1});nhadatSchema.index({huong_cua_chinh:1});nhadatSchema.index({huong_cua_chinh_en:1});nhadatSchema.index({chieu_ngang:1});nhadatSchema.index({chieu_dai:1});nhadatSchema.index({gia_ban:1});nhadatSchema.index({dien_tich:1});
7
+ nhadatSchema.index({gia_ban_m2:1});nhadatSchema.index({phu_trach:1});nhadatSchema.index({ma_nd:"text",ten_nd:"text",phu_trach:"text"});nhadatSchema.index({status:1});nhadatSchema.index({visible_to_usergroups:1});nhadatSchema.index({user_created:1,visible_to:1,visible_to_users:1});nhadatSchema.index({trang_thai:1});const model=mongoose.models.nhadat||mongoose.model("nhadat",nhadatSchema);
8
8
  model.createCode=function($id_app$$,$ma_nd$$,$lanthu$$,$callback$$){$ma_nd$$=$ma_nd$$.replace(/[^\w\s]/gi,"").split(" ").join("").toUpperCase();model.findOne({ma_nd:$ma_nd$$,id_app:$id_app$$},function($e$$,$rs$$){if($e$$)return $callback$$($e$$);if($rs$$)$lanthu$$+=1,$ma_nd$$=$ma_nd$$.substring(0,$ma_nd$$.length-$lanthu$$.toString().length)+$lanthu$$.toString(),model.createCode($id_app$$,$ma_nd$$,$lanthu$$,$callback$$);else return $callback$$(null,$ma_nd$$)})};
9
9
  model.asyncCreateCode=async($id_app$$,$ma_nd$$,$lanthu$$)=>{$lanthu$$||($lanthu$$=0);32<$ma_nd$$.length&&($ma_nd$$=$ma_nd$$.substring(0,32));return new Promise($resolve$$=>{model.createCode($id_app$$,$ma_nd$$,$lanthu$$,($e$$,$rs$$)=>{$resolve$$($rs$$||"")})})};module.exports=model;
@@ -1,4 +1,4 @@
1
1
  'use strict';const validator=require("../libs/validator"),validAccount=require("../libs/validator-account"),cdkhScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},tk:{type:String,required:"tk is required",trim:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,trim:!0,maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_bp:{type:String,
2
2
  uppercase:!0,trim:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,trim:!0,maxlength:32},du_no00:{type:Number,default:0},du_co00:{type:Number,default:0},du_no_nt00:{type:Number,default:0},du_co_nt00:{type:Number,default:0},du_no1:{type:Number,default:0},du_co1:{type:Number,default:0},du_no_nt1:{type:Number,default:0},du_co_nt1:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},status:{type:Boolean,
3
- 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:""}});cdkhScheam.validate={ma_dvcs:validator.existsDvcs,tk:validAccount.isTkcn,ma_kh:validator.existsKh};cdkhScheam.index({id_app:1,nam:1,ma_dvcs:1,tk:1,ma_kh:1});cdkhScheam.index({tk:"text",ma_kh:"text",ten_kh:"text"});cdkhScheam.index({status:1});cdkhScheam.index({user_created:1});
3
+ 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:""}});cdkhScheam.validate={ma_dvcs:validator.existsDvcs,tk:validAccount.isTkcn,ma_kh:validator.existsKh};cdkhScheam.index({id_app:1,nam:1,ma_dvcs:1,tk:1,ma_kh:1});cdkhScheam.index({tk:"text",ma_kh:"text",ten_kh:"text"});cdkhScheam.index({nam:1});cdkhScheam.index({tk:1});cdkhScheam.index({ma_kh:1});cdkhScheam.index({status:1});cdkhScheam.index({user_created:1});
4
4
  module.exports=mongoose.models.cdkh||mongoose.model("cdkh",cdkhScheam);
@@ -0,0 +1,4 @@
1
+ 'use strict';const validator=require("../libs/validator"),validAccount=require("../libs/validator-account"),cdkhtheongayScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},den_ngay:{type:Date,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},tk:{type:String,required:"tk is required",trim:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,trim:!0,maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,trim:!0,maxlength:32},
2
+ ma_bp:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,trim:!0,maxlength:32},du_no00:{type:Number,default:0},du_co00:{type:Number,default:0},du_no_nt00:{type:Number,default:0},du_co_nt00:{type:Number,default:0},du_no1:{type:Number,default:0},du_co1:{type:Number,default:0},du_no_nt1:{type:Number,default:0},du_co_nt1:{type:Number,default:0},kc_yn:{type:Boolean,
3
+ default:!1},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:""}});cdkhtheongayScheam.validate={ma_dvcs:validator.existsDvcs,tk:validAccount.isTkcn,ma_kh:validator.existsKh};cdkhtheongayScheam.index({id_app:1,ma_dvcs:1,tk:1,ma_kh:1});cdkhtheongayScheam.index({ten_kh:"text"});cdkhtheongayScheam.index({den_ngay:-1});cdkhtheongayScheam.index({tk:1});cdkhtheongayScheam.index({ma_kh:1});
4
+ cdkhtheongayScheam.index({status:1});cdkhtheongayScheam.index({user_created:1});module.exports=mongoose.models.cdkhtheongay||mongoose.model("cdkhtheongay",cdkhtheongayScheam);
@@ -1,3 +1,3 @@
1
1
  'use strict';const validator=require("../libs/validator"),validAccount=require("../libs/validator-account"),cdtkScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},tk:{type:String,required:"tk is required",uppercase:!0,maxlength:32,trim:!0},ma_kho:{type:String,uppercase:!0,maxlength:32,trim:!0},du_no00:{type:Number,default:0},du_co00:{type:Number,default:0},du_no_nt00:{type:Number,default:0},du_co_nt00:{type:Number,
2
2
  default:0},du_no1:{type:Number,default:0},du_co1:{type:Number,default:0},du_no_nt1:{type:Number,default:0},du_co_nt1:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},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:""}});cdtkScheam.validate={ma_dvcs:validator.existsDvcs,tk:validAccount.isNotTkcn};cdtkScheam.index({id_app:1,nam:1,ma_dvcs:1,tk:1});cdtkScheam.index({tk:"text"});
3
- cdtkScheam.index({ma_kho:"text"});cdtkScheam.index({status:1});cdtkScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.cdtk||mongoose.model("cdtk",cdtkScheam);
3
+ cdtkScheam.index({ma_kho:"text"});cdtkScheam.index({nam:1});cdtkScheam.index({status:1});cdtkScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.cdtk||mongoose.model("cdtk",cdtkScheam);
@@ -0,0 +1,3 @@
1
+ 'use strict';const validator=require("../libs/validator"),validAccount=require("../libs/validator-account"),cdtktheongayScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},den_ngay:{type:Date,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},tk:{type:String,required:"tk is required",uppercase:!0,maxlength:32,trim:!0},ma_kho:{type:String,uppercase:!0,maxlength:32,trim:!0},du_no00:{type:Number,default:0},du_co00:{type:Number,default:0},du_no_nt00:{type:Number,default:0},du_co_nt00:{type:Number,
2
+ default:0},du_no1:{type:Number,default:0},du_co1:{type:Number,default:0},du_no_nt1:{type:Number,default:0},du_co_nt1:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},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:""}});cdtktheongayScheam.validate={ma_dvcs:validator.existsDvcs,tk:validAccount.isNotTkcn};cdtktheongayScheam.index({id_app:1,ma_dvcs:1,tk:1});
3
+ cdtktheongayScheam.index({tk:1});cdtktheongayScheam.index({den_ngay:-1});cdtktheongayScheam.index({ma_kho:1});cdtktheongayScheam.index({status:1});cdtktheongayScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.cdtktheongay||mongoose.model("cdtktheongay",cdtktheongayScheam);
@@ -1,4 +1,4 @@
1
1
  'use strict';const validator=require("../libs/validator"),validVt=require("../libs/validator-vt"),cdvtScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_vt:{type:String,required:"L\u1ed7i: M\u00e3 v\u1eadt t\u01b0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",uppercase:!0,maxlength:1024,trim:!0},ten_vt:String,ma_kho:{type:String,required:"L\u1ed7i: M\u00e3 kho kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",
2
2
  uppercase:!0,maxlength:32,trim:!0},ten_kho:String,ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ton00:{type:Number,default:0},du00:{type:Number,default:0},du_nt00:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},status:{type:Boolean,default:!0},date_created:{type:Date,
3
- default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});cdvtScheam.validate={ma_dvcs:validator.existsDvcs,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho};cdvtScheam.index({id_app:1,nam:1,ma_dvcs:1,ma_vt:1,ma_kho:1,ma_lo:1,ma_tt1:1,ma_tt2:1,ma_tt3:1},{name:"cdvt_index_1"});cdvtScheam.index({ma_vt:"text",ten_vt:"text",ma_kho:"text",ten_kho:"text"},{name:"cdvt_index_text"});cdvtScheam.index({han_sd:-1});cdvtScheam.index({status:1});
4
- cdvtScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.cdvt||mongoose.model("cdvt",cdvtScheam);
3
+ default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});cdvtScheam.validate={ma_dvcs:validator.existsDvcs,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho};cdvtScheam.index({id_app:1,nam:1,ma_dvcs:1,ma_vt:1,ma_kho:1,ma_lo:1,ma_tt1:1,ma_tt2:1,ma_tt3:1},{name:"cdvt_index_1"});cdvtScheam.index({ma_vt:"text",ten_vt:"text",ma_kho:"text",ten_kho:"text"},{name:"cdvt_index_text"});cdvtScheam.index({han_sd:-1});cdvtScheam.index({nam:1});
4
+ cdvtScheam.index({ma_vt:1});cdvtScheam.index({ma_kho:1});cdvtScheam.index({status:1});cdvtScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.cdvt||mongoose.model("cdvt",cdvtScheam);
@@ -0,0 +1,4 @@
1
+ 'use strict';const validator=require("../libs/validator"),validVt=require("../libs/validator-vt"),cdvttheongayScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},den_ngay:{type:Date,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_vt:{type:String,required:"L\u1ed7i: M\u00e3 v\u1eadt t\u01b0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",uppercase:!0,maxlength:1024,trim:!0},ten_vt:String,ma_kho:{type:String,required:"L\u1ed7i: M\u00e3 kho kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",
2
+ uppercase:!0,maxlength:32,trim:!0},ten_kho:String,ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ton00:{type:Number,default:0},du00:{type:Number,default:0},du_nt00:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},status:{type:Boolean,default:!0},date_created:{type:Date,
3
+ default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});cdvttheongayScheam.validate={ma_dvcs:validator.existsDvcs,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho};cdvttheongayScheam.index({id_app:1,den_ngay:-1,ma_dvcs:1,ma_vt:1,ma_kho:1,ma_lo:1,ma_tt1:1,ma_tt2:1,ma_tt3:1},{name:"cdvttheongay_index_1"});cdvttheongayScheam.index({ma_vt:"text",ten_vt:"text",ma_kho:"text",ten_kho:"text"},{name:"cdvttheongay_index_text"});
4
+ cdvttheongayScheam.index({den_ngay:-1});cdvttheongayScheam.index({ma_vt:1});cdvttheongayScheam.index({ma_kho:1});cdvttheongayScheam.index({han_sd:-1});cdvttheongayScheam.index({status:1});cdvttheongayScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.cdvttheongay||mongoose.model("cdvttheongay",cdvttheongayScheam);
@@ -1,2 +1,2 @@
1
- 'use strict';const validator=require("../libs/validator"),validAccount=require("../libs/validator-account"),hmcnScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},tk:{type:String,required:"tk is required",trim:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,trim:!0,maxlength:32},ten_kh:String,hm_no:{type:Number,default:0},hm_co:{type:Number,default:0},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:""}});hmcnScheam.validate={tk:validAccount.isTkcn,ma_kh:validator.existsKh};hmcnScheam.index({id_app:1,tk:1,ma_kh:1});hmcnScheam.index({tk:"text",ma_kh:"text",ten_kh:"text"});hmcnScheam.index({status:1});hmcnScheam.index({user_created:1});module.exports=mongoose.models.hmcn||mongoose.model("hmcn",hmcnScheam);
1
+ 'use strict';const validator=require("../libs/validator"),validAccount=require("../libs/validator-account"),hmcnScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},tk:{type:String,required:"tk is required",trim:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,trim:!0,maxlength:32},ten_kh:String,loai:{type:String,required:!0},hm:{type:Number,default:0},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:""}});hmcnScheam.validate={tk:validAccount.isTkcn,ma_kh:validator.existsKh};hmcnScheam.index({id_app:1,tk:1,ma_kh:1,loai:1});hmcnScheam.index({tk:"text",ma_kh:"text",ten_kh:"text"});hmcnScheam.index({status:1});hmcnScheam.index({user_created:1});module.exports=mongoose.models.hmcn||mongoose.model("hmcn",hmcnScheam);
@@ -1,2 +1,2 @@
1
- 'use strict';const hmcnctScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0},tk:{type:String,required:"tk is required",trim:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,trim:!0,maxlength:32},ten_kh:String,hm_no:{type:Number,default:0},hm_co:{type:Number,default:0},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:""}});
2
- hmcnctScheam.index({id_app:1});hmcnctScheam.index({id_ct:1,tk:1,ma_kh:1});hmcnctScheam.index({status:1});hmcnctScheam.index({user_created:1});module.exports=mongoose.models.hmcnct||mongoose.model("hmcnct",hmcnctScheam);
1
+ 'use strict';const hmcnctScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0},tk:{type:String,required:"tk is required",trim:!0,maxlength:32},loai:String,ma_kh:{type:String,uppercase:!0,trim:!0,maxlength:32},ten_kh:String,hm:{type:Number,default:0},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:""}});hmcnctScheam.index({id_app:1});
2
+ hmcnctScheam.index({id_ct:1,tk:1,ma_kh:1});hmcnctScheam.index({loai:1});hmcnctScheam.index({status:1});hmcnctScheam.index({user_created:1});module.exports=mongoose.models.hmcnct||mongoose.model("hmcnct",hmcnctScheam);
@@ -0,0 +1,6 @@
1
+ 'use strict';const model=global.getModel("group"),controller=require("../../controllers/controller"),getSysorder=function($item$$,$callback$$){let $sysorder$$=$item$$._id.toString();$item$$.group_mother?model.findOne({_id:$item$$.group_mother}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)},dmnhbds=function($contr_router$$){$contr_router$$=new controller($contr_router$$,
2
+ model,"dmnhbds",{sort:{sysorder:1},findExact:{group_type:1},notNeedRight:($user$$,$options$$={})=>"view"==($options$$.action||"").toLowerCase()?!0:!1,keyValues:{group_type:"BDS"},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{if($data$$.group_mother&&0<=(await model.getAllChildrenGroup($obj$$.id_app,$obj$$._id.toString())).indexOf($data$$.group_mother))return $next$$("Kh\u00f4ng th\u1ec3 ch\u1ecdn nh\u00f3m n\u00e0y l\u00e0m nh\u00f3m m\u1eb9");$next$$(null,$data$$,$obj$$)}});$contr_router$$.route();
3
+ $contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};
4
+ $contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({group_mother:$obj$$._id.toString()})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",
5
+ function($obj$jscomp$0$$){const $group_mother$$=$obj$jscomp$0$$.group_mother;$group_mother$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$group_mother$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):console.log("Not found mother account:"+$group_mother$$)})});$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.group_mother&&model.findOne({group_mother:$obj$jscomp$0$$.group_mother},function($error$jscomp$0$$,
6
+ $acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.group_mother},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};module.exports=dmnhbds;
@@ -1,2 +1,2 @@
1
1
  'use strict';const model=global.getModel("hmcn"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),dmtk=global.getModel("account"),async=require("async"),hmcn=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"hmcn",{sort:{ma_kh:1,tk:1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({kh:function($callback$$){$result$$.joinModel2($id_app$$,customer,
2
- {where:"ma_kh",fields:{ten_kh:"ten_kh"}},function(){$callback$$()})},tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,{where:"tk",fields:["ten_tk","ma_nt"]},function(){$callback$$()})}},function(){$fn$$(null,$result$$)})};$contr_router$$.creating=($user$$,$obj$$,$next$$)=>{$obj$$.hm_no&&($obj$$.hm_co=0);$next$$(null,$obj$$)};$contr_router$$.updating=($user$$,$data$$,$obj$$,$next$$)=>{$data$$.hm_no&&($data$$.hm_co=0);$next$$(null,$data$$,$obj$$)}};module.exports=hmcn;
2
+ {where:"ma_kh",fields:{ten_kh:"ten_kh"}},function(){$callback$$()})},tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,{where:"tk",fields:["ten_tk","ma_nt"]},function(){$callback$$()})}},async function(){$fn$$(null,$result$$)})};$contr_router$$.creating=($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)};$contr_router$$.updating=($user$$,$data$$,$obj$$,$next$$)=>{$next$$(null,$data$$,$obj$$)}};module.exports=hmcn;
@@ -1,20 +1,21 @@
1
1
  'use strict';const cktt=require("../../libs/cktt"),ckcn=require("../../libs/ckcn"),ckdt=require("../../libs/ckdt"),cknphep=require("../../libs/cknphep"),ckvt=require("../../libs/ckvt"),ckvtnpp=require("../../libs/ckvtnpp"),ckdiem=require("../../libs/ckdiem"),cdtk=global.getModel("cdtk"),cdkh=global.getModel("cdkh"),cddt=global.getModel("cddt"),cdnphep=global.getModel("cdnphep"),cdvt=global.getModel("cdvt"),cdvtnpp=global.getModel("cdvtnpp"),cddiem=global.getModel("cddiem"),dvcs=global.getModel("dvcs"),
2
2
  dmkho=global.getModel("dmkho"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils");
3
- module.exports=function($router$$){new controller($router$$,"kcsns",async($req$$,$callback$jscomp$3$$)=>{if(!$req$$.query.nam)return $callback$jscomp$3$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 N\u0103m(nam)");var $nam_ngay_ks$$=Number($req$$.query.nam);const $sang_nam$$=$nam_ngay_ks$$+1,$den_ngay$$=moment([$nam_ngay_ks$$,11,31]).endOf("year").toDate();let $_app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app});if(!$_app$$)return $callback$jscomp$3$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
4
- if($nam_ngay_ks$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$jscomp$3$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($nam_ngay_ks$$).format("DD/MM/YYYY")}`);dvcs.find({id_app:$req$$.query.id_app}).lean().exec(function($e$$,$ds_dvcs$$){if($e$$)return $callback$jscomp$3$$($e$$);async.mapSeries($ds_dvcs$$,function($dv$$,$callback$jscomp$2$$){const $ma_dvcs$$=$dv$$._id.toString(),$condition$$={id_app:$req$$.query.id_app,
5
- ngay:$den_ngay$$,ma_dvcs:$ma_dvcs$$};async.series({ck_tt:function($callback$jscomp$0$$){setImmediate(()=>{cdtk.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($condition_tktt_e$$){if($condition_tktt_e$$)return $callback$jscomp$0$$($condition_tktt_e$$);$condition_tktt_e$$={...$condition$$,groupBy:["tk"]};($_app$$.options||{}).kc_theo_kho&&$condition_tktt_e$$.groupBy.push("ma_kho");cktt($condition_tktt_e$$,function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);
6
- $rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.id_app=$req$$.query.id_app;$r$$.kc_yn=!0;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$$,function($r$$,$callback$$){(new cdtk($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,
7
- $rs$$)})})})})},ck_cn:function($callback$jscomp$0$$){setImmediate(()=>{cdkh.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);$e$jscomp$1$$=["tk","ma_kh"];$req$$.query.cn_theo_dt&&$e$jscomp$1$$.push("ma_dt");$req$$.query.cn_theo_kho&&$e$jscomp$1$$.push("ma_kho");$req$$.query.cn_theo_bp&&$e$jscomp$1$$.push("ma_bp");$req$$.query.cn_theo_nv&&$e$jscomp$1$$.push("ma_nv");$req$$.query.cn_theo_hd&&
8
- $e$jscomp$1$$.push("ma_hd");$req$$.query.cn_theo_phi&&$e$jscomp$1$$.push("ma_phi");ckcn({...$condition$$,groupBy:$e$jscomp$1$$},function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$jscomp$0$$,
9
- function($r$$,$callback$$){(new cdkh($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})},ck_vt:function($callback$jscomp$1$$){setImmediate(()=>{dmkho.find({id_app:$req$$.query.id_app},function($e$jscomp$2$$,$ds_kho$$){if($e$jscomp$2$$)return $callback$jscomp$1$$($e$jscomp$2$$);async.mapSeries($ds_kho$$,function($kho$$,$callback$jscomp$0$$){var $ma_kho$$=
10
- $kho$$.ma_kho,$query_vt$$={ma_kho:$ma_kho$$,groupBy:"ma_vt ma_kho ma_lo han_sd ma_tt1 ma_tt2 ma_tt3".split(" ")};underscore.extend($query_vt$$,$condition$$);cdvt.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$,ma_kho:$ma_kho$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckvt($query_vt$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;
11
- delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$;$r$$.ma_kho=$ma_kho$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdvt($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,
12
- $rs$$)})})})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,$rs$$)})})})},ck_vt_npp:function($callback$jscomp$1$$){setImmediate(()=>{dmkho.find({id_app:$req$$.query.id_app},function($e$jscomp$2$$,$ds_kho$$){if($e$jscomp$2$$)return $callback$jscomp$1$$($e$jscomp$2$$);async.mapSeries($ds_kho$$,function($kho$$,$callback$jscomp$0$$){var $ma_kho$$=$kho$$.ma_kho,$query_vt$$={ma_kho:$ma_kho$$,groupBy:"ma_vt ma_kho ma_lo han_sd ma_tt1 ma_tt2 ma_tt3".split(" ")};
13
- underscore.extend($query_vt$$,$condition$$);cdvtnpp.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$,ma_kho:$ma_kho$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckvtnpp($query_vt$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=
14
- $req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$;$r$$.ma_kho=$ma_kho$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdvtnpp($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,
15
- $rs$$)})})})},ck_dt:function($callback$jscomp$0$$){setImmediate(()=>{cddt.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckdt($condition$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$=$rs$jscomp$0$$.filter($r$$=>$r$$.ma_dt);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;
16
- $r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cddt($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})}},function($e$$){if($e$$)return $callback$jscomp$2$$($e$$);
17
- $callback$jscomp$2$$(null,{result:"OK"})})},function($e$jscomp$2$$){if($e$jscomp$2$$)return $callback$jscomp$3$$($e$jscomp$2$$);async.series([function($callback$jscomp$0$$){setImmediate(()=>{cddiem.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckdiem({id_app:$req$$.query.id_app,ngay:$den_ngay$$},function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$callback$jscomp$0$$($e$jscomp$0$$);
18
- $rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app});async.mapSeries($rs$$,function($r$$,$callback$$){(new cddiem($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null)})})})})},
19
- function($callback$jscomp$0$$){setImmediate(()=>{cdnphep.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);cknphep({id_app:$req$$.query.id_app,ngay:$den_ngay$$},function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$callback$jscomp$0$$($e$jscomp$0$$);$rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;
20
- $r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app});async.mapSeries($rs$$,function($r$$,$callback$$){(new cdnphep($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null)})})})})}],$e$$=>{if($e$$)return $callback$jscomp$3$$({error:$e$$.error||$e$$.message||$e$$});$callback$jscomp$3$$(null,[{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"}])})})})})};
3
+ module.exports=function($router$$){new controller($router$$,"kcsns",async($req$$,$callback$jscomp$3$$)=>{if(!$req$$.user.appAdmin)return $callback$jscomp$3$$({error:"Ch\u1ec9 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb m\u1edbi c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"});if(!$req$$.query.nam)return $callback$jscomp$3$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 N\u0103m(nam)");var $nam_ngay_ks$$=Number($req$$.query.nam);const $sang_nam$$=$nam_ngay_ks$$+1,$den_ngay$$=
4
+ moment([$nam_ngay_ks$$,11,31]).endOf("year").toDate();let $_app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app});if(!$_app$$)return $callback$jscomp$3$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if($nam_ngay_ks$$=await utils.isBookLocked({id_app:$req$$.user.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$jscomp$3$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($nam_ngay_ks$$).format("DD/MM/YYYY")}`);dvcs.find({id_app:$req$$.query.id_app}).lean().exec(function($e$$,
5
+ $ds_dvcs$$){if($e$$)return $callback$jscomp$3$$($e$$);async.mapSeries($ds_dvcs$$,function($dv$$,$callback$jscomp$2$$){const $ma_dvcs$$=$dv$$._id.toString(),$condition$$={id_app:$req$$.query.id_app,ngay:$den_ngay$$,ma_dvcs:$ma_dvcs$$};async.series({ck_tt:function($callback$jscomp$0$$){setImmediate(()=>{cdtk.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($condition_tktt_e$$){if($condition_tktt_e$$)return $callback$jscomp$0$$($condition_tktt_e$$);$condition_tktt_e$$=
6
+ {...$condition$$,groupBy:["tk"]};($_app$$.options||{}).kc_theo_kho&&$condition_tktt_e$$.groupBy.push("ma_kho");cktt($condition_tktt_e$$,function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.id_app=$req$$.query.id_app;$r$$.kc_yn=!0;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$$,
7
+ function($r$$,$callback$$){(new cdtk($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})},ck_cn:function($callback$jscomp$0$$){setImmediate(()=>{cdkh.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);$e$jscomp$1$$=["tk",
8
+ "ma_kh"];$req$$.query.cn_theo_dt&&$e$jscomp$1$$.push("ma_dt");$req$$.query.cn_theo_kho&&$e$jscomp$1$$.push("ma_kho");$req$$.query.cn_theo_bp&&$e$jscomp$1$$.push("ma_bp");$req$$.query.cn_theo_nv&&$e$jscomp$1$$.push("ma_nv");$req$$.query.cn_theo_hd&&$e$jscomp$1$$.push("ma_hd");$req$$.query.cn_theo_phi&&$e$jscomp$1$$.push("ma_phi");ckcn({...$condition$$,groupBy:$e$jscomp$1$$},function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;
9
+ delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdkh($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})},ck_vt:function($callback$jscomp$1$$){setImmediate(()=>
10
+ {dmkho.find({id_app:$req$$.query.id_app},function($e$jscomp$2$$,$ds_kho$$){if($e$jscomp$2$$)return $callback$jscomp$1$$($e$jscomp$2$$);async.mapSeries($ds_kho$$,function($kho$$,$callback$jscomp$0$$){var $ma_kho$$=$kho$$.ma_kho,$query_vt$$={ma_kho:$ma_kho$$,groupBy:"ma_vt ma_kho ma_lo han_sd ma_tt1 ma_tt2 ma_tt3".split(" ")};underscore.extend($query_vt$$,$condition$$);cdvt.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$,ma_kho:$ma_kho$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);
11
+ ckvt($query_vt$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$;$r$$.ma_kho=$ma_kho$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdvt($r$$)).save(function($e$$,
12
+ $rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,$rs$$)})})})},ck_vt_npp:function($callback$jscomp$1$$){setImmediate(()=>{dmkho.find({id_app:$req$$.query.id_app},function($e$jscomp$2$$,$ds_kho$$){if($e$jscomp$2$$)return $callback$jscomp$1$$($e$jscomp$2$$);async.mapSeries($ds_kho$$,
13
+ function($kho$$,$callback$jscomp$0$$){var $ma_kho$$=$kho$$.ma_kho,$query_vt$$={ma_kho:$ma_kho$$,groupBy:"ma_vt ma_kho ma_lo han_sd ma_tt1 ma_tt2 ma_tt3".split(" ")};underscore.extend($query_vt$$,$condition$$);cdvtnpp.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$,ma_kho:$ma_kho$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckvtnpp($query_vt$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);
14
+ $rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$;$r$$.ma_kho=$ma_kho$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdvtnpp($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);
15
+ $callback$jscomp$0$$(null,$rs$$)})})})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,$rs$$)})})})},ck_dt:function($callback$jscomp$0$$){setImmediate(()=>{cddt.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckdt($condition$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$=
16
+ $rs$jscomp$0$$.filter($r$$=>$r$$.ma_dt);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cddt($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,
17
+ $rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})}},function($e$$){if($e$$)return $callback$jscomp$2$$($e$$);$callback$jscomp$2$$(null,{result:"OK"})})},function($e$jscomp$2$$){if($e$jscomp$2$$)return $callback$jscomp$3$$($e$jscomp$2$$);async.series([function($callback$jscomp$0$$){setImmediate(()=>{cddiem.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckdiem({id_app:$req$$.query.id_app,
18
+ ngay:$den_ngay$$},function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$callback$jscomp$0$$($e$jscomp$0$$);$rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app});async.mapSeries($rs$$,function($r$$,$callback$$){(new cddiem($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);
19
+ $callback$$(null,$rs_s$$)})},function($e$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null)})})})})},function($callback$jscomp$0$$){setImmediate(()=>{cdnphep.deleteMany({nam:$sang_nam$$,id_app:$req$$.query.id_app,kc_yn:!0},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);cknphep({id_app:$req$$.query.id_app,ngay:$den_ngay$$},function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return console.error($e$jscomp$0$$),$callback$jscomp$0$$($e$jscomp$0$$);
20
+ $rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.nam=$sang_nam$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app});async.mapSeries($rs$$,function($r$$,$callback$$){(new cdnphep($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null)})})})})}],
21
+ $e$$=>{if($e$$)return $callback$jscomp$3$$({error:$e$$.error||$e$$.message||$e$$});$callback$jscomp$3$$(null,[{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"}])})})})})};
@@ -0,0 +1,11 @@
1
+ 'use strict';const cktt=require("../../libs/cktt"),ckcn=require("../../libs/ckcn"),ckvt=require("../../libs/ckvt"),cdtk=global.getModel("cdtktheongay"),cdkh=global.getModel("cdkhtheongay"),cdvt=global.getModel("cdvttheongay"),dvcs=global.getModel("dvcs"),dmkho=global.getModel("dmkho"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),async=require("async"),moment=require("moment");
2
+ module.exports=function($router$$){new controller($router$$,"khoaso",async($req$$,$callback$jscomp$3$$)=>{if(!$req$$.user.appAdmin)return $callback$jscomp$3$$({error:"Ch\u1ec9 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb m\u1edbi c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"});if(!$req$$.query.ngay_ks)return $callback$jscomp$3$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 Ng\u00e0y kho\u00e1 s\u1ed5(ngay_ks)");const $den_ngay$$=moment($req$$.query.ngay_ks).endOf("date").toDate();
3
+ let $_app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app});if(!$_app$$)return $callback$jscomp$3$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");dvcs.find({id_app:$req$$.query.id_app}).lean().exec(function($e$$,$ds_dvcs$$){if($e$$)return $callback$jscomp$3$$($e$$);async.mapSeries($ds_dvcs$$,function($dv$$,$callback$jscomp$2$$){const $ma_dvcs$$=$dv$$._id.toString(),$condition$$={id_app:$req$$.query.id_app,ngay:$den_ngay$$,ma_dvcs:$ma_dvcs$$};async.series({ck_tt:function($callback$jscomp$0$$){setImmediate(()=>
4
+ {cdtk.deleteMany({den_ngay:$den_ngay$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($condition_tktt_e$$){if($condition_tktt_e$$)return $callback$jscomp$0$$($condition_tktt_e$$);$condition_tktt_e$$={...$condition$$,groupBy:["tk"]};($_app$$.options||{}).kc_theo_kho&&$condition_tktt_e$$.groupBy.push("ma_kho");cktt($condition_tktt_e$$,function($e$jscomp$0$$,$rs$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;
5
+ delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.den_ngay=$den_ngay$$;$r$$.id_app=$req$$.query.id_app;$r$$.kc_yn=!0;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$$,function($r$$,$callback$$){(new cdtk($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})},ck_cn:function($callback$jscomp$0$$){setImmediate(()=>
6
+ {cdkh.deleteMany({den_ngay:$den_ngay$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);$e$jscomp$1$$=["tk","ma_kh"];$req$$.query.cn_theo_dt&&$e$jscomp$1$$.push("ma_dt");$req$$.query.cn_theo_kho&&$e$jscomp$1$$.push("ma_kho");$req$$.query.cn_theo_bp&&$e$jscomp$1$$.push("ma_bp");$req$$.query.cn_theo_nv&&$e$jscomp$1$$.push("ma_nv");$req$$.query.cn_theo_hd&&$e$jscomp$1$$.push("ma_hd");$req$$.query.cn_theo_phi&&
7
+ $e$jscomp$1$$.push("ma_phi");ckcn({...$condition$$,groupBy:$e$jscomp$1$$},function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.den_ngay=$den_ngay$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdkh($r$$)).save(function($e$$,
8
+ $rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})})},ck_vt:function($callback$jscomp$1$$){setImmediate(()=>{dmkho.find({id_app:$req$$.query.id_app},function($e$jscomp$2$$,$ds_kho$$){if($e$jscomp$2$$)return $callback$jscomp$1$$($e$jscomp$2$$);async.mapSeries($ds_kho$$,function($kho$$,$callback$jscomp$0$$){var $ma_kho$$=$kho$$.ma_kho,$query_vt$$={ma_kho:$ma_kho$$,
9
+ groupBy:"ma_vt ma_kho ma_lo han_sd ma_tt1 ma_tt2 ma_tt3".split(" ")};underscore.extend($query_vt$$,$condition$$);cdvt.deleteMany({den_ngay:$den_ngay$$,id_app:$req$$.query.id_app,kc_yn:!0,ma_dvcs:$ma_dvcs$$,ma_kho:$ma_kho$$},function($e$jscomp$1$$){if($e$jscomp$1$$)return $callback$jscomp$0$$($e$jscomp$1$$);ckvt($query_vt$$,function($e$jscomp$0$$,$rs$jscomp$0$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$rs$jscomp$0$$.forEach(function($r$$){delete $r$$._id;delete $r$$.date_created;
10
+ delete $r$$.date_updated;$r$$.user_created=$req$$.user.email;$r$$.user_updated=$req$$.user.email;$r$$.den_ngay=$den_ngay$$;$r$$.kc_yn=!0;$r$$.id_app=$req$$.query.id_app;$r$$.ma_dvcs=$ma_dvcs$$;$r$$.ma_kho=$ma_kho$$});async.mapSeries($rs$jscomp$0$$,function($r$$,$callback$$){(new cdvt($r$$)).save(function($e$$,$rs_s$$){if($e$$)return $e$$.data=$r$$,$callback$$($e$$);$callback$$(null,$rs_s$$)})},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);$callback$jscomp$0$$(null,$rs$$)})})})},function($e$$,
11
+ $rs$$){if($e$$)return $callback$jscomp$1$$($e$$);$callback$jscomp$1$$(null,$rs$$)})})})}},$e$$=>{if($e$$)return $callback$jscomp$2$$($e$$);$callback$jscomp$2$$()})},async function($e$$){if($e$$)return $callback$jscomp$3$$({error:$e$$.error||$e$$.message||$e$$});await global.getModel("app").updateOne({_id:$_app$$._id},{ngay_ks:$req$$.query.ngay_ks});$callback$jscomp$3$$(null,[{message:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 th\u1ef1c hi\u1ec7n xong"}])})})},{cache:!1})};
@@ -0,0 +1,3 @@
1
+ 'use strict';const async=require("async"),controller=require("../../controllers/controllerRPT");
2
+ module.exports=function($router$$){new controller($router$$,"tongquanbds",async function($req$$,$callback$jscomp$0$$){const $id_app$$=$req$$.query.id_app;async.parallel({sl_sp:$callback$$=>{setImmediate(async()=>{let $sl_sp$$=await global.getModel("dmvt").countDocuments({id_app:$id_app$$});$callback$$(null,$sl_sp$$)})},sl_kh:$callback$$=>{setImmediate(async()=>{let $sl_kh$$=await global.getModel("customer").countDocuments({id_app:$id_app$$});$callback$$(null,$sl_kh$$)})}},($e$$,$rs$$)=>{if($e$$)return $callback$jscomp$0$$($e$$);
3
+ $callback$jscomp$0$$(null,$rs$$)})},{cache:!0,cache_time:5})};
@@ -1,3 +1,6 @@
1
- 'use strict';const cktk=require("../../libs/cktk"),async=require("async"),controller=require("../../controllers/controllerRPT");
2
- module.exports=function($router$$){new controller($router$$,"tongquancongty",async function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");async.parallel({ck:$callback$$=>{const $query$$={id_app:$condition$$.id_app};$query$$.ngay=$condition$$.den_ngay;$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);$query$$.bu_tru=
3
- !0;$query$$.tk=$condition$$.tk||"111 112 131 331 511 632".split(" ");cktk($query$$,($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$)})}},($e$$,$rs$$)=>{if($e$$)return $callback$jscomp$0$$($e$$);$e$$={};$e$$.cktk=$rs$$.ck;$callback$jscomp$0$$(null,$e$$)})},{cache:!0,cache_time:5})};
1
+ 'use strict';const pstk=require("../../libs/pstk"),cktk=require("../../libs/cktk"),controller=require("../../controllers/controllerRPT"),async=require("async"),underscore=require("underscore"),moment=require("moment");
2
+ module.exports=function($router$$){new controller($router$$,"tongquancongty",async function($req$$,$callback$jscomp$0$$){const $query$$=$req$$.query;$query$$.tu_ngay||($query$$.tu_ngay=moment().startOf("month").toDate());$query$$.den_ngay||($query$$.den_ngay=moment().endOf("month").toDate());let $tk_ps$$=$query$$.tk_ps||["511","632"],$tk_ck$$=$query$$.tk_ck||["111","112","131","331"];async.parallel({ps:function($callback$$){setImmediate(()=>{let $condition$$={id_app:$query$$.id_app},$tk$$=$tk_ps$$;
3
+ if(underscore.isArray($tk$$)){let $tks$$;$tk$$.forEach(function($t$$){$tks$$=$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};$condition$$.tk=$tk$$;$query$$.ma_dvcs&&($condition$$.ma_dvcs={$regex:$query$$.ma_dvcs,$options:"i"});$condition$$.ngay_ct={$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay};$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);pstk($condition$$,function($error$$,$result$$){if($error$$)return console.error("Kh\u00f4ng th\u1ec3 t\u00ednh ph\u00e1t sinh t\u00e0i kho\u1ea3n",
4
+ $error$$,$condition$$),$callback$$($error$$);$result$$.forEach(function($r$$){$r$$.ck_no=0;$r$$.ck_co=0;$r$$.ck_no_nt=0;$r$$.ck_co_nt=0});$callback$$(null,$result$$)})})},ck:function($callback$$){setImmediate(()=>{let $condition$$={};underscore.extend($condition$$,$query$$);$condition$$.ngay=$query$$.den_ngay;$condition$$.tk=$tk_ck$$;cktk($condition$$,function($error$$,$result$$){if($error$$)return console.error("Kh\u00f4ng th\u1ec3 t\u00ednh cu\u1ed1i k\u1ef3 t\u00e0i kho\u1ea3n",$error$$,$condition$$),
5
+ $callback$$($error$$);$result$$.forEach(function($r$$){$r$$.ps_no=0;$r$$.ps_co=0;$r$$.ps_no_nt=0;$r$$.ps_co_nt=0;$r$$.ck_no=$r$$.du_no00;$r$$.ck_co=$r$$.du_co00;$r$$.ck_no_nt=$r$$.du_no_nt00;$r$$.ck_co_nt=$r$$.du_co_nt00});$callback$$(null,$result$$)})})}},async($data_err$$,$rs$$)=>{if($data_err$$)return $callback$jscomp$0$$($data_err$$);$data_err$$=$rs$$.ps.concat($rs$$.ck);$data_err$$=await $data_err$$.asyncGroupBy("tk",[{name:"ps_no",value:"ps_no"},{name:"ps_co",value:"ps_co"},{name:"ps_no_nt",
6
+ value:"ps_no_nt"},{name:"ps_co_nt",value:"ps_co_nt"},{name:"ck_no",value:"ck_no"},{name:"ck_co",value:"ck_co"},{name:"ck_no_nt",value:"ck_no_nt"},{name:"ck_co_nt",value:"ck_co_nt"}]);$callback$jscomp$0$$(null,$data_err$$)})},{cache:!0,cache_time:5})};
@@ -6,22 +6,22 @@ id_app:$obj$$._id.toString()};Participant.createParticipant($_p$$,$e$$=>{$e$$&&c
6
6
  module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"app",{unique:["app_code"],require_id_app:!1,sort:{name:1}});$contr_router$$.route();$contr_router$$.found=($user$$,$condition$$,$items$$,$fn$$)=>{async.mapSeries($items$$,($item$$,$callback$$)=>{calcTimeExpired($item$$);$callback$$()},$e$$=>{$e$$&&console.error($e$$);$fn$$(null,$items$$)})};$contr_router$$.view=function($user$$,$items$$,$fn$$){$items$$.forEach($item$$=>{$item$$.trang_thai=$item$$.trang_thai||
7
7
  "0"});async.parallel({trangthai:$callback$$=>{$items$$.joinModel2(null,Trangthai,{where:$item$$=>({ma_ct:"APP",ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai","color"]},()=>{$callback$$()})},show_gia_von_va_nguoi_duyet:$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$$,$callback$$)=>{$item$$.options=$item$$.options||{};$item$$.show_gia_von=!0;$callback$$()},()=>{$callback$jscomp$0$$()})},get_par_info:$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$$,$callback$$)=>{getParticipantInfo($user$$,
8
8
  $item$$,()=>{$item$$.appAdmin||(delete $item$$.viettel_user,delete $item$$.viettel_password,delete $item$$.viettel_url_service,delete $item$$.wallet_address,delete $item$$.wallet_token,delete $item$$.voiip_access_token,delete $item$$.sip_password,delete $item$$.email_host,delete $item$$.email_port,delete $item$$.email_secure,delete $item$$.email_authMethod,delete $item$$.email_user,delete $item$$.email_pass,delete $item$$.email_name,delete $item$$.zalo_app_id,delete $item$$.zalo_secret_key,delete $item$$.zalo_code,
9
- delete $item$$.zalo_oa_id,delete $item$$.zalo_access_token,delete $item$$.zalo_refresh_token);$callback$$()})},()=>{$callback$jscomp$0$$()})}},function(){$items$$.forEach(function($item$$){calcTimeExpired($item$$)});$fn$$(null,$items$$)})};$contr_router$$.getting=async($user$$,$id_p$$,$next$$)=>{($id_p$$=await Participant.findOne({id_app:$id_p$$,email:$user$$.email}).lean())&&!0!==$id_p$$.cancel?$next$$():(console.error("participant info of",$user$$.email,$id_p$$),$next$$("Getting appinfo is not allowed"))};
10
- $contr_router$$.finding=async($user$$,$condition$$,$next$$)=>{var $_appsOfUser_or1$$=await Participant.appsOfUser($user$$.email);$_appsOfUser_or1$$=$_appsOfUser_or1$$.map($p$$=>$p$$.id_app);let $user_created_condition$$={user_created:$user$$.email};$_appsOfUser_or1$$=[{_id:{$in:$_appsOfUser_or1$$}},$user_created_condition$$];let $or2$$=$condition$$.$or;delete $condition$$.$or;$or2$$?$condition$$.$and=[{$or:$_appsOfUser_or1$$},{$or:$or2$$}]:$condition$$.$or=$_appsOfUser_or1$$;$condition$$.working||
11
- (isSupperAdmin($user$$.email.toLowerCase())?delete $user_created_condition$$.user_created:underscore.contains(configs.admins,$user$$.email)&&($user_created_condition$$.user_created={$nin:["invncur@gmail.com","admin"]}));delete $condition$$.working;$user$$.token_id_app&&($condition$$._id=$user$$.token_id_app);$user$$.token_id_apps&&0<$user$$.token_id_apps.length&&($condition$$._id={$in:$user$$.token_id_apps});$next$$(null,$condition$$)};$contr_router$$.creating=async function($now_user$$,$obj$$,$next$$){if(!underscore.contains(configs.admins,
12
- $now_user$$.email)&&!isSupperAdmin($now_user$$.email.toLowerCase())){if(await model.findOne({user_created:$now_user$$.email},{_id:1}))return $next$$("M\u1ed7i t\u00e0i kho\u1ea3n ch\u1ec9 \u0111\u01b0\u1ee3c ph\u00e9p t\u1ea1o m\u1ed9t c\u00f4ng ty");delete $obj$$.allow_modules;delete $obj$$.trang_thai;delete $obj$$.sale_online}if(!$obj$$.ngay_dn)return $next$$(Error("Ng\u00e0y \u0111\u1ea7u n\u0103m t\u00e0i ch\u00ednh kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng"));$obj$$.ngay_ks||($obj$$.ngay_ks=
13
- new Date("2000-01-01"));$obj$$.ngay_ky1||($obj$$.ngay_ky1=new Date);$now_user$$=new Date;$now_user$$.setMonth($now_user$$.getMonth()+1);$obj$$.expire_date=new Date($now_user$$);$obj$$.nam_bd=$obj$$.ngay_ky1.getFullYear();$obj$$.options=$obj$$.options||{};$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){require("../../libs/initDatabase").init($obj$$._id,async $error$$=>{$error$$&&console.error("Can't init database \n"+$error$$);createUserOwner($obj$$,$e$$=>{$e$$&&console.error($e$$);
14
- $next$$(null,$obj$$)})})};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){const $usersAdmin$$=configs.admins;underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase())||(delete $data$$.allow_modules,delete $data$$.expire_date,delete $data$$.trang_thai,delete $data$$.sale_online,delete $data$$.menu_code);permission.isAdmin($obj$$._id,$user$$.email,function($e$$,$admin$$){if(!$admin$$&&!underscore.contains($usersAdmin$$,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$($user$$.email+
15
- " have not permission");$data$$.ngay_ky1&&($data$$.nam_bd=(new Date($data$$.ngay_ky1)).getFullYear());$data$$.options&&0===Object.keys($data$$.options).length&&delete $data$$.options;$data$$.options=$data$$.options?{...$obj$$.options,...$data$$.options}:$obj$$.options||{};$next$$(null,$data$$,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){createUserOwner($obj$$,$e$$=>{$e$$&&console.error($e$$);$next$$(null,$obj$$)})};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){const $usersAdmin$$=
16
- configs.admins;if($user$$.email!=$obj$$.user_created&&!underscore.contains($usersAdmin$$,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a c\u00f4ng ty n\u00e0y");$next$$(null,$obj$$)};$contr_router$$.deleted=function($user$$,$obj$$,$next$$){async.mapSeries(fs.readdirSync(path.dirname(path.dirname(__dirname))+"/models").filter($f$$=>0<$f$$.indexOf(".js")),($file$$,$callback$$)=>{try{let $_model$$=global.getModel(""+$file$$);
17
- underscore.has($_model$$.schema.paths,"id_app")?$_model$$.deleteMany({id_app:$obj$$._id},()=>{console.log("Deleted ",$file$$,"id_app",$obj$$._id);$callback$$()}):$callback$$()}catch($e$$){console.error("Can't delete mode",$file$$,"error:",$e$$.message),$callback$$()}},()=>{$next$$(null,$obj$$)})};$contr_router$$.router.route($contr_router$$.route_name+"/backup/:id").get(function($req$$,$res$$){let $email$$=$req$$.user.email,$id_app$$=$req$$.params.id;permission.isAdmin($id_app$$,$email$$,function($backupWorkerFile_e$$,
18
- $admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n backup d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.backupPool||($backupWorkerFile_e$$=path.dirname(path.dirname(__dirname))+"/workers/backupApp.js",global.backupPool=new StaticPool($backupWorkerFile_e$$));global.backupPool.exec({id:$id_app$$,user:$email$$,dateFrom:$req$$.query.dateFrom,dateTo:$req$$.query.dateTo,backup_app_info:$req$$.query.backup_app_info,configs:{database:global.configs.database}},
19
- $response$$=>{if($response$$.error)return $res$$.status(400).send($response$$.error);$res$$.sendFile(path.dirname(path.dirname(__dirname))+"/backup/"+$response$$.file)})})});$contr_router$$.router.route($contr_router$$.route_name+"/restore/:id").post(function($req$$,$res$$){let $fileZip$$;$req$$.files&&$req$$.files.backup&&$req$$.files.backup.path?$fileZip$$=$req$$.files.backup.path:$req$$.body&&$req$$.body.file_from_server&&fs.existsSync($req$$.body.file_from_server)&&($fileZip$$=$req$$.body.file_from_server);
20
- if(!$fileZip$$)return $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file backup");let $email$$=$req$$.user.email,$id_app$$=$req$$.params.id;permission.isAdmin($id_app$$,$email$$,function($e$$,$admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n restore d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.restorePool||($e$$=path.dirname(path.dirname(__dirname))+"/workers/restoreApp.js",global.restorePool=new StaticPool($e$$));global.restorePool.exec({id:$id_app$$,
21
- user:$email$$,file:$fileZip$$,configs:{database:global.configs.database}},$response$$=>{$response$$.error?_Notification.createNotification($email$$,$email$$,$response$$.error,$response$$.error,null,null,!0,$req$$.access_token,!0):_Notification.createNotification($email$$,$email$$,$response$$.result,$response$$.result,null,null,!0,$req$$.access_token,!0)});$res$$.send("Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n. Xin ch\u1edd trong gi\u00e2y l\u00e1t")})});$contr_router$$.router.route($contr_router$$.route_name+
22
- "/apps/:email_owner").get(function($query_req$$,$res$$){let $email$$=$query_req$$.params.email_owner;if(!underscore.contains(configs.admins,$query_req$$.user.email)&&!isSupperAdmin($query_req$$.user.email.toLowerCase()))return $res$$.status(403).send("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp t\u00ednh n\u0103ng n\u00e0y");$query_req$$={};"all"!=$email$$.toLowerCase()&&($query_req$$.user_created=$email$$);model.find($query_req$$).lean().exec(function($error$$,$apps$$){if($error$$)return $res$$.status(400).send($error$$);
23
- $apps$$.forEach(function($item$$){calcTimeExpired($item$$)});$res$$.send($apps$$)})});$contr_router$$.router.route($contr_router$$.route_name+"/remove/:id").get(async($app_req$$,$res$$)=>{var $id_app$jscomp$2_p$$=$app_req$$.params.id;let $email$$=$app_req$$.user.email;$app_req$$=await model.findById($id_app$jscomp$2_p$$);if(!$app_req$$)return $res$$.status(400).send("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$app_req$$.participants&&($app_req$$.participants=$app_req$$.participants.filter($p$$=>
24
- $p$$.email!==$email$$),$app_req$$.save(()=>{}));if($id_app$jscomp$2_p$$=await Participant.findOne({id_app:$id_app$jscomp$2_p$$,email:$email$$}))await Participant.deleteOne({_id:$id_app$jscomp$2_p$$._id}),$id_app$jscomp$2_p$$=`${$id_app$jscomp$2_p$$.name} (${$email$$}) \u0111\u00e3 r\u1eddi kh\u1ecfi c\u00f4ng ty ${$app_req$$.name}`,_Notification.createNotification($email$$,$app_req$$.user_created,$id_app$jscomp$2_p$$,$id_app$jscomp$2_p$$);$res$$.send("ok")});$contr_router$$.router.route($contr_router$$.route_name+
25
- "/join/:id/:group").get(async($req$$,$res$$)=>{let $id_app$$=$req$$.params.id,$group_id$$=$req$$.params.group,$email$$=$req$$.user.email,$user$$=$req$$.user,$app$$=await model.findById($id_app$$);if(!$app$$)return $res$$.status(400).send("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if(!await Participant.findOne({id_app:$id_app$$,email:$email$$})&&$group_id$$&&global.mongoose.Types.ObjectId.isValid($group_id$$))try{if(!await UserGroup.findOne({_id:$group_id$$,is_customer_group:!0}))return $res$$.status(400).send("Nh\u00f3m kh\u00e1ch h\u00e0ng kh\u00f4ng t\u1ed3n t\u1ea1i");
26
- Participant.createParticipant({id_app:$id_app$$,email:$email$$,name:$user$$.name,group_id:$group_id$$,active:!0},$cust_e$$=>{if($cust_e$$)return $res$$.status(400).send("can't add user",$user$$.email,"to company",$app$$.name);$cust_e$$={ten_kh:$user$$.name,email:$user$$.email,id_app:$id_app$$,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};isMobilePhone($user$$.email,["vi-VN"])&&($cust_e$$.dien_thoai=$user$$.email);try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",
27
- $e$$.message)}$res$$.send("ok")})}catch($e$$){$res$$.status(400).send($e$$.message)}$res$$.send("ok")})};
9
+ delete $item$$.zalo_oa_id,delete $item$$.zalo_access_token,delete $item$$.zalo_refresh_token,delete $item$$.google_credentials,delete $item$$.vnpt_user,delete $item$$.vnpt_password,delete $item$$.vnpt_url_service);$callback$$()})},()=>{$callback$jscomp$0$$()})}},function(){$items$$.forEach(function($item$$){calcTimeExpired($item$$)});$fn$$(null,$items$$)})};$contr_router$$.getting=async($user$$,$id_p$$,$next$$)=>{($id_p$$=await Participant.findOne({id_app:$id_p$$,email:$user$$.email}).lean())&&!0!==
10
+ $id_p$$.cancel?$next$$():(console.error("participant info of",$user$$.email,$id_p$$),$next$$("Getting appinfo is not allowed"))};$contr_router$$.finding=async($user$$,$condition$$,$next$$)=>{var $_appsOfUser_or1$$=await Participant.appsOfUser($user$$.email);$_appsOfUser_or1$$=$_appsOfUser_or1$$.map($p$$=>$p$$.id_app);let $user_created_condition$$={user_created:$user$$.email};$_appsOfUser_or1$$=[{_id:{$in:$_appsOfUser_or1$$}},$user_created_condition$$];let $or2$$=$condition$$.$or;delete $condition$$.$or;
11
+ $or2$$?$condition$$.$and=[{$or:$_appsOfUser_or1$$},{$or:$or2$$}]:$condition$$.$or=$_appsOfUser_or1$$;$condition$$.working||(isSupperAdmin($user$$.email.toLowerCase())?delete $user_created_condition$$.user_created:underscore.contains(configs.admins,$user$$.email)&&($user_created_condition$$.user_created={$nin:["invncur@gmail.com","admin"]}));delete $condition$$.working;$user$$.token_id_app&&($condition$$._id=$user$$.token_id_app);$user$$.token_id_apps&&0<$user$$.token_id_apps.length&&($condition$$._id=
12
+ {$in:$user$$.token_id_apps});$next$$(null,$condition$$)};$contr_router$$.creating=async function($now_user$$,$obj$$,$next$$){if(!underscore.contains(configs.admins,$now_user$$.email)&&!isSupperAdmin($now_user$$.email.toLowerCase())){if(await model.findOne({user_created:$now_user$$.email},{_id:1}))return $next$$("M\u1ed7i t\u00e0i kho\u1ea3n ch\u1ec9 \u0111\u01b0\u1ee3c ph\u00e9p t\u1ea1o m\u1ed9t c\u00f4ng ty");delete $obj$$.allow_modules;delete $obj$$.trang_thai;delete $obj$$.sale_online}if(!$obj$$.ngay_dn)return $next$$(Error("Ng\u00e0y \u0111\u1ea7u n\u0103m t\u00e0i ch\u00ednh kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng"));
13
+ $obj$$.ngay_ks||($obj$$.ngay_ks=new Date("2000-01-01"));$obj$$.ngay_ky1||($obj$$.ngay_ky1=new Date);$now_user$$=new Date;$now_user$$.setMonth($now_user$$.getMonth()+1);$obj$$.expire_date=new Date($now_user$$);$obj$$.nam_bd=$obj$$.ngay_ky1.getFullYear();$obj$$.options=$obj$$.options||{};$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){require("../../libs/initDatabase").init($obj$$._id,async $error$$=>{$error$$&&console.error("Can't init database \n"+$error$$);createUserOwner($obj$$,
14
+ $e$$=>{$e$$&&console.error($e$$);$next$$(null,$obj$$)})})};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){const $usersAdmin$$=configs.admins;delete $data$$.ngay_ks;underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase())||(delete $data$$.allow_modules,delete $data$$.expire_date,delete $data$$.trang_thai,delete $data$$.sale_online,delete $data$$.menu_code);permission.isAdmin($obj$$._id,$user$$.email,function($e$$,$admin$$){if(!$admin$$&&!underscore.contains($usersAdmin$$,
15
+ $user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$($user$$.email+" have not permission");$data$$.ngay_ky1&&($data$$.nam_bd=(new Date($data$$.ngay_ky1)).getFullYear());$data$$.options&&0===Object.keys($data$$.options).length&&delete $data$$.options;$data$$.options=$data$$.options?{...$obj$$.options,...$data$$.options}:$obj$$.options||{};$next$$(null,$data$$,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){createUserOwner($obj$$,$e$$=>{$e$$&&console.error($e$$);
16
+ $next$$(null,$obj$$)})};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){const $usersAdmin$$=configs.admins;if($user$$.email!=$obj$$.user_created&&!underscore.contains($usersAdmin$$,$user$$.email)&&!isSupperAdmin($user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a c\u00f4ng ty n\u00e0y");$next$$(null,$obj$$)};$contr_router$$.deleted=function($user$$,$obj$$,$next$$){async.mapSeries(fs.readdirSync(path.dirname(path.dirname(__dirname))+"/models").filter($f$$=>
17
+ 0<$f$$.indexOf(".js")),($file$$,$callback$$)=>{try{let $_model$$=global.getModel(""+$file$$);underscore.has($_model$$.schema.paths,"id_app")?$_model$$.deleteMany({id_app:$obj$$._id},()=>{console.log("Deleted ",$file$$,"id_app",$obj$$._id);$callback$$()}):$callback$$()}catch($e$$){console.error("Can't delete mode",$file$$,"error:",$e$$.message),$callback$$()}},()=>{$next$$(null,$obj$$)})};$contr_router$$.router.route($contr_router$$.route_name+"/backup/:id").get(function($req$$,$res$$){let $email$$=
18
+ $req$$.user.email,$id_app$$=$req$$.params.id;permission.isAdmin($id_app$$,$email$$,function($backupWorkerFile_e$$,$admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n backup d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.backupPool||($backupWorkerFile_e$$=path.dirname(path.dirname(__dirname))+"/workers/backupApp.js",global.backupPool=new StaticPool($backupWorkerFile_e$$));global.backupPool.exec({id:$id_app$$,user:$email$$,dateFrom:$req$$.query.dateFrom,
19
+ dateTo:$req$$.query.dateTo,backup_app_info:$req$$.query.backup_app_info,configs:{database:global.configs.database}},$response$$=>{if($response$$.error)return $res$$.status(400).send($response$$.error);$res$$.sendFile(path.dirname(path.dirname(__dirname))+"/backup/"+$response$$.file)})})});$contr_router$$.router.route($contr_router$$.route_name+"/restore/:id").post(function($req$$,$res$$){let $fileZip$$;$req$$.files&&$req$$.files.backup&&$req$$.files.backup.path?$fileZip$$=$req$$.files.backup.path:
20
+ $req$$.body&&$req$$.body.file_from_server&&fs.existsSync($req$$.body.file_from_server)&&($fileZip$$=$req$$.body.file_from_server);if(!$fileZip$$)return $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file backup");let $email$$=$req$$.user.email,$id_app$$=$req$$.params.id;permission.isAdmin($id_app$$,$email$$,function($e$$,$admin$$){if(!$admin$$)return $res$$.status(400).send({error:"Ch\u1ec9 admin m\u1edbi c\u00f3 quy\u1ec1n restore d\u1eef li\u1ec7u c\u1ee7a c\u00f4ng ty"});global.restorePool||
21
+ ($e$$=path.dirname(path.dirname(__dirname))+"/workers/restoreApp.js",global.restorePool=new StaticPool($e$$));global.restorePool.exec({id:$id_app$$,user:$email$$,file:$fileZip$$,configs:{database:global.configs.database}},$response$$=>{$response$$.error?_Notification.createNotification($email$$,$email$$,$response$$.error,$response$$.error,null,null,!0,$req$$.access_token,!0):_Notification.createNotification($email$$,$email$$,$response$$.result,$response$$.result,null,null,!0,$req$$.access_token,!0)});
22
+ $res$$.send("Ch\u01b0\u01a1ng tr\u00ecnh \u0111ang th\u1ef1c hi\u1ec7n. Xin ch\u1edd trong gi\u00e2y l\u00e1t")})});$contr_router$$.router.route($contr_router$$.route_name+"/apps/:email_owner").get(function($query_req$$,$res$$){let $email$$=$query_req$$.params.email_owner;if(!underscore.contains(configs.admins,$query_req$$.user.email)&&!isSupperAdmin($query_req$$.user.email.toLowerCase()))return $res$$.status(403).send("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp t\u00ednh n\u0103ng n\u00e0y");
23
+ $query_req$$={};"all"!=$email$$.toLowerCase()&&($query_req$$.user_created=$email$$);model.find($query_req$$).lean().exec(function($error$$,$apps$$){if($error$$)return $res$$.status(400).send($error$$);$apps$$.forEach(function($item$$){calcTimeExpired($item$$)});$res$$.send($apps$$)})});$contr_router$$.router.route($contr_router$$.route_name+"/remove/:id").get(async($app_req$$,$res$$)=>{var $id_app$jscomp$2_p$$=$app_req$$.params.id;let $email$$=$app_req$$.user.email;$app_req$$=await model.findById($id_app$jscomp$2_p$$);
24
+ if(!$app_req$$)return $res$$.status(400).send("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$app_req$$.participants&&($app_req$$.participants=$app_req$$.participants.filter($p$$=>$p$$.email!==$email$$),$app_req$$.save(()=>{}));if($id_app$jscomp$2_p$$=await Participant.findOne({id_app:$id_app$jscomp$2_p$$,email:$email$$}))await Participant.deleteOne({_id:$id_app$jscomp$2_p$$._id}),$id_app$jscomp$2_p$$=`${$id_app$jscomp$2_p$$.name} (${$email$$}) \u0111\u00e3 r\u1eddi kh\u1ecfi c\u00f4ng ty ${$app_req$$.name}`,
25
+ _Notification.createNotification($email$$,$app_req$$.user_created,$id_app$jscomp$2_p$$,$id_app$jscomp$2_p$$);$res$$.send("ok")});$contr_router$$.router.route($contr_router$$.route_name+"/join/:id/:group").get(async($req$$,$res$$)=>{let $id_app$$=$req$$.params.id,$group_id$$=$req$$.params.group,$email$$=$req$$.user.email,$user$$=$req$$.user,$app$$=await model.findById($id_app$$);if(!$app$$)return $res$$.status(400).send("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if(!await Participant.findOne({id_app:$id_app$$,
26
+ email:$email$$})&&$group_id$$&&global.mongoose.Types.ObjectId.isValid($group_id$$))try{if(!await UserGroup.findOne({_id:$group_id$$,is_customer_group:!0}))return $res$$.status(400).send("Nh\u00f3m kh\u00e1ch h\u00e0ng kh\u00f4ng t\u1ed3n t\u1ea1i");Participant.createParticipant({id_app:$id_app$$,email:$email$$,name:$user$$.name,group_id:$group_id$$,active:!0},$cust_e$$=>{if($cust_e$$)return $res$$.status(400).send("can't add user",$user$$.email,"to company",$app$$.name);$cust_e$$={ten_kh:$user$$.name,
27
+ email:$user$$.email,id_app:$id_app$$,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};isMobilePhone($user$$.email,["vi-VN"])&&($cust_e$$.dien_thoai=$user$$.email);try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}$res$$.send("ok")})}catch($e$$){$res$$.status(400).send($e$$.message)}$res$$.send("ok")})};
@@ -1,10 +1,13 @@
1
1
  'use strict';const {parentPort,workerData}=require("worker_threads");require("../global");
2
- const nodemailer=require("nodemailer"),smtpTransport=require("nodemailer-smtp-transport"),async=require("async"),underscore=require("underscore"),path=require("path"),fs=require("fs"),wellknown=require("nodemailer-wellknown"),Axios=require("axios"),_=require("lodash"),sendHtml=async function($message_smtp_tp$$,$fn$$){if($message_smtp_tp$$.configs&&_.isString($message_smtp_tp$$.configs))try{$message_smtp_tp$$.configs=JSON.parse($message_smtp_tp$$.configs)}catch($e$$){delete $message_smtp_tp$$.configs,
3
- console.info($e$$)}const $configs$$=$message_smtp_tp$$.configs||require("../configs"),$options$$=$message_smtp_tp$$.options||{};let $transporter$$,$from$$,$sender$$;$options$$.account?($message_smtp_tp$$=$options$$.account.smtp.host.split("."),1<$message_smtp_tp$$.length&&($sender$$=wellknown($message_smtp_tp$$[1])),$sender$$||($sender$$={host:$options$$.account.smtp.host,port:$options$$.account.smtp.port}),$sender$$.auth={user:$options$$.account.username,pass:$options$$.account.password},$message_smtp_tp$$=
4
- smtpTransport($sender$$),$transporter$$=nodemailer.createTransport($message_smtp_tp$$),$from$$={name:$options$$.account.fullname,address:$options$$.account.username}):($sender$$=$options$$.app_info&&$options$$.app_info.email_host&&$options$$.app_info.email_user&&$options$$.app_info.email_pass?{host:$options$$.app_info.email_host,port:$options$$.app_info.email_port||465,secure:void 0===$options$$.app_info.email_secure?!0:$options$$.app_info.email_secure,authMethod:$options$$.app_info.email_authMethod||
5
- "LOGIN",auth:{user:$options$$.app_info.email_user,pass:$options$$.app_info.email_pass},name:$options$$.app_info.email_name||$options$$.app_info.name||$options$$.app_info.email_user}:$configs$$.sender,$sender$$.url?$transporter$$={sendMail:($msg$$,$callback$$)=>{$msg$$.secretKey=$sender$$.secretKey;$msg$$.message=$msg$$.message||$msg$$.html;$msg$$.name=$sender$$.name;Axios.post($sender$$.url,$msg$$).then($res$$=>{$callback$$(null,$res$$.data)}).catch($error$$=>{$callback$$($error$$.data)})}}:($transporter$$=
6
- nodemailer.createTransport(smtpTransport($sender$$)),$from$$={name:$sender$$.name,address:$sender$$.auth.user},$options$$.sender&&($from$$.name=$options$$.sender)));let $attachments$$=[];$options$$.attachments||($options$$.attachments=[]);async.mapSeries($options$$.attachments,($att$$,$callback$$)=>{let $file_name$$=$att$$.file.name,$root$$=$configs$$.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$file_name$$=path.join($root$$,$file_name$$);
7
- fs.existsSync($file_name$$)&&$attachments$$.push({path:$file_name$$,filename:$att$$.file.originalname});$callback$$()},()=>{underscore.isArray($options$$.to)?async.mapSeries($options$$.to,function($to$$,$callback$$){$to$$.address?($transporter$$.sendMail({from:$from$$,to:$to$$,cc:$options$$.cc,bcc:$options$$.bcc,subject:$options$$.subject,html:$options$$.html,attachments:$attachments$$},function($error$$,$info$$){$error$$&&console.error("Error send email",$to$$,$error$$,$info$$,$sender$$)}),$callback$$()):
8
- $callback$$(null)},function($error$$,$t$$){$fn$$($error$$,$t$$)}):($transporter$$.sendMail({from:$from$$,to:$options$$.to,cc:$options$$.cc,bcc:$options$$.bcc,subject:$options$$.subject,html:$options$$.html,attachments:$attachments$$},function($error$$,$info$$){$error$$&&console.error("Error send email",$options$$.to,$error$$,$info$$,$sender$$)}),$fn$$())})};
9
- parentPort.on("message",$msg$$=>{if($msg$$){if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){console.error($e$$);parentPort.postMessage({error:"msg is not valid"});return}sendHtml($msg$$,function($e$$,$rs$$){parentPort.postMessage({error:$e$$,data:$rs$$})})}else parentPort.postMessage({error:"msg is not valid"})});
2
+ const nodemailer=require("nodemailer"),smtpTransport=require("nodemailer-smtp-transport"),async=require("async"),underscore=require("underscore"),path=require("path"),fs=require("fs"),wellknown=require("nodemailer-wellknown"),Axios=require("axios"),_=require("lodash"),sendHtml=async function($google_credentials_message_smtp_tp$$,$fn$$){if($google_credentials_message_smtp_tp$$.configs&&_.isString($google_credentials_message_smtp_tp$$.configs))try{$google_credentials_message_smtp_tp$$.configs=JSON.parse($google_credentials_message_smtp_tp$$.configs)}catch($e$$){delete $google_credentials_message_smtp_tp$$.configs,
3
+ console.info($e$$)}const $configs$$=$google_credentials_message_smtp_tp$$.configs||require("../configs"),$options$$=$google_credentials_message_smtp_tp$$.options||{};let $transporter$$,$from$$,$sender$$;if($options$$.account)$google_credentials_message_smtp_tp$$=$options$$.account.smtp.host.split("."),1<$google_credentials_message_smtp_tp$$.length&&($sender$$=wellknown($google_credentials_message_smtp_tp$$[1])),$sender$$||($sender$$={host:$options$$.account.smtp.host,port:$options$$.account.smtp.port}),
4
+ $sender$$.auth={user:$options$$.account.username,pass:$options$$.account.password},$google_credentials_message_smtp_tp$$=smtpTransport($sender$$),$transporter$$=nodemailer.createTransport($google_credentials_message_smtp_tp$$),$from$$={name:$options$$.account.fullname,address:$options$$.account.username};else if($sender$$=$options$$.app_info?$options$$.app_info.email_host&&$options$$.app_info.email_user&&$options$$.app_info.email_pass?{host:$options$$.app_info.email_host,port:$options$$.app_info.email_port||
5
+ 465,secure:void 0===$options$$.app_info.email_secure?!0:$options$$.app_info.email_secure,authMethod:$options$$.app_info.email_authMethod||"LOGIN",auth:{user:$options$$.app_info.email_user,pass:$options$$.app_info.email_pass},name:$options$$.app_info.email_name||$options$$.app_info.name||$options$$.app_info.email_user}:$options$$.app_info.google_credentials?{google_credentials:$options$$.app_info.google_credentials,name:$options$$.app_info.name}:$configs$$.google_credentials?{google_credentials:$configs$$.google_credentials,
6
+ name:$options$$.app_info.name}:$configs$$.sender:$configs$$.google_credentials?{google_credentials:$configs$$.google_credentials,name:($configs$$.sender||{}).name||$configs$$.company||"SYSTEM"}:$configs$$.sender,$sender$$.url)$transporter$$={sendMail:($msg$$,$callback$$)=>{$msg$$.secretKey=$sender$$.secretKey;$msg$$.message=$msg$$.message||$msg$$.html;$msg$$.name=$sender$$.name;Axios.post($sender$$.url,$msg$$).then($res$$=>{$callback$$(null,$res$$.data)}).catch($error$$=>{$callback$$($error$$.data)})}};
7
+ else if($sender$$.google_credentials){$google_credentials_message_smtp_tp$$=$sender$$.google_credentials;let $credentials$$;try{$credentials$$="string"==typeof $google_credentials_message_smtp_tp$$?JSON.parse($google_credentials_message_smtp_tp$$):$google_credentials_message_smtp_tp$$,$from$$={name:$sender$$.name,address:$credentials$$.client_email}}catch($e$$){return $fn$$($e$$)}$transporter$$={sendMail:($msg$$,$callback$$)=>{const {google:$google$$}=require("googleapis");try{const {client_email:$client_email$$,
8
+ private_key:$private_key$$}=$credentials$$,$auth$$=new $google$$.auth.JWT($client_email$$,null,$private_key$$,["https://www.googleapis.com/auth/gmail.send"]),$gmail$$=$google$$.gmail({version:"v1",auth:$auth$$}),$encodedMessage$$=Buffer.from(`From: "${$msg$$.from.name}" <${$msg$$.from.address}>\n`+`To: ${$msg$$.to.address}\n`+`Subject: ${$msg$$.subject}\n\n`+`${$msg$$.message||$msg$$.html||"test email"}`).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");$gmail$$.users.messages.send({userId:"me",
9
+ resource:{raw:$encodedMessage$$}},($err_error$$,$res$$)=>{$err_error$$?($err_error$$=(($err_error$$.response||{}).data||{}).error||$err_error$$,console.error("send email by gmail",$err_error$$,$msg$$),$callback$$($err_error$$)):(console.log("Email sent successfully"),$callback$$(null,$res$$))})}catch($e$$){$callback$$((($e$$.response||{}).data||{}).error||$e$$)}}}}else $transporter$$=nodemailer.createTransport(smtpTransport($sender$$)),$from$$={name:$sender$$.name,address:$sender$$.auth.user},$options$$.sender&&
10
+ ($from$$.name=$options$$.sender);let $attachments$$=[];$options$$.attachments||($options$$.attachments=[]);async.mapSeries($options$$.attachments,($att$$,$callback$$)=>{let $file_name$$=$att$$.file.name,$root$$=$configs$$.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$file_name$$=path.join($root$$,$file_name$$);fs.existsSync($file_name$$)&&$attachments$$.push({path:$file_name$$,filename:$att$$.file.originalname});$callback$$()},()=>{underscore.isArray($options$$.to)?
11
+ async.mapSeries($options$$.to,function($to$$,$callback$$){$to$$.address?($transporter$$.sendMail({from:$from$$,to:$to$$,cc:$options$$.cc,bcc:$options$$.bcc,subject:$options$$.subject,html:$options$$.html,attachments:$attachments$$},function($error$$,$info$$){$error$$&&console.error("Error send email",$to$$,$error$$,$info$$)}),$callback$$()):$callback$$(null)},function($error$$,$t$$){$fn$$($error$$,$t$$)}):($transporter$$.sendMail({from:$from$$,to:$options$$.to,cc:$options$$.cc,bcc:$options$$.bcc,
12
+ subject:$options$$.subject,html:$options$$.html,attachments:$attachments$$},function($error$$,$info$$){$error$$&&console.error("Error send email",$options$$.to,$error$$,$info$$,$sender$$)}),$fn$$())})};parentPort.on("message",$msg$$=>{if($msg$$){if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){console.error($e$$);parentPort.postMessage({error:"msg is not valid"});return}sendHtml($msg$$,function($e$$,$rs$$){parentPort.postMessage({error:$e$$,data:$rs$$})})}else parentPort.postMessage({error:"msg is not valid"})});
10
13
  workerData&&(()=>{let $msg$$=workerData;if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){console.error($e$$);parentPort.postMessage({error:"msg is not valid"});return}$msg$$.filePath&&sendHtml($msg$$,function($e$$,$rs$$){parentPort.postMessage({error:$e$$,data:$rs$$})})})();