flexbiz-server 12.2.2 → 12.2.3
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 +2 -2
- package/server/app.js +14 -14
- package/server/auths/local.js +3 -3
- package/server/cluster.js +12 -11
- package/server/controllers/controller.js +37 -34
- package/server/data/sys/listinfo.js +80395 -78085
- package/server/data/sys/reportinfo.js +8826 -8826
- package/server/data/sys/trangthai.js +10348 -10229
- package/server/libs/getGiaban.js +21 -21
- package/server/libs/permission.js +12 -12
- package/server/libs/prototypes.js +3 -3
- package/server/libs/tinhgiatb.js +16 -19
- package/server/models/customer.js +9 -5
- package/server/models/dh2.js +9 -7
- package/server/models/dmbp.js +7 -4
- package/server/models/dmgiaban.js +6 -6
- package/server/models/dmhoahonghd.js +5 -5
- package/server/models/dmnvt.js +3 -3
- package/server/models/dmvt.js +9 -9
- package/server/models/ecomcategories.js +2 -2
- package/server/models/ecomcategories_cty.js +3 -0
- package/server/models/group.js +4 -4
- package/server/models/hd2.js +9 -6
- package/server/models/listinfo.js +15 -8
- package/server/models/originimportid.js +1 -0
- package/server/models/so1.js +15 -13
- package/server/models/socai.js +3 -1
- package/server/models/task.js +4 -4
- package/server/models/tontucthoi.js +2 -2
- package/server/models/usergroup.js +4 -4
- package/server/modules/lists/ls-asskey.js +34 -34
- package/server/modules/lists/ls-customer.js +14 -7
- package/server/modules/lists/ls-dmbp.js +7 -3
- package/server/modules/lists/ls-dmnkh.js +5 -1
- package/server/modules/lists/ls-dmnvt.js +5 -5
- package/server/modules/lists/ls-dmvt.js +15 -11
- package/server/modules/lists/ls-ecomcategories.js +5 -0
- package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
- package/server/modules/lists/ls-file.js +21 -25
- package/server/modules/lists/ls-group.js +5 -1
- package/server/modules/lists/ls-introducecode.js +8 -7
- package/server/modules/lists/ls-introducer.js +16 -17
- package/server/modules/lists/ls-message2.js +8 -7
- package/server/modules/lists/ls-message2setting.js +4 -4
- package/server/modules/lists/ls-session.js +1 -1
- package/server/modules/lists/ls-task.js +18 -18
- package/server/modules/lists/ls-usergroup.js +6 -2
- package/server/modules/reports/calc-tinhgiatb.js +2 -2
- package/server/modules/reports/rp-congviectheonv.js +5 -5
- package/server/modules/reports/rp-thnxt.js +4 -3
- package/server/modules/reports/rp-thnxt_sl.js +3 -3
- package/server/modules/reports/rp-thnxttt.js +3 -3
- package/server/modules/vouchers/vo-dh2.js +38 -20
- package/server/modules/vouchers/vo-hd2.js +82 -50
- package/server/modules/vouchers/vo-so1.js +119 -120
- package/server/templates/reset mat khau.html +1 -1
- package/server/templates/reset mat khau.pug +1 -3
package/server/models/hd2.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp kho xu\u1ea5t",uppercase:!0,maxlength:32},tk_vt:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00e0i kho\u1ea3n v\u1eadt t\u01b0",uppercase:!0,maxlength:32},
|
|
2
2
|
tk_gv:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00e0i kho\u1ea3n gi\u00e1 v\u1ed1n",uppercase:!0,maxlength:32},tk_dt:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00e0i kho\u1ea3n doanh thu",uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,
|
|
3
|
-
default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},ten_vt_vat:String,
|
|
4
|
-
uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",
|
|
5
|
-
maxlength:32},
|
|
3
|
+
default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},gia_ban_niem_yet_nt:Number,tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},ten_vt_vat:String,
|
|
4
|
+
ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",
|
|
5
|
+
uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,exfields_detail:Schema.Types.Mixed,
|
|
6
|
+
line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
6
7
|
const hd2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"HD2",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
7
8
|
ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,
|
|
8
9
|
uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},tien_thue_dc_nt:Number,t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,
|
|
9
10
|
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],update_right:[String],delete_right:[String],details:{type:[detailSchema]},promotion:Schema.Types.Mixed,id_contract:{type:String,maxlength:1024},id_dh2:{type:String,maxlength:1024},ma_kho:{type:String,uppercase:!0,
|
|
10
|
-
maxlength:32},
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
maxlength:32},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},tk_ck:String,result_export_einvoice:Schema.Types.Mixed,ma_nv:{type:String,uppercase:!0,maxlength:32},user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},
|
|
12
|
+
ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,
|
|
13
|
+
chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32}});hd2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};
|
|
14
|
+
hd2Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});hd2Schema.index({dien_giai:"text",ma_kh:"text",ten_kh:"text",so_ct:"text"},{name:"hd2_index_text"});hd2Schema.index({ma_ct:1});hd2Schema.index({ma_kh:1});hd2Schema.index({ma_kho:1});hd2Schema.index({"details.ma_vt":1});hd2Schema.index({id_dh2:1});hd2Schema.index({id_contract:1});hd2Schema.index({user_created:1,date_created:-1});hd2Schema.index({date_updated:-1});hd2Schema.index({status:1});hd2Schema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
15
|
+
hd2Schema.index({trang_thai:1});module.exports=mongoose.models.hd2||mongoose.model("hd2",hd2Schema);
|
|
@@ -39,8 +39,10 @@ const fieldScheme = new global.Schema(
|
|
|
39
39
|
ref_label:{type:String,trim:true},
|
|
40
40
|
ref_label_as:{type:String,trim:true},
|
|
41
41
|
ref_search_fields:{type:String,trim:true},
|
|
42
|
+
ref_data_fields:{type:String,trim:true},
|
|
42
43
|
ref_condition:{type:String,trim:true},
|
|
43
44
|
multiple:Boolean,
|
|
45
|
+
|
|
44
46
|
|
|
45
47
|
not_display:global.Schema.Types.Mixed,
|
|
46
48
|
not_input:global.Schema.Types.Mixed,
|
|
@@ -250,7 +252,7 @@ model.createSchema = (info)=>{
|
|
|
250
252
|
return mySchema;
|
|
251
253
|
}
|
|
252
254
|
model.updateModel = (info,_newModel)=>{
|
|
253
|
-
|
|
255
|
+
|
|
254
256
|
if(info.toObject) info = info.toObject();
|
|
255
257
|
if(!info.create_model) return null;
|
|
256
258
|
let model_code = info.api_code || info.model_code || info.code;
|
|
@@ -260,10 +262,9 @@ model.updateModel = (info,_newModel)=>{
|
|
|
260
262
|
console.error("model does not have schema",_newModel);
|
|
261
263
|
return;
|
|
262
264
|
}
|
|
263
|
-
|
|
265
|
+
console.log("update model...",model_code);
|
|
264
266
|
const api_code = info.api_code || info.code;
|
|
265
|
-
const _newList = global.controllers[api_code.toUpperCase()]
|
|
266
|
-
|
|
267
|
+
const _newList = global.controllers[api_code.toUpperCase()];
|
|
267
268
|
let require_paths = Object.keys(requireFields);
|
|
268
269
|
let fields = [...info.fields];
|
|
269
270
|
//add ref fields
|
|
@@ -277,19 +278,21 @@ model.updateModel = (info,_newModel)=>{
|
|
|
277
278
|
}
|
|
278
279
|
})
|
|
279
280
|
//console.log("ref fields",fields_have_ref);
|
|
280
|
-
|
|
281
281
|
fields = fields.concat(fields_have_ref);
|
|
282
282
|
//
|
|
283
283
|
fields.filter(f=>f.type!=="Link" && f.type!=="Files" && f.type!=="Action" && f.type!=="Group" && require_paths.indexOf(f.name)<0).forEach(field=>{
|
|
284
284
|
if(field.toObject) field = field.toObject();
|
|
285
|
+
const _field = {...field};
|
|
285
286
|
if(underscore.has(_newModel.schema.paths,field.name)){
|
|
286
|
-
if(
|
|
287
|
+
if(_newModel.schema.paths[field.name].options && !_newModel.schema.paths[field.name].options.isDynamic){
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
287
290
|
if(field.type==="Array" || field.type==="Mixed"){
|
|
288
291
|
return;
|
|
289
292
|
}
|
|
290
293
|
_newModel.schema.remove(field.name);
|
|
291
294
|
}
|
|
292
|
-
|
|
295
|
+
|
|
293
296
|
if(_field.type=="DateTime" || _field.type=="Time") _field.type= "Date";
|
|
294
297
|
if(_field.type=="File" || _field.type=="OtherFile") _field.type= "Mixed";
|
|
295
298
|
if(_field.type=="Array") _field.type= "Mixed";
|
|
@@ -298,7 +301,11 @@ model.updateModel = (info,_newModel)=>{
|
|
|
298
301
|
|
|
299
302
|
if(_field.type=="String") _field.trim = true;
|
|
300
303
|
|
|
301
|
-
|
|
304
|
+
if(model_code!=info.code){
|
|
305
|
+
_field.required = false;//phai luon dat la false neu khong se bi dung giua cac api khac dung chung model
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
_field.isDynamic = true;
|
|
302
309
|
delete _field.name;
|
|
303
310
|
delete _field.header;
|
|
304
311
|
delete _field.header2;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';const originimportidSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},old_id:{type:String},new_id:{type:String}});originimportidSchema.index({id_app:1,old_id:1},{unique:!0});originimportidSchema.index({new_id:1});const model=mongoose.models.originimportid||mongoose.model("originimportid",originimportidSchema);module.exports=model;
|
package/server/models/so1.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
'use strict';const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new global.Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_mua:{type:Number,
|
|
2
|
-
default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},
|
|
3
|
-
default:0},
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_ban_niem_yet_nt:{type:Number,default:0},cs_tien_ck:{type:Number,default:0},cs_ty_le_ck:{type:Number,default:0},cs_sl_ap_dung:{type:Number,default:0},cs_gt_hd_tu:{type:Number,default:0},cs_gt_hd_den:{type:Number,
|
|
3
|
+
default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,
|
|
4
|
+
tk_co_hoa_hong_ql:String,gia_ban_thuc:{type:Number,default:0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,
|
|
5
|
+
uppercase:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},thuoc_tinh:Schema.Types.Mixed,tien_evoucher_duoc_pb:{type:Number,default:0},exfields_detail:global.Schema.Types.Mixed,
|
|
6
|
+
tasks:[Schema.Types.Mixed],days_of_week:[{index:Number,name:String,sel:Boolean,ghi_chu:String}],ngay_bat_dau:{type:Date},ngay_ket_thuc:{type:Date},tu_gio:{type:Date},den_gio:{type:Date},so_lan:Number,diem_thuong:{type:Number,default:0},tk_km_no:{type:String},tk_km_co:{type:String},km_yn_for:String,id_cs:String,collection_cs:String,freeship:Schema.Types.Mixed,combo:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
6
7
|
const ctcpbhSchema=new global.Schema({ma_cp:{type:String,uppercase:!0,required:!0},dien_giai:{type:String,maxlength:1024},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},line:{type:Number,default:0}}),so1Schema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,maxlength:1024},ma_ct:{type:String,default:"SO1",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,uppercase:!0,trim:!0,maxlength:32},
|
|
7
|
-
ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,of_user:{type:String,maxlength:128},ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,
|
|
8
|
-
ngay_hoan_thanh:Date,ngay_tra_lai:Date,vi_tri_giao_hang:global.Schema.Types.Mixed,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,maxlength:1024},dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,default:"VN",maxlength:2},post_code:{type:String,maxlength:1024},
|
|
9
|
-
maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},dich_vu_giao_hang:{type:String,maxlength:1024},trang_thai_giao_hang:{type:String,maxlength:1024},ma_kiem_soat:{type:String,maxlength:1024},ly_do_that_bai:{type:String,maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ma_nv:String,user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,
|
|
10
|
-
da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
so1Schema.index({
|
|
8
|
+
ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,of_user:{type:String,maxlength:128},ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},user_nv_goi_hang:{type:String,maxlength:128},
|
|
9
|
+
user_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_hoan_thanh:Date,ngay_tra_lai:Date,vi_tri_giao_hang:global.Schema.Types.Mixed,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,maxlength:1024},dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,default:"VN",maxlength:2},post_code:{type:String,maxlength:1024},
|
|
10
|
+
location:global.Schema.Types.Mixed,note_ship:{type:String,maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},dich_vu_giao_hang:{type:String,maxlength:1024},trang_thai_giao_hang:{type:String,maxlength:1024},ma_kiem_soat:{type:String,maxlength:1024},ly_do_that_bai:{type:String,maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ma_nv:String,user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,
|
|
11
|
+
tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,
|
|
12
|
+
user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,stt_rec:String,ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},profile:global.Schema.Types.Mixed,discout_code:{type:String,maxlength:32},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,
|
|
13
|
+
default:0},ma_freeship:String,tien_freeship:Number,tien_phi_vc:Number,sender_email:{type:String,maxlength:128},id_trans:{type:String,maxlength:1024},paymentByPoints:{type:Number,default:0},exchangeRate:Number,tien_paymentByPoints:{type:Number,default:0},evouchers:[global.Schema.Types.Mixed],tien_evoucher:Number,tk_no_evoucher:String,tk_co_evoucher:String,da_tra:{type:Number,default:0},tien_con_lai:{type:Number,default:0},pt_thanh_toan:{type:String,maxlength:1024},note_payment:{type:String,maxlength:1024},
|
|
14
|
+
virtual_payment_client_url:{type:String,maxlength:2024},again_link:{type:String,maxlength:2024},payment_service:String,payment_id:String,payment_getway_lang:{type:String,maxlength:1024},details:{type:[detailSchema]},ctcpbhs:[ctcpbhSchema],shared:Boolean,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,online: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,
|
|
15
|
+
default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});so1Schema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};so1Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});so1Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"so1_index_text"});so1Schema.index({ma_ct:1});so1Schema.index({ma_kh:1});so1Schema.index({ma_kho:1});
|
|
16
|
+
so1Schema.index({ma_bp:1});so1Schema.index({ma_nv:1});so1Schema.index({"details.ma_vt":1});so1Schema.index({"details.id_cs":1});so1Schema.index({trang_thai:1});so1Schema.index({trang_thai_giao_hang:1});so1Schema.index({user_nv_giao_hang:1});so1Schema.index({user_created:1,date_created:-1});so1Schema.index({date_updated:-1});so1Schema.index({gio:1});so1Schema.index({ngay:1});so1Schema.index({thang:1});so1Schema.index({quy:1});so1Schema.index({nam:-1});so1Schema.index({status:1});so1Schema.index({online:1});
|
|
17
|
+
so1Schema.index({user_created:1,visible_to:1,visible_to_users:1});so1Schema.pre("save",function($next$$){let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});const model=global.mongoose.models.so1||global.mongoose.model("so1",so1Schema);model.referenceKeys={_id:[{model:"socai",key:"id_ct_goc",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c ho\u1ea1ch to\u00e1n"}]};
|
|
16
18
|
module.exports=model;
|
package/server/models/socai.js
CHANGED
|
@@ -5,7 +5,9 @@ ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:S
|
|
|
5
5
|
default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024,trim:!0},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},id_link:String,ma_ct_link:String,
|
|
6
6
|
so_ct_link:String,id_ct_goc:String,ma_ct_goc:String,so_ct_goc:String,ngay_ct_goc:Date,pt_thanh_toan_goc:String,pt_thanh_toan:String,pt_thanh_toan2:String,trang_thai:{type:String,maxlength:32},nh_dk:{type:Number,default:0},id_kbbtpb:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,flag:{type:String,maxlength:1024},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:String,ma_td2:String,ma_td3:String,ma_td4:String,ma_td5:String,
|
|
7
7
|
ma_td6:String,ma_td7:String,ma_td8:String,ma_td9:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}},{toJSON:{virtuals:!0}});
|
|
8
|
-
socaiSchema.pre("save",function($next$$){this.tien="VND"==this.ma_nt?this.tien_nt=Math.roundBy(this.tien_nt,0):Math.roundBy(this.tien,0);let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});
|
|
8
|
+
socaiSchema.pre("save",function($next$$){this.tien="VND"==this.ma_nt?this.tien_nt=Math.roundBy(this.tien_nt,0):Math.roundBy(this.tien,0);let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});
|
|
9
|
+
socaiSchema.post("save",async function($doc$$){if(0<=["SO1","HD2","HD1","PBL"].indexOf($doc$$.ma_ct)){if($doc$$.ma_kh_no){var $dhgn_dhgn$$=await global.getModel("socai").findOne({ma_kh:$doc$$.ma_kh_no,id_app:$doc$$.id_app},{ngay_ct:1}).sort({ngay_ct:-1});if($dhgn_dhgn$$){var $so_ngay_da_mua_so_ngay_da_mua$$=moment().diff(moment($dhgn_dhgn$$.ngay_ct),"days");model.updateOne({ma_kh:$doc$$.ma_kh_no,id_app:$doc$$.id_app},{ngay_mua_gan_nhat:$dhgn_dhgn$$.ngay_ct,so_ngay_da_mua:$so_ngay_da_mua_so_ngay_da_mua$$})}}$doc$$.ma_kh_co&&
|
|
10
|
+
$doc$$.ma_kh_co!=$doc$$.ma_kh_no&&($dhgn_dhgn$$=await global.getModel("socai").findOne({ma_kh:$doc$$.ma_kh_co,id_app:$doc$$.id_app},{ngay_ct:1}).sort({ngay_ct:-1}))&&($so_ngay_da_mua_so_ngay_da_mua$$=moment().diff(moment($dhgn_dhgn$$.ngay_ct),"days"),model.updateOne({ma_kh:$doc$$.ma_kh_co,id_app:$doc$$.id_app},{ngay_mua_gan_nhat:$dhgn_dhgn$$.ngay_ct,so_ngay_da_mua:$so_ngay_da_mua_so_ngay_da_mua$$}))}});socaiSchema.index({id_app:1});socaiSchema.index({ma_dvcs:1});socaiSchema.index({so_ct:1});socaiSchema.index({ngay_ct:1});
|
|
9
11
|
socaiSchema.index({so_ct:1,ngay_ct:1});socaiSchema.index({gio:1});socaiSchema.index({ngay:1});socaiSchema.index({thang:1});socaiSchema.index({quy:1});socaiSchema.index({nam:-1});socaiSchema.index({ma_ct:1});socaiSchema.index({id_ct:1});socaiSchema.index({ma_ct_goc:1});socaiSchema.index({id_ct_goc:1});socaiSchema.index({tk_no:1});socaiSchema.index({tk_co:1});socaiSchema.index({ma_kh_no:1});socaiSchema.index({ma_kh_co:1});socaiSchema.index({ma_nt:1});socaiSchema.index({ma_bp:1});socaiSchema.index({ma_phi:1});
|
|
10
12
|
socaiSchema.index({ma_hd:1});socaiSchema.index({ma_dt:1});socaiSchema.index({ma_nv:1});socaiSchema.index({ma_sp:1});socaiSchema.index({ma_vt:1});socaiSchema.index({ma_kenh:1});socaiSchema.index({ma_td1:1});socaiSchema.index({ma_td2:1});socaiSchema.index({ma_td3:1});socaiSchema.index({ma_td4:1});socaiSchema.index({ma_td5:1});socaiSchema.index({ma_td6:1});socaiSchema.index({ma_td7:1});socaiSchema.index({ma_td8:1});socaiSchema.index({ma_td9:1});socaiSchema.index({ma_lo:1});socaiSchema.index({han_sd:-1});
|
|
11
13
|
socaiSchema.index({ma_tt1:1});socaiSchema.index({ma_tt2:1});socaiSchema.index({ma_tt3:1});socaiSchema.index({id_lenhsx:1});socaiSchema.index({flag:1});socaiSchema.index({id_link:1});socaiSchema.index({id_cs:1});socaiSchema.index({id_app:1,id_ct:1,so_ct:-1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1});socaiSchema.index({dien_giai:"text"});socaiSchema.index({status:1});socaiSchema.index({user_created:1,visible_to:1,visible_to_users:1});socaiSchema.index({trang_thai:1});
|
package/server/models/task.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
'use strict';const taskSchema=new Schema({id_app:{type:String,required:!0},ten_cv:{type:String,required:!0},id_link:{type:String},id_job:{type:String},id_ct:{type:String},id_kh:{type:String,default:""},id_dt:{type:String,default:""},ten_kh:String,id_bp:{type:String,default:""},ten_bp:String,id_lh:{type:String,default:""},id_dokho:{type:String},diem_toi_thieu:Number,diem_toi_da:Number,diem_du_tinh:Number,chia_diem:Boolean,mieu_ta:{type:String},ghi_chu:{type:String},
|
|
2
|
-
ma_loai_cv:String,phu_trach:{type:String,lowercase:!0},ten_phu_trach:String,location:{type:String},attends:[String],attend_groups:[String],nguoi_kiem_tra:String,nguoi_thuc_hien:String,start_date:{type:Date},due_date:{type:Date},finished_date:{type:Date},nhac_nho_truoc:{type:Number,default:60},reminder:{type:Date},repeat:{type:Number,default:0},priority:{type:Number,default:1},progress:{type:Number,default:0},percent:{type:Number,default:0,max:100},exfields:Schema.Types.Mixed,
|
|
3
|
-
stt:{type:Number,default:0},saved:Boolean,ma_ct:{type:String,uppercase:!0},so_ct:{type:String,uppercase:!0},ngay_ct:Date,ma_nt:{type:String,uppercase:!0},ty_gia:Number,thu_phi:Number,da_thu:Number,tk_no:{type:String,uppercase:!0},tk_co:{type:String,uppercase:!0},phi_dich_vu_1_lan:Number,ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hh:{type:String,uppercase:!0},tk_co_hh:{type:String,uppercase:!0},ma_dvcs:String,group_id_link:String,group_name_link:String,
|
|
4
|
-
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]});taskSchema.index({id_app:1});taskSchema.index({id_app:1,ten_cv:1});taskSchema.index({id_app:1,start_date:-1});taskSchema.index({id_app:1,due_date:-1});
|
|
1
|
+
'use strict';const taskSchema=new Schema({id_app:{type:String,required:!0},ten_cv:{type:String,required:!0},id_link:{type:String},id_job:{type:String},id_ct:{type:String},id_kh:{type:String,default:""},id_dt:{type:String,default:""},ten_kh:String,id_bp:{type:String,default:""},ten_bp:String,id_lh:{type:String,default:""},id_dokho:{type:String},diem_toi_thieu:Number,diem_toi_da:Number,diem_du_tinh:Number,chia_diem:Boolean,he_so_chia_diem:Schema.Types.Mixed,mieu_ta:{type:String},ghi_chu:{type:String},
|
|
2
|
+
nh_cv:{type:String},ten_nh_cv:String,ma_loai_cv:String,phu_trach:{type:String,lowercase:!0},ten_phu_trach:String,location:{type:String},attends:[String],attend_groups:[String],nguoi_kiem_tra:String,nguoi_thuc_hien:String,start_date:{type:Date},due_date:{type:Date},finished_date:{type:Date},nhac_nho_truoc:{type:Number,default:60},reminder:{type:Date},repeat:{type:Number,default:0},priority:{type:Number,default:1},progress:{type:Number,default:0},percent:{type:Number,default:0,max:100},exfields:Schema.Types.Mixed,
|
|
3
|
+
labels:[String],todos:Schema.Types.Mixed,stt:{type:Number,default:0},saved:Boolean,ma_ct:{type:String,uppercase:!0},so_ct:{type:String,uppercase:!0},ngay_ct:Date,ma_nt:{type:String,uppercase:!0},ty_gia:Number,thu_phi:Number,da_thu:Number,tk_no:{type:String,uppercase:!0},tk_co:{type:String,uppercase:!0},phi_dich_vu_1_lan:Number,ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hh:{type:String,uppercase:!0},tk_co_hh:{type:String,uppercase:!0},ma_dvcs:String,group_id_link:String,group_name_link:String,
|
|
4
|
+
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]});taskSchema.index({id_app:1});taskSchema.index({id_app:1,ten_cv:1});taskSchema.index({id_app:1,start_date:-1});taskSchema.index({id_app:1,due_date:-1});
|
|
5
5
|
taskSchema.index({ten_cv:"text",phu_trach:"text",ten_phu_trach:"text",ten_nh_cv:"text",ten_bp:"text",ten_kh:"text"},{name:"task_index_text"});taskSchema.index({id_app:1,nh_cv:1});taskSchema.index({id_app:1,phu_trach:1,ten_phu_trach:1});taskSchema.index({phu_trach:1});taskSchema.index({user_created:1});taskSchema.index({date_created:-1});taskSchema.index({date_updated:-1});taskSchema.index({id_app:1,labels:1});taskSchema.index({id_app:1,nguoi_thuc_hien:1});taskSchema.index({id_app:1,nguoi_kiem_tra:1});
|
|
6
6
|
taskSchema.index({id_ct:1});taskSchema.index({ma_loai_cv:1});taskSchema.index({id_kh:1});taskSchema.index({id_bp:1});taskSchema.index({id_app:1,so_ct:1});taskSchema.index({id_link:1});taskSchema.index({id_job:1});taskSchema.index({progress:1});taskSchema.index({id_app:1,saved:1});taskSchema.index({saved:1});taskSchema.index({attends:1});taskSchema.index({id_app:1,attends:1});taskSchema.index({status:1});taskSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
7
7
|
const model=mongoose.models.task||mongoose.model("task",taskSchema);module.exports=model;
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
default:0},du_nt00:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tontucthoiScheam.index({id_app:1,nam:1,ma_dvcs:1,ma_vt:1,ma_kho:1,ma_lo:1,ma_tt1:1,ma_tt2:1,ma_tt3:1},{name:"tontucthoi_index_1"});tontucthoiScheam.index({status:1});tontucthoiScheam.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
3
3
|
const tontucthoi=mongoose.models.tontucthoi||mongoose.model("tontucthoi",tontucthoiScheam),ckvt=require("../libs/ckvt"),underscore=require("underscore"),async=require("async");
|
|
4
4
|
tontucthoi.tinhTonTucThoi=function($sks$$,$cb$$){$cb$$||($cb$$=function($e$$){$e$$&&console.log("error when calc tontucthoi",$e$$)});underscore.isArray($sks$$)||($sks$$=[$sks$$]);async.mapSeries($sks$$,function($sk$$,$cb$$){if(!$sk$$)return $cb$$();let $query$$={id_app:$sk$$.id_app,ma_vt:$sk$$.ma_vt};tontucthoi.deleteMany($query$$,function($e$jscomp$2$$){if($e$jscomp$2$$)return $cb$$("remove tonkhotucthoi");$query$$.groupBy="id_app ma_vt ma_kho ma_dvcs ma_lo ma_tt1 ma_tt2 ma_tt3 han_sd".split(" ");
|
|
5
|
-
$query$$.ngay=new Date;ckvt($query$$,async function($e$jscomp$1$$,$rs$$){if($e$jscomp$1$$)return $cb$$("error when calc tontucthoi\n"+$e$jscomp$1$$);$rs$$=$rs$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_kho&&$r$$.id_app);await $rs$$.asyncJoinModel2(null,global.getModel("dmkho"),{where:$item$$=>({id_app:$item$$.id_app,ma_kho:$item$$.ma_kho}),fields:"la_kho_online"});$rs$$&&0<$rs$$.length?tontucthoi.create($rs$$,async function($e$jscomp$0$$){if($e$jscomp$0$$)return $cb$$($e$jscomp$0$$)
|
|
6
|
-
|
|
5
|
+
$query$$.ngay=new Date;ckvt($query$$,async function($e$jscomp$1$$,$rs$$){if($e$jscomp$1$$)return $cb$$("error when calc tontucthoi\n"+$e$jscomp$1$$);$rs$$=$rs$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_kho&&$r$$.id_app);await $rs$$.asyncJoinModel2(null,global.getModel("dmkho"),{where:$item$$=>({id_app:$item$$.id_app,ma_kho:$item$$.ma_kho}),fields:"la_kho_online"});$rs$$&&0<$rs$$.length?tontucthoi.create($rs$$,async function($e$jscomp$0$$){if($e$jscomp$0$$)return $cb$$($e$jscomp$0$$);$e$jscomp$0$$=$rs$$.filter($r$$=>
|
|
6
|
+
$r$$.la_kho_online).map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);global.getModel("dmvt").updateOne({id_app:$sk$$.id_app,ma_vt:$sk$$.ma_vt},{ton_kho_online_hien_tai:$e$jscomp$0$$}).then(()=>{}).catch($e$$=>{$e$$&&console.error($e$$)});$cb$$(null,$rs$$)}):$cb$$()})})},function($e$$,$rs$$){$cb$$($e$$,$rs$$)})};module.exports=tontucthoi;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'use strict';const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,maxlength:1024,trim:!0},is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,
|
|
2
|
-
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]});usergroupSchema.index({id_app:1,is_customer_group:1});usergroupSchema.index({id_app:1,is_employee_group:1});
|
|
3
|
-
usergroupSchema.index({group_mother:1});usergroupSchema.index({status:1});usergroupSchema.index({user_created:1,visible_to:1,visible_to_users:1});usergroupSchema.index({group_name:"text"});const model=mongoose.models.usergroup||mongoose.model("usergroup",usergroupSchema);
|
|
4
|
-
model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:`Can't find user group:${$condition$$}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
|
1
|
+
'use strict';const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,maxlength:1024,trim:!0},is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,loai_nh:{type:Number,
|
|
2
|
+
default:1},bac:Number,sysorder:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,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]});usergroupSchema.index({id_app:1,is_customer_group:1});usergroupSchema.index({id_app:1,is_employee_group:1});
|
|
3
|
+
usergroupSchema.index({phu_trach:1});usergroupSchema.index({group_name:1});usergroupSchema.index({group_mother:1});usergroupSchema.index({loai_nh:1});usergroupSchema.index({bac:1});usergroupSchema.index({sysorder:1});usergroupSchema.index({status:1});usergroupSchema.index({user_created:1,visible_to:1,visible_to_users:1});usergroupSchema.index({group_name:"text"});const model=mongoose.models.usergroup||mongoose.model("usergroup",usergroupSchema);
|
|
4
|
+
model.referenceKeys={_id:[{model:"participant",key:"group_id",error:"Kh\u00f4ng th\u1ec3 x\u00f3a nh\u00f3m n\u00e0y."}]};model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:`Can't find user group:${$condition$$}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
|
5
5
|
model.getList=async($id_app$$,$condition$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$||[])})})};module.exports=model;
|
|
@@ -2,37 +2,37 @@
|
|
|
2
2
|
spend,getTxStatus,txQuery,bcQuery,tdQuery,initSocket,createTx,getLatestHash,getHashById,mining}=require("../../libs/blockchainconnect");
|
|
3
3
|
module.exports=function($contr_router$$){initSocket("MAINNET");initSocket("TESTNET");$contr_router$$=new controller($contr_router$$,model,"asskey",{unique:["address"],sort:{date_created:1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>"delete"==$options$$.action?!0:!1,onFinding:async($obj$$,$condition$$,$next$$,$options$$={})=>{$options$$.req&&$options$$.req.query&&!$options$$.req.query.has_balance&&($options$$.req.query.has_balance=$condition$$.has_balance);delete $condition$$.has_balance;if($options$$.req&&
|
|
4
4
|
$options$$.req.query&&!$options$$.req.query.count&&0===await model.countDocuments({user_created:$obj$$.email,id_app:$obj$$.current_id_app,wallet_type:{$ne:1}})){$obj$$=new model({user_created:$obj$$.email,username:$obj$$.email,id_app:$obj$$.current_id_app});$options$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $options$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$options$$.mnemonic;$obj$$.name="T\u00e0i kho\u1ea3n ch\u00ednh";
|
|
5
|
-
$obj$$.asset=configs.MAIN_DENOM;await $obj$$.save()}$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$={})=>{let $network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$user$$.current_id_app},{wallet_network:1}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);await $items$$.asyncJoinModel2(null,User,{where:{username:"email"},fields:{fullname:"name"}})
|
|
6
|
-
$options$$.req.query.has_balance?async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{delete $item$$.mnemonic;delete $item$$.private_key;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");try{let $bls$$=await bankBalancesGet($item$$.address,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($user$$.current_id_app,assinvestment,{where:{denom:"token"},
|
|
7
|
-
|
|
8
|
-
$contr_router$$.creating=async($user$$,$obj$$,$next$$)=>{if(3<=await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,asset:{$nin:["BTC","ETH"]}}))return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam v\u00ed m\u1edbi");$obj$$.username||($obj$$.username=$user$$.email);try{let $wallet$$;if($obj$$.mnemonic){if(await model.findOne({id_app:$user$$.current_id_app,mnemonic:$obj$$.mnemonic}))return $next$$("This wallet was added to your account")
|
|
9
|
-
{prefix:configs.ADDRESS_PREFIX})}else $wallet$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $wallet$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$wallet$$.mnemonic;$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("Can't delete this key");
|
|
10
|
-
global.client_cosmos||{};delete global.client_cosmos[$obj$$._id.toString()];Receiver.deleteMany({address:$obj$$.address});$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){$fn$$("Can't update this wallet")};$contr_router$$.createRoute(":address/balance",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address,$network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&
|
|
11
|
-
($network$$=$app$$.wallet_network);try{const $bls$$=await bankBalancesGet($address$$,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($req$$.user.current_id_app,assinvestment,{where:{denom:"token"},asyncSetFields:async($item$$,$investment_ref$$,$callback$$)=>{$item$$.price=$investment_ref$$.gia;$investment_ref$$={...$investment_ref$$};var $ivs_tong_so_luong$$=await bcQuery("investment/"+$investment_ref$$.id
|
|
12
|
-
$investment_ref$$.token=$ivs_tong_so_luong$$.Investment.token;$investment_ref$$.ngay_dao_han=Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)):null;$investment_ref$$.ngay_phat_hanh=new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayPhatHanh));$investment_ref$$.id_product=$ivs_tong_so_luong$$.Investment.idProduct;$investment_ref$$.product_token=$ivs_tong_so_luong$$.Investment.productToken
|
|
13
|
-
$investment_ref$$.so_luong=Number($ivs_tong_so_luong$$.Investment.soLuong);$investment_ref$$.da_rut_von=Number($ivs_tong_so_luong$$.Investment.daRutVon);$investment_ref$$.lai_suat_cam_ket=Number($ivs_tong_so_luong$$.Investment.laiSuatCamKet);$investment_ref$$.lai_suat_truoc_han=Number($ivs_tong_so_luong$$.Investment.laiSuatTruocHan);$investment_ref$$.ky_han=Number($ivs_tong_so_luong$$.Investment.kyHan);$investment_ref$$.cho_phep_rut_von
|
|
14
|
-
$ivs_tong_so_luong$$.Investment.choPhepChuyenNhuong;$investment_ref$$.denom=$ivs_tong_so_luong$$.Investment.denom;$investment_ref$$.da_dao_han=$ivs_tong_so_luong$$.Investment.daDaoHan;$investment_ref$$.lai_da_tra=Number($ivs_tong_so_luong$$.Investment.laiDaTra);await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",
|
|
15
|
-
{tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu tru_lai_da_tra".split(" ")});$investment_ref$$.wallet_address=$address$$;$ivs_tong_so_luong$$=$investment_ref$$.so_luong;$investment_ref$$.so_luong=$item$$.amount
|
|
16
|
-
($investment_ref$$.lai_da_tra_1_token=Math.roundBy($investment_ref$$.lai_da_tra/$ivs_tong_so_luong$$),$investment_ref$$.lai_da_tra=$investment_ref$$.lai_da_tra_1_token*$investment_ref$$.con_lai);$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=Math.roundBy($investment_ref$$.lai_suat_cam_ket/365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han)
|
|
17
|
-
$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.roundBy(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/864E5),$investment_ref$$.tien_lai_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_cam_ket||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri),$investment_ref$$.tien_lai_truoc_han_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_truoc_han||
|
|
18
|
-
($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.roundBy(($investment_ref$$.tong_gia_tri+$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,$investment_ref$$.token)}catch($e$$){console.error($e$$)}$item$$.investment
|
|
19
|
-
{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $handleResult$$=$assreq_data$$=>{$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;
|
|
20
|
-
delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;return $assreq_data$$},$permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{var $address$$=await global.getModel("assuser_identity").findOne({id_app:$req$$.user.current_id_app,user_created:$req$$.user.email}).lean();
|
|
21
|
-
if("1"!==$address$$.trang_thai)return $fn$$({error:"H\u1ed3 s\u01a1 th\u00f4ng tin c\u1ee7a b\u1ea1n ch\u01b0a \u0111\u01b0\u1ee3c duy\u1ec7t"});let $data$$=$req$$.body;$address$$=$data$$.from;const $to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,amount:$amount$$,memo:$memo$$}=$data$$;if(!($address$$&&$to_address
|
|
22
|
-
try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
|
|
23
|
-
order_id:$data$$.order_id});if(!$_url_assreq$$)return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if("1"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"});if("9"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb h\u1ee7y"})
|
|
24
|
-
$to_address$$,{denom:$denom$$,amount:$amount$$,memo:$memo$$});if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});let $walletReceiver$$=await model.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$});if($walletReceiver$$){let $_userReceiver$$=
|
|
25
|
-
user_created:$req$$.user.email},($e$$,$rs$$)=>{$rs$$||Receiver.create({id_app:$req$$.user.current_id_app,name:$data$$.name||($_userReceiver$$||{}).name,address:$to_address$$,user_created:$req$$.user.email})})}if($_url_assreq$$){$_url_assreq$$.trang_thai="1";$_url_assreq$$.sender_address=$address$$;$_url_assreq$$.sender_name=$data$$.sender_name||$req$$.user.name;$_url_assreq$$.sender_user
|
|
26
|
-
new Date;await $_url_assreq$$.save();let $ctrlReq$$=global.controllers.ASSREQUEST,$assreq_views$$=await $ctrlReq$$.asyncView($req$$.user,[$_url_assreq$$.toObject()],{req:$req$$});controller.pushNotification($ctrlReq$$,$assreq_views$$[0]);const $assreq_data$$=$_url_assreq$$.toObject();$assreq_data$$.is_success=!0;$assreq_data$$.message="Giao d\u1ecbch th\u00e0nh c\u00f4ng";let $returnData
|
|
27
|
-
$_url_assreq$$?`${$_url_assreq$$}&${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`:`${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`;$_url_assreq$$=`${$assreq_data$$.return_url}?${$_url_assreq$$}`;$returnData$$.return_url=$_url_assreq$$}return $fn$$(null,$returnData$$)}$fn$$(null,$rs$$)}catch($e$$){console.error($e$$),$fn$$({error:$e$$.message||$e$$.error||$e$$})}},
|
|
28
|
-
try{let $info$$=await getKeyInfo($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$info$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute(":address/download",async($req$$,$fn$$)=>{if(!$req$$.query["otp-id"]||!$req$$.query["otp-code"])return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u otp-id v\u00e0 otp-code");
|
|
29
|
-
$req$$.query["otp-code"])}catch($e$$){return $fn$$($e$$.message||$e$$.error||$e$$)}let $address$$=$req$$.params.address;try{let $wallet$$=await getWallet($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$wallet$$.mnemonic)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs/:tx_id",async($req$$,$fn$$)=>{let $network$$=
|
|
30
|
-
|
|
31
|
-
$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);$app$$=$req$$.query.page||"1";let $limit$$=$req$$.query.limit||"20",$events$$;for(let $key$$ in $req$$.query)"page"!==$key$$&&"limit"!==$key$$&&"access_token"!==$key$$&&"id_app"!==$key$$&&($events$$=$events$$?`${$events$$}&${$key$$}=${$req$$.query[$key$$]}`:`${$key$$}=${$req$$.query[$key$$]}`);
|
|
32
|
-
$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("query",async($req$$,$fn$$)=>{let $urlQuery$$=$req$$.query.path;if(!$urlQuery$$)return $fn$$({error:"query path is required"});let $network$$="MAINNET";var $app$jscomp$4_limit$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$jscomp$4_limit
|
|
33
|
-
($network$$=$app$jscomp$4_limit$$.wallet_network);$app$jscomp$4_limit$$=$req$$.query.type;let $rs$$;try{"td"===$app$jscomp$4_limit$$||0<=$urlQuery$$.indexOf("block_search")||0<=$urlQuery$$.indexOf("tx_search")?$rs$$=await tdQuery($urlQuery$$,$network$$):($app$jscomp$4_limit$$=20,$req$$.query.limit&&($app$jscomp$4_limit$$=Number($req$$.query.limit),isNaN($app$jscomp$4_limit$$)&&($app$jscomp$4_limit$$=
|
|
34
|
-
$urlQuery$$+"&pagination.limit="+$app$jscomp$4_limit$$,$req$$.query.page&&isNaN(Number($req$$.query.page)),$app$jscomp$4_limit$$*=0,$urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.offset="+$app$jscomp$4_limit$$:$urlQuery$$+"&pagination.offset="+$app$jscomp$4_limit$$,$req$$.query.reverse&&($urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.reverse=true":$urlQuery$$+"&pagination.reverse=true")
|
|
35
|
-
$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let {values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}=$req$$.body;if(0>$typeUrl$$.indexOf("MsgCreateFindhash"))try{await $permission$$.verifyOTP($req$$.user.email,$req$$.body["otp-id"],$req$$.body["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message
|
|
36
|
-
$req$$.user.token,{values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}).then($rs$$=>{if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});$fn$$(null,$rs$$)}).catch($e$$=>{$fn$$($e$$)})},{method:"POST"});$contr_router$$.createRoute("findhash/:id",
|
|
37
|
-
$network$$="MAINNET";($app$jscomp$5_req$$=await global.getModel("app").findOne({_id:$app$jscomp$5_req$$.user.current_id_app}).lean())&&$app$jscomp$5_req$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$jscomp$5_req$$.wallet_network]&&($network$$=$app$jscomp$5_req$$.wallet_network);try{if("latest"===$id$$){let $lastest$$=await getLatestHash($network$$);if(!$lastest$$)return $fn$$("Not found latest hash");$fn$$(null,$lastest$$)}else{let $hash$$=
|
|
38
|
-
$e$$.error||$e$$)}},{method:"GET"});$contr_router$$.createRoute("test-mining/:creator",async($req$$,$fn$$)=>{if("invncur@gmail.com"!==$req$$.user.email)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng n\u00e0y");mining($req$$.user.current_id_app,$req$$.user.email,$req$$.params.creator,$fn$$)},{method:"GET"});$contr_router$$.route()};
|
|
5
|
+
$obj$$.asset=configs.MAIN_DENOM;try{await $obj$$.save()}catch($e$$){console.error($e$$)}}$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$={})=>{let $network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$user$$.current_id_app},{wallet_network:1}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);await $items$$.asyncJoinModel2(null,User,{where:{username:"email"},fields:{fullname:"name"}});
|
|
6
|
+
$options$$.req&&$options$$.req.query&&$options$$.req.query.has_balance?async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{delete $item$$.mnemonic;delete $item$$.private_key;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");try{let $bls$$=await bankBalancesGet($item$$.address,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($user$$.current_id_app,assinvestment,{where:{denom:"token"},
|
|
7
|
+
fields:[{price:"gia"},"id_product","id_period"]});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$item$$.balances=$bls$$;$callback$$(null,$item$$)}catch($e$$){$callback$$($e$$)}})},$e$$=>$next$$($e$$)):async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(()=>{delete $item$$.mnemonic;delete $item$$.private_key;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");
|
|
8
|
+
$callback$$()})},()=>{$next$$(null,$items$$)})}});$contr_router$$.creating=async($user$$,$obj$$,$next$$)=>{if(3<=await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,asset:{$nin:["BTC","ETH"]}}))return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam v\u00ed m\u1edbi");$obj$$.username||($obj$$.username=$user$$.email);try{let $wallet$$;if($obj$$.mnemonic){if(await model.findOne({id_app:$user$$.current_id_app,mnemonic:$obj$$.mnemonic}))return $next$$("This wallet was added to your account");
|
|
9
|
+
$wallet$$=await DirectSecp256k1HdWallet.fromMnemonic($obj$$.mnemonic,{prefix:configs.ADDRESS_PREFIX})}else $wallet$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $wallet$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$wallet$$.mnemonic;$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("Can't delete this key");
|
|
10
|
+
global.client_cosmos=global.client_cosmos||{};delete global.client_cosmos[$obj$$._id.toString()];Receiver.deleteMany({address:$obj$$.address});$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){$fn$$("Can't update this wallet")};$contr_router$$.createRoute(":address/balance",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address,$network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&
|
|
11
|
+
configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);try{const $bls$$=await bankBalancesGet($address$$,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($req$$.user.current_id_app,assinvestment,{where:{denom:"token"},asyncSetFields:async($item$$,$investment_ref$$,$callback$$)=>{$item$$.price=$investment_ref$$.gia;$investment_ref$$={...$investment_ref$$};var $ivs_tong_so_luong$$=await bcQuery("investment/"+$investment_ref$$.id,
|
|
12
|
+
$network$$);$investment_ref$$.da_dao_han=$ivs_tong_so_luong$$.Investment.daDaoHan;$investment_ref$$.token=$ivs_tong_so_luong$$.Investment.token;$investment_ref$$.ngay_dao_han=Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)):null;$investment_ref$$.ngay_phat_hanh=new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayPhatHanh));$investment_ref$$.id_product=$ivs_tong_so_luong$$.Investment.idProduct;$investment_ref$$.product_token=$ivs_tong_so_luong$$.Investment.productToken;
|
|
13
|
+
$investment_ref$$.gia=Number($ivs_tong_so_luong$$.Investment.gia);$investment_ref$$.so_luong=Number($ivs_tong_so_luong$$.Investment.soLuong);$investment_ref$$.da_rut_von=Number($ivs_tong_so_luong$$.Investment.daRutVon);$investment_ref$$.lai_suat_cam_ket=Number($ivs_tong_so_luong$$.Investment.laiSuatCamKet);$investment_ref$$.lai_suat_truoc_han=Number($ivs_tong_so_luong$$.Investment.laiSuatTruocHan);$investment_ref$$.ky_han=Number($ivs_tong_so_luong$$.Investment.kyHan);$investment_ref$$.cho_phep_rut_von=
|
|
14
|
+
$ivs_tong_so_luong$$.Investment.choPhepRutVon;$investment_ref$$.cho_phep_chuyen_nhuong=$ivs_tong_so_luong$$.Investment.choPhepChuyenNhuong;$investment_ref$$.denom=$ivs_tong_so_luong$$.Investment.denom;$investment_ref$$.da_dao_han=$ivs_tong_so_luong$$.Investment.daDaoHan;$investment_ref$$.lai_da_tra=Number($ivs_tong_so_luong$$.Investment.laiDaTra);await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",
|
|
15
|
+
{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu tru_lai_da_tra".split(" ")});$investment_ref$$.wallet_address=$address$$;$ivs_tong_so_luong$$=$investment_ref$$.so_luong;$investment_ref$$.so_luong=$item$$.amount;
|
|
16
|
+
$investment_ref$$.con_lai=$item$$.amount;$investment_ref$$.lai_da_tra&&0<$ivs_tong_so_luong$$&&($investment_ref$$.lai_da_tra_1_token=Math.roundBy($investment_ref$$.lai_da_tra/$ivs_tong_so_luong$$),$investment_ref$$.lai_da_tra=$investment_ref$$.lai_da_tra_1_token*$investment_ref$$.con_lai);$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=Math.roundBy($investment_ref$$.lai_suat_cam_ket/365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han);
|
|
17
|
+
$investment_ref$$.tong_gia_tri_dao_han=$investment_ref$$.tong_gia_tri+$investment_ref$$.lai_du_tinh;$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.roundBy(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/864E5),$investment_ref$$.tien_lai_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_cam_ket||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri),$investment_ref$$.tien_lai_truoc_han_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_truoc_han||
|
|
18
|
+
0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri)):($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.roundBy(($investment_ref$$.tong_gia_tri+$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,$investment_ref$$.token)}catch($e$$){console.error($e$$)}$item$$.investment=
|
|
19
|
+
$investment_ref$$;$callback$$()}});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $handleResult$$=$assreq_data$$=>{$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;
|
|
20
|
+
delete $assreq_data$$.transaction;delete $assreq_data$$.id_app;delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;return $assreq_data$$},$permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{var $address$$=await global.getModel("assuser_identity").findOne({id_app:$req$$.user.current_id_app,user_created:$req$$.user.email}).lean();
|
|
21
|
+
if(!$address$$)return $fn$$({error:"B\u1ea1n c\u1ea7n x\u00e1c th\u1ef1c th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n giao d\u1ecbch"});if("1"!==$address$$.trang_thai)return $fn$$({error:"H\u1ed3 s\u01a1 th\u00f4ng tin c\u1ee7a b\u1ea1n ch\u01b0a \u0111\u01b0\u1ee3c duy\u1ec7t"});let $data$$=$req$$.body;$address$$=$data$$.from;const $to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,amount:$amount$$,memo:$memo$$}=$data$$;if(!($address$$&&$to_address$$&&
|
|
22
|
+
$denom$$&&$amount$$))return $fn$$({error:"Data miss 'from' or 'to' or 'denom' or 'amount'"});if($address$$===$to_address$$)return $fn$$({error:"\u0110\u1ecba ch\u1ec9 v\u00ed g\u1eedi v\u00e0 nh\u1eadn ph\u1ea3i kh\u00e1c nhau"});try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
|
|
23
|
+
var $_url_assreq$$=await assrequest.findOne({_id:$data$$.assrequest_id,amount:$amount$$,denom:$denom$$,receiver_address:$to_address$$,request_id:$data$$.request_id,order_id:$data$$.order_id});if(!$_url_assreq$$)return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if("1"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"});if("9"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb h\u1ee7y"});
|
|
24
|
+
$memo$$=$memo$$||$data$$.order_info}try{const $rs$$=await spend($req$$.user.current_id_app,$req$$.user.token,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:$memo$$});if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});let $walletReceiver$$=await model.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$});if($walletReceiver$$){let $_userReceiver$$=
|
|
25
|
+
await User.findOne({email:$walletReceiver$$.username});Receiver.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$,user_created:$req$$.user.email},($e$$,$rs$$)=>{$rs$$||Receiver.create({id_app:$req$$.user.current_id_app,name:$data$$.name||($_userReceiver$$||{}).name,address:$to_address$$,user_created:$req$$.user.email})})}if($_url_assreq$$){$_url_assreq$$.trang_thai="1";$_url_assreq$$.sender_address=$address$$;$_url_assreq$$.sender_name=$data$$.sender_name||$req$$.user.name;$_url_assreq$$.sender_user=
|
|
26
|
+
$req$$.user.email;$_url_assreq$$.sender_date=new Date;$_url_assreq$$.transaction=$rs$$;$_url_assreq$$.date_updated=new Date;await $_url_assreq$$.save();let $ctrlReq$$=global.controllers.ASSREQUEST,$assreq_views$$=await $ctrlReq$$.asyncView($req$$.user,[$_url_assreq$$.toObject()],{req:$req$$});controller.pushNotification($ctrlReq$$,$assreq_views$$[0]);const $assreq_data$$=$_url_assreq$$.toObject();$assreq_data$$.is_success=!0;$assreq_data$$.message="Giao d\u1ecbch th\u00e0nh c\u00f4ng";let $returnData$$=
|
|
27
|
+
$handleResult$$($assreq_data$$);if($assreq_data$$.return_url){$_url_assreq$$="";for(let $key$$ in $returnData$$)$_url_assreq$$=$_url_assreq$$?`${$_url_assreq$$}&${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`:`${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`;$_url_assreq$$=`${$assreq_data$$.return_url}?${$_url_assreq$$}`;$returnData$$.return_url=$_url_assreq$$}return $fn$$(null,$returnData$$)}$fn$$(null,$rs$$)}catch($e$$){console.error($e$$),$fn$$({error:$e$$.message||$e$$.error||$e$$})}},
|
|
28
|
+
{method:"POST"});$contr_router$$.createRoute(":address/info",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address;try{let $info$$=await getKeyInfo($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$info$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute(":address/download",async($req$$,$fn$$)=>{if(!$req$$.query["otp-id"]||!$req$$.query["otp-code"])return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u otp-id v\u00e0 otp-code");
|
|
29
|
+
try{await $permission$$.verifyOTP($req$$.user.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $fn$$($e$$.message||$e$$.error||$e$$)}let $address$$=$req$$.params.address;try{let $wallet$$=await getWallet($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$wallet$$.mnemonic)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs/:tx_id",async($req$$,$fn$$)=>{let $network$$=
|
|
30
|
+
"MAINNET",$app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);$req$$=$req$$.params.tx_id;let $rs$$;try{$rs$$=await getTxStatus($req$$,$network$$),$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let $network$$=
|
|
31
|
+
"MAINNET";var $app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);$app$$=$req$$.query.page||"1";let $limit$$=$req$$.query.limit||"20",$events$$;for(let $key$$ in $req$$.query)"page"!==$key$$&&"limit"!==$key$$&&"access_token"!==$key$$&&"id_app"!==$key$$&&($events$$=$events$$?`${$events$$}&${$key$$}=${$req$$.query[$key$$]}`:`${$key$$}=${$req$$.query[$key$$]}`);
|
|
32
|
+
let $rs$$;try{$rs$$=await txQuery($events$$,$app$$,$limit$$,$network$$),$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("query",async($req$$,$fn$$)=>{let $urlQuery$$=$req$$.query.path;if(!$urlQuery$$)return $fn$$({error:"query path is required"});let $network$$="MAINNET";var $app$jscomp$4_limit$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$jscomp$4_limit$$&&
|
|
33
|
+
$app$jscomp$4_limit$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$jscomp$4_limit$$.wallet_network]&&($network$$=$app$jscomp$4_limit$$.wallet_network);$app$jscomp$4_limit$$=$req$$.query.type;let $rs$$;try{"td"===$app$jscomp$4_limit$$||0<=$urlQuery$$.indexOf("block_search")||0<=$urlQuery$$.indexOf("tx_search")?$rs$$=await tdQuery($urlQuery$$,$network$$):($app$jscomp$4_limit$$=20,$req$$.query.limit&&($app$jscomp$4_limit$$=Number($req$$.query.limit),isNaN($app$jscomp$4_limit$$)&&($app$jscomp$4_limit$$=
|
|
34
|
+
20)),$urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.limit="+$app$jscomp$4_limit$$:$urlQuery$$+"&pagination.limit="+$app$jscomp$4_limit$$,$req$$.query.page&&isNaN(Number($req$$.query.page)),$app$jscomp$4_limit$$*=0,$urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.offset="+$app$jscomp$4_limit$$:$urlQuery$$+"&pagination.offset="+$app$jscomp$4_limit$$,$req$$.query.reverse&&($urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.reverse=true":$urlQuery$$+"&pagination.reverse=true"),
|
|
35
|
+
$rs$$=await bcQuery($urlQuery$$,$network$$)),$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let {values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}=$req$$.body;if(0>$typeUrl$$.indexOf("MsgCreateFindhash"))try{await $permission$$.verifyOTP($req$$.user.email,$req$$.body["otp-id"],$req$$.body["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||
|
|
36
|
+
$e$$.error||$e$$,code:4001})}createTx($req$$.user.current_id_app,$req$$.user.token,{values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}).then($rs$$=>{if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});$fn$$(null,$rs$$)}).catch($e$$=>{$fn$$($e$$)})},{method:"POST"});$contr_router$$.createRoute("findhash/:id",
|
|
37
|
+
async($app$jscomp$5_req$$,$fn$$)=>{let $id$$=$app$jscomp$5_req$$.params.id,$network$$="MAINNET";($app$jscomp$5_req$$=await global.getModel("app").findOne({_id:$app$jscomp$5_req$$.user.current_id_app}).lean())&&$app$jscomp$5_req$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$jscomp$5_req$$.wallet_network]&&($network$$=$app$jscomp$5_req$$.wallet_network);try{if("latest"===$id$$){let $lastest$$=await getLatestHash($network$$);if(!$lastest$$)return $fn$$("Not found latest hash");$fn$$(null,$lastest$$)}else{let $hash$$=
|
|
38
|
+
await getHashById($id$$,$network$$);$fn$$(null,$hash$$)}}catch($e$$){$fn$$($e$$.message||$e$$.error||$e$$)}},{method:"GET"});$contr_router$$.createRoute("test-mining/:creator",async($req$$,$fn$$)=>{if("invncur@gmail.com"!==$req$$.user.email)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng n\u00e0y");mining($req$$.user.current_id_app,$req$$.user.email,$req$$.params.creator,$fn$$)},{method:"GET"});$contr_router$$.route()};
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
'use strict';const model=global.getModel("customer"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
$
|
|
7
|
-
$
|
|
1
|
+
'use strict';const model=global.getModel("customer"),dmnhkh=global.getModel("group"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),getAllChildrenUserGroup=async $chil_nh_kh_nh_vt_cons$$=>{let $rs$$=[$chil_nh_kh_nh_vt_cons$$];$chil_nh_kh_nh_vt_cons$$=(await Usergroup.find({group_mother:$chil_nh_kh_nh_vt_cons$$,
|
|
2
|
+
status:!0},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil_nh_kh_nh_vt_cons$$.length&&($chil_nh_kh_nh_vt_cons$$=await Promise.all($chil_nh_kh_nh_vt_cons$$.map($nh$$=>getAllChildrenUserGroup($nh$$))),$chil_nh_kh_nh_vt_cons$$=$chil_nh_kh_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_nh_kh_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllChildrenGroup=async $chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=>{let $rs$$=[$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$];
|
|
3
|
+
$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=(await dmnhkh.find({group_mother:$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$,status:!0,group_type:"CUSTOMER"},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$.length&&($chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=await Promise.all($chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($nh$$))),$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$.reduce(($a$$,
|
|
4
|
+
$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$,...$rs$$]);return $rs$$},customer=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"customer",{sort:{date_updated:-1},unique:["ma_kh"],onFinding:function($user$$,$condition$$,$next$$){async.parallel({user_group:$callback$$=>{$condition$$.user_group?getAllChildrenUserGroup($condition$$.user_group).then($groups$$=>{global.getModel("participant").find({id_app:$user$$.current_id_app,group_id:{$in:$groups$$}},
|
|
5
|
+
{email:1}).then($ps$$=>{$condition$$.phu_trach={$in:$ps$$.map($p$$=>$p$$.email)};delete $condition$$.user_group;$callback$$()}).catch($e$$=>{$callback$$($e$$)})}).catch($e$$=>{$callback$$($e$$)}):$callback$$()},user_of_bp:$callback$$=>{$condition$$.ma_bp?global.getModel("dmbp").getUsersByMaBP($user$$.current_id_app,$condition$$.ma_bp).then($users$$=>{console.log("users of department",$users$$);$condition$$.phu_trach={$in:$users$$};delete $condition$$.ma_bp;$callback$$()}).catch($e$$=>{$callback$$($e$$)}):
|
|
6
|
+
$callback$$()},nh_kh:$callback$$=>{$condition$$.nh_kh&&"string"==typeof $condition$$.nh_kh?getAllChildrenGroup($condition$$.nh_kh).then($nh_vt$$=>{$condition$$.nh_kh={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh2:$callback$$=>{$condition$$.nh_kh2&&"string"==typeof $condition$$.nh_kh2?getAllChildrenGroup($condition$$.nh_kh2).then($nh_vt$$=>{$condition$$.nh_kh2={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh3:$callback$$=>{$condition$$.nh_kh3&&"string"==typeof $condition$$.nh_kh3?
|
|
7
|
+
getAllChildrenGroup($condition$$.nh_kh3).then($nh_vt$$=>{$condition$$.nh_kh3={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh4:$callback$$=>{$condition$$.nh_kh4&&"string"==typeof $condition$$.nh_kh4?getAllChildrenGroup($condition$$.nh_kh4).then($nh_vt$$=>{$condition$$.nh_kh4={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh5:$callback$$=>{$condition$$.nh_kh5&&"string"==typeof $condition$$.nh_kh5?getAllChildrenGroup($condition$$.nh_kh5).then($nh_vt$$=>{$condition$$.nh_kh5=
|
|
8
|
+
{$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()}},()=>{$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$,$options$$){$items$$.forEach($item$$=>{$item$$.email&&!validator.isEmail($item$$.email)&&($item$$.email="");delete $item$$.default_password});async.series({pt:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.filter($item$$=>
|
|
9
|
+
$item$$.nh_kh).joinModel2($user$$.current_id_app,group,[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback$$()})},u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},fields:[{user_name:"name"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},
|
|
10
|
+
ngay_mua:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ngay_mua_gan_nhat"))&&model.updateActives?async.map($items$$.filter($item$$=>void 0===$item$$.ngay_mua_gan_nhat||void 0===$item$$.ngay_tuong_tac_gan_nhat),($item$$,$callback$$)=>{model.updateActives($item$$).then($rs$$=>{$item$$.ngay_mua_gan_nhat=$rs$$.ngay_mua_gan_nhat;$item$$.so_ngay_da_mua=$rs$$.so_ngay_da_mua;$callback$$()}).catch($e$$=>{console.error($e$$);
|
|
11
|
+
$callback$$()})},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()}},()=>{$next$$(null,$items$$)})}});$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_kh&&$obj$$.ten_kh){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_kh$$=await model.asyncCreateCustomerCode($id_app_user$$,$obj$$.ten_kh);$obj$$.ma_kh=$ma_kh$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>
|
|
12
|
+
{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_customer_group:!0})}catch($e$$){return}$data$$.of_user&&$_usergroup$$&&User.findOne({email:$data$$.of_user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.of_user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.of_user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.of_user;$result$$.name=$data$$.ten_kh;
|
|
13
|
+
$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",
|
|
14
|
+
$result$$.email,"to company")})})}})})};module.exports=customer;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
'use strict';const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("async")
|
|
2
|
-
|
|
3
|
-
$
|
|
1
|
+
'use strict';const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("async"),getSysorder=function($item$$,$callback$$){let $sysorder$$=($item$$.stt||"0")+"-"+$item$$.ma_bp;$item$$.ma_bp_me?model.findOne({ma_bp:$item$$.ma_bp_me,id_app:$item$$.id_app}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):
|
|
2
|
+
$callback$$($sysorder$$)};
|
|
3
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmbp",{sort:{sysorder:1},unique:["ma_bp"],onView:function($user$$,$items$$,$next$$){async.series({pt:function($callback$$){$items$$.filter($item$$=>$item$$.phu_trach).joinModel2($user$$.current_id_app,Participant,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$(null,$items$$)})},ph:function($callback$$){$items$$.filter($item$$=>$item$$.phoi_hop).joinModel2($user$$.current_id_app,Participant,
|
|
4
|
+
[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(){$callback$$(null,$items$$)})}},()=>{$next$$(null,$items$$)})}});$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;
|
|
5
|
+
model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({ma_bp_me:$obj$$.ma_bp.toString(),id_app:$obj$$.id_app})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},
|
|
6
|
+
{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $ma_bp_me$$=$obj$jscomp$0$$.ma_bp_me;$ma_bp_me$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_bp:$ma_bp_me$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):console.log("Not found mother account:"+$ma_bp_me$$)})});$contr_router$$.on("deleted",
|
|
7
|
+
function($obj$jscomp$0$$){$obj$jscomp$0$$.ma_bp_me&&model.findOne({ma_bp_me:$obj$jscomp$0$$.ma_bp_me,id_app:$obj$jscomp$0$$.id_app},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_bp:$obj$jscomp$0$$.ma_bp_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
'use strict';const model=global.getModel("group"),controller=require("../../controllers/controller"),
|
|
1
|
+
'use strict';const model=global.getModel("group"),controller=require("../../controllers/controller"),getSysorder=function($item$$,$callback$$){let $sysorder$$=$item$$._id.toString();$item$$.group_mother?model.findOne({_id:$item$$.group_mother}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)},dmnhkh=function($contr_router$$){$contr_router$$=new controller($contr_router$$,
|
|
2
|
+
model,"dmnhkh",{sort:{sysorder:1},findExact:{group_type:1},keyValues:{group_type:"CUSTOMER"}});$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;model.findOneAndUpdate({_id:$obj$$._id},
|
|
3
|
+
{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({group_mother:$obj$$._id.toString()})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,
|
|
4
|
+
loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $group_mother$$=$obj$jscomp$0$$.group_mother;$group_mother$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$group_mother$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):console.log("Not found mother account:"+$group_mother$$)})});$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.group_mother&&
|
|
5
|
+
model.findOne({group_mother:$obj$jscomp$0$$.group_mother},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.group_mother},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};module.exports=dmnhkh;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';const model=global.getModel("dmnvt"),controller=require("../../controllers/controller"),underscore=require("underscore");
|
|
2
|
-
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmnvt",{sort:{
|
|
3
|
-
model.findOne({_id:$item$$.nh_me}).lean().exec(function($e$$,$item_me$$){$item_me$$?$getSysorder$$($item_me$$,function($rs$$){$sysorder$$=$rs$$+"-"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)};$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user
|
|
4
|
-
$next$$){$getSysorder$$($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("-").length;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){$getSysorder$$($obj$$,function($
|
|
5
|
-
console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){
|
|
6
|
-
function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.nh_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmnvt",{sort:{sysorder:1},onView:function($user$$,$items$$,$next$$){$items$$.joinModel($user$$.current_id_app,model,[{akey:"nh_me",bkey:"_id",fields:[{name:"ten_nh_me",value:"ten_nvt"}]}],function(){$items$$=underscore.sortBy($items$$,function($item$$){return $item$$.sysorder});$next$$(null,$items$$)})}});const $getSysorder$$=function($item$$,$callback$$){let $sysorder$$=($item$$.stt||"0")+$item$$._id.toString();
|
|
3
|
+
$item$$.nh_me?model.findOne({_id:$item$$.nh_me}).lean().exec(function($e$$,$item_me$$){$item_me$$?$getSysorder$$($item_me$$,function($rs$$){$sysorder$$=$rs$$+"-"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)};$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,
|
|
4
|
+
$obj$$,$next$$){$getSysorder$$($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("-").length;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){$getSysorder$$($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("-").length;$loai_nh_rs$$=1;await model.findOne({nh_me:$obj$$._id.toString()})&&
|
|
5
|
+
($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $nh_me$$=$obj$jscomp$0$$.nh_me;$nh_me$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$nh_me$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):
|
|
6
|
+
console.log("Not found mother account:"+$nh_me$$)})});$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.nh_me&&model.findOne({nh_me:$obj$jscomp$0$$.nh_me,id_app:$obj$jscomp$0$$.id_app},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.nh_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};
|