flexbiz-server 12.2.1 → 12.2.2

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 CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flexbiz-server",
3
3
  "main": "./server/app.js",
4
4
  "description": "Flexible Server",
5
- "version": "12.2.1",
5
+ "version": "12.2.2",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -4,7 +4,8 @@ function generateToken($user$$){var $body_n_n$$={email:$user$$.email};configs.AP
4
4
  function saveOTP($Phone$$,$otp_code$$,$callback$$,$expires$$=5){let $expire_time$$=new Date;$expire_time$$.setMinutes($expire_time$$.getMinutes()+$expires$$);OTP.create({phone:$Phone$$,otp:$otp_code$$,expire_time:$expire_time$$},($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.toObject())})}
5
5
  function findByUsername($username$$,$fn$$){if(!$username$$)return $fn$$("B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n");User.findOne({$or:[{email:$username$$},{"local.phone":$username$$}]},function($error$$,$result$$){return!$error$$&&$result$$&&$result$$.local?$fn$$(null,$result$$):$fn$$($error$$||`T\u00e0i kho\u1ea3n ${$username$$} kh\u00f4ng t\u1ed3n t\u1ea1i`)})}
6
6
  async function addUserToApp($user$$,$body$$,$cust_session_created$$){if($body$$.id_app){if(!await App.findById($body$$.id_app))throw console.error("Can't find app",$body$$.id_app),"Kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y th\u00f4ng tin c\u00f4ng ty n\u00e0y";await Participant.asyncCreateParticipant({id_app:$body$$.id_app,name:$body$$.name||$user$$.email,email:$body$$.email,group_id:$body$$.group_id,active:!0,session_created:$cust_session_created$$});await global.getModel("customer").findOne({id_app:$body$$.id_app,
7
- of_user:$user$$.email}).lean()||($cust_session_created$$={ten_kh:$body$$.name||$user$$.email,email:$user$$.email,id_app:$body$$.id_app,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email},$body$$.customer_info&&($cust_session_created$$={...$body$$.customer_info,...$cust_session_created$$}),$cust_session_created$$.ten_kh||($cust_session_created$$.ten_kh=$body$$.name||$user$$.email),await Customer.asyncCreateCustomer($cust_session_created$$))}}
7
+ of_user:$user$$.email}).lean()||($cust_session_created$$={ten_kh:$body$$.name||$user$$.email,email:validator.isEmail($user$$.email)?$user$$.email:void 0},$body$$.customer_info&&($cust_session_created$$={...$cust_session_created$$,...$body$$.customer_info}),$cust_session_created$$.ten_kh||($cust_session_created$$.ten_kh=$body$$.name||$user$$.email),$cust_session_created$$={...$cust_session_created$$,id_app:$body$$.id_app,user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email},
8
+ await Customer.asyncCreateCustomer($cust_session_created$$))}}
8
9
  module.exports=async function($app$jscomp$0$$,$passport$$){const $rateLimiter$$=await global.createRateLimiterMiddleware(configs.limitRequest.auth||{},"auth");$passport$$.use(new BasicStrategy(function($username$$,$password$$,$done$$){if(!$username$$)return $done$$("B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n");$username$$=$username$$.trim().toLowerCase();setImmediate(function(){findByUsername($username$$,function($err$$,$user$$){if($err$$)return $done$$($err$$);if(!$user$$)return $done$$("T\u00e0i kho\u1ea3n "+
9
10
  $username$$+" ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd.");if(0==$user$$.status)return $done$$("T\u00e0i kho\u1ea3n n\u00e0y kh\u00f4ng c\u00f2n hi\u1ec7u l\u1ef1c");if($user$$.local.rspassword)if($user$$.validRspassword($password$$))$user$$.local.password=$user$$.local.rspassword,$user$$.local.rspassword=void 0,User.findOneAndUpdate({email:$user$$.email},{local:$user$$.local},($e$$,$rs$$)=>{if($e$$)return console.error("Can't update password",$user$$.email,$e$$);console.log("updated new password",
10
11
  $user$$.email,$rs$$)});else{if(!$user$$.validPassword($password$$))return $done$$("M\u1eadt kh\u1ea9u kh\u00f4ng ch\u00ednh x\u00e1c.")}else{if(!$user$$.local.password)return $done$$("M\u1eadt kh\u1ea9u cho ng\u01b0\u1eddi d\u00f9ng n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i. H\u00e3y s\u1eed d\u1ee5ng t\u00ednh n\u0103ng kh\u00f4i ph\u1ee5c m\u1eadt kh\u1ea9u \u0111\u1ec3 \u0111\u1eb7t l\u1ea1i m\u1eadt kh\u1ea9u cho ng\u01b0\u1eddi d\u00f9ng n\u00e0y");if(!$user$$.validPassword($password$$))return $done$$("M\u1eadt kh\u1ea9u kh\u00f4ng ch\u00ednh x\u00e1c.")}return $done$$(null,
@@ -3,8 +3,8 @@ sender_date:Date,transaction:Schema.Types.Mixed,return_url:String,notify_url:Str
3
3
  assrequestSchema.index({request_id:1});assrequestSchema.index({ma_ct:1});assrequestSchema.index({denom:1});assrequestSchema.index({order_id:1});assrequestSchema.index({order_info:1});assrequestSchema.index({receiver_name:1});assrequestSchema.index({receiver_address:1});assrequestSchema.index({status:1});assrequestSchema.index({user_created:1});assrequestSchema.index({trang_thai:1});
4
4
  assrequestSchema.index({receiver_address:"text",order_id:"text",order_info:"text",receiver_name:"text",sender_name:"text"},{name:"assrequest_index2"});const model=mongoose.models.assrequest||mongoose.model("assrequest",assrequestSchema);model.on("index",async function($err$$){$err$$?console.error("assrequest index error",$err$$):console.info("assrequest indexing complete")});
5
5
  model.createVirtualPaymentClientURL=async($order$$,$_app_client_ip$$,$_paymentViaWallet_item$$)=>{$_app_client_ip$$=await global.getModel("app").findOne({_id:$order$$.id_app});$_paymentViaWallet_item$$=await model.create({id_app:$order$$.id_app,user_created:$order$$.user_created,user_updated:$order$$.user_created,receiver_name:$_paymentViaWallet_item$$.wallet_configs.receiver_name,receiver_address:$_paymentViaWallet_item$$.wallet_configs.receiver_address,request_id:$order$$._id.toString(),ma_ct:$order$$.ma_ct||
6
- "",amount:$order$$.amount,denom:$_paymentViaWallet_item$$.wallet_configs.denom,order_id:$order$$.so_ct||$order$$._id.toString(),order_info:$order$$.dien_giai||"Thanh to\u00e1n cho \u0111\u01a1n h\u00e0ng "+($order$$.so_ct||$order$$._id.toString())});$_paymentViaWallet_item$$.return_url=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/${$order$$.id_app}/assrequest/${$_paymentViaWallet_item$$._id.toString()}/callback`;await $_paymentViaWallet_item$$.save();return($_app_client_ip$$.domain||
7
- "")+"/#/payment/"+$_paymentViaWallet_item$$._id.toString()};
6
+ "",amount:$order$$.amount,denom:$_paymentViaWallet_item$$.wallet_configs.denom,order_id:$order$$.so_ct||$order$$._id.toString(),order_info:"Thanh to\u00e1n cho \u0111\u01a1n h\u00e0ng "+($order$$.so_ct||$order$$._id.toString())});$_paymentViaWallet_item$$.return_url=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/${$order$$.id_app}/assrequest/${$_paymentViaWallet_item$$._id.toString()}/callback`;await $_paymentViaWallet_item$$.save();return($_app_client_ip$$.domain||"")+"/#/payment/"+
7
+ $_paymentViaWallet_item$$._id.toString()};
8
8
  model.verifyReturnUrl=async($again_link_id_app$$,$id_transaction_request$$,$query_results$$)=>{$again_link_id_app$$=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/payment/again`;$id_transaction_request$$=await model.findOne({_id:$id_transaction_request$$}).lean();if(!$id_transaction_request$$)throw"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i";$query_results$$={...$query_results$$};$query_results$$.isSuccess="1"==$id_transaction_request$$.trang_thai;if($query_results$$.isSuccess&&
9
9
  $id_transaction_request$$.ma_ct){let $_v$$=global.getModel(`${$id_transaction_request$$.ma_ct.toLowerCase()}`);const $obj_updated$$=await $_v$$.findOne({_id:$id_transaction_request$$.request_id});try{let $ctrl$$=global.controllers[$id_transaction_request$$.ma_ct.toUpperCase()];if($ctrl$$&&$obj_updated$$){if($ctrl$$.handleAfterPayment){console.log("handle after payment");try{await $ctrl$$.handleAfterPayment($obj_updated$$),controller.pushNotification($ctrl$$,$obj_updated$$,"payment",null,!1,{title:`Bill ${$obj_updated$$.so_ct} \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n`})}catch($e$$){console.error("error handle after payment",
10
10
  $e$$)}}else await $_v$$.findOneAndUpdate({_id:$id_transaction_request$$.request_id},{trang_thai:"5"}),$ctrl$$.post?controller.postData($obj_updated$$,$ctrl$$,async()=>{controller.pushNotification($ctrl$$,$obj_updated$$,"update")}):controller.pushNotification($ctrl$$,$obj_updated$$,"update");$query_results$$.result_url=$obj_updated$$.again_link||$again_link_id_app$$}}catch($e$$){console.error("error update status for voucher",$id_transaction_request$$.ma_ct,$e$$),$query_results$$.result_url=$obj_updated$$.again_link||
@@ -1,6 +1,6 @@
1
- 'use strict';const dmhoahonghdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},kieu:{type:String,default:"0"},doi_tuong:{type:String,default:"0"},hinh_thuc_tt:{type:String,default:"0"},ma_hoahong:{type:String,uppercase:!0,required:!0,maxlength:32},ten_hoahong:{type:String,required:!0,maxlength:1024},mieu_ta:{type:String},chi_su_dung_cho_ct:{type:String,uppercase:!0},khong_su_dung_cho_ct:{type:String,uppercase:!0},user_group:String,ma_nv:{type:String,default:"",maxlength:32},ten_nv:String,
2
- ma_bp:{type:String,default:"",maxlength:1024},ten_bp:String,ma_kh:{type:String,default:"",maxlength:32},ten_kh:String,nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,ma_kho:{type:String,default:"",maxlength:32},ten_kho:String,gt_tu:{type:Number,default:0},gt_den:{type:Number,default:0},vts:[],sl_toi_thieu:{type:Number,default:0},tien_hh:{type:Number,default:0},ty_le_hh:{type:Number,default:0},so_tien_max:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,
3
- required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},details_km:[],picture:{type:String},exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,default:!0},online:{type:Boolean},offline:{type:Boolean},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},ma_kh_id:{type:Schema.Types.ObjectId,ref:"customer",
4
- localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]}});dmhoahonghdSchema.index({id_app:1,ma_hoahong:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmhoahonghdSchema.index({ap_dung_lan_mua_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_tu_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_den_thu:1});dmhoahonghdSchema.index({gt_tu:1});dmhoahonghdSchema.index({gt_den:1});dmhoahonghdSchema.index({ten_kho:1});
5
- dmhoahonghdSchema.index({nh_kh:1});dmhoahonghdSchema.index({ten_nh_kh:1});dmhoahonghdSchema.index({ma_nv:1});dmhoahonghdSchema.index({ma_bp:1});dmhoahonghdSchema.index({user_group:1});dmhoahonghdSchema.index({date_updated:-1});dmhoahonghdSchema.index({date_created:-1});dmhoahonghdSchema.index({user_created:1});dmhoahonghdSchema.index({online:1});dmhoahonghdSchema.index({offline:1});
1
+ 'use strict';const dmhoahonghdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},kieu:{type:String,default:"0"},doi_tuong:{type:String,default:"0"},hinh_thuc_tt:{type:String,default:"0"},do_uu_tien:{type:Number,default:0},ma_hoahong:{type:String,uppercase:!0,required:!0,maxlength:32},ten_hoahong:{type:String,required:!0,maxlength:1024},mieu_ta:{type:String},chi_su_dung_cho_ct:{type:String,uppercase:!0},khong_su_dung_cho_ct:{type:String,uppercase:!0},user_group:String,ma_nv:{type:String,
2
+ default:"",maxlength:32},ten_nv:String,ma_bp:{type:String,default:"",maxlength:1024},ten_bp:String,ma_kh:{type:String,default:"",maxlength:32},ten_kh:String,nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,ma_kho:{type:String,default:"",maxlength:32},ten_kho:String,gt_tu:{type:Number,default:0},gt_den:{type:Number,default:0},vts:[],sl_toi_thieu:{type:Number,default:0},tien_hh:{type:Number,default:0},ty_le_hh:{type:Number,default:0},so_tien_max:{type:Number,default:0},hieu_luc_tu:{type:Date,
3
+ required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},details_km:[],picture:{type:String},exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,default:!0},online:{type:Boolean},offline:{type:Boolean},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},ma_kh_id:{type:Schema.Types.ObjectId,
4
+ ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]}});dmhoahonghdSchema.index({id_app:1,ma_hoahong:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmhoahonghdSchema.index({ap_dung_lan_mua_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_tu_thu:1});dmhoahonghdSchema.index({ap_dung_lan_mua_den_thu:1});dmhoahonghdSchema.index({gt_tu:1});dmhoahonghdSchema.index({gt_den:1});dmhoahonghdSchema.index({ten_kho:1});
5
+ dmhoahonghdSchema.index({nh_kh:1});dmhoahonghdSchema.index({ten_nh_kh:1});dmhoahonghdSchema.index({ma_nv:1});dmhoahonghdSchema.index({ma_bp:1});dmhoahonghdSchema.index({user_group:1});dmhoahonghdSchema.index({kieu:1});dmhoahonghdSchema.index({do_uu_tien:1});dmhoahonghdSchema.index({date_updated:-1});dmhoahonghdSchema.index({date_created:-1});dmhoahonghdSchema.index({user_created:1});dmhoahonghdSchema.index({online:1});dmhoahonghdSchema.index({offline:1});
6
6
  dmhoahonghdSchema.index({mieu_ta:"text",ma_hoahong:"text",ten_hoahong:"text",ma_kh:"text",ten_kh:"text",nh_kh:"text",ten_nh_kh:"text",ma_kho:"text",ten_kho:"text",ma_nv:"text",ten_nv:"text",ma_bp:"text",ten_bp:"text"},{name:"dmhoahonghd_index_text"});dmhoahonghdSchema.set("toObject",{virtuals:!0});dmhoahonghdSchema.set("toJSON",{virtuals:!0});dmhoahonghdSchema.index({status:1});const model=mongoose.models.dmhoahonghd||mongoose.model("dmhoahonghd",dmhoahonghdSchema);module.exports=model;
@@ -1,3 +1,3 @@
1
1
  'use strict';const fileSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},file:{},id_link:String,id_folder:String,collection_link:String,group:{type:String,default:"document"},mieu_ta:{type:String,maxlength:1024},nh_file:{type:String,maxlength:1024},title_topic:{type:String,maxlength:1024},url_topic:{type:String,maxlength:1024},server:String,refresh_token:String,account:String,meta:{},is_avatar:{type:Boolean},read_image:Boolean,text_from_image:String,shared:{type:Boolean},visible_to:{type:Number,
2
- default:0},visible_to_users:[String],update_right:[String],delete_right:[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:""}});fileSchema.index({id_app:1,id_link:1});fileSchema.index({shared:1});fileSchema.index({group:1});fileSchema.index({id_folder:1});fileSchema.index({collection_link:1});fileSchema.index({mieu_ta:"text"});fileSchema.index({status:1});
3
- fileSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.file||mongoose.model("file",fileSchema);
2
+ default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[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:""}});fileSchema.index({id_app:1,id_link:1});fileSchema.index({shared:1});fileSchema.index({group:1});fileSchema.index({id_folder:1});fileSchema.index({collection_link:1});fileSchema.index({mieu_ta:"text"});
3
+ fileSchema.index({status:1});fileSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.file||mongoose.model("file",fileSchema);
@@ -1,3 +1,3 @@
1
- 'use strict';const folderSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:String,collection_link:String,thu_muc_goc:String,ten_thu_muc:{type:String,maxlength:1024},phu_trach:String,ma_bp:String,ma_dt:String,mieu_ta:{type:String,maxlength:1024},shared:{type:Boolean},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
2
- user_created:{type:String,default:""},user_updated:{type:String,default:""}});folderSchema.index({id_app:1,id_link:1});folderSchema.index({shared:1});folderSchema.index({phu_trach:1});folderSchema.index({ma_bp:1});folderSchema.index({ma_dt:1});folderSchema.index({phu_trach:1});folderSchema.index({ten_thu_muc:1});folderSchema.index({collection_link:1});folderSchema.index({mieu_ta:"text",ten_thu_muc:"text"},{name:"folder_index_text"});folderSchema.index({status:1});
1
+ 'use strict';const folderSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:String,collection_link:String,thu_muc_goc:String,ten_thu_muc:{type:String,maxlength:1024},phu_trach:String,ma_bp:String,ma_dt:String,mieu_ta:{type:String,maxlength:1024},shared:{type:Boolean},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},
2
+ date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});folderSchema.index({id_app:1,id_link:1});folderSchema.index({shared:1});folderSchema.index({phu_trach:1});folderSchema.index({ma_bp:1});folderSchema.index({ma_dt:1});folderSchema.index({phu_trach:1});folderSchema.index({ten_thu_muc:1});folderSchema.index({collection_link:1});folderSchema.index({mieu_ta:"text",ten_thu_muc:"text"},{name:"folder_index_text"});folderSchema.index({status:1});
3
3
  folderSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.folder||mongoose.model("folder",folderSchema);
@@ -1,5 +1,5 @@
1
- 'use strict';const groupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_type:{type:String,uppercase:!0,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},group_name_en:{type:String,maxlength:1024},ma_kho:{type:String,maxlength:32},ma_bp:{type:String,maxlength:32},ma_dt:{type:String,maxlength:32},color:{type:String,maxlength:32},muc_tieu_bieu:{type:Number,default:0},ma_doi_tuong_danh_gia_default:{type:String},id_link:String,collection_link:String,
2
- phu_trach:String,attends:[],dac_thu:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});groupSchema.index({id_app:1,group_type:1,ma_dt:1,ma_bp:1});
3
- groupSchema.index({group_type:1});groupSchema.index({group_name:1});groupSchema.index({ma_kho:1});groupSchema.index({ma_dt:1});groupSchema.index({ma_bp:1});groupSchema.index({phu_trach:1});groupSchema.index({id_link:1});groupSchema.index({status:1});groupSchema.index({attends:1});groupSchema.index({group_name:"text",group_type:"text"},{name:"group_index_text"});groupSchema.index({status:1});groupSchema.index({user_created:1,visible_to:1,visible_to_users:1});
4
- const model=mongoose.models.group||mongoose.model("group",groupSchema);model.referenceKeys={_id:[{model:"task",key:"nh_cv",error:"Nh\u00f3m n\u00e0y \u0111\u00e3 c\u00f3 ph\u00e1t sinh chi ti\u1ebft. B\u1ea1n c\u1ea7n xo\u00e1 t\u1ea5t c\u1ea3 chi ti\u1ebft tr\u01b0\u1edbc khi xo\u00e1 nh\u00f3m n\u00e0y"}]};
1
+ 'use strict';const groupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_type:{type:String,uppercase:!0,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},group_name_en:{type:String,maxlength:1024},group_mother:String,ma_kho:{type:String,maxlength:32},ma_bp:{type:String,maxlength:32},ma_dt:{type:String,maxlength:32},color:{type:String,maxlength:32},muc_tieu_bieu:{type:Number,default:0},ma_doi_tuong_danh_gia_default:{type:String},id_link:String,
2
+ collection_link:String,phu_trach:String,attends:[],dac_thu:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});
3
+ groupSchema.index({id_app:1,group_type:1,ma_dt:1,ma_bp:1});groupSchema.index({group_type:1});groupSchema.index({group_mother:1});groupSchema.index({group_name:1});groupSchema.index({ma_kho:1});groupSchema.index({ma_dt:1});groupSchema.index({ma_bp:1});groupSchema.index({phu_trach:1});groupSchema.index({id_link:1});groupSchema.index({status:1});groupSchema.index({attends:1});groupSchema.index({group_name:"text",group_type:"text"},{name:"group_index_text"});groupSchema.index({status:1});
4
+ groupSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.group||mongoose.model("group",groupSchema);model.referenceKeys={_id:[{model:"task",key:"nh_cv",error:"Nh\u00f3m n\u00e0y \u0111\u00e3 c\u00f3 ph\u00e1t sinh chi ti\u1ebft. B\u1ea1n c\u1ea7n xo\u00e1 t\u1ea5t c\u1ea3 chi ti\u1ebft tr\u01b0\u1edbc khi xo\u00e1 nh\u00f3m n\u00e0y"}]};
5
5
  model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:"Can't find information"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};module.exports=model;
@@ -1,6 +1,7 @@
1
1
  'use strict';const checkinactivity=require("./checkinactivity"),task=require("./task"),{round}=require("../libs/utils"),keyresultSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,required:!0,maxlength:1024},name:{type:String,maxlength:1024},note:{type:String,maxlength:4E3},phu_trach:String,ten_phu_trach:String,attends:[],start_date:{type:Date,required:!0},due_date:{type:Date,required:!0},update_interval:{type:Number,default:1},update_source:String,tk_no:[String],
2
2
  tk_co:[String],giam_tru_no:Boolean,giam_tru_co:Boolean,cong_don_gia_tri:Boolean,measure_as:{type:Number,default:1},current_value:{type:Number,default:0},target_value:{type:Number,default:0},aim:{type:Number,default:1},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],
3
- delete_right:[String]});keyresultSchema.index({id_app:1});keyresultSchema.index({id_link:1});keyresultSchema.index({phu_trach:1});keyresultSchema.index({attends:1});keyresultSchema.index({phu_trach:"text",name:"text",ten_phu_trach:"text"});keyresultSchema.index({status:1});keyresultSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.keyresult||mongoose.model("keyresult",keyresultSchema);
3
+ delete_right:[String]});keyresultSchema.index({id_app:1});keyresultSchema.index({id_link:1});keyresultSchema.index({phu_trach:1});keyresultSchema.index({start_date:1});keyresultSchema.index({name:1});keyresultSchema.index({due_date:1});keyresultSchema.index({attends:1});keyresultSchema.index({phu_trach:"text",name:"text",ten_phu_trach:"text"});keyresultSchema.index({status:1});keyresultSchema.index({user_created:1,visible_to:1,visible_to_users:1});
4
+ const model=mongoose.models.keyresult||mongoose.model("keyresult",keyresultSchema);
4
5
  model.asyncGetScore=async $item$$=>{var $checkins_target_remain$$=await checkinactivity.find({id_link:$item$$._id.toString()});$item$$.num_check_ins=$checkins_target_remain$$.length;$item$$.num_check_ins_done=$checkins_target_remain$$.filter($c$$=>"1"===$c$$.trang_thai).length;$item$$.num_tasks=await task.countDocuments({id_link:$item$$._id.toString()});$item$$.score_avg_check_ins=0!=$item$$.num_check_ins_done?round($checkins_target_remain$$.filter($c$$=>"1"===$c$$.trang_thai).map($checkin$$=>$checkin$$.score||
5
6
  0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)/$item$$.num_check_ins_done,2):0;$checkins_target_remain$$=Math.abs($item$$.target_value-$item$$.current_value);switch($item$$.aim){case 1:$item$$.score=!$checkins_target_remain$$||!$item$$.score_avg_check_ins||$item$$.score_avg_check_ins<=$item$$.current_value?0:100*round(($item$$.score_avg_check_ins-$item$$.current_value)/$checkins_target_remain$$,2);break;case 2:$item$$.score=!$checkins_target_remain$$||!$item$$.score_avg_check_ins||$item$$.score_avg_check_ins>=
6
7
  $item$$.current_value?0:100*round(($item$$.current_value-$item$$.score_avg_check_ins)/$checkins_target_remain$$,2);break;case 3:!$checkins_target_remain$$||!$item$$.score_avg_check_ins||$item$$.score_avg_check_ins<=$item$$.current_value?$item$$.score=0:($item$$.score=100*round(($item$$.score_avg_check_ins-$item$$.current_value)/$checkins_target_remain$$,2),100<$item$$.score&&($item$$.score=100-($item$$.score-100)))}return $item$$};module.exports=model;
@@ -1,3 +1,4 @@
1
- 'use strict';const itemSchema=new Schema({code:{type:String,required:!0,maxlength:1024,trim:!0},title:{type:String,required:!0,maxlength:1024},path:{type:String,maxlength:3024,trim:!0},href:{type:String,maxlength:3024,trim:!0},rights:[String],type:{type:String,maxlength:32,trim:!0},dashboard:{type:String,maxlength:1024},horizontal:Boolean,stt:Number,visible:{type:Boolean,default:!0},line:{type:Number,default:0}}),moduleinfoSchema=new Schema({app:{type:String,required:!0,maxlength:1024,uppercase:!0,
2
- trim:!0},code:{type:String,required:!0,maxlength:1024,uppercase:!0,trim:!0},title:{type:String,required:!0,maxlength:1024},mother_module:{type:String,maxlength:1024,trim:!0},name_mother_module:{type:String,maxlength:2024},items:[itemSchema],stt:Number,visible:{type:Boolean,default:!0},only_for_companies:[String],not_for_companies:[String],active_require:{type:Boolean,default:!0},allow_users:{type:String},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
3
- default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});moduleinfoSchema.index({app:1,code:1,moduleinfo:1,mother_module:1});moduleinfoSchema.index({title:"text"});moduleinfoSchema.index({title:1});moduleinfoSchema.index({"items.code":1});moduleinfoSchema.index({status:1});moduleinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.menu||mongoose.model("moduleinfo",moduleinfoSchema);module.exports=model;
1
+ 'use strict';const itemSchema=new Schema({code:{type:String,required:!0,maxlength:1024,trim:!0},title:{type:String,required:!0,maxlength:1024},path:{type:String,maxlength:3024,trim:!0},href:{type:String,maxlength:3024,trim:!0},rights:[String],type:{type:String,maxlength:32,trim:!0},dashboard:{type:String,maxlength:1024},horizontal:Boolean,stt:Number,icon:String,visible:{type:Boolean,default:!0},line:{type:Number,default:0}}),moduleinfoSchema=new Schema({app:{type:String,required:!0,maxlength:1024,
2
+ uppercase:!0,trim:!0},code:{type:String,required:!0,maxlength:1024,uppercase:!0,trim:!0},title:{type:String,required:!0,maxlength:1024},mother_module:{type:String,maxlength:1024,trim:!0},name_mother_module:{type:String,maxlength:2024},items:[itemSchema],stt:Number,visible:{type:Boolean,default:!0},only_for_companies:[String],not_for_companies:[String],active_require:{type:Boolean,default:!0},allow_users:{type:String},icon:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},
3
+ date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});moduleinfoSchema.index({app:1,code:1,moduleinfo:1,mother_module:1});moduleinfoSchema.index({title:"text"});moduleinfoSchema.index({title:1});moduleinfoSchema.index({"items.code":1});moduleinfoSchema.index({status:1});moduleinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.menu||mongoose.model("moduleinfo",moduleinfoSchema);
4
+ module.exports=model;
@@ -1,4 +1,4 @@
1
1
  'use strict';const okrSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},title:{type:String,required:!0,maxlength:1024},type:{type:String,maxlength:1024},ma_bp:{type:String},phu_trach:String,ten_phu_trach:String,attends:[],description:{type:String,maxlength:4E3},start_date:Date,due_date:Date,color:String,id_parent:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},
2
- date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});okrSchema.index({id_app:1});okrSchema.index({id_link:1});okrSchema.index({id_parent:1});okrSchema.index({phu_trach:1});okrSchema.index({ten_phu_trach:1});okrSchema.index({title:1});okrSchema.index({description:1});
2
+ date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String]});okrSchema.index({id_app:1});okrSchema.index({id_link:1});okrSchema.index({id_parent:1});okrSchema.index({phu_trach:1});okrSchema.index({ten_phu_trach:1});okrSchema.index({title:1});okrSchema.index({description:1});
3
3
  okrSchema.index({phu_trach:"text",ten_phu_trach:"text",title:"text",description:"text"},{name:"okr_index_text"});okrSchema.index({attends:1});okrSchema.index({status:1});okrSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.okr||mongoose.model("okr",okrSchema);
4
4
  model.referenceKeys={_id:[{model:"okr",key:"id_parent",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 m\u1ee5c ti\u00eau con c\u1ee7a m\u1ee5c ti\u00eau n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"},{model:"keyresult",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 k\u1ebft qu\u1ea3 c\u1ed1t l\u00f5i c\u1ee7a m\u1ee5c ti\u00eau n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};module.exports=model;
@@ -1,16 +1,16 @@
1
- 'use strict';const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new global.Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,
2
- default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},cs_tien_ck:{type:Number,default:0},cs_ty_le_ck:{type:Number,default:0},cs_sl_ap_dung:{type:Number,default:0},cs_gt_hd_tu:{type:Number,default:0},cs_gt_hd_den:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_thuc:{type:Number,default:0},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},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},
4
- han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},thuoc_tinh:Schema.Types.Mixed,tien_evoucher_duoc_pb:{type:Number,default:0},exfields_detail:global.Schema.Types.Mixed,tasks:[Schema.Types.Mixed],days_of_week:[{index:Number,name:String,sel:Boolean,ghi_chu:String}],ngay_bat_dau:{type:Date},ngay_ket_thuc:{type:Date},
5
- tu_gio:{type:Date},den_gio:{type:Date},so_lan:Number,diem_thuong:{type:Number,default:0},tk_km_no:{type:String},tk_km_co:{type:String},km_yn_for:String,id_cs:String,collection_cs:String,freeship:Schema.Types.Mixed,combo:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
1
+ 'use strict';const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new global.Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_mua:{type:Number,
2
+ default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},cs_tien_ck:{type:Number,default:0},cs_ty_le_ck:{type:Number,default:0},cs_sl_ap_dung:{type:Number,default:0},cs_gt_hd_tu:{type:Number,default:0},cs_gt_hd_den:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,
3
+ default:0},gia_ban_thuc:{type:Number,default:0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,
4
+ maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},thuoc_tinh:Schema.Types.Mixed,tien_evoucher_duoc_pb:{type:Number,default:0},exfields_detail:global.Schema.Types.Mixed,tasks:[Schema.Types.Mixed],days_of_week:[{index:Number,name:String,
5
+ sel:Boolean,ghi_chu:String}],ngay_bat_dau:{type:Date},ngay_ket_thuc:{type:Date},tu_gio:{type:Date},den_gio:{type:Date},so_lan:Number,diem_thuong:{type:Number,default:0},tk_km_no:{type:String},tk_km_co:{type:String},km_yn_for:String,id_cs:String,collection_cs:String,freeship:Schema.Types.Mixed,combo:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
6
6
  const ctcpbhSchema=new global.Schema({ma_cp:{type:String,uppercase:!0,required:!0},dien_giai:{type:String,maxlength:1024},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},line:{type:Number,default:0}}),so1Schema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,maxlength:1024},ma_ct:{type:String,default:"SO1",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,uppercase:!0,trim:!0,maxlength:32},
7
- ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,of_user:{type:String,maxlength:128},ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,
8
- maxlength:1024},dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,default:"VN",maxlength:2},post_code:{type:String,maxlength:1024},location:global.Schema.Types.Mixed,note_ship:{type:String,maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},dich_vu_giao_hang:{type:String,maxlength:1024},trang_thai_giao_hang:{type:String,maxlength:1024},ma_kiem_soat:{type:String,
9
- maxlength:1024},ly_do_that_bai:{type:String,maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ma_nv:String,user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,
10
- tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,ngay_giao_hang:Date,ngay_hoan_thanh:Date,ngay_tra_lai:Date,user_nv_giao_hang:{type:String,maxlength:128},vi_tri_giao_hang:global.Schema.Types.Mixed,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,stt_rec:String,ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},profile:global.Schema.Types.Mixed,discout_code:{type:String,maxlength:32},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,
11
- default:0},ma_freeship:String,tien_freeship:Number,tien_phi_vc:Number,sender_email:{type:String,maxlength:128},id_trans:{type:String,maxlength:1024},paymentByPoints:{type:Number,default:0},exchangeRate:Number,tien_paymentByPoints:{type:Number,default:0},evouchers:[global.Schema.Types.Mixed],tien_evoucher:Number,tk_no_evoucher:String,tk_co_evoucher:String,da_tra:{type:Number,default:0},tien_con_lai:{type:Number,default:0},pt_thanh_toan:{type:String,maxlength:1024},note_payment:{type:String,maxlength:1024},
12
- virtual_payment_client_url:{type:String,maxlength:2024},again_link:{type:String,maxlength:2024},payment_service:String,payment_id:String,payment_getway_lang:{type:String,maxlength:1024},details:{type:[detailSchema]},ctcpbhs:[ctcpbhSchema],shared:Boolean,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,online:Boolean,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
13
- default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});so1Schema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};so1Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});so1Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"so1_index_text"});so1Schema.index({ma_ct:1});so1Schema.index({ma_kh:1});so1Schema.index({ma_kho:1});
14
- so1Schema.index({ma_nv:1});so1Schema.index({"details.ma_vt":1});so1Schema.index({"details.id_cs":1});so1Schema.index({trang_thai:1});so1Schema.index({trang_thai_giao_hang:1});so1Schema.index({user_nv_giao_hang:1});so1Schema.index({user_created:1,date_created:-1});so1Schema.index({date_updated:-1});so1Schema.index({gio:1});so1Schema.index({ngay:1});so1Schema.index({thang:1});so1Schema.index({quy:1});so1Schema.index({nam:-1});so1Schema.index({status:1});so1Schema.index({online:1});
15
- so1Schema.index({user_created:1,visible_to:1,visible_to_users:1});so1Schema.pre("save",function($next$$){let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});const model=global.mongoose.models.so1||global.mongoose.model("so1",so1Schema);model.referenceKeys={_id:[{model:"socai",key:"id_ct_goc",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c ho\u1ea1ch to\u00e1n"}]};
7
+ ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,of_user:{type:String,maxlength:128},ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,user_nv_goi_hang:{type:String,maxlength:128},user_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,
8
+ ngay_hoan_thanh:Date,ngay_tra_lai:Date,vi_tri_giao_hang:global.Schema.Types.Mixed,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,maxlength:1024},dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,default:"VN",maxlength:2},post_code:{type:String,maxlength:1024},location:global.Schema.Types.Mixed,note_ship:{type:String,
9
+ maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},dich_vu_giao_hang:{type:String,maxlength:1024},trang_thai_giao_hang:{type:String,maxlength:1024},ma_kiem_soat:{type:String,maxlength:1024},ly_do_that_bai:{type:String,maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ma_nv:String,user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,
10
+ da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,stt_rec:String,ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},profile:global.Schema.Types.Mixed,discout_code:{type:String,maxlength:32},
11
+ ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},ma_freeship:String,tien_freeship:Number,tien_phi_vc:Number,sender_email:{type:String,maxlength:128},id_trans:{type:String,maxlength:1024},paymentByPoints:{type:Number,default:0},exchangeRate:Number,tien_paymentByPoints:{type:Number,default:0},evouchers:[global.Schema.Types.Mixed],tien_evoucher:Number,tk_no_evoucher:String,tk_co_evoucher:String,da_tra:{type:Number,default:0},tien_con_lai:{type:Number,default:0},pt_thanh_toan:{type:String,
12
+ maxlength:1024},note_payment:{type:String,maxlength:1024},virtual_payment_client_url:{type:String,maxlength:2024},again_link:{type:String,maxlength:2024},payment_service:String,payment_id:String,payment_getway_lang:{type:String,maxlength:1024},details:{type:[detailSchema]},ctcpbhs:[ctcpbhSchema],shared:Boolean,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,online:Boolean,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
13
+ user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});so1Schema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};so1Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});so1Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"so1_index_text"});so1Schema.index({ma_ct:1});
14
+ so1Schema.index({ma_kh:1});so1Schema.index({ma_kho:1});so1Schema.index({ma_nv:1});so1Schema.index({"details.ma_vt":1});so1Schema.index({"details.id_cs":1});so1Schema.index({trang_thai:1});so1Schema.index({trang_thai_giao_hang:1});so1Schema.index({user_nv_giao_hang:1});so1Schema.index({user_created:1,date_created:-1});so1Schema.index({date_updated:-1});so1Schema.index({gio:1});so1Schema.index({ngay:1});so1Schema.index({thang:1});so1Schema.index({quy:1});so1Schema.index({nam:-1});so1Schema.index({status:1});
15
+ so1Schema.index({online:1});so1Schema.index({user_created:1,visible_to:1,visible_to_users:1});so1Schema.pre("save",function($next$$){let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});const model=global.mongoose.models.so1||global.mongoose.model("so1",so1Schema);model.referenceKeys={_id:[{model:"socai",key:"id_ct_goc",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c ho\u1ea1ch to\u00e1n"}]};
16
16
  module.exports=model;
@@ -1,5 +1,5 @@
1
1
  'use strict';const taskSchema=new Schema({id_app:{type:String,required:!0},ten_cv:{type:String,required:!0},id_link:{type:String},id_job:{type:String},id_ct:{type:String},id_kh:{type:String,default:""},id_dt:{type:String,default:""},ten_kh:String,id_bp:{type:String,default:""},ten_bp:String,id_lh:{type:String,default:""},id_dokho:{type:String},diem_toi_thieu:Number,diem_toi_da:Number,diem_du_tinh:Number,chia_diem:Boolean,mieu_ta:{type:String},ghi_chu:{type:String},nh_cv:{type:String},ten_nh_cv:String,
2
- ma_loai_cv:String,phu_trach:{type:String,lowercase:!0},ten_phu_trach:String,location:{type:String},attends:[String],attend_groups:[String],nguoi_kiem_tra:String,nguoi_thuc_hien:String,start_date:{type:Date},due_date:{type:Date},finished_date:{type:Date},nhac_nho_truoc:{type:Number,default:60},reminder:{type:Date},repeat:{type:Number,default:0},priority:{type:Number,default:1},progress:{type:Number,default:0},percent:{type:Number,default:0},exfields:Schema.Types.Mixed,labels:[String],todos:Schema.Types.Mixed,
2
+ ma_loai_cv:String,phu_trach:{type:String,lowercase:!0},ten_phu_trach:String,location:{type:String},attends:[String],attend_groups:[String],nguoi_kiem_tra:String,nguoi_thuc_hien:String,start_date:{type:Date},due_date:{type:Date},finished_date:{type:Date},nhac_nho_truoc:{type:Number,default:60},reminder:{type:Date},repeat:{type:Number,default:0},priority:{type:Number,default:1},progress:{type:Number,default:0},percent:{type:Number,default:0,max:100},exfields:Schema.Types.Mixed,labels:[String],todos:Schema.Types.Mixed,
3
3
  stt:{type:Number,default:0},saved:Boolean,ma_ct:{type:String,uppercase:!0},so_ct:{type:String,uppercase:!0},ngay_ct:Date,ma_nt:{type:String,uppercase:!0},ty_gia:Number,thu_phi:Number,da_thu:Number,tk_no:{type:String,uppercase:!0},tk_co:{type:String,uppercase:!0},phi_dich_vu_1_lan:Number,ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hh:{type:String,uppercase:!0},tk_co_hh:{type:String,uppercase:!0},ma_dvcs:String,group_id_link:String,group_name_link:String,status:{type:Boolean,default:!0},date_created:{type:Date,
4
4
  default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});taskSchema.index({id_app:1});taskSchema.index({id_app:1,ten_cv:1});taskSchema.index({id_app:1,start_date:-1});taskSchema.index({id_app:1,due_date:-1});
5
5
  taskSchema.index({ten_cv:"text",phu_trach:"text",ten_phu_trach:"text",ten_nh_cv:"text",ten_bp:"text",ten_kh:"text"},{name:"task_index_text"});taskSchema.index({id_app:1,nh_cv:1});taskSchema.index({id_app:1,phu_trach:1,ten_phu_trach:1});taskSchema.index({phu_trach:1});taskSchema.index({user_created:1});taskSchema.index({date_created:-1});taskSchema.index({date_updated:-1});taskSchema.index({id_app:1,labels:1});taskSchema.index({id_app:1,nguoi_thuc_hien:1});taskSchema.index({id_app:1,nguoi_kiem_tra:1});
@@ -1,6 +1,7 @@
1
1
  'use strict';const model=global.getModel("customer"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),customer=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"customer",{sort:{date_updated:-1},unique:["ma_kh"],onView:function($user$$,
2
2
  $items$$,$next$$){$items$$.forEach($item$$=>{$item$$.email&&!validator.isEmail($item$$.email)&&($item$$.email="");delete $item$$.default_password});async.series({pt:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.filter($item$$=>$item$$.nh_kh).joinModel2($user$$.current_id_app,group,[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback$$()})},
3
- u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},fields:[{user_name:"name"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})}},()=>{$next$$(null,$items$$)})}});$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_kh&&
4
- $obj$$.ten_kh){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_kh$$=await model.asyncCreateCustomerCode($id_app_user$$,$obj$$.ten_kh);$obj$$.ma_kh=$ma_kh$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_customer_group:!0})}catch($e$$){return}$data$$.of_user&&$_usergroup$$&&User.findOne({email:$data$$.of_user},
5
- ($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.of_user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.of_user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.of_user;$result$$.name=$data$$.ten_kh;$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=
6
- $result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$result$$.email,"to company")})})}})})};module.exports=customer;
3
+ nguon:$callback$$=>{$items$$.filter($item$$=>$item$$.nguon_kh).joinModel2($user$$.current_id_app,global.getModel("dmnguonkh"),[{where:{nguon_kh:"_id"},fields:[{ten_nguon_kh:"ten_nguon_kh"}]}],function(){$callback$$()})},u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},fields:[{user_name:"name"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,
4
+ ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})}},()=>{$next$$(null,$items$$)})}});$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_kh&&$obj$$.ten_kh){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_kh$$=await model.asyncCreateCustomerCode($id_app_user$$,$obj$$.ten_kh);$obj$$.ma_kh=$ma_kh$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",
5
+ async $data$$=>{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_customer_group:!0})}catch($e$$){return}$data$$.of_user&&$_usergroup$$&&User.findOne({email:$data$$.of_user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.of_user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.of_user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.of_user;$result$$.name=
6
+ $data$$.ten_kh;$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},
7
+ $e$$=>{if($e$$)return console.log("can't add user",$result$$.email,"to company")})})}})})};module.exports=customer;
@@ -1,3 +1,3 @@
1
1
  'use strict';const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("async");
2
- module.exports=function($router$$){(new controller($router$$,model,"dmbp",{sort:{stt:1,ma_bp:1},unique:["ma_bp"],codeSync:"list/dmbp",keySync:"ma_bp",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"}]}],
3
- function(){$callback$$(null,$items$$)})}},()=>{$next$$(null,$items$$)})}})).route()};
2
+ module.exports=function($router$$){(new controller($router$$,model,"dmbp",{sort:{stt:1,ma_bp:1},unique:["ma_bp"],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
+ $items$$)})}},()=>{$next$$(null,$items$$)})}})).route()};
@@ -1,7 +1,7 @@
1
1
  'use strict';const model=global.getModel("dmdt"),dkhoc=global.getModel("dkhoc"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),trangthai=global.getModel("trangthai"),link=global.getModel("link"),group=global.getModel("group"),async=require("async");
2
2
  module.exports=function($router$$){const $createLink$$=function($user$$,$obj$$,$next$$){$obj$$.id_kh&&link.find({$or:[{id_a:$obj$$._id.toString(),id_b:$obj$$.id_kh},{id_a:$obj$$.id_kh,id_b:$obj$$._id.toString()}]}).lean().exec(function($e$$,$rs$$){$rs$$&&0!==$rs$$.length||(new link({id_app:$obj$$.id_app,id_a:$obj$$.id_kh,id_b:$obj$$._id.toString(),collection_a:"dmkh",collection_b:"dmdt"})).save(function($e$$){$e$$&&console.error($e$$)})});$next$$&&$next$$(null,$obj$$)},$createLinkAndCode$$=function($user$$,
3
- $obj$$,$next$$){$createLink$$($user$$,$obj$$);$obj$$.ma_dt?$next$$(null,$obj$$):model.findByIdAndUpdate($obj$$._id,{$set:{ma_dt:$obj$$._id.toString().toUpperCase()}},function($error$$,$kh$$){return $error$$?$next$$($error$$):$kh$$?($kh$$.ma_dt=$obj$$._id.toString().toUpperCase(),$next$$(null,$kh$$)):$next$$(Error("Project is not exists"))})};(new controller($router$$,model,"dmdt",{sort:{tinh_thanh:1,quan_huyen:1},unique:["ma_dt"],codeSync:"list/dmdt",keySync:"ma_dt",onFinding:function($user$$,$condition$$,
4
- $next$$){async.series({find_ten_kh:function($callback$$){$condition$$.ten_kh?customer.find({id_app:$user$$.current_id_app,ten_kh:{$regex:$condition$$.ten_kh,$options:"i"}},{_id:1}).lean().exec(function($e$$,$khs$$){if($e$$)return $callback$$($e$$);delete $condition$$.ten_kh;var $id_khs$$=[];$khs$$.forEach(function($kh$$){$id_khs$$.push($kh$$._id.toString())});$condition$$.id_kh={$in:$id_khs$$};$callback$$()}):$callback$$()}},function($e$$){if($e$$)return $next$$($e$$);$next$$(null,$condition$$)})},
5
- onFound:($user$$,$condition$$,$items$$,$next$$)=>{console.log("found",JSON.stringify($condition$$));$next$$(null,$items$$)},onView:function($user$$,$items$$,$next$$){async.series({kh:$callback$$=>{$items$$.joinModel2(null,customer,[{where:{id_kh:"_id"},fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){$callback$$()})},trangthai:$callback$$=>{$items$$.joinModel2(null,trangthai,[{where:$a$$=>void 0===$a$$.trang_thai?{}:{ma_ct:"DMDT",ma_trang_thai:$a$$.trang_thai},fields:["ten_trang_thai","ten_trang_thai_en",
6
- "color"]}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2(null,group,[{where:{nh_dt:"_id"},fields:["group_name","group_name_en",{group_color:"color"}]}],function(){$callback$$()})},da_dang_ky:$callback$jscomp$1$$=>{async.mapSeries($items$$,($item$$,$callback$jscomp$0$$)=>{async.mapSeries($item$$.ds_ca_hoc,($ca$$,$callback$$)=>{dkhoc.find({id_app:$item$$.id_app,ma_dt:$item$$.ma_dt,ma_ca_hoc:$ca$$.ma_ca_hoc}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$ca$$.sl_da_dk=
7
- $rs$$.map(()=>1).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$()})},()=>{$item$$.sl_da_dk=($item$$.ds_ca_hoc||[]).map($d$$=>$d$$.sl_da_dk).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.sl_con_thieu=($item$$.sl_du_tinh||0)-$item$$.sl_da_dk;$callback$jscomp$0$$()})},()=>{$callback$jscomp$1$$()})}},()=>{$next$$(null,$items$$)})},onCreating:function($user$$,$obj$$,$fn$$){$obj$$.ma_dt||($obj$$.ma_dt=$obj$$.ten_dt.toUpperCase());$fn$$(null,$obj$$)},onCreated:$createLinkAndCode$$,onUpdated:$createLinkAndCode$$})).route()};
3
+ $obj$$,$next$$){$createLink$$($user$$,$obj$$);$obj$$.ma_dt?$next$$(null,$obj$$):model.findByIdAndUpdate($obj$$._id,{$set:{ma_dt:$obj$$._id.toString().toUpperCase()}},function($error$$,$kh$$){return $error$$?$next$$($error$$):$kh$$?($kh$$.ma_dt=$obj$$._id.toString().toUpperCase(),$next$$(null,$kh$$)):$next$$(Error("Project is not exists"))})};(new controller($router$$,model,"dmdt",{sort:{tinh_thanh:1,quan_huyen:1},unique:["ma_dt"],onFinding:function($user$$,$condition$$,$next$$){async.series({find_ten_kh:function($callback$$){$condition$$.ten_kh?
4
+ customer.find({id_app:$user$$.current_id_app,ten_kh:{$regex:$condition$$.ten_kh,$options:"i"}},{_id:1}).lean().exec(function($e$$,$khs$$){if($e$$)return $callback$$($e$$);delete $condition$$.ten_kh;var $id_khs$$=[];$khs$$.forEach(function($kh$$){$id_khs$$.push($kh$$._id.toString())});$condition$$.id_kh={$in:$id_khs$$};$callback$$()}):$callback$$()}},function($e$$){if($e$$)return $next$$($e$$);$next$$(null,$condition$$)})},onFound:($user$$,$condition$$,$items$$,$next$$)=>{console.log("found",JSON.stringify($condition$$));
5
+ $next$$(null,$items$$)},onView:function($user$$,$items$$,$next$$){async.series({kh:$callback$$=>{$items$$.joinModel2(null,customer,[{where:{id_kh:"_id"},fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){$callback$$()})},trangthai:$callback$$=>{$items$$.joinModel2(null,trangthai,[{where:$a$$=>void 0===$a$$.trang_thai?{}:{ma_ct:"DMDT",ma_trang_thai:$a$$.trang_thai},fields:["ten_trang_thai","ten_trang_thai_en","color"]}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2(null,group,
6
+ [{where:{nh_dt:"_id"},fields:["group_name","group_name_en",{group_color:"color"}]}],function(){$callback$$()})},da_dang_ky:$callback$jscomp$1$$=>{async.mapSeries($items$$,($item$$,$callback$jscomp$0$$)=>{async.mapSeries($item$$.ds_ca_hoc,($ca$$,$callback$$)=>{dkhoc.find({id_app:$item$$.id_app,ma_dt:$item$$.ma_dt,ma_ca_hoc:$ca$$.ma_ca_hoc}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$ca$$.sl_da_dk=$rs$$.map(()=>1).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$()})},()=>{$item$$.sl_da_dk=
7
+ ($item$$.ds_ca_hoc||[]).map($d$$=>$d$$.sl_da_dk).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.sl_con_thieu=($item$$.sl_du_tinh||0)-$item$$.sl_da_dk;$callback$jscomp$0$$()})},()=>{$callback$jscomp$1$$()})}},()=>{$next$$(null,$items$$)})},onCreating:function($user$$,$obj$$,$fn$$){$obj$$.ma_dt||($obj$$.ma_dt=$obj$$.ten_dt.toUpperCase());$fn$$(null,$obj$$)},onCreated:$createLinkAndCode$$,onUpdated:$createLinkAndCode$$})).route()};
@@ -1,2 +1,2 @@
1
1
  'use strict';const model=global.getModel("dmdvt"),controller=require("../../controllers/controller");
2
- module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmdvt",{sort:{ma_dvt:1},unique:["ma_dvt"],codeSync:"list/dmdvt",keySync:"ma_dvt"});$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.ma_dvt||($obj$$.ma_dvt=$obj$$.ten_dvt);$next$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){$data$$.ma_dvt||($data$$.ma_dvt=$data$$.ten_dvt);$next$$(null,$data$$,$obj$$)};$contr_router$$.route()};
2
+ module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmdvt",{sort:{ma_dvt:1},unique:["ma_dvt"]});$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.ma_dvt||($obj$$.ma_dvt=$obj$$.ten_dvt);$next$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){$data$$.ma_dvt||($data$$.ma_dvt=$data$$.ten_dvt);$next$$(null,$data$$,$obj$$)};$contr_router$$.route()};
@@ -1,2 +1 @@
1
- 'use strict';const model=global.getModel("dmkho"),customer=global.getModel("customer"),controller=require("../../controllers/controller"),async=require("async");
2
- module.exports=function($router$$){(new controller($router$$,model,"dmkho",{sort:{ma_kho:1},unique:["ma_kho"],codeSync:"list/dmkho",keySync:"ma_kho",onView:($user$$,$items$$,$next$$)=>{async.series({kh:$callback$$=>{$items$$.joinModel($user$$.current_id_app,customer,{where:{ma_kh:"ma_kh"},fields:{ten_kh:"ten_kh"}},function(){$callback$$()})}},$e$$=>{$next$$($e$$,$items$$)})}})).route()};
1
+ 'use strict';const model=global.getModel("dmkho"),customer=global.getModel("customer"),controller=require("../../controllers/controller"),async=require("async");module.exports=function($router$$){(new controller($router$$,model,"dmkho",{sort:{ma_kho:1},unique:["ma_kho"],onView:($user$$,$items$$,$next$$)=>{async.series({kh:$callback$$=>{$items$$.joinModel($user$$.current_id_app,customer,{where:{ma_kh:"ma_kh"},fields:{ten_kh:"ten_kh"}},function(){$callback$$()})}},$e$$=>{$next$$($e$$,$items$$)})}})).route()};
@@ -1,4 +1,5 @@
1
- 'use strict';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("async"),dmnhtask=function($router$$){(new controller($router$$,model,"dmnhtask",{sort:{group_name:1},findExact:{group_type:1},onView:($user$$,$items$$,$next$$)=>{async.series({dt:$cb$$=>{$items$$.joinModel2($user$$.current_id_app,
2
- dmdt,{where:"ma_dt",fields:[{ten_dt:"ten_dt"},{id_dt:"_id"}]},()=>{$cb$$(null)})},bp:$cb$$=>{$items$$.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"}});await $items$$.asyncJoinModel2($user$$.current_id_app,UserGroup,{where:{nhom_phu_trach:"_id"},fields:{ten_nhom_phu_trach:"group_name"}});await $items$$.asyncJoinModel2(null,
3
- 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,nh_cv:$item$$._id.toString(),progress:2,saved:{$ne:!0}});return $item$$})()));return null}},()=>{$next$$(null,$items$$)})},onFinding:($user$$,$condition$$,
4
- $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&&($data$$.attends=[...(new Set($data$$.attends))]);$cb$$(null,$data$$,$obj$$)}})).route()};module.exports=dmnhtask;
1
+ 'use strict';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("async"),dmnhtask=function($router$$){(new controller($router$$,model,"dmnhtask",{sort:{group_name:1},findExact:{group_type:1},onView:($user$$,$items$$,$next$$)=>{async.series({dt:$cb$$=>{$items$$.filter($r$$=>
2
+ $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"}});await $items$$.asyncJoinModel2($user$$.current_id_app,UserGroup,{where:{nhom_phu_trach:"_id"},
3
+ 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,nh_cv:$item$$._id.toString(),progress:2,saved:{$ne:!0}});return $item$$})()));
4
+ 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&&($data$$.attends=[...(new Set($data$$.attends))]);$cb$$(null,$data$$,$obj$$)}})).route()};
5
+ module.exports=dmnhtask;
@@ -1,15 +1,15 @@
1
1
  'use strict';const model=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),dmdoi=global.getModel("dmdoi"),dmto=global.getModel("dmto"),dmnhnv=global.getModel("dmnhnv"),User=global.getModel("user"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),group=global.getModel("group"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controller"),dmnv=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,
2
- "dmnv",{sort:{ma_bp:1,ma_doi:1,ma_to:1,ten_nv:1},unique:["ma_nv"],codeSync:"list/dmnv",keySync:"ma_nv",onFinding:($user$$,$condition$$,$next$$)=>{$condition$$.ma_bp&&($condition$$.bo_phan={$elemMatch:{ma_bp:$condition$$.ma_bp,$or:[{den_ngay:null},{den_ngay:{$gte:new Date}}]}},delete $condition$$.ma_bp);$next$$(null,$condition$$)},onCreating:async($user$$,$data$$,$next$$)=>{$data$$.user?model.findOne({id_app:$user$$.current_id_app,user:$data$$.user}).lean().exec(($e$$,$rs$$)=>{$rs$$?$next$$("T\u00ean \u0111\u0103ng nh\u1eadp '"+
3
- $data$$.user+"' \u0111\u00e3 t\u1ed3n t\u1ea1i"):$next$$(null,$data$$)}):$next$$(null,$data$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{$data$$.user&&$data$$.user!==$obj$$.user?model.findOne({id_app:$user$$.current_id_app,user:$data$$.user}).lean().exec(($e$$,$rs$$)=>{$rs$$?$next$$("T\u00ean \u0111\u0103ng nh\u1eadp '"+$data$$.user+"' \u0111\u00e3 t\u1ed3n t\u1ea1i"):$next$$(null,$data$$,$obj$$)}):$next$$(null,$data$$,$obj$$)},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{delete $item$$.default_password});
4
- async.series([$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{name:"ten_phu_trach",value:"name"}]}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:"ten_bp"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_doi).joinModel2($user$$.current_id_app,dmdoi,[{where:{ma_bp:"ma_bp",
5
- ma_doi:"ma_doi"},fields:"ten_doi"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_to).joinModel2($user$$.current_id_app,dmto,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi",ma_to:"ma_to"},fields:"ten_to"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_nh_nv).joinModel2($user$$.current_id_app,dmnhnv,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi",ma_to:"ma_to",ma_nh_nv:"ma_nh_nv"},fields:"ten_nh_nv"}],function(){$callback$$(null,
6
- $items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.chuc_vu).joinModel2($user$$.current_id_app,group,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},{color:"color"},{muc_tieu_bieu:"muc_tieu_bieu"}]}],function(){$callback$$(null,$items$$)})},$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$jscomp$0$$,$callback$$)=>{($item$jscomp$0$$.bo_phan||[]).filter($item$$=>$item$$.chuc_vu).joinModel2($user$$.current_id_app,group,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},
7
- {color:"color"},{muc_tieu_bieu:"muc_tieu_bieu"}]}],function(){$callback$$(null,$items$$)})},()=>{$callback$jscomp$0$$(null,$items$$)})},$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$jscomp$0$$,$callback$$)=>{($item$jscomp$0$$.bo_phan||[]).filter($item$$=>$item$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:[{ten_bp:"ten_bp"}]}],function(){$callback$$(null,$items$$)})},()=>{$callback$jscomp$0$$(null,$items$$)})}],()=>{$items$$.filter($item$$=>$item$$.bo_phan).forEach($item$$=>
8
- {$item$$.bo_phan.forEach($bp$$=>{$bp$$.active=!$bp$$.den_ngay||$bp$$.den_ngay>=new Date;$bp$$.active&&($item$$.ma_bp=$item$$.map_bp||$bp$$.ma_bp,$item$$.ten_bp=$item$$.ten_bp||$bp$$.ten_bp,$item$$.phu_trach=$item$$.phu_trach||$bp$$.phu_trach,$item$$.chuc_vu=$item$$.chuc_vu||$bp$$.chuc_vu)})});$next$$(null,$items$$)})},onImport:($user$$,$data$$,$columns$$,$next$$)=>{async.mapSeries($data$$,function($r$$,$callback$jscomp$0$$){async.series({nhom:function($callback$$){$r$$.group_name&&!$r$$.nh_kh?group.findOneAndUpdate({id_app:$user$$.current_id_app,
9
- group_type:"DMNV",group_name:{$regex:$r$$.group_name,$options:"i"}},{group_name:$r$$.group_name,group_type:"DMNV",status:!0},{new:!0,upsert:!0},function($e$$,$n$$){if($e$$)return $callback$$($e$$);$r$$.nh_nv=$n$$._id.toString();$callback$$(null)}):$callback$$()}},function(){$callback$jscomp$0$$()})},function(){$next$$()})},onRightByItem:($user$$,$condition$$,$next$$)=>{async.series({phu_trach_bp:$callback$$=>{dmbp.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>
10
- {$callback$$(null,$bps$$)})},phu_trach_doi:$callback$$=>{dmdoi.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_to:$callback$$=>{dmto.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_nhom:$callback$$=>{dmnhnv.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})}},($_condition_bps$jscomp$4_e$$,
11
- $$or_nhs_rs$$)=>{if($_condition_bps$jscomp$4_e$$)return $next$$($_condition_bps$jscomp$4_e$$);$_condition_bps$jscomp$4_e$$=underscore.pluck($$or_nhs_rs$$.phu_trach_bp,"ma_bp");var $_c_dois$$=underscore.pluck($$or_nhs_rs$$.phu_trach_doi,"ma_doi");let $tos$$=underscore.pluck($$or_nhs_rs$$.phu_trach_to,"ma_to");$$or_nhs_rs$$=underscore.pluck($$or_nhs_rs$$.phu_trach_nhom,"ma_nh_nv");$$or_nhs_rs$$=[{user:$user$$.email},{ma_bp:{$in:$_condition_bps$jscomp$4_e$$}},{ma_doi:{$in:$_c_dois$$}},{ma_to:{$in:$tos$$}},
12
- {ma_nh_nv:{$in:$$or_nhs_rs$$}}];$_condition_bps$jscomp$4_e$$=[];for(let $k$$ in $condition$$)$_c_dois$$={},$_c_dois$$[$k$$]=$condition$$[$k$$],$_condition_bps$jscomp$4_e$$.push($_c_dois$$);$$or_nhs_rs$$.push({$and:$_condition_bps$jscomp$4_e$$});$next$$(null,{$or:$$or_nhs_rs$$})})},onQuery:($req$$,$next$$)=>{if($req$$.obj&&$req$$.obj.user===$req$$.user.email)return $req$$.permission=!0,$next$$();$req$$.permission||($req$$.condition={user:$req$$.user.email});$req$$.permission=!0;$next$$()}});$contr_router$$.validating=
13
- async($id_app_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_nv&&$obj$$.ten_nv){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_nv$$=await model.asyncCreateEmployeeCode($id_app_user$$,$obj$$.ten_nv);$obj$$.ma_nv=$ma_nv$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_employee_group:!0})}catch($e$$){return}$data$$.user&&
14
- $_usergroup$$&&User.findOne({email:$data$$.user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.user;$result$$.name=$data$$.ten_nv;$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture=
15
- "/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$result$$.email,"to company")})})}})})};module.exports=dmnv;
2
+ "dmnv",{sort:{ma_bp:1,ma_doi:1,ma_to:1,ten_nv:1},unique:["ma_nv"],onCreating:async($user$$,$data$$,$next$$)=>{$data$$.user?model.findOne({id_app:$user$$.current_id_app,user:$data$$.user}).lean().exec(($e$$,$rs$$)=>{$rs$$?$next$$("T\u00ean \u0111\u0103ng nh\u1eadp '"+$data$$.user+"' \u0111\u00e3 t\u1ed3n t\u1ea1i"):$next$$(null,$data$$)}):$next$$(null,$data$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{$data$$.user&&$data$$.user!==$obj$$.user?model.findOne({id_app:$user$$.current_id_app,user:$data$$.user}).lean().exec(($e$$,
3
+ $rs$$)=>{$rs$$?$next$$("T\u00ean \u0111\u0103ng nh\u1eadp '"+$data$$.user+"' \u0111\u00e3 t\u1ed3n t\u1ea1i"):$next$$(null,$data$$,$obj$$)}):$next$$(null,$data$$,$obj$$)},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{delete $item$$.default_password});async.series([$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{name:"ten_phu_trach",value:"name"}]}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>
4
+ $item$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:"ten_bp"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_doi).joinModel2($user$$.current_id_app,dmdoi,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi"},fields:"ten_doi"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_to).joinModel2($user$$.current_id_app,dmto,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi",ma_to:"ma_to"},fields:"ten_to"}],function(){$callback$$(null,
5
+ $items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_nh_nv).joinModel2($user$$.current_id_app,dmnhnv,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi",ma_to:"ma_to",ma_nh_nv:"ma_nh_nv"},fields:"ten_nh_nv"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.chuc_vu).joinModel2($user$$.current_id_app,group,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},{color:"color"},{muc_tieu_bieu:"muc_tieu_bieu"}]}],function(){$callback$$(null,$items$$)})},$callback$jscomp$0$$=>
6
+ {async.mapSeries($items$$,($item$jscomp$0$$,$callback$$)=>{($item$jscomp$0$$.bo_phan||[]).filter($item$$=>$item$$.chuc_vu).joinModel2($user$$.current_id_app,group,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},{color:"color"},{muc_tieu_bieu:"muc_tieu_bieu"}]}],function(){$callback$$(null,$items$$)})},()=>{$callback$jscomp$0$$(null,$items$$)})},$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$jscomp$0$$,$callback$$)=>{($item$jscomp$0$$.bo_phan||[]).filter($item$$=>$item$$.ma_bp).joinModel2($user$$.current_id_app,
7
+ dmbp,[{where:{ma_bp:"ma_bp"},fields:[{ten_bp:"ten_bp"}]}],function(){$callback$$(null,$items$$)})},()=>{$callback$jscomp$0$$(null,$items$$)})}],()=>{$items$$.filter($item$$=>$item$$.bo_phan).forEach($item$$=>{$item$$.bo_phan.forEach($bp$$=>{$bp$$.active=!$bp$$.den_ngay||$bp$$.den_ngay>=new Date;$bp$$.active&&($item$$.ma_bp=$item$$.map_bp||$bp$$.ma_bp,$item$$.ten_bp=$item$$.ten_bp||$bp$$.ten_bp,$item$$.phu_trach=$item$$.phu_trach||$bp$$.phu_trach,$item$$.chuc_vu=$item$$.chuc_vu||$bp$$.chuc_vu)})});
8
+ $next$$(null,$items$$)})},onImport:($user$$,$data$$,$columns$$,$next$$)=>{async.mapSeries($data$$,function($r$$,$callback$jscomp$0$$){async.series({nhom:function($callback$$){$r$$.group_name&&!$r$$.nh_kh?group.findOneAndUpdate({id_app:$user$$.current_id_app,group_type:"DMNV",group_name:{$regex:$r$$.group_name,$options:"i"}},{group_name:$r$$.group_name,group_type:"DMNV",status:!0},{new:!0,upsert:!0},function($e$$,$n$$){if($e$$)return $callback$$($e$$);$r$$.nh_nv=$n$$._id.toString();$callback$$(null)}):
9
+ $callback$$()}},function(){$callback$jscomp$0$$()})},function(){$next$$()})},onRightByItem:($user$$,$condition$$,$next$$)=>{async.series({phu_trach_bp:$callback$$=>{dmbp.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_doi:$callback$$=>{dmdoi.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_to:$callback$$=>{dmto.find({id_app:$user$$.current_id_app,
10
+ phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_nhom:$callback$$=>{dmnhnv.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})}},($_condition_bps$jscomp$4_e$$,$$or_nhs_rs$$)=>{if($_condition_bps$jscomp$4_e$$)return $next$$($_condition_bps$jscomp$4_e$$);$_condition_bps$jscomp$4_e$$=underscore.pluck($$or_nhs_rs$$.phu_trach_bp,"ma_bp");var $_c_dois$$=underscore.pluck($$or_nhs_rs$$.phu_trach_doi,
11
+ "ma_doi");let $tos$$=underscore.pluck($$or_nhs_rs$$.phu_trach_to,"ma_to");$$or_nhs_rs$$=underscore.pluck($$or_nhs_rs$$.phu_trach_nhom,"ma_nh_nv");$$or_nhs_rs$$=[{user:$user$$.email},{ma_bp:{$in:$_condition_bps$jscomp$4_e$$}},{ma_doi:{$in:$_c_dois$$}},{ma_to:{$in:$tos$$}},{ma_nh_nv:{$in:$$or_nhs_rs$$}}];$_condition_bps$jscomp$4_e$$=[];for(let $k$$ in $condition$$)$_c_dois$$={},$_c_dois$$[$k$$]=$condition$$[$k$$],$_condition_bps$jscomp$4_e$$.push($_c_dois$$);$$or_nhs_rs$$.push({$and:$_condition_bps$jscomp$4_e$$});
12
+ $next$$(null,{$or:$$or_nhs_rs$$})})},onQuery:($req$$,$next$$)=>{if($req$$.obj&&$req$$.obj.user===$req$$.user.email)return $req$$.permission=!0,$next$$();$req$$.permission||($req$$.condition={user:$req$$.user.email});$req$$.permission=!0;$next$$()}});$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_nv&&$obj$$.ten_nv){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_nv$$=await model.asyncCreateEmployeeCode($id_app_user$$,$obj$$.ten_nv);$obj$$.ma_nv=$ma_nv$$;$next$$(null,
13
+ $obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_employee_group:!0})}catch($e$$){return}$data$$.user&&$_usergroup$$&&User.findOne({email:$data$$.user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",
14
+ $data$$.user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.user;$result$$.name=$data$$.ten_nv;$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,
15
+ email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$result$$.email,"to company")})})}})})};module.exports=dmnv;
@@ -1 +1 @@
1
- 'use strict';const model=global.getModel("dvcs"),controller=require("../../controllers/controller");module.exports=function($router$$){(new controller($router$$,model,"dvcs",{sort:{ten_dvcs:1},unique:["ma_dvcs"],codeSync:"list/ddv",keySync:"ma_dvcs"})).route()};
1
+ 'use strict';const model=global.getModel("dvcs"),controller=require("../../controllers/controller");module.exports=function($router$$){(new controller($router$$,model,"dvcs",{sort:{ten_dvcs:1},unique:["ma_dvcs"]})).route()};
@@ -9,10 +9,10 @@ case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "XL":case "
9
9
  module.exports=function($router$$){const $contr$$=new controller($router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/api/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr$$.creating=async function($file_name$jscomp$2_input_user$$,
10
10
  $obj$$,$fn$$){if($obj$$.file&&$obj$$.read_image&&$obj$$.file.name&&$obj$$.file.extension&&!$obj$$.file.url){$file_name$jscomp$2_input_user$$=$obj$$.file.name;var $extension$jscomp$2_root$$=$obj$$.file.extension.toLowerCase();if(0<=["png","jpg"].indexOf($extension$jscomp$2_root$$)&&($extension$jscomp$2_root$$=configs.paths.uploads,$extension$jscomp$2_root$$||($extension$jscomp$2_root$$=__dirname,$extension$jscomp$2_root$$=path.dirname($extension$jscomp$2_root$$),$extension$jscomp$2_root$$=path.dirname($extension$jscomp$2_root$$),
11
11
  $extension$jscomp$2_root$$=path.join($extension$jscomp$2_root$$,"uploads")),$file_name$jscomp$2_input_user$$=path.join($extension$jscomp$2_root$$,$file_name$jscomp$2_input_user$$),fs.existsSync($file_name$jscomp$2_input_user$$))){$extension$jscomp$2_root$$=require("node-tesseract-ocr");const $config$$={lang:"vie+eng"};try{var $folder_text$$=await $extension$jscomp$2_root$$.recognize($file_name$jscomp$2_input_user$$,$config$$);$obj$$.text_from_image=$folder_text$$}catch($error$$){return console.error($error$$),
12
- $fn$$($error$$.message)}}}$obj$$.id_folder&&($folder_text$$=await global.getModel("folder").findOne({_id:$obj$$.id_folder}))&&($obj$$.update_right=$folder_text$$.update_right,$obj$$.delete_right=$folder_text$$.delete_right,$obj$$.visible_to=$folder_text$$.visible_to,$obj$$.visible_to_users=$folder_text$$.visible_to_users);$fn$$(null,$obj$$)};$contr$$.created=function($file_name$jscomp$3_user$$,$obj$$,$fn$$){if($obj$$.file&&$obj$$.file.name&&$obj$$.file.extension){$file_name$jscomp$3_user$$=$obj$$.file.name;
13
- var $extension$jscomp$3_input$jscomp$1_root$$=$obj$$.file.extension.toLowerCase();if(0<=["mp4","mov","avi"].indexOf($extension$jscomp$3_input$jscomp$1_root$$)){$extension$jscomp$3_input$jscomp$1_root$$=configs.paths.uploads;$extension$jscomp$3_input$jscomp$1_root$$||($extension$jscomp$3_input$jscomp$1_root$$=__dirname,$extension$jscomp$3_input$jscomp$1_root$$=path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=path.dirname($extension$jscomp$3_input$jscomp$1_root$$),
14
- $extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,"uploads"));$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,$file_name$jscomp$3_user$$);let $output$$=configs.paths.videos;$output$$||($output$$=__dirname,$output$$=path.dirname($output$$),$output$$=path.dirname($output$$),$output$$=path.join($output$$,"videos"));fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$obj$$._id.toString());
15
- fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$file_name$jscomp$3_user$$);convertVideo($extension$jscomp$3_input$jscomp$1_root$$,$output$$).catch($e$$=>{console.error("Can't convert video. Error:",$e$$)})}}else console.log("file not exists",$obj$$);$fn$$(null,$obj$$)};$contr$$.deleted=function($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$,$next$$){if($rs$$.file&&$rs$$.file.extension&&$rs$$.file.name){$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=
12
+ $fn$$($error$$.message)}}}$obj$$.id_folder&&($folder_text$$=await global.getModel("folder").findOne({_id:$obj$$.id_folder}))&&($obj$$.update_right=$folder_text$$.update_right,$obj$$.delete_right=$folder_text$$.delete_right,$obj$$.visible_to=$folder_text$$.visible_to,$obj$$.visible_to_users=$folder_text$$.visible_to_users,$obj$$.visible_to_usergroups=$folder_text$$.visible_to_usergroups);$fn$$(null,$obj$$)};$contr$$.created=function($file_name$jscomp$3_user$$,$obj$$,$fn$$){if($obj$$.file&&$obj$$.file.name&&
13
+ $obj$$.file.extension){$file_name$jscomp$3_user$$=$obj$$.file.name;var $extension$jscomp$3_input$jscomp$1_root$$=$obj$$.file.extension.toLowerCase();if(0<=["mp4","mov","avi"].indexOf($extension$jscomp$3_input$jscomp$1_root$$)){$extension$jscomp$3_input$jscomp$1_root$$=configs.paths.uploads;$extension$jscomp$3_input$jscomp$1_root$$||($extension$jscomp$3_input$jscomp$1_root$$=__dirname,$extension$jscomp$3_input$jscomp$1_root$$=path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=
14
+ path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,"uploads"));$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,$file_name$jscomp$3_user$$);let $output$$=configs.paths.videos;$output$$||($output$$=__dirname,$output$$=path.dirname($output$$),$output$$=path.dirname($output$$),$output$$=path.join($output$$,"videos"));fs.existsSync($output$$)||fs.mkdirSync($output$$);
15
+ $output$$=path.join($output$$,$obj$$._id.toString());fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$file_name$jscomp$3_user$$);convertVideo($extension$jscomp$3_input$jscomp$1_root$$,$output$$).catch($e$$=>{console.error("Can't convert video. Error:",$e$$)})}}else console.log("file not exists",$obj$$);$fn$$(null,$obj$$)};$contr$$.deleted=function($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$,$next$$){if($rs$$.file&&$rs$$.file.extension&&$rs$$.file.name){$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=
16
16
  $rs$$.file.name;let $root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($root$$,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$);fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&fs.unlink($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,function($e$$){$e$$&&console.error($e$$)});
17
17
  $extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=$rs$$.file.extension.toLowerCase();0<=["mp4","mov","avi"].indexOf($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=configs.paths.videos,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$||($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=__dirname,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),
18
18
  $extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,"videos")),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$._id.toString()),fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&
@@ -28,6 +28,7 @@ if($e$jscomp$11_m2g_so3Obj$$=await Message2setting.findOne({id_link:$obj$$._id.t
28
28
  {console.log("update message2",$rs$$)})}if($obj$$.id_ct&&($e$jscomp$11_m2g_so3Obj$$=await SO3.findOne({_id:$obj$$.id_ct}))){$e$jscomp$11_m2g_so3Obj$$=$e$jscomp$11_m2g_so3Obj$$.toObject();$attends$$=await model.countDocuments({id_ct:$obj$$.id_ct,progress:3});const $task_doing$$=await model.countDocuments({id_ct:$obj$$.id_ct,progress:1}),$task_cancel$$=await model.countDocuments({id_ct:$obj$$.id_ct,progress:5}),$total_task$$=await model.countDocuments({id_ct:$obj$$.id_ct});let $so3Obj_views$$=await so3Controller.asyncView($user$$,
29
29
  [$e$jscomp$11_m2g_so3Obj$$],{});$attends$$!==$total_task$$||"5"==$e$jscomp$11_m2g_so3Obj$$.trang_thai||"4"!=$e$jscomp$11_m2g_so3Obj$$.trang_thai&&"3"!=$e$jscomp$11_m2g_so3Obj$$.trang_thai?(($attends$$||$task_doing$$)&&"3"==$e$jscomp$11_m2g_so3Obj$$.trang_thai&&"4"!=$e$jscomp$11_m2g_so3Obj$$.trang_thai&&(await SO3.findOneAndUpdate({_id:$obj$$.id_ct},{trang_thai:"4"}),$e$jscomp$11_m2g_so3Obj$$.trang_thai="4",controller.pushNotification(so3Controller,$so3Obj_views$$[0],"update")),$total_task$$===$task_cancel$$&&
30
30
  (await SO3.findOneAndUpdate({_id:$obj$$.id_ct},{trang_thai:"9"}),$e$jscomp$11_m2g_so3Obj$$.trang_thai="9",controller.pushNotification(so3Controller,$so3Obj_views$$[0],"update"))):(await SO3.findOneAndUpdate({_id:$obj$$.id_ct},{trang_thai:"5"}),$e$jscomp$11_m2g_so3Obj$$.trang_thai="5",controller.pushNotification(so3Controller,$so3Obj_views$$[0],"update"))}$next$$(null,$obj$$)})})},onDeleted:async function($user$$,$obj$$,$next$$){setImmediate(async()=>{await Schedule.removeScheduleLink($obj$$._id.toString());
31
- Message2.deleteMany({id_link:$obj$$._id.toString()});Message2setting.deleteOne({id_link:$obj$$._id.toString()});$next$$(null,$obj$$)})}});$contr_router$$.post=function($obj$$,$fn$$){$fn$$||($fn$$=function(){});async.series({post_socai:$callback$jscomp$0$$=>{setImmediate(()=>{let $_obj$$;$_obj$$=$obj$$.toObject?$obj$$.toObject():Object.assign({},$obj$$);$_obj$$.so_ct=$_obj$$.so_ct||`TDV${Moment().format("YYMMDDhh:mmss")}`;$_obj$$.ngay_ct=$_obj$$.ngay_ct||new Date;$_obj$$.trang_thai=$_obj$$.progress.toString();
32
- $_obj$$.dien_giai=`${$_obj$$.ten_cv}`;$_obj$$.ma_kh=$_obj$$.phu_trach;$_obj$$.ma_nt=$_obj$$.ma_nt||"VND";$_obj$$.ty_gia=$_obj$$.ty_gia||1;$_obj$$.ma_dvcs=$_obj$$.ma_dvcs||"--";$_obj$$.details=[];$_obj$$.da_thu&&$_obj$$.details.push({dien_giai:`Thu h\u1ed9 c\u00f4ng ty d\u1ecbch v\u1ee5 ${$_obj$$.ten_cv}`,tien_nt:$_obj$$.da_thu||0,tien:$_obj$$.da_thu||0,tk_no:$_obj$$.tk_no||"131111",tk_co:$_obj$$.tk_co||"51131"});$_obj$$.tien_hoa_hong&&$_obj$$.details.push({dien_giai:`Hoa h\u1ed3ng cho d\u1ecbch v\u1ee5 ${$_obj$$.ten_cv}`,
33
- tien_nt:$_obj$$.tien_hoa_hong||0,tien:$_obj$$.tien_hoa_hong||0,tk_no:$_obj$$.tk_no_hh||"51131",tk_co:$_obj$$.tk_co_hh||"131111"});(new PostSocai($_obj$$,$_obj$$.details,function($detail$$,$callback$$){$callback$$($detail$$)})).run(($e$$,$rs$$)=>{$callback$jscomp$0$$($e$$,$rs$$)})})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.route()};
31
+ Message2.deleteMany({id_link:$obj$$._id.toString()});Message2setting.deleteOne({id_link:$obj$$._id.toString()});$next$$(null,$obj$$)})},onSaving:async($sl_ht_user$$,$obj$$)=>{3==$obj$$.progress?($obj$$.percent=100,$obj$$.todos&&0<$obj$$.todos.length&&$obj$$.todos.forEach($t$$=>{$t$$.sel=!0})):9==$obj$$.progress?$obj$$.percent=0:$obj$$.todos&&0<$obj$$.todos.length?($sl_ht_user$$=$obj$$.todos.filter($t$$=>$t$$.sel).length,$obj$$.percent=Math.min(100,$sl_ht_user$$/$obj$$.todos.length*100)):$obj$$.percent=
32
+ 0}});$contr_router$$.post=function($obj$$,$fn$$){$fn$$||($fn$$=function(){});async.series({post_socai:$callback$jscomp$0$$=>{setImmediate(()=>{let $_obj$$;$_obj$$=$obj$$.toObject?$obj$$.toObject():Object.assign({},$obj$$);$_obj$$.so_ct=$_obj$$.so_ct||`TDV${Moment().format("YYMMDDhh:mmss")}`;$_obj$$.ngay_ct=$_obj$$.ngay_ct||new Date;$_obj$$.trang_thai=$_obj$$.progress.toString();$_obj$$.dien_giai=`${$_obj$$.ten_cv}`;$_obj$$.ma_kh=$_obj$$.phu_trach;$_obj$$.ma_nt=$_obj$$.ma_nt||"VND";$_obj$$.ty_gia=
33
+ $_obj$$.ty_gia||1;$_obj$$.ma_dvcs=$_obj$$.ma_dvcs||"--";$_obj$$.details=[];$_obj$$.da_thu&&$_obj$$.details.push({dien_giai:`Thu h\u1ed9 c\u00f4ng ty d\u1ecbch v\u1ee5 ${$_obj$$.ten_cv}`,tien_nt:$_obj$$.da_thu||0,tien:$_obj$$.da_thu||0,tk_no:$_obj$$.tk_no||"131111",tk_co:$_obj$$.tk_co||"51131"});$_obj$$.tien_hoa_hong&&$_obj$$.details.push({dien_giai:`Hoa h\u1ed3ng cho d\u1ecbch v\u1ee5 ${$_obj$$.ten_cv}`,tien_nt:$_obj$$.tien_hoa_hong||0,tien:$_obj$$.tien_hoa_hong||0,tk_no:$_obj$$.tk_no_hh||"51131",
34
+ tk_co:$_obj$$.tk_co_hh||"131111"});(new PostSocai($_obj$$,$_obj$$.details,function($detail$$,$callback$$){$callback$$($detail$$)})).run(($e$$,$rs$$)=>{$callback$jscomp$0$$($e$$,$rs$$)})})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.route()};
@@ -3,7 +3,7 @@ module.exports=function($router$$){new controller($router$$,"congviectheobp",asy
3
3
  $query$$.start_date={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};if($condition$$.id_bp)try{let $_ch$$=await dmbp.getChilren($condition$$.id_app,$condition$$.id_bp);$_ch$$.push($condition$$.id_bp);$query$$.id_bp={$in:$_ch$$}}catch($e$$){console.log($e$$)}else $query$$.id_bp={$ne:""};$condition$$.phu_trach&&($query$$.phu_trach=$condition$$.phu_trach);$condition$$.id_dt&&($query$$.id_dt=$condition$$.id_dt);$condition$$.id_kh&&($query$$.id_kh=$condition$$.id_kh);$condition$$.nh_cv&&($query$$.nh_cv=
4
4
  $condition$$.nh_cv);const $now$$=new Date;task.find($query$$).lean().exec(async function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return console.log($error$jscomp$2$$,$query$$),$callback$jscomp$0$$($error$jscomp$2$$);await $rs$$.filter($item$$=>$item$$.ma_loai_cv).asyncJoinModel2($req$$.user.current_id_app,dmloaitask,{where:"ma_loai_cv",fields:["ten_loai_cv","he_so"]});async.mapSeries($rs$$,function($r$$,$callback$$){$r$$.t_so_luong=1;$r$$.chua_thuc_hien=0===$r$$.progress?1:0;$r$$.dang_thuc_hien=
5
5
  1===$r$$.progress?1:0;$r$$.kiem_tra=2===$r$$.progress?1:0;$r$$.hoan_thanh=3===$r$$.progress?1:0;$r$$.tam_dung=4===$r$$.progress?1:0;$r$$.cho=5===$r$$.progress?1:0;$r$$.cham_tien_do=0;$r$$.diem=0;$r$$.complete_hour=$r$$.complete_hour||0;$r$$.he_so=void 0===$r$$.he_so?1:$r$$.he_so;$r$$.ngay=moment($r$$.start_date).date();$r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?
6
- $r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));1===$r$$.hoan_thanh&&($r$$.diem=($r$$.diem_du_tinh||0)*$r$$.he_so*($r$$.percent||100)/100);$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$error$jscomp$0$$=["id_bp"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);
7
- $rs$jscomp$0$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=
8
- underscore.sortBy($rs$$,function($r$$){return $r$$.id_bp});$report$$.forEach(function($r$$,$i$$){$r$$.stt=$i$$+1;$r$$.bold=!1});$report$$.joinModel2($condition$$.id_app,dmbp,{where:{id_bp:"_id"},fields:["ma_bp","ten_bp"]},function(){$report$$.push({ten_bp:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),dang_thuc_hien:$report$$.csum("dang_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),
9
- cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),bold:!0});$callback$jscomp$0$$(null,$report$$)})})})})})};
6
+ $r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));$r$$.diem=($r$$.diem_du_tinh||0)*$r$$.he_so*($r$$.percent||0)/100;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$error$jscomp$0$$=["id_bp"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$jscomp$0$$.groupBy($error$jscomp$0$$,
7
+ [{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.id_bp});
8
+ $report$$.forEach(function($r$$,$i$$){$r$$.stt=$i$$+1;$r$$.bold=!1});$report$$.joinModel2($condition$$.id_app,dmbp,{where:{id_bp:"_id"},fields:["ma_bp","ten_bp"]},function(){$report$$.push({ten_bp:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),dang_thuc_hien:$report$$.csum("dang_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),
9
+ diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),bold:!0});$callback$jscomp$0$$(null,$report$$)})})})})})};
@@ -2,8 +2,8 @@
2
2
  module.exports=function($router$$){new controller($router$$,"congviectheodt",function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");const $query$$={id_app:$condition$$.id_app};$condition$$.tu_ngay=moment(new Date($condition$$.tu_ngay)).startOf("date").toDate();$condition$$.den_ngay=moment(new Date($condition$$.den_ngay)).endOf("date").toDate();
3
3
  $query$$.start_date={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$query$$.id_dt=$condition$$.id_dt?$condition$$.id_dt:{$ne:""};$condition$$.phu_trach&&($query$$.phu_trach=$condition$$.phu_trach);$condition$$.id_bp&&($query$$.id_bp=$condition$$.id_bp);$condition$$.id_kh&&($query$$.id_kh=$condition$$.id_kh);$condition$$.nh_cv&&($query$$.nh_cv=$condition$$.nh_cv);const $now$$=new Date;task.find($query$$).lean().exec(async function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return console.log($error$jscomp$2$$,
4
4
  $query$$),$callback$jscomp$0$$($error$jscomp$2$$);await $rs$$.filter($item$$=>$item$$.ma_loai_cv).asyncJoinModel2($req$$.user.current_id_app,dmloaitask,{where:"ma_loai_cv",fields:["ten_loai_cv","he_so"]});async.mapSeries($rs$$,function($r$$,$callback$$){$r$$.t_so_luong=1;$r$$.chua_thuc_hien=0===$r$$.progress?1:0;$r$$.dang_thuc_hien=1===$r$$.progress?1:0;$r$$.kiem_tra=2===$r$$.progress?1:0;$r$$.hoan_thanh=3===$r$$.progress?1:0;$r$$.tam_dung=4===$r$$.progress?1:0;$r$$.cho=5===$r$$.progress?1:0;$r$$.cham_tien_do=
5
- 0;$r$$.diem=0;$r$$.complete_hour=$r$$.complete_hour||0;$r$$.he_so=void 0===$r$$.he_so?1:$r$$.he_so;$r$$.ngay=moment($r$$.start_date).date();$r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?$r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));1===$r$$.hoan_thanh&&($r$$.diem=($r$$.diem_du_tinh||
6
- 0)*$r$$.he_so*($r$$.percent||100)/100);$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$error$jscomp$0$$=["id_dt"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$jscomp$0$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},{name:"dang_thuc_hien",
7
- value:"dang_thuc_hien"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.id_dt});$report$$.forEach(function($r$$,$i$$){$r$$.stt=$i$$+1;$r$$.bold=!1});$report$$.joinModel2($condition$$.id_app,dmdt,
8
- {where:{id_dt:"_id"},fields:["ma_dt","ten_dt"]},function(){$report$$.push({ten_dt:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),dang_thuc_hien:$report$$.csum("dang_thuc_hien"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),bold:!0});
9
- $callback$jscomp$0$$(null,$report$$)})})})})})};
5
+ 0;$r$$.diem=0;$r$$.complete_hour=$r$$.complete_hour||0;$r$$.he_so=void 0===$r$$.he_so?1:$r$$.he_so;$r$$.ngay=moment($r$$.start_date).date();$r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?$r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));$r$$.diem=($r$$.diem_du_tinh||0)*$r$$.he_so*
6
+ ($r$$.percent||0)/100;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$error$jscomp$0$$=["id_dt"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$jscomp$0$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},
7
+ {name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.id_dt});$report$$.forEach(function($r$$,$i$$){$r$$.stt=$i$$+1;$r$$.bold=!1});$report$$.joinModel2($condition$$.id_app,dmdt,{where:{id_dt:"_id"},
8
+ fields:["ma_dt","ten_dt"]},function(){$report$$.push({ten_dt:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),dang_thuc_hien:$report$$.csum("dang_thuc_hien"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),bold:!0});$callback$jscomp$0$$(null,
9
+ $report$$)})})})})})};
@@ -2,8 +2,8 @@
2
2
  module.exports=function($router$$){new controller($router$$,"congviectheokh",function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");const $query$$={id_app:$condition$$.id_app};$condition$$.tu_ngay=moment(new Date($condition$$.tu_ngay)).startOf("date").toDate();$condition$$.den_ngay=moment(new Date($condition$$.den_ngay)).endOf("date").toDate();
3
3
  $query$$.start_date={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$query$$.id_kh=$condition$$.id_kh?$condition$$.id_kh:{$ne:""};$condition$$.phu_trach&&($query$$.phu_trach=$condition$$.phu_trach);$condition$$.id_bp&&($query$$.id_bp=$condition$$.id_bp);$condition$$.id_dt&&($query$$.id_dt=$condition$$.id_dt);$condition$$.nh_cv&&($query$$.nh_cv=$condition$$.nh_cv);const $now$$=new Date;task.find($query$$).lean().exec(async function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return console.log($error$jscomp$2$$,
4
4
  $query$$),$callback$jscomp$0$$($error$jscomp$2$$);await $rs$$.filter($item$$=>$item$$.ma_loai_cv).asyncJoinModel2($req$$.user.current_id_app,dmloaitask,{where:"ma_loai_cv",fields:["ten_loai_cv","he_so"]});async.mapSeries($rs$$,function($r$$,$callback$$){$r$$.t_so_luong=1;$r$$.chua_thuc_hien=0===$r$$.progress?1:0;$r$$.dang_thuc_hien=1===$r$$.progress?1:0;$r$$.kiem_tra=2===$r$$.progress?1:0;$r$$.hoan_thanh=3===$r$$.progress?1:0;$r$$.tam_dung=4===$r$$.progress?1:0;$r$$.cho=5===$r$$.progress?1:0;$r$$.cham_tien_do=
5
- 0;$r$$.diem=0;$r$$.complete_hour=$r$$.complete_hour||0;$r$$.he_so=void 0===$r$$.he_so?1:$r$$.he_so;$r$$.ngay=moment($r$$.start_date).date();$r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?$r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));1===$r$$.hoan_thanh&&($r$$.diem=($r$$.diem_du_tinh||
6
- 0)*$r$$.he_so*($r$$.percent||100)/100);$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$error$jscomp$0$$=["id_kh"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$jscomp$0$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"kiem_tra",
7
- value:"kiem_tra"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.id_kh});let $i$$=1;$report$$.forEach(function($r$$){$r$$.stt=$i$$;$r$$.bold=!1;$i$$++});$report$$.joinModel2($condition$$.id_app,
8
- customer,{where:{id_kh:"_id"},fields:["ma_kh","ten_kh"]},function(){$report$$.push({ten_kh:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),dang_thuc_hien:$report$$.csum("dang_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),
9
- bold:!0});$callback$jscomp$0$$(null,$report$$)})})})})})};
5
+ 0;$r$$.diem=0;$r$$.complete_hour=$r$$.complete_hour||0;$r$$.he_so=void 0===$r$$.he_so?1:$r$$.he_so;$r$$.ngay=moment($r$$.start_date).date();$r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?$r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));$r$$.diem=($r$$.diem_du_tinh||0)*$r$$.he_so*
6
+ ($r$$.percent||0)/100;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$jscomp$0$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$error$jscomp$0$$=["id_kh"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$jscomp$0$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},
7
+ {name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.id_kh});let $i$$=1;$report$$.forEach(function($r$$){$r$$.stt=$i$$;$r$$.bold=!1;$i$$++});$report$$.joinModel2($condition$$.id_app,customer,{where:{id_kh:"_id"},
8
+ fields:["ma_kh","ten_kh"]},function(){$report$$.push({ten_kh:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),dang_thuc_hien:$report$$.csum("dang_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),bold:!0});$callback$jscomp$0$$(null,
9
+ $report$$)})})})})})};
@@ -2,8 +2,8 @@
2
2
  module.exports=function($router$$){new controller($router$$,"congviectheonv",function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");$condition$$.tu_ngay=moment(new Date($condition$$.tu_ngay)).startOf("date").toDate();$condition$$.den_ngay=moment(new Date($condition$$.den_ngay)).endOf("date").toDate();const $query$$={id_app:$condition$$.id_app};
3
3
  $query$$.start_date={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$condition$$.id_bp&&($query$$.id_bp=$condition$$.id_bp);$condition$$.id_dt&&($query$$.id_dt=$condition$$.id_dt);$condition$$.id_kh&&($query$$.id_kh=$condition$$.id_kh);$condition$$.nh_cv&&($query$$.nh_cv=$condition$$.nh_cv);const $now$$=new Date;task.find($query$$).lean().exec(async function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return $callback$jscomp$0$$($error$jscomp$2$$);await $rs$$.filter($item$$=>$item$$.ma_loai_cv).asyncJoinModel2($req$$.user.current_id_app,
4
4
  dmloaitask,{where:"ma_loai_cv",fields:["ten_loai_cv","he_so"]});async.mapSeries($rs$$,function($r$$,$callback$$){$r$$.t_so_luong=1;$r$$.chua_thuc_hien=0===$r$$.progress?1:0;$r$$.dang_thuc_hien=1===$r$$.progress?1:0;$r$$.kiem_tra=2===$r$$.progress?1:0;$r$$.hoan_thanh=3===$r$$.progress?1:0;$r$$.tam_dung=4===$r$$.progress?1:0;$r$$.cho=5===$r$$.progress?1:0;$r$$.cham_tien_do=0;$r$$.diem=0;$r$$.complete_hour=$r$$.complete_hour||0;$r$$.he_so=void 0===$r$$.he_so?1:$r$$.he_so;$r$$.ngay=moment($r$$.start_date).date();
5
- $r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?$r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));if(1===$r$$.hoan_thanh&&($r$$.diem=($r$$.diem_du_tinh||0)*$r$$.he_so*($r$$.percent||100)/100,$r$$.chia_diem&&$r$$.attends&&0<$r$$.attends.length)){let $nvs$$=[...(new Set([...$r$$.attends,
6
- $r$$.phu_trach]))];$r$$.diem/=$nvs$$.length}$callback$$(null,$r$$)},function($error$jscomp$0$$,$_rs$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$_rs$$.filter($r$$=>$r$$.attends&&0<$r$$.attends.length&&$r$$.chia_diem&&$r$$.hoan_thanh).forEach($r$$=>{$r$$.attends.filter($a$$=>$a$$!==$r$$.phu_trach).forEach($nv_cung_lam$$=>{$rs$$.push({...$r$$,phu_trach:$nv_cung_lam$$})})});$condition$$.phu_trach&&($rs$$=$rs$$.filter($r$$=>$r$$.phu_trach===$condition$$.phu_trach));$error$jscomp$0$$=
7
- ["phu_trach"];$condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",
5
+ $r$$.thang=(new Date($r$$.start_date)).getMonth()+1;$r$$.quy=moment($r$$.start_date).quarter();$r$$.nam=(new Date($r$$.start_date)).getFullYear();$r$$.due_date&&($r$$.finished_date?$r$$.finished_date.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1):$now$$.getTime()>$r$$.due_date.getTime()&&($r$$.cham_tien_do=1));$r$$.diem=($r$$.diem_du_tinh||0)*$r$$.he_so*($r$$.percent||0)/100;if($r$$.chia_diem&&$r$$.attends&&0<$r$$.attends.length){let $nvs$$=[...(new Set([...$r$$.attends,$r$$.phu_trach]))];
6
+ $r$$.diem/=$nvs$$.length}$callback$$(null,$r$$)},function($error$jscomp$0$$,$_rs$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$_rs$$.filter($r$$=>$r$$.attends&&0<$r$$.attends.length&&$r$$.chia_diem&&$r$$.hoan_thanh).forEach($r$$=>{$r$$.attends.filter($a$$=>$a$$!==$r$$.phu_trach).forEach($nv_cung_lam$$=>{$rs$$.push({...$r$$,phu_trach:$nv_cung_lam$$})})});$condition$$.phu_trach&&($rs$$=$rs$$.filter($r$$=>$r$$.phu_trach===$condition$$.phu_trach));$error$jscomp$0$$=["phu_trach"];
7
+ $condition$$.groupby&&($error$jscomp$0$$=[...(new Set([...$error$jscomp$0$$,...$condition$$.groupby.split(",")]))]);$rs$$.groupBy($error$jscomp$0$$,[{name:"t_so_luong",value:"t_so_luong"},{name:"chua_thuc_hien",value:"chua_thuc_hien"},{name:"dang_thuc_hien",value:"dang_thuc_hien"},{name:"kiem_tra",value:"kiem_tra"},{name:"hoan_thanh",value:"hoan_thanh"},{name:"tam_dung",value:"tam_dung"},{name:"cho",value:"cho"},{name:"cham_tien_do",value:"cham_tien_do"},{name:"diem",value:"diem"},{name:"complete_hour",
8
8
  value:"complete_hour"}],function($error$$,$rs$$){if($error$$)return $callback$jscomp$0$$($error$$);const $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.phu_trach});let $i$$=1;$report$$.forEach(function($r$$){$r$$.stt=$i$$;$r$$.bold=!1;$i$$++});$report$$.joinModel2($condition$$.id_app,Participant,{where:{phu_trach:"email"},fields:[{name:"name",value:"name"}]},function(){$report$$.push({name:"T\u1ed5ng c\u1ed9ng",t_so_luong:$report$$.csum("t_so_luong"),chua_thuc_hien:$report$$.csum("chua_thuc_hien"),
9
9
  dang_thuc_hien:$report$$.csum("dang_thuc_hien"),kiem_tra:$report$$.csum("kiem_tra"),hoan_thanh:$report$$.csum("hoan_thanh"),tam_dung:$report$$.csum("tam_dung"),cho:$report$$.csum("cho"),cham_tien_do:$report$$.csum("cham_tien_do"),diem:$report$$.csum("diem"),complete_hour:$report$$.csum("complete_hour"),bold:!0});$callback$jscomp$0$$(null,$report$$)})})})})})};