flexbiz-server 12.7.6 → 12.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/server/app.js +23 -19
- package/server/auths/rateLimiterMiddleware.js +3 -3
- package/server/controllers/controller.js +41 -41
- package/server/controllers/controllerUtils.js +61 -61
- package/server/controllers/controllerUtils_v1.js +72 -0
- package/server/controllers/controller_old.js +129 -0
- package/server/controllers/createHandler.js +34 -34
- package/server/controllers/createHandler_old.js +35 -0
- package/server/controllers/deleteHandler.js +11 -12
- package/server/controllers/deleteHandler_old.js +12 -0
- package/server/controllers/exportHandler.js +19 -17
- package/server/controllers/exportHandler_old.js +17 -0
- package/server/controllers/findHandler.js +61 -55
- package/server/controllers/findHandler_old.js +74 -0
- package/server/controllers/importFromGsHandler.js +10 -10
- package/server/controllers/importFromJsonHandler.js +6 -6
- package/server/controllers/importFromJsonHandler_old.js +6 -0
- package/server/controllers/updateBookHandler.js +1 -1
- package/server/controllers/updateFieldHandler.js +12 -13
- package/server/controllers/updateFieldHandler_old.js +13 -0
- package/server/controllers/updateHandler.js +38 -40
- package/server/controllers/updateHandler_old.js +40 -0
- package/server/controllers/viewHandler.js +13 -14
- package/server/controllers/viewHandler_old.js +14 -0
- package/server/flow/nodes/aiAnalysis.js +1 -1
- package/server/global.js +2 -3
- package/server/libs/WorkerStaticPool.js +14 -14
- package/server/libs/asyncCompat.js +10 -0
- package/server/libs/createSocaitheongay.js +1 -1
- package/server/libs/invoiceVnpt.js +1 -1
- package/server/libs/post-book.js +2 -2
- package/server/libs/post-sokho.js +5 -5
- package/server/libs/redis-cache.js +2 -2
- package/server/models/assabcihandler.js +1 -1
- package/server/models/counter.js +2 -2
- package/server/models/listinfo.js +200 -225
- package/server/models/listinfo_old.js +124 -0
- package/server/models/po1.js +4 -4
- package/server/models/purchase_contract.js +3 -3
- package/server/models/smsaccount.js +2 -2
- package/server/models/tdttco.js +3 -3
- package/server/models/tdttno.js +3 -3
- package/server/modules/lists/ls-afflink.js +1 -1
- package/server/modules/lists/ls-assbooking.js +1 -1
- package/server/modules/lists/ls-assinvestment.js +11 -11
- package/server/modules/lists/ls-asskey.js +2 -2
- package/server/modules/lists/ls-assneedtobuy.js +1 -1
- package/server/modules/lists/ls-assperiod.js +1 -1
- package/server/modules/lists/ls-asssell.js +1 -1
- package/server/modules/lists/ls-cart.js +14 -14
- package/server/modules/lists/ls-congdoansx.js +1 -1
- package/server/modules/lists/ls-consultant.js +2 -2
- package/server/modules/lists/ls-dkhoc.js +2 -2
- package/server/modules/lists/ls-dmban.js +1 -1
- package/server/modules/lists/ls-dmbp.js +2 -2
- package/server/modules/lists/ls-dmdoi.js +1 -1
- package/server/modules/lists/ls-dmnhtask.js +2 -2
- package/server/modules/lists/ls-dmvt.js +3 -3
- package/server/modules/lists/ls-file.js +1 -1
- package/server/modules/lists/ls-giaoca.js +1 -1
- package/server/modules/lists/ls-introducer.js +2 -2
- package/server/modules/lists/ls-kbm-bcqt.js +1 -1
- package/server/modules/lists/ls-news.js +1 -1
- package/server/modules/lists/ls-participant.js +1 -1
- package/server/modules/lists/ls-rpt.js +1 -1
- package/server/modules/lists/ls-smsaccount.js +1 -1
- package/server/modules/lists/ls-sosanxuat.js +1 -1
- package/server/modules/lists/ls-support.js +1 -1
- package/server/modules/public/callin.js +1 -1
- package/server/modules/reports/calc-tinhgiafifo.js +1 -1
- package/server/modules/reports/calc-tinhgiatb.js +1 -1
- package/server/modules/reports/calc-tinhgiathanh.js +1 -1
- package/server/modules/reports/calc-tinhluong.js +1 -1
- package/server/modules/reports/rp-assbonus.js +1 -1
- package/server/modules/reports/rp-bkchamcong.js +1 -1
- package/server/modules/reports/rp-cdpsdiem.js +1 -1
- package/server/modules/reports/rp-cdpskh.js +1 -1
- package/server/modules/reports/rp-cdpsnphep.js +1 -1
- package/server/modules/reports/rp-kcsns.js +1 -1
- package/server/modules/reports/rp-sctbhxh.js +1 -1
- package/server/modules/reports/rp-sctluong.js +1 -1
- package/server/modules/reports/rp-sctthuetncn.js +1 -1
- package/server/modules/reports/rp-sctvt.js +1 -1
- package/server/modules/reports/rp-sctvtnpp.js +1 -1
- package/server/modules/reports/rp-sctvttt.js +1 -1
- package/server/modules/reports/rp-thgt.js +1 -1
- package/server/modules/systems/sys-labelinfo.js +2 -3
- package/server/modules/systems/sys-listinfo.js +1 -1
- package/server/modules/systems/sys-menuinfo.js +1 -4
- package/server/modules/systems/sys-moduleinfo.js +2 -4
- package/server/modules/systems/sys-notification.js +1 -1
- package/server/workers/backupApp.js +1 -1
- package/server/workers/calcGrid.js +1 -1
- package/server/workers/runScript.js +1 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
const controller=require("../controllers/controller"),underscore=require("underscore"),async=require("async"),{evalute}=require("../libs/utils"),utils=require("../libs/utils"),PostBook=require("../libs/post-book"),PostSocai=require("../libs/post-socai"),moment=require("moment"),numeral=require("numeral"),fs=require("fs"),_=require("lodash"),controllerUtils=require("../controllers/controllerUtils"),joinModel2=($arr$$,$id_app$$,$model$$,$joinFields$$,$fn$$,$options$$={cache:!0})=>[...$arr$$].joinModel2($id_app$$,
|
|
2
|
+
$model$$,$joinFields$$,$fn$$,$options$$),fieldScheme=new global.Schema({stt:{type:Number,default:0},stt_col:{type:Number,default:0},name:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp m\u00e3 tr\u01b0\u1eddng",index:!0,lowercase:!0,trim:!0},type:{type:String,default:"String",trim:!0},form:{type:String,trim:!0},header:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00ean tr\u01b0\u1eddng"},header2:{type:String},api_description:{type:String},sort:Number,unique:Boolean,default:global.Schema.Types.Mixed,
|
|
3
|
+
lowercase:{type:Boolean,default:!1},uppercase:{type:Boolean,default:!1},required:global.Schema.Types.Mixed,index:{type:Boolean,default:!1},is_tmp:{type:Boolean,default:!1},is_title:{type:Boolean,default:!1},on_view:{type:Boolean,default:!0},maxlength:Number,min:global.Schema.Types.Mixed,max:global.Schema.Types.Mixed,ref_model:{type:String,trim:!0},ref_field:{type:String,trim:!0},ref_label:{type:String,trim:!0},ref_label_as:{type:String,trim:!0},ref_search_fields:{type:String,trim:!0},ref_data_fields:{type:String,
|
|
4
|
+
trim:!0},ref_condition:{type:String,trim:!0},multiple:Boolean,not_display:global.Schema.Types.Mixed,not_input:global.Schema.Types.Mixed,min_width_display:{type:Number,default:80},format:{type:String},align:{type:String},color:{type:String},bold:Boolean,html_variant_display:{type:String},html_component_display:{type:String},html_component_input:{type:String},render_on_list:String,render_on_view:String,render_title:String,grid_configs:{type:String,trim:!0},handle_value_changed:{type:String,trim:!0},
|
|
5
|
+
handle_value_changed_on_list:{type:String,trim:!0},handle_search_condition:{type:String,trim:!0},tab:{type:String,trim:!0},group:{type:String,trim:!0},help_text:{type:String,trim:!0},line:{type:Number,default:0}}),listinfoSchema=new global.Schema({menu_position:String,code:{type:String,required:!0,index:!0,lowercase:!0,trim:!0},title:{type:String,required:!0},title2:{type:String},mother_code:{type:String,lowercase:!0,trim:!0},api_code:{type:String,lowercase:!0,trim:!0},model_code:{type:String,lowercase:!0,
|
|
6
|
+
trim:!0},used_by_3rd_systems:String,fields:[fieldScheme],postinfos:[global.Schema.Types.Mixed],exfields:global.Schema.Types.Mixed,create_model:{type:Boolean,default:!1},breadcrumbs:{type:String,trim:!0},permistion_code:String,not_add:Boolean,not_edit:Boolean,not_delete:Boolean,not_copy:Boolean,handle_cell_clicked:{type:String,trim:!0},expression_check_save:{type:String,trim:!0},on_saved:{type:String,trim:!0},on_deleting:{type:String,trim:!0},on_deleted:{type:String,trim:!0},on_init:{type:String,trim:!0},
|
|
7
|
+
on_init_update:{type:String,trim:!0},handle_view_server:{type:String,trim:!0},handle_oncreating_server:{type:String,trim:!0},handle_oncreated_server:{type:String,trim:!0},handle_onupdating_server:{type:String,trim:!0},handle_onupdated_server:{type:String,trim:!0},handle_ondeleting_server:{type:String,trim:!0},search_required:Boolean,search_form:{type:String,trim:!0},default_condition:{type:String,trim:!0},require_condition:{type:String,trim:!0},export_yn:Boolean,sort_by:String,not_need_right:{type:Boolean,
|
|
8
|
+
default:!1},require_id_app:{type:Boolean,default:!0},private_data:Boolean,view_tabs:[],allow_users:{type:String,trim:!0},input_users:{type:String,trim:!0},create_menu:Boolean,show_view_tabs_on_grid:Boolean,form_size:{type:String,default:"md",trim:!0},is_dashboard_item:{type:Boolean,default:!1},dashboard_default:{type:Boolean,default:!0},dashboard_ids:{type:String,trim:!0},dashboard_stt:{type:Number},get_other_fields:String,options:{},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},
|
|
9
|
+
date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
10
|
+
(global.configs||{}).createIndexes&&(listinfoSchema.index({code:1},{unique:!0}),listinfoSchema.index({used_by_3rd_systems:1}),listinfoSchema.index({code:1,api_code:1,title:1}),listinfoSchema.index({title:1}),listinfoSchema.index({title2:1}),listinfoSchema.index({mother_code:1}),listinfoSchema.index({api_code:1}),listinfoSchema.index({code:1,api_code:1}),listinfoSchema.index({model_code:1}),listinfoSchema.index({mother_code:1}),listinfoSchema.index({is_dashboard_item:1}),listinfoSchema.index({dashboard_ids:1}),
|
|
11
|
+
listinfoSchema.index({mother_code:"text",code:"text",title:"text"},{name:"listinfo_index2_text"}),listinfoSchema.index({status:1}),listinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
12
|
+
const model=global.mongoose.models.listinfo||global.mongoose.model("listinfo",listinfoSchema),requireFields=model.requireFields={id_app:{type:String,required:!0},exfields:global.Schema.Types.Mixed,listinfo_code: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]};
|
|
13
|
+
model.createSchema=$info$$=>{if(!$info$$.create_model)return null;const $require_id_app$$=$info$$.require_id_app!=0&&$info$$.require_id_app!="false";var $_requireFields_mySchema$$={...requireFields};$require_id_app$$||delete $_requireFields_mySchema$$.id_app;$_requireFields_mySchema$$=new global.Schema($_requireFields_mySchema$$,{strict:!1});let $require_paths$$=Object.keys($_requireFields_mySchema$$.paths),$fields$$={};for(var $dynamic_indexes_f_index_user_uq$$ of $info$$.fields.filter($f$$=>$f$$.type!==
|
|
14
|
+
"Link"&&$f$$.type!=="Files"&&$f$$.type!=="Action"&&$f$$.type!=="Group"&&!$f$$.is_tmp&&$require_paths$$.indexOf($f$$.name)<0)){$dynamic_indexes_f_index_user_uq$$.unique&&($dynamic_indexes_f_index_user_uq$$.index=!0);let $_field$$=Object.assign({},$dynamic_indexes_f_index_user_uq$$);if($_field$$.type=="DateTime"||$_field$$.type=="Time")$_field$$.type="Date";if($_field$$.type=="File"||$_field$$.type=="OtherFile")$_field$$.type="Mixed";$_field$$.type=="Array"&&($_field$$.type="Mixed");$_field$$.type==
|
|
15
|
+
"Pdf"&&($_field$$.type="String");$_field$$.type=="Image"&&($_field$$.type="String");$_field$$.type=="String"&&($_field$$.trim=!0);$_field$$.required=!1;$_field$$.isDynamic=!0;delete $_field$$.name;delete $_field$$.header;delete $_field$$.header2;delete $_field$$.line;delete $_field$$.sort;delete $_field$$.unique;delete $_field$$._id;delete $_field$$.stt;delete $_field$$.not_display;delete $_field$$.not_search;delete $_field$$.format;delete $_field$$.align;delete $_field$$.color;delete $_field$$.form;
|
|
16
|
+
delete $_field$$.min_width_display;delete $_field$$.html_component_display;delete $_field$$.html_variant_display;delete $_field$$.html_component_input;delete $_field$$.handle_value_changed;delete $_field$$.handle_value_changed_on_list;delete $_field$$.default;delete $_field$$.multiple;delete $_field$$.tab;delete $_field$$.help_text;delete $_field$$.grid_configs;delete $_field$$.render_on_list;delete $_field$$.render_on_view;delete $_field$$.is_tmp;delete $_field$$.is_title;delete $_field$$.on_view;
|
|
17
|
+
delete $_field$$.handle_view_server;$_field$$.type=="String"||$_field$$.type=="Number"?$_field$$.maxlength=$_field$$.maxlength||4E3:delete $_field$$.maxlength;$fields$$[$dynamic_indexes_f_index_user_uq$$.name]=$_field$$}try{$_requireFields_mySchema$$.add($fields$$)}catch($e$$){throw Logger.error("[listinfo] [createSchema]",$e$$.message),Logger.error(JSON.stringify($fields$$),null,2),$e$$;}if((global.configs||{}).createIndexes){$info$$.fields.find($f$$=>$f$$.id_ct_chuyen)&&$_requireFields_mySchema$$.index({id_app:1,
|
|
18
|
+
id_ct_chuyen:1},{name:"index_id_ct_chuyen"});$dynamic_indexes_f_index_user_uq$$=$info$$.fields.filter($f$$=>$f$$.index);let $indexs$$={};$require_id_app$$&&($indexs$$.id_app=1);$dynamic_indexes_f_index_user_uq$$.forEach($field$$=>{$indexs$$[$field$$.name]=1});Object.keys($indexs$$).length>0&&$_requireFields_mySchema$$.index($indexs$$,{name:"index_dynamic"});$dynamic_indexes_f_index_user_uq$$={user_created:1,visible_to:1,visible_to_users:1,status:1};$require_id_app$$&&($dynamic_indexes_f_index_user_uq$$.id_app=
|
|
19
|
+
1);$info$$.fields.find($f$$=>$f$$.name=="trang_thai")&&($dynamic_indexes_f_index_user_uq$$.trang_thai=1);$info$$.fields.find($f$$=>$f$$.name=="of_user")&&($dynamic_indexes_f_index_user_uq$$.of_user=1);$info$$.fields.find($f$$=>$f$$.name=="phu_trach")&&($dynamic_indexes_f_index_user_uq$$.phu_trach=1);$_requireFields_mySchema$$.index($dynamic_indexes_f_index_user_uq$$);$_requireFields_mySchema$$.index({index_user:$dynamic_indexes_f_index_user_uq$$,...$indexs$$});$dynamic_indexes_f_index_user_uq$$=$info$$.fields.filter($f$$=>
|
|
20
|
+
$f$$.unique);if($dynamic_indexes_f_index_user_uq$$.length>0){let $indUq$$={id_app:1};$require_id_app$$||delete $indUq$$.id_app;$dynamic_indexes_f_index_user_uq$$.forEach($field$$=>{$indUq$$[$field$$.name]=$field$$.sort||1});$_requireFields_mySchema$$.index($indUq$$,{unique:!0})}$_requireFields_mySchema$$.index({"$**":"text"},{name:`${$info$$.api_code||$info$$.code}_index_text`})}return $_requireFields_mySchema$$};
|
|
21
|
+
model.updateSchema=async($schema$$,$_field$jscomp$1_info$$)=>{if(($_field$jscomp$1_info$$=await model.findOne({code:$_field$jscomp$1_info$$}).lean())&&$_field$jscomp$1_info$$.fields)for(let $field$$ of $_field$jscomp$1_info$$.fields.filter($f$$=>$f$$.type!=="Link"&&$f$$.type!=="Files"&&$f$$.type!=="Action"&&$f$$.type!=="Group")){if($schema$$.paths[$field$$.name])if($schema$$.paths[$field$$.name].options&&$schema$$.paths[$field$$.name].options.isDynamic)$schema$$.remove($field$$.name);else continue;
|
|
22
|
+
if(!$field$$.is_tmp){$field$$.toObject&&($field$$=$field$$.toObject());$_field$jscomp$1_info$$={...$field$$};if($_field$jscomp$1_info$$.type=="DateTime"||$_field$jscomp$1_info$$.type=="Time")$_field$jscomp$1_info$$.type="Date";if($_field$jscomp$1_info$$.type=="File"||$_field$jscomp$1_info$$.type=="OtherFile")$_field$jscomp$1_info$$.type="Mixed";$_field$jscomp$1_info$$.type=="Array"&&($_field$jscomp$1_info$$.type="Mixed");$_field$jscomp$1_info$$.type=="Pdf"&&($_field$jscomp$1_info$$.type="String");
|
|
23
|
+
$_field$jscomp$1_info$$.type=="Image"&&($_field$jscomp$1_info$$.type="String");$_field$jscomp$1_info$$.type=="String"&&($_field$jscomp$1_info$$.trim=!0);$_field$jscomp$1_info$$.required=!1;$_field$jscomp$1_info$$.isDynamic=!0;delete $_field$jscomp$1_info$$.stt_col;delete $_field$jscomp$1_info$$.name;delete $_field$jscomp$1_info$$.header;delete $_field$jscomp$1_info$$.header2;delete $_field$jscomp$1_info$$.line;delete $_field$jscomp$1_info$$.sort;delete $_field$jscomp$1_info$$.unique;delete $_field$jscomp$1_info$$._id;
|
|
24
|
+
delete $_field$jscomp$1_info$$.stt;delete $_field$jscomp$1_info$$.not_display;delete $_field$jscomp$1_info$$.not_search;delete $_field$jscomp$1_info$$.format;delete $_field$jscomp$1_info$$.align;delete $_field$jscomp$1_info$$.color;delete $_field$jscomp$1_info$$.form;delete $_field$jscomp$1_info$$.min_width_display;delete $_field$jscomp$1_info$$.html_component_display;delete $_field$jscomp$1_info$$.html_variant_display;delete $_field$jscomp$1_info$$.html_component_input;delete $_field$jscomp$1_info$$.handle_value_changed;
|
|
25
|
+
delete $_field$jscomp$1_info$$.handle_value_changed_on_list;delete $_field$jscomp$1_info$$.default;delete $_field$jscomp$1_info$$.multiple;delete $_field$jscomp$1_info$$.tab;delete $_field$jscomp$1_info$$.help_text;delete $_field$jscomp$1_info$$.grid_configs;delete $_field$jscomp$1_info$$.render_on_list;delete $_field$jscomp$1_info$$.render_on_view;delete $_field$jscomp$1_info$$.is_tmp;delete $_field$jscomp$1_info$$.is_title;delete $_field$jscomp$1_info$$.on_view;delete $_field$jscomp$1_info$$.handle_view_server;
|
|
26
|
+
$_field$jscomp$1_info$$.type=="String"||$_field$jscomp$1_info$$.type=="Number"?$_field$jscomp$1_info$$.maxlength=$_field$jscomp$1_info$$.maxlength||4E3:delete $_field$jscomp$1_info$$.maxlength;$schema$$.add({[$field$$.name]:$_field$jscomp$1_info$$})}}};
|
|
27
|
+
model.updateModel=async($info$jscomp$2_uq$$,$_newModel$$)=>{$info$jscomp$2_uq$$.toObject&&($info$jscomp$2_uq$$=$info$jscomp$2_uq$$.toObject());if(!$info$jscomp$2_uq$$.create_model)return null;var $dynamic_indexes$$=$info$jscomp$2_uq$$.api_code||$info$jscomp$2_uq$$.model_code||$info$jscomp$2_uq$$.code;$_newModel$$||=global.mongoose.models[$dynamic_indexes$$];if($_newModel$$)if($_newModel$$.schema){var $_newList$$=global.controllers[($info$jscomp$2_uq$$.api_code||$info$jscomp$2_uq$$.code).toUpperCase()],
|
|
28
|
+
$require_paths$$=Object.keys(requireFields),$fields$$=[...$info$jscomp$2_uq$$.fields],$fields_can_xu_ly_fields_have_ref_schemaCode$$=$fields$$.filter($f$$=>$f$$.ref_model&&$f$$.ref_model.indexOf("[")<0&&$f$$.ref_field&&$f$$.type!=="Array"&&$f$$.type!=="Mixed"&&$f$$.ref_label).map($f$$=>$f$$.ref_label_as||$f$$.ref_label).filter($f$$=>!$fields$$.find($gf$$=>$gf$$.name===$f$$)).map($f$$=>({name:$f$$,type:"String"}));$fields$$=$fields$$.concat($fields_can_xu_ly_fields_have_ref_schemaCode$$);$fields_can_xu_ly_fields_have_ref_schemaCode$$=
|
|
29
|
+
$fields$$.filter($f$$=>$f$$.type!=="Link"&&$f$$.type!=="Files"&&$f$$.type!=="Action"&&$f$$.type!=="Group"&&$require_paths$$.indexOf($f$$.name)<0);for(let $field$$ of $fields_can_xu_ly_fields_have_ref_schemaCode$$){$field$$.toObject&&($field$$=$field$$.toObject());var $_field$$={...$field$$};$fields_can_xu_ly_fields_have_ref_schemaCode$$=$field$$.form;if(underscore.has($_newModel$$.schema.paths,$field$$.name)){if($field$$.type==="Array"||$field$$.type==="Mixed"){$fields_can_xu_ly_fields_have_ref_schemaCode$$&&
|
|
30
|
+
($_field$$=$_newModel$$.schema.paths[$field$$.name].schema)&&await model.updateSchema($_field$$,$fields_can_xu_ly_fields_have_ref_schemaCode$$);continue}if($_newModel$$.schema.paths[$field$$.name].options&&$_newModel$$.schema.paths[$field$$.name].options.isDynamic)$_newModel$$.schema.remove($field$$.name);else continue}if(!$field$$.is_tmp){if($_field$$.type=="DateTime"||$_field$$.type=="Time")$_field$$.type="Date";if($_field$$.type=="File"||$_field$$.type=="OtherFile")$_field$$.type="Mixed";$_field$$.type==
|
|
31
|
+
"Array"&&($_field$$.type="Mixed");$_field$$.type=="Pdf"&&($_field$$.type="String");$_field$$.type=="Image"&&($_field$$.type="String");$_field$$.type=="String"&&($_field$$.trim=!0);$dynamic_indexes$$!=$info$jscomp$2_uq$$.code&&($_field$$.required=!1);$_field$$.isDynamic=!0;delete $_field$$.stt_col;delete $_field$$.name;delete $_field$$.header;delete $_field$$.header2;delete $_field$$.line;delete $_field$$.sort;delete $_field$$.unique;delete $_field$$._id;delete $_field$$.stt;delete $_field$$.not_display;
|
|
32
|
+
delete $_field$$.not_search;delete $_field$$.format;delete $_field$$.align;delete $_field$$.color;delete $_field$$.form;delete $_field$$.min_width_display;delete $_field$$.html_component_display;delete $_field$$.html_variant_display;delete $_field$$.html_component_input;delete $_field$$.handle_value_changed;delete $_field$$.handle_value_changed_on_list;delete $_field$$.default;delete $_field$$.multiple;delete $_field$$.tab;delete $_field$$.help_text;delete $_field$$.grid_configs;delete $_field$$.render_on_list;
|
|
33
|
+
delete $_field$$.render_on_view;delete $_field$$.is_tmp;delete $_field$$.is_title;delete $_field$$.on_view;delete $_field$$.handle_view_server;$_field$$.type=="String"||$_field$$.type=="Number"?$_field$$.maxlength=$_field$$.maxlength||4E3:delete $_field$$.maxlength;$_newModel$$.schema.add({[$field$$.name]:$_field$$})}}if((global.configs||{}).createIndexes){try{await $_newModel$$.collection.dropIndex("index_dynamic")}catch($e$$){}$dynamic_indexes$$=$info$jscomp$2_uq$$.fields.filter($f$$=>$f$$.index);
|
|
34
|
+
if($dynamic_indexes$$.length>0){let $indexs$$={};$_newModel$$.schema.paths.id_app&&($indexs$$.id_app=1);$dynamic_indexes$$.forEach($field$$=>{$indexs$$[$field$$.name]=1});Object.keys($indexs$$).length>0&&$_newModel$$.schema.index($indexs$$,{name:"index_dynamic"})}if($info$jscomp$2_uq$$.fields.find($f$$=>$f$$.id_ct_chuyen)){try{await $_newModel$$.collection.dropIndex("index_id_ct_chuyen")}catch($e$$){}$_newModel$$.schema.index({id_app:1,id_ct_chuyen:1},{name:"index_id_ct_chuyen"})}if($_newList$$&&
|
|
35
|
+
$_newList$$.is_dynamic_list){$info$jscomp$2_uq$$=$fields$$.filter($f$$=>$f$$.unique&&$f$$.name!="so_ct");let $indUq$$;$info$jscomp$2_uq$$.length>0&&($indUq$$=$_newModel$$.schema.paths.id_app?{id_app:1}:{},$info$jscomp$2_uq$$.forEach($field$$=>{$indUq$$[$field$$.name]=$field$$.sort||1}));if($_newList$$.options.unique&&$_newList$$.options.unique.length>0){let $old_index_unique$$={id_app:1};$_newList$$.options.unique.forEach($u$$=>{let $field$$=$fields$$.find($f$$=>$f$$.name===$u$$);$old_index_unique$$[$u$$]=
|
|
36
|
+
($field$$||{}).sort||1});$_newModel$$.collection.dropIndex($old_index_unique$$,()=>{$indUq$$&&$_newModel$$.schema.index($indUq$$,{unique:!0})})}else $indUq$$&&$_newModel$$.schema.index($indUq$$,{unique:!0})}}}else Logger.error("[listinfo][updateModel] model does not have schema",$_newModel$$)};
|
|
37
|
+
model.createModel=$info$$=>{if(!$info$$.create_model)return null;let $model_code$$=$info$$.api_code||$info$$.model_code||$info$$.code;if(global.secu_models.indexOf($model_code$$)>=0)return null;let $exModel$$=global.mongoose.models[$model_code$$];if(!$exModel$$){let $model_path$$=(((global.configs||{}).paths||{}).models||__dirname)+"/"+$model_code$$+".js";fs.existsSync($model_path$$)&&($exModel$$=require($model_path$$))}$exModel$$?model.updateModel($info$$,$exModel$$):$exModel$$=global.mongoose.model($model_code$$,
|
|
38
|
+
model.createSchema($info$$));return $exModel$$};
|
|
39
|
+
const deletePost=($_listInfo$$,$obj$$)=>new Promise(($resolve$$,$reject$$)=>{let $bookbackup$$={};async.mapSeries(($_listInfo$$.postinfos||[]).filter($info$$=>$info$$.model&&$info$$.script&&$info$$.condition),($postInfo$$,$callback$$)=>{setImmediate(async()=>{let $m$$=global.getModel($postInfo$$.model);var $condition_scriptCondition$$=$postInfo$$.condition.indexOf("return ")<0?`return ${$postInfo$$.condition}`:$postInfo$$.condition;$condition_scriptCondition$$=evalute($condition_scriptCondition$$,
|
|
40
|
+
{master:$obj$$,data:$obj$$,moment});$condition_scriptCondition$$.id_app=$obj$$.id_app;$bookbackup$$[$postInfo$$.model]=await $m$$.find($condition_scriptCondition$$).lean();await $m$$.deleteMany($condition_scriptCondition$$);$callback$$()})},async $e$$=>{if($e$$){for(let $key$$ in $bookbackup$$)$bookbackup$$[$key$$].length>0&&await global.getModel($key$$.toString()).insertMany($bookbackup$$[$key$$]);return $reject$$($e$$)}$resolve$$($bookbackup$$)})}),post=($_listInfo$$,$obj$$)=>{$obj$$.toObject&&
|
|
41
|
+
($obj$$=$obj$$.toObject());return Promise.all(($_listInfo$$.postinfos||[]).filter($info$$=>$info$$.model&&$info$$.script&&$info$$.condition).map($postInfo$$=>(async()=>{let $data$$=await evalute(`return (async ()=>{
|
|
42
|
+
try{
|
|
43
|
+
${$postInfo$$.script}
|
|
44
|
+
}catch(e){
|
|
45
|
+
Logger.error("error post data",e)
|
|
46
|
+
return {error:e}
|
|
47
|
+
}
|
|
48
|
+
})()`,{master:{...$obj$$},data:{...$obj$$},moment,numeral});if($data$$&&$data$$.error)throw $data$$.error;return new Promise(($resolve$$,$reject$$)=>{if($postInfo$$.model==="socai")(new PostSocai($obj$$,$data$$,null,null,{deleteQuery:{id_ct:"#"}})).run(($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)});else{let $m$$=global.getModel($postInfo$$.model);(new PostBook($obj$$,$data$$,$m$$,function($detail$$,$callback$$){$callback$$($detail$$)},{deleteQuery:{id_ct:"#"}})).run(function($e$$,
|
|
49
|
+
$rs$$){if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})}})})()))},dynamicFinding=($_listInfo$$,$user$$,$condition$$,$next$$,$options$$={})=>{if($_listInfo$$.api_code&&$_listInfo$$.api_code!=$_listInfo$$.code)return $next$$(null,$condition$$);$_listInfo$$.private_data&&($condition$$.user_created=$user$$.email);if($_listInfo$$.require_condition)try{let $script$$=$_listInfo$$.require_condition;$script$$.indexOf("return ")<0&&($script$$=`return ${$script$$}`);const $require_condition$$=evalute($script$$,
|
|
50
|
+
{user:$user$$,condition:$condition$$,moment,numeral,request:$options$$.req});if($require_condition$$&&Object.keys($require_condition$$).length>0)for(let $key$$ in $require_condition$$)$condition$$[$key$$]=$require_condition$$[$key$$]}catch($e$$){return Logger.error($e$$),$next$$(`Error on require condition: ${$e$$.message}`)}$next$$(null,$condition$$)},dynamicCreating=async($listInfo$$,$user$$,$obj$$,$next$$,$options$$={})=>{let $_listInfo$$=await model.findOne({_id:$listInfo$$._id}).lean();if(!$_listInfo$$)return $next$$("Kh\u00f4ng t\u00ecm th\u1ea5y danh m\u1ee5c n\u00e0y");
|
|
51
|
+
for(let $key$$ in $_listInfo$$)$listInfo$$[$key$$]=$_listInfo$$[$key$$];if($_listInfo$$.handle_oncreating_server&&$_listInfo$$.handle_oncreating_server.trim()!==""){if($_listInfo$$.handle_oncreating_server.indexOf("next")<0)return $next$$("Script x\u1eed l\u00fd d\u1eef li\u1ec7u tr\u01b0\u1edbc khi t\u1ea1o y\u00eau c\u1ea7u g\u1ecdi function next");try{await new Promise(($resolve$$,$reject$$)=>{async.parallel([$next$$=>{const $func_body$$=`(async ()=>{
|
|
52
|
+
try{
|
|
53
|
+
${$_listInfo$$.handle_oncreating_server}
|
|
54
|
+
}catch(e){
|
|
55
|
+
next(e);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
})();`;setImmediate(async()=>{try{await evalute($func_body$$,{obj:$obj$$,user:$user$$,getLib:global.getLib,getModel:global.getModel,utils,query:utils.query,async,controller,controllerUtils,controllers:global.controllers,joinModel2,next:$next$$,moment,numeral,request:$options$$.req})}catch($e$$){Logger.error("[dynamicCreating][handle_oncreating_server]",{code:$listInfo$$.code,handle_oncreating_server:$_listInfo$$.handle_oncreating_server,e:$e$$}),$next$$($e$$)}})}],($e$$,$rs$$)=>{if($e$$)return Logger.error("[dynamicCreating][handle_oncreating_server]",
|
|
59
|
+
$listInfo$$.code,$e$$,$_listInfo$$.handle_oncreating_server),$reject$$($e$$);$resolve$$($rs$$)})})}catch($e$$){return Logger.error("[dynamicCreating]",$listInfo$$.code,$e$$),$next$$($e$$)}}$next$$(null,$obj$$)},dynamicCreated=async($_listInfo$$,$user$$,$obj$$,$next$$,$options$$={})=>{if($_listInfo$$.handle_oncreated_server&&$_listInfo$$.handle_oncreated_server.trim()!==""){if($_listInfo$$.handle_oncreated_server.indexOf("next")<0)return $next$$("Script x\u1eed l\u00fd d\u1eef li\u1ec7u sau khi t\u1ea1o y\u00eau c\u1ea7u g\u1ecdi function next");
|
|
60
|
+
try{await new Promise(($resolve$$,$reject$$)=>{async.parallel([$next$$=>{const $func_body$$=`(async ()=>{
|
|
61
|
+
try{
|
|
62
|
+
${$_listInfo$$.handle_oncreated_server}
|
|
63
|
+
}catch(e){
|
|
64
|
+
next(e);
|
|
65
|
+
}
|
|
66
|
+
})();`;setImmediate(async()=>{try{await evalute($func_body$$,{obj:$obj$$,user:$user$$,getLib:global.getLib,getModel:global.getModel,controller,controllerUtils,controllers:global.controllers,utils,query:utils.query,async,joinModel2,next:$next$$,moment,numeral,request:$options$$.req})}catch($e$$){Logger.error("error dynamic created",$_listInfo$$.handle_oncreated_server,$e$$),$next$$($e$$)}})}],($e$$,$rs$$)=>{if($e$$)return Logger.error($e$$),$reject$$($e$$);$resolve$$($rs$$)})})}catch($e$$){return Logger.error($e$$),
|
|
67
|
+
$next$$($e$$)}}$next$$(null,$obj$$)},dynamicUpdating=async($listInfo$$,$user$$,$data$$,$obj$$,$next$$,$options$$={})=>{let $_listInfo$$=await model.findOne({_id:$listInfo$$._id}).lean();if(!$_listInfo$$)return $next$$("Kh\u00f4ng t\u00ecm th\u1ea5y danh m\u1ee5c n\u00e0y");for(let $key$$ in $_listInfo$$)$listInfo$$[$key$$]=$_listInfo$$[$key$$];if($_listInfo$$.handle_onupdating_server&&$_listInfo$$.handle_onupdating_server.trim()!==""){if($_listInfo$$.handle_onupdating_server.indexOf("next")<0)return $next$$("Script x\u1eed l\u00fd d\u1eef li\u1ec7u tr\u01b0\u1edbc khi update y\u00eau c\u1ea7u g\u1ecdi function next");
|
|
68
|
+
try{await new Promise(($resolve$$,$reject$$)=>{async.series([$next$$=>{const $func_body$$=`(async ()=>{
|
|
69
|
+
try{
|
|
70
|
+
${$_listInfo$$.handle_onupdating_server}
|
|
71
|
+
}catch(e){
|
|
72
|
+
next(e);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
})();`;setImmediate(async()=>{try{await evalute($func_body$$,{data:$data$$,obj:$obj$$,user:$user$$,getLib:global.getLib,getModel:global.getModel,controller,controllerUtils,controllers:global.controllers,utils,query:utils.query,async,joinModel2,next:$next$$,moment,numeral,request:$options$$.req})}catch($e$$){Logger.error("[listinfo][dynamicUpdating] error dynamic update",$_listInfo$$.handle_onupdating_server,$e$$),$next$$($e$$)}})}],($e$$,$rs$$)=>{if($e$$)return Logger.error("[listinfo][dynamicUpdating]",
|
|
76
|
+
$e$$),$reject$$($e$$);$resolve$$($rs$$)})})}catch($e$$){return Logger.error($e$$),$next$$($e$$)}}$next$$(null,$data$$,$obj$$)},dynamicUpdated=async($_listInfo$$,$user$$,$obj$$,$next$$,$options$$={})=>{if($_listInfo$$.handle_onupdated_server&&$_listInfo$$.handle_onupdated_server.trim()!==""){if($_listInfo$$.handle_onupdated_server.indexOf("next")<0)return $next$$("Script x\u1eed l\u00fd d\u1eef li\u1ec7u sau khi update y\u00eau c\u1ea7u g\u1ecdi function next");try{await new Promise(($resolve$$,$reject$$)=>
|
|
77
|
+
{async.series([$next$$=>{const $func_body$$=`(async ()=>{
|
|
78
|
+
try{
|
|
79
|
+
${$_listInfo$$.handle_onupdated_server}
|
|
80
|
+
}catch(e){
|
|
81
|
+
next(e)
|
|
82
|
+
}
|
|
83
|
+
})();`;setImmediate(async()=>{try{await evalute($func_body$$,{obj:$obj$$,user:$user$$,getLib:global.getLib,getModel:global.getModel,controller,controllerUtils,controllers:global.controllers,utils,query:utils.query,async,joinModel2,next:$next$$,moment,numeral,request:$options$$.req})}catch($e$$){Logger.error("error dynamic updated",$_listInfo$$.handle_onupdated_server,$e$$),$next$$($e$$)}})}],($e$$,$rs$$)=>{if($e$$)return Logger.error($e$$),$reject$$($e$$);$resolve$$($rs$$)})})}catch($e$$){return Logger.error($e$$),
|
|
84
|
+
$next$$($e$$)}}$next$$(null,$obj$$)},dynamicDeleting=async($listInfo$$,$user$$,$obj$$,$next$$,$options$$={})=>{let $_listInfo$$=await model.findOne({_id:$listInfo$$._id}).lean();if(!$_listInfo$$)return $next$$("Kh\u00f4ng t\u00ecm th\u1ea5y danh m\u1ee5c n\u00e0y");for(let $key$$ in $_listInfo$$)$listInfo$$[$key$$]=$_listInfo$$[$key$$];if($_listInfo$$.handle_ondeleting_server&&$_listInfo$$.handle_ondeleting_server.trim()!==""){if($_listInfo$$.handle_ondeleting_server.indexOf("next")<0)return $next$$("Script x\u1eed l\u00fd d\u1eef li\u1ec7u tr\u01b0\u1edbc khi update y\u00eau c\u1ea7u g\u1ecdi function next");
|
|
85
|
+
try{await new Promise(($resolve$$,$reject$$)=>{async.series([$next$$=>{const $func_body$$=`(async ()=>{
|
|
86
|
+
try{
|
|
87
|
+
${$_listInfo$$.handle_ondeleting_server}
|
|
88
|
+
}catch(e){
|
|
89
|
+
next(e);
|
|
90
|
+
}
|
|
91
|
+
})();`;setImmediate(async()=>{try{await evalute($func_body$$,{obj:$obj$$,user:$user$$,getLib:global.getLib,getModel:global.getModel,controller,controllerUtils,controllers:global.controllers,utils,query:utils.query,async,joinModel2,next:$next$$,moment,numeral,request:$options$$.req})}catch($e$$){Logger.error("error dynamic delete",$_listInfo$$.handle_ondeleting_server,$e$$),$next$$($e$$)}})}],($e$$,$rs$$)=>{if($e$$)return Logger.error($e$$),$reject$$($e$$);$resolve$$($rs$$)})})}catch($e$$){return Logger.error($e$$),
|
|
92
|
+
$next$$($e$$)}}$next$$(null,$obj$$)},onView=async($control_fields_have_ref$$,$obj$$,$user$$,$items$$,$next$$,$options$$={})=>{const $api_code$$=($obj$$.api_code||$obj$$.code).toUpperCase();$obj$$.private_data&&($items$$=$items$$.filter($item$$=>$item$$.user_created===$user$$.email));if($obj$$.handle_view_server&&$obj$$.handle_view_server.trim()!==""){if($obj$$.handle_view_server.indexOf("next")<0)return $next$$("Script x\u1eed l\u00fd view y\u00eau c\u1ea7u g\u1ecdi function next");await new Promise(($resolve$$,
|
|
93
|
+
$reject$$)=>{async.parallel([$next$$=>{setImmediate(async()=>{const $func_body$$=`(async ()=>{
|
|
94
|
+
try{
|
|
95
|
+
${$obj$$.handle_view_server}
|
|
96
|
+
}catch(e){
|
|
97
|
+
next(e);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
})();`;try{await evalute($func_body$$,{items:$items$$,user:$user$$,getLib:global.getLib,utils,query:utils.query,next:$next$$,async,joinModel2,moment,numeral,request:$options$$.req})}catch($e$$){Logger.error("[listinfo][dynamicView] [handle view] error dynamic view",$obj$$.handle_view_serve,$e$$),$next$$($e$$)}})}],($e$$,$rs$$)=>{if($e$$)return Logger.error($e$$),$reject$$($e$$);$resolve$$($rs$$)})})}$control_fields_have_ref$$=$obj$$.fields.filter($f$$=>["Number","String"].indexOf($f$$.type)>
|
|
101
|
+
0&&$f$$.ref_model&&$f$$.ref_field&&$f$$.ref_label&&"tinhthanh xaphuong quanhuyen account currency templatevoucher".split(" ").indexOf($f$$.ref_model)<0);if($control_fields_have_ref$$.length===0)return $next$$(null,$items$$);async.map($control_fields_have_ref$$,($f$$,$cb$$)=>{setImmediate(async()=>{let $ref_model$$;var $_listInofOfRef_where$$,$ctrl_fields$$;let $ref_name_model$$,$ref_field$$,$ref_condition$$,$field_name$$,$ref_label$$;$ref_label$$=$f$$.ref_label_as||$f$$.ref_label;$ref_field$$=$f$$.ref_field;
|
|
102
|
+
$ref_condition$$=$f$$.ref_condition;$field_name$$=$f$$.name;try{if($ref_name_model$$=$f$$.ref_model,$ref_name_model$$.indexOf("[")>=0||$ref_name_model$$.indexOf(",")>=0)try{$ref_model$$=$ref_name_model$$.indexOf("[")>=0?utils.JSONParser($ref_name_model$$):$ref_name_model$$.split(",")}catch($e$$){return Logger.error("ref_model is not valid",$ref_name_model$$,$e$$),$cb$$($e$$)}else $ref_name_model$$==="dmkh"&&($ref_name_model$$="customer"),$ref_name_model$$==="dmtk"&&($ref_name_model$$="account"),$ref_name_model$$===
|
|
103
|
+
"dmnt"&&($ref_name_model$$="currency"),$ref_name_model$$==="dmnhtask"&&($ref_name_model$$="group"),$ref_model$$=global.mongoose.models[$ref_name_model$$],$ref_model$$||(($_listInofOfRef_where$$=await model.findOne({code:$ref_name_model$$}).lean())&&($_listInofOfRef_where$$.api_code||$_listInofOfRef_where$$.model_code)&&($ref_model$$=global.mongoose.models[$_listInofOfRef_where$$.api_code||$_listInofOfRef_where$$.model_code]),$ref_model$$||($ctrl_fields$$=global.controllers[$ref_name_model$$.trim().toUpperCase()])&&
|
|
104
|
+
($ref_model$$=$ctrl_fields$$.getProperty("model"))),$ref_model$$||=global.getModel($ref_name_model$$)}catch($e$$){return Logger.error($e$$),$cb$$($e$$)}let $items_will_join$$=$items$$;if($items_will_join$$.length==0)return $cb$$();$ctrl_fields$$={[$ref_label$$]:$f$$.ref_label};$f$$.ref_model==="trangthai"&&$f$$.name=="trang_thai"&&($ctrl_fields$$.color="color");if(_.isArray($ref_model$$))$f$$.ref_field&&$f$$.ref_label&&$items_will_join$$.forEach($item$$=>{let $ref_item$$=$ref_model$$.find($r$$=>$r$$[$f$$.ref_field]==
|
|
105
|
+
$item$$[$f$$.name]);$ref_item$$&&($item$$[$ref_label$$]=$ref_item$$[$f$$.ref_label])});else if(Object.keys($ctrl_fields$$).length>0){$_listInofOfRef_where$$=$item$$=>{let $w$$={[$ref_field$$]:$item$$[$field_name$$]},$condition$$;if($ref_condition$$&&$ref_condition$$.indexOf("API")<0){let $func_string$$=$ref_condition$$;$func_string$$.indexOf("return ")<0&&($func_string$$=`return ${$func_string$$}`);let $userInfo$$={...$user$$};try{$condition$$=evalute($func_string$$,{master:$item$$,data:$item$$,
|
|
106
|
+
detail:$item$$,userInfo:$userInfo$$})}catch($e$$){Logger.error($e$$,$func_string$$)}}if($condition$$)if($ref_name_model$$==="participant"&&delete $condition$$.groups,$ref_name_model$$==="trangthai")$condition$$.ma_ct&&($w$$.ma_ct=$condition$$.ma_ct);else for(let $key$$ in $condition$$)$w$$.$and=$w$$.$and||[],$w$$.$and.push({[$key$$]:$condition$$[$key$$]});$ref_name_model$$!=="trangthai"||$w$$.ma_ct||($w$$.ma_ct=$api_code$$);return $w$$};let $id_app$$;underscore.has($ref_model$$.schema.paths,"id_app")&&
|
|
107
|
+
($id_app$$=$user$$.current_id_app);await $items_will_join$$.asyncJoinModel2($id_app$$,$ref_model$$,{where:$_listInofOfRef_where$$,fields:$ctrl_fields$$})}$cb$$()})},$e$$=>{if($e$$)return $next$$($e$$);$next$$(null,$items$$)})};
|
|
108
|
+
model.createController=($router$$,$_listInfo$$)=>{let $api_code$$=$_listInfo$$.api_code||$_listInfo$$.code;if(!$_listInfo$$.create_model)return null;let $sort$$={},$unique$$=[];let $_newList$$;$_listInfo$$.fields.filter($f$$=>$f$$.sort).forEach($f$$=>{$sort$$[$f$$.name]=$f$$.sort});if($_listInfo$$.sort_by)if($_listInfo$$.sort_by.indexOf("return ")>=0||$_listInfo$$.sort_by.indexOf("{")===0){var $_newModel$jscomp$1_func_string$$=$_listInfo$$.sort_by;$_newModel$jscomp$1_func_string$$.indexOf("return ")<
|
|
109
|
+
0&&($_newModel$jscomp$1_func_string$$="return "+$_newModel$jscomp$1_func_string$$);try{$sort$$=evalute($_newModel$jscomp$1_func_string$$)}catch($e$$){Logger.error("[listinfo] error create sort",$_newModel$jscomp$1_func_string$$,$e$$)}}else $sort$$=$_listInfo$$.sort_by.split(",").reduce(($sort$$,$b$$)=>$sort$$[$b$$]=1,{});$_listInfo$$.fields.filter($f$$=>$f$$.unique&&$f$$.name!="so_ct").forEach($f$$=>{$unique$$.push($f$$.name)});if($_newList$$=global.controllers[$api_code$$.toUpperCase()]){Object.keys($sort$$).length>
|
|
110
|
+
0&&($_newList$$.sort=$_newList$$.options.sort=$sort$$);$_newModel$jscomp$1_func_string$$=$_newList$$.model;model.updateModel($_listInfo$$,$_newModel$jscomp$1_func_string$$);if($_newList$$.is_dynamic_list||!$_newList$$.unique||$_newList$$.unique.length===0)$_newList$$.unique=$_newList$$.options.unique=$unique$$;$_newList$$.dynamicDeletePosts=$_newList$$.dynamicDeletePosts||{};$_newList$$.dynamicPosts=$_newList$$.dynamicPosts||{};$_listInfo$$.fields&&$_listInfo$$.postinfos&&$_listInfo$$.postinfos.length>
|
|
111
|
+
0?($_newList$$.dynamicDeletePosts[$_listInfo$$.code]=function($_listInfo$$,$obj$$){return deletePost($_listInfo$$,$obj$$)},$_newList$$.dynamicDeletePost||($_newList$$.dynamicDeletePost=async $obj$$=>$_newList$$.dynamicDeletePosts[$_listInfo$$.code]($_listInfo$$,$obj$$)),$_newList$$.dynamicPosts[$_listInfo$$.code]=async function($obj$$,$fn$$,$options$$){if($_newList$$.post)$_newList$$.post($obj$$,async function($e$$){if($e$$)return $fn$$($e$$);try{let $rs$$=await post($_listInfo$$,$obj$$);$fn$$(null,
|
|
112
|
+
$rs$$)}catch($e$$){$fn$$($e$$.message||$e$$.error||$e$$)}},$options$$);else try{let $rs$$=await post($_listInfo$$,$obj$$);$fn$$(null,$rs$$)}catch($e$$){$fn$$($e$$.message||$e$$.error||$e$$)}},$_newList$$.dynamicPost||($_newList$$.dynamicPost=async($obj$$,$fn$$,$options$$)=>{$_newList$$.dynamicPosts[$_listInfo$$.code]($obj$$,$fn$$,$options$$)})):($_newList$$.dynamicPosts[$_listInfo$$.code]=void 0,$_newList$$.dynamicDeletePosts[$_listInfo$$.code]=void 0)}else{Object.keys($sort$$).length===0&&($sort$$.date_created=
|
|
113
|
+
-1);const $require_id_app$$=$_listInfo$$.require_id_app!=0&&$_listInfo$$.require_id_app!="false";$_newModel$jscomp$1_func_string$$=model.createModel($_listInfo$$);if(!$_newModel$jscomp$1_func_string$$)return;$_newList$$=new controller($router$$,$_newModel$jscomp$1_func_string$$,$api_code$$.toLowerCase(),{sort:$sort$$,unique:$unique$$,notNeedRight:$_listInfo$$.not_need_right,require_id_app:$require_id_app$$,onView:($user$$,$items$$,$next$$)=>{$next$$(null,$items$$)},onCreating:async($user$$,$data$$,
|
|
114
|
+
$next$$)=>{$next$$(null,$data$$)},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{$next$$(null,$data$$,$obj$$)},onDeleting:async($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)}});$_newList$$.is_dynamic_list=!0;$_newList$$.dynamicDeletePosts={};$_newList$$.dynamicPosts={};$_listInfo$$.fields&&$_listInfo$$.postinfos&&$_listInfo$$.postinfos.length>0&&($_newList$$.dynamicDeletePosts[$_listInfo$$.code]=function($_listInfo$$,$obj$$){return deletePost($_listInfo$$,$obj$$)},$_newList$$.dynamicDeletePost=
|
|
115
|
+
async $obj$$=>$_newList$$.dynamicDeletePosts[$_listInfo$$.code]($_listInfo$$,$obj$$),$_newList$$.dynamicPosts[$_listInfo$$.code]=async function($obj$$,$fn$$,$options$$){if($_newList$$.post)$_newList$$.post($obj$$,async function($e$$){if($e$$)return $fn$$($e$$);try{let $rs$$=await post($_listInfo$$,$obj$$);$fn$$(null,$rs$$)}catch($e$$){$fn$$($e$$.message||$e$$.error||$e$$)}},$options$$);else try{let $rs$$=await post($_listInfo$$,$obj$$);$fn$$(null,$rs$$)}catch($e$$){$fn$$($e$$.message||$e$$.error||
|
|
116
|
+
$e$$)}},$_newList$$.dynamicPost=async($obj$$,$fn$$,$options$$)=>{$_newList$$.dynamicPosts[$_listInfo$$.code]($obj$$,$fn$$,$options$$)});$_newList$$.route()}$_newList$$.dynamicViews=$_newList$$.dynamicViews||{};$_newList$$.dynamicViews[$_listInfo$$.code]=($user$$,$items$$,$next$$,$options$$)=>{onView($_newList$$,$_listInfo$$,$user$$,$items$$,$next$$,$options$$)};$_newList$$.dynamicView=($user$$,$items$$,$next$$,$options$$={})=>{let $listinfo_code$$=$options$$.listinfo_code||$_listInfo$$.api_code||
|
|
117
|
+
$_listInfo$$.code;if($_newList$$.dynamicViews[$listinfo_code$$])$_newList$$.dynamicViews[$listinfo_code$$]($user$$,$items$$,$next$$,JSON.parse(JSON.stringify($options$$)));else $next$$(null,$items$$)};$_newList$$.dynamicFindings=$_newList$$.dynamicFindings||{};$_newList$$.dynamicFindings[$_listInfo$$.code]=($user$$,$condition$$,$next$$,$options$$)=>{dynamicFinding($_listInfo$$,$user$$,$condition$$,$next$$,$options$$)};$_newList$$.dynamicFinding=($user$$,$condition$$,$next$$,$options$$={})=>{let $listinfo_code$$=
|
|
118
|
+
$options$$.listinfo_code||$_listInfo$$.api_code||$_listInfo$$.code;if($_newList$$.dynamicFindings[$listinfo_code$$])$_newList$$.dynamicFindings[$listinfo_code$$]($user$$,$condition$$,$next$$,JSON.parse(JSON.stringify($options$$)));else $next$$(null,$condition$$)};$_newList$$.dynamicCreatings=$_newList$$.dynamicCreatings||{};$_newList$$.dynamicCreatings[$_listInfo$$.code]=($user$$,$obj$$,$next$$,$options$$)=>{dynamicCreating($_listInfo$$,$user$$,$obj$$,$next$$,$options$$)};$_newList$$.dynamicCreating=
|
|
119
|
+
($user$$,$obj$$,$next$$,$options$$={})=>{let $listinfo_code$$=$options$$.listinfo_code||$_listInfo$$.api_code||$_listInfo$$.code;if($_newList$$.dynamicCreatings[$listinfo_code$$])$_newList$$.dynamicCreatings[$listinfo_code$$]($user$$,$obj$$,$next$$,JSON.parse(JSON.stringify($options$$)));else $next$$(null,$obj$$)};$_newList$$.dynamicCreateds=$_newList$$.dynamicCreateds||{};$_newList$$.dynamicCreateds[$_listInfo$$.code]=($user$$,$obj$$,$next$$,$options$$)=>{dynamicCreated($_listInfo$$,$user$$,$obj$$,
|
|
120
|
+
$next$$,$options$$)};$_newList$$.dynamicCreated=($user$$,$obj$$,$next$$,$options$$={})=>{let $listinfo_code$$=$options$$.listinfo_code||$_listInfo$$.api_code||$_listInfo$$.code;if($_newList$$.dynamicCreateds[$listinfo_code$$])$_newList$$.dynamicCreateds[$listinfo_code$$]($user$$,$obj$$,$next$$,JSON.parse(JSON.stringify($options$$)));else $next$$(null,$obj$$)};$_newList$$.dynamicUpdatings=$_newList$$.dynamicUpdatings||{};$_newList$$.dynamicUpdatings[$_listInfo$$.code]=($user$$,$data$$,$obj$$,$next$$,
|
|
121
|
+
$options$$)=>{dynamicUpdating($_listInfo$$,$user$$,$data$$,$obj$$,$next$$,$options$$)};$_newList$$.dynamicUpdating=($user$$,$data$$,$obj$$,$next$$,$options$$={})=>{let $listinfo_code$$=$options$$.listinfo_code||$_listInfo$$.api_code||$_listInfo$$.code;if($_newList$$.dynamicUpdatings[$listinfo_code$$])$_newList$$.dynamicUpdatings[$listinfo_code$$]($user$$,$data$$,$obj$$,$next$$,JSON.parse(JSON.stringify($options$$)));else $next$$(null,$data$$,$obj$$)};$_newList$$.dynamicUpdateds=$_newList$$.dynamicUpdateds||
|
|
122
|
+
{};$_newList$$.dynamicUpdateds[$_listInfo$$.code]=($user$$,$obj$$,$next$$,$options$$)=>{dynamicUpdated($_listInfo$$,$user$$,$obj$$,$next$$,$options$$)};$_newList$$.dynamicUpdated=($user$$,$obj$$,$next$$,$options$$={})=>{let $listinfo_code$$=$options$$.listinfo_code||$_listInfo$$.api_code||$_listInfo$$.code;if($_newList$$.dynamicUpdateds[$listinfo_code$$])$_newList$$.dynamicUpdateds[$listinfo_code$$]($user$$,$obj$$,$next$$,JSON.parse(JSON.stringify($options$$)));else $next$$(null,$obj$$)};$_newList$$.dynamicDeletings=
|
|
123
|
+
$_newList$$.dynamicDeletings||{};$_newList$$.dynamicDeletings[$_listInfo$$.code]=($user$$,$obj$$,$next$$,$options$$)=>{dynamicDeleting($_listInfo$$,$user$$,$obj$$,$next$$,$options$$)};$_newList$$.dynamicDeleting=($user$$,$obj$$,$next$$,$options$$={})=>{let $listinfo_code$$=$options$$.listinfo_code||$_listInfo$$.api_code||$_listInfo$$.code;if($_newList$$.dynamicDeletings[$listinfo_code$$])$_newList$$.dynamicDeletings[$listinfo_code$$]($user$$,$obj$$,$next$$,JSON.parse(JSON.stringify($options$$)));
|
|
124
|
+
else $next$$(null,$obj$$)};return $_newList$$};module.exports=model;
|
package/server/models/po1.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pn1=require("./pn1"),pnh=require("./pnh"),pn9=require("./pn9"),pc0=require("./pc0"),async=require("
|
|
2
|
-
default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_von_nk:{type:Number,default:0},gia_von_nk_nt:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,maxlength:1024},ty_le_qd:{type:Number,default:0},ma_kh:{type:String,
|
|
3
|
-
default:"",maxlength:32,trim:!0},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_vt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
|
|
4
|
-
default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
1
|
+
const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pn1=require("./pn1"),pnh=require("./pnh"),pn9=require("./pn9"),pc0=require("./pc0"),async=require("../libs/asyncCompat"),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},so_luong:{type:Number,default:0},gia:{type:Number,default:0},gia_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},
|
|
2
|
+
ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_von_nk:{type:Number,default:0},gia_von_nk_nt:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,maxlength:1024},ty_le_qd:{type:Number,default:0},ma_kh:{type:String,
|
|
3
|
+
uppercase:!0,default:"",maxlength:32,trim:!0},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_vt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
|
|
4
|
+
ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
5
5
|
const po1Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PO1",required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},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,
|
|
6
6
|
min:0,default:1},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32,trim:!0},ten_kh:{type:String},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ngay_giao:{type:Date},id_bao_gia:{type:String,maxlength:1024},id_dnm:{type:String,maxlength:1024},id_kehoachmh:{type:String,maxlength:1024},id_contract:{type:String,maxlength:1024},ma_thue:{type:String,
|
|
7
7
|
uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,dot_thanh_toan:[],phi_khac_nt:{type:Number,default:0},phi_khac:{type:Number,default:0},trang_thai:{type:String,maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},nguoi_lien_he:String,dien_thoai:String,tinh_thanh:String,quan_huyen:String,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pn1=require("./pn1"),pn9=require("./pn9"),po1=require("./po1"),async=require("
|
|
2
|
-
default:0},tien_ck_nt:{type:Number,default:0},gia_von_nk:{type:Number,default:0},gia_von_nk_nt:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,
|
|
3
|
-
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_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},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
|
|
1
|
+
const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pn1=require("./pn1"),pn9=require("./pn9"),po1=require("./po1"),async=require("../libs/asyncCompat"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},so_luong:{type:Number,default:0},gia:{type:Number,default:0},gia_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},
|
|
2
|
+
tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_von_nk:{type:Number,default:0},gia_von_nk_nt:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,
|
|
3
|
+
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_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},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
|
|
4
4
|
detailSchema.validate={ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
5
5
|
const purchase_contractSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PURCHASE_CONTRACT",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,
|
|
6
6
|
required:!0,min:0,default:1},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,required:"Y\u00eau c\u1ea7u nh\u1eadp s\u1ed1 h\u1ee3p \u0111\u1ed3ng",maxlength:32},id_bao_gia:{type:String,maxlength:1024},id_dnm:{type:String,maxlength:1024},id_kehoachmh:{type:String,maxlength:1024},ma_thue:{type:String,uppercase:!0,maxlength:32},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const {evalute}=require("../libs/utils"),axios=require("axios"),async=require("
|
|
2
|
-
default:""}});(global.configs||{}).createIndexes&&(smsaccountSchema.index({id_app:1,account_name:1},{unique:!0}),smsaccountSchema.index({account_name:"text"}),smsaccountSchema.index({account_type:1}),smsaccountSchema.index({status:1}),smsaccountSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.smsaccount||mongoose.model("smsaccount",smsaccountSchema);
|
|
1
|
+
const {evalute}=require("../libs/utils"),axios=require("axios"),async=require("../libs/asyncCompat"),smsaccountSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},account_name:{type:String,required:!0,trim:!0},account_type:{type:String,uppercase:!0,required:!0,trim:!0,default:"QC"},script_send:{type:String,required:!0},template: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:""},
|
|
2
|
+
user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(smsaccountSchema.index({id_app:1,account_name:1},{unique:!0}),smsaccountSchema.index({account_name:"text"}),smsaccountSchema.index({account_type:1}),smsaccountSchema.index({status:1}),smsaccountSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.smsaccount||mongoose.model("smsaccount",smsaccountSchema);
|
|
3
3
|
model.send=async($account_start$$,$phone$$,$content$$)=>{try{if(!$phone$$)throw"Y\u00eau c\u1ea7u s\u1ed1 \u0111i\u1ec7n tho\u1ea1i ng\u01b0\u1eddi nh\u1eadn";if(!$account_start$$.script_send)throw"Script \u0111\u1ec3 g\u1eedi sms kh\u00f4ng t\u1ed3n t\u1ea1i";if(!$content$$)throw"Y\u00eau c\u1ea7u n\u1ed9i dung g\u1eedi \u0111i";let $str_func$$=`return (async ()=>{
|
|
4
4
|
try{
|
|
5
5
|
${$account_start$$.script_send}
|
package/server/models/tdttco.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const async=require("
|
|
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,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,
|
|
3
|
-
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},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,listinfo_code:String});
|
|
1
|
+
const async=require("../libs/asyncCompat"),moment=require("moment"),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,uppercase:!0,maxlength:32},
|
|
2
|
+
ma_nt:{type:String,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,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,
|
|
3
|
+
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},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,listinfo_code:String});
|
|
4
4
|
(global.configs||{}).createIndexes&&(tdttcoSchema.index({id_app:1,id_ct:1,ngay_ct:-1,ma_kh:1}),tdttcoSchema.index({id_app:1,tat_toan:1}),tdttcoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttcoSchema.index({id_ct:1}),tdttcoSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),tdttcoSchema.index({id_app:1,so_hd:1,ngay_hd:-1}),tdttcoSchema.index({id_app:1,tk_co:1}),tdttcoSchema.index({id_app:1,ma_kho:1,ma_kh:1}),tdttcoSchema.index({id_app:1,ma_kh:1}),tdttcoSchema.index({id_app:1,status:1}),tdttcoSchema.index({id_app:1,
|
|
5
5
|
user_created:1,visible_to:1,visible_to_users:1}));tdttcoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
|
|
6
6
|
model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().then($results$$=>{let $invoices$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$invoices$$.push($invoice$$)}$callback$$(null,
|
package/server/models/tdttno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const async=require("
|
|
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,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,
|
|
3
|
-
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},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:""},listinfo_code:String});
|
|
1
|
+
const async=require("../libs/asyncCompat"),moment=require("moment"),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,uppercase:!0,maxlength:32},
|
|
2
|
+
ma_nt:{type:String,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,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,
|
|
3
|
+
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},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:""},listinfo_code:String});
|
|
4
4
|
(global.configs||{}).createIndexes&&(tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1}),tdttnoSchema.index({id_app:1,tat_toan:1}),tdttnoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttnoSchema.index({id_ct:1}),tdttnoSchema.index({id_app:1,so_ct:1,so_hd:1}),tdttnoSchema.index({id_app:1,ngay_ct:1}),tdttnoSchema.index({id_app:1,ngay_hd:1}),tdttnoSchema.index({id_app:1,tk_co:1}),tdttnoSchema.index({id_app:1,ma_kh:1}),tdttnoSchema.index({id_app:1,ma_kho:1}),tdttnoSchema.index({id_app:1,ma_kho:1,
|
|
5
5
|
ma_kh:1}),tdttnoSchema.index({id_app:1,status:1}),tdttnoSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));tdttnoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
|
|
6
6
|
model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().then($results$$=>{let $invoices$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$invoices$$.push($invoice$$)}$callback$$(null,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const controller=require("../../controllers/controller"),model=global.getModel("afflink"),async=require("
|
|
1
|
+
const controller=require("../../controllers/controller"),model=global.getModel("afflink"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"afflink",{sort:{date_created:-1},notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="view"?!0:!1,onView:($user$$,$items$$,$next$$)=>{async.map($items$$,($r$$,$callback$$)=>{setImmediate(async()=>{$r$$.aff_link=`${configs.api_url}/aff/${$r$$._id}`;$r$$.da_hoan_thanh=await global.getModel("so1").countDocuments({id_app:$r$$.id_app,id_afflink:$r$$._id.toString(),trang_thai:{$in:["8"]}});$r$$.da_tra_lai=await global.getModel("hd7").countDocuments({id_app:$r$$.id_app,
|
|
3
3
|
"details.id_afflink":$r$$._id.toString(),trang_thai:{$nin:["9"]}});$callback$$()})},()=>{$next$$(null,$items$$)})},onCreating:($user$$,$data$$,$next$$)=>{delete $data$$.da_truy_cap;delete $data$$.da_dat_hang;delete $data$$.da_giao;delete $data$$.da_huy;delete $data$$.da_tra_lai;$next$$(null,$data$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{delete $data$$.da_truy_cap;delete $data$$.da_dat_hang;delete $data$$.da_giao;delete $data$$.da_huy;delete $data$$.da_tra_lai;$next$$(null,$data$$,$obj$$)}})).route()};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("assbooking"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),{spend}=require("../../libs/blockchainconnect"),AssProduct=global.getModel("assproduct"),async=require("
|
|
1
|
+
const model=global.getModel("assbooking"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),{spend}=require("../../libs/blockchainconnect"),AssProduct=global.getModel("assproduct"),async=require("../../libs/asyncCompat"),moment=require("moment");
|
|
2
2
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assbooking",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>$data$$.trang_thai=="9"||isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,AssProduct,{where:{id_product:"id"},fields:["ten_san_pham",{hinh_anh_ks:"hinh_anh"},
|
|
3
3
|
"logo","ma_loai","wallet_hotel","ds_phong",{user_hotel2:"user_hotel"}]});$items$$.forEach(async $item$$=>{$item$$.thong_tin_phong=($item$$.ds_phong||[]).find($f$$=>($f$$.ma_phong||"").toLowerCase()===($item$$.ma_phong||"").toLowerCase());delete $item$$.ds_phong;$item$$.trang_thai=="1"&&$item$$.ngay_nhan_phong&&moment($item$$.ngay_nhan_phong).toDate().getTime()<moment().endOf("date").toDate().getTime()&&($item$$.trang_thai="8",await model.updateOne({_id:$item$$._id},{trang_thai:"8"}));$item$$.user_hotel2&&
|
|
4
4
|
$item$$.id_product&&$item$$.user_hotel!=$item$$.user_hotel2&&(await model.updateOne({_id:$item$$._id},{user_hotel:$item$$.user_hotel2}),$item$$.user_hotel=$item$$.user_hotel2);delete $item$$.user_hotel2});$next$$(null,$items$$)},onCreating:async($user$$,$obj$$,$next$$)=>{const $hotel$$=await global.getModel("assproduct").findOne({id_app:$obj$$.id_app,id:$obj$$.id_product,status:!0}).lean();if(!$hotel$$)return Logger.error("error booking",$obj$$),$next$$("Kh\u00e1ch s\u1ea1n kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
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"),async=require("
|
|
3
|
-
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
|
-
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$$||={};var $period$$=await assperiod.findOne({id_app:$investment$$.id_app,id:$investment$$.id_period});$period$$||={};$period$$.ty_le_hoa_hong_groups=$period$$.ty_le_hoa_hong_groups||[];var $ty_le_hoa_hong_group$$=$period$$.ty_le_hoa_hong_groups.find($t
|
|
5
|
-
|
|
6
|
-
$intro$$.introduce_code}}}else Logger.info("user nay khong co nguoi gioi thieu",$investment$$.user_created)}catch($e$$){Logger.error("Khong the tinh hoa hong cho nguoi gioi thieu",$e$$)}},phathanh=async($period$$,$obj$$,$product$$)=>{$obj$$.id_product=$period$$.id_product;$obj$$.gia=$period$$.gia;$obj$$.lai_suat_cam_ket=$period$$.lai_suat_cam_ket;$obj$$.lai_suat_truoc_han=$period$$.lai_suat_truoc_han
|
|
7
|
-
$period$$.cho_phep_chuyen_nhuong;$obj$$.denom=$period$$.denom;$obj$$.tg_xu_ly_rut_von=$period$$.tg_xu_ly_rut_von;$obj$$.co_phan=$period$$.co_phan;$obj$$.goi_dau_tu=$period$$.goi_dau_tu;$obj$$.ky_tinh_lai=$period$$.ky_tinh_lai;$obj$$.co_phan?($obj$$.ngay_phat_hanh=$period$$.ngay_phat_hanh,$obj$$.ngay_dao_han=null):($obj$$.ngay_phat_hanh=new Date,$obj$$.ngay_dao_han=$obj$$.ky_han>0?moment($obj$$.ngay_phat_hanh).add($obj$$.ky_han,
|
|
8
|
-
$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"days").toDate();break;case 2:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"weeks").toDate();break;case 3:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,
|
|
9
|
-
|
|
10
|
-
$product$$.creator;await global.getModel("assbank").sendCoins($period$$.id_app,$obj$$.creator,$productCreator$$,$hoahong_totalMoney$$,$obj$$.denom,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"INVESTMENT",memo:"Thanh to\u00e1n \u0111\u1ea7u t\u01b0"});if($obj$$.ky_tra_hoa_hong==0&&$obj$$.ty_le_hoa_hong>0&&$obj$$.address_hoa_hong){$hoahong_totalMoney$$=Math.roundBy($obj$$.ty_le_hoa_hong*$hoahong_totalMoney$$/100,0);
|
|
11
|
-
$obj$$.denom);await global.getModel("assbank").sendCoins($period$$.id_app,$productCreator$$,$obj$$.address_hoa_hong,$hoahong_totalMoney$$,$denomHoaHong$$,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"BONUS-INVESTMENT",memo:"Hoa h\u1ed3ng"});$obj$$.hoa_hong_da_tra=$hoahong_totalMoney$$}await global.getModel("assbank").mintCoins($period$$.id_app,$obj$$.creator,$obj$$.so_luong,$obj$$.token,{id_product:$obj$$.id_product,
|
|
12
|
-
|
|
2
|
+
{isSupperAdmin}=require("../../libs/utils"),async=require("../../libs/asyncCompat"),moment=require("moment"),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
|
+
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
|
+
$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$$||={};var $period$$=await assperiod.findOne({id_app:$investment$$.id_app,id:$investment$$.id_period});$period$$||={};$period$$.ty_le_hoa_hong_groups=$period$$.ty_le_hoa_hong_groups||[];var $ty_le_hoa_hong_group$$=$period$$.ty_le_hoa_hong_groups.find($t$$=>
|
|
5
|
+
$t$$.id_user_group===$usergroup$$._id);$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=$receiver$$;$investment$$.denom_hoa_hong=
|
|
6
|
+
$tang_gioi_thieu_denom$$;$investment$$.ky_tra_hoa_hong=$period$$.ky_tra_hoa_hong;$investment$$.introduce_code=$intro$$.introduce_code}}}else Logger.info("user nay khong co nguoi gioi thieu",$investment$$.user_created)}catch($e$$){Logger.error("Khong the tinh hoa hong cho nguoi gioi thieu",$e$$)}},phathanh=async($period$$,$obj$$,$product$$)=>{$obj$$.id_product=$period$$.id_product;$obj$$.gia=$period$$.gia;$obj$$.lai_suat_cam_ket=$period$$.lai_suat_cam_ket;$obj$$.lai_suat_truoc_han=$period$$.lai_suat_truoc_han;
|
|
7
|
+
$obj$$.ky_han=$period$$.ky_han;$obj$$.cho_phep_rut_von=$period$$.cho_phep_rut_von;$obj$$.cho_phep_chuyen_nhuong=$period$$.cho_phep_chuyen_nhuong;$obj$$.denom=$period$$.denom;$obj$$.tg_xu_ly_rut_von=$period$$.tg_xu_ly_rut_von;$obj$$.co_phan=$period$$.co_phan;$obj$$.goi_dau_tu=$period$$.goi_dau_tu;$obj$$.ky_tinh_lai=$period$$.ky_tinh_lai;$obj$$.co_phan?($obj$$.ngay_phat_hanh=$period$$.ngay_phat_hanh,$obj$$.ngay_dao_han=null):($obj$$.ngay_phat_hanh=new Date,$obj$$.ngay_dao_han=$obj$$.ky_han>0?moment($obj$$.ngay_phat_hanh).add($obj$$.ky_han,
|
|
8
|
+
"days").toDate():$period$$.ngay_chia_loi_nhuan);switch($obj$$.ky_tinh_lai){case 1:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"days").toDate();break;case 2:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"weeks").toDate();break;case 3:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,
|
|
9
|
+
"months").toDate();break;case 4:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"quarters").toDate();break;case 5:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"years").toDate();break;case 9:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh,$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"hours").toDate()}var $hoahong_totalMoney$$=
|
|
10
|
+
Number($obj$$.gia)*Number($obj$$.so_luong);const $productCreator$$=$product$$.creator;await global.getModel("assbank").sendCoins($period$$.id_app,$obj$$.creator,$productCreator$$,$hoahong_totalMoney$$,$obj$$.denom,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"INVESTMENT",memo:"Thanh to\u00e1n \u0111\u1ea7u t\u01b0"});if($obj$$.ky_tra_hoa_hong==0&&$obj$$.ty_le_hoa_hong>0&&$obj$$.address_hoa_hong){$hoahong_totalMoney$$=Math.roundBy($obj$$.ty_le_hoa_hong*$hoahong_totalMoney$$/100,0);
|
|
11
|
+
let $denomHoaHong$$=$obj$$.denom_hoa_hong;$denomHoaHong$$==""&&($denomHoaHong$$=$obj$$.denom);await global.getModel("assbank").sendCoins($period$$.id_app,$productCreator$$,$obj$$.address_hoa_hong,$hoahong_totalMoney$$,$denomHoaHong$$,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"BONUS-INVESTMENT",memo:"Hoa h\u1ed3ng"});$obj$$.hoa_hong_da_tra=$hoahong_totalMoney$$}await global.getModel("assbank").mintCoins($period$$.id_app,$obj$$.creator,$obj$$.so_luong,$obj$$.token,{id_product:$obj$$.id_product,
|
|
12
|
+
id_period:$obj$$.id_period,event:"INVESTMENT",memo:"Nh\u1eadn token \u0111\u1ea7u t\u01b0"});$period$$.da_dau_tu=($period$$.da_dau_tu||0)+$obj$$.so_luong;await $period$$.save();$product$$.da_dau_tu=($product$$.da_dau_tu||0)+$obj$$.so_luong;$product$$.gia_tri_da_dau_tu=($product$$.gia_tri_da_dau_tu||0)+$obj$$.so_luong*$obj$$.gia;await $product$$.save()};
|
|
13
13
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assinvestment",{sort:{date_created:-1},unique:["token"],notNeedRight:!0,requireOtp:($data$$,$options$$)=>$data$$.trang_thai=="0"||$data$$.trang_thai=="2"||$data$$.trang_thai=="7"||isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{let $id_app$$=$user$$.current_id_app;async.mapSeries($items$$,
|
|
14
14
|
($item$$,$cb$$)=>{setImmediate(async()=>{$item$$.wallet_address=$item$$.creator;$item$$.id_period&&(await [$item$$].asyncJoinModel2($id_app$$,assperiod,{where:{id_period:"id"},fields:"ten_ky_han ky_han id_product gia lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von cho_phep_chuyen_nhuong denom tg_xu_ly_rut_von co_phan id_rpt ky_tinh_lai goi_dau_tu tru_lai_da_tra han_tt".split(" ")}),await [$item$$].asyncJoinModel2($id_app$$,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham",
|
|
15
15
|
{product_token:"token"},{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"}]}),$item$$.tong_gia_tri=($item$$.gia||0)*($item$$.so_luong||0),$item$$.lai_du_tinh=Math.roundBy($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han,0),$item$$.tong_gia_tri_dao_han=$item$$.tong_gia_tri+$item$$.lai_du_tinh);$item$$.con_lai=$item$$.da_dao_han?0:$item$$.so_luong-($item$$.da_rut_von||0);$item$$.han_tt||($item$$.han_tt=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const model=global.getModel("asskey"),assrequest=global.getModel("assrequest"),assinvestment=global.getModel("assinvestment"),assproduct=global.getModel("assproduct"),assperiod=global.getModel("assperiod"),User=global.getModel("user"),Receiver=global.getModel("assreceiver"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),async=require("
|
|
2
|
-
require("../../libs/blockchainconnect");
|
|
1
|
+
const model=global.getModel("asskey"),assrequest=global.getModel("assrequest"),assinvestment=global.getModel("assinvestment"),assproduct=global.getModel("assproduct"),assperiod=global.getModel("assperiod"),User=global.getModel("user"),Receiver=global.getModel("assreceiver"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),async=require("../../libs/asyncCompat"),moment=require("moment"),{getWallet,getKeyInfo,bankBalancesGet,spend,getLatestHash,getHashById,
|
|
2
|
+
mining,validHash}=require("../../libs/blockchainconnect");
|
|
3
3
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"asskey",{unique:["address"],sort:{date_created:1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>$options$$.action=="delete"?!0:!1,onFinding:async($user$$,$condition$$,$next$$,$options$$={})=>{$options$$.req&&$options$$.req.query&&!$options$$.req.query.has_balance&&($options$$.req.query.has_balance=$condition$$.has_balance);$condition$$.wallet_type={$in:[9,8]};delete $condition$$.has_balance;if($options$$.req&&
|
|
4
4
|
$options$$.req.query&&!$options$$.req.query.count&&await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,wallet_type:9,address:{$regex:global.configs.ADDRESS_PREFIX||""}})===0)try{await model.createWallet($user$$.current_id_app,$user$$.email,$user$$.name,9)}catch($e$$){Logger.error($e$$)}$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$={})=>{await $items$$.asyncJoinModel2(null,User,{where:{username:"email"},fields:{fullname:"name"}});$options$$.req&&
|
|
5
5
|
$options$$.req.query&&$options$$.req.query.has_balance?async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{delete $item$$.mnemonic;delete $item$$.private_key;delete $item$$.privateKey;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");try{let $bls$$=await bankBalancesGet($item$$.id_app,$item$$.address);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($user$$.current_id_app,assinvestment,{where:{denom:"token"},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("assneedtobuy"),controller=require("../../controllers/controller"),Trangthai=global.getModel("trangthai"),{isSupperAdmin}=require("../../libs/utils"),async=require("
|
|
1
|
+
const model=global.getModel("assneedtobuy"),controller=require("../../controllers/controller"),Trangthai=global.getModel("trangthai"),{isSupperAdmin}=require("../../libs/utils"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assneedtobuy",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{async.mapSeries($items$$,($item$$,$cb$$)=>{setImmediate(async()=>{try{await model.updateNeedToBy($item$$)}catch($e$$){Logger.error("view asssell",
|
|
3
3
|
$e$$)}$cb$$(null,$item$$)})},async()=>{await $items$$.asyncJoinModel2(null,Trangthai,{where:$item$$=>({ma_ct:"ASSNEEDTOBUY",ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai","color"]});$next$$(null,$items$$)})},onCreating:async($id_app_user$$,$NeedToBuy$$,$next$$)=>{var $creator_period_totalMoney$$=$NeedToBuy$$.creator;if(!await global.getModel("asskey").findOne({id_app:$id_app_user$$.current_id_app,username:$id_app_user$$.email,address:$creator_period_totalMoney$$}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");
|
|
4
4
|
$id_app_user$$=$id_app_user$$.current_id_app;$creator_period_totalMoney$$=await global.getModel("assperiod").findOne({id_app:$id_app_user$$,id:$NeedToBuy$$.id_period});if(!$creator_period_totalMoney$$)return $next$$("Kh\u00f4ng t\u1ed3n t\u1ea1i g\u00f3i \u0111\u1ea7u t\u01b0");$NeedToBuy$$.id_product=$creator_period_totalMoney$$.id_product;$NeedToBuy$$.gia_mua=$creator_period_totalMoney$$.gia;$NeedToBuy$$.ky_han=$creator_period_totalMoney$$.ky_han;$NeedToBuy$$.cho_phep_rut_von=$creator_period_totalMoney$$.cho_phep_rut_von;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("assperiod"),assproduct=global.getModel("assproduct"),Trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),async=require("
|
|
1
|
+
const model=global.getModel("assperiod"),assproduct=global.getModel("assproduct"),Trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assperiod",{sort:{hoat_dong:-1,date_created:-1},onFinding:async($pros_user$$,$condition$$,$next$$)=>{$condition$$.ma_loai&&($pros_user$$=await assproduct.find({id_app:$pros_user$$.current_id_app,ma_loai:$condition$$.ma_loai,status:!0},{id:1}),$condition$$.id_product={$in:$pros_user$$.map($p$$=>$p$$.id)},delete $condition$$.ma_loai);$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,
|
|
3
3
|
assproduct,{where:{id_product:"id"},fields:["ten_san_pham","hinh_anh","logo","ma_loai",{product_token:"token"},"gia_tri_hien_tai","sl_nhan_vien","nganh_nghe"]});async.mapSeries($items$$,($item$$,$cb$$)=>{$item$$.id||($item$$.id=$item$$._id.toString());setImmediate(async()=>{if($item$$.goi_dau_tu&&$item$$.frm_step_code){const $frm$$=await global.getModel("financialroadmap").findOne({id_app:$item$$.id_app,code:$item$$.id_product.toString()}).lean();$frm$$&&($item$$.frm_step=($frm$$.steps||[]).find($s$$=>
|
|
4
4
|
$s$$.code===$item$$.frm_step_code),$item$$.frm_step&&$item$$.frm_step.sl_slot&&($item$$.frm_step.sl_cp_slot=$item$$.frm_step.dillution/100*$item$$.frm_step.total_share/$item$$.frm_step.sl_slot))}$cb$$(null,$item$$)})},async()=>{$items$$.joinModel2(null,Trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSPERIOD"}),fields:["ten_trang_thai","color"]}],function(){$next$$(null,$items$$)})})},onCreating:async($frm$jscomp$1_frm_step_product_user$$,$obj$$,$next$$)=>{var $amount_creator_so_luong_goi_dau_tu$$=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("asssell"),controller=require("../../controllers/controller"),AssProduct=global.getModel("assproduct"),Trangthai=global.getModel("trangthai"),async=require("
|
|
1
|
+
const model=global.getModel("asssell"),controller=require("../../controllers/controller"),AssProduct=global.getModel("assproduct"),Trangthai=global.getModel("trangthai"),async=require("../../libs/asyncCompat"),updateSell=model.updateSell,moment=require("moment"),{isSupperAdmin}=require("../../libs/utils");
|
|
2
2
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"asssell",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{async.mapSeries($items$$.filter($item$$=>($item$$.id||$item$$.id===0)&&$item$$.trang_thai=="0"),($item$$,$cb$$)=>{setImmediate(async()=>{try{if(await updateSell($item$$),
|
|
3
3
|
$item$$.goi_dau_tu)try{$item$$.market_value=await global.getModel("assinvestment").getInvestmentMarketValue($item$$.id_app,$item$$.token)}catch($e$$){Logger.error($e$$)}}catch($e$$){Logger.error("view asssell",$e$$)}$cb$$(null,$item$$)})},async()=>{$items$$=$items$$.filter($i$$=>!$i$$.not_found);await $items$$.asyncJoinModel2(null,Trangthai,{where:$item$$=>({ma_ct:"ASSSELL",ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai","color"]});await $items$$.asyncJoinModel2($user$$.current_id_app,
|
|
4
4
|
AssProduct,{where:{id_product:"id"},fields:["ten_san_pham","hinh_anh","logo","ma_loai"]});$next$$(null,$items$$)})},onCreating:async($NeedToBuy_user$$,$Sell$$,$next$$)=>{var $app_creator_invest$$=$Sell$$.creator;if(!await global.getModel("asskey").findOne({id_app:$NeedToBuy_user$$.current_id_app,username:$NeedToBuy_user$$.email,address:$app_creator_invest$$}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");$app_creator_invest$$=await global.getModel("app").findOne({_id:$NeedToBuy_user$$.current_id_app}).lean();
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
const model=global.getModel("cart"),User=global.getModel("user"),App=global.getModel("app"),controller=require("../../controllers/controller"),Dmvt=global.getModel("dmvt"),underscore=require("underscore"),getGiaBan=require("../../libs/getGiaban"),utils=require("../../libs/utils"),ckvt=require("../../libs/ckvt"),async=require("
|
|
2
|
-
$condition$$,$next$$,$options$$={})=>{$options$$.req&&$user$$.email==="public"?$condition$$.session_created=($options$$.req.cookies||{}).uid:$condition$$.user_created=$user$$.email;$next$$(null,$condition$$)},onView:async($user$$,$result$$,$fn$$)=>{async.series({app:$callback$$=>{$result$$.joinModel2(null,App,{where:{id_app_vt:"_id"},fields:[{name_app_vt:"name"}]},function($kq$$){$callback$$(null,$kq$$)})},user:$callback$$=>{$result$$.joinModel2(null,User,{where:{user:"email"},
|
|
3
|
-
{partner:"partner"}]},function($kq$$){$callback$$(null,$kq$$)})},vt:$callback$$=>{$result$$.joinModel2(null,Dmvt,{where:{ma_vt:"ma_vt",id_app_vt:"id_app"},fields:["ten_vt","ten_vt_eng","picture_thumb","picture","ma_danh_muc",{gia_ban_le0:"gia_ban_le0"},"chieu_cao","chieu_rong","chieu_sau","trong_luong","kg_kiem_tra_ton_kho_tt","tg_tk","kg_kiem_tra_ton_kho","ton_kho_online_hien_tai","ma_thue","thue_suat"]},function($kq$$){setImmediate(async()=>{await $result$$.filter($r
|
|
4
|
-
"vat",{where:{ma_thue:"ma_thue",id_app_vt:"id_app"},fields:[{thue_suat:"thue_suat"}]});async.mapLimit($result$$.filter($item$$=>$item$$.ton_kho_online_hien_tai),5,($item$$,$callback$$)=>{setImmediate(async()=>{if($item$$.kg_kiem_tra_ton_kho_tt){if($item$$.ma_dvt){var $ds_kho_online_dvtqd$$=await global.getModel("dmqddvt").findOne({id_app:$item$$.id_app_vt,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean();$ds_kho_online_dvtqd$$&&($item$$.ton=$ds_kho_online_dvtqd$$.tu
|
|
5
|
-
$ds_kho_online_dvtqd$$.mau/$ds_kho_online_dvtqd$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai/($ds_kho_online_dvtqd$$.ty_le_qd||1),4))}$callback$$()}else{$ds_kho_online_dvtqd$$=(await global.getModel("dmkho").find({id_app:$item$$.id_app_vt,la_kho_online:!0},{ma_kho:1}).lean()).map($k$$=>$k$$.ma_kho);let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app_vt};$item$$.ma_tt1&&($condition$$.ma_tt1=$item$$.ma_tt1);$item$$.ma_tt2&&
|
|
6
|
-
$item$$.ma_tt3);$condition$$.groupBy=["ma_vt"];$condition$$.ngay=new Date;$condition$$.ma_kho={$in:$ds_kho_online_dvtqd$$};ckvt($condition$$,async function($dvtqd$$,$rs$$){$item$$.ton=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ma_dvt&&($dvtqd$$=await global.getModel("dmqddvt").findOne({id_app:$item$$.id_app_vt,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean())&&($item$$.ton=$dvtqd$$.tu&&$dvtqd$$.mau?
|
|
7
|
-
($dvtqd$$.ty_le_qd||1),4));$callback$$()})}})},()=>{$callback$$(null,$kq$$)})})})},giaban:$callback$$=>{async.mapLimit($result$$,5,($item$$,$callback$$)=>{setImmediate(()=>{if($item$$.km_yn_for&&$item$$.km_yn_for.toUpperCase()==="SO1")return $callback$$();let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app_vt,user:$user$$};$item$$.ma_tt1&&($condition$$.ma_tt1=$item$$.ma_tt1);$item$$.ma_tt2&&($condition$$.ma_tt2=$item$$.ma_tt2)
|
|
8
|
-
$item$$.sl_xuat;$condition$$.online=!0;getGiaBan($condition$$,async($e$$,$gia$$)=>{$e$$&&Logger.info("error when get gia_ban on cart",$e$$);$item$$.tien_hang_ct_nt=0;$item$$.tien_hang_ct=0;$item$$.tien_ck=0;$item$$.tien_ck_nt=0;$item$$.ty_le_ck=0;$e$$=$item$$.thue_suat||0;$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$item$$.gia_ban=$item$$.gia_ban_nt=$item$$.gia_ban_le
|
|
9
|
-
$item$$.tien_ck?($item$$.tien_ck=$item$$.tien_ck_nt=Math.roundBy(($item$$.tien_ck||0)*Math.min($item$$.sl_xuat,$gia$$.sl_ap_dung)),$item$$.ty_le_ck=0):$item$$.tien_ck=$item$$.tien_ck_nt=Math.roundBy(($item$$.ty_le_ck||0)*$item$$.gia_ban_ct/100*Math.min($item$$.sl_xuat,$gia$$.sl_ap_dung)):$item$$.tien_ck?($item$$.tien_ck=$item$$.tien_ck_nt=Math.roundBy(($item$$.tien_ck||0)*$item$$.sl_xuat),$item$$.ty_le_ck=0):$item$$.tien_ck
|
|
10
|
-
100*$item$$.sl_xuat),$gia$$.promotion&&$gia$$.promotion.length>0&&await Promise.all($gia$$.promotion.map($p$$=>{($p$$.details_km||[]).forEach($r$$=>{$r$$.km_yn_for=`${$item$$.id_app_vt}-${$item$$.ma_vt}`});return($p$$.details_km||[]).asyncJoinModel2($item$$.id_app_vt,global.getModel("dmvt"),{where:"ma_vt",fields:"ma_dvt chieu_cao chieu_rong chieu_sau trong_luong tg_tk kg_kiem_tra_ton_kho_tt kg_kiem_tra_ton_kho".split(" ")})}))):
|
|
11
|
-
$item$$.gia_ban_ct_nt=$item$$.gia_ban/(1+$e$$/100));$item$$.tien_hang=$item$$.tien_hang_nt=Math.roundBy($item$$.gia_ban*$item$$.sl_xuat);$item$$.tien_hang_ct_nt=$item$$.tien_hang_ct=Math.roundBy($item$$.sl_xuat*$item$$.gia_ban_ct_nt);$item$$.so_tien_max&&($item$$.tien_ck=$item$$.tien_ck_nt=Math.min($item$$.so_tien_max,$item$$.tien_ck_nt));$item$$.tien_thue_nt=$item$$.tien_thue=Math.roundBy(($item$$.tien_hang_ct_nt-$item$$.tien_ck_nt)
|
|
12
|
-
($item$$.tien_ck_nt||0)+($item$$.tien_thue_nt||0);delete $item$$.ck_sl_tu2;delete $item$$.exfields;delete $item$$.user_created;delete $item$$.user_updated;$callback$$(null)})})},($e$$,$rs$$)=>{$callback$$(null,$rs$$)})}},$error$$=>{if($error$$)return $fn$$($error$$);try{let $freeshipModel$$=global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$=
|
|
13
|
-
$i$$.id_app_vt).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app_vt,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$fn$$(null,$result$$)}).catch($e$$=>{Logger.error($e$$)
|
|
14
|
-
$fn$$(null,$result$$)}})}})).route()};module.exports=cart;
|
|
1
|
+
const model=global.getModel("cart"),User=global.getModel("user"),App=global.getModel("app"),controller=require("../../controllers/controller"),Dmvt=global.getModel("dmvt"),underscore=require("underscore"),getGiaBan=require("../../libs/getGiaban"),utils=require("../../libs/utils"),ckvt=require("../../libs/ckvt"),async=require("../../libs/asyncCompat"),moment=require("moment"),cart=function($router$$){(new controller($router$$,model,"cart",{requireRecaptchaToken:!1,notNeedRight:!0,sort:{stt:1,user:1},
|
|
2
|
+
onFinding:($user$$,$condition$$,$next$$,$options$$={})=>{$options$$.req&&$user$$.email==="public"?$condition$$.session_created=($options$$.req.cookies||{}).uid:$condition$$.user_created=$user$$.email;$next$$(null,$condition$$)},onView:async($user$$,$result$$,$fn$$)=>{async.series({app:$callback$$=>{$result$$.joinModel2(null,App,{where:{id_app_vt:"_id"},fields:[{name_app_vt:"name"}]},function($kq$$){$callback$$(null,$kq$$)})},user:$callback$$=>{$result$$.joinModel2(null,User,{where:{user:"email"},
|
|
3
|
+
fields:[{user_name:"name"},{partner:"partner"}]},function($kq$$){$callback$$(null,$kq$$)})},vt:$callback$$=>{$result$$.joinModel2(null,Dmvt,{where:{ma_vt:"ma_vt",id_app_vt:"id_app"},fields:["ten_vt","ten_vt_eng","picture_thumb","picture","ma_danh_muc",{gia_ban_le0:"gia_ban_le0"},"chieu_cao","chieu_rong","chieu_sau","trong_luong","kg_kiem_tra_ton_kho_tt","tg_tk","kg_kiem_tra_ton_kho","ton_kho_online_hien_tai","ma_thue","thue_suat"]},function($kq$$){setImmediate(async()=>{await $result$$.filter($r$$=>
|
|
4
|
+
$r$$.ma_thue).asyncJoinModel2(null,"vat",{where:{ma_thue:"ma_thue",id_app_vt:"id_app"},fields:[{thue_suat:"thue_suat"}]});async.mapLimit($result$$.filter($item$$=>$item$$.ton_kho_online_hien_tai),5,($item$$,$callback$$)=>{setImmediate(async()=>{if($item$$.kg_kiem_tra_ton_kho_tt){if($item$$.ma_dvt){var $ds_kho_online_dvtqd$$=await global.getModel("dmqddvt").findOne({id_app:$item$$.id_app_vt,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean();$ds_kho_online_dvtqd$$&&($item$$.ton=$ds_kho_online_dvtqd$$.tu&&
|
|
5
|
+
$ds_kho_online_dvtqd$$.mau?utils.round($item$$.ton_kho_online_hien_tai*$ds_kho_online_dvtqd$$.mau/$ds_kho_online_dvtqd$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai/($ds_kho_online_dvtqd$$.ty_le_qd||1),4))}$callback$$()}else{$ds_kho_online_dvtqd$$=(await global.getModel("dmkho").find({id_app:$item$$.id_app_vt,la_kho_online:!0},{ma_kho:1}).lean()).map($k$$=>$k$$.ma_kho);let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app_vt};$item$$.ma_tt1&&($condition$$.ma_tt1=$item$$.ma_tt1);$item$$.ma_tt2&&
|
|
6
|
+
($condition$$.ma_tt2=$item$$.ma_tt2);$item$$.ma_tt3&&($condition$$.ma_tt3=$item$$.ma_tt3);$condition$$.groupBy=["ma_vt"];$condition$$.ngay=new Date;$condition$$.ma_kho={$in:$ds_kho_online_dvtqd$$};ckvt($condition$$,async function($dvtqd$$,$rs$$){$item$$.ton=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ma_dvt&&($dvtqd$$=await global.getModel("dmqddvt").findOne({id_app:$item$$.id_app_vt,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean())&&($item$$.ton=$dvtqd$$.tu&&$dvtqd$$.mau?
|
|
7
|
+
utils.round($item$$.ton*$dvtqd$$.mau/$dvtqd$$.tu,4):utils.round($item$$.ton/($dvtqd$$.ty_le_qd||1),4));$callback$$()})}})},()=>{$callback$$(null,$kq$$)})})})},giaban:$callback$$=>{async.mapLimit($result$$,5,($item$$,$callback$$)=>{setImmediate(()=>{if($item$$.km_yn_for&&$item$$.km_yn_for.toUpperCase()==="SO1")return $callback$$();let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app_vt,user:$user$$};$item$$.ma_tt1&&($condition$$.ma_tt1=$item$$.ma_tt1);$item$$.ma_tt2&&($condition$$.ma_tt2=$item$$.ma_tt2);
|
|
8
|
+
$item$$.ma_tt3&&($condition$$.ma_tt3=$item$$.ma_tt3);$condition$$.sl_xuat=$item$$.sl_xuat;$condition$$.online=!0;getGiaBan($condition$$,async($e$$,$gia$$)=>{$e$$&&Logger.info("error when get gia_ban on cart",$e$$);$item$$.tien_hang_ct_nt=0;$item$$.tien_hang_ct=0;$item$$.tien_ck=0;$item$$.tien_ck_nt=0;$item$$.ty_le_ck=0;$e$$=$item$$.thue_suat||0;$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$item$$.gia_ban=$item$$.gia_ban_nt=$item$$.gia_ban_le,
|
|
9
|
+
$item$$.gia_ban_ct=$item$$.gia_ban_ct_nt=$item$$.gia_ban/(1+$e$$/100),$gia$$.sl_ap_dung?$item$$.tien_ck?($item$$.tien_ck=$item$$.tien_ck_nt=Math.roundBy(($item$$.tien_ck||0)*Math.min($item$$.sl_xuat,$gia$$.sl_ap_dung)),$item$$.ty_le_ck=0):$item$$.tien_ck=$item$$.tien_ck_nt=Math.roundBy(($item$$.ty_le_ck||0)*$item$$.gia_ban_ct/100*Math.min($item$$.sl_xuat,$gia$$.sl_ap_dung)):$item$$.tien_ck?($item$$.tien_ck=$item$$.tien_ck_nt=Math.roundBy(($item$$.tien_ck||0)*$item$$.sl_xuat),$item$$.ty_le_ck=0):$item$$.tien_ck=
|
|
10
|
+
$item$$.tien_ck_nt=Math.roundBy(($item$$.ty_le_ck||0)*$item$$.gia_ban_ct/100*$item$$.sl_xuat),$gia$$.promotion&&$gia$$.promotion.length>0&&await Promise.all($gia$$.promotion.map($p$$=>{($p$$.details_km||[]).forEach($r$$=>{$r$$.km_yn_for=`${$item$$.id_app_vt}-${$item$$.ma_vt}`});return($p$$.details_km||[]).asyncJoinModel2($item$$.id_app_vt,global.getModel("dmvt"),{where:"ma_vt",fields:"ma_dvt chieu_cao chieu_rong chieu_sau trong_luong tg_tk kg_kiem_tra_ton_kho_tt kg_kiem_tra_ton_kho".split(" ")})}))):
|
|
11
|
+
($item$$.gia_ban=$item$$.gia_ban_nt=$item$$.gia_ban_le0,$item$$.gia_ban_ct=$item$$.gia_ban_ct_nt=$item$$.gia_ban/(1+$e$$/100));$item$$.tien_hang=$item$$.tien_hang_nt=Math.roundBy($item$$.gia_ban*$item$$.sl_xuat);$item$$.tien_hang_ct_nt=$item$$.tien_hang_ct=Math.roundBy($item$$.sl_xuat*$item$$.gia_ban_ct_nt);$item$$.so_tien_max&&($item$$.tien_ck=$item$$.tien_ck_nt=Math.min($item$$.so_tien_max,$item$$.tien_ck_nt));$item$$.tien_thue_nt=$item$$.tien_thue=Math.roundBy(($item$$.tien_hang_ct_nt-$item$$.tien_ck_nt)*
|
|
12
|
+
$e$$/100);$item$$.tien=$item$$.tien_nt=$item$$.tien_hang_ct_nt-($item$$.tien_ck_nt||0)+($item$$.tien_thue_nt||0);delete $item$$.ck_sl_tu2;delete $item$$.exfields;delete $item$$.user_created;delete $item$$.user_updated;$callback$$(null)})})},($e$$,$rs$$)=>{$callback$$(null,$rs$$)})}},$error$$=>{if($error$$)return $fn$$($error$$);try{let $freeshipModel$$=global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$=
|
|
13
|
+
{$gte:$tu_ngay$$};Promise.all($result$$.filter($i$$=>$i$$.id_app_vt).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app_vt,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$fn$$(null,$result$$)}).catch($e$$=>{Logger.error($e$$);
|
|
14
|
+
$fn$$(null,$result$$)})}catch($e$$){Logger.error($e$$),$fn$$(null,$result$$)}})}})).route()};module.exports=cart;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const model=global.getModel("congdoansx"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("congdoansx"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"congdoansx",{sort:{stt:1},unique:["ma_cong_doan"],onView:function($user$$,$items$$,$next$$){async.series({pt:function($callback$$){$items$$.joinModel2($user$$.current_id_app,Participant,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$(null,$items$$)})},ph:function($callback$$){$items$$.joinModel2($user$$.current_id_app,Participant,[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(){$callback$$(null,
|
|
3
3
|
$items$$)})}},()=>{$next$$(null,$items$$)})}})).route()};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const model=global.getModel("consultant"),group=global.getModel("group"),controller=require("../../controllers/controller"),async=require("
|
|
2
|
-
module.exports=consultant;
|
|
1
|
+
const model=global.getModel("consultant"),group=global.getModel("group"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat"),consultant=function($router$$){(new controller($router$$,model,"consultant",{sort:{stt:1},unique:["consultant_code"],onView:($user$$,$items$$,$next$$)=>{async.series({group:$callback$$=>{$items$$.joinModel2(null,group,[{where:{consultant_group:"_id"},fields:["group_name","group_name_en","color"]}],function(){$callback$$()})}},()=>{$next$$(null,
|
|
2
|
+
$items$$)})}})).route()};module.exports=consultant;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const model=global.getModel("dkhoc"),controller=require("../../controllers/controller"),dmvt=global.getModel("dmvt"),dmdt=global.getModel("dmdt"),customer=global.getModel("customer"),Pbl=global.getModel("pbl"),PostSocai=require("../../libs/post-socai"),socai=global.getModel("socai"),async=require("
|
|
2
|
-
|
|
1
|
+
const model=global.getModel("dkhoc"),controller=require("../../controllers/controller"),dmvt=global.getModel("dmvt"),dmdt=global.getModel("dmdt"),customer=global.getModel("customer"),Pbl=global.getModel("pbl"),PostSocai=require("../../libs/post-socai"),socai=global.getModel("socai"),async=require("../../libs/asyncCompat"),_=require("underscore"),dkhoc=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dkhoc",{sort:{ma_kho:1,ma_dt:1,ma_vt:1},unique:["id_pbl","ma_dt","ma_kh",
|
|
2
|
+
"ma_vt"]});$contr_router$$.route();$contr_router$$.post=function($obj$$,$fn$$){$fn$$||=function(){};async.series({post_socai:$callback$$=>{const $details_sc$$=[],$o$$={...$obj$$};socai.findOne({id_ct:$obj$$.id_pbl,flag:"DT_"+($o$$.ma_vt||"")}).lean().exec(($e$$,$_socai$$)=>{Logger.info("find dt pbl",{id_ct:$obj$$.id_pbl,flag:"DT_"+($o$$.ma_vt||"")},$_socai$$);$_socai$$&&$o$$.tk_dt&&($o$$.tk_co=$o$$.tk_dt,$o$$.tk_no=$_socai$$.tk_co,$o$$.tien_nt=$_socai$$.tien_nt,$o$$.tien=$_socai$$.tien,$details_sc$$.push($o$$));
|
|
3
3
|
(new PostSocai($obj$$,$details_sc$$)).run(($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.view=async($id_app_user$$,$items$$,$next$$)=>{$id_app_user$$=$id_app_user$$.current_id_app;await $items$$.asyncJoinModel2($id_app_user$$,dmdt,{where:"ma_dt",fields:["ten_dt","ngay_bd","ngay_kt"]});await $items$$.asyncJoinModel2($id_app_user$$,customer,{where:"ma_kh",fields:"ten_kh"});await $items$$.asyncJoinModel2($id_app_user$$,dmvt,{where:"ma_vt",fields:"ten_vt"});
|
|
4
4
|
$next$$(null,$items$$)};$contr_router$$.creating=async($user$$,$data$$,$next$$)=>{let $query$$={id_app:$user$$.current_id_app,ma_kho:$data$$.ma_kho,ma_kh:$data$$.ma_kh,trang_thai:{$in:["5","6"]},_id:$data$$.id_pbl,details:{$elemMatch:{ma_vt:$data$$.ma_vt}}};if(!await Pbl.findOne($query$$))return $next$$("H\u1ecdc vi\u00ean n\u00e0y ch\u01b0a mua kho\u00e1 h\u1ecdc n\u00e0y");$query$$={id_app:$user$$.current_id_app,ma_kho:$data$$.ma_kho,ma_dt:$data$$.ma_dt,ma_kh:$data$$.ma_kh,ma_vt:$data$$.ma_vt,id_pbl:$data$$.id_pbl};
|
|
5
5
|
if(await model.findOne($query$$))return $next$$("H\u1ecdc vi\u00ean n\u00e0y \u0111\u00e3 \u0111ang k\u00fd h\u1ecdc cho kho\u00e1 n\u00e0y");$next$$(null,$data$$)};$contr_router$$.updating=($user$$,$data$$,$obj$$,$next$$)=>{if(!_.isEqual({ma_kho:$data$$.ma_kho,ma_dt:$data$$.ma_dt,ma_kh:$data$$.ma_kh,ma_vt:$data$$.ma_vt,id_pbl:$data$$.id_pbl},{ma_kho:$obj$$.ma_kho,ma_dt:$obj$$.ma_dt,ma_kh:$obj$$.ma_kh,ma_vt:$obj$$.ma_vt,id_pbl:$obj$$.id_pbl}))return $next$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p ch\u1ec9nh s\u1eeda th\u00f4ng tin \u0111\u00e3 \u0111\u0103ng k\u00fd");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("dmban"),group=global.getModel("group"),dmkho=global.getModel("dmkho"),pbl=global.getModel("pbl"),trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("dmban"),group=global.getModel("group"),dmkho=global.getModel("dmkho"),pbl=global.getModel("pbl"),trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"dmban",{sort:{ma_kho:1,stt:1,ten_ban:1},notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="view"?!0:!1,unique:["ma_ban"],onView:function($user$$,$items$$,$next$$){async.series({kho:function($callback$$){$items$$.joinModel2($user$$.current_id_app,dmkho,[{where:{ma_kho:"ma_kho"},fields:[{ten_kho:"ten_kho"}]}],function(){$callback$$(null)})},grp:function($callback$$){$items$$.joinModel2($user$$.current_id_app,
|
|
3
3
|
group,[{where:{nh_ban:"_id"},fields:[{name:"ten_nh_ban",value:"group_name"}]}],function(){$callback$$(null)})},loai:function($callback$$){$items$$.joinModel2($user$$.current_id_app,group,[{where:{loai_ban:"_id"},fields:[{name:"ten_loai_ban",value:"group_name"}]}],function(){$callback$$(null)})},trang_thai:function($callback$$){Promise.all($items$$.map($item$$=>(async()=>{let $p$$=await pbl.findOne({id_app:$item$$.id_app,ma_ban:$item$$.ma_ban,ma_kho:$item$$.ma_kho,trang_thai:{$in:["1","3"]}});$item$$.trang_thai=
|
|
4
4
|
$p$$?$p$$.trang_thai:"0";return $item$$})())).then(()=>{$items$$.joinModel2(null,trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"DMBAN"}),fields:[{name:"ten_trang_thai",value:"group_name"},{name:"color",value:"color"}]}],function(){$callback$$(null)})})}},function(){$next$$(null,$items$$)})}})).route()};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("
|
|
2
|
-
$callback$$($sysorder$$)}).catch($e$$=>{$callback$$($e$$)}):$callback$$($sysorder$$)};
|
|
1
|
+
const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat"),getSysorder=function($item$$,$callback$$){let $sysorder$$=($item$$.stt||"0")+"-"+$item$$.ma_bp;$item$$.ma_bp_me&&$item$$.ma_bp_me!=$item$$.ma_bp.toString()?model.findOne({ma_bp:$item$$.ma_bp_me,id_app:$item$$.id_app}).lean().then(function($item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;
|
|
2
|
+
$callback$$($sysorder$$)}):$callback$$($sysorder$$)}).catch($e$$=>{$callback$$($e$$)}):$callback$$($sysorder$$)};
|
|
3
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.parallel({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,
|
|
4
4
|
Participant,[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(){$callback$$(null,$items$$)})}},()=>{$next$$(null,$items$$)})},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{if($data$$.ma_bp_me&&(await model.getAllChildrenGroup($obj$$.id_app,$obj$$.ma_bp.toString())).indexOf($data$$.ma_bp_me)>=0)return $next$$("Kh\u00f4ng th\u1ec3 ch\u1ecdn nh\u00f3m n\u00e0y l\u00e0m nh\u00f3m m\u1eb9");$next$$(null,$data$$,$obj$$)}});$contr_router$$.route();$contr_router$$.deleting=function($user$$,
|
|
5
5
|
$obj$$,$next$$){if($obj$$.loai_nh===0)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$$,async function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;await model.updateOne({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}}).catch(console.error);$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const model=global.getModel("dmdoi"),dmbp=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("
|
|
1
|
+
const model=global.getModel("dmdoi"),dmbp=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"dmdoi",{sort:{ma_bp:1,ma_doi:1},unique:["ma_doi"],onView:function($user$$,$items$$,$next$$){async.series({dp:function($callback$$){$items$$.joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}],function(){$callback$$(null,$items$$)})},pt:function($callback$$){$items$$.joinModel2($user$$.current_id_app,Participant,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$(null,
|
|
3
3
|
$items$$)})},ph:function($callback$$){$items$$.joinModel2($user$$.current_id_app,Participant,[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(){$callback$$(null,$items$$)})}},()=>{$next$$(null,$items$$)})},onRightByItem:($user$$,$condition$$,$next$$)=>{async.series({phu_trach_bp:$callback$$=>{dmbp.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().then($bps$$=>{$callback$$(null,$bps$$)}).catch($e$$=>{$callback$$($e$$)})}},($$or_e$$,$_condition_rs$$)=>{if($$or_e$$)return $next$$($$or_e$$);
|
|
4
4
|
$$or_e$$=[{ma_bp:{$in:$_condition_rs$$.phu_trach_bp.map($p$$=>$p$$.ma_bp)}}];$_condition_rs$$=[];for(let $k$$ in $condition$$){let $_c$$={};$_c$$[$k$$]=$condition$$[$k$$];$_condition_rs$$.push($_c$$)}$$or_e$$.push({$and:$_condition_rs$$});$next$$(null,{$or:$$or_e$$})})}})).route()};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const model=global.getModel("group"),dmdt=global.getModel("dmdt"),dmbp=global.getModel("dmbp"),task=global.getModel("task"),User=global.getModel("user"),UserGroup=global.getModel("usergroup"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("
|
|
2
|
-
"view"?!0:!1,onView:($user$$,$items$$,$next$$)=>{async.series({dt:$cb$$=>{$items$$.filter($r$$=>$r$$.ma_dt).joinModel2($user$$.current_id_app,dmdt,{where:"ma_dt",fields:[{ten_dt:"ten_dt"},{id_dt:"_id"}]},()=>{$cb$$(null)})},bp:$cb$$=>{$items$$.filter($r$$=>$r$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,{where:"ma_bp",fields:"ten_bp"},()=>{$cb$$(null)})},pt:async()=>{await $items$$.asyncJoinModel2($user$$.current_id_app,Participant,{where:{phu_trach:"email"},fields:{nhom_phu_trach:"group_id"}});
|
|
1
|
+
const model=global.getModel("group"),dmdt=global.getModel("dmdt"),dmbp=global.getModel("dmbp"),task=global.getModel("task"),User=global.getModel("user"),UserGroup=global.getModel("usergroup"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("../../libs/asyncCompat"),dmnhtask=function($router$$){(new controller($router$$,model,"dmnhtask",{sort:{group_name:1},findExact:{group_type:1},notNeedRight:($user$$,$options$$={})=>($options$$.action||
|
|
2
|
+
"").toLowerCase()=="view"?!0:!1,onView:($user$$,$items$$,$next$$)=>{async.series({dt:$cb$$=>{$items$$.filter($r$$=>$r$$.ma_dt).joinModel2($user$$.current_id_app,dmdt,{where:"ma_dt",fields:[{ten_dt:"ten_dt"},{id_dt:"_id"}]},()=>{$cb$$(null)})},bp:$cb$$=>{$items$$.filter($r$$=>$r$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,{where:"ma_bp",fields:"ten_bp"},()=>{$cb$$(null)})},pt:async()=>{await $items$$.asyncJoinModel2($user$$.current_id_app,Participant,{where:{phu_trach:"email"},fields:{nhom_phu_trach:"group_id"}});
|
|
3
3
|
await $items$$.asyncJoinModel2($user$$.current_id_app,UserGroup,{where:{nhom_phu_trach:"_id"},fields:{ten_nhom_phu_trach:"group_name"}});await $items$$.asyncJoinModel2(null,User,{where:{phu_trach:"email"},fields:{ten_phu_trach:"name"}});return null},tasks:async()=>{await Promise.all($items$$.map($item$$=>(async()=>{$item$$.total_tasks=await task.countDocuments({id_app:$user$$.current_id_app,nh_cv:$item$$._id.toString(),saved:{$ne:!0}});$item$$.total_tasks_done=await task.countDocuments({id_app:$user$$.current_id_app,
|
|
4
4
|
nh_cv:$item$$._id.toString(),progress:"3",saved:{$ne:!0}});return $item$$})()));return null}},()=>{$next$$(null,$items$$)})},onFinding:($user$$,$condition$$,$cb$$)=>{$condition$$.group_type="TASK";$cb$$(null,$condition$$)},onCreating:($user$$,$data$$,$cb$$)=>{$data$$.group_type="TASK";$data$$.attends&&($data$$.attends=[...(new Set($data$$.attends))]);$cb$$(null,$data$$)},onUpdating:($user$$,$data$$,$obj$$,$cb$$)=>{$data$$.group_type="TASK";$data$$.attends=$data$$.attends||$obj$$.attends;$data$$.attends&&
|
|
5
5
|
($data$$.attends=[...(new Set($data$$.attends))]);$cb$$(null,$data$$,$obj$$)}})).route()};module.exports=dmnhtask;
|