flexbiz-server 12.2.3 → 12.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/package.json +1 -1
  2. package/server/auths/local.js +27 -26
  3. package/server/controllers/controller.js +56 -55
  4. package/server/controllers/controllerRPT.js +18 -17
  5. package/server/libs/cdpstk.js +1 -1
  6. package/server/libs/databanle.js +13 -13
  7. package/server/libs/getGiaban.js +23 -22
  8. package/server/libs/post-book.js +9 -8
  9. package/server/libs/post-socai.js +9 -9
  10. package/server/libs/prototypes.js +4 -4
  11. package/server/libs/tinhGtPhanboSltp.js +5 -5
  12. package/server/libs/tinhGtPhanboYtcp.js +2 -2
  13. package/server/libs/tinhGtThcppstk.js +1 -1
  14. package/server/libs/tinhGtTrucTiep.js +8 -7
  15. package/server/libs/tinhgiatb.js +4 -4
  16. package/server/libs/tinhgiatb1vt.js +3 -3
  17. package/server/libs/tinhhoahong.js +32 -0
  18. package/server/libs/utils.js +4 -3
  19. package/server/models/app.js +9 -8
  20. package/server/models/approve.js +4 -4
  21. package/server/models/customer.js +8 -8
  22. package/server/models/dh2.js +10 -9
  23. package/server/models/dmgiaban.js +6 -6
  24. package/server/models/dmhoahonghd.js +6 -5
  25. package/server/models/fbconversation.js +9 -0
  26. package/server/models/fbmessage.js +2 -0
  27. package/server/models/fbpage.js +2 -0
  28. package/server/models/group.js +4 -2
  29. package/server/models/hd2.js +8 -8
  30. package/server/models/hd3.js +9 -9
  31. package/server/models/hd7.js +1 -1
  32. package/server/models/notification.js +3 -2
  33. package/server/models/participant.js +5 -5
  34. package/server/models/pbl.js +4 -4
  35. package/server/models/reportinfo.js +2 -2
  36. package/server/models/rptform.js +3 -2
  37. package/server/models/schedule.js +1 -1
  38. package/server/models/so1.js +7 -6
  39. package/server/models/socai.js +4 -4
  40. package/server/models/tdttco.js +8 -4
  41. package/server/models/tdttno.js +8 -4
  42. package/server/models/tokens.js +2 -2
  43. package/server/models/usergroup.js +5 -4
  44. package/server/models/vatra.js +2 -2
  45. package/server/models/vatvao.js +4 -4
  46. package/server/modules/lists/ls-assinvestment.js +1 -1
  47. package/server/modules/lists/ls-customer.js +13 -14
  48. package/server/modules/lists/ls-dmvt.js +48 -39
  49. package/server/modules/lists/ls-fbconversation.js +3 -0
  50. package/server/modules/lists/ls-fbmessage.js +3 -0
  51. package/server/modules/lists/ls-fbpage.js +10 -0
  52. package/server/modules/lists/ls-introducecode.js +1 -1
  53. package/server/modules/lists/ls-news.js +1 -1
  54. package/server/modules/lists/ls-opportunity.js +3 -3
  55. package/server/modules/lists/ls-session.js +1 -1
  56. package/server/modules/public/callin.js +6 -6
  57. package/server/modules/reports/rp-cdpstk.js +3 -3
  58. package/server/modules/reports/rp-chitiettaisan.js +9 -8
  59. package/server/modules/reports/rp-ckvt.js +9 -7
  60. package/server/modules/reports/rp-ctbanle.js +13 -12
  61. package/server/modules/reports/rp-databanle.js +8 -4
  62. package/server/modules/reports/rp-dtbanletheoct.js +16 -9
  63. package/server/modules/reports/rp-dtbanletheokh.js +12 -6
  64. package/server/modules/reports/rp-dtbanletheokho.js +14 -9
  65. package/server/modules/reports/rp-dtbanletheonam.js +15 -9
  66. package/server/modules/reports/rp-dtbanletheongay.js +13 -8
  67. package/server/modules/reports/rp-dtbanletheonv.js +15 -9
  68. package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
  69. package/server/modules/reports/rp-dtbanletheothang.js +15 -9
  70. package/server/modules/reports/rp-getinvoice2pay.js +4 -6
  71. package/server/modules/reports/rp-getinvoice2receive.js +4 -6
  72. package/server/modules/reports/rp-hoahong.js +9 -0
  73. package/server/modules/reports/rp-kqhdkd.js +5 -4
  74. package/server/modules/reports/rp-ptcttct.js +7 -6
  75. package/server/modules/reports/rp-pttct.js +8 -8
  76. package/server/modules/reports/rp-pttctkho.js +3 -2
  77. package/server/modules/reports/rp-pttctkho2.js +3 -3
  78. package/server/modules/reports/rp-thnxt.js +8 -8
  79. package/server/modules/reports/rp-thnxt_sl.js +6 -6
  80. package/server/modules/reports/rp-thnxttt.js +6 -6
  81. package/server/modules/reports/rp-tmbctc.js +16 -16
  82. package/server/modules/systems/sys-app.js +25 -24
  83. package/server/modules/systems/sys-notification.js +2 -2
  84. package/server/modules/systems/sys-schedule.js +1 -1
  85. package/server/modules/systems/sys-user.js +8 -8
  86. package/server/modules/vouchers/vo-bc1.js +9 -8
  87. package/server/modules/vouchers/vo-bg2.js +9 -9
  88. package/server/modules/vouchers/vo-bn1.js +5 -4
  89. package/server/modules/vouchers/vo-dh2.js +15 -38
  90. package/server/modules/vouchers/vo-dnm.js +11 -12
  91. package/server/modules/vouchers/vo-hd2.js +63 -83
  92. package/server/modules/vouchers/vo-hd3.js +28 -22
  93. package/server/modules/vouchers/vo-hd7.js +37 -36
  94. package/server/modules/vouchers/vo-pbl.js +49 -49
  95. package/server/modules/vouchers/vo-pc1.js +9 -8
  96. package/server/modules/vouchers/vo-pn1.js +24 -22
  97. package/server/modules/vouchers/vo-pn5.js +1 -1
  98. package/server/modules/vouchers/vo-pn9.js +23 -23
  99. package/server/modules/vouchers/vo-pnc.js +8 -8
  100. package/server/modules/vouchers/vo-pnh.js +5 -5
  101. package/server/modules/vouchers/vo-pt1.js +17 -16
  102. package/server/modules/vouchers/vo-pxc.js +16 -16
  103. package/server/modules/vouchers/vo-pxh.js +12 -10
  104. package/server/modules/vouchers/vo-so1.js +94 -119
  105. package/server/modules/vouchers/vo-so4.js +1 -1
  106. package/server/modules/vouchers/vo-so5.js +2 -2
  107. package/server/workers/restoreApp.js +21 -12
  108. package/server/workers/runScript.js +3 -3
@@ -1,4 +1,8 @@
1
- 'use strict';const tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,default:"VND",
2
- required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,
3
- maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1});tdttnoSchema.index({status:1});
4
- tdttnoSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
1
+ 'use strict';const async=require("async"),tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
2
+ default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
3
+ uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1});tdttnoSchema.index({status:1});
4
+ tdttnoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
5
+ model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;
6
+ $error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=
7
+ 0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);$resolve$$($results$$)})})});
8
+ module.exports=model;
@@ -1,2 +1,2 @@
1
- 'use strict';const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128,trim:!0},token:String,refreshToken:String,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,session_created:String,session_updated:String,status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});tokenSchema.index({email:1});tokenSchema.index({token:"text"});tokenSchema.index({ip:1});tokenSchema.index({date_created:-1});tokenSchema.index({session_created:1});
2
- tokenSchema.index({session_updated:1});tokenSchema.index({status:1});module.exports=mongoose.models.token||mongoose.model("token",tokenSchema);
1
+ 'use strict';const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128,trim:!0},token:String,refreshToken:String,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,session_created:String,session_updated:String,status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});tokenSchema.index({email:1});tokenSchema.index({token:"text"});tokenSchema.index({note:1});tokenSchema.index({ip:1});tokenSchema.index({date_created:-1});
2
+ tokenSchema.index({session_created:1});tokenSchema.index({session_updated:1});tokenSchema.index({status:1});module.exports=mongoose.models.token||mongoose.model("token",tokenSchema);
@@ -1,5 +1,6 @@
1
- 'use strict';const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,maxlength:1024,trim:!0},is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,loai_nh:{type:Number,
2
- default:1},bac:Number,sysorder:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});usergroupSchema.index({id_app:1,is_customer_group:1});usergroupSchema.index({id_app:1,is_employee_group:1});
3
- usergroupSchema.index({phu_trach:1});usergroupSchema.index({group_name:1});usergroupSchema.index({group_mother:1});usergroupSchema.index({loai_nh:1});usergroupSchema.index({bac:1});usergroupSchema.index({sysorder:1});usergroupSchema.index({status:1});usergroupSchema.index({user_created:1,visible_to:1,visible_to_users:1});usergroupSchema.index({group_name:"text"});const model=mongoose.models.usergroup||mongoose.model("usergroup",usergroupSchema);
4
- model.referenceKeys={_id:[{model:"participant",key:"group_id",error:"Kh\u00f4ng th\u1ec3 x\u00f3a nh\u00f3m n\u00e0y."}]};model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:`Can't find user group:${$condition$$}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
1
+ 'use strict';const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,maxlength:1024,trim:!0},is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},is_agent_group:{type:Boolean,default:!1},is_pttt_group:{type:Boolean,default:!1},default_group:Boolean,tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,
2
+ tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,loai_nh:{type:Number,default:1},bac:Number,sysorder:String,mieu_ta_chinh_sach:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,
3
+ default:0},dataview_to_users:[String]});usergroupSchema.index({id_app:1,is_customer_group:1});usergroupSchema.index({id_app:1,is_employee_group:1});usergroupSchema.index({id_app:1,is_partner_group:1});usergroupSchema.index({id_app:1,is_agent_group:1});usergroupSchema.index({id_app:1,is_pttt_group:1});usergroupSchema.index({phu_trach:1});usergroupSchema.index({group_name:1});usergroupSchema.index({group_mother:1});usergroupSchema.index({default_group:1});usergroupSchema.index({loai_nh:1});usergroupSchema.index({bac:1});
4
+ usergroupSchema.index({sysorder:1});usergroupSchema.index({status:1});usergroupSchema.index({user_created:1,visible_to:1,visible_to_users:1});usergroupSchema.index({group_name:"text"});const model=mongoose.models.usergroup||mongoose.model("usergroup",usergroupSchema);model.referenceKeys={_id:[{model:"participant",key:"group_id",error:"Kh\u00f4ng th\u1ec3 x\u00f3a nh\u00f3m n\u00e0y."}]};
5
+ model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:`Can't find user group:${$condition$$}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
5
6
  model.getList=async($id_app$$,$condition$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$||[])})})};module.exports=model;
@@ -1,5 +1,5 @@
1
1
  'use strict';const taxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,
2
- default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,required:!0,maxlength:32},t_thue:{type:Number,
3
- default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,
2
+ default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,maxlength:32},t_thue:{type:Number,default:0},
3
+ t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,
4
4
  status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatra_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatra_index_text"});taxSchema.index({status:1});
5
5
  taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatra||mongoose.model("vatra",taxSchema);
@@ -1,5 +1,5 @@
1
1
  'use strict';const taxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,
