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 +3 -1
- package/server/controllers/controller.js +32 -20
- package/server/defaultConfigs.js +3 -3
- package/server/libs/cdpstk.js +10 -10
- package/server/libs/ckcn.js +11 -10
- package/server/libs/cktk.js +1 -1
- package/server/libs/cktt.js +9 -7
- package/server/libs/ckvt.js +11 -10
- package/server/libs/dkcn.js +10 -9
- package/server/libs/dktt.js +8 -7
- package/server/libs/dkvt.js +9 -7
- package/server/libs/email.js +2 -1
- package/server/libs/post-socai.js +20 -18
- package/server/models/app.js +4 -4
- package/server/models/bds_nhadat.js +7 -7
- package/server/models/cdkh.js +1 -1
- package/server/models/cdkhtheongay.js +4 -0
- package/server/models/cdtk.js +1 -1
- package/server/models/cdtktheongay.js +3 -0
- package/server/models/cdvt.js +2 -2
- package/server/models/cdvttheongay.js +4 -0
- package/server/models/hmcn.js +2 -2
- package/server/models/hmcnct.js +2 -2
- package/server/modules/lists/ls-bds_dmnhbds.js +6 -0
- package/server/modules/lists/ls-hmcn.js +1 -1
- package/server/modules/reports/rp-kcsns.js +19 -18
- package/server/modules/reports/rp-khoaso.js +11 -0
- package/server/modules/reports/rp-tongquanbds.js +3 -0
- package/server/modules/reports/rp-tongquancongty.js +6 -3
- package/server/modules/systems/sys-app.js +19 -19
- package/server/workers/sendEmail.js +11 -8
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.
|
|
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$
|
|
198
|
-
return $row$jscomp$
|
|
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
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
216
|
-
$e$$});if(0===$rs$$.rows_error.length)$res$$.send($rs$$);else{let $message
|
|
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$
|
|
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$
|
|
286
|
-
"</body></html>",$callback$$(null,$error$jscomp$
|
|
287
|
-
($e$jscomp$
|
|
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$
|
|
328
|
-
delete global.cacheDatas[$e$jscomp$
|
|
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$
|
|
335
|
-
$res$$.status(400).send($e$jscomp$
|
|
336
|
-
const $voucher_options$$=(await OptionsModel.findOne({id_app:$e$jscomp$
|
|
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$
|
|
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)};
|
|
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;
|
package/server/defaultConfigs.js
CHANGED
|
@@ -88,13 +88,13 @@ sender.auth = {
|
|
|
88
88
|
pass: ''
|
|
89
89
|
};*/
|
|
90
90
|
var sender = {
|
|
91
|
-
"host": "
|
|
91
|
+
"host": "",
|
|
92
92
|
"port": 25,
|
|
93
93
|
"secure": false,
|
|
94
94
|
"authMethod": "LOGIN",
|
|
95
95
|
"auth": {
|
|
96
|
-
"user": "
|
|
97
|
-
"pass": "
|
|
96
|
+
"user": "",
|
|
97
|
+
"pass": ""
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
//
|
package/server/libs/cdpstk.js
CHANGED
|
@@ -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.
|
|
3
|
-
function($error$$,$result$$){if($error$$)return $callback$$($error$$);$callback$$(null,$result$$)})})},ps:function($callback$$){setImmediate(()=>{let $condition$$={id_app:$query$$.id_app}
|
|
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$$)
|
|
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$$)})
|
|
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$$){
|
|
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",
|
|
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.
|
|
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?
|
|
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
|
|
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$$)})})})})})};
|
package/server/libs/ckcn.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
'use strict';const
|
|
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 $
|
|
3
|
-
$
|
|
4
|
-
$
|
|
5
|
-
$
|
|
6
|
-
$
|
|
7
|
-
|
|
8
|
-
$
|
|
9
|
-
|
|
10
|
-
$
|
|
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$$)})})})};
|
package/server/libs/cktk.js
CHANGED
|
@@ -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
|
|
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$$)})};
|
package/server/libs/cktt.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
'use strict';const
|
|
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
|
|
3
|
-
|
|
4
|
-
$
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
$
|
|
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$$)})})})};
|
package/server/libs/ckvt.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
'use strict';const
|
|
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 $
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
$condition$$.
|
|
8
|
-
|
|
9
|
-
$
|
|
10
|
-
$ckcapphat_error
|
|
11
|
-
|
|
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$$)})})})})};
|
package/server/libs/dkcn.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
'use strict';const
|
|
2
|
-
module.exports=async function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){
|
|
3
|
-
$tks$$?$tks$$+"|^"+$t$$:"^"+$t$$});$tks$$||($tks$$="^");$tk$$={$regex:$tks$$,$options:"i"}}else $tk$$={$regex:"^"+$tk$$,$options:"i"};var $ngay$$=new Date($condition$$.ngay)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
$
|
|
8
|
-
$
|
|
9
|
-
|
|
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")};
|
package/server/libs/dktt.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
'use strict';const
|
|
2
|
-
module.exports=function($condition$$,$fn$$){if($condition$$&&$condition$$.ngay&&$condition$$.id_app){var $
|
|
3
|
-
$
|
|
4
|
-
{
|
|
5
|
-
$callback$$(
|
|
6
|
-
|
|
7
|
-
|
|
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"))};
|
package/server/libs/dkvt.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
'use strict';const
|
|
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 $
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
($
|
|
6
|
-
$
|
|
7
|
-
|
|
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")};
|
package/server/libs/email.js
CHANGED
|
@@ -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,
|
|
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$$,$
|
|
3
|
-
tk:$tk$$,ma_kh:$ma_kh$$,bu_tru:!0,ngay:moment($obj$$.ngay_ct).endOf("year").toDate()});if(
|
|
4
|
-
}
|
|
5
|
-
$
|
|
6
|
-
|
|
7
|
-
if($acc
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$callback$$()})
|
|
11
|
-
0<$
|
|
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,
|
|
16
|
-
asyncCheckHMCN($master$$.id_app,$master$$,$d$$.tk,$d$$.ma_kh,$d$$.
|
|
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)
|
|
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;
|
|
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()}),
|
|
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()}
|
|
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"
|
|
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;
|
package/server/models/app.js
CHANGED
|
@@ -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},
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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},
|
|
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});
|
|
5
|
-
nhadatSchema.index({
|
|
6
|
-
nhadatSchema.index({
|
|
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;
|
package/server/models/cdkh.js
CHANGED
|
@@ -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);
|
package/server/models/cdtk.js
CHANGED
|
@@ -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);
|
package/server/models/cdvt.js
CHANGED
|
@@ -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({
|
|
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);
|
package/server/models/hmcn.js
CHANGED
|
@@ -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,
|
|
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);
|
package/server/models/hmcnct.js
CHANGED
|
@@ -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,
|
|
2
|
-
hmcnctScheam.index({
|
|
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$$)=>{$
|
|
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$$=
|
|
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
|
|
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$$=
|
|
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$$,
|
|
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",
|
|
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;
|
|
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(()=>
|
|
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$$);
|
|
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
|
|
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$$,
|
|
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$$)
|
|
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$$)
|
|
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
|
|
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
|
|
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,
|
|
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$$)
|
|
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$$)
|
|
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)})})})})}]
|
|
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
|
|
2
|
-
module.exports=function($router$$){new controller($router$$,"tongquancongty",async function($req$$,$callback$jscomp$0$$){const $
|
|
3
|
-
|
|
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
|
|
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
|
|
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=
|
|
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"))
|
|
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
|
|
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
|
|
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$$)
|
|
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$$=>
|
|
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
|
|
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,
|
|
19
|
-
|
|
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||
|
|
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)})
|
|
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")
|
|
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$$);
|
|
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}`,
|
|
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$$,
|
|
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,
|
|
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($
|
|
3
|
-
console.info($e$$)}const $configs$$=$
|
|
4
|
-
smtpTransport($sender$$),$transporter$$=nodemailer.createTransport($
|
|
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}:$
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
$
|
|
9
|
-
|
|
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$$})})})();
|