flexbiz-server 12.2.2 → 12.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/server/app.js +14 -14
- package/server/auths/local.js +27 -26
- package/server/cluster.js +12 -11
- package/server/controllers/controller.js +83 -79
- package/server/controllers/controllerRPT.js +18 -17
- 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/cdpstk.js +1 -1
- package/server/libs/databanle.js +13 -13
- package/server/libs/getGiaban.js +17 -16
- package/server/libs/permission.js +12 -12
- package/server/libs/post-book.js +9 -8
- package/server/libs/post-socai.js +9 -9
- package/server/libs/prototypes.js +7 -7
- package/server/libs/tinhGtPhanboSltp.js +5 -5
- package/server/libs/tinhGtPhanboYtcp.js +2 -2
- package/server/libs/tinhGtThcppstk.js +1 -1
- package/server/libs/tinhGtTrucTiep.js +8 -7
- package/server/libs/tinhgiatb.js +16 -19
- package/server/libs/tinhgiatb1vt.js +3 -3
- package/server/libs/tinhhoahong.js +32 -0
- package/server/libs/utils.js +4 -3
- package/server/models/app.js +9 -8
- package/server/models/approve.js +4 -4
- package/server/models/customer.js +8 -4
- package/server/models/dh2.js +10 -7
- package/server/models/dmbp.js +7 -4
- package/server/models/dmgiaban.js +6 -6
- package/server/models/dmhoahonghd.js +6 -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/fbconversation.js +9 -0
- package/server/models/fbmessage.js +2 -0
- package/server/models/fbpage.js +2 -0
- package/server/models/group.js +7 -5
- package/server/models/hd2.js +11 -8
- package/server/models/hd3.js +9 -9
- package/server/models/hd7.js +1 -1
- package/server/models/listinfo.js +15 -8
- package/server/models/notification.js +3 -2
- package/server/models/originimportid.js +1 -0
- package/server/models/participant.js +5 -5
- package/server/models/pbl.js +4 -4
- package/server/models/reportinfo.js +2 -2
- package/server/models/rptform.js +3 -2
- package/server/models/schedule.js +1 -1
- package/server/models/so1.js +17 -14
- package/server/models/socai.js +7 -5
- package/server/models/task.js +4 -4
- package/server/models/tdttco.js +8 -4
- package/server/models/tdttno.js +8 -4
- package/server/models/tokens.js +2 -2
- package/server/models/tontucthoi.js +2 -2
- package/server/models/usergroup.js +4 -3
- package/server/models/vatra.js +2 -2
- package/server/models/vatvao.js +4 -4
- package/server/modules/lists/ls-assinvestment.js +1 -1
- package/server/modules/lists/ls-asskey.js +34 -34
- package/server/modules/lists/ls-customer.js +13 -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 +48 -35
- package/server/modules/lists/ls-ecomcategories.js +5 -0
- package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
- package/server/modules/lists/ls-fbconversation.js +3 -0
- package/server/modules/lists/ls-fbmessage.js +3 -0
- package/server/modules/lists/ls-fbpage.js +10 -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-news.js +1 -1
- package/server/modules/lists/ls-opportunity.js +3 -3
- package/server/modules/lists/ls-session.js +2 -2
- package/server/modules/lists/ls-task.js +18 -18
- package/server/modules/lists/ls-usergroup.js +6 -2
- package/server/modules/public/callin.js +6 -6
- package/server/modules/reports/calc-tinhgiatb.js +2 -2
- package/server/modules/reports/rp-cdpstk.js +3 -3
- package/server/modules/reports/rp-chitiettaisan.js +9 -8
- package/server/modules/reports/rp-ckvt.js +9 -7
- package/server/modules/reports/rp-congviectheonv.js +5 -5
- package/server/modules/reports/rp-ctbanle.js +13 -12
- package/server/modules/reports/rp-databanle.js +8 -4
- package/server/modules/reports/rp-dtbanletheoct.js +16 -9
- package/server/modules/reports/rp-dtbanletheokh.js +12 -6
- package/server/modules/reports/rp-dtbanletheokho.js +14 -9
- package/server/modules/reports/rp-dtbanletheonam.js +15 -9
- package/server/modules/reports/rp-dtbanletheongay.js +13 -8
- package/server/modules/reports/rp-dtbanletheonv.js +15 -9
- package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
- package/server/modules/reports/rp-dtbanletheothang.js +15 -9
- package/server/modules/reports/rp-getinvoice2pay.js +4 -6
- package/server/modules/reports/rp-getinvoice2receive.js +4 -6
- package/server/modules/reports/rp-hoahong.js +9 -0
- package/server/modules/reports/rp-kqhdkd.js +5 -4
- package/server/modules/reports/rp-ptcttct.js +7 -6
- package/server/modules/reports/rp-pttct.js +8 -8
- package/server/modules/reports/rp-pttctkho.js +3 -2
- package/server/modules/reports/rp-pttctkho2.js +3 -3
- package/server/modules/reports/rp-thnxt.js +8 -7
- package/server/modules/reports/rp-thnxt_sl.js +6 -6
- package/server/modules/reports/rp-thnxttt.js +6 -6
- package/server/modules/reports/rp-tmbctc.js +16 -16
- package/server/modules/systems/sys-app.js +25 -24
- package/server/modules/systems/sys-notification.js +2 -2
- package/server/modules/systems/sys-schedule.js +1 -1
- package/server/modules/systems/sys-user.js +8 -8
- package/server/modules/vouchers/vo-bc1.js +9 -8
- package/server/modules/vouchers/vo-bg2.js +9 -9
- package/server/modules/vouchers/vo-bn1.js +5 -4
- package/server/modules/vouchers/vo-dh2.js +14 -19
- package/server/modules/vouchers/vo-dnm.js +11 -12
- package/server/modules/vouchers/vo-hd2.js +66 -54
- package/server/modules/vouchers/vo-hd3.js +28 -22
- package/server/modules/vouchers/vo-hd7.js +37 -36
- package/server/modules/vouchers/vo-pbl.js +49 -49
- package/server/modules/vouchers/vo-pc1.js +9 -8
- package/server/modules/vouchers/vo-pn1.js +24 -22
- package/server/modules/vouchers/vo-pn5.js +1 -1
- package/server/modules/vouchers/vo-pn9.js +23 -23
- package/server/modules/vouchers/vo-pnc.js +8 -8
- package/server/modules/vouchers/vo-pnh.js +5 -5
- package/server/modules/vouchers/vo-pt1.js +17 -16
- package/server/modules/vouchers/vo-pxc.js +16 -16
- package/server/modules/vouchers/vo-pxh.js +12 -10
- package/server/modules/vouchers/vo-so1.js +90 -116
- package/server/modules/vouchers/vo-so4.js +1 -1
- package/server/modules/vouchers/vo-so5.js +2 -2
- package/server/templates/reset mat khau.html +1 -1
- package/server/templates/reset mat khau.pug +1 -3
- package/server/workers/restoreApp.js +21 -12
- package/server/workers/runScript.js +3 -3
package/server/models/hd7.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},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},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},tk_tl:{type:String,uppercase:!0,maxlength:32},id_reason:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,
|
|
3
3
|
default:"",maxlength:32},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},
|
|
4
4
|
ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
5
|
-
|
|
5
|
+
const detailDoiSchema=new Schema({id_hd:{type:String},ma_vt:{type:String,required:!0,uppercase:!0},ma_dvt:{type:String,required:!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},tk_vt:{type:String,uppercase:!0},tk_gv:{type:String,uppercase:!0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},
|
|
6
6
|
tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},tk_dt:{type:String,uppercase:!0},id_reason:{type:String},ma_kh:{type:String,uppercase:!0,default:""},ma_bp:{type:String,uppercase:!0,default:""},ma_phi:{type:String,uppercase:!0,default:""},ma_hd:{type:String,uppercase:!0,default:""},ma_dt:{type:String,uppercase:!0,default:""},ma_nv:{type:String,uppercase:!0,
|
|
7
7
|
default:""},ma_lo:{type:String,default:"",uppercase:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0},ma_tt2:{type:String,default:"",uppercase:!0},ma_tt3:{type:String,default:"",uppercase:!0},dien_giai:{type:String},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailDoiSchema.validate={tk_vt:validAccount.existsTk,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
8
8
|
const vatvaoSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0},ma_tc:{type:String,default:"",required:!0,uppercase:!0,trim:!0},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0},so_seri:{type:String,default:"",required:!0,uppercase:!0,trim:!0},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,uppercase:!0},thue_suat:{type:Number,
|
|
@@ -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;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';const notificationSchema=new Schema({key:String,email_sender:{type:String,required:!0},email_receiver:{type:String,required:!0},email_owner:{type:String,required:!0},title:{type:String,required:!0},content:{type:String},exfields:Schema.Types.Mixed,read:{type:Boolean,default:!1},status:{type:Boolean,default:!1},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});notificationSchema.index({email_owner:1});
|
|
2
2
|
notificationSchema.index({email_receiver:1});notificationSchema.index({email_sender:1});notificationSchema.index({"exfields.id_app":1});notificationSchema.index({email_receiver:1,email_owner:1,read:-1});notificationSchema.index({date_created:-1});notificationSchema.index({title:"text",content:"text"});notificationSchema.index({key:1},{unique:!0});notificationSchema.index({title:1});notificationSchema.index({content:1});notificationSchema.index({status:1});
|
|
3
3
|
notificationSchema.index({user_created:1,visible_to:1,visible_to_users:1});const Notification=mongoose.models.notification||mongoose.model("notification",notificationSchema);
|
|
4
|
-
Notification.createNotification=async function($email_sender$$,$email_receiver$$,$title$$,$content$$,$fn$$,$exfields$$,$emitEvent
|
|
5
|
-
$
|
|
4
|
+
Notification.createNotification=async function($email_sender$$,$email_receiver$$,$title$$,$content$$,$fn$$,$exfields$$,$emitEvent$$){let $key$$=($exfields$$||{}).key||`${$email_receiver$$}-${(new Date).getTime()}`;var $ex_notifi_re$$;($exfields$$||{}).key&&($ex_notifi_re$$=await Notification.findOne({key:$key$$}));$ex_notifi_re$$||($ex_notifi_re$$=new Notification,$ex_notifi_re$$.email_owner=$email_receiver$$,$ex_notifi_re$$.email_sender=$email_sender$$,$ex_notifi_re$$.email_receiver=$email_receiver$$,
|
|
5
|
+
$ex_notifi_re$$.title=$title$$,$ex_notifi_re$$.content=$content$$,$ex_notifi_re$$.exfields=$exfields$$,$ex_notifi_re$$.exfields&&($ex_notifi_re$$.exfields.app_info=void 0),$ex_notifi_re$$.key=$key$$,$ex_notifi_re$$.user_created=$email_sender$$,$ex_notifi_re$$.user_updated=$email_sender$$,$ex_notifi_re$$.save(function($err$$,$m$$){$err$$?(console.error($err$$),$fn$$&&$fn$$($err$$)):(global.alertNotification($email_receiver$$),global.sendNotification($email_receiver$$,$m$$._id,$m$$.toObject(),!1!==
|
|
6
|
+
$emitEvent$$),$fn$$&&$fn$$(null,$m$$,$m$$))}))};module.exports=Notification;
|
|
@@ -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;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
'use strict';const usergroup=require("./usergroup"),validator=require("validator"),participantScheam=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},email:{type:String,required:!0,lowercase:!0,maxlength:128,trim:!0},phone:{type:String,lowercase:!0,maxlength:128,trim:!0},name:{type:String,maxlength:1024},admin:{type:Boolean,default:!1},active:{type:Boolean,default:!0},cancel:{type:Boolean,default:!1},auto_create_user:{type:Boolean,default:!0},group_id:{type:String,maxlength:1024
|
|
2
|
-
phu_trach:{type:String},password:{type:String,maxlength:1024},hotline:{type:String,maxlength:1024},ext:{type:String,maxlength:1024},signature_image:String,session_created:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},user_created:{type:String,default:""},date_updated:{type:Date,default:Date.now},user_updated:{type:String,default:""}});participantScheam.index({id_app:1,email:1},{unique:!0});participantScheam.index({email:1});
|
|
3
|
-
participantScheam.index({name:1});participantScheam.index({admin:1});participantScheam.index({session_created:1});participantScheam.index({phu_trach:1});participantScheam.index({group_id:1});participantScheam.index({hotline:1});participantScheam.index({ext:1});participantScheam.index({status:1});participantScheam.index({user_created:1,visible_to:1,visible_to_users:1});participantScheam.index({email:"text",name:"text",ext:"text"});
|
|
1
|
+
'use strict';const usergroup=require("./usergroup"),validator=require("validator"),participantScheam=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},email:{type:String,required:!0,lowercase:!0,maxlength:128,trim:!0},phone:{type:String,lowercase:!0,maxlength:128,trim:!0},name:{type:String,maxlength:1024},admin:{type:Boolean,default:!1},active:{type:Boolean,default:!0},cancel:{type:Boolean,default:!1},auto_create_user:{type:Boolean,default:!0},group_id:{type:String,maxlength:1024,
|
|
2
|
+
ref:"usergroup",localField:["group_id"],foreignField:["_id"]},phu_trach:{type:String},password:{type:String,maxlength:1024},hotline:{type:String,maxlength:1024},ext:{type:String,maxlength:1024},signature_image:String,session_created:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},user_created:{type:String,default:""},date_updated:{type:Date,default:Date.now},user_updated:{type:String,default:""}});participantScheam.index({id_app:1,email:1},{unique:!0});participantScheam.index({email:1});
|
|
3
|
+
participantScheam.index({id_app:1,phone:1});participantScheam.index({name:1});participantScheam.index({admin:1});participantScheam.index({session_created:1});participantScheam.index({phu_trach:1});participantScheam.index({group_id:1});participantScheam.index({hotline:1});participantScheam.index({ext:1});participantScheam.index({status:1});participantScheam.index({user_created:1,visible_to:1,visible_to_users:1});participantScheam.index({email:"text",name:"text",ext:"text"});
|
|
4
4
|
participantScheam.pre("save",async function($next$$){if("public"===this.email&&this.admin)return $next$$("T\u00e0i kho\u1ea3n public kh\u00f4ng th\u1ec3 l\u00e0 qu\u1ea3n tr\u1ecb vi\u00ean");if(this.group_id&&global.mongoose.Types.ObjectId.isValid(this.group_id)){var $app_group$$=await usergroup.findOne({_id:this.group_id}).lean()||{};this.phu_trach=$app_group$$.phu_trach||""}if(!this.admin&&!($app_group$$||{}).is_employee_group){$app_group$$=await global.getModel("app").findOne({_id:this.id_app}).lean();
|
|
5
5
|
if(!$app_group$$)return $next$$("id_app is not valid");if($app_group$$.account_types_accept&&0<$app_group$$.account_types_accept.length){if(0>$app_group$$.account_types_accept.indexOf("email")&&validator.isEmail(this.email))return $next$$(`T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 \u0111\u1ecba ch\u1ec9 email: ${this.email}`);if(0>$app_group$$.account_types_accept.indexOf("phone")&&validator.isMobilePhone(this.email,["vi-VN"]))return $next$$(`T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i: ${this.email}`)}}$next$$()});
|
|
6
6
|
const model=global.mongoose.models.participant||global.mongoose.model("participant",participantScheam);model.ofApp=async($id_app$$,$email$$)=>{let $condition$$={id_app:$id_app$$};$email$$&&($condition$$.email=$email$$);return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$)})})};
|
|
7
7
|
model.appsOfUser=async $email$$=>{let $condition$$={email:$email$$};return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$)})})};
|
|
8
|
-
model.createParticipant=($data$$,$callback$$)=>{$data$$.name=$data$$.name||$data$$.email;model.findOne({id_app:$data$$.id_app,email:$data$$.email},($e$jscomp$0$$,$rs$jscomp$0$$)=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);if($rs$jscomp$0$$)return $callback$$(null,$rs$jscomp$0$$)
|
|
9
|
-
model.asyncCreateParticipant=async $data$$=>new Promise(($resolve$$,$reject$$)=>{model.createParticipant($data$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})});
|
|
8
|
+
model.createParticipant=async($data$$,$callback$$)=>{$data$$.name=$data$$.name||$data$$.email;model.findOne({id_app:$data$$.id_app,email:$data$$.email},async($e$jscomp$0$$,$rs$jscomp$0$$)=>{if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);if($rs$jscomp$0$$)return $callback$$(null,$rs$jscomp$0$$);!$data$$.group_id&&($e$jscomp$0$$=await global.getModel("usergroup").findOne({id_app:$data$$.id_app,is_customer_group:!0,default_group:!0}).lean())&&($data$$.group_id=$e$jscomp$0$$._id.toString());model.create($data$$,
|
|
9
|
+
($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})})};model.asyncCreateParticipant=async $data$$=>new Promise(($resolve$$,$reject$$)=>{model.createParticipant($data$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})});
|
|
10
10
|
model.referredUsers=async($id_app$$,$be_introduced_by_level1$$,$level$$=1)=>{$be_introduced_by_level1$$=await global.getModel("introducer").find({id_app:$id_app$$,be_introduced_by:$be_introduced_by_level1$$}).lean().exec();$be_introduced_by_level1$$=$be_introduced_by_level1$$.filter($l$$=>$l$$.be_introduced!=$l$$.be_introduced_by).map($l$$=>({user:$l$$.be_introduced,by:$l$$.be_introduced_by,introduce_code:$l$$.introduce_code,date:$l$$.date_created,level:$level$$}));if(0==$be_introduced_by_level1$$.lenth)return $be_introduced_by_level1$$;
|
|
11
11
|
let $level2$$=await Promise.all($be_introduced_by_level1$$.map($intro$$=>model.referredUsers($id_app$$,$intro$$.user,$intro$$.level+1)));return $be_introduced_by_level1$$.concat($level2$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]))};
|
|
12
12
|
const referByUsers=async($id_app$$,$be_introduced_level1$$,$level$$=1)=>{$be_introduced_level1$$=await global.getModel("introducer").find({id_app:$id_app$$,be_introduced:$be_introduced_level1$$}).lean().exec();$be_introduced_level1$$=$be_introduced_level1$$.filter($l$$=>$l$$.be_introduced!=$l$$.be_introduced_by).map($l$$=>({user:$l$$.be_introduced,by:$l$$.be_introduced_by,introduce_code:$l$$.introduce_code,date:$l$$.date_created,level:$level$$}));if(0==$be_introduced_level1$$.lenth)return $be_introduced_level1$$;
|
package/server/models/pbl.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,required:!0,maxlength:32,trim:!0},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},sl_order:{type:Number,default:0},sl_xuat:{type:Number,default:0},sl_gui_bep:{type:Number,default:0},sl_gui_bartender:{type:Number,default:0},sl_ht:{type:Number,default:0},
|
|
2
|
-
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_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},sl_ap_dung_km:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},
|
|
3
|
-
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,default:0},ck_sl_tu2:[],tien_evoucher_duoc_pb:{type:Number,default:0},promotion:Schema.Types.Mixed,combo:Schema.Types.Mixed,
|
|
4
|
-
|
|
5
|
-
finish_time:{type:Date},ghi_chu:{type:String},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0},het_hang:{type:Boolean,default:!1}});detailSchema.validate={ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
2
|
+
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_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},sl_ap_dung_km:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct_nt:{type:Number},
|
|
3
|
+
gia_ban_ct:{type:Number},tien_ct_nt:{type:Number},tien_ct:{type:Number},tien_thue_nt:{type:Number},tien_thue:{type:Number},thue_suat:{type:Number},tk_thue_co:String,tk_thue_co_treo:String,cs_discount:Schema.Types.Mixed,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,default:0},ck_sl_tu2:[],tien_evoucher_duoc_pb:{type:Number,default:0},promotion:Schema.Types.Mixed,combo:Schema.Types.Mixed,
|
|
4
|
+
km_yn_for:String,ma_thue:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
|
|
5
|
+
ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},sign_user:String,sign_data:Schema.Types.Mixed,signature:String,order_time:{type:Date,default:Date.now},finish_time:{type:Date},ghi_chu:{type:String},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0},het_hang:{type:Boolean,default:!1}});detailSchema.validate={ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
6
6
|
const pblSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PBL",required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},so_ct:{type:String,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
7
|
ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_kh:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_kho:String,ma_ban:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_ban0:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},ong_ba:{type:String,maxlength:1024},sender_email:{type:String,maxlength:128},id_trans:{type:String,maxlength:1024},
|
|
8
8
|
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,pt_thanh_toan:{type:String},tien_thu:{type:Number,default:0},pt_thanh_toan2:{type:String},tien_thu2:{type:Number,default:0},ghi_chu_tt:String,con_no:{type:Number,default:0},phai_tra:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},nguoi_giao_dich:{type:String,maxlength:1024},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use strict';const reportinfoSchema=new global.Schema({code:{type:String,required:!0,index:!0,lowercase:!0,trim:!0},title:{type:String,required:!0},title2:{type:String},table_info:{type:String,trim:!0},columns:[],form_condition_info:{type:String,trim:!0},drilldown_info:{type:String,trim:!0},search_label:{type:String,trim:!0},cancel_label:{type:String,trim:!0},allow_users:{type:String,trim:!0},api_code:{type:String,lowercase:!0,trim:!0},handle_condition:{type:String,trim:!0},handle_data:{type:String,
|
|
2
|
-
trim:!0},handle_data_expression:{type:String,trim:!0},handle_data_expression_server:{type:String,trim:!0},is_dashboard_item:{type:Boolean,default:!1},dashboard_default:{type:Boolean,default:!0},dashboard_ids:{type:String,trim:!0},dashboard_rptform_condition:{type:String,trim:!0},chart_stt:{type:Number},chart_data_key_x:{type:String,trim:!0},chart_data_key_ys:{type:String,trim:!0},chart_type:{type:String,trim:!0},chart_width:{type:Number,default:4,max:12,min:
|
|
3
|
-
min:
|
|
2
|
+
trim:!0},handle_data_expression:{type:String,trim:!0},handle_data_expression_server:{type:String,trim:!0},is_dashboard_item:{type:Boolean,default:!1},dashboard_default:{type:Boolean,default:!0},dashboard_ids:{type:String,trim:!0},dashboard_rptform_condition:{type:String,trim:!0},chart_stt:{type:Number},chart_data_key_x:{type:String,trim:!0},chart_data_key_ys:{type:String,trim:!0},chart_type:{type:String,trim:!0},chart_width:{type:Number,default:4,max:12,min:0},chart_height:{type:Number,default:2,
|
|
3
|
+
min:0},chart_handle_data:{type:String,trim:!0},exfields:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});reportinfoSchema.index({id_app:1,code:1});reportinfoSchema.index({title:1});reportinfoSchema.index({table_info:1});reportinfoSchema.index({is_dashboard_item:1});reportinfoSchema.index({dashboard_ids:1});
|
|
4
4
|
reportinfoSchema.index({code:"text",title:"text"});reportinfoSchema.index({status:1});reportinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=global.mongoose.models.reportinfo||global.mongoose.model("reportinfo",reportinfoSchema);module.exports=model;
|
package/server/models/rptform.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';const kbmPttctSchema=new Schema({stt:{type:Number,required:!0},ma_so:{type:String,required:!0,uppercase:!0},chi_tieu:{type:String,required:!0},chi_tieu2:{type:String},thuyet_minh:{type:String},print:{type:Boolean,default:!0},bold:{type:Boolean,default:!1},cach_tinh:{type:String,required:!0,enum:["1","2","9"]},tk_no:[String],tk_co:[String],giam_tru_no:{type:Boolean,default:!1},giam_tru_co:{type:Boolean,default:!1},cong_thuc:{type:String},query:{type:String},dieu_kien_khac:{type:String},
|
|
2
2
|
cong_thuc_so_kn:{type:String},cong_thuc_so_kn_nt:{type:String},cong_thuc_so_kt:{type:String},cong_thuc_so_kt_nt:{type:String},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024},ma_kho:{type:String,default:"",
|
|
3
|
-
uppercase:!0,maxlength:32},chart:String,khong_tinh_tong:{type:Boolean,default:!1},ct_socai:{type:Boolean,default:!1},chi_tinh_cac_cot:[]}),rptformSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},form_kbm:{type:String},rptform_type:{type:String,uppercase:!0,required:!0},rptform_name:{type:String,required:!0},report:[kbmPttctSchema],exfields:Schema.Types.Mixed,
|
|
4
|
-
default:""},user_updated:{type:String,default:""}});rptformSchema.index({id_app:1,rptform_type:1,rptform_name:1});rptformSchema.index({rptform_name:"text",ma_so:"text",chi_tieu:"text"});rptformSchema.index({chi_tieu:1});
|
|
3
|
+
uppercase:!0,maxlength:32},chart:String,khong_tinh_tong:{type:Boolean,default:!1},ct_socai:{type:Boolean,default:!1},chi_tinh_cac_cot:[]}),rptformSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},form_kbm:{type:String},rptform_type:{type:String,uppercase:!0,required:!0},rptform_name:{type:String,required:!0},report:[kbmPttctSchema],exfields:Schema.Types.Mixed,chart_stt:{type:Number},chart_data_key_x:{type:String,trim:!0},chart_data_key_ys:{type:String,trim:!0},chart_type:{type:String,
|
|
4
|
+
trim:!0},chart_width:{type:Number,default:4,max:12,min:0},chart_height:{type:Number,default:2,min:0},chart_handle_data:{type:String,trim:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});rptformSchema.index({id_app:1,rptform_type:1,rptform_name:1});rptformSchema.index({rptform_name:"text",ma_so:"text",chi_tieu:"text"});rptformSchema.index({chi_tieu:1});
|
|
5
|
+
rptformSchema.index({ma_so:1});rptformSchema.index({status:1});rptformSchema.index({user_created:1,visible_to:1,visible_to_users:1});var model=mongoose.models.rptform||mongoose.model("rptform",rptformSchema);module.exports=model;
|
|
@@ -11,5 +11,5 @@ model.removeSchedule=async $id$$=>{await model.deleteOne({_id:$id$$});try{let $s
|
|
|
11
11
|
model.removeScheduleLink=async $id_link$$=>{await model.deleteOne({id_link:$id_link$$});try{let $schedules$$=await model.loadFromRedis();$schedules$$=$schedules$$.filter($s$$=>$s$$.id_link!==$id_link$$);await model.saveToRedis($schedules$$)}catch($e$$){console.error("error remove schedule",$e$$)}};
|
|
12
12
|
model.check=async($callback$$=()=>{})=>{try{let $schedules$$=await model.loadFromRedis(),$handle_schedules$$=$schedules$$.filter($s$$=>{if("9"===$s$$.trang_thai||!$s$$.repeat&&"1"===$s$$.trang_thai)return!1;let $current$$=Moment().toDate();return Moment($s$$.next_run||$s$$.time_run).toDate().getTime()<=$current$$.getTime()});async.mapSeries($handle_schedules$$,($schedule$$,$cb$$)=>{if($schedule$$.repeat){let $next_run$$=Moment();switch($schedule$$.repeat){case 1:$next_run$$=$next_run$$.add(1,"days");
|
|
13
13
|
break;case 2:$next_run$$=$next_run$$.add(1,"weeks");break;case 3:$next_run$$=$next_run$$.add(1,"months");break;case 4:$next_run$$=$next_run$$.add(1,"quarters");break;case 7:$next_run$$=$next_run$$.add(1,"hours");break;default:$next_run$$=$next_run$$.add(1,"years")}let $finish_run$$=$schedule$$.finish_run;$finish_run$$&&($finish_run$$=Moment($finish_run$$).startOf("date"));$finish_run$$&&$finish_run$$.toDate()<$next_run$$.toDate()?$schedule$$.trang_thai="9":$schedule$$.trang_thai="0";$schedule$$.next_run=
|
|
14
|
-
$next_run$$}else $schedule$$.trang_thai="9";let $action$$=$schedule$$.action;actions[$action$$]&&model.findOneAndUpdate({_id:$schedule$$._id},$schedule$$).then(async()=>{try{await actions[$action$$]($schedule$$),schedule_log.create({id_schedule:$schedule$$._id,message:"ok"})}catch($e$$){schedule_log.create({id_schedule:$schedule$$._id,message:"Error:"+($e$$.message||$e$$.error||$e$$)}),console.error($e$$)}});$cb$$()},async()=>{$schedules$$=$schedules$$.filter($s$$=>"0"===$s$$.trang_thai);await model.saveToRedis($schedules$$);
|
|
14
|
+
$next_run$$}else $schedule$$.trang_thai="9";let $action$$=$schedule$$.action;actions[$action$$]&&model.findOneAndUpdate({_id:$schedule$$._id},$schedule$$).then(async()=>{try{await actions[$action$$]($schedule$$),schedule_log.create({id_schedule:$schedule$$._id,message:"ok"})}catch($e$$){schedule_log.create({id_schedule:$schedule$$._id,message:"Error: "+($e$$.message||$e$$.error||$e$$)}),console.error($e$$)}});$cb$$()},async()=>{$schedules$$=$schedules$$.filter($s$$=>"0"===$s$$.trang_thai);await model.saveToRedis($schedules$$);
|
|
15
15
|
setTimeout(()=>{$callback$$()},time_check)})}catch($e$$){console.error($e$$),setTimeout(()=>{$callback$$()},time_check)}};model.start=()=>{model.find({trang_thai:"0"}).lean().then($rs$$=>{global.clientRedis.set(redis_key,JSON.stringify($rs$$),()=>{async.forever(function($next$$){model.check($e$$=>{$next$$($e$$)})},function($err$$){$err$$&&console.error($err$$)})})})};module.exports=model;
|
package/server/models/so1.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
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},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct_nt:{type:Number},tien_ct:{type:Number},tien_thue_nt:{type:Number},tien_thue:{type:Number},thue_suat:{type:Number},tk_thue_co:String,tk_thue_co_treo:String,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,
|
|
4
|
+
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,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},
|
|
5
|
+
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,uppercase:!0,maxlength:32},ma_thue:String,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},
|
|
6
|
+
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,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,
|
|
7
|
+
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
8
|
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({
|
|
16
|
-
|
|
9
|
+
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},
|
|
10
|
+
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},
|
|
11
|
+
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,
|
|
12
|
+
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,
|
|
13
|
+
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,
|
|
14
|
+
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},
|
|
15
|
+
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,
|
|
16
|
+
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});
|
|
17
|
+
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});
|
|
18
|
+
so1Schema.index({user_created:1,visible_to:1,visible_to_users:1});so1Schema.index({user_nv:1});so1Schema.index({user_gt:1});so1Schema.index({user_ctv:1});so1Schema.index({user_ql: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$$()});
|
|
19
|
+
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"}]};module.exports=model;
|
package/server/models/socai.js
CHANGED
|
@@ -5,11 +5,13 @@ 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$$()});
|
|
9
|
-
socaiSchema.
|
|
10
|
-
|
|
11
|
-
socaiSchema.index({
|
|
12
|
-
|
|
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});
|
|
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({id_ct:1,nh_dk:1},{unique:!0});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});
|
|
12
|
+
socaiSchema.index({ma_bp:1});socaiSchema.index({ma_phi:1});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});
|
|
13
|
+
socaiSchema.index({ma_lo:1});socaiSchema.index({han_sd:-1});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});
|
|
14
|
+
socaiSchema.index({trang_thai:1});const model=mongoose.models.socai||mongoose.model("socai",socaiSchema);model.on("index",async function($err$$){$err$$?console.error("socai index error",$err$$):console.info("socai indexing complete")});
|
|
13
15
|
model.getArise=async($query$$,$options$$={fields:void 0})=>{let $condition$$={ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_bp&&($condition$$.ma_bp=$query$$.ma_bp);$query$$.ma_hd&&($condition$$.ma_hd=$query$$.ma_hd);$query$$.ma_dt&&($condition$$.ma_dt=$query$$.ma_dt);$query$$.ma_sp&&($condition$$.ma_sp=$query$$.ma_sp);$query$$.ma_nv&&($condition$$.ma_nv=$query$$.ma_nv);$query$$.ma_phi&&($condition$$.ma_phi=
|
|
14
16
|
$query$$.ma_phi);$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);if($query$$.tk_no&&Array.isArray($query$$.tk_no)){var $tk_co_tk_no$$=$query$$.tk_no.reg();$condition$$.tk_no=$query$$.giam_tru_no?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"}}$query$$.tk_co&&Array.isArray($query$$.tk_co)&&($tk_co_tk_no$$=$query$$.tk_co.reg(),$condition$$.tk_co=$query$$.giam_tru_co&&$tk_co_tk_no$$?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"});return await model.find($condition$$,
|
|
15
17
|
$options$$.fields).lean()};module.exports=model;
|
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;
|
package/server/models/tdttco.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
'use strict';const tdttcoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
|
|
2
|
-
required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_co:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
|
|
3
|
-
maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,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:""},exfields_detail:global.Schema.Types.Mixed});tdttcoSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_ct:-1,ma_kh:1});tdttcoSchema.index({status:1});
|
|
4
|
-
tdttcoSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
1
|
+
'use strict';const async=require("async"),tdttcoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
|
|
2
|
+
default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_co:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
|
|
3
|
+
uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,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:""},exfields_detail:global.Schema.Types.Mixed});tdttcoSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_ct:-1,ma_kh:1});tdttcoSchema.index({status:1});
|
|
4
|
+
tdttcoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
|
|
5
|
+
model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;
|
|
6
|
+
$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttco_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=
|
|
7
|
+
0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);$resolve$$($results$$)})})});
|
|
8
|
+
module.exports=model;
|
package/server/models/tdttno.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
'use strict';const tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
|
|
2
|
-
required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
|
|
3
|
-
maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1});tdttnoSchema.index({status:1});
|
|
4
|
-
tdttnoSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
1
|
+
'use strict';const async=require("async"),tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
|
|
2
|
+
default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
|
|
3
|
+
uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1});tdttnoSchema.index({status:1});
|
|
4
|
+
tdttnoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
|
|
5
|
+
model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;
|
|
6
|
+
$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=
|
|
7
|
+
0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);$resolve$$($results$$)})})});
|
|
8
|
+
module.exports=model;
|
package/server/models/tokens.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128,trim:!0},token:String,refreshToken:String,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,session_created:String,session_updated:String,status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});tokenSchema.index({email:1});tokenSchema.index({token:"text"});tokenSchema.index({
|
|
2
|
-
tokenSchema.index({session_updated:1});tokenSchema.index({status:1});module.exports=mongoose.models.token||mongoose.model("token",tokenSchema);
|
|
1
|
+
'use strict';const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128,trim:!0},token:String,refreshToken:String,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,session_created:String,session_updated:String,status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});tokenSchema.index({email:1});tokenSchema.index({token:"text"});tokenSchema.index({note:1});tokenSchema.index({ip:1});tokenSchema.index({date_created:-1});
|
|
2
|
+
tokenSchema.index({session_created:1});tokenSchema.index({session_updated:1});tokenSchema.index({status:1});module.exports=mongoose.models.token||mongoose.model("token",tokenSchema);
|
|
@@ -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,6 @@
|
|
|
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},
|
|
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,
|
|
3
|
-
usergroupSchema.index({
|
|
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},is_agent_group:{type:Boolean,default:!1},is_pttt_group:{type:Boolean,default:!1},default_group:Boolean,tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,
|
|
2
|
+
tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,loai_nh:{type:Number,default:1},bac:Number,sysorder:String,mieu_ta_chinh_sach: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,
|
|
3
|
+
default:0},dataview_to_users:[String]});usergroupSchema.index({id_app:1,is_customer_group:1});usergroupSchema.index({id_app:1,is_employee_group:1});usergroupSchema.index({id_app:1,is_partner_group:1});usergroupSchema.index({id_app:1,is_agent_group:1});usergroupSchema.index({id_app:1,is_pttt_group:1});usergroupSchema.index({phu_trach:1});usergroupSchema.index({group_name:1});usergroupSchema.index({group_mother:1});usergroupSchema.index({default_group:1});usergroupSchema.index({loai_nh:1});usergroupSchema.index({bac:1});
|
|
4
|
+
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);model.referenceKeys={_id:[{model:"participant",key:"group_id",error:"Kh\u00f4ng th\u1ec3 x\u00f3a nh\u00f3m n\u00e0y."}]};
|
|
4
5
|
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
6
|
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;
|
package/server/models/vatra.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';const taxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,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,
|
|
2
|
-
default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,
|
|
3
|
-
|
|
2
|
+
default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,maxlength:32},t_thue:{type:Number,default:0},
|
|
3
|
+
t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,
|
|
4
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:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatra_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatra_index_text"});taxSchema.index({status:1});
|
|
5
5
|
taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatra||mongoose.model("vatra",taxSchema);
|
package/server/models/vatvao.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';const taxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,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},ma_tc:{type:String,
|
|
2
|
-
default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
taxSchema.index({
|
|
2
|
+
default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,maxlength:32},tk_du_thue:{type:String,
|
|
3
|
+
maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",
|
|
4
|
+
maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatvao_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatvao_index_text"});taxSchema.index({status:1});
|
|
5
|
+
taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatvao||mongoose.model("vatvao",taxSchema);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';const model=global.getModel("assinvestment"),assproduct=global.getModel("assproduct"),assperiod=global.getModel("assperiod"),trangthai=global.getModel("trangthai"),introducer=global.getModel("introducer"),asskey=global.getModel("asskey"),introducecode=global.getModel("introducecode"),App=global.getModel("app"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),pt1=global.getModel("pt1"),customer=global.getModel("customer"),controller=require("../../controllers/controller"),
|
|
2
|
-
{isSupperAdmin}=require("../../libs/utils"),{createTx,getTxStatus,bcQuery}=require("../../libs/blockchainconnect"),async=require("async"),xacdinhnguoinhanhoahong=async $investment$$=>{
|
|
2
|
+
{isSupperAdmin}=require("../../libs/utils"),{createTx,getTxStatus,bcQuery}=require("../../libs/blockchainconnect"),async=require("async"),xacdinhnguoinhanhoahong=async $investment$$=>{$investment$$.ty_le_hoa_hong=void 0;$investment$$.address_hoa_hong=void 0;$investment$$.denom_hoa_hong=void 0;$investment$$.ky_tra_hoa_hong=void 0;$investment$$.introduce_code=void 0;try{const $intro$$=await introducer.findOne({id_app:$investment$$.id_app,be_introduced:$investment$$.user_created});if($intro$$&&$intro$$.introduce_code){const $introduce_code$$=
|
|
3
3
|
await introducecode.findOne({id_app:$investment$$.id_app,introduce_code:$intro$$.introduce_code}).lean();let $receiver$$;if($introduce_code$$){if($introduce_code$$.wallet_address_receive_reward)$receiver$$=$introduce_code$$.wallet_address_receive_reward;else{let $k$$=await asskey.findOne({id_app:$investment$$.id_app,username:$intro$$.be_introduced_by});if($k$$)$receiver$$=$k$$.address;else return}var $appInfo$$=await App.findOne({_id:$investment$$.id_app});if($appInfo$$&&$appInfo$$.wallet_token&&
|
|
4
4
|
$appInfo$$.wallet_address){var $usergroup$$,$par$$=await Participant.findOne({id_app:$investment$$.id_app,email:$intro$$.be_introduced_by}).lean();$par$$&&$par$$.group_id&&($usergroup$$=await Usergroup.findOne({id_app:$investment$$.id_app,_id:$par$$.group_id}).lean());$usergroup$$||($usergroup$$={});var $period$$=await assperiod.findOne({id_app:$investment$$.id_app,id:$investment$$.id_period});$period$$||($period$$={});$period$$.ty_le_hoa_hong_groups=$period$$.ty_le_hoa_hong_groups||[];var $ty_le_hoa_hong_group$$=
|
|
5
5
|
$period$$.ty_le_hoa_hong_groups.find($t$$=>$t$$.id_user_group===$usergroup$$._id);$ty_le_hoa_hong_group$$||($ty_le_hoa_hong_group$$=$period$$.ty_le_hoa_hong_groups.find($t$$=>!$t$$.id_user_group)||{});var $ty_le_hoa_hong$$=$ty_le_hoa_hong_group$$.ty_le_hoa_hong||$usergroup$$.ty_le_hoa_hong||$appInfo$$.ty_le_hoa_hong||0;var $tang_gioi_thieu_denom$$=$ty_le_hoa_hong_group$$.denom||$usergroup$$.tang_gioi_thieu_denom||$appInfo$$.tang_gioi_thieu_denom;$investment$$.ty_le_hoa_hong=$ty_le_hoa_hong$$;$investment$$.address_hoa_hong=
|