2
- default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,maxlength:32},tk_du_thue:{type:String,
3
- required:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,
4
- default:"",maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatvao_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatvao_index_text"});
5
- taxSchema.index({status:1});taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatvao||mongoose.model("vatvao",taxSchema);
2
+ default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,maxlength:32},tk_du_thue:{type:String,
3
+ maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",
4
+ maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatvao_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatvao_index_text"});taxSchema.index({status:1});
5
+ taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatvao||mongoose.model("vatvao",taxSchema);
@@ -1,5 +1,5 @@
1
1
  'use strict';const model=global.getModel("assinvestment"),assproduct=global.getModel("assproduct"),assperiod=global.getModel("assperiod"),trangthai=global.getModel("trangthai"),introducer=global.getModel("introducer"),asskey=global.getModel("asskey"),introducecode=global.getModel("introducecode"),App=global.getModel("app"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),pt1=global.getModel("pt1"),customer=global.getModel("customer"),controller=require("../../controllers/controller"),
2
- {isSupperAdmin}=require("../../libs/utils"),{createTx,getTxStatus,bcQuery}=require("../../libs/blockchainconnect"),async=require("async"),xacdinhnguoinhanhoahong=async $investment$$=>{delete $investment$$.ty_le_hoa_hong;delete $investment$$.address_hoa_hong;delete $investment$$.denom_hoa_hong;delete $investment$$.ky_tra_hoa_hong;delete $investment$$.introduce_code;try{const $intro$$=await introducer.findOne({id_app:$investment$$.id_app,be_introduced:$investment$$.user_created});if($intro$$&&$intro$$.introduce_code){const $introduce_code$$=
2
+ {isSupperAdmin}=require("../../libs/utils"),{createTx,getTxStatus,bcQuery}=require("../../libs/blockchainconnect"),async=require("async"),xacdinhnguoinhanhoahong=async $investment$$=>{$investment$$.ty_le_hoa_hong=void 0;$investment$$.address_hoa_hong=void 0;$investment$$.denom_hoa_hong=void 0;$investment$$.ky_tra_hoa_hong=void 0;$investment$$.introduce_code=void 0;try{const $intro$$=await introducer.findOne({id_app:$investment$$.id_app,be_introduced:$investment$$.user_created});if($intro$$&&$intro$$.introduce_code){const $introduce_code$$=
3
3
  await introducecode.findOne({id_app:$investment$$.id_app,introduce_code:$intro$$.introduce_code}).lean();let $receiver$$;if($introduce_code$$){if($introduce_code$$.wallet_address_receive_reward)$receiver$$=$introduce_code$$.wallet_address_receive_reward;else{let $k$$=await asskey.findOne({id_app:$investment$$.id_app,username:$intro$$.be_introduced_by});if($k$$)$receiver$$=$k$$.address;else return}var $appInfo$$=await App.findOne({_id:$investment$$.id_app});if($appInfo$$&&$appInfo$$.wallet_token&&
4
4
  $appInfo$$.wallet_address){var $usergroup$$,$par$$=await Participant.findOne({id_app:$investment$$.id_app,email:$intro$$.be_introduced_by}).lean();$par$$&&$par$$.group_id&&($usergroup$$=await Usergroup.findOne({id_app:$investment$$.id_app,_id:$par$$.group_id}).lean());$usergroup$$||($usergroup$$={});var $period$$=await assperiod.findOne({id_app:$investment$$.id_app,id:$investment$$.id_period});$period$$||($period$$={});$period$$.ty_le_hoa_hong_groups=$period$$.ty_le_hoa_hong_groups||[];var $ty_le_hoa_hong_group$$=
5
5
  $period$$.ty_le_hoa_hong_groups.find($t$$=>$t$$.id_user_group===$usergroup$$._id);$ty_le_hoa_hong_group$$||($ty_le_hoa_hong_group$$=$period$$.ty_le_hoa_hong_groups.find($t$$=>!$t$$.id_user_group)||{});var $ty_le_hoa_hong$$=$ty_le_hoa_hong_group$$.ty_le_hoa_hong||$usergroup$$.ty_le_hoa_hong||$appInfo$$.ty_le_hoa_hong||0;var $tang_gioi_thieu_denom$$=$ty_le_hoa_hong_group$$.denom||$usergroup$$.tang_gioi_thieu_denom||$appInfo$$.tang_gioi_thieu_denom;$investment$$.ty_le_hoa_hong=$ty_le_hoa_hong$$;$investment$$.address_hoa_hong=
@@ -1,14 +1,13 @@
1
- 'use strict';const model=global.getModel("customer"),dmnhkh=global.getModel("group"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),getAllChildrenUserGroup=async $chil_nh_kh_nh_vt_cons$$=>{let $rs$$=[$chil_nh_kh_nh_vt_cons$$];$chil_nh_kh_nh_vt_cons$$=(await Usergroup.find({group_mother:$chil_nh_kh_nh_vt_cons$$,
2
- status:!0},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil_nh_kh_nh_vt_cons$$.length&&($chil_nh_kh_nh_vt_cons$$=await Promise.all($chil_nh_kh_nh_vt_cons$$.map($nh$$=>getAllChildrenUserGroup($nh$$))),$chil_nh_kh_nh_vt_cons$$=$chil_nh_kh_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_nh_kh_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllChildrenGroup=async $chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=>{let $rs$$=[$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$];
3
- $chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=(await dmnhkh.find({group_mother:$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$,status:!0,group_type:"CUSTOMER"},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$.length&&($chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=await Promise.all($chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($nh$$))),$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$=$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$.reduce(($a$$,
4
- $b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_nh_kh$jscomp$1_nh_vt_cons$$,...$rs$$]);return $rs$$},customer=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"customer",{sort:{date_updated:-1},unique:["ma_kh"],onFinding:function($user$$,$condition$$,$next$$){async.parallel({user_group:$callback$$=>{$condition$$.user_group?getAllChildrenUserGroup($condition$$.user_group).then($groups$$=>{global.getModel("participant").find({id_app:$user$$.current_id_app,group_id:{$in:$groups$$}},
5
- {email:1}).then($ps$$=>{$condition$$.phu_trach={$in:$ps$$.map($p$$=>$p$$.email)};delete $condition$$.user_group;$callback$$()}).catch($e$$=>{$callback$$($e$$)})}).catch($e$$=>{$callback$$($e$$)}):$callback$$()},user_of_bp:$callback$$=>{$condition$$.ma_bp?global.getModel("dmbp").getUsersByMaBP($user$$.current_id_app,$condition$$.ma_bp).then($users$$=>{console.log("users of department",$users$$);$condition$$.phu_trach={$in:$users$$};delete $condition$$.ma_bp;$callback$$()}).catch($e$$=>{$callback$$($e$$)}):
6
- $callback$$()},nh_kh:$callback$$=>{$condition$$.nh_kh&&"string"==typeof $condition$$.nh_kh?getAllChildrenGroup($condition$$.nh_kh).then($nh_vt$$=>{$condition$$.nh_kh={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh2:$callback$$=>{$condition$$.nh_kh2&&"string"==typeof $condition$$.nh_kh2?getAllChildrenGroup($condition$$.nh_kh2).then($nh_vt$$=>{$condition$$.nh_kh2={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh3:$callback$$=>{$condition$$.nh_kh3&&"string"==typeof $condition$$.nh_kh3?
7
- getAllChildrenGroup($condition$$.nh_kh3).then($nh_vt$$=>{$condition$$.nh_kh3={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh4:$callback$$=>{$condition$$.nh_kh4&&"string"==typeof $condition$$.nh_kh4?getAllChildrenGroup($condition$$.nh_kh4).then($nh_vt$$=>{$condition$$.nh_kh4={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh5:$callback$$=>{$condition$$.nh_kh5&&"string"==typeof $condition$$.nh_kh5?getAllChildrenGroup($condition$$.nh_kh5).then($nh_vt$$=>{$condition$$.nh_kh5=
8
- {$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()}},()=>{$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$,$options$$){$items$$.forEach($item$$=>{$item$$.email&&!validator.isEmail($item$$.email)&&($item$$.email="");delete $item$$.default_password});async.series({pt:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.filter($item$$=>
9
- $item$$.nh_kh).joinModel2($user$$.current_id_app,group,[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback$$()})},u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},fields:[{user_name:"name"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},
10
- ngay_mua:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ngay_mua_gan_nhat"))&&model.updateActives?async.map($items$$.filter($item$$=>void 0===$item$$.ngay_mua_gan_nhat||void 0===$item$$.ngay_tuong_tac_gan_nhat),($item$$,$callback$$)=>{model.updateActives($item$$).then($rs$$=>{$item$$.ngay_mua_gan_nhat=$rs$$.ngay_mua_gan_nhat;$item$$.so_ngay_da_mua=$rs$$.so_ngay_da_mua;$callback$$()}).catch($e$$=>{console.error($e$$);
11
- $callback$$()})},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()}},()=>{$next$$(null,$items$$)})}});$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_kh&&$obj$$.ten_kh){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_kh$$=await model.asyncCreateCustomerCode($id_app_user$$,$obj$$.ten_kh);$obj$$.ma_kh=$ma_kh$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>
12
- {let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_customer_group:!0})}catch($e$$){return}$data$$.of_user&&$_usergroup$$&&User.findOne({email:$data$$.of_user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.of_user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.of_user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.of_user;$result$$.name=$data$$.ten_kh;
13
- $result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",
14
- $result$$.email,"to company")})})}})})};module.exports=customer;
1
+ 'use strict';const model=global.getModel("customer"),dmnhkh=global.getModel("group"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),getAllChildrenUserGroup=async($id_app$$,$chil_nh_kh_nh_vt_cons$$)=>{let $rs$$=[$chil_nh_kh_nh_vt_cons$$];$chil_nh_kh_nh_vt_cons$$=
2
+ (await Usergroup.find({id_app:$id_app$$,group_mother:$chil_nh_kh_nh_vt_cons$$,status:!0},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil_nh_kh_nh_vt_cons$$.length&&($chil_nh_kh_nh_vt_cons$$=await Promise.all($chil_nh_kh_nh_vt_cons$$.map($nh$$=>getAllChildrenUserGroup($id_app$$,$nh$$))),$chil_nh_kh_nh_vt_cons$$=$chil_nh_kh_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_nh_kh_nh_vt_cons$$,...$rs$$]);return $rs$$},
3
+ customer=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"customer",{sort:{date_updated:-1},unique:["ma_kh"],onFinding:function($user$$,$condition$$,$next$$){async.parallel({user_group:$callback$$=>{$condition$$.user_group?getAllChildrenUserGroup($condition$$.id_app,$condition$$.user_group).then($groups$$=>{global.getModel("participant").find({id_app:$user$$.current_id_app,group_id:{$in:$groups$$}},{email:1}).then($ps$$=>{$condition$$.phu_trach={$in:$ps$$.map($p$$=>
4
+ $p$$.email)};delete $condition$$.user_group;$callback$$()}).catch($e$$=>{$callback$$($e$$)})}).catch($e$$=>{$callback$$($e$$)}):$callback$$()},user_of_bp:$callback$$=>{$condition$$.ma_bp?global.getModel("dmbp").getUsersByMaBP($user$$.current_id_app,$condition$$.ma_bp).then($users$$=>{console.log("users of department",$users$$);$condition$$.phu_trach={$in:$users$$};delete $condition$$.ma_bp;$callback$$()}).catch($e$$=>{$callback$$($e$$)}):$callback$$()},nh_kh:$callback$$=>{$condition$$.nh_kh&&"string"==
5
+ typeof $condition$$.nh_kh?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh2:$callback$$=>{$condition$$.nh_kh2&&"string"==typeof $condition$$.nh_kh2?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh2,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh2={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh3:$callback$$=>{$condition$$.nh_kh3&&
6
+ "string"==typeof $condition$$.nh_kh3?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh3,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh3={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh4:$callback$$=>{$condition$$.nh_kh4&&"string"==typeof $condition$$.nh_kh4?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh4,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh4={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh5:$callback$$=>{$condition$$.nh_kh5&&
7
+ "string"==typeof $condition$$.nh_kh5?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh5,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh5={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()}},()=>{$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$,$options$$){$items$$.forEach($item$$=>{$item$$.email&&!validator.isEmail($item$$.email)&&($item$$.email="");delete $item$$.default_password});async.series({pt:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,
8
+ 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$$()})},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,
9
+ Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},ngay_mua:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ngay_mua_gan_nhat"))&&model.updateActives?async.map($items$$.filter($item$$=>void 0===$item$$.ngay_mua_gan_nhat||void 0===$item$$.ngay_tuong_tac_gan_nhat),($item$$,$callback$$)=>{model.updateActives($item$$).then($rs$$=>
10
+ {$item$$.ngay_mua_gan_nhat=$rs$$.ngay_mua_gan_nhat;$item$$.so_ngay_da_mua=$rs$$.so_ngay_da_mua;$callback$$()}).catch($e$$=>{console.error($e$$);$callback$$()})},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()}},()=>{$next$$(null,$items$$)})}});$contr_router$$.validating=async($id_app$jscomp$1_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_kh&&$obj$$.ten_kh){$id_app$jscomp$1_user$$=$id_app$jscomp$1_user$$.current_id_app;try{let $ma_kh$$=await model.asyncCreateCustomerCode($id_app$jscomp$1_user$$,$obj$$.ten_kh);
11
+ $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},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.of_user,group_id:$_usergroup$$._id,
12
+ 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=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>
13
+ {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;
@@ -1,40 +1,49 @@
1
1
  'use strict';const model=global.getModel("dmvt"),controller=require("../../controllers/controller"),Dmdvt=global.getModel("dmdvt"),Dmnvt=global.getModel("dmnvt"),Dmtt=global.getModel("dmtt"),ckvt=require("../../libs/ckvt"),Dmqddvt=global.getModel("dmqddvt"),Dmchietkhau=global.getModel("dmchietkhau"),Dmkh=global.getModel("customer"),async=require("async"),underscore=require("underscore"),getGiaBan=require("../../libs/getGiaban"),counter=global.getModel("counter"),moment=require("moment"),_=require("lodash"),
2
- utils=require("../../libs/utils"),getAllChildrenGroup=async $chil_ma_nvt_nh_vt_cons$$=>{let $rs$$=[$chil_ma_nvt_nh_vt_cons$$];$chil_ma_nvt_nh_vt_cons$$=(await Dmnvt.find({nh_me:$chil_ma_nvt_nh_vt_cons$$,status:!0},{_id:1,nh_me:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.nh_me).map($d$$=>$d$$._id);0<$chil_ma_nvt_nh_vt_cons$$.length&&($chil_ma_nvt_nh_vt_cons$$=await Promise.all($chil_ma_nvt_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($nh$$))),$chil_ma_nvt_nh_vt_cons$$=$chil_ma_nvt_nh_vt_cons$$.reduce(($a$$,
3
- $b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_ma_nvt_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories=async $chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=>{let $rs$$=[$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$];$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=(await global.getModel("ecomcategories").find({danh_muc_me:$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,status:!0},{ma_danh_muc:1,danh_muc_me:1}).lean()).filter($n$$=>$n$$.ma_danh_muc!=$n$$.danh_muc_me).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.length&&
4
- ($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=await Promise.all($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.map($nh$$=>getAllEcomcategories($nh$$))),$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories_cty=async $chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=>{let $rs$$=[$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$];$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=
5
- (await global.getModel("ecomcategories_cty").find({danh_muc_me:$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$,status:!0},{ma_danh_muc:1,danh_muc_me:1}).lean()).filter($n$$=>$n$$.ma_danh_muc!=$n$$.danh_muc_me).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.length&&($chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=await Promise.all($chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.map($nh$$=>getAllEcomcategories_cty($nh$$))),$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=
6
- $chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$,...$rs$$]);return $rs$$},TinhGiaBan=($item$$,$callback$jscomp$0$$,$options$$,$user$$)=>{let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app,vt:$item$$};$item$$.ma_tt&&($condition$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt);$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho),
7
- $options$$.req.query.ma_ban&&($condition$$.ma_ban=$options$$.req.query.ma_ban),$options$$.req.query.ma_kh&&($condition$$.ma_kh=$options$$.req.query.ma_kh),$options$$.req.query.nh_kh&&($condition$$.nh_kh=$options$$.req.query.nh_kh),$options$$.req.query.by_user&&($condition$$.user=$user$$),$options$$.req.query.online&&($condition$$.online=$options$$.req.query.online),$options$$.req.query.offline&&($condition$$.offline=$options$$.req.query.offline),$options$$.req.query.so_luong&&($condition$$.so_luong=
8
- $options$$.req.query.so_luong));setImmediate(()=>{getGiaBan($condition$$,($e$$,$gia$$)=>{if($e$$)return console.error("error when get gia_ban on dmvt",$e$$,$condition$$),$callback$jscomp$0$$(null);$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$gia$$.promotion&&0<$gia$$.promotion.length?async.mapSeries($gia$$.promotion,($p$$,$callback$$)=>{($p$$.details_km||[]).joinModel2($item$$.id_app,model,{where:"ma_vt",fields:["ma_dvt","chieu_cao","chieu_rong",
9
- "chieu_sau","trong_luong"]},function($rs$$){$p$$.details_km.forEach($r$$=>{$r$$.km_yn_for=`${$item$$.id_app}-${$item$$.ma_vt}`});$callback$$(null,$rs$$)})},()=>{$callback$jscomp$0$$(null)}):$callback$jscomp$0$$(null)):$callback$jscomp$0$$(null)})})};
10
- module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmvt",{sort:{ma_vt:1},unique:["ma_vt"],onFinding:($user$$,$condition$$,$next$$,$options$$)=>{$options$$.req.query.show_properties||($options$$.req.query.show_properties=$condition$$.show_properties);$options$$.req.query.by_user||($options$$.req.query.by_user=$condition$$.by_user);$options$$.req.query.online||($options$$.req.query.online=$condition$$.online);$options$$.req.query.offline||($options$$.req.query.offline=
11
- $condition$$.offline);$options$$.req.query.show_quantity_in_stock||($options$$.req.query.show_quantity_in_stock=$condition$$.show_quantity_in_stock);$options$$.req.query.ma_kho||($options$$.req.query.ma_kho=$condition$$.ma_kho);$options$$.req.query.ma_kh||($options$$.req.query.ma_kh=$condition$$.ma_kh);$options$$.req.query.ma_ban||($options$$.req.query.ma_ban=$condition$$.ma_ban);$options$$.req.query.nh_kh||($options$$.req.query.nh_kh=$condition$$.nh_kh);$options$$.req.query.so_luong||($options$$.req.query.so_luong=
12
- $condition$$.so_luong);delete $condition$$.show_properties;delete $condition$$.by_user;delete $condition$$.show_quantity_in_stock;delete $condition$$.online;delete $condition$$.offline;delete $condition$$.ma_kho;delete $condition$$.ma_ban;delete $condition$$.ma_kh;delete $condition$$.nh_kh;delete $condition$$.so_luong;$condition$$.ma_vt&&"object"!=typeof $condition$$.ma_vt&&(delete $condition$$.ma_danh_muc_cty,delete $condition$$.ma_danh_muc);async.series({barcode:$callback$jscomp$0$$=>{if($condition$$.ma_vt2&&
13
- !$condition$$.ma_vt&&$options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties){if(underscore.isArray($condition$$.ma_vt2)&&0===$condition$$.ma_vt2.length)return $callback$jscomp$0$$();async.series({tt:$callback$$=>{Dmtt.find({ma_tt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})},vt:$callback$$=>{model.find({ma_vt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},
14
- {ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})}},($e$$,$rs$$)=>{if($e$$)return $callback$jscomp$0$$($e$$);delete $condition$$.ma_vt2;$e$$=[...(new Set($rs$$.tt.concat($rs$$.vt)))];$condition$$.ma_vt={$in:$e$$};$callback$jscomp$0$$()})}else $callback$jscomp$0$$()},nhom:$callback$$=>{$condition$$.ma_nvt&&"object"!==typeof $condition$$.ma_nvt?getAllChildrenGroup($condition$$.ma_nvt).then($nh_vt$$=>{$condition$$.ma_nvt={$in:[...(new Set($nh_vt$$))]};
15
- $callback$$()}):$callback$$()},danhmuc:$callback$$=>{$condition$$.ma_danh_muc&&"object"!==typeof $condition$$.ma_danh_muc?getAllEcomcategories($condition$$.ma_danh_muc).then($nh_vt$$=>{$condition$$.ma_danh_muc={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},danhmuc_cty:$callback$$=>{$condition$$.ma_danh_muc_cty&&"object"!==typeof $condition$$.ma_danh_muc_cty?getAllEcomcategories_cty($condition$$.ma_danh_muc_cty).then($nh_vt$$=>{$condition$$.ma_danh_muc_cty={$in:[...(new Set($nh_vt$$))]};
16
- $callback$$()}):$callback$$()},discount:$callback$$=>{if($condition$$.has_discount){let $_q$$={};$condition$$.id_app&&($_q$$.id_app=$condition$$.id_app);var $hieu_luc_den_tu_ngay$$=moment().startOf("date").toDate();let $hieu_luc_tu$$={$lte:moment().endOf("date").toDate()};$hieu_luc_den_tu_ngay$$={$gte:$hieu_luc_den_tu_ngay$$};$_q$$.hieu_luc_tu=$hieu_luc_tu$$;$_q$$.hieu_luc_den=$hieu_luc_den_tu_ngay$$;$condition$$.ma_vt&&($_q$$.ma_vt=$condition$$.ma_vt);Dmchietkhau.find($_q$$,{ma_vt:1,ma_nvt:1}).lean().exec(($_ma_vt_e$$,
17
- $$or__ma_nvt_rs$$)=>{$$or__ma_nvt_rs$$&&($_ma_vt_e$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_vt).map($r$$=>$r$$.ma_vt),$$or__ma_nvt_rs$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_nvt&&!$r$$.ma_vt).map($r$$=>$r$$.ma_nvt),$$or__ma_nvt_rs$$=[{ma_vt:{$in:$_ma_vt_e$$}},{ma_nvt:{$in:$$or__ma_nvt_rs$$}}],$condition$$.$and?$condition$$.$and.push({$or:$$or__ma_nvt_rs$$}):$condition$$.$and=[{$or:$$or__ma_nvt_rs$$}]);$callback$$()})}else $callback$$()}},$e$$=>{if($e$$)return $next$$($e$$);delete $condition$$.has_discount;
18
- $condition$$.$and&&0==$condition$$.$and.length&&delete $condition$$.$and;$next$$(null,$condition$$)})}});$contr_router$$.route();$contr_router$$.validating=($user$$,$obj$$,$next$$)=>{$obj$$.ma_vt?$next$$(null,$obj$$):counter.getNextSequence($user$$.current_id_app,"DMVT","ma_vt",function($error$$,$sequence$$){$error$$&&($sequence$$=0);$sequence$$=$sequence$$.toString();$obj$$.ma_vt="SP"+"00000000".substring(0,8-$sequence$$.length)+$sequence$$;$next$$(null,$obj$$)})};$contr_router$$.creating=async function($user$$,
19
- $obj$$,$next$$){$obj$$.combo&&0<$obj$$.combo.length&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=async function($check_arise_user$$,$data$$,
20
- $obj$$,$next$$){$data$$.combo&&0<$data$$.combo.length&&($data$$.tg_tk=!1);if(($check_arise_user$$=await global.getModel("sokho").findOne({ma_vt:$obj$$.ma_vt,id_app:$obj$$.id_app},{_id:1}))&&$data$$.ma_vt&&$data$$.ma_vt!==$obj$$.ma_vt)return $next$$("V\u1eadt t\u01b0 n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i m\u00e3 v\u1eadt t\u01b0");if($check_arise_user$$&&$data$$.ma_dvt&&$data$$.ma_dvt!==$obj$$.ma_dvt)return $next$$("V\u1eadt t\u01b0 n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i \u0111\u01a1n v\u1ecb t\u00ednh");
21
- $data$$.ma_vt=$data$$.ma_vt||$obj$$.ma_vt;if($data$$.ma_can&&$data$$.ma_can!==$obj$$.ma_can&&await model.findOne({ma_can:$data$$.ma_can,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($data$$.ma_vt2&&$data$$.ma_vt2!==$obj$$.ma_vt2&&await model.findOne({ma_vt2:$data$$.ma_vt2,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$data$$,$obj$$)};$contr_router$$.view=function($user$$,
22
- $items$$,$fn$$,$options$$){async.series([function($callback$$){$items$$.filter($i$$=>$i$$.ma_nvt).joinModel2(null,Dmnvt,[{akey:"ma_nvt",bkey:"_id",fields:[{name:"ten_nvt",value:"ten_nvt"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$items$$.filter($i$$=>$i$$.ma_ncc).joinModel2(null,Dmkh,[{where:{id_app:"id_app",ma_ncc:"ma_kh"},fields:[{name:"ten_ncc",value:"ten_kh"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){Promise.all($items$$.filter($i$$=>$i$$.id_app&&
23
- $i$$.ma_dvt).map($item$$=>(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt});$dvtqd$$?$dvtqd$$.tu||$dvtqd$$.mau||($dvtqd$$.tu=1,$dvtqd$$.mau=1):$dvtqd$$=await Dmqddvt.create({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt,ty_le_qd:1,tu:1,mau:1});return $dvtqd$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error("Error create qddvt",$e$$.message);$callback$$(null,$items$$)})},function($callback$$){if($options$$&&
24
- $options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("freeship")))try{let $freeshipModel$$=global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,
25
- shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}else $callback$$(null,$items$$)},function($callback$$){if($options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||
26
- 0<=$options$$.req.query.fields.indexOf("flashsales")))try{let $flashsale$$=global.getModel("ecompromotion_flashsales"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $fs$$=await $flashsale$$.find({id_app:$item$$.id_app,tu_ngay:$hieu_luc_tu$$,den_ngay:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,
27
- null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.flashsales=$fs$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}else $callback$$(null,$items$$)},function($callback$$){$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_properties||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ds_thuoc_tinh"))?
28
- async.mapSeries($items$$,async $item$$=>{$item$$.ds_thuoc_tinh=await Dmtt.find({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,status:!0}).lean();return $item$$},()=>{$callback$$()}):$callback$$()},function($callback$$){$items$$.forEach(function($r$$){$r$$.picture&&($r$$.picture_thumb=$r$$.picture);$r$$.picture2&&($r$$.picture2_thumb=$r$$.picture2);$r$$.picture3&&($r$$.picture3_thumb=$r$$.picture3);$r$$.picture4&&($r$$.picture4_thumb=$r$$.picture4);$r$$.picture5&&($r$$.picture5_thumb=$r$$.picture5)});
29
- $items$$.filter($i$$=>$i$$.ma_dvt).joinModel2(null,Dmdvt,[{where:{id_app:"id_app",ma_dvt:"ma_dvt"},fields:[{name:"ten_dvt",value:"ten_dvt"}]}],function($rs$$){$callback$$(null,$rs$$)})}],function(){let $result$$=$items$$.map($item$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties&&$item$$.ds_thuoc_tinh&&0<$item$$.ds_thuoc_tinh.length){let $_new_items$$=$item$$.ds_thuoc_tinh.map($tt$$=>{let $_new_item$$={...$item$$};$_new_item$$.ma_tt=$tt$$.ma_tt;$_new_item$$.ten_tt=
30
- $tt$$.ten_tt;$_new_item$$.loai_tt=$tt$$.loai_tt;$_new_item$$[`ma_tt${$tt$$.loai_tt}`]=$tt$$.ma_tt;$_new_item$$.nh_tt=$tt$$.nh_tt;$_new_item$$.ma_dvt=$tt$$.ma_dvt||$_new_item$$.ma_dvt;$_new_item$$.ma_can=$tt$$.ma_can||$_new_item$$.ma_can;$_new_item$$.ma_vt2=$tt$$.ma_tt2||$_new_item$$.ma_vt2;$_new_item$$.gia_ban_le=$tt$$.gia_ban_le||$_new_item$$.gia_ban_le;delete $_new_item$$.ds_thuoc_tinh;return $_new_item$$}).sort(($a$$,$b$$)=>$a$$.gia_ban_le-$b$$.gia_ban_le);if($options$$.req.query.online){let $ds_thuoc_tinh$$=
31
- _.cloneDeep($_new_items$$);$_new_items$$.forEach($r$$=>{$r$$.ds_thuoc_tinh=$ds_thuoc_tinh$$});return[$_new_items$$[0]]}return $_new_items$$}return[$item$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);async.mapSeries($result$$,($item$jscomp$0$$,$callback$jscomp$1$$)=>{$item$jscomp$0$$.ty_le_ck=0;$item$jscomp$0$$.tien_ck=0;$item$jscomp$0$$.id_app?async.series({giaban:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("gia_ban_le"))?
32
- TinhGiaBan($item$jscomp$0$$,$callback$$,$options$$,$user$$):$callback$$()},gia_ban_thuoc_tinh:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("gia_ban_le"))&&$item$jscomp$0$$.ds_thuoc_tinh&&0<$item$jscomp$0$$.ds_thuoc_tinh.length?async.mapSeries($item$jscomp$0$$.ds_thuoc_tinh,($item$$,$callback$$)=>{TinhGiaBan($item$$,$callback$$,$options$$,$user$$)},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()},
33
- ton_dvt:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton_kho_online_hien_tai"))&&$item$jscomp$0$$.ton_kho_online_hien_tai&&$item$jscomp$0$$.ma_dvt?setImmediate(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt});$dvtqd$$&&($item$jscomp$0$$.ton_kho_online_hien_tai_dvt=$dvtqd$$.tu&&
34
- $dvtqd$$.mau?utils.round($item$jscomp$0$$.ton_kho_online_hien_tai*$dvtqd$$.mau/$dvtqd$$.tu,4):utils.round($item$jscomp$0$$.ton_kho_online_hien_tai/($dvtqd$$.ty_le_qd||1),4));$callback$$()}):$callback$$()},ton_tt:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton_kho_online_hien_tai"))&&$item$jscomp$0$$.ds_thuoc_tinh?setImmediate(async()=>{let $ds_kho_online$$=
35
- (await global.getModel("dmkho").find({id_app:$item$jscomp$0$$.id_app,la_kho_online:!0},{ma_kho:1}).lean()).map($k$$=>$k$$.ma_kho);async.mapSeries($item$jscomp$0$$.ds_thuoc_tinh.filter($item$$=>$item$$.ma_vt&&$item$$.ton_kho_online_hien_tai),($item$$,$callback$$)=>{setImmediate(async()=>{if($item$$.kg_kiem_tra_ton_kho_tt){if($item$$.ma_dvt){var $condition$jscomp$4_dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean();$condition$jscomp$4_dvtqd$$&&($item$$.ton_kho_online_hien_tai_dvt=
36
- $condition$jscomp$4_dvtqd$$.tu&&$condition$jscomp$4_dvtqd$$.mau?utils.round($item$$.ton_kho_online_hien_tai*$condition$jscomp$4_dvtqd$$.mau/$condition$jscomp$4_dvtqd$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai/($condition$jscomp$4_dvtqd$$.ty_le_qd||1),4))}$callback$$()}else $condition$jscomp$4_dvtqd$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app},$item$$.ma_tt&&($condition$jscomp$4_dvtqd$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt),$condition$jscomp$4_dvtqd$$.groupBy=["ma_vt"],$condition$jscomp$4_dvtqd$$.ngay=
37
- new Date,$condition$jscomp$4_dvtqd$$.ma_kho={$in:$ds_kho_online$$},ckvt($condition$jscomp$4_dvtqd$$,async function($dvtqd$jscomp$3_e$$,$rs$$){$item$$.ton_kho_online_hien_tai_dvt=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ma_dvt&&($dvtqd$jscomp$3_e$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean())&&($item$$.ton_kho_online_hien_tai_dvt=$dvtqd$jscomp$3_e$$.tu&&$dvtqd$jscomp$3_e$$.mau?utils.round($item$$.ton_kho_online_hien_tai_dvt*
38
- $dvtqd$jscomp$3_e$$.mau/$dvtqd$jscomp$3_e$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai_dvt/($dvtqd$jscomp$3_e$$.ty_le_qd||1),4));$callback$$()})})},()=>{$callback$jscomp$0$$()})}):$callback$jscomp$0$$()},ton:$callback$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton00"))){let $condition$$={ma_vt:$item$jscomp$0$$.ma_vt,id_app:$item$jscomp$0$$.id_app};$options$$.req.query.ma_kho&&
39
- ($condition$$.ma_kho=$options$$.req.query.ma_kho);$options$$.req.query.ma_lo&&($condition$$.ma_lo=$options$$.req.query.ma_lo);$options$$.req.query.ma_dvcs&&($condition$$.ma_dvcs=$options$$.req.query.ma_dvcs);$condition$$.groupBy=["id_app","ma_vt"];$condition$$.ngay=new Date;setImmediate(async()=>{ckvt($condition$$,async function($dvtqd$jscomp$4_e$$,$rs$$){$item$jscomp$0$$.ton00=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$jscomp$0$$.ma_dvt&&($dvtqd$jscomp$4_e$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,
40
- ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt}))&&($item$jscomp$0$$.ton00=$dvtqd$jscomp$4_e$$.tu&&$dvtqd$jscomp$4_e$$.mau?utils.round($item$jscomp$0$$.ton00*$dvtqd$jscomp$4_e$$.mau/$dvtqd$jscomp$4_e$$.tu,4):utils.round($item$jscomp$0$$.ton00/($dvtqd$jscomp$4_e$$.ty_le_qd||1),0));$callback$$()})})}else $callback$$()}},()=>{$callback$jscomp$1$$()}):$callback$jscomp$1$$(null)},()=>{$fn$$(null,$result$$)})})}};
2
+ utils=require("../../libs/utils"),getAllChildrenGroup=async($id_app$$,$chil_ma_nvt_nh_vt_cons$$,$la_nhom_hang_hoa$$,$ma_nganh_hang$$)=>{let $rs$$=[],$query$$={id_app:$id_app$$,status:!0};$ma_nganh_hang$$&&($query$$.ma_nganh_hang=$ma_nganh_hang$$);void 0!=$la_nhom_hang_hoa$$&&($query$$.la_nhom_hang_hoa=$la_nhom_hang_hoa$$);$chil_ma_nvt_nh_vt_cons$$&&($rs$$.push($chil_ma_nvt_nh_vt_cons$$),$query$$.nh_me=$chil_ma_nvt_nh_vt_cons$$);$chil_ma_nvt_nh_vt_cons$$=(await Dmnvt.find($query$$,{_id:1,nh_me:1}).lean()).filter($n$$=>
3
+ $n$$._id.toString()!=$n$$.nh_me).map($d$$=>$d$$._id);0<$chil_ma_nvt_nh_vt_cons$$.length&&($chil_ma_nvt_nh_vt_cons$$=await Promise.all($chil_ma_nvt_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($id_app$$,$nh$$,$la_nhom_hang_hoa$$))),$chil_ma_nvt_nh_vt_cons$$=$chil_ma_nvt_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_ma_nvt_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories=async($id_app$$,$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$)=>{let $rs$$=[$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$];
4
+ $chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=(await global.getModel("ecomcategories").find({id_app:$id_app$$,danh_muc_me:$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,status:!0},{ma_danh_muc:1,danh_muc_me:1}).lean()).filter($n$$=>$n$$.ma_danh_muc!=$n$$.danh_muc_me).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.length&&($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=await Promise.all($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.map($nh$$=>getAllEcomcategories($id_app$$,$nh$$))),$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=
5
+ $chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories_cty=async($id_app$$,$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$)=>{let $rs$$=[$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$];$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=(await global.getModel("ecomcategories_cty").find({id_app:$id_app$$,danh_muc_me:$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$,status:!0},{ma_danh_muc:1,
6
+ danh_muc_me:1}).lean()).filter($n$$=>$n$$.ma_danh_muc!=$n$$.danh_muc_me).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.length&&($chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=await Promise.all($chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.map($nh$$=>getAllEcomcategories_cty($id_app$$,$nh$$))),$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$,
7
+ ...$rs$$]);return $rs$$},TinhGiaBan=($item$$,$callback$jscomp$0$$,$options$$,$user$$)=>{let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app,vt:$item$$};$item$$.ma_tt&&($condition$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt);$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho),$options$$.req.query.ma_ban&&($condition$$.ma_ban=$options$$.req.query.ma_ban),$options$$.req.query.ma_kh&&($condition$$.ma_kh=$options$$.req.query.ma_kh),
8
+ $options$$.req.query.nh_kh&&($condition$$.nh_kh=$options$$.req.query.nh_kh),$options$$.req.query.by_user&&($condition$$.user=$user$$),$options$$.req.query.online&&($condition$$.online=$options$$.req.query.online),$options$$.req.query.offline&&($condition$$.offline=$options$$.req.query.offline),$options$$.req.query.so_luong&&($condition$$.so_luong=$options$$.req.query.so_luong));setImmediate(()=>{getGiaBan($condition$$,($e$$,$gia$$)=>{if($e$$)return console.error("error when get gia_ban on dmvt",$e$$,
9
+ $condition$$),$callback$jscomp$0$$(null);$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$gia$$.promotion&&0<$gia$$.promotion.length?async.mapSeries($gia$$.promotion,($p$$,$callback$$)=>{($p$$.details_km||[]).joinModel2($item$$.id_app,model,{where:"ma_vt",fields:["ma_dvt","chieu_cao","chieu_rong","chieu_sau","trong_luong"]},function($rs$$){$p$$.details_km.forEach($r$$=>{$r$$.km_yn_for=`${$item$$.id_app}-${$item$$.ma_vt}`});$callback$$(null,$rs$$)})},
10
+ ()=>{$callback$jscomp$0$$(null)}):$callback$jscomp$0$$(null)):$callback$jscomp$0$$(null)})})};
11
+ module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmvt",{sort:{ma_vt:1},unique:["ma_vt"],onFinding:async($user$$,$condition$$,$next$$,$options$$)=>{$options$$&&$options$$.req&&$options$$.req.sort&&$options$$.req.sort.gia_ban_le&&($options$$.req.sort.gia_ban_le0=$options$$.req.sort.gia_ban_le,delete $options$$.req.sort.gia_ban_le);$options$$.req.query.show_properties||($options$$.req.query.show_properties=$condition$$.show_properties);$options$$.req.query.by_user||
12
+ ($options$$.req.query.by_user=$condition$$.by_user);$options$$.req.query.online||($options$$.req.query.online=$condition$$.online);$options$$.req.query.offline||($options$$.req.query.offline=$condition$$.offline);$options$$.req.query.show_quantity_in_stock||($options$$.req.query.show_quantity_in_stock=$condition$$.show_quantity_in_stock);$options$$.req.query.ma_kho||($options$$.req.query.ma_kho=$condition$$.ma_kho);$options$$.req.query.ma_kh||($options$$.req.query.ma_kh=$condition$$.ma_kh);$options$$.req.query.nh_kh||
13
+ ($options$$.req.query.nh_kh=$condition$$.nh_kh);$options$$.req.query.da_dat_hang||($options$$.req.query.da_dat_hang=$condition$$.da_dat_hang);$options$$.req.query.wishlist||($options$$.req.query.wishlist=$condition$$.wishlist);if($options$$.req.query.ma_kh||$condition$$.gia_theo_kh||$options$$.req.query.gia_theo_kh||$options$$.req.query.hh_theo_kh||$options$$.req.query.by_user||$options$$.req.query.da_dat_hang||$options$$.req.query.wishlist){let $kh$$;if($kh$$=$options$$.req.query.ma_kh?await global.getModel("customer").findOne({id_app:$condition$$.id_app,
14
+ ma_kh:$options$$.req.query.ma_kh}).lean():await global.getModel("customer").findOne({id_app:$condition$$.id_app,of_user:$user$$.email}).lean())$options$$.req.query.ma_kh=$kh$$.ma_kh,$kh$$.nh_kh&&($options$$.req.query.nh_kh=$kh$$.nh_kh),$kh$$.nh_kh2&&($options$$.req.query.nh_kh2=$kh$$.nh_kh2),$kh$$.nh_kh3&&($options$$.req.query.nh_kh3=$kh$$.nh_kh3),$kh$$.nh_kh4&&($options$$.req.query.nh_kh4=$kh$$.nh_kh4),$kh$$.nh_kh5&&($options$$.req.query.nh_kh5=$kh$$.nh_kh5),$kh$$.ma_nganh_hang&&0<$kh$$.ma_nganh_hang.length&&
15
+ ($condition$$.ma_nganh_hang=$condition$$.ma_nganh_hang?$kh$$.ma_nganh_hang.filter($m$$=>$m$$===$condition$$.ma_nganh_hang):$kh$$.ma_nganh_hang)}$options$$.req.query.ma_ban||($options$$.req.query.ma_ban=$condition$$.ma_ban);$options$$.req.query.so_luong||($options$$.req.query.so_luong=$condition$$.so_luong);delete $condition$$.show_properties;delete $condition$$.by_user;delete $condition$$.show_quantity_in_stock;delete $condition$$.online;delete $condition$$.offline;delete $condition$$.ma_kho;delete $condition$$.ma_ban;
16
+ delete $condition$$.ma_kh;delete $condition$$.nh_kh;delete $condition$$.gia_theo_kh;delete $condition$$.da_dat_hang;delete $condition$$.wishlist;delete $condition$$.so_luong;$condition$$.ma_vt&&"object"!=typeof $condition$$.ma_vt&&(delete $condition$$.ma_danh_muc_cty,delete $condition$$.ma_danh_muc);async.series({wishlist:$callback$$=>{if($options$$.req.query.wishlist){let $query_wishlist$$={id_app:$condition$$.id_app,user:$user$$.email};$condition$$.ma_vt&&($query_wishlist$$.ma_vt=$condition$$.ma_vt);
17
+ global.getModel("ecomwishlist").find($query_wishlist$$,{ma_vt:1}).lean().then($ws$$=>{$condition$$.ma_vt=$ws$$.map($w$$=>$w$$.ma_vt);$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},da_dat_dh2:$callback$$=>{if($options$$.req.query.da_dat_hang){let $query_dh$$={id_app:$condition$$.id_app,$or:[{user_nv:$user$$.email},{user_ctv:$user$$.email},{user_created:$user$$.email}]};$condition$$.ma_vt&&($query_dh$$["details.ma_vt"]=$condition$$.ma_vt);global.getModel("dh2").find($query_dh$$,
18
+ {details:1}).sort({date_created:-1}).limit(10).lean().then($dhs$$=>{$condition$$.ma_vt=$dhs$$.map($dh$$=>$dh$$.details.map($d$$=>$d$$.ma_vt)).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$condition$$.ma_vt=[...(new Set([...$condition$$.ma_vt]))];$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},da_dat_so1:$callback$$=>{if($options$$.req.query.da_dat_hang&&(!$condition$$.ma_vt||10>$condition$$.ma_vt.length)){let $query_dh$$={id_app:$condition$$.id_app,$or:[{user_nv:$user$$.email},{user_ctv:$user$$.email},
19
+ {user_created:$user$$.email}]};global.getModel("so1").find($query_dh$$,{details:1}).sort({date_created:-1}).limit(10).lean().then($dhs$$=>{$dhs$$=$dhs$$.map($dh$$=>$dh$$.details.map($d$$=>$d$$.ma_vt)).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$condition$$.ma_vt=[...(new Set([...$condition$$.ma_vt,...$dhs$$]))];$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},barcode:$callback$jscomp$0$$=>{if($condition$$.ma_vt2&&!$condition$$.ma_vt&&$options$$&&$options$$.req&&$options$$.req.query&&
20
+ $options$$.req.query.show_properties){if(underscore.isArray($condition$$.ma_vt2)&&0===$condition$$.ma_vt2.length)return $callback$jscomp$0$$();async.series({tt:$callback$$=>{Dmtt.find({ma_tt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})},vt:$callback$$=>{model.find({ma_vt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);
21
+ $callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})}},($e$jscomp$6_ma_vts$$,$rs$$)=>{if($e$jscomp$6_ma_vts$$)return $callback$jscomp$0$$($e$jscomp$6_ma_vts$$);delete $condition$$.ma_vt2;$e$jscomp$6_ma_vts$$=[...(new Set($rs$$.tt.concat($rs$$.vt)))];$condition$$.ma_vt={$in:$e$jscomp$6_ma_vts$$};$callback$jscomp$0$$()})}else $callback$jscomp$0$$()},nhom:$callback$$=>{$condition$$.ma_nvt&&"object"!==typeof $condition$$.ma_nvt||$condition$$.la_nhom_hang_hoa||$condition$$.ma_nganh_hang?getAllChildrenGroup($condition$$.id_app,
22
+ $condition$$.ma_nvt,$condition$$.la_nhom_hang_hoa,$condition$$.ma_nganh_hang).then($nh_vt$$=>{$condition$$.ma_nvt={$in:[...(new Set($nh_vt$$))]};delete $condition$$.la_nhom_hang_hoa;delete $condition$$.ma_nganh_hang;$callback$$()}):$callback$$()},danhmuc:$callback$$=>{$condition$$.ma_danh_muc&&"object"!==typeof $condition$$.ma_danh_muc?getAllEcomcategories($condition$$.id_app,$condition$$.ma_danh_muc).then($nh_vt$$=>{$condition$$.ma_danh_muc={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},
23
+ danhmuc_cty:$callback$$=>{$condition$$.ma_danh_muc_cty&&"object"!==typeof $condition$$.ma_danh_muc_cty?getAllEcomcategories_cty($condition$$.id_app,$condition$$.ma_danh_muc_cty).then($nh_vt$$=>{$condition$$.ma_danh_muc_cty={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},discount:$callback$$=>{if($condition$$.has_discount){let $_q$$={};$condition$$.id_app&&($_q$$.id_app=$condition$$.id_app);var $hieu_luc_den_tu_ngay$$=moment().startOf("date").toDate();let $hieu_luc_tu$$={$lte:moment().endOf("date").toDate()};
24
+ $hieu_luc_den_tu_ngay$$={$gte:$hieu_luc_den_tu_ngay$$};$_q$$.hieu_luc_tu=$hieu_luc_tu$$;$_q$$.hieu_luc_den=$hieu_luc_den_tu_ngay$$;$condition$$.ma_vt&&($_q$$.ma_vt=$condition$$.ma_vt);Dmchietkhau.find($_q$$,{ma_vt:1,ma_nvt:1}).lean().exec(($_ma_vt_e$$,$$or__ma_nvt_rs$$)=>{$$or__ma_nvt_rs$$&&($_ma_vt_e$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_vt).map($r$$=>$r$$.ma_vt),$$or__ma_nvt_rs$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_nvt&&!$r$$.ma_vt).map($r$$=>$r$$.ma_nvt),$$or__ma_nvt_rs$$=[{ma_vt:{$in:$_ma_vt_e$$}},
25
+ {ma_nvt:{$in:$$or__ma_nvt_rs$$}}],$condition$$.$and?$condition$$.$and.push({$or:$$or__ma_nvt_rs$$}):$condition$$.$and=[{$or:$$or__ma_nvt_rs$$}]);$callback$$()})}else $callback$$()}},$e$$=>{if($e$$)return $next$$($e$$);delete $condition$$.has_discount;$condition$$.$and&&0==$condition$$.$and.length&&delete $condition$$.$and;$next$$(null,$condition$$)})}});$contr_router$$.route();$contr_router$$.validating=($user$$,$obj$$,$next$$)=>{$obj$$.ma_vt?$next$$(null,$obj$$):counter.getNextSequence($user$$.current_id_app,
26
+ "DMVT","ma_vt",function($error$$,$sequence$$){$error$$&&($sequence$$=0);$sequence$$=$sequence$$.toString();$obj$$.ma_vt="SP"+"00000000".substring(0,8-$sequence$$.length)+$sequence$$;$next$$(null,$obj$$)})};$contr_router$$.creating=async function($user$$,$obj$$,$next$$){$obj$$.combo&&0<$obj$$.combo.length&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&
27
+ await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=async function($check_arise_user$$,$data$$,$obj$$,$next$$){$data$$.combo&&0<$data$$.combo.length&&($data$$.tg_tk=!1);if(($check_arise_user$$=await global.getModel("sokho").findOne({ma_vt:$obj$$.ma_vt,id_app:$obj$$.id_app},{_id:1}))&&$data$$.ma_vt&&$data$$.ma_vt!==$obj$$.ma_vt)return $next$$("V\u1eadt t\u01b0 n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i m\u00e3 v\u1eadt t\u01b0");
28
+ if($check_arise_user$$&&$data$$.ma_dvt&&$data$$.ma_dvt!==$obj$$.ma_dvt)return $next$$("V\u1eadt t\u01b0 n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i \u0111\u01a1n v\u1ecb t\u00ednh");$data$$.ma_vt=$data$$.ma_vt||$obj$$.ma_vt;if($data$$.ma_can&&$data$$.ma_can!==$obj$$.ma_can&&await model.findOne({ma_can:$data$$.ma_can,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($data$$.ma_vt2&&$data$$.ma_vt2!==
29
+ $obj$$.ma_vt2&&await model.findOne({ma_vt2:$data$$.ma_vt2,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$data$$,$obj$$)};$contr_router$$.view=function($user$$,$items$$,$fn$$,$options$$){async.series([function($callback$$){$items$$.filter($i$$=>$i$$.ma_nvt).joinModel2(null,Dmnvt,[{akey:"ma_nvt",bkey:"_id",fields:[{name:"ten_nvt",value:"ten_nvt"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$options$$&&
30
+ $options$$.req&&$options$$.req.query&&($options$$.req.query.wishlist||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("wish"))?$items$$.filter($i$$=>$i$$.id_app).joinModel2(null,"ecomwishlist",[{where:$item$$=>({id_app:$item$$.id_app,user:$user$$.email,ma_vt:$item$$.ma_vt}),setFields:($item$$,$ref$$)=>{$item$$.wish=!0;$item$$.id_wish=$ref$$._id}}],function($rs$$){$callback$$(null,$rs$$)}):$callback$$()},function($callback$$){$items$$.filter($i$$=>$i$$.ma_ncc).joinModel2(null,
31
+ Dmkh,[{where:{id_app:"id_app",ma_ncc:"ma_kh"},fields:[{name:"ten_ncc",value:"ten_kh"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){Promise.all($items$$.filter($i$$=>$i$$.id_app&&$i$$.ma_dvt).map($item$$=>(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt});$dvtqd$$?$dvtqd$$.tu||$dvtqd$$.mau||($dvtqd$$.tu=1,$dvtqd$$.mau=1):$dvtqd$$=await Dmqddvt.create({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt,
32
+ ty_le_qd:1,tu:1,mau:1});return $dvtqd$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error("Error create qddvt",$e$$.message);$callback$$(null,$items$$)})},function($callback$$){if($options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("freeship")))try{let $freeshipModel$$=global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},
33
+ $hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>
34
+ {console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}else $callback$$(null,$items$$)},function($callback$$){if($options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("flashsales")))try{let $flashsale$$=global.getModel("ecompromotion_flashsales"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>
35
+ $i$$.id_app).map($item$$=>(async()=>{let $fs$$=await $flashsale$$.find({id_app:$item$$.id_app,tu_ngay:$hieu_luc_tu$$,den_ngay:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.flashsales=$fs$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,
36
+ $items$$)}else $callback$$(null,$items$$)},function($callback$$){$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_properties||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ds_thuoc_tinh"))?async.mapSeries($items$$,async $item$$=>{$item$$.ds_thuoc_tinh=await Dmtt.find({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,status:!0}).lean();return $item$$},()=>{$callback$$()}):$callback$$()},function($callback$$){$items$$.forEach(function($r$$){$r$$.picture?
37
+ $r$$.picture_thumb=$r$$.picture:$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("picture"))&&($r$$.picture_thumb="/images/picture.png");$r$$.picture2&&($r$$.picture2_thumb=$r$$.picture2);$r$$.picture3&&($r$$.picture3_thumb=$r$$.picture3);$r$$.picture4&&($r$$.picture4_thumb=$r$$.picture4);$r$$.picture5&&($r$$.picture5_thumb=$r$$.picture5)});$items$$.filter($i$$=>$i$$.ma_dvt).joinModel2(null,Dmdvt,[{where:{id_app:"id_app",ma_dvt:"ma_dvt"},
38
+ fields:[{name:"ten_dvt",value:"ten_dvt"}]}],function($rs$$){$callback$$(null,$rs$$)})}],function(){let $result$$=$items$$.map($item$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties&&$item$$.ds_thuoc_tinh&&0<$item$$.ds_thuoc_tinh.length){let $_new_items$$=$item$$.ds_thuoc_tinh.map($tt$$=>{let $_new_item$$={...$item$$};$_new_item$$.ma_tt=$tt$$.ma_tt;$_new_item$$.ten_tt=$tt$$.ten_tt;$_new_item$$.loai_tt=$tt$$.loai_tt;$_new_item$$[`ma_tt${$tt$$.loai_tt}`]=
39
+ $tt$$.ma_tt;$_new_item$$.nh_tt=$tt$$.nh_tt;$_new_item$$.ma_dvt=$tt$$.ma_dvt||$_new_item$$.ma_dvt;$_new_item$$.ma_can=$tt$$.ma_can||$_new_item$$.ma_can;$_new_item$$.ma_vt2=$tt$$.ma_tt2||$_new_item$$.ma_vt2;$_new_item$$.gia_ban_le=$tt$$.gia_ban_le||$_new_item$$.gia_ban_le;delete $_new_item$$.ds_thuoc_tinh;return $_new_item$$}).sort(($a$$,$b$$)=>$a$$.gia_ban_le-$b$$.gia_ban_le);if($options$$.req.query.online){let $ds_thuoc_tinh$$=_.cloneDeep($_new_items$$);$_new_items$$.forEach($r$$=>{$r$$.ds_thuoc_tinh=
40
+ $ds_thuoc_tinh$$});return[$_new_items$$[0]]}return $_new_items$$}return[$item$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);async.mapSeries($result$$,($item$jscomp$0$$,$callback$jscomp$1$$)=>{$item$jscomp$0$$.ty_le_ck=0;$item$jscomp$0$$.tien_ck=0;$item$jscomp$0$$.id_app?async.series({giaban:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("gia_ban_le"))?TinhGiaBan($item$jscomp$0$$,$callback$$,$options$$,$user$$):
41
+ $callback$$()},gia_ban_thuoc_tinh:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("gia_ban_le"))&&$item$jscomp$0$$.ds_thuoc_tinh&&0<$item$jscomp$0$$.ds_thuoc_tinh.length?async.mapSeries($item$jscomp$0$$.ds_thuoc_tinh,($item$$,$callback$$)=>{TinhGiaBan($item$$,$callback$$,$options$$,$user$$)},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()},ton_dvt:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&
42
+ ($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton_kho_online_hien_tai"))&&$item$jscomp$0$$.ton_kho_online_hien_tai&&$item$jscomp$0$$.ma_dvt?setImmediate(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt});$dvtqd$$&&($item$jscomp$0$$.ton_kho_online_hien_tai_dvt=$dvtqd$$.tu&&$dvtqd$$.mau?utils.round($item$jscomp$0$$.ton_kho_online_hien_tai*$dvtqd$$.mau/
43
+ $dvtqd$$.tu,4):utils.round($item$jscomp$0$$.ton_kho_online_hien_tai/($dvtqd$$.ty_le_qd||1),4));$callback$$()}):$callback$$()},ton_tt:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton_kho_online_hien_tai"))&&$item$jscomp$0$$.ds_thuoc_tinh?setImmediate(async()=>{let $ds_kho_online$$=(await global.getModel("dmkho").find({id_app:$item$jscomp$0$$.id_app,la_kho_online:!0},
44
+ {ma_kho:1}).lean()).map($k$$=>$k$$.ma_kho);async.mapSeries($item$jscomp$0$$.ds_thuoc_tinh.filter($item$$=>$item$$.ma_vt&&$item$$.ton_kho_online_hien_tai),($item$$,$callback$$)=>{setImmediate(async()=>{if($item$$.kg_kiem_tra_ton_kho_tt){if($item$$.ma_dvt){var $condition$jscomp$4_dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean();$condition$jscomp$4_dvtqd$$&&($item$$.ton_kho_online_hien_tai_dvt=$condition$jscomp$4_dvtqd$$.tu&&$condition$jscomp$4_dvtqd$$.mau?
45
+ utils.round($item$$.ton_kho_online_hien_tai*$condition$jscomp$4_dvtqd$$.mau/$condition$jscomp$4_dvtqd$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai/($condition$jscomp$4_dvtqd$$.ty_le_qd||1),4))}$callback$$()}else $condition$jscomp$4_dvtqd$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app},$item$$.ma_tt&&($condition$jscomp$4_dvtqd$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt),$condition$jscomp$4_dvtqd$$.groupBy=["ma_vt"],$condition$jscomp$4_dvtqd$$.ngay=new Date,$condition$jscomp$4_dvtqd$$.ma_kho=
46
+ {$in:$ds_kho_online$$},ckvt($condition$jscomp$4_dvtqd$$,async function($dvtqd$jscomp$3_e$$,$rs$$){$item$$.ton_kho_online_hien_tai_dvt=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ma_dvt&&($dvtqd$jscomp$3_e$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean())&&($item$$.ton_kho_online_hien_tai_dvt=$dvtqd$jscomp$3_e$$.tu&&$dvtqd$jscomp$3_e$$.mau?utils.round($item$$.ton_kho_online_hien_tai_dvt*$dvtqd$jscomp$3_e$$.mau/$dvtqd$jscomp$3_e$$.tu,
47
+ 4):utils.round($item$$.ton_kho_online_hien_tai_dvt/($dvtqd$jscomp$3_e$$.ty_le_qd||1),4));$callback$$()})})},()=>{$callback$jscomp$0$$()})}):$callback$jscomp$0$$()},ton:$callback$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton00"))){let $condition$$={ma_vt:$item$jscomp$0$$.ma_vt,id_app:$item$jscomp$0$$.id_app};$options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho);
48
+ $options$$.req.query.ma_lo&&($condition$$.ma_lo=$options$$.req.query.ma_lo);$options$$.req.query.ma_dvcs&&($condition$$.ma_dvcs=$options$$.req.query.ma_dvcs);$condition$$.groupBy=["id_app","ma_vt"];$condition$$.ngay=new Date;setImmediate(async()=>{ckvt($condition$$,async function($dvtqd$jscomp$4_e$$,$rs$$){$item$jscomp$0$$.ton00=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$jscomp$0$$.ma_dvt&&($dvtqd$jscomp$4_e$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,
49
+ ma_dvt:$item$jscomp$0$$.ma_dvt}))&&($item$jscomp$0$$.ton00=$dvtqd$jscomp$4_e$$.tu&&$dvtqd$jscomp$4_e$$.mau?utils.round($item$jscomp$0$$.ton00*$dvtqd$jscomp$4_e$$.mau/$dvtqd$jscomp$4_e$$.tu,4):utils.round($item$jscomp$0$$.ton00/($dvtqd$jscomp$4_e$$.ty_le_qd||1),0));$callback$$()})})}else $callback$$()}},()=>{$callback$jscomp$1$$()}):$callback$jscomp$1$$(null)},()=>{$fn$$(null,$result$$)})})}};
@@ -0,0 +1,3 @@
1
+ 'use strict';const model=global.getModel("fbconversation"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),fbconversation=function($router$$){(new controller($router$$,model,"fbconversation",{sort:{updated_time:-1},unique:["page_id","id"],onCreating:($user$$,$data$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");
2
+ $callback$$(null,$data$$)})},onUpdating:($user$$,$data$$,$obj$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");$callback$$(null,$data$$,$obj$$)})},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,global.getModel("fbpage"),{where:"page_id",fields:"page_title"});$next$$(null,$items$$)}})).route()};
3
+ module.exports=fbconversation;
@@ -0,0 +1,3 @@
1
+ 'use strict';const model=global.getModel("fbmessage"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),fbmessage=function($router$$){(new controller($router$$,model,"fbmessage",{sort:{created_time:-1},unique:["page_id","conv_id","id"],onCreating:($user$$,$data$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");
2
+ $callback$$(null,$data$$)})},onUpdating:($user$$,$data$$,$obj$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");$callback$$(null,$data$$,$obj$$)})},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,global.getModel("fbpage"),{where:"page_id",fields:"page_title"});$next$$(null,$items$$)}})).route()};
3
+ module.exports=fbmessage;
@@ -0,0 +1,10 @@
1
+ 'use strict';const model=global.getModel("fbpage"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),axios=require("axios"),async=require("async"),fbpage=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"fbpage",{sort:{date_created:-1},unique:["page_id"],onCreating:($user$$,$data$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");
2
+ $callback$$(null,$data$$)})},onUpdating:($user$$,$data$$,$obj$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");$callback$$(null,$data$$,$obj$$)})},onView:($user$$,$items$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$)return $callback$$($e$$);$admin$$||$items$$.forEach($item$$=>
3
+ {delete $item$$.page_access_token});$callback$$(null,$items$$)})}});$contr_router$$.route();$contr_router$$.router.route($contr_router$$.route_name+"/message/webhook").get(async($challenge_req$$,$res$$)=>{var $appInfo_id_app$$=$challenge_req$$.params.id_app;$appInfo_id_app$$=await global.getModel("app").findOne({_id:$appInfo_id_app$$});if(!$appInfo_id_app$$)return $res$$.status(403).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y"});let $mode$$=$challenge_req$$.query["hub.mode"],
4
+ $token$$=$challenge_req$$.query["hub.verify_token"];$challenge_req$$=$challenge_req$$.query["hub.challenge"];$mode$$&&$token$$?"subscribe"===$mode$$&&$token$$===$appInfo_id_app$$.options.facebook_webhook_verify_token?(console.log("WEBHOOK_VERIFIED"),$res$$.status(200).send($challenge_req$$)):$res$$.status(403).send({error:"Forbidden"}):$res$$.status(403).send({error:"Forbidden"})});$contr_router$$.router.route($contr_router$$.route_name+"/message/webhook").post(async($req$$,$res$$)=>{let $body$$=
5
+ $req$$.body;console.log("\ud83d\udfea Received webhook:");console.dir($body$$,{depth:null});if("page"==$body$$.object)try{const $id_app$$=$req$$.params.id_app,$page_id$$=$body$$.entry[0].id,$pageInfo$$=await model.findOne({id_app:$id_app$$,page_id:$page_id$$}).lean();if(!$pageInfo$$)return $res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y"});if($body$$.entry[0].messaging&&0<$body$$.entry[0].messaging.length&&$body$$.entry[0].messaging[0].sender&&$body$$.entry[0].messaging[0].sender.id){let $user_id$$=
6
+ $body$$.entry[0].messaging[0].sender.id,$mid$$=($body$$.entry[0].messaging[0].message||{}).mid;if($mid$$){let $conv$$=await global.getModel("fbconversation").getConvByUserId($id_app$$,$page_id$$,$pageInfo$$.page_access_token,$user_id$$);$conv$$&&await global.getModel("fbconversation").getMessage($id_app$$,$page_id$$,$conv$$.id,$pageInfo$$.page_access_token,$mid$$)}}}catch($e$$){console.error("Kh\u00f4ng th\u1ec3 x\u1eed l\u00fd tin nh\u1eafn t\u1eeb facebook",$e$$)}$res$$.status(200).send("EVENT_RECEIVED")});
7
+ $contr_router$$.router.route($contr_router$$.route_name+"/conversations/:page_id").get(async($req$$,$res$$)=>{const $page_id$$=$req$$.params.page_id,$id_app$$=$req$$.params.id_app,$pageInfo$$=await model.findOne({id_app:$id_app$$,page_id:$page_id$$});if(!$pageInfo$$)return $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y"});let $rs$$=[],$next_page$$;async.forever($next$$=>{setImmediate(()=>{$next_page$$&&console.log("sync next page",$next_page$$);axios.request({method:"get",
8
+ maxBodyLength:Infinity,url:$next_page$$?$next_page$$:`https://graph.facebook.com/${$page_id$$}/conversations/?platform=messenger&access_token=${$pageInfo$$.page_access_token}`,headers:{}}).then($response$$=>{const $convs$$=($response$$.data||{}).data||[];$next_page$$=(($response$$.data||{}).paging||{}).next;async.map($convs$$,async $c$$=>{setImmediate(async()=>{if(!await global.getModel("fbconversation").findOne({id_app:$id_app$$,page_id:$page_id$$,id:$c$$.id},{id:1})){$c$$.page_id=$page_id$$;$c$$.id_app=
9
+ $id_app$$;$c$$.user_created=$req$$.user.email;try{await global.getModel("fbconversation").create($c$$)}catch($e$$){console.error("Can't save conversation",$e$$,$c$$);return}}try{await global.getModel("fbconversation").sync($id_app$$,$page_id$$,$c$$.id)}catch($e$$){console.error("Can't sync conversation",$e$$,$c$$)}})},$error$$=>{if($error$$)return $next$$($error$$);$rs$$=[...$rs$$,...$convs$$];$next$$($next_page$$?void 0:"end")})}).catch($error$$=>{$next$$($error$$)})})},$error$$=>{if("end"!=$error$$)return $res$$.status(400).send({error:$error$$});
10
+ $res$$.send($rs$$)})});$contr_router$$.router.route($contr_router$$.route_name+"/messages/:page_id/:conv_id").get(async($conv_id_req$$,$res$$)=>{const $page_id$$=$conv_id_req$$.params.page_id,$id_app$$=$conv_id_req$$.params.id_app;$conv_id_req$$=$conv_id_req$$.params.conv_id;try{const $rs$$=await global.getModel("fbconversation").sync($id_app$$,$page_id$$,$conv_id_req$$);$res$$.send($rs$$)}catch($e$$){$res$$.status(400).send($e$$)}})};module.exports=fbpage;
@@ -5,5 +5,5 @@ $wallet_reward$$.mnemonic=$wallet$$.mnemonic;$wallet_reward$$.name="T\u00e0i kho
5
5
  (async()=>{$item$$.so_user_da_gioi_thieu=await global.getModel("introducer").countDocuments({id_app:$user$$.current_id_app,introduce_code:$item$$.introduce_code});const $so_lan_dau_tu$$=await global.getModel("assinvestment").find({id_app:$user$$.current_id_app,introduce_code:$item$$.introduce_code,trang_thai:{$in:["1","5","9"]}}).lean();$item$$.so_lan_dau_tu=$so_lan_dau_tu$$.length;$item$$.so_user_da_dau_tu=(await $so_lan_dau_tu$$.asyncGroupBy(["user_created"],["so_luong"])).length})()));await $items$$.asyncJoinModel2($user$$.current_id_app,
6
6
  Introducer,{where:"introduce_code",fields:["be_introduced",{be_introduced_date:"date_created"}]});await $items$$.asyncJoinModel2(null,User,{where:{be_introduced:"email"},fields:[{be_introduced_name:"name"}]});await $items$$.asyncJoinModel2(null,Trangthai,{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"INTRODUCECODE"}),fields:["ten_trang_thai","color"]});$next$$(null,$items$$)},onCreating:async($expiry_date_user$$,$data$$,$next$$)=>{if(0<await model.countDocuments({user_created:$expiry_date_user$$.email,
7
7
  id_app:$expiry_date_user$$.current_id_app}))return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam m\u00e3 g\u1edbi thi\u1ec7u m\u1edbi");if(!$data$$.introduce_code)for(;;){let $code$$=generateCode();if(!await model.findOne({id_app:$expiry_date_user$$.current_id_app,introduce_code:$code$$})){$data$$.introduce_code=$code$$;break}}$expiry_date_user$$=new Date;$expiry_date_user$$.setDate($expiry_date_user$$.getDate()+1825);$data$$.expiry_date=$expiry_date_user$$;$next$$(null,$data$$)},onUpdating:async($user$$,
8
- $data$$,$obj$$,$next$$)=>{if($user$$.email!==$obj$$.user_created)return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 s\u1eeda m\u00e3 gi\u1edbi thi\u1ec7u n\u00e0y");delete $data$$.introduce_code;delete $data$$.so_lan_su_dung;$next$$(null,$data$$,$obj$$)},onDeleting:async($obj$jscomp$21_user$$,$data$$,$next$$)=>{$obj$jscomp$21_user$$=await model.findOne({_id:$data$$._id});if(!$obj$jscomp$21_user$$||$obj$jscomp$21_user$$.so_lan_su_dung)return $next$$("Kh\u00f4ng th\u1ec3 xo\u00e1 m\u00e3 gi\u1edbi thi\u1ec7u n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng");
8
+ $data$$,$obj$$,$next$$)=>{if($user$$.email!==$obj$$.user_created)return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 s\u1eeda m\u00e3 gi\u1edbi thi\u1ec7u n\u00e0y");$data$$.introduce_code=void 0;$data$$.so_lan_su_dung=void 0;$next$$(null,$data$$,$obj$$)},onDeleting:async($obj$jscomp$21_user$$,$data$$,$next$$)=>{$obj$jscomp$21_user$$=await model.findOne({_id:$data$$._id});if(!$obj$jscomp$21_user$$||$obj$jscomp$21_user$$.so_lan_su_dung)return $next$$("Kh\u00f4ng th\u1ec3 xo\u00e1 m\u00e3 gi\u1edbi thi\u1ec7u n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng");
9
9
  $next$$(null,$data$$)}})).route()};
@@ -1,3 +1,3 @@
1
1
  'use strict';const model=global.getModel("news"),newsfeed=global.getModel("newsfeed"),controller=require("../../controllers/controller");
2
- module.exports=function($router$$){(new controller($router$$,model,"news",{sort:{date_created:-1},onCreated:async($user$$,$obj$$,$next$$)=>{if($obj$$.newsfeed)try{await newsfeed.add("news",$obj$$),$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message)}else $next$$(null,$obj$$)},onUpdated:async($user$$,$obj$$,$next$$)=>{if($obj$$.newsfeed)try{await newsfeed.add("news",$obj$$),$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message)}else{try{await newsfeed.delete($obj$$._id)}catch($e$$){console.error($e$$)}$next$$(null,
2
+ module.exports=function($router$$){(new controller($router$$,model,"news",{sort:{stt:1,date_created:-1},onCreated:async($user$$,$obj$$,$next$$)=>{if($obj$$.newsfeed)try{await newsfeed.add("news",$obj$$),$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message)}else $next$$(null,$obj$$)},onUpdated:async($user$$,$obj$$,$next$$)=>{if($obj$$.newsfeed)try{await newsfeed.add("news",$obj$$),$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message)}else{try{await newsfeed.delete($obj$$._id)}catch($e$$){console.error($e$$)}$next$$(null,
3
3
  $obj$$)}},onDeleted:async($user$$,$obj$$,$next$$)=>{try{await newsfeed.delete($obj$$._id)}catch($e$$){console.error($e$$)}$next$$(null,$obj$$)}})).route()};
@@ -1,5 +1,5 @@
1
- 'use strict';var model=global.getModel("opportunity");const controller=require("../../controllers/controller");var customer=global.getModel("customer"),link=global.getModel("link");const async=require("async");
2
- module.exports=function($router$$){var $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:"opportunity"})).save(function($e$$){$e$$&&console.error($e$$)})});$next$$&&$next$$(null,$obj$$)},$createLinkAndCode$$=function($user$$,
3
- $obj$$,$next$$){$createLink$$($user$$,$obj$$);$next$$(null,$obj$$)};(new controller($router$$,model,"opportunity",{sort:{user_created:-1},onFinding:function($user$$,$condition$$,$next$$){async.series({find_ten_kh:function($callback$$){$condition$$.ten_kh?customer.find({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())});
1
+ 'use strict';const model=global.getModel("opportunity"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),link=global.getModel("link"),async=require("async");
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:"opportunity"})).save(function($e$$){$e$$&&console.error($e$$)})});$next$$&&$next$$(null,$obj$$)},$createLinkAndCode$$=
3
+ function($user$$,$obj$$,$next$$){$createLink$$($user$$,$obj$$);$next$$(null,$obj$$)};(new controller($router$$,model,"opportunity",{sort:{user_created:-1},onFinding:function($user$$,$condition$$,$next$$){async.series({find_ten_kh:function($callback$$){$condition$$.ten_kh?customer.find({ten_kh:{$regex:$condition$$.ten_kh,$options:"i"}},{_id:1}).lean().exec(function($e$$,$khs$$){if($e$$)return $callback$$($e$$);delete $condition$$.ten_kh;const $id_khs$$=[];$khs$$.forEach(function($kh$$){$id_khs$$.push($kh$$._id.toString())});
4
4
  $condition$$.id_kh={$in:$id_khs$$};$callback$$()}):$callback$$()}},function($e$$){if($e$$)return $next$$($e$$);$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$){$items$$.joinModel2($user$$.current_id_app,customer,[{where:{id_kh:"_id"},fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){$items$$.forEach(function($item$$){0==$item$$.tinh_tren&&($item$$.ten_tinh_tren="t\u1ed5ng c\u1ed9ng");1==$item$$.tinh_tren&&($item$$.ten_tinh_tren="h\u00e0ng ng\u00e0y");2==$item$$.tinh_tren&&
5
5
  ($item$$.ten_tinh_tren="h\u00e0ng th\u00e1ng");3==$item$$.tinh_tren&&($item$$.ten_tinh_tren="h\u00e0ng qu\u00fd");4==$item$$.tinh_tren&&($item$$.ten_tinh_tren="h\u00e0ng n\u0103m")});$next$$(null,$items$$)})},onCreating:function($user$$,$item$$,$next$$){$item$$.phu_trach||($item$$.phu_trach=$user$$.email);$next$$(null,$item$$)},onCreated:$createLinkAndCode$$,onUpdated:$createLinkAndCode$$})).route()};
@@ -11,7 +11,7 @@ Buffer.from("OPENVIDUAPP:"+configs.VIDEO_CONFERENCE_SERVER_SECRET).toString("bas
11
11
  $room$$)})})}
12
12
  async function startRecord($appId$$,$room$$){if(!await model.findOne({_id:$room$$}))throw{message:"Phi\u00ean n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i",code:400};const $sessionId$$=`T${$appId$$}${$room$$}`.toUpperCase();return await new Promise(($resolve$$,$reject$$)=>{let $options$$={rejectUnauthorized:!1,uri:configs.VIDEO_CONFERENCE_SERVER_URL+"/api/recordings/start",method:"POST",json:{session:$sessionId$$},headers:{Authorization:"Basic "+Buffer.from("OPENVIDUAPP:"+configs.VIDEO_CONFERENCE_SERVER_SECRET).toString("base64"),"Content-Type":"application/json"}};
13
13
  request($options$$,async($error$$,$response$$,$body$$)=>{if($response$$)switch($response$$.statusCode){case 409:case 200:return $resolve$$($body$$);case 404:return $reject$$({message:"Phi\u00ean n\u00e0y ch\u01b0a \u0111\u01b0\u1ee3c m\u1edf",code:$response$$.statusCode});default:return $reject$$({message:"Kh\u00f4ng th\u1ec3 ghi l\u1ea1i phi\u00ean n\u00e0y",code:$response$$.statusCode})}else return $reject$$({message:"Kh\u00f4ng th\u1ec3 ghi l\u1ea1i phi\u00ean n\u00e0y",code:500})})})}
14
- module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"session",{sort:{date_created:-1},onCreating:($user$$,$data$$,$next$$)=>{delete $data$$.registers;$next$$(null,$data$$)},onCreated:async($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{delete $data$$.registers;$next$$(null,$data$$,$obj$$)},onUpdated:async($now$jscomp$1_sessionName_user$$,$obj$$,$next$$)=>{$now$jscomp$1_sessionName_user$$=new Date;if($obj$$.closed||
14
+ module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"session",{sort:{date_created:-1},onCreating:($user$$,$data$$,$next$$)=>{$data$$.registers=void 0;$next$$(null,$data$$)},onCreated:async($user$$,$obj$$,$next$$)=>{$next$$(null,$obj$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{$data$$.registers=void 0;$next$$(null,$data$$,$obj$$)},onUpdated:async($now$jscomp$1_sessionName_user$$,$obj$$,$next$$)=>{$now$jscomp$1_sessionName_user$$=new Date;if($obj$$.closed||
15
15
  $now$jscomp$1_sessionName_user$$.getTime()<$obj$$.date_from.getTime()||$now$jscomp$1_sessionName_user$$.getTime()>$obj$$.date_to.getTime()){$now$jscomp$1_sessionName_user$$=$obj$$._id.toString();try{await closeSession($obj$$.id_app,$now$jscomp$1_sessionName_user$$)}catch($e$$){console.error("Error when close session",$e$$.message)}}$next$$(null,$obj$$)},onDeleting:async($sessionName$jscomp$1_user$$,$obj$$,$next$$)=>{$sessionName$jscomp$1_user$$=$obj$$._id.toString();try{await closeSession($obj$$.id_app,
16
16
  $sessionName$jscomp$1_user$$)}catch($e$$){console.error("Error when delete session",$e$$.message)}$next$$(null,$obj$$)},onView:($user$$,$items$$,$next$$)=>{async.series([$callback$$=>{$items$$.joinModel2(null,Trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"session"}),fields:["ten_trang_thai","color","allow_update"]}],function(){$callback$$()})},$callback$$=>{async.each($items$$,function($r$$,$callback1$$){var $prices$$=$r$$.prices||[];$prices$$.forEach($p$$=>{$p$$.id_app=$r$$.id_app});
17
17
  $prices$$.joinModel2($user$$.current_id_app,dmdvt,[{where:"ma_dvt",fields:["tg_qd","kieu_tg"]}],function(){$callback1$$()})},function(){$callback$$()})},$callback$$=>{$items$$.joinModel2($user$$.current_id_app,training,[{where:{course_id:"_id"},fields:[{ten_khoa_hoc:"title"},{trainer_user:"trainer_user"}]}],function(){$callback$$(null)})}],()=>{$next$$(null,$items$$)})}});$contr_router$$.createRoute(":session_id/register",async($req$$,$next$$)=>{let $session_id$$=$req$$.params.session_id;try{let $_session$$=
@@ -1,6 +1,6 @@
1
- 'use strict';const calllog=global.getModel("calllog"),customer=global.getModel("customer"),lienhe=global.getModel("lienhe"),App=global.getModel("app"),Controller=require("../../controllers/controller");
2
- module.exports=function($router$$){$router$$.route("/:id_app/call/:token").get(async function($req$$,$res$$){let $callData$$={...$req$$.query,...$req$$.body};$callData$$.phone=$callData$$.phone||$callData$$.src;$callData$$.extend=$callData$$.extend||$callData$$.dst;$callData$$.call_status=$callData$$.state||$callData$$.status;delete $callData$$.status;if(!$callData$$.phone)return $res$$.status(400).send({errors:"Phone number is required"});let $token$$=$req$$.params.token,$id_app$$=$req$$.params.id_app,
3
- $participant$$;$callData$$.extend&&($participant$$=await global.getModel("participant").findOne({ext:{$in:$callData$$.extend.split(",")}}))&&($id_app$$=$participant$$.id_app);$callData$$.id_app=$id_app$$;App.findOne({_id:$id_app$$}).lean().exec(async($contact_e_where$$,$app_cus_phone$$)=>{if($contact_e_where$$)return $res$$.status(400).send($contact_e_where$$);if(!$app_cus_phone$$)return console.eror("Not found app"),$res$$.status(400).send({errors:"Request is bad"});if($app_cus_phone$$.voiip_access_token!==
4
- $token$$)return console.error("Token is not valud"),$res$$.status(400).send({errors:"Token is invalid"});$app_cus_phone$$=$callData$$.phone.replace("+","");$contact_e_where$$={id_app:$id_app$$};6>$app_cus_phone$$.length?$contact_e_where$$.dien_thoai=$app_cus_phone$$:("0"===$app_cus_phone$$.substring(0,1)&&($app_cus_phone$$=$app_cus_phone$$.substring(1)),"84"===$app_cus_phone$$.substring(0,2)&&($app_cus_phone$$=$app_cus_phone$$.substring(2)),$contact_e_where$$.dien_thoai={$regex:$app_cus_phone$$,$options:"i"});
5
- $app_cus_phone$$=await customer.findOne($contact_e_where$$).lean();$app_cus_phone$$||($contact_e_where$$=lienhe.findOne($contact_e_where$$).lean(),$contact_e_where$$.id_kh&&($app_cus_phone$$=await customer.findOne({_id:$contact_e_where$$.id_kh}).lean()));$app_cus_phone$$&&($callData$$.id_kh=$app_cus_phone$$._id,$callData$$.ten_kh=$app_cus_phone$$.ten_kh,$callData$$.dia_chi=$app_cus_phone$$.dia_chi);(new calllog($callData$$)).save(($ctrl_e$$,$rs$$)=>{if($ctrl_e$$)return $res$$.status(400).send($ctrl_e$$);
6
- if("Ring"===$callData$$.call_status){$ctrl_e$$=global.controllers.CALLLOG;let $users_will_receive$$;$participant$$&&($users_will_receive$$=[$participant$$.email]);Controller.pushNotification($ctrl_e$$,$rs$$.toObject(),"new",void 0,void 0,{data:$callData$$,users_will_receive:$users_will_receive$$})}$res$$.send({result:"ok"})})})})};
1
+ 'use strict';const async=require("async"),calllog=global.getModel("calllog"),customer=global.getModel("customer"),lienhe=global.getModel("lienhe"),App=global.getModel("app"),Controller=require("../../controllers/controller");
2
+ module.exports=function($router$$){$router$$.route("/:id_app/call/:token").get(async function($req$$,$res$$){let $g_callData$$={...$req$$.query,...$req$$.body};$g_callData$$.phone=$g_callData$$.phone||$g_callData$$.src;$g_callData$$.extend=$g_callData$$.extend||$g_callData$$.dst;$g_callData$$.call_status=$g_callData$$.state||$g_callData$$.status;delete $g_callData$$.status;if(!$g_callData$$.phone)return $res$$.status(400).send({errors:"Phone number is required"});App.find({voiip_access_token:$req$$.params.token},
3
+ {_id:1,name:1}).lean().exec(async($e$$,$apps$$)=>{if($e$$)return $res$$.status(400).send($e$$);async.map($apps$$,($app$$,$callback$$)=>{setImmediate(async()=>{let $callData$$={...$g_callData$$},$id_app$$=$app$$._id.toString();$callData$$.id_app=$id_app$$;var $cus_phone$$=$callData$$.phone.replace("+",""),$contact_where$$={id_app:$id_app$$};6>$cus_phone$$.length?$contact_where$$.dien_thoai=$cus_phone$$:("0"===$cus_phone$$.substring(0,1)&&($cus_phone$$=$cus_phone$$.substring(1)),"84"===$cus_phone$$.substring(0,
4
+ 2)&&($cus_phone$$=$cus_phone$$.substring(2)),$contact_where$$.dien_thoai={$regex:$cus_phone$$,$options:"i"});$cus_phone$$=await customer.findOne($contact_where$$).lean();$cus_phone$$||($contact_where$$=lienhe.findOne($contact_where$$).lean(),$contact_where$$.id_kh&&($cus_phone$$=await customer.findOne({_id:$contact_where$$.id_kh}).lean()));$cus_phone$$&&($callData$$.id_kh=$cus_phone$$._id,$callData$$.ten_kh=$cus_phone$$.ten_kh,$callData$$.dia_chi=$cus_phone$$.dia_chi);(new calllog($callData$$)).save(async($ctrl_e$$,
5
+ $rs$$)=>{if($ctrl_e$$)return $callback$$($ctrl_e$$);if("Ring"===$callData$$.call_status){$ctrl_e$$=global.controllers.CALLLOG;let $users_will_receive$$;if($callData$$.extend){let $participant$$;($participant$$=await global.getModel("participant").findOne({id_app:$id_app$$,ext:{$in:$callData$$.extend.split(",")}},{email:1}))&&($users_will_receive$$=[$participant$$.email])}Controller.pushNotification($ctrl_e$$,$rs$$.toObject(),"new",void 0,void 0,{data:$callData$$,users_will_receive:$users_will_receive$$})}$callback$$()})})},
6
+ $e$$=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send({result:"ok"})})})})};
@@ -1,4 +1,4 @@
1
1
  'use strict';const cdpstk=require("../../libs/cdpstk"),Account=global.getModel("account"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT");
2
- module.exports=function($router$$){new controller($router$$,"cdpstk",function($query_req$$,$callback$$){$query_req$$=$query_req$$.query;if(!$query_req$$.tu_ngay||!$query_req$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tu_ngay,den_ngay");const $id_app$$=$query_req$$.id_app;cdpstk($query_req$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);$report$$.joinModel($id_app$$,Account,[{akey:"tk",bkey:"tk",fields:[{name:"ten_tk",value:"ten_tk"},
3
- {name:"ten_tk2",value:"ten_tk2"}]}],function($report$$){$report$$.push({tk:"T\u1ed5ng c\u1ed9ng",dk_no:$report$$.csum("dk_no",{bac_tk:1}),dk_co:$report$$.csum("dk_co",{bac_tk:1}),ps_no:$report$$.csum("ps_no",{bac_tk:1}),ps_co:$report$$.csum("ps_co",{bac_tk:1}),ck_no:$report$$.csum("ck_no",{bac_tk:1}),ck_co:$report$$.csum("ck_co",{bac_tk:1}),dk_no_nt:$report$$.csum("dk_no_nt",{bac_tk:1}),dk_co_nt:$report$$.csum("dk_co_nt",{bac_tk:1}),ps_no_nt:$report$$.csum("ps_no_nt",{bac_tk:1}),ps_co_nt:$report$$.csum("ps_co_nt",
4
- {bac_tk:1}),ck_no_nt:$report$$.csum("ck_no_nt",{bac_tk:1}),ck_co_nt:$report$$.csum("ck_co_nt",{bac_tk:1}),systotal:1,bold:!0});$report$$=underscore.sortBy($report$$,function($r$$){return $r$$.tk});$callback$$(null,$report$$)})})})};
2
+ module.exports=function($router$$){new controller($router$$,"cdpstk",function($query_req$$,$callback$$){$query_req$$=$query_req$$.query;if(!$query_req$$.tu_ngay||!$query_req$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1 tu_ngay,den_ngay");const $id_app$$=$query_req$$.id_app;cdpstk($query_req$$,function($error$$,$report$$){if($error$$)return $callback$$($error$$);$report$$.joinModel2($id_app$$,Account,[{where:"tk",fields:["ten_tk","ten_tk2"]}],function($report$$){$report$$.push({tk:"T\u1ed5ng c\u1ed9ng",
3
+ dk_no:$report$$.csum("dk_no",{bac_tk:1}),dk_co:$report$$.csum("dk_co",{bac_tk:1}),ps_no:$report$$.csum("ps_no",{bac_tk:1}),ps_co:$report$$.csum("ps_co",{bac_tk:1}),ck_no:$report$$.csum("ck_no",{bac_tk:1}),ck_co:$report$$.csum("ck_co",{bac_tk:1}),dk_no_nt:$report$$.csum("dk_no_nt",{bac_tk:1}),dk_co_nt:$report$$.csum("dk_co_nt",{bac_tk:1}),ps_no_nt:$report$$.csum("ps_no_nt",{bac_tk:1}),ps_co_nt:$report$$.csum("ps_co_nt",{bac_tk:1}),ck_no_nt:$report$$.csum("ck_no_nt",{bac_tk:1}),ck_co_nt:$report$$.csum("ck_co_nt",
4
+ {bac_tk:1}),systotal:1,bold:!0});$report$$=underscore.sortBy($report$$,function($r$$){return $r$$.tk});$callback$$(null,$report$$)})})})};
@@ -1,11 +1,12 @@
1
1
  'use strict';const async=require("async"),qts=global.getModel("qts"),qts_dieuchinh=global.getModel("qts_dieuchinh"),sotinhkh=global.getModel("sotinhkh"),controller=require("../../controllers/controllerRPT"),moment=require("moment");
