flexbiz-server 12.3.2 → 12.3.4
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 -3
- package/server/app.js +4 -4
- package/server/cluster.js +2 -2
- package/server/controllers/controller.js +109 -107
- package/server/data/account.js +479 -0
- package/server/data/ckgtluong.js +65 -0
- package/server/data/currency.js +4 -0
- package/server/data/dmdvt.js +54 -0
- package/server/data/dmkho.js +3 -0
- package/server/data/dvcs.js +3 -0
- package/server/data/kbm_bcdkt.js +4843 -0
- package/server/data/kbm_kqhdkd.js +655 -0
- package/server/data/kbm_lcttgt.js +2386 -0
- package/server/data/kbm_lctttt.js +934 -0
- package/server/data/kbm_tkgtgt.js +560 -0
- package/server/data/parameter.js +178 -0
- package/server/data/ptthanhtoan.js +3 -0
- package/server/data/rpt.js +123 -0
- package/server/data/rptobject.js +2 -0
- package/server/data/sys/labelinfo.js +2 -0
- package/server/data/sys/listinfo.js +225430 -0
- package/server/data/sys/menuinfo.js +1 -0
- package/server/data/sys/moduleinfo.js +523 -0
- package/server/data/sys/quanhuyen.js +9928 -0
- package/server/data/sys/reportinfo.js +14045 -0
- package/server/data/sys/tableinfo.js +5873 -0
- package/server/data/sys/templatestore.js +1988 -0
- package/server/data/sys/tinhthanh.js +821 -0
- package/server/data/sys/trangthai.js +12301 -0
- package/server/data/sys/user.js +21 -0
- package/server/data/sys/vietqrbanks.js +1 -0
- package/server/data/tc.js +5 -0
- package/server/data/usergroup.js +47 -0
- package/server/data/vat.js +115 -0
- package/server/global.js +1 -1
- package/server/libs/databanle.js +12 -9
- package/server/libs/databanletheongay.js +1 -1
- package/server/libs/docs.js +304 -0
- package/server/libs/dtbanletheosp.js +2 -2
- package/server/libs/getGiaban.js +57 -53
- package/server/libs/htmlReport.js +6 -6
- package/server/libs/mongooseDeletePost.js +4 -3
- package/server/libs/permission.js +25 -20
- package/server/libs/post-socai.js +6 -5
- package/server/libs/post-sokho.js +1 -1
- package/server/libs/tuoinophaithu.js +10 -10
- package/server/libs/tuoinophaitra.js +11 -9
- package/server/libs/utils.js +29 -5
- package/server/libs/validator.js +3 -2
- package/server/models/app.js +4 -3
- package/server/models/bds_area.js +2 -2
- package/server/models/bds_block.js +2 -2
- package/server/models/bds_building.js +3 -3
- package/server/models/bds_floor.js +2 -2
- package/server/models/bds_floordetail.js +3 -3
- package/server/models/bds_nhadat.js +6 -4
- package/server/models/bds_nhomnhadat.js +3 -0
- package/server/models/bds_phanloainhadat.js +2 -0
- package/server/models/customer.js +5 -5
- package/server/models/dh2.js +5 -5
- package/server/models/ecomproductlines.js +2 -0
- package/server/models/hd2.js +17 -15
- package/server/models/hd4.js +12 -0
- package/server/models/listinfo.js +12 -1
- package/server/models/moduleinfo.js +3 -3
- package/server/models/pn3.js +4 -4
- package/server/models/so9.js +7 -7
- package/server/models/tdttco.js +9 -8
- package/server/models/tdttco_tt.js +1 -1
- package/server/models/tdttno.js +9 -8
- package/server/models/tdttno_tt.js +2 -2
- package/server/models/user.js +7 -7
- package/server/models/vatra.js +5 -5
- package/server/models/vatvao.js +5 -5
- package/server/modules/lists/bg-cddiem.js +6 -7
- package/server/modules/lists/bg-cddt.js +7 -8
- package/server/modules/lists/bg-cdkh.js +11 -10
- package/server/modules/lists/bg-cdnphep.js +6 -7
- package/server/modules/lists/bg-cdtk.js +9 -9
- package/server/modules/lists/bg-cdvt.js +8 -9
- package/server/modules/lists/bg-cdvtnpp.js +7 -8
- package/server/modules/lists/ls-account.js +4 -4
- package/server/modules/lists/ls-afflink.js +2 -2
- package/server/modules/lists/ls-bds_area.js +4 -3
- package/server/modules/lists/ls-bds_block.js +1 -1
- package/server/modules/lists/ls-bds_building.js +2 -2
- package/server/modules/lists/ls-bds_floor.js +2 -2
- package/server/modules/lists/ls-bds_floordetail.js +18 -18
- package/server/modules/lists/ls-bds_nhadat.js +16 -7
- package/server/modules/lists/ls-bds_nhomnhadat.js +1 -0
- package/server/modules/lists/ls-bds_phanloainhadat.js +1 -0
- package/server/modules/lists/ls-currency.js +1 -1
- package/server/modules/lists/ls-dknphep.js +1 -1
- package/server/modules/lists/ls-dmban.js +3 -3
- package/server/modules/lists/ls-dmca.js +1 -1
- package/server/modules/lists/ls-dmchucvu.js +2 -1
- package/server/modules/lists/ls-dmcpmh.js +1 -1
- package/server/modules/lists/ls-dmdvt.js +1 -1
- package/server/modules/lists/ls-dmhoahonghd.js +2 -1
- package/server/modules/lists/ls-dmhoahongnpp.js +2 -1
- package/server/modules/lists/ls-dmkhuyenmai.js +4 -4
- package/server/modules/lists/ls-dmkhuyenmaihd.js +2 -2
- package/server/modules/lists/ls-dmletet.js +1 -1
- package/server/modules/lists/ls-dmloaicong.js +1 -1
- package/server/modules/lists/ls-dmloaits.js +1 -1
- package/server/modules/lists/ls-dmnckkm.js +5 -5
- package/server/modules/lists/ls-dmnghiepvu.js +1 -1
- package/server/modules/lists/ls-dmnguonvon.js +1 -1
- package/server/modules/lists/ls-dmnhnv.js +5 -5
- package/server/modules/lists/ls-dmnhtask.js +5 -5
- package/server/modules/lists/ls-dmnkh.js +5 -5
- package/server/modules/lists/ls-dmntt.js +5 -5
- package/server/modules/lists/ls-dmnvt.js +4 -4
- package/server/modules/lists/ls-dmqddvt.js +2 -2
- package/server/modules/lists/ls-dmtanggiamts.js +1 -1
- package/server/modules/lists/ls-dmvt.js +20 -19
- package/server/modules/lists/ls-dvcs.js +1 -1
- package/server/modules/lists/ls-fbpage.js +1 -1
- package/server/modules/lists/ls-hlink.js +1 -1
- package/server/modules/lists/ls-hlinkvalue.js +1 -1
- package/server/modules/lists/ls-hmcn.js +2 -2
- package/server/modules/lists/ls-kbm-bcdkt.js +1 -1
- package/server/modules/lists/ls-kbm-bcqt.js +4 -4
- package/server/modules/lists/ls-kbm-kqhdkd.js +1 -1
- package/server/modules/lists/ls-kbm-lcttgt.js +1 -1
- package/server/modules/lists/ls-kbm-lctttt.js +1 -1
- package/server/modules/lists/ls-kbm-pttct.js +2 -2
- package/server/modules/lists/ls-kbm-tkgtgt.js +2 -1
- package/server/modules/lists/ls-kbm-tmbctc.js +2 -2
- package/server/modules/lists/ls-label.js +1 -1
- package/server/modules/lists/ls-like-module.js +2 -2
- package/server/modules/lists/ls-newsfeed.js +3 -3
- package/server/modules/lists/ls-participant.js +3 -3
- package/server/modules/lists/ls-ptthanhtoan.js +2 -2
- package/server/modules/lists/ls-rpt.js +4 -4
- package/server/modules/lists/ls-rptform.js +4 -4
- package/server/modules/lists/ls-tc.js +1 -1
- package/server/modules/lists/ls-templaterpt.js +4 -3
- package/server/modules/lists/ls-templatevoucher.js +1 -1
- package/server/modules/lists/ls-vat.js +1 -1
- package/server/modules/lists/ls-vatra.js +5 -0
- package/server/modules/lists/ls-vatvao.js +5 -0
- package/server/modules/reports/calc-tinhgiatb.js +6 -6
- package/server/modules/reports/calc-tinhgiathanh.js +6 -7
- package/server/modules/reports/calc-tinhkhauhaots.js +3 -4
- package/server/modules/reports/calc-tinhluong.js +17 -17
- package/server/modules/reports/rp-congnophaithutheotuoino.js +2 -2
- package/server/modules/reports/rp-congnophaitratheotuoino.js +2 -2
- package/server/modules/reports/rp-congnosapthu.js +4 -0
- package/server/modules/reports/rp-congnosaptra.js +4 -0
- package/server/modules/reports/rp-congviectheotimeline.js +2 -1
- package/server/modules/reports/rp-dtbanletheoct.js +15 -15
- package/server/modules/reports/rp-dtbanletheokh.js +5 -5
- package/server/modules/reports/rp-dtbanletheokho.js +1 -1
- package/server/modules/reports/rp-dtbanletheonv.js +3 -3
- package/server/modules/reports/rp-kcsns.js +16 -16
- package/server/modules/reports/rp-tongquancongty.js +3 -0
- package/server/modules/systems/sys-ecomproductlines.js +1 -0
- package/server/modules/vouchers/vo-dh2.js +25 -24
- package/server/modules/vouchers/vo-hd1.js +18 -18
- package/server/modules/vouchers/vo-hd2.js +12 -6
- package/server/modules/vouchers/vo-hd3.js +37 -33
- package/server/modules/vouchers/vo-hd4.js +15 -0
- package/server/modules/vouchers/vo-pn3.js +5 -4
- package/server/modules/vouchers/vo-pn5.js +18 -13
- package/server/route.js +6 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
'use strict';const ngcompile=require("ng-node-compile"),ejs=require("ejs"),rpt=global.getModel("rpt"),{evalute,prepareParameters}=require("../libs/utils"),moment=require("moment"),numeral=require("numeral");
|
|
2
|
-
module.exports=async function($html_template_page$$,$_data_data$$){var $key_for_find_rptConfig$$;$_data_data$$={...$_data_data$$};if(global.mongoose.Types.ObjectId.isValid($html_template_page$$)&&($key_for_find_rptConfig$$=await rpt.findOne({_id:$html_template_page$$}))){if(($html_template_page$$=$key_for_find_rptConfig$$.html_template)&&$key_for_find_rptConfig$$.handle_data_expression&&0>$key_for_find_rptConfig$$.handle_data_expression.indexOf("async ")){
|
|
3
|
-
try{await evalute($func_string_str_row_vt_cell_1$$,{data:$_data_data$$,moment,numeral})()}catch($e$$){console.error($e$$,$func_string_str_row_vt_cell_1$$)}}$html_template_page$$&&$key_for_find_rptConfig$$.parameters&&await prepareParameters($key_for_find_rptConfig$$.parameters,$_data_data$$,$_data_data$$)}if(!$html_template_page$$)return"";
|
|
4
|
-
if(0<$func_string_str_row_vt_cell_1$$){$func_string_str_row_vt_cell_1$$=$html_template_page$$.substring(0,$func_string_str_row_vt_cell_1$$);var $new_str_row_trs$$=$func_string_str_row_vt_cell_1$$.split("<tr");0<$new_str_row_trs$$.length&&($new_str_row_trs$$[$new_str_row_trs$$.length-1]=` ng-repeat='_${$field$$} in ${$field$$}'${$new_str_row_trs$$[$new_str_row_trs$$.length-
|
|
5
|
-
$new_str_row_trs$$))}$html_template_page$$=$html_template_page$$.split($key_for_find_rptConfig$$).join(`{{_${$field$$}.`)}0>$html_template_page$$.indexOf("print-content")&&($html_template_page$$=`<div id="print-content">${$html_template_page$$}</div>`);$html_template_page$$=unescape($html_template_page$$);if(0<=$html_template_page$$.indexOf("ng-")||0<=$html_template_page$$.indexOf("{{"))try{$html_template_page$$=
|
|
6
|
-
$html_template_page$$.indexOf("<%")||0<=$html_template_page$$.indexOf("%>")||0<=$html_template_page$$.indexOf("<%")||0<=$html_template_page$$.indexOf("%>"))try{$html_template_page$$=ejs.render($html_template_page$$,$_data_data$$)}catch($e$$){console.error($e$$)}return $html_template_page$$};
|
|
1
|
+
'use strict';const ngcompile=require("ng-node-compile"),ejs=require("ejs"),rpt=global.getModel("rpt"),{evalute,prepareParameters}=require("../libs/utils"),utils=require("../libs/utils"),moment=require("moment"),numeral=require("numeral");
|
|
2
|
+
module.exports=async function($html_template_page$$,$_data_data$$){var $key_for_find_rptConfig$$;$_data_data$$={...$_data_data$$};if(global.mongoose.Types.ObjectId.isValid($html_template_page$$)&&($key_for_find_rptConfig$$=await rpt.findOne({_id:$html_template_page$$}).lean())){if(($html_template_page$$=$key_for_find_rptConfig$$.html_template)&&$key_for_find_rptConfig$$.handle_data_expression&&0>$key_for_find_rptConfig$$.handle_data_expression.indexOf("async ")){$_data_data$$.details&&($_data_data$$.details=
|
|
3
|
+
$_data_data$$.details.map($d$$=>$d$$.toObject?$d$$.toObject():{...$d$$}));var $func_string_str_row_vt_cell_1$$=`return (async ()=>${$key_for_find_rptConfig$$.handle_data_expression})`;try{await evalute($func_string_str_row_vt_cell_1$$,{data:$_data_data$$,moment,numeral,utils})()}catch($e$$){console.error($e$$,$func_string_str_row_vt_cell_1$$)}}$html_template_page$$&&$key_for_find_rptConfig$$.parameters&&await prepareParameters($key_for_find_rptConfig$$.parameters,$_data_data$$,$_data_data$$)}if(!$html_template_page$$)return"";
|
|
4
|
+
for(let $field$$ in $_data_data$$)if(Array.isArray($_data_data$$[$field$$])){$key_for_find_rptConfig$$=`{{tb:${$field$$}.`;$func_string_str_row_vt_cell_1$$=$html_template_page$$.indexOf($key_for_find_rptConfig$$);if(0<$func_string_str_row_vt_cell_1$$){$func_string_str_row_vt_cell_1$$=$html_template_page$$.substring(0,$func_string_str_row_vt_cell_1$$);var $new_str_row_trs$$=$func_string_str_row_vt_cell_1$$.split("<tr");0<$new_str_row_trs$$.length&&($new_str_row_trs$$[$new_str_row_trs$$.length-1]=` ng-repeat='_${$field$$} in ${$field$$}'${$new_str_row_trs$$[$new_str_row_trs$$.length-
|
|
5
|
+
1]}`,$new_str_row_trs$$=$new_str_row_trs$$.join("<tr"),$html_template_page$$=$html_template_page$$.replace($func_string_str_row_vt_cell_1$$,$new_str_row_trs$$))}$html_template_page$$=$html_template_page$$.split($key_for_find_rptConfig$$).join(`{{_${$field$$}.`)}0>$html_template_page$$.indexOf("print-content")&&($html_template_page$$=`<div id="print-content">${$html_template_page$$}</div>`);$html_template_page$$=unescape($html_template_page$$);if(0<=$html_template_page$$.indexOf("ng-")||0<=$html_template_page$$.indexOf("{{"))try{$html_template_page$$=
|
|
6
|
+
(new ngcompile([])).$compile($html_template_page$$)($_data_data$$)}catch($e$$){console.error($e$$)}if(0<=$html_template_page$$.indexOf("<%")||0<=$html_template_page$$.indexOf("%>")||0<=$html_template_page$$.indexOf("<%")||0<=$html_template_page$$.indexOf("%>"))try{$html_template_page$$=ejs.render($html_template_page$$,$_data_data$$)}catch($e$$){console.error($e$$)}return $html_template_page$$};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';const {isBookLocked}=require("./utils");module.exports=function($schema$$){$schema$$.pre("deleteOne",preDelete);$schema$$.pre("deleteMany",preDelete);$schema$$.post("deleteOne",deletePost);$schema$$.post("deleteMany",deletePost);$schema$$.post("remove",deletePost);$schema$$.post("findByIdAndRemove",deletePost)};
|
|
2
2
|
function deletePost($modelName_res_rs$$){$modelName_res_rs$$&&$modelName_res_rs$$.deletedCount&&(!($modelName_res_rs$$=(this.mongooseCollection||{}).modelName)||0<=global.model_books.indexOf($modelName_res_rs$$)||($modelName_res_rs$$=this._conditions)&&(Array.isArray($modelName_res_rs$$)?$modelName_res_rs$$.forEach($v$$=>{deleteBooks($v$$)}):deleteBooks($modelName_res_rs$$)))}
|
|
3
|
-
function deleteBooks($
|
|
4
|
-
async function preDelete($next$$){
|
|
5
|
-
|
|
3
|
+
async function deleteBooks($query$$){const $id_ct$$=$query$$._id;$id_ct$$&&global.model_books.forEach($r$$=>{global.getModel($r$$).deleteMany({id_ct:$id_ct$$})})}
|
|
4
|
+
async function preDelete($next$$){const $modelName$$=(this.mongooseCollection||{}).modelName;if(!$modelName$$)return $next$$();let $model$$=global.getModel($modelName$$),$deletedData$$;if($model$$.schema.paths.ngay_ct&&$model$$.schema.paths.id_app&&0<=global.model_books.indexOf($modelName$$)){$deletedData$$=await $model$$.findOne(this._conditions).lean();if(!$deletedData$$)return $next$$();if(await isBookLocked($deletedData$$))return $next$$(Error(`Kh\u00f4ng th\u1ec3 xo\u00e1 s\u1ed5 ${$modelName$$}. Data \u0111\u00e3 \u0111\u01b0\u1ee3c kho\u00e1`))}if($modelName$$&&
|
|
5
|
+
0<=$modelName$$.indexOf("tdttno_tt")){$deletedData$$||($deletedData$$=await $model$$.findOne(this._conditions).lean());if(!$deletedData$$)return $next$$();$deletedData$$.id_tdtt&&await global.getModel("tdttno").updateOne({_id:$deletedData$$.id_tdtt},{tat_toan:!1})}if($modelName$$&&0<=$modelName$$.indexOf("tdttco_tt")){$deletedData$$||($deletedData$$=await $model$$.findOne(this._conditions).lean());if(!$deletedData$$)return $next$$();$deletedData$$.id_tdtt&&await global.getModel("tdttco").updateOne({_id:$deletedData$$.id_tdtt},
|
|
6
|
+
{tat_toan:!1})}$next$$()};
|
|
@@ -8,32 +8,37 @@ exports.isAdmin=function($current_id_app$$,$email$$,$callback$$){if(!$current_id
|
|
|
8
8
|
$app$$.expire_date&&(new Date($app$$.expire_date)).getTime()<(new Date).getTime())return $callback$$({error:"C\u00f4ng ty n\u00e0y \u0111\u00e3 h\u1ebft h\u1ea1n s\u1eed d\u1ee5ng",code:-8},!1);$error$$=await Participant.findOne({id_app:$current_id_app$$,email:$email$$}).lean();if(!$error$$)return $callback$$({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp c\u00f4ng ty n\u00e0y",code:-2},!1);if(!$error$$.admin&&!$error$$.active&&"public"!==$email$$)return $callback$$({error:"T\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111ang ch\u1edd \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn",
|
|
9
9
|
code:-1},!1);$callback$$(null,$error$$.admin,$app$$,$error$$)})};
|
|
10
10
|
exports.hasRight=async function($current_id_app$$,$email$$,$module$$,$action$$,$callbackMain$$,$options$$={}){if(!$current_id_app$$||$options$$.notNeedRight)return $callbackMain$$(null,!0);const $model$$=global.controllers[$module$$]?global.controllers[$module$$].model:void 0;if($model$$&&$model$$.schema&&!underscore.has($model$$.schema.paths,"id_app"))return $callbackMain$$(null,!0);$options$$.data&&($options$$.data.trang_thai||0==$options$$.data.trang_thai)&&($options$$.data.trang_thai=$options$$.data.trang_thai.toString());
|
|
11
|
-
$options$$.obj&&($options$$.obj.trang_thai||0==$options$$.obj.trang_thai)&&($options$$.obj.trang_thai=$options$$.obj.trang_thai.toString());$action
|
|
11
|
+
$options$$.obj&&($options$$.obj.trang_thai||0==$options$$.obj.trang_thai)&&($options$$.obj.trang_thai=$options$$.obj.trang_thai.toString());$action$$=($action$$||"").toLowerCase();var $data$$=$options$$.data||$options$$.obj||{};const $ma_ct$$=$model$$&&underscore.has($model$$.schema.paths,"ma_ct")&&(($options$$.obj||{}).ma_ct||($options$$.data||{}).ma_ct||"").toString().toUpperCase();let $ma_trang_thai$$=($data$$.trang_thai||$data$$.progress||"").toString().toUpperCase();!$ma_trang_thai$$&&$options$$.obj&&
|
|
12
12
|
($ma_trang_thai$$=($options$$.obj.trang_thai||$options$$.obj.progress||"").toString().toUpperCase());if($ma_ct$$&&$ma_trang_thai$$)if($data$$=await trangthai.findOne({ma_trang_thai:$ma_trang_thai$$,ma_ct:$ma_ct$$}).lean()){if($data$$.not_need_right)return $callbackMain$$(null,!0)}else console.log("Khong tim thay trang thai cho chuc nang nay",{ma_ct:$ma_ct$$,ma_trang_thai:$ma_trang_thai$$,trang_thai:$data$$,action:$action$$});exports.isAdmin($current_id_app$$,$email$$,async($e_key_right_ms_q$$,$admin$$,
|
|
13
13
|
$app$$,$participant$$)=>{if($e_key_right_ms_q$$)return $callbackMain$$($e_key_right_ms_q$$,!1);if($app$$&&$app$$.allow_modules&&0<$app$$.allow_modules.length&&($e_key_right_ms_q$$={"items.code":{$regex:"^"+$module$$+"$",$options:"i"},active_require:!0},$app$$.menu_code&&($e_key_right_ms_q$$.app=$app$$.menu_code),$e_key_right_ms_q$$=await global.getModel("moduleinfo").find($e_key_right_ms_q$$).lean(),0<$e_key_right_ms_q$$.length&&0==$e_key_right_ms_q$$.filter($m$$=>0<=$app$$.allow_modules.indexOf($m$$.code)&&
|
|
14
14
|
(!$m$$.not_for_companies||0>$m$$.not_for_companies.indexOf($app$$._id.toString()))&&(!$m$$.only_for_companies||0<=$m$$.only_for_companies.indexOf($app$$._id.toString()))).length))return $callbackMain$$('API "'+$module$$+'" ch\u01b0a \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t cho c\u00f4ng ty n\u00e0y (trong module '+$e_key_right_ms_q$$[0].app+"/"+$e_key_right_ms_q$$[0].title+")",!1);if($options$$.data&&$options$$.data.id_app){if($options$$.data.id_app!=$current_id_app$$)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",
|
|
15
15
|
!1);if($options$$.obj&&$options$$.data.id_app!=$options$$.obj.id_app)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1)}if($options$$.obj&&$options$$.obj.id_app&&$options$$.obj.id_app!=$current_id_app$$)return $callbackMain$$("B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1);if($options$$.notNeedRight)return $callbackMain$$(null,!0,$app$$);if($options$$.obj&&!$admin$$)if(2===$options$$.obj.visible_to){if(!underscore.contains($options$$.obj.visible_to_users,
|
|
16
16
|
$email$$)&&$options$$.obj.of_user!==$email$$.toLowerCase()&&$options$$.obj.user_created&&$options$$.obj.user_created.toLowerCase()!==$email$$.toLowerCase())return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1)}else if(1===$options$$.obj.visible_to&&$options$$.obj.of_user!==$email$$.toLowerCase()&&$options$$.obj.user_created&&$options$$.obj.user_created.toLowerCase()!==$email$$.toLowerCase()&&$options$$.obj.phu_trach!=$email$$.toLowerCase()&&
|
|
17
17
|
0>($options$$.obj.attends||[]).indexOf($email$$)&&0>(await exports.dsDangPhuTrach($options$$.obj.id_app,$email$$.toLowerCase())).indexOf($options$$.obj.user_created))return $callbackMain$$("Ch\u1ec9 ng\u01b0\u1eddi t\u1ea1o, ph\u1ee5 tr\u00e1ch, h\u1ed7 tr\u1ee3 v\u00e0 admin m\u1edbi c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",!1);$e_key_right_ms_q$$=$email$$;$participant$$&&$participant$$.group_id&&($e_key_right_ms_q$$=$participant$$.group_id.toLowerCase());right.findOne({id_app:$current_id_app$$,
|
|
18
|
-
email:$e_key_right_ms_q$$,module:$module$$.toLowerCase()},async function($
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
$
|
|
24
|
-
$
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
$email
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
$
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
$
|
|
35
|
-
$
|
|
36
|
-
|
|
18
|
+
email:$e_key_right_ms_q$$,module:$module$$.toLowerCase()},async function($_right_trang_thai_controler_error$$,$_right_model$$){if($_right_trang_thai_controler_error$$)return $callbackMain$$($_right_trang_thai_controler_error$$,!1);if(!$admin$$){if(!$_right_model$$)return $_right_trang_thai_controler_error$$=global.controllers[$module$$.toUpperCase()],$_right_model$$=(($_right_trang_thai_controler_error$$||{}).model_name||$module$$).toLowerCase(),"customer"==$_right_model$$||0<=$_right_model$$.indexOf("socai")||
|
|
19
|
+
0<=$_right_model$$.indexOf("sokho")||0<=$_right_model$$.indexOf("vatvao")||0<=$_right_model$$.indexOf("vatra")||0<=$_right_model$$.indexOf("tdttno")||0<=$_right_model$$.indexOf("tdttco")||$_right_trang_thai_controler_error$$&&($_right_trang_thai_controler_error$$.options||{}).isVoucher||"view"!==$action$$&&("add"!==$action$$||"group"!==$module$$.toLowerCase())?$callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1):($_right_trang_thai_controler_error$$=
|
|
20
|
+
{"items.code":$module$$.toLowerCase()},$app$$&&$app$$.menu_code&&($_right_trang_thai_controler_error$$.app=$app$$.menu_code),await global.getModel("moduleinfo").findOne($_right_trang_thai_controler_error$$,{app:1}).lean()?$callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",!1):$callbackMain$$(null,!0,$app$$));if(!$_right_model$$[$action$$])return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",
|
|
21
|
+
!1);if($options$$.obj&&$_right_model$$&&!$_right_model$$.viewOfOther&&$options$$.obj.user_created.toLowerCase()!==$email$$&&(2!==$options$$.obj.visible_to||!underscore.contains($options$$.obj.visible_to_users,$email$$))&&$options$$.obj.phu_trach!==$email$$&&0>($options$$.obj.attends||[]).indexOf($email$$)&&0>(await exports.dsDangPhuTrach($options$$.obj.id_app,$email$$.toLowerCase())).indexOf($options$$.obj.user_created))return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y",
|
|
22
|
+
!1);if($ma_trang_thai$$&&($_right_trang_thai_controler_error$$=$_right_model$$[`${$action$$}_trang_thai`])&&!$_right_trang_thai_controler_error$$[$ma_trang_thai$$]&&void 0!=$_right_trang_thai_controler_error$$[$ma_trang_thai$$])return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y",!1)}$options$$.obj?async.series({trangthai:$callback$$=>{$options$$.obj&&("update"===$action$$||"delete"===$action$$)&&$model$$&&underscore.has($model$$.schema.paths,
|
|
23
|
+
"ma_ct")&&$options$$.obj.ma_ct?trangthai.findOne({ma_ct:$options$$.obj.ma_ct.toUpperCase(),ma_trang_thai:$options$$.obj.trang_thai},function($e$$,$trang_thai$$){if($e$$)return $callback$$($e$$);if($trang_thai$$){if("update"===$action$$){if(0==$trang_thai$$.allow_update)return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y kh\u00f4ng cho ph\u00e9p s\u1eeda");if(1==$trang_thai$$.lock_data)return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c kho\u00e1")}if("delete"===
|
|
24
|
+
$action$$&&($trang_thai$$.lock_data||0==$trang_thai$$.allow_delete))return $callback$$("Tr\u1ea1ng th\u00e1i ch\u1ee9ng t\u1eeb n\u00e0y kh\u00f4ng cho ph\u00e9p xo\u00e1")}return $callback$$()}):$callback$$()}},$action_right_e$$=>{if($action_right_e$$)$callbackMain$$($action_right_e$$,!1);else{$action_right_e$$=`${$action$$}_right`;if(!$admin$$&&$options$$.obj&&$options$$.obj[$action_right_e$$]&&0<$options$$.obj[$action_right_e$$].length&&0>$options$$.obj[$action_right_e$$].indexOf($email$$.toLowerCase()))return $callbackMain$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1ed1i v\u1edbi t\u00ednh n\u0103ng n\u00e0y",
|
|
25
|
+
!1);$callbackMain$$(null,!0,$app$$)}}):$callbackMain$$(null,!0,$app$$)})},$options$$)};
|
|
26
|
+
exports.getRightByItem=function($id_app$$,$model$$,$email$$,$next$$,$module$$,$options$$={}){$module$$||($module$$=$model$$&&$model$$.collection&&$model$$.collection.name&&1<$model$$.collection.name.length?$model$$.collection.name.substr(0,$model$$.collection.name.length-1).toLowerCase():"");let $key_cache$$=$module$$?`RightByItem::${$id_app$$}::${$email$$}::${$module$$}::${JSON.stringify($options$$)}`:"",$time_cache$$="public"===$email$$?10080:1;if($key_cache$$&&global.cacheDatas[$key_cache$$]&&
|
|
27
|
+
moment().diff(moment(global.cacheDatas[$key_cache$$].time),"minutes")<$time_cache$$)return $next$$(null,global.cacheDatas[$key_cache$$].data,!1);exports.isAdmin($id_app$$,$email$$,async function($e$jscomp$3_key_right$$,$admin$$,$app$$,$participant$$){if($e$jscomp$3_key_right$$)return $next$$($e$jscomp$3_key_right$$);let $condition$$={};if($admin$$||$options$$.notNeedRight||!underscore.has($model$$.schema.paths,"id_app"))$next$$(null,$condition$$,$admin$$);else{let $allUsers$$,$selUsers$$,$selGroups$$,
|
|
28
|
+
$visible$$=[],$allow_trang_thai$$;$e$jscomp$3_key_right$$=$email$$;$participant$$&&$participant$$.group_id&&($e$jscomp$3_key_right$$=$participant$$.group_id.toLowerCase());right.findOne({id_app:$id_app$$,email:$e$jscomp$3_key_right$$,module:$module$$.toLowerCase()},async function($ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$,$_right$jscomp$1_users$$){if($_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view_all)return $key_cache$$&&(global.cacheDatas[$key_cache$$]={time:new Date,
|
|
29
|
+
data:_.cloneDeep($condition$$)}),$next$$(null,$condition$$,!1);$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$=await exports.dsDangPhuTrach($id_app$$,$email$$);$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.push($email$$);$_right$jscomp$1_users$$&&$_right$jscomp$1_users$$.view_empty_phu_trach&&($ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.push(""),$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.push(null));if($_right$jscomp$1_users$$&&
|
|
30
|
+
$_right$jscomp$1_users$$.view){var $_right_trang_thai$$={visible_to:null};underscore.has($model$$.schema.paths,"visible_to")&&($condition$$.$and||($condition$$.$and=[]),$allUsers$$={visible_to:0},$selUsers$$={visible_to:2,visible_to_users:$email$$},$selGroups$$=underscore.has($model$$.schema.paths,"visible_to_usergroups")?{visible_to:5,visible_to_usergroups:($participant$$||{}).group_id}:{visible_to:5,visible_to_users:($participant$$||{}).group_id},$visible$$.push($allUsers$$),$visible$$.push($selUsers$$),
|
|
31
|
+
$visible$$.push($selGroups$$),$visible$$.push($_right_trang_thai$$));if(!1===$_right$jscomp$1_users$$.viewOfOther){if(underscore.has($model$$.schema.paths,"ma_kh")){var $allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$=await exports.dsKhDangPhuTrach($id_app$$,{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$});0<$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$.length&&$visible$$.push({ma_kh:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}})}$allUsers$$?$allUsers$$.user_created=
|
|
32
|
+
{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}:$visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}})}else{if(!0===underscore.has($model$$.schema.paths,"trang_thai")){if($_right_trang_thai$$=$_right$jscomp$1_users$$.view_trang_thai){$allow_trang_thai$$=[void 0,null,""];for($t_viewOfOther_right_trang_thai$$ in $_right_trang_thai$$)$_right_trang_thai$$[$t_viewOfOther_right_trang_thai$$]&&$allow_trang_thai$$.push($t_viewOfOther_right_trang_thai$$);
|
|
33
|
+
$condition$$.trang_thai={$in:$allow_trang_thai$$}}var $t_viewOfOther_right_trang_thai$$=$_right$jscomp$1_users$$.viewOfOther_trang_thai;if($t_viewOfOther_right_trang_thai$$){$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$=[void 0,null,""];for(let $t$$ in $t_viewOfOther_right_trang_thai$$)!$t_viewOfOther_right_trang_thai$$[$t$$]||$_right_trang_thai$$&&!$_right_trang_thai$$[$t$$]||$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$.push($t$$)}}$_right$jscomp$1_users$$.viewOfOther_user_groups&&
|
|
34
|
+
0<$_right$jscomp$1_users$$.viewOfOther_user_groups.length?($_right$jscomp$1_users$$=await Participant.find({id_app:$id_app$$,group_id:{$in:$_right$jscomp$1_users$$.viewOfOther_user_groups}},{email:1}).lean(),$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.push(...$_right$jscomp$1_users$$.map($u$$=>$u$$.email)),$allUsers$$?$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$?$allUsers$$.$or=[{user_created:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.filter($e$$=>
|
|
35
|
+
$e$$!=$email$$)},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]:$allUsers$$.user_created={$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$?($visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}}),$visible$$.push({$or:[{user_created:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.filter($e$$=>
|
|
36
|
+
$e$$!=$email$$)},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]})):$visible$$.push({user_created:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}})):$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$&&($allUsers$$?$allUsers$$.$or=[{user_created:{$ne:$email$$},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},{user_created:$email$$}]:$visible$$.push({$or:[{user_created:{$ne:$email$$},trang_thai:{$in:$allow_viewOfOther_trang_thai_ds_kh_dang_phu_trach$$}},
|
|
37
|
+
{user_created:$email$$}]}))}$selUsers$$&&(underscore.has($model$$.schema.paths,"of_user")&&$visible$$.push({of_user:$email$$}),underscore.has($model$$.schema.paths,"phu_trach")&&$visible$$.push({phu_trach:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}}),underscore.has($model$$.schema.paths,"attends")&&$visible$$.push({attends:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}}))}else 0>not_need_right_models.indexOf($module$$)&&($visible$$.push({user_created:$email$$}),
|
|
38
|
+
underscore.has($model$$.schema.paths,"of_user")&&$visible$$.push({of_user:$email$$}),underscore.has($model$$.schema.paths,"phu_trach")&&$visible$$.push({phu_trach:{$in:$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$}}),underscore.has($model$$.schema.paths,"attends")&&$visible$$.push({attends:$email$$})),$ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$={"items.code":$module$$.toLowerCase()},$app$$&&$app$$.menu_code&&($ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$.app=
|
|
39
|
+
$app$$.menu_code),await global.getModel("moduleinfo").findOne($ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$,{app:1}).lean()||($ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$={visible_to:null},underscore.has($model$$.schema.paths,"visible_to")&&($condition$$.$and||($condition$$.$and=[]),$allUsers$$={visible_to:0},$selUsers$$={visible_to:2,visible_to_users:$email$$},$selGroups$$=underscore.has($model$$.schema.paths,"visible_to_usergroups")?{visible_to:5,visible_to_usergroups:($participant$$||
|
|
40
|
+
{}).group_id}:{visible_to:5,visible_to_users:($participant$$||{}).group_id},$visible$$.push($allUsers$$),$visible$$.push($selUsers$$),$visible$$.push($selGroups$$),$visible$$.push($ds_dang_phu_trach_error$jscomp$3_query$jscomp$1_visible_to_null$$)));0<$visible$$.length&&($condition$$.$and||($condition$$.$and=[]),$condition$$.$and.push({$or:$visible$$}));$condition$$.$and&&0===$condition$$.$and.length&&delete $condition$$.$and;$condition$$.$or&&0===$condition$$.$or.length&&delete $condition$$.$or;
|
|
41
|
+
$key_cache$$&&(global.cacheDatas[$key_cache$$]={time:new Date,data:_.cloneDeep($condition$$)});$next$$(null,$condition$$,!1)})}},$options$$)};
|
|
37
42
|
exports.getRightDataView=function($id_app$$,$model$$,$email$$,$next$$){exports.isAdmin($id_app$$,$email$$,function($condition$jscomp$1_e$$,$admin$$){if($condition$jscomp$1_e$$)return $next$$($condition$jscomp$1_e$$);$condition$jscomp$1_e$$={};if(!$admin$$&&!0===underscore.has($model$$.schema.paths,"dataview_to_users")){$condition$jscomp$1_e$$.$and||($condition$jscomp$1_e$$.$and=[]);let $dataview$$=[{dataview_to:null}];$dataview$$.push({dataview_to:0});$dataview$$.push({dataview_to:1,user_created:$email$$});
|
|
38
43
|
$dataview$$.push({dataview_to:2,dataview_to_users:$email$$});$condition$jscomp$1_e$$.$and.push({$or:$dataview$$})}$next$$(null,$condition$jscomp$1_e$$,$admin$$)})};
|
|
39
44
|
exports.getFieldNotRight=async($_fields_id_app$$,$_p_email$jscomp$5_group_id$$,$ma_ct$$)=>{if(!$_fields_id_app$$)return[];$_p_email$jscomp$5_group_id$$=await Participant.ofApp($_fields_id_app$$,$_p_email$jscomp$5_group_id$$);if(0<$_p_email$jscomp$5_group_id$$.length){$_p_email$jscomp$5_group_id$$=$_p_email$jscomp$5_group_id$$[0].group_id;let $field_not_right$$;try{$field_not_right$$=await right.getInfo($_fields_id_app$$,{email:$_p_email$jscomp$5_group_id$$,module:$ma_ct$$.toLowerCase()},"field_not_right")}catch($e$$){return[]}$_fields_id_app$$=
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
'use strict';const SocaiModel=global.getModel("socai"),dmtk=global.getModel("account"),async=require("async"),cktk=require("./cktk"),ckcn=require("./ckcn"),moment=require("moment"),numeral=require("numeral"),asyncCkcn=async $condition$$=>new Promise(($resolve$$,$reject$$)=>{ckcn($condition$$,($du_e$$,$rs$$)=>{if($du_e$$)return $reject$$($du_e$$);$du_e$$=$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$resolve$$($du_e$$)})}),asyncCheckHMCN=async($hmcnct_id_app$$,$obj$$,
|
|
2
|
-
$tk$$,$ma_kh$$,$tien$$)=>{var $acc_hm$$=await dmtk.findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,loai_tk:1}).lean();if(!$acc_hm$$)throw"Kh\u00f4ng t\u1ed3n t\u1ea1i t\u00e0i kho\u1ea3n "+$tk$$;if($acc_hm$$.tk_cn&&($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh
|
|
3
|
-
$tien$$>$acc_hm$$.
|
|
2
|
+
$tk$$,$ma_kh$$,$tien$$)=>{var $acc_hm$$=await dmtk.findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,loai_tk:1}).lean();if(!$acc_hm$$)throw"Kh\u00f4ng t\u1ed3n t\u1ea1i t\u00e0i kho\u1ea3n "+$tk$$;if($acc_hm$$.tk_cn&&(($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,status:!0}).lean())||($acc_hm$$=await global.getModel("hmcn").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,status:!0,ma_kh:{$in:[null,""]}}).lean()),$acc_hm$$)){let $du_ck$$=await asyncCkcn({id_app:$hmcnct_id_app$$,
|
|
3
|
+
tk:$tk$$,ma_kh:$ma_kh$$,bu_tru:!0,ngay:moment($obj$$.ngay_ct).endOf("year").toDate()});if(0>$tien$$)if(0==$acc_hm$$.hm_co){if(0-$du_ck$$>$acc_hm$$.hm_co)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_co).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;}else{if(0-$du_ck$$+$tien$$>$acc_hm$$.hm_co)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_co).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;
|
|
4
|
+
}else if(0==$acc_hm$$.hm_no){if($du_ck$$>$acc_hm$$.hm_no)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_no).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;}else if($du_ck$$+$tien$$>$acc_hm$$.hm_no)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm$$.hm_no).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck$$).format()} VND, ph\u00e1t sinh ${numeral(Math.abs($tien$$)).format()} VND`;
|
|
4
5
|
$hmcnct_id_app$$=await global.getModel("hmcnct").findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,id_ct:$obj$$._id.toString()}).lean();$hmcnct_id_app$$||($hmcnct_id_app$$={...$acc_hm$$},$hmcnct_id_app$$.id_ct=$obj$$._id.toString(),delete $hmcnct_id_app$$._id,await global.getModel("hmcnct").create($hmcnct_id_app$$))}},checkAcc=function($id_app$$,$data$$,$tk$$,$ma_kh$$,$callback$$){dmtk.findOne({id_app:$id_app$$,tk:$tk$$,loai_tk:1}).lean().exec(async($e$$,$acc$$)=>{if($e$$||!$acc$$)return $callback$$($e$$||
|
|
5
6
|
`T\u00e0i kho\u1ea3n ${$tk$$} kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c kh\u00f4ng ph\u1ea3i l\u00e0 t\u00e0i kho\u1ea3n chi ti\u1ebft.`);if($acc$$.tk_cn&&!$ma_kh$$)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kh\u00e1ch h\u00e0ng`);if($acc$$.tk_cp_yn&&!$data$$.ma_phi)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp doanh thu/chi ph\u00ed`);if($acc$$.tk_kho_yn&&!$data$$.ma_kho)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kho/c\u1eeda h\u00e0ng`);
|
|
6
7
|
if($acc$$.tk_bp_yn&&!$data$$.ma_bp)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp b\u1ed9 ph\u1eadn`);if($acc$$.tk_dt_yn&&!$data$$.ma_dt)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp v\u1ee5 vi\u1ec7c, d\u1ef1 \u00e1n`);if($acc$$.tk_hd_yn&&!$data$$.ma_hd)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp h\u1ee3p \u0111\u1ed3ng`);if($acc$$.tk_nv_yn&&!$data$$.ma_nv)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp nh\u00e2n vi\u00ean`);
|
|
7
8
|
if($acc$$.tk_td1_yn&&!$data$$.ma_td1)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td1`);if($acc$$.tk_td2_yn&&!$data$$.ma_td2)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td2`);if($acc$$.tk_td3_yn&&!$data$$.ma_td3)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td3`);$callback$$(null,$acc$$)})},checkData=function($id_app$$,$ngay_ct$$,$_data$$,$callback$jscomp$0$$){async.series({tk_no:$callback$$=>
|
|
8
|
-
{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$
|
|
9
|
-
$callback$$()}):$callback$$()})},tk_co:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_co,$_data$$.ma_kh_co,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_co_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_co,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_co$jscomp$
|
|
10
|
-
0<$du_co$jscomp$
|
|
9
|
+
{checkAcc($id_app$$,$_data$$,$_data$$.tk_no,$_data$$.ma_kh_no,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_no_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_no,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_no$jscomp$2_e$$,$rs$$)=>{if($du_no$jscomp$2_e$$)return $callback$$($du_no$jscomp$2_e$$);$du_no$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;0<$du_no$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_no} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean n\u1ee3 : ${$du_no$jscomp$2_e$$}`):
|
|
10
|
+
$callback$$()}):$callback$$()})},tk_co:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_co,$_data$$.ma_kh_co,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_co_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_co,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("year").toDate()},($du_co$jscomp$2_e$$,$rs$$)=>{if($du_co$jscomp$2_e$$)return $callback$$($du_co$jscomp$2_e$$);$du_co$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_co00-$r$$.du_no00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;
|
|
11
|
+
0<$du_co$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_co} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean c\u00f3: ${$du_co$jscomp$2_e$$}`):$callback$$()}):$callback$$()})}},$e$$=>{$callback$jscomp$0$$($e$$,$_data$$)})},post=function($master$$,$details$$,$prepare$$,$model$$=SocaiModel){$details$$&&(this.master={...$master$$},this.details=$details$$.map($detail$$=>({...$detail$$})),this.model=$model$$,this.prepare=$prepare$$)};
|
|
11
12
|
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,
|
|
12
13
|
$detail$$)})})},($e$$,$details$$)=>{$resolve$$($details$$)}):$resolve$$($details$jscomp$0$$)})};
|
|
13
14
|
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$$=>
|
|
@@ -8,7 +8,7 @@ $detail$$)};$callback$$(null,$detail$$)})})},($e$$,$details$$)=>{$resolve$$($det
|
|
|
8
8
|
post.prototype.remove=function($callback$jscomp$0$$=()=>{}){let $master$$=this.master;$master$$&&$master$$.toObject&&($master$$=$master$$.toObject());if(!$master$$._id)return $callback$jscomp$0$$();let $model_book$$=this.model_book;async.series({sks:$callback$$=>{setImmediate(()=>{"sokho"===$model_book$$.modelName.toLowerCase()?global.getModel("sokho").find({id_ct:$master$$._id.toString()}).lean().exec(function($e$$,$sks$$){if($e$$)return $callback$$($e$$);$callback$$(null,$sks$$)}):$callback$$(null,
|
|
9
9
|
[])})}},($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$model_book$$.deleteMany({id_ct:$master$$._id.toString()},function($error$$){if($error$$)return $callback$jscomp$0$$($error$$);0<$rs$$.sks.length?tontucthoi.tinhTonTucThoi($rs$$.sks,($e$$,$rs$$)=>{$callback$jscomp$0$$($e$$,$rs$$)}):$callback$jscomp$0$$($error$$)})})};
|
|
10
10
|
post.prototype.run=async function($callback$jscomp$0$$=()=>{}){if(!this.details)return console.error("details not exists"),$callback$jscomp$0$$(null);if(!this.master||!this.master._id)return console.error("masters not exists",this.master),$callback$jscomp$0$$(null);let $master$$=this.master;$master$$.toObject&&($master$$=$master$$.toObject());let $details$$=await this.runPrepare(this.prepare,this.details),$model_book$$=this.model_book;await $details$$.asyncJoinModel2($master$$.id_app,Dmvt,{where:"ma_vt",
|
|
11
|
-
setFields:($item$$,$ref$$)=>{$item$$.tk_vt||($item$$.tk_vt=$ref$$.tk_vt);$item$$.tk_gv||($item$$.
|
|
11
|
+
setFields:($item$$,$ref$$)=>{$item$$.tk_vt||($item$$.tk_vt=$ref$$.tk_vt);$item$$.tk_gv||($item$$.tk_gv=$ref$$.tk_gv);$item$$.tg_tk=$ref$$.tg_tk;$item$$.xk_nvl=$ref$$.xk_nvl}});var $ps_kg_dm_sp_co_dm_sp_xk_nvl$$=$details$$.filter($p$$=>$p$$.xk_nvl&&2==$p$$.nxt);for(var $i$jscomp$1_i$$=0;$i$jscomp$1_i$$<$ps_kg_dm_sp_co_dm_sp_xk_nvl$$.length;$i$jscomp$1_i$$++)$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].dinh_muc_nvl=await dinhmucsx($master$$.id_app,$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].ma_vt,
|
|
12
12
|
$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].ma_tt1,$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].sl_xuat,$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].ma_dvt);if("sokhokhongton"===$model_book$$.modelName.toLowerCase())$details$$=$details$$.filter($d$$=>0==$d$$.tg_tk);else{$details$$=$details$$.filter($d$$=>$d$$.tg_tk||$d$$.dinh_muc_nvl&&0<$d$$.dinh_muc_nvl.length);$ps_kg_dm_sp_co_dm_sp_xk_nvl$$=$details$$.filter($p$$=>$p$$.xk_nvl&&$p$$.dinh_muc_nvl&&0<$p$$.dinh_muc_nvl.length);for($i$jscomp$1_i$$=
|
|
13
13
|
0;$i$jscomp$1_i$$<$ps_kg_dm_sp_co_dm_sp_xk_nvl$$.length;$i$jscomp$1_i$$++){const $p$jscomp$0$$=$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$];let $he_so_qd$$=1,$qd$$=await global.getModel("dmqddvt").findOne({id_app:$master$$.id_app,ma_vt:$p$jscomp$0$$.ma_vt,ma_dvt:$p$jscomp$0$$.ma_dvt}).lean();$qd$$&&($he_so_qd$$=$qd$$.mau?$qd$$.tu/$qd$$.mau:$qd$$.ty_le_qd);let $sl_sp$$=$p$jscomp$0$$.sl_xuat*$he_so_qd$$;$p$jscomp$0$$.dinh_muc_nvl=$p$jscomp$0$$.dinh_muc_nvl.map($d$$=>{$d$$.nxt=$p$jscomp$0$$.nxt;$d$$.ma_sp=
|
|
14
14
|
$p$jscomp$0$$.ma_vt;$d$$.sl_sp=$sl_sp$$;$d$$.ma_tt1_sp=$p$jscomp$0$$.ma_tt1;$d$$.ma_tt2_sp=$p$jscomp$0$$.ma_tt2;$d$$.ma_tt3_sp=$p$jscomp$0$$.ma_tt3;$d$$.ma_kho=$p$jscomp$0$$.ma_kho;return $d$$});$p$jscomp$0$$.dinh_muc_nvl=$p$jscomp$0$$.dinh_muc_nvl.filter($p$$=>$p$$.tg_tk)}$ps_kg_dm_sp_co_dm_sp_xk_nvl$$=$details$$.filter($p$$=>!$p$$.xk_nvl||!$p$$.dinh_muc_nvl||0===$p$$.dinh_muc_nvl.length);$i$jscomp$1_i$$=$details$$.filter($p$$=>$p$$.xk_nvl&&$p$$.dinh_muc_nvl&&0<$p$$.dinh_muc_nvl.length).map($p$$=>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
'use strict';const tdttno=global.getModel("tdttno"),tdttno_tt=global.getModel("tdttno_tt"),async=require("async"),moment=require("moment");
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
$results$
|
|
6
|
-
$
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
$t_invoice$$.so_ngay_qua_han
|
|
10
|
-
module.exports=($condition$$,$callback$$)=>{if(!$callback$$)return func($condition$$);func($condition$$).then($rs$$=>{$callback$$(null,$rs$$)}).catch($e$$=>{$callback$$($e$$)})};
|
|
1
|
+
'use strict';const tdttno=global.getModel("tdttno"),tdttno_tt=global.getModel("tdttno_tt"),async=require("async"),moment=require("moment"),func=async $condition$$=>{let $objs$$=await tdttno.find({id_app:$condition$$.id_app,ngay_tt:{$exists:!1}});for(let $obj$$ of $objs$$)console.log("update ngay_tt",$obj$$.ngay_hd),$obj$$.ngay_tt=moment($obj$$.ngay_hd).add($obj$$.han_tt||0,"days").toDate(),await $obj$$.save();await tdttno.updateMany({id_app:$condition$$.id_app,ngay_tt:{$exists:!1}},{date_updated:new Date});
|
|
2
|
+
return new Promise(($resolve$$,$reject$$)=>{if(!$condition$$.id_app)return $reject$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: id_app");$condition$$.den_ngay||($condition$$.den_ngay=moment().endOf("date").toDate());$condition$$.tuoi_no&&($condition$$.tuoi_no=Number($condition$$.tuoi_no),0<$condition$$.tuoi_no&&($condition$$.tuoi_no_min=$condition$$.tuoi_no));let $ngay_tt_min$$,$ngay_tt_max$$;$condition$$.tuoi_no_min&&($ngay_tt_min$$=moment().add($condition$$.tuoi_no_min,"days").toDate());
|
|
3
|
+
$condition$$.tuoi_no_max&&($ngay_tt_max$$=moment().add($condition$$.tuoi_no_max,"days").toDate());async.series({invoices:function($callback$$){setImmediate(async()=>{const $query$$={id_app:$condition$$.id_app};$query$$.ngay_ct={$lte:$condition$$.den_ngay};$condition$$.tu_ngay&&($query$$.ngay_ct.$gte=$condition$$.tu_ngay);$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){let $_q$$={};$condition$$.nh_kh&&($_q$$.nh_kh=
|
|
4
|
+
$condition$$.nh_kh);$condition$$.phu_trach&&($_q$$.phu_trach=$condition$$.phu_trach);$condition$$.ma_kh=await global.getModel("customer").getList($condition$$.id_app,$_q$$,"ma_kh")}$condition$$.ma_kh&&($query$$.ma_kh=$condition$$.ma_kh);$condition$$.so_ct&&($query$$.so_ct=$condition$$.so_ct);$condition$$.so_hd&&($query$$.so_hd=$condition$$.so_hd);void 0!==$condition$$.tat_toan&&($query$$.tat_toan=$condition$$.tat_toan);$ngay_tt_min$$&&($query$$.ngay_tt={$gte:$ngay_tt_min$$});$ngay_tt_max$$&&($query$$.ngay_tt?
|
|
5
|
+
$query$$.ngay_tt.$lte=$ngay_tt_max$$:$query$$.ngay_tt={$lte:$ngay_tt_max$$});tdttno.find($query$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},($error$jscomp$2_invoices$$,$now_results$$)=>{if($error$jscomp$2_invoices$$)return $reject$$($error$jscomp$2_invoices$$);$error$jscomp$2_invoices$$=
|
|
6
|
+
$now_results$$.invoices;let $report$$=[];$now_results$$=new Date;$now_results$$.setHours(0);$now_results$$.setMinutes(0);$now_results$$.setSeconds(0);$now_results$$.setMilliseconds(0);async.map($error$jscomp$2_invoices$$,function($invoice$$,$callback$$){setImmediate(()=>{const $t_invoice$$={sysorder:1,bold:!1,tat_toan:$invoice$$.tat_toan,id_ct:$invoice$$.id_ct,ma_ct:$invoice$$.ma_ct,id_hd:$invoice$$.id_ct,so_ct:$invoice$$.so_ct,ngay_ct:$invoice$$.ngay_ct,so_hd:$invoice$$.so_hd,ngay_hd:$invoice$$.ngay_hd,
|
|
7
|
+
tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.ma_dt=$invoice$$.ma_dt;$t_invoice$$.ma_nv=$invoice$$.ma_nv;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.con_lai_nt=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_co=$invoice$$.tk_no;$t_invoice$$.han_tt=$invoice$$.han_tt?$invoice$$.han_tt:0;$report$$.push($t_invoice$$);
|
|
8
|
+
tdttno_tt.find({id_tdtt:$invoice$$._id}).sort({ngay_ct:1}).lean().exec(function($error$$,$results$$){let $da_thanh_toan_nt$$=0;$results$$.forEach(function($invoice_tt$$){$da_thanh_toan_nt$$+=$invoice_tt$$.thanh_toan_qd});$t_invoice$$.da_thanh_toan_nt=$da_thanh_toan_nt$$;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_hd_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.tat_toan&&($t_invoice$$.con_lai_nt=0);0!==$t_invoice$$.con_lai_nt?($t_invoice$$.tuoi_no=moment().diff(moment($t_invoice$$.ngay_hd),"days"),
|
|
9
|
+
$t_invoice$$.so_ngay_trong_han=Math.max(0,$t_invoice$$.han_tt-$t_invoice$$.tuoi_no),$t_invoice$$.so_ngay_qua_han=Math.max(0,$t_invoice$$.tuoi_no-$t_invoice$$.han_tt),0<$t_invoice$$.so_ngay_qua_han&&30>=$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han1=$t_invoice$$.con_lai_nt),30<$t_invoice$$.so_ngay_qua_han&&60>=$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han2=$t_invoice$$.con_lai_nt),60<$t_invoice$$.so_ngay_qua_han&&90>=$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han3=$t_invoice$$.con_lai_nt),
|
|
10
|
+
90<$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han4=$t_invoice$$.con_lai_nt)):($t_invoice$$.tuoi_no=0,$t_invoice$$.so_ngay_trong_han=0,$t_invoice$$.so_ngay_qua_han=0);$callback$$(null,$t_invoice$$)})})},$error$$=>{if($error$$)return $reject$$($error$$);$report$$=$report$$.filter($r$$=>0<$r$$.tien_hd_nt);$resolve$$($report$$)})})})};module.exports=($condition$$,$callback$$)=>{if(!$callback$$)return func($condition$$);func($condition$$).then($rs$$=>{$callback$$(null,$rs$$)}).catch($e$$=>{$callback$$($e$$)})};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
'use strict';const async=require("async"),tdttco=global.getModel("tdttco"),tdttco_tt=global.getModel("tdttco_tt"),moment=require("moment"),func=
|
|
2
|
-
$
|
|
3
|
-
$condition$$.
|
|
4
|
-
$
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
$
|
|
1
|
+
'use strict';const async=require("async"),tdttco=global.getModel("tdttco"),tdttco_tt=global.getModel("tdttco_tt"),moment=require("moment"),func=async $condition$$=>{let $objs$$=await tdttco.find({id_app:$condition$$.id_app,ngay_tt:{$exists:!1}});for(let $obj$$ of $objs$$)console.log("update ngay_tt",$obj$$.ngay_hd),$obj$$.ngay_tt=moment($obj$$.ngay_hd).add($obj$$.han_tt||0,"days").toDate(),await $obj$$.save();return new Promise(($resolve$$,$reject$$)=>{if(!$condition$$.id_app)return $reject$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: id_app");
|
|
2
|
+
$condition$$.den_ngay||($condition$$.den_ngay=moment().endOf("date").toDate());$condition$$.tuoi_no&&($condition$$.tuoi_no=Number($condition$$.tuoi_no),0<$condition$$.tuoi_no&&($condition$$.tuoi_no_min=$condition$$.tuoi_no));let $ngay_tt_min$$,$ngay_tt_max$$;$condition$$.tuoi_no_min&&($ngay_tt_min$$=moment().add($condition$$.tuoi_no_min,"days").toDate());$condition$$.tuoi_no_max&&($ngay_tt_max$$=moment().add($condition$$.tuoi_no_max,"days").toDate());async.series({invoices:function($callback$$){setImmediate(async()=>
|
|
3
|
+
{const $query$$={id_app:$condition$$.id_app};$query$$.ngay_ct={$lte:$condition$$.den_ngay};$condition$$.tu_ngay&&($query$$.ngay_ct.$gte=$condition$$.tu_ngay);$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);if(!$condition$$.ma_kh&&($condition$$.nh_kh||$condition$$.phu_trach)){let $_q$$={};$condition$$.nh_kh&&($_q$$.nh_kh=$condition$$.nh_kh);$condition$$.phu_trach&&($_q$$.phu_trach=$condition$$.phu_trach);$condition$$.ma_kh=await global.getModel("customer").getList($condition$$.id_app,
|
|
4
|
+
$_q$$,"ma_kh")}$condition$$.ma_kh&&($query$$.ma_kh=$condition$$.ma_kh);$condition$$.so_ct&&($query$$.so_ct=$condition$$.so_ct);$condition$$.so_hd&&($query$$.so_hd=$condition$$.so_hd);void 0!==$condition$$.tat_toan&&($query$$.tat_toan=$condition$$.tat_toan);$ngay_tt_min$$&&($query$$.ngay_tt={$gte:$ngay_tt_min$$});$ngay_tt_max$$&&($query$$.ngay_tt?$query$$.ngay_tt.$lte=$ngay_tt_max$$:$query$$.ngay_tt={$lte:$ngay_tt_max$$});tdttco.find($query$$).lean().exec(function($error$$,$results$$){if($error$$)return $callback$$($error$$);
|
|
5
|
+
$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){var $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},($error$jscomp$2_invoices$$,$now_results$$)=>{if($error$jscomp$2_invoices$$)return $reject$$($error$jscomp$2_invoices$$);$error$jscomp$2_invoices$$=$now_results$$.invoices;let $report$$=[];$now_results$$=new Date;$now_results$$.setHours(0);$now_results$$.setMinutes(0);$now_results$$.setSeconds(0);$now_results$$.setMilliseconds(0);
|
|
6
|
+
async.map($error$jscomp$2_invoices$$,function($invoice$$,$callback$$){const $t_invoice$$={sysorder:1,bold:!1,tat_toan:$invoice$$.tat_toan,id_ct:$invoice$$.id_ct,ma_ct:$invoice$$.ma_ct,id_hd:$invoice$$.id_ct,so_ct:$invoice$$.so_ct,ngay_ct:$invoice$$.ngay_ct,so_hd:$invoice$$.so_hd,ngay_hd:$invoice$$.ngay_hd,tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.ma_dt=$invoice$$.ma_dt;$t_invoice$$.ma_nv=
|
|
7
|
+
$invoice$$.ma_nv;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.con_lai_nt=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_co=$invoice$$.tk_no;$t_invoice$$.han_tt=$invoice$$.han_tt?$invoice$$.han_tt:0;$report$$.push($t_invoice$$);tdttco_tt.find({id_tdtt:$invoice$$._id}).sort({ngay_ct:1}).lean().exec(function($error$$,$results$$){let $da_thanh_toan_nt$$=0;$results$$.forEach(function($invoice_tt$$){$da_thanh_toan_nt$$+=
|
|
8
|
+
$invoice_tt$$.thanh_toan_qd});$t_invoice$$.da_thanh_toan_nt=$da_thanh_toan_nt$$;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_hd_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.tat_toan&&($t_invoice$$.con_lai_nt=0);0!==$t_invoice$$.con_lai_nt?($t_invoice$$.tuoi_no=moment().diff(moment($t_invoice$$.ngay_hd),"days"),$t_invoice$$.so_ngay_trong_han=Math.max(0,$t_invoice$$.han_tt-$t_invoice$$.tuoi_no),$t_invoice$$.so_ngay_qua_han=Math.max(0,$t_invoice$$.tuoi_no-$t_invoice$$.han_tt),0<$t_invoice$$.so_ngay_qua_han&&
|
|
9
|
+
30>=$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han1=$t_invoice$$.con_lai_nt),30<$t_invoice$$.so_ngay_qua_han&&60>=$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han2=$t_invoice$$.con_lai_nt),60<$t_invoice$$.so_ngay_qua_han&&90>=$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han3=$t_invoice$$.con_lai_nt),90<$t_invoice$$.so_ngay_qua_han&&($t_invoice$$.qua_han4=$t_invoice$$.con_lai_nt)):($t_invoice$$.tuoi_no=0,$t_invoice$$.so_ngay_trong_han=0,$t_invoice$$.so_ngay_qua_han=0);$callback$$(null,$t_invoice$$)})},
|
|
10
|
+
$error$$=>{if($error$$)return $reject$$($error$$);$report$$=$report$$.filter($r$$=>0<$r$$.tien_hd_nt);$condition$$.tuoi_no&&($report$$=$report$$.filter($r$$=>$r$$.tuoi_no>=$condition$$.tuoi_no));$condition$$.tuoi_no_min&&($report$$=$report$$.filter($r$$=>$r$$.tuoi_no>=$condition$$.tuoi_no_min));$condition$$.tuoi_no_max&&($report$$=$report$$.filter($r$$=>$r$$.tuoi_no<=$condition$$.tuoi_no_max));$resolve$$($report$$)})})})};
|
|
11
|
+
module.exports=($condition$$,$callback$$)=>{if(!$callback$$)return func($condition$$);func($condition$$).then($rs$$=>{$callback$$(null,$rs$$)}).catch($e$$=>{$callback$$($e$$)})};
|
package/server/libs/utils.js
CHANGED
|
@@ -38,8 +38,32 @@ $model_name$jscomp$2_rs$$.forEach($r$$=>{delete $r$$.mnemonic;delete $r$$.privat
|
|
|
38
38
|
!$app$jscomp$1_data$$.viettel_password)throw"Ch\u01b0a khai b\u00e1o th\u00f4ng tin k\u1ebft n\u1ed1i viettel invoice";if(!$app$jscomp$1_data$$.ma_so_thue)throw"Ch\u01b0a khai b\u00e1o m\u00e3 s\u1ed1 thu\u1ebf c\u00f4ng ty";var $auth_url$$={username:$app$jscomp$1_data$$.viettel_user.trim(),password:$app$jscomp$1_data$$.viettel_password.trim()};try{var $headers_viettel_token$$=(await axios({method:"post",url:`${$app$jscomp$1_data$$.viettel_url_service.trim()}/auth/login`,data:$auth_url$$})).data.access_token}catch($e$$){throw console.error("error when get token viettel"),
|
|
39
39
|
"Th\u00f4ng tin truy c\u1eadp Viettel invoice kh\u00f4ng \u0111\u00fang";}$auth_url$$=`${$app$jscomp$1_data$$.viettel_url_service.trim()}/services/einvoiceapplication/api/InvoiceAPI/InvoiceWS/searchInvoiceByTransactionUuid`;$headers_viettel_token$$={Cookie:`"access_token":"${$headers_viettel_token$$}"; access_token=${$headers_viettel_token$$}; session_token=${$headers_viettel_token$$}`,"Content-Type":"application/x-www-form-urlencoded"};$app$jscomp$1_data$$={supplierTaxCode:$app$jscomp$1_data$$.ma_so_thue,
|
|
40
40
|
transactionUuid:$transactionUuid$$};try{let $rs$$=await axios.post($auth_url$$,querystring.stringify($app$jscomp$1_data$$),{headers:$headers_viettel_token$$});console.log("invoice info",$rs$$.data);let $invoice$$=$rs$$.data;$invoice$$.result&&1==$invoice$$.result.length&&($invoice$$.result=$invoice$$.result[0]);return $invoice$$}catch($e$$){if("NOT_FOUND_DATA"===(($e$$.response||{}).data||{}).message)return null;console.error("error get invoice",($e$$.response||{}).data,", data:",$app$jscomp$1_data$$);
|
|
41
|
-
throw(($e$$.response||{}).data||{}).data||"Kh\u00f4ng th\u1ec3 l\u1ea5y th\u00f4ng tin ho\u00e1 \u0111\u01a1n n\u00e0y c\u1ee7a transactionUuid "+$transactionUuid$$;}},
|
|
42
|
-
|
|
43
|
-
$
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
throw(($e$$.response||{}).data||{}).data||"Kh\u00f4ng th\u1ec3 l\u1ea5y th\u00f4ng tin ho\u00e1 \u0111\u01a1n n\u00e0y c\u1ee7a transactionUuid "+$transactionUuid$$;}},xml2js=require("xml2js"),xml2json=$string$$=>new Promise(($res$$,$rej$$)=>{xml2js.parseString($string$$,($e$$,$rs$$)=>{if($e$$)return $rej$$($e$$);$res$$($rs$$)})}),base64toJSON=$b$$=>{$b$$=Buffer.from($b$$,"base64");return xml2json($b$$.toString("utf8"))},getInvoices=async($app$jscomp$2_str$$,$condition$jscomp$6_data$$={})=>{if(!$app$jscomp$2_str$$)throw"Thi\u1ebfu th\u00f4ng tin c\u00f4ng ty";
|
|
42
|
+
if(!$app$jscomp$2_str$$.vnpt_url_service||!$app$jscomp$2_str$$.vnpt_user||!$app$jscomp$2_str$$.vnpt_password)throw"Ch\u01b0a khai b\u00e1o th\u00f4ng tin k\u1ebft n\u1ed1i VNPT invoice";if(!$app$jscomp$2_str$$.ma_so_thue)throw"Ch\u01b0a khai b\u00e1o m\u00e3 s\u1ed1 thu\u1ebf c\u00f4ng ty";if(!$app$jscomp$2_str$$.ky_hieu_hoa_don)throw"Ch\u01b0a khai b\u00e1o m\u1eabu ho\u00e1 \u0111\u01a1n";if(!$app$jscomp$2_str$$.so_serial)throw"Ch\u01b0a khai b\u00e1o k\u00ed hi\u1ec7u ho\u00e1 \u0111\u01a1n";if(!$condition$jscomp$6_data$$.tu_ngay)throw"\u0110i\u1ec1u ki\u1ec7n thi\u1ebfu t\u1eeb ng\u00e0y (tu_ngay)";
|
|
43
|
+
if(!$condition$jscomp$6_data$$.den_ngay)throw"\u0110i\u1ec1u ki\u1ec7n thi\u1ebfu t\u1eeb ng\u00e0y (den_ngay)";const $ERRORS$$={"ERR:1":"T\u00e0i kho\u1ea3n \u0111\u0103ng nh\u1eadp sai ho\u1eb7c kh\u00f4ng c\u00f3 quy\u1ec1n ServiceRole","ERR:2":"Kh\u00f4ng t\u00ecm th\u1ea5y h\u00f3a \u0111\u01a1n","ERR:3":"Sai \u0111\u1ecbnh d\u1ea1ng ng\u00e0y th\u00e1ng","ERR:4":"Kh\u00f4ng l\u1ea5y \u0111\u01b0\u1ee3c b\u1ea3ng h\u00f3a \u0111\u01a1n (sai m\u1eabu s\u1ed1)","ERR:6":"V\u01b0\u1ee3t qu\u00e1 gi\u1edbi h\u1ea1n s\u1ed1 l\u01b0\u1ee3ng h\u00f3a \u0111\u01a1n \u0111\u01b0\u1ee3c ph\u00e9p l\u1ea5y (500 h\u00f3a \u0111\u01a1n)",
|
|
44
|
+
"ERR:5":"C\u00f3 l\u1ed7i x\u1ea3y ra","ERR:7":"V\u01b0\u1ee3t qu\u00e1 gi\u1edbi h\u1ea1n 7 ng\u00e0y"};$condition$jscomp$6_data$$=`<?xml version="1.0" encoding="utf-8"?>
|
|
45
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
|
46
|
+
<soap:Body>
|
|
47
|
+
<GetInvViewByDate xmlns="http://tempuri.org/">
|
|
48
|
+
<userName>${$app$jscomp$2_str$$.vnpt_user}</userName>
|
|
49
|
+
<userPass>${$app$jscomp$2_str$$.vnpt_password}</userPass>
|
|
50
|
+
<pattern>${$app$jscomp$2_str$$.ky_hieu_hoa_don}</pattern>
|
|
51
|
+
<serial>${$app$jscomp$2_str$$.so_serial}</serial>
|
|
52
|
+
<fromDate>${moment($condition$jscomp$6_data$$.tu_ngay).format("DD/MM/YYYY")}</fromDate>
|
|
53
|
+
<toDate>${moment($condition$jscomp$6_data$$.den_ngay).format("DD/MM/YYYY")}</toDate>
|
|
54
|
+
</GetInvViewByDate>
|
|
55
|
+
</soap:Body>
|
|
56
|
+
</soap:Envelope>`;$app$jscomp$2_str$$=(await axios.request({method:"post",maxBodyLength:Infinity,url:$app$jscomp$2_str$$.vnpt_url_service,headers:{SOAPAction:"http://tempuri.org/GetInvViewByDate","Content-Type":"text/xml; charset=utf-8"},data:$condition$jscomp$6_data$$})).data;let $rs$jscomp$0$$=await xml2json($app$jscomp$2_str$$);return new Promise(($resolve$$,$reject$$)=>{try{let $GetInvViewByDateResult$$=($rs$jscomp$0$$["soap:Envelope"]||{})["soap:Body"][0].GetInvViewByDateResponse[0].GetInvViewByDateResult;
|
|
57
|
+
if(0<=$GetInvViewByDateResult$$.length&&0<=$GetInvViewByDateResult$$[0].indexOf("ERR:"))return $reject$$($ERRORS$$[$GetInvViewByDateResult$$[0]]);async.map($GetInvViewByDateResult$$,($d$jscomp$0$$,$cb$$)=>{setImmediate(async()=>{try{var $bufferObj$jscomp$1_rs$$=Buffer.from($d$jscomp$0$$,"base64"),$hinh_thuc_tt_invs$$=(await xml2json($bufferObj$jscomp$1_rs$$.toString("utf8"))).DSHDon.HDon;$bufferObj$jscomp$1_rs$$=[];for(let $inv$$ of $hinh_thuc_tt_invs$$){let $dl$$=$inv$$.DLieu[0];$dl$$=(await base64toJSON($dl$$)).HDon.DLHDon[0];
|
|
58
|
+
$dl$$.Fkey=$inv$$.Fkey[0];$dl$$.TTChung=$dl$$.TTChung[0];$dl$$.NDHDon=$dl$$.NDHDon[0];$dl$$.NDHDon.NBan=$dl$$.NDHDon.NBan[0];$dl$$.NDHDon.NMua=$dl$$.NDHDon.NMua[0];$dl$$.NDHDon.TToan=$dl$$.NDHDon.TToan[0];delete $dl$$.$;$hinh_thuc_tt_invs$$="";$dl$$.TTChung.TTKhac&&0<$dl$$.TTChung.TTKhac.length&&$dl$$.TTChung.TTKhac[0].TTin&&0<$dl$$.TTChung.TTKhac[0].TTin.length&&"HTTToan"==$dl$$.TTChung.TTKhac[0].TTin[0].TTruong[0]&&($hinh_thuc_tt_invs$$=$dl$$.TTChung.TTKhac[0].TTin[0].DLieu[0]);let $fdata$$={id_invoice:$inv$$.Fkey[0],
|
|
59
|
+
so_ct:$dl$$.TTChung.SHDon[0],ngay_ct:new Date($dl$$.TTChung.NLap[0]),so_hd:$dl$$.TTChung.SHDon[0],ngay_hd:new Date($dl$$.TTChung.NLap[0]),ky_hieu_hoa_don:$dl$$.TTChung.KHMSHDon[0],so_serial:$dl$$.TTChung.KHHDon[0],hinh_thuc_tt:$hinh_thuc_tt_invs$$,ma_nt:"VND",ty_gia:1,ten_kh:$dl$$.NDHDon.NMua.Ten[0],ma_so_thue:$dl$$.NDHDon.NMua.MST?$dl$$.NDHDon.NMua.MST[0]:void 0,dia_chi:$dl$$.NDHDon.NMua.DChi?$dl$$.NDHDon.NMua.DChi[0]:void 0,dien_thoai:$dl$$.NDHDon.NMua.SDThoai?$dl$$.NDHDon.NMua.SDThoai[0]:void 0,
|
|
60
|
+
details:[]};for(let $dv$$ of $dl$$.NDHDon.DSHHDVu)for(let $hd$$ of $dv$$.HHDVu){let $detail$$={ma_tc:$hd$$.TChat[0],ma_vt:$hd$$.MHHDVu[0],ten_vt:$hd$$.THHDVu[0],ma_dvt:$hd$$.DVTinh[0]||"",sl_xuat:Number($hd$$.SLuong[0]||0),gia_ban_ct:Number($hd$$.DGia[0]||0),gia_ban_ct_nt:Number($hd$$.DGia[0]||0),ty_le_ck:Number($hd$$.TLCKhau[0]||0),tien_ck:Number($hd$$.STCKhau[0]||0),tien_ck_nt:Number($hd$$.STCKhau[0]||0),ma_thue:($hd$$.TSuat[0]||"").replace("%","")};$detail$$.tien_ct=$detail$$.tien_ct_nt=Number($hd$$.ThTien[0]||
|
|
61
|
+
0);$detail$$.thue_suat=Number($detail$$.ma_thue||0);$detail$$.tien_thue_nt=$detail$$.tien_thue=Math.round($detail$$.thue_suat*$detail$$.tien_ct_nt/100);$detail$$.tien=$detail$$.tien_nt=$detail$$.tien_ct_nt-$detail$$.tien_ck_nt+$detail$$.tien_thue_nt;$fdata$$.details.push($detail$$)}$fdata$$.t_tien_nt=$fdata$$.t_tien=$fdata$$.details.map($d$$=>$d$$.tien_ct_nt).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$fdata$$.t_thue_nt=$fdata$$.t_thue=$fdata$$.details.map($d$$=>$d$$.tien_thue_nt).reduce(($a$$,$b$$)=>$a$$+
|
|
62
|
+
$b$$,0);$bufferObj$jscomp$1_rs$$.push($fdata$$)}$cb$$(null,$bufferObj$jscomp$1_rs$$)}catch($e$$){$cb$$($e$$)}})},($e$jscomp$15_invs$$,$rs$$)=>{if($e$jscomp$15_invs$$)return $reject$$($e$jscomp$15_invs$$);$e$jscomp$15_invs$$=$rs$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$resolve$$($e$jscomp$15_invs$$)})}catch($e$$){$reject$$($e$$)}})},updateInvoice=async($contr$$,$ct$$)=>{let $result_export_einvoice$$=$ct$$.result_export_einvoice||{};$ct$$.so_hd=($result_export_einvoice$$.result||{}).invoiceNo;await $contr$$.model.updateOne({_id:$ct$$._id},
|
|
63
|
+
{so_hd:$ct$$.so_hd,result_export_einvoice:$ct$$.result_export_einvoice});$ct$$.so_hd&&await global.getModel("tdttno").updateMany({id_ct:$ct$$._id.toString()},{so_hd:$ct$$.so_hd});$ct$$.so_hd&&await global.getModel("tdttno_tt").updateMany({id_hd:$ct$$._id.toString()},{so_hd:$ct$$.so_hd});$ct$$.so_hd&&await global.getModel("vatra").updateMany({id_ct:$ct$$._id.toString()},{so_hd:$ct$$.so_hd});$contr$$.postData($ct$$,$e$$=>{if($e$$)return console.error($e$$);$contr$$.pushNotification($ct$$)});console.log("da cap nhat hoa don",
|
|
64
|
+
$ct$$.result_export_einvoice);return $result_export_einvoice$$},isMobilePhone=($str$$,$locale$$)=>$str$$?validator.isMobilePhone($str$$,$locale$$):!1,generatePasswordHash=function($password$$){return crypto.createHash("sha256").update($password$$+":STP").digest("hex")};
|
|
65
|
+
async function isBookLocked($ngay_ct_obj$$){if(!$ngay_ct_obj$$.ngay_ct||!$ngay_ct_obj$$.id_app&&!$ngay_ct_obj$$.ngay_ks)return!1;var $_app_ngay_ks$$=$ngay_ct_obj$$.ngay_ks;if(!$_app_ngay_ks$$){$_app_ngay_ks$$=await global.getModel("app").findOne({_id:$ngay_ct_obj$$.id_app});if(!$_app_ngay_ks$$)return!1;$_app_ngay_ks$$=moment($_app_ngay_ks$$.ngay_ks).endOf("date").toDate()}$ngay_ct_obj$$=moment($ngay_ct_obj$$.ngay_ct).startOf("date").toDate();return $_app_ngay_ks$$.getTime()>$ngay_ct_obj$$.getTime()?
|
|
66
|
+
$_app_ngay_ks$$:!1}
|
|
67
|
+
async function getLocationByAddress($address$$,$address2$$){try{let $url$jscomp$0$$=`https://api.geoapify.com/v1/geocode/search?text=${encodeURIComponent($address$$)}&apiKey=69ba27248ee845ecae90e5acac5b1de0`,$data$jscomp$0$$=(await axios.get($url$jscomp$0$$)).data.features||[];if(0<$data$jscomp$0$$.length){let $lc$$=$data$jscomp$0$$[0].properties||{};return{latitude:$lc$$.lat,longitude:$lc$$.lon}}if($address2$$){let $url$$=`https://api.geoapify.com/v1/geocode/search?text=${encodeURIComponent($address2$$)}&apiKey=69ba27248ee845ecae90e5acac5b1de0`,$data$$=
|
|
68
|
+
(await axios.get($url$$)).data.features||[];if(0<$data$$.length){let $lc$$=$data$$[0].properties||{};return{latitude:$lc$$.lat,longitude:$lc$$.lon}}console.log("Kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y v\u1ecb tr\u00ed c\u1ee7a \u0111\u1ecba ch\u1ec9 2:",{address2:$address2$$,url:$url$$})}else console.log("Kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y v\u1ecb tr\u00ed c\u1ee7a \u0111\u1ecba ch\u1ec9:",{address:$address$$,url:$url$jscomp$0$$})}catch($e$$){console.error("Kh\u00f4ng th\u1ec3 x\u00e1c \u0111\u1ecbnh v\u00ed tr\u00ed c\u1ee7a \u0111\u1ecba ch\u1ec9:",
|
|
69
|
+
$address$$,"L\u1ed7i: ",($e$$.response||{}).data||$e$$)}return null}module.exports={isBookLocked,generatePasswordHash,evalute,JSONParser,getParameterData,prepareParameters,advMapSeries,numberToWord,round,getInfoFromQuery,stripHtmlTags:strip_html_tags,unescapeHtml,compileHtml,isSupperAdmin,calcGrid,getInvoice,updateInvoice,getInvoices,query,find:query,count,groupBy,joinModel2,getLib,aggregate,getCodeChildren,isMobilePhone,getLocationByAddress};
|
package/server/libs/validator.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
exports.
|
|
1
|
+
'use strict';const utils=require("./utils"),moment=require("moment");
|
|
2
|
+
exports.unlockBook=[async function($id_app_ngay_ks$$,$_ngay_ct_ngay_ct$$,$callback$$,$options$$={}){if(!$_ngay_ct_ngay_ct$$)return $callback$$(!0);if($id_app_ngay_ks$$=await utils.isBookLocked({id_app:$id_app_ngay_ks$$,ngay_ct:$_ngay_ct_ngay_ct$$}))$callback$$(!1);else{if($options$$.ngay_ks&&($_ngay_ct_ngay_ct$$=moment($_ngay_ct_ngay_ct$$).startOf("date").toDate(),$id_app_ngay_ks$$=moment($options$$.ngay_ks).endOf("date").toDate(),$id_app_ngay_ks$$.getTime()>$_ngay_ct_ngay_ct$$.getTime()))return $callback$$(!1);
|
|
3
|
+
$callback$$(!0)}},"\u0110\u00e3 kh\u00f3a s\u1ed5"];exports.existsKh=[function($id_app$$,$kh$$,$callback$$){if(!$kh$$)return $callback$$(!0);global.getModel("customer").findOne({id_app:$id_app$$,ma_kh:$kh$$},{ma_kh:1},function($error$$,$cust$$){return $error$$||!$cust$$?$callback$$(!1):$callback$$(!0)})},"M\u00e3 kh\u00e1ch ({PATH}) {VALUE} kh\u00f4ng t\u1ed3n t\u1ea1i"];
|
|
3
4
|
exports.existsDvcs=[function($id_app$$,$ma_dvcs$$,$callback$$){if(!$ma_dvcs$$)return $callback$$(!0);global.getModel("dvcs").findOne({id_app:$id_app$$,_id:$ma_dvcs$$},function($error$$,$dvcs$$){return $error$$||!$dvcs$$?$callback$$(!1):$callback$$(!0)})},"M\u00e3 \u0111\u01a1n v\u1ecb c\u01a1 s\u1edf ({PATH}) {VALUE} kh\u00f4ng t\u1ed3n t\u1ea1i"];
|
|
4
5
|
exports.existsNt=[function($id_app$$,$ma_nt$$,$callback$$){$ma_nt$$?global.getModel("currency").findOne({id_app:$id_app$$,ma_nt:$ma_nt$$},function($error$$,$nt$$){return $error$$||!$nt$$?$callback$$(!1):$callback$$(!0)}):$callback$$(!0)},"M\u00e3 ngo\u1ea1i t\u1ec7 ({PATH}) {VALUE} kh\u00f4ng t\u1ed3n t\u1ea1i"];
|
|
5
6
|
exports.existsDvt=[function($id_app$$,$ma_dvt$$,$callback$$){$ma_dvt$$?global.getModel("dmdvt").findOne({id_app:$id_app$$,ma_dvt:$ma_dvt$$},function($error$$,$dvt$$){return $error$$||!$dvt$$?$callback$$(!1):$callback$$(!0)}):$callback$$(!0)},"M\u00e3 \u0111\u01a1n v\u1ecb t\u00ednh ({PATH}) {VALUE} kh\u00f4ng t\u1ed3n t\u1ea1i"];
|
package/server/models/app.js
CHANGED
|
@@ -3,9 +3,10 @@ maxlength:1024},city:{type:String,maxlength:1024},province:{type:String,maxlengt
|
|
|
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
5
|
default:24},logo:{type:String,maxlength:1024},logo_watermark:{type:String,maxlength:1024},account_types_accept:[],options:{},allow_modules:[String],partner:String,server:String,owner:String,default_password:String,email_host:String,email_port:Number,email_secure:{type:Boolean,default:!0},email_authMethod:{type:String,default:"LOGIN"},email_user:String,email_pass:String,email_name:String,viettel_version:{type:String,maxlength:1024},viettel_user:{type:String,maxlength:1024},viettel_password:{type:String,
|
|
6
|
-
maxlength:1024},viettel_token:{type:String},viettel_url_service:{type:String,maxlength:1024},viettel_direct_issue:Boolean,
|
|
7
|
-
exfields:global.Schema.Types.Mixed,domain:String,ssl_key:String,ssl_cert:String,ssl_ca:String,expire_date:Date,trang_thai:{type:String,default:"0"},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
8
|
-
appScheam.index({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"});
|
|
6
|
+
maxlength:1024},viettel_token:{type:String},viettel_url_service:{type:String,maxlength:1024},viettel_direct_issue:Boolean,vnpt_user:{type:String,maxlength:1024},vnpt_password:{type:String,maxlength:1024},vnpt_url_service:{type:String,maxlength:1024},ma_hoa_don:String,ky_hieu_hoa_don:String,so_serial:String,sip_uri:String,sip_password:String,sip_websocket:String,voiip_access_token:String,voiip_webhook:String,zalo_app_id:String,zalo_secret_key:String,zalo_code:String,zalo_oa_id:String,zalo_code_verifier:String,
|
|
7
|
+
zalo_code_challenge:String,zalo_access_token:String,zalo_refresh_token:String,zalo_expires_in:Number,zalo_updated:Date,zalo_otp_template_id:String,exfields:global.Schema.Types.Mixed,domain:String,ssl_key:String,ssl_cert:String,ssl_ca:String,expire_date:Date,trang_thai:{type:String,default:"0"},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
8
|
+
appScheam.index({app_code:1},{unique:!0});appScheam.index({name:1,province:1});appScheam.index({menu_code:1});appScheam.index({trang_thai:1});appScheam.index({sale_online:1});appScheam.index({date_created:1});appScheam.index({date_updated:1});appScheam.index({user_created:"text"},{name:"app_index_created"});appScheam.index({name:"text",province:"text",name_en:"text",address:"text",phone:"text",email:"text",ma_so_thue:"text"},{name:"app_index"});
|
|
9
|
+
const App=global.mongoose.models.app||global.mongoose.model("app",appScheam);
|
|
9
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$$};
|
|
10
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$$)})})};
|
|
11
12
|
App.emitEvent=function($id_app$$,$event$$,$_data$$,$c_token$$=null,$users$$=null,$_createNotify$$=!1,$_push$$=!0){App.findOne({_id:$id_app$$}).lean().exec(async($e$jscomp$0$$,$app$$)=>{$app$$&&($_data$$.company=$app$$.name,$_data$$.app_info=$app$$,$_data$$.id_app=$id_app$$,$users$$?$users$$=$users$$.map($u$$=>({email:$u$$,name:$u$$})):($users$$=await App.participants($app$$),$users$$.find($u$$=>$app$$.user_created===$u$$.email)||$users$$.push({email:$app$$.user_created,name:$app$$.user_created})),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use strict';const areaSchema=new Schema({id_app:{type:String,required:!0},area_type:{type:String,uppercase:!0,maxlength:32,trim:!0},area_code:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},area_name:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ma_kho:{type:String,maxlength:32,trim:!0},color:{type:String,maxlength:32},picture:{type:String,maxlength:1024},short_description:{type:String,maxlength:1024},description:{type:String},tinh_thanh:{type:String,maxlength:1024},
|
|
2
2
|
quan_huyen:{type:String,maxlength:1024},address:{type:String,required:!0,maxlength:1024},phone:{type:String,maxlength:1024},email:{type:String,maxlength:1024},active:{type:Boolean,default:!0},location:Schema.Types.Mixed,exfields:Schema.Types.Mixed,coWorking:{type:Boolean},coLiving:{type:Boolean},id_company:String,shared:Boolean,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,
|
|
3
|
-
default:""},visible_to:{type:Number,default:0},visible_to_users:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String],update_right:[String],delete_right:[String]});areaSchema.index({id_app:1,area_type:1,area_name:1,area_code:1,address:1});areaSchema.index({area_name:"text",area_code:"text",address:"text"},{name:"area_index"});areaSchema.index({status:1});areaSchema.index({date_created:1});areaSchema.index({date_updated:1});
|
|
4
|
-
const model=mongoose.models.area||mongoose.model("area",areaSchema);module.exports=model;
|
|
3
|
+
default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String],update_right:[String],delete_right:[String]});areaSchema.index({id_app:1,area_type:1,area_name:1,area_code:1,address:1});areaSchema.index({area_name:"text",area_code:"text",address:"text"},{name:"area_index"});areaSchema.index({status:1});areaSchema.index({date_created:1});areaSchema.index({date_updated:1});
|
|
4
|
+
areaSchema.index({user_created:1,visible_to:1,visible_to_users:1});areaSchema.index({visible_to_usergroups:1});const model=mongoose.models.area||mongoose.model("area",areaSchema);module.exports=model;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';const blockSchema=new Schema({id_app:{type:String,required:!0},area_code:{type:String,required:!0,maxlength:32},block_type:{type:String,uppercase:!0,maxlength:32},block_code:{type:String,required:!0,uppercase:!0,maxlength:32},block_name:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ma_kho:{type:String,maxlength:32},color:{type:String,maxlength:32},picture:{type:String,maxlength:1024},short_description:{type:String,maxlength:1024},description:String,exfields:Schema.Types.Mixed,
|
|
2
|
-
status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});blockSchema.index({id_app:1,area_code:1,block_type:1,block_name:1,block_code:1});
|
|
3
|
-
blockSchema.index({area_code:"text",block_name:"text",block_code:"text"},{name:"block_index"});blockSchema.index({status:1});blockSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.block||mongoose.model("block",blockSchema);module.exports=model;
|
|
2
|
+
status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});blockSchema.index({id_app:1,area_code:1,block_type:1,block_name:1,block_code:1});
|
|
3
|
+
blockSchema.index({area_code:"text",block_name:"text",block_code:"text"},{name:"block_index"});blockSchema.index({status:1});blockSchema.index({visible_to_usergroups:1});blockSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.block||mongoose.model("block",blockSchema);module.exports=model;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use strict';const buildingSchema=new Schema({id_app:{type:String,required:!0},ma_dt:{type:String,required:!0,uppercase:!0,maxlength:32},ten_dt:String,building_type:{type:String,uppercase:!0,maxlength:32},building_code:{type:String,required:!0,uppercase:!0,maxlength:32},building_name:{type:String,required:!0,maxlength:1024},building_name_en:{type:String,maxlength:1024},stt:{type:Number,default:0},picture:{type:String,maxlength:1024},short_description:{type:String,maxlength:1024},description:String,
|
|
2
|
-
phone:{type:String,maxlength:1024},email:{type:String,maxlength:1024},active:{type:Boolean,default:!0},trang_thai:{type:String,maxlength:32},location:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],
|
|
3
|
-
default:0},dataview_to_users:[String]});buildingSchema.index({id_app:1,building_type:1,building_name:1,building_code:1,ma_dt:1});buildingSchema.index({building_name:"text",building_code:"text",ma_dt:"text",ten_dt:"text"},{name:"building_index"});buildingSchema.index({trang_thai:1});buildingSchema.index({status:1});buildingSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
4
|
-
model.referenceKeys={building_code:[{model:"nhadat",where:function($obj$$){return{ma_dt:$obj$$.ma_dt,building_code:$obj$$.building_code}},error:"Block n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u"}]};module.exports=model;
|
|
2
|
+
phone:{type:String,maxlength:1024},email:{type:String,maxlength:1024},active:{type:Boolean,default:!0},trang_thai:{type:String,maxlength:32},location:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],
|
|
3
|
+
delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});buildingSchema.index({id_app:1,building_type:1,building_name:1,building_code:1,ma_dt:1});buildingSchema.index({building_name:"text",building_code:"text",ma_dt:"text",ten_dt:"text"},{name:"building_index"});buildingSchema.index({trang_thai:1});buildingSchema.index({status:1});buildingSchema.index({visible_to_usergroups:1});buildingSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
4
|
+
const model=mongoose.models.building||mongoose.model("building",buildingSchema);model.referenceKeys={building_code:[{model:"nhadat",where:function($obj$$){return{ma_dt:$obj$$.ma_dt,building_code:$obj$$.building_code}},error:"Block n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u"}]};module.exports=model;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';const floorSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},floor_code:{type:String,required:!0,uppercase:!0,maxlength:32},floor_name:{type:String,required:!0,maxlength:1024},floor_name_en:{type:String,maxlength:1024},floor_type:String,floor_type_en:String,stt:{type:Number,default:0},picture:{type:String,maxlength:1024},short_description:String,description:String,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
2
|
-
default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});floorSchema.index({id_app:1,floor_code:1});floorSchema.index({floor_code:"text",floor_name:"text"});floorSchema.index({status:1});floorSchema.index({
|
|
3
|
-
const model=mongoose.models.floor||mongoose.model("floor",floorSchema);module.exports=model;
|
|
2
|
+
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],dataview_to:{type:Number,default:0},dataview_to_users:[String]});floorSchema.index({id_app:1,floor_code:1});floorSchema.index({floor_code:"text",floor_name:"text"});floorSchema.index({status:1});floorSchema.index({visible_to_usergroups:1});
|
|
3
|
+
floorSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.floor||mongoose.model("floor",floorSchema);module.exports=model;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
bao_phi_quan_ly:Boolean,co_noi_that:String,co_noi_that_en:String,vao_o_ngay:Boolean,dich_vu_tang_kem:String,dich_vu_tang_kem_en:String,noi_that_yn:Boolean}),chusohuuSchema=new Schema({line:Number,name:String,phone:String,email:String,zalo:String,whatsapp:String,facebook:String,status:Boolean,username:String}),floordetailSchema=new Schema({id_app:{type:String,required:!0},floor_code:{type:String,required:!0,uppercase:!0},so_ct:String,ma_dt:{type:String},building_code:{type:String},ma_nd:{type:String,
|
|
3
3
|
required:!1,uppercase:!0},nh_nd:{type:String},mieu_ta_goc:{type:String},mieu_ta_goc_en:{type:String},mieu_ta:{type:String},mieu_ta_en:{type:String},phan_loai:String,can_ho_so:{type:String},so_phong:Number,so_wc:Number,noi_that:String,noi_that_en:String,dien_tich_phong_thuy:Number,dien_tich_tim_tuong:Number,huong_ban_cong:String,huong_ban_cong_en:String,huong_cua_chinh:String,huong_cua_chinh_en:String,nh_nd_goc:{type:String},so_phong_goc:Number,so_wc_goc:Number,noi_that_goc:String,noi_that_goc_en:String,
|
|
4
4
|
dien_tich_phong_thuy_goc:Number,dien_tich_tim_tuong_goc:Number,huong_ban_cong_goc:String,huong_ban_cong_goc_en:String,huong_cua_chinh_goc:String,huong_cua_chinh_goc_en:String,ban:banSchema,thue:thueSchema,chusohuu:[chusohuuSchema],stt:{type:Number,default:0},picture:{type:String},dia_chi:String,ky_gui:Boolean,kieu_bds_ky_gui:{type:String,enum:["DU_AN","RIENG_LE"]},hinh_thuc_ky_gui:String,anh_cmnd:String,anh_chu_so_huu:String,chap_nhan_dieu_khoan:{type:Boolean},duyet:Boolean,location:Schema.Types.Mixed,
|
|
5
|
-
mieu_ta_vi_tri:String,mieu_ta_vi_tri_en:String,short_description:String,description:String,note:String,featured_content:String,featured_content_en:String,exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],
|
|
6
|
-
dataview_to_users:[String],shared:Boolean});floordetailSchema.index({id_app:1,ma_dt:1,building_code:1,floor_code:1});floordetailSchema.index({ma_dt:"text",building_code:"text",floor_code:"text"},{name:"floordetail_index_text"});floordetailSchema.index({"chusohuu.name":1});floordetailSchema.index({"chusohuu.phone":1});floordetailSchema.index({"chusohuu.email":1});floordetailSchema.index({"chusohuu.zalo":1});floordetailSchema.index({"chusohuu.whatsapp":1});floordetailSchema.index({"chusohuu.facebook":1});
|
|
5
|
+
mieu_ta_vi_tri:String,mieu_ta_vi_tri_en:String,short_description:String,description:String,note:String,featured_content:String,featured_content_en:String,exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],
|
|
6
|
+
dataview_to:{type:Number,default:0},dataview_to_users:[String],shared:Boolean});floordetailSchema.index({id_app:1,ma_dt:1,building_code:1,floor_code:1});floordetailSchema.index({ma_dt:"text",building_code:"text",floor_code:"text"},{name:"floordetail_index_text"});floordetailSchema.index({"chusohuu.name":1});floordetailSchema.index({"chusohuu.phone":1});floordetailSchema.index({"chusohuu.email":1});floordetailSchema.index({"chusohuu.zalo":1});floordetailSchema.index({"chusohuu.whatsapp":1});floordetailSchema.index({"chusohuu.facebook":1});
|
|
7
7
|
floordetailSchema.index({"ban.gia_ban":1});floordetailSchema.index({"ban.da_co_so":1});floordetailSchema.index({"ban.bao_phi_chuyen_nhuong":1});floordetailSchema.index({"ban.tra_lai_tien_chua_dong_so":1});floordetailSchema.index({"ban.dang_hop_dong_thue":1});floordetailSchema.index({"ban.co_the_thanh_ly":1});floordetailSchema.index({"ban.tang_noi_that":1});floordetailSchema.index({"ban.tang_noi_that_en":1});floordetailSchema.index({"ban.ty_le_da_tt_cdt":1});floordetailSchema.index({"ban.noi_that_yn":1});
|
|
8
|
-
floordetailSchema.index({phan_loai:1});floordetailSchema.index({status:1});floordetailSchema.index({user_created:1,visible_to:1,visible_to_users:1});floordetailSchema.index({trang_thai:1});const model=mongoose.models.floordetail||mongoose.model("floordetail",floordetailSchema);module.exports=model;
|
|
8
|
+
floordetailSchema.index({phan_loai:1});floordetailSchema.index({status:1});floordetailSchema.index({visible_to_usergroups:1});floordetailSchema.index({user_created:1,visible_to:1,visible_to_users:1});floordetailSchema.index({trang_thai:1});const model=mongoose.models.floordetail||mongoose.model("floordetail",floordetailSchema);module.exports=model;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
'use strict';const validator=require("../libs/validator"),nhadatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ma_nd:{type:String,required:!0,uppercase:!0},ten_nd:{type:String,required:!0},ten_nd_en:{type:String},nh_nd:{type:String},phan_loai:String,ma_dt:{type:String,uppercase:!0},building_code:{type:String,uppercase:!0},dia_chi:{type:String},dia_chi_en:{type:String},xa_phuong:{type:String},quan_huyen:{type:String},tinh_thanh:{type:String},so_to:{type:String},
|
|
2
2
|
so_thua:{type:String},location:Schema.Types.Mixed,chieu_ngang:{type:Number,default:0},chieu_dai:{type:Number,default:0},dien_tich:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_m2:{type:Number,default:0},so_phong:Number,so_wc:Number,noi_that:String,noi_that_en:String,can_ho_so:String,dien_tich_phong_thuy:Number,dien_tich_tim_tuong:Number,huong_ban_cong:String,huong_ban_cong_en:String,huong_cua_chinh:String,huong_cua_chinh_en:String,mieu_ta:String,mieu_ta_en:String,picture:String,
|
|
3
3
|
ky_gui:Boolean,ten_chu_so_huu:String,dien_thoai_chu_so_huu:String,dia_chi_chu_so_huu:String,anh_cmnd:String,anh_giay_to:String,chap_nhan_dieu_khoan:{type:Boolean},so_ct:String,id_kh:{type:String},exfields:Schema.Types.Mixed,phu_trach:{type:String,lowercase:!0},ngay_cap_nhat:{type:Date,default:Date.now},progress:{type:Number,default:0},trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
|
|
4
|
-
default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],shared:Boolean});nhadatSchema.validate={ma_nt:validator.existsNt};nhadatSchema.index({id_app:1});nhadatSchema.index({ma_nd:1});nhadatSchema.index({phan_loai:1});nhadatSchema.index({building_code:1});nhadatSchema.index({ma_dt:1});nhadatSchema.index({ten_nd:1});nhadatSchema.index({nh_nd:1});nhadatSchema.index({dia_chi:1});
|
|
5
|
-
nhadatSchema.index({xa_phuong:1});nhadatSchema.index({quan_huyen:1});nhadatSchema.index({tinh_thanh:1});nhadatSchema.index({location:1});nhadatSchema.index({mieu_ta:1});nhadatSchema.index({mieu_ta_en:1});nhadatSchema.index({so_to:1});nhadatSchema.index({so_thua:1});nhadatSchema.index({so_phong:1});nhadatSchema.index({so_wc:1});nhadatSchema.index({noi_that:1});nhadatSchema.index({noi_that_en:1});nhadatSchema.index({can_ho_so:1});nhadatSchema.index({dien_tich_phong_thuy:1});
|
|
6
|
-
nhadatSchema.index({huong_ban_cong:1});nhadatSchema.index({huong_ban_cong_en:1});nhadatSchema.index({huong_cua_chinh:1});nhadatSchema.index({huong_cua_chinh_en:1});nhadatSchema.index({chieu_ngang:1});nhadatSchema.index({chieu_dai:1});nhadatSchema.index({gia_ban:1});nhadatSchema.index({dien_tich:1});nhadatSchema.index({gia_ban_m2:1});nhadatSchema.index({phu_trach:1});nhadatSchema.index({ma_nd:"text",ten_nd:"text",phu_trach:"text"});nhadatSchema.index({status:1});
|
|
7
|
-
nhadatSchema.index({user_created:1,visible_to:1,visible_to_users:1});nhadatSchema.index({trang_thai:1});const model=mongoose.models.nhadat||mongoose.model("nhadat",nhadatSchema);
|
|
4
|
+
default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],shared:Boolean});nhadatSchema.validate={ma_nt:validator.existsNt};nhadatSchema.index({id_app:1});nhadatSchema.index({ma_nd:1});nhadatSchema.index({phan_loai:1});nhadatSchema.index({building_code:1});nhadatSchema.index({ma_dt:1});nhadatSchema.index({ten_nd:1});nhadatSchema.index({nh_nd:1});nhadatSchema.index({dia_chi:1});
|
|
5
|
+
nhadatSchema.index({dia_chi_en:1});nhadatSchema.index({xa_phuong:1});nhadatSchema.index({quan_huyen:1});nhadatSchema.index({tinh_thanh:1});nhadatSchema.index({location:1});nhadatSchema.index({mieu_ta:1});nhadatSchema.index({mieu_ta_en:1});nhadatSchema.index({so_to:1});nhadatSchema.index({so_thua:1});nhadatSchema.index({so_phong:1});nhadatSchema.index({so_wc:1});nhadatSchema.index({noi_that:1});nhadatSchema.index({noi_that_en:1});nhadatSchema.index({can_ho_so:1});nhadatSchema.index({dien_tich_phong_thuy:1});
|
|
6
|
+
nhadatSchema.index({dien_tich_tim_tuong:1});nhadatSchema.index({huong_ban_cong:1});nhadatSchema.index({huong_ban_cong_en:1});nhadatSchema.index({huong_cua_chinh:1});nhadatSchema.index({huong_cua_chinh_en:1});nhadatSchema.index({chieu_ngang:1});nhadatSchema.index({chieu_dai:1});nhadatSchema.index({gia_ban:1});nhadatSchema.index({dien_tich:1});nhadatSchema.index({gia_ban_m2:1});nhadatSchema.index({phu_trach:1});nhadatSchema.index({ma_nd:"text",ten_nd:"text",phu_trach:"text"});nhadatSchema.index({status:1});
|
|
7
|
+
nhadatSchema.index({visible_to_usergroups:1});nhadatSchema.index({user_created:1,visible_to:1,visible_to_users:1});nhadatSchema.index({trang_thai:1});const model=mongoose.models.nhadat||mongoose.model("nhadat",nhadatSchema);
|
|
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
|
+
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;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';const nhomnhadatSchema=new Schema({id_app:{type:String,required:!0},stt:Number,ma_nhom:{type:String,required:!0,maxlength:1024},ten_nhom:{type:String,required:!0,maxlength:1024},public:Boolean,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],dataview_to:{type:Number,
|
|
2
|
+
default:0},dataview_to_users:[String],update_right:[String],delete_right:[String]});nhomnhadatSchema.index({id_app:1,ma_nhom:1});nhomnhadatSchema.index({public:1});nhomnhadatSchema.index({stt:1});nhomnhadatSchema.index({ten_nhom:"text"},{ten_nhom:"nhomnhadat_index"});nhomnhadatSchema.index({status:1});nhomnhadatSchema.index({date_created:1});nhomnhadatSchema.index({date_updated:1});nhomnhadatSchema.index({visible_to_usergroups:1});nhomnhadatSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
3
|
+
const model=mongoose.models.nhomnhadat||mongoose.model("nhomnhadat",nhomnhadatSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';const phanloainhadatSchema=new Schema({id_app:{type:String,required:!0},stt:Number,ten_phan_loai:{type:String,required:!0,maxlength:1024},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String],update_right:[String],
|
|
2
|
+
delete_right:[String]});phanloainhadatSchema.index({ten_phan_loai:"text"},{name:"phanloainhadat_index"});phanloainhadatSchema.index({status:1});phanloainhadatSchema.index({date_created:1});phanloainhadatSchema.index({date_updated:1});phanloainhadatSchema.index({visible_to_usergroups:1});phanloainhadatSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.phanloainhadat||mongoose.model("phanloainhadat",phanloainhadatSchema);module.exports=model;
|