2
2
  module.exports=function($router$$){new controller($router$$,"chitiettaisan",function($req$$,$callback$jscomp$0$$){let $condition$$=$req$$.query;$condition$$.nam=$condition$$.nam?Number($condition$$.nam):(new Date).getFullYear();$condition$$.thang=$condition$$.thang?Number($condition$$.thang):(new Date).getMonth()+1;let $id_app$$=$condition$$.id_app,$ngay_cuoi_thang$$,$ngay_dau_thang$$,$toi_ky$$;$ngay_cuoi_thang$$=$condition$$.den_ngay?moment($condition$$.den_ngay).endOf("date").toDate():moment(new Date($condition$$.nam,
3
3
  $condition$$.thang-1,15)).endOf("month").toDate();$toi_ky$$=$ngay_cuoi_thang$$.getMonth()+1;$ngay_dau_thang$$=moment(new Date($condition$$.nam,$condition$$.thang-1,15)).startOf("month").toDate();async.series({id_tss:function($callback$$){let $q_ts$$={id_app:$id_app$$};$q_ts$$.ngay_tang={$lte:$ngay_cuoi_thang$$};$q_ts$$.$or=[{ngay_giam:null}];if($condition$$.tu_ngay){let $tu_ngay$$=moment($condition$$.tu_ngay).startOf("date").toDate();$q_ts$$.ngay_tang.$gte=moment($condition$$.tu_ngay).startOf("date").toDate();
4
- $q_ts$$.$or.ngay_giam={$gte:$tu_ngay$$}}else $q_ts$$.$or.ngay_giam={$gte:$ngay_dau_thang$$};$condition$$.ma_bp&&($q_ts$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_loai_ts&&($q_ts$$.ma_loai_ts=$condition$$.ma_loai_ts);$condition$$.ma_gd&&($q_ts$$.ma_gd=$condition$$.ma_gd);$condition$$.id_ts&&($q_ts$$.id_ts=$condition$$.id_ts);qts.find($q_ts$$).lean().exec(function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$)})}},function($e$jscomp$2$$,$rs$jscomp$0$$){if($e$jscomp$2$$)return $callback$jscomp$0$$($e$jscomp$2$$);
5
- const $ts$$=$rs$jscomp$0$$.id_tss,$dsts$$=$ts$$.map($r$$=>$r$$._id.toString());async.series({khauhao_nt:function($callback$$){const $q$$={id_app:$id_app$$,nam:{$lte:$condition$$.nam-1}};$q$$.id_ts={$in:$dsts$$};sotinhkh.find($q$$).lean().exec(async function($e$jscomp$0$$,$kh$$){if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);await $kh$$.filter($r$$=>$r$$.ma_tang_giam_ts).asyncJoinModel2($id_app$$,"dmtanggiamts",{where:"ma_tang_giam_ts",fields:{kieu_dc:"kieu"}});$kh$$.forEach($r$$=>{"2"==$r$$.kieu_dc&&
6
- ($r$$.nguyen_gia=0-$r$$.nguyen_gia,$r$$.gia_tri_da_kh=0-$r$$.gia_tri_da_kh,$r$$.gia_tri_con_lai=0-$r$$.gia_tri_con_lai,$r$$.gia_tri_kh_ky=0-$r$$.gia_tri_kh_ky)});$kh$$.groupBy("id_ts",["gia_tri_kh_ky"],function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$rs$$||($rs$$=[]);$callback$$(null,$rs$$)})})},khauhao_nn:function($callback$$){const $q$$={id_app:$id_app$$,nam:$condition$$.nam,thang:{$lte:$toi_ky$$}};$q$$.id_ts={$in:$dsts$$};sotinhkh.find($q$$).lean().exec(async function($e$jscomp$0$$,$kh$$){if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);
7
- await $kh$$.filter($r$$=>$r$$.ma_tang_giam_ts).asyncJoinModel2($id_app$$,"dmtanggiamts",{where:"ma_tang_giam_ts",fields:{kieu_dc:"kieu"}});$kh$$.forEach($r$$=>{"2"==$r$$.kieu_dc&&($r$$.nguyen_gia=0-$r$$.nguyen_gia,$r$$.gia_tri_da_kh=0-$r$$.gia_tri_da_kh,$r$$.gia_tri_con_lai=0-$r$$.gia_tri_con_lai,$r$$.gia_tri_kh_ky=0-$r$$.gia_tri_kh_ky)});$kh$$.groupBy("id_ts",["gia_tri_kh_ky"],function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$rs$$||($rs$$=[]);$callback$$(null,$rs$$)})})},nguyengia:function($callback$$){const $q$$=
8
- {id_ts:{$in:$dsts$$}};$q$$.$where="this.ky + this.nam * 12<="+($toi_ky$$+12*$condition$$.nam);qts_dieuchinh.find($q$$).lean().exec(async function($e$$,$rs$$){if($e$$)return $callback$$($e$$);await $rs$$.asyncJoinModel2($id_app$$,"dmtanggiamts",{where:"ma_tang_giam_ts",fields:{kieu_dc:"kieu"}});$ts$$.forEach(function($ts$$){let $nguyen_gia_dc$$=$rs$$.filter($r$$=>$r$$.id_ts==$ts$$._id.toString()).map($r$$=>"2"==$r$$.kieu_dc?0-$r$$.nguyen_gia:$r$$.nguyen_gia).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$gia_tri_da_kh_dc$$=
9
- $rs$$.filter($r$$=>$r$$.id_ts==$ts$$._id.toString()).map($r$$=>"2"==$r$$.kieu_dc?0-$r$$.gia_tri_da_kh:$r$$.gia_tri_da_kh).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$gia_tri_con_lai_dc$$=$rs$$.filter($r$$=>$r$$.id_ts==$ts$$._id.toString()).map($r$$=>"2"==$r$$.kieu_dc?0-$r$$.gia_tri_con_lai:$r$$.gia_tri_con_lai).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$ts$$.nguyen_gia=$ts$$.details.csum("nguyen_gia")+$nguyen_gia_dc$$;$ts$$.gia_tri_da_kh=$ts$$.details.csum("gia_tri_da_kh")+$gia_tri_da_kh_dc$$;$ts$$.gia_tri_con_lai=
10
- $ts$$.details.csum("gia_tri_con_lai")+$gia_tri_con_lai_dc$$});$callback$$(null,$ts$$)})}},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);let $stt$$=1;$ts$$.forEach(function($r$$){$r$$.gia_tri_kh_nam_nay=$rs$$.khauhao_nn.csum("gia_tri_kh_ky",{id_ts:$r$$._id.toString()});$r$$.gia_tri_kh_nam_truoc=$r$$.gia_tri_da_kh+$rs$$.khauhao_nt.csum("gia_tri_kh_ky",{id_ts:$r$$._id.toString()});$r$$.gia_tri_kh_luy_ke=$r$$.gia_tri_kh_nam_nay+$r$$.gia_tri_kh_nam_truoc;$r$$.gia_tri_con_lai=$r$$.nguyen_gia-
11
- $r$$.gia_tri_kh_luy_ke;$r$$.gia_tri_kh_ky=$r$$.so_ky_kh?$r$$.nguyen_gia/$r$$.so_ky_kh:0;$r$$.stt=$stt$$;$stt$$+=1});$e$$={bold:!0,ten_ts:"T\u1ed5ng c\u1ed9ng",nguyen_gia:$ts$$.csum("nguyen_gia"),gia_tri_kh_nam_nay:$ts$$.csum("gia_tri_kh_nam_nay"),gia_tri_kh_nam_truoc:$ts$$.csum("gia_tri_kh_nam_truoc"),gia_tri_da_kh:$ts$$.csum("gia_tri_da_kh"),gia_tri_kh_luy_ke:$ts$$.csum("gia_tri_kh_luy_ke"),gia_tri_con_lai:$ts$$.csum("gia_tri_con_lai")};$callback$jscomp$0$$(null,$ts$$.concat($e$$))})})})};
4
+ $q_ts$$.$or.ngay_giam={$gte:$tu_ngay$$}}else $q_ts$$.$or.ngay_giam={$gte:$ngay_dau_thang$$};$condition$$.ma_bp&&($q_ts$$.ma_bp=$condition$$.ma_bp);$condition$$.ma_kho&&($q_ts$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_loai_ts&&($q_ts$$.ma_loai_ts=$condition$$.ma_loai_ts);$condition$$.ma_gd&&($q_ts$$.ma_gd=$condition$$.ma_gd);$condition$$.id_ts&&($q_ts$$.id_ts=$condition$$.id_ts);qts.find($q_ts$$).lean().exec(function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$)})}},function($e$jscomp$2$$,
5
+ $rs$jscomp$0$$){if($e$jscomp$2$$)return $callback$jscomp$0$$($e$jscomp$2$$);const $ts$$=$rs$jscomp$0$$.id_tss,$dsts$$=$ts$$.map($r$$=>$r$$._id.toString());async.series({khauhao_nt:function($callback$$){const $q$$={id_app:$id_app$$,nam:{$lte:$condition$$.nam-1}};$q$$.id_ts={$in:$dsts$$};sotinhkh.find($q$$).lean().exec(async function($e$jscomp$0$$,$kh$$){if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);await $kh$$.filter($r$$=>$r$$.ma_tang_giam_ts).asyncJoinModel2($id_app$$,"dmtanggiamts",{where:"ma_tang_giam_ts",
6
+ fields:{kieu_dc:"kieu"}});$kh$$.forEach($r$$=>{"2"==$r$$.kieu_dc&&($r$$.nguyen_gia=0-$r$$.nguyen_gia,$r$$.gia_tri_da_kh=0-$r$$.gia_tri_da_kh,$r$$.gia_tri_con_lai=0-$r$$.gia_tri_con_lai,$r$$.gia_tri_kh_ky=0-$r$$.gia_tri_kh_ky)});$kh$$.groupBy("id_ts",["gia_tri_kh_ky"],function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$rs$$||($rs$$=[]);$callback$$(null,$rs$$)})})},khauhao_nn:function($callback$$){const $q$$={id_app:$id_app$$,nam:$condition$$.nam,thang:{$lte:$toi_ky$$}};$q$$.id_ts={$in:$dsts$$};
7
+ sotinhkh.find($q$$).lean().exec(async function($e$jscomp$0$$,$kh$$){if($e$jscomp$0$$)return $callback$$($e$jscomp$0$$);await $kh$$.filter($r$$=>$r$$.ma_tang_giam_ts).asyncJoinModel2($id_app$$,"dmtanggiamts",{where:"ma_tang_giam_ts",fields:{kieu_dc:"kieu"}});$kh$$.forEach($r$$=>{"2"==$r$$.kieu_dc&&($r$$.nguyen_gia=0-$r$$.nguyen_gia,$r$$.gia_tri_da_kh=0-$r$$.gia_tri_da_kh,$r$$.gia_tri_con_lai=0-$r$$.gia_tri_con_lai,$r$$.gia_tri_kh_ky=0-$r$$.gia_tri_kh_ky)});$kh$$.groupBy("id_ts",["gia_tri_kh_ky"],function($e$$,
8
+ $rs$$){if($e$$)return $callback$$($e$$);$rs$$||($rs$$=[]);$callback$$(null,$rs$$)})})},nguyengia:function($callback$$){const $q$$={id_ts:{$in:$dsts$$}};$q$$.$where="this.ky + this.nam * 12<="+($toi_ky$$+12*$condition$$.nam);qts_dieuchinh.find($q$$).lean().exec(async function($e$$,$rs$$){if($e$$)return $callback$$($e$$);await $rs$$.asyncJoinModel2($id_app$$,"dmtanggiamts",{where:"ma_tang_giam_ts",fields:{kieu_dc:"kieu"}});$ts$$.forEach(function($ts$$){let $nguyen_gia_dc$$=$rs$$.filter($r$$=>$r$$.id_ts==
9
+ $ts$$._id.toString()).map($r$$=>"2"==$r$$.kieu_dc?0-$r$$.nguyen_gia:$r$$.nguyen_gia).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$gia_tri_da_kh_dc$$=$rs$$.filter($r$$=>$r$$.id_ts==$ts$$._id.toString()).map($r$$=>"2"==$r$$.kieu_dc?0-$r$$.gia_tri_da_kh:$r$$.gia_tri_da_kh).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$gia_tri_con_lai_dc$$=$rs$$.filter($r$$=>$r$$.id_ts==$ts$$._id.toString()).map($r$$=>"2"==$r$$.kieu_dc?0-$r$$.gia_tri_con_lai:$r$$.gia_tri_con_lai).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$ts$$.nguyen_gia=$ts$$.details.csum("nguyen_gia")+
10
+ $nguyen_gia_dc$$;$ts$$.gia_tri_da_kh=$ts$$.details.csum("gia_tri_da_kh")+$gia_tri_da_kh_dc$$;$ts$$.gia_tri_con_lai=$ts$$.details.csum("gia_tri_con_lai")+$gia_tri_con_lai_dc$$});$callback$$(null,$ts$$)})}},function($e$$,$rs$$){if($e$$)return $callback$jscomp$0$$($e$$);let $stt$$=1;$ts$$.forEach(function($r$$){$r$$.gia_tri_kh_nam_nay=$rs$$.khauhao_nn.csum("gia_tri_kh_ky",{id_ts:$r$$._id.toString()});$r$$.gia_tri_kh_nam_truoc=$r$$.gia_tri_da_kh+$rs$$.khauhao_nt.csum("gia_tri_kh_ky",{id_ts:$r$$._id.toString()});
11
+ $r$$.gia_tri_kh_luy_ke=$r$$.gia_tri_kh_nam_nay+$r$$.gia_tri_kh_nam_truoc;$r$$.gia_tri_con_lai=$r$$.nguyen_gia-$r$$.gia_tri_kh_luy_ke;$r$$.gia_tri_kh_ky=$r$$.so_ky_kh?$r$$.nguyen_gia/$r$$.so_ky_kh:0;$r$$.stt=$stt$$;$stt$$+=1});$e$$={bold:!0,ten_ts:"T\u1ed5ng c\u1ed9ng",nguyen_gia:$ts$$.csum("nguyen_gia"),gia_tri_kh_nam_nay:$ts$$.csum("gia_tri_kh_nam_nay"),gia_tri_kh_nam_truoc:$ts$$.csum("gia_tri_kh_nam_truoc"),gia_tri_da_kh:$ts$$.csum("gia_tri_da_kh"),gia_tri_kh_luy_ke:$ts$$.csum("gia_tri_kh_luy_ke"),
12
+ gia_tri_con_lai:$ts$$.csum("gia_tri_con_lai")};$callback$jscomp$0$$(null,$ts$$.concat($e$$))})})})};