flexbiz-server 12.2.2 → 12.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/server/app.js +14 -14
- package/server/auths/local.js +27 -26
- package/server/cluster.js +12 -11
- package/server/controllers/controller.js +83 -79
- package/server/controllers/controllerRPT.js +18 -17
- package/server/data/sys/listinfo.js +80395 -78085
- package/server/data/sys/reportinfo.js +8826 -8826
- package/server/data/sys/trangthai.js +10348 -10229
- package/server/libs/cdpstk.js +1 -1
- package/server/libs/databanle.js +13 -13
- package/server/libs/getGiaban.js +17 -16
- package/server/libs/permission.js +12 -12
- package/server/libs/post-book.js +9 -8
- package/server/libs/post-socai.js +9 -9
- package/server/libs/prototypes.js +7 -7
- package/server/libs/tinhGtPhanboSltp.js +5 -5
- package/server/libs/tinhGtPhanboYtcp.js +2 -2
- package/server/libs/tinhGtThcppstk.js +1 -1
- package/server/libs/tinhGtTrucTiep.js +8 -7
- package/server/libs/tinhgiatb.js +16 -19
- package/server/libs/tinhgiatb1vt.js +3 -3
- package/server/libs/tinhhoahong.js +32 -0
- package/server/libs/utils.js +4 -3
- package/server/models/app.js +9 -8
- package/server/models/approve.js +4 -4
- package/server/models/customer.js +8 -4
- package/server/models/dh2.js +10 -7
- package/server/models/dmbp.js +7 -4
- package/server/models/dmgiaban.js +6 -6
- package/server/models/dmhoahonghd.js +6 -5
- package/server/models/dmnvt.js +3 -3
- package/server/models/dmvt.js +9 -9
- package/server/models/ecomcategories.js +2 -2
- package/server/models/ecomcategories_cty.js +3 -0
- package/server/models/fbconversation.js +9 -0
- package/server/models/fbmessage.js +2 -0
- package/server/models/fbpage.js +2 -0
- package/server/models/group.js +7 -5
- package/server/models/hd2.js +11 -8
- package/server/models/hd3.js +9 -9
- package/server/models/hd7.js +1 -1
- package/server/models/listinfo.js +15 -8
- package/server/models/notification.js +3 -2
- package/server/models/originimportid.js +1 -0
- package/server/models/participant.js +5 -5
- package/server/models/pbl.js +4 -4
- package/server/models/reportinfo.js +2 -2
- package/server/models/rptform.js +3 -2
- package/server/models/schedule.js +1 -1
- package/server/models/so1.js +17 -14
- package/server/models/socai.js +7 -5
- package/server/models/task.js +4 -4
- package/server/models/tdttco.js +8 -4
- package/server/models/tdttno.js +8 -4
- package/server/models/tokens.js +2 -2
- package/server/models/tontucthoi.js +2 -2
- package/server/models/usergroup.js +4 -3
- package/server/models/vatra.js +2 -2
- package/server/models/vatvao.js +4 -4
- package/server/modules/lists/ls-assinvestment.js +1 -1
- package/server/modules/lists/ls-asskey.js +34 -34
- package/server/modules/lists/ls-customer.js +13 -7
- package/server/modules/lists/ls-dmbp.js +7 -3
- package/server/modules/lists/ls-dmnkh.js +5 -1
- package/server/modules/lists/ls-dmnvt.js +5 -5
- package/server/modules/lists/ls-dmvt.js +48 -35
- package/server/modules/lists/ls-ecomcategories.js +5 -0
- package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
- package/server/modules/lists/ls-fbconversation.js +3 -0
- package/server/modules/lists/ls-fbmessage.js +3 -0
- package/server/modules/lists/ls-fbpage.js +10 -0
- package/server/modules/lists/ls-file.js +21 -25
- package/server/modules/lists/ls-group.js +5 -1
- package/server/modules/lists/ls-introducecode.js +8 -7
- package/server/modules/lists/ls-introducer.js +16 -17
- package/server/modules/lists/ls-message2.js +8 -7
- package/server/modules/lists/ls-message2setting.js +4 -4
- package/server/modules/lists/ls-news.js +1 -1
- package/server/modules/lists/ls-opportunity.js +3 -3
- package/server/modules/lists/ls-session.js +2 -2
- package/server/modules/lists/ls-task.js +18 -18
- package/server/modules/lists/ls-usergroup.js +6 -2
- package/server/modules/public/callin.js +6 -6
- package/server/modules/reports/calc-tinhgiatb.js +2 -2
- package/server/modules/reports/rp-cdpstk.js +3 -3
- package/server/modules/reports/rp-chitiettaisan.js +9 -8
- package/server/modules/reports/rp-ckvt.js +9 -7
- package/server/modules/reports/rp-congviectheonv.js +5 -5
- package/server/modules/reports/rp-ctbanle.js +13 -12
- package/server/modules/reports/rp-databanle.js +8 -4
- package/server/modules/reports/rp-dtbanletheoct.js +16 -9
- package/server/modules/reports/rp-dtbanletheokh.js +12 -6
- package/server/modules/reports/rp-dtbanletheokho.js +14 -9
- package/server/modules/reports/rp-dtbanletheonam.js +15 -9
- package/server/modules/reports/rp-dtbanletheongay.js +13 -8
- package/server/modules/reports/rp-dtbanletheonv.js +15 -9
- package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
- package/server/modules/reports/rp-dtbanletheothang.js +15 -9
- package/server/modules/reports/rp-getinvoice2pay.js +4 -6
- package/server/modules/reports/rp-getinvoice2receive.js +4 -6
- package/server/modules/reports/rp-hoahong.js +9 -0
- package/server/modules/reports/rp-kqhdkd.js +5 -4
- package/server/modules/reports/rp-ptcttct.js +7 -6
- package/server/modules/reports/rp-pttct.js +8 -8
- package/server/modules/reports/rp-pttctkho.js +3 -2
- package/server/modules/reports/rp-pttctkho2.js +3 -3
- package/server/modules/reports/rp-thnxt.js +8 -7
- package/server/modules/reports/rp-thnxt_sl.js +6 -6
- package/server/modules/reports/rp-thnxttt.js +6 -6
- package/server/modules/reports/rp-tmbctc.js +16 -16
- package/server/modules/systems/sys-app.js +25 -24
- package/server/modules/systems/sys-notification.js +2 -2
- package/server/modules/systems/sys-schedule.js +1 -1
- package/server/modules/systems/sys-user.js +8 -8
- package/server/modules/vouchers/vo-bc1.js +9 -8
- package/server/modules/vouchers/vo-bg2.js +9 -9
- package/server/modules/vouchers/vo-bn1.js +5 -4
- package/server/modules/vouchers/vo-dh2.js +14 -19
- package/server/modules/vouchers/vo-dnm.js +11 -12
- package/server/modules/vouchers/vo-hd2.js +66 -54
- package/server/modules/vouchers/vo-hd3.js +28 -22
- package/server/modules/vouchers/vo-hd7.js +37 -36
- package/server/modules/vouchers/vo-pbl.js +49 -49
- package/server/modules/vouchers/vo-pc1.js +9 -8
- package/server/modules/vouchers/vo-pn1.js +24 -22
- package/server/modules/vouchers/vo-pn5.js +1 -1
- package/server/modules/vouchers/vo-pn9.js +23 -23
- package/server/modules/vouchers/vo-pnc.js +8 -8
- package/server/modules/vouchers/vo-pnh.js +5 -5
- package/server/modules/vouchers/vo-pt1.js +17 -16
- package/server/modules/vouchers/vo-pxc.js +16 -16
- package/server/modules/vouchers/vo-pxh.js +12 -10
- package/server/modules/vouchers/vo-so1.js +90 -116
- package/server/modules/vouchers/vo-so4.js +1 -1
- package/server/modules/vouchers/vo-so5.js +2 -2
- package/server/templates/reset mat khau.html +1 -1
- package/server/templates/reset mat khau.pug +1 -3
- package/server/workers/restoreApp.js +21 -12
- package/server/workers/runScript.js +3 -3
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';const moment=require("moment"),_=require("lodash"),hoahonghdgt=async($obj$$,$hieu_luc_den_tu_ngay_user_created_user_gt$$,$customer_customer_gt_hieu_luc_tu$$)=>{if(!$obj$$.da_chuyen_hoa_hong_gt&&($obj$$.tien_hoa_hong_gt=0,$obj$$.ty_le_hoa_hong_gt=0,$obj$$.ma_kh_hoa_hong_gt="",$obj$$.details.forEach($detail$$=>{$detail$$.tien_hoa_hong_gt=0;$detail$$.ty_le_hoa_hong_gt=0}),$customer_customer_gt_hieu_luc_tu$$&&$hieu_luc_den_tu_ngay_user_created_user_gt$$&&$hieu_luc_den_tu_ngay_user_created_user_gt$$.group_id)){if($obj$$.introduce_code){$obj$$.user_gt=
|
|
2
|
+
"";var $intro$$=await global.getModel("introducer").findOne({id_app:$obj$$.id_app,introduce_code:$obj$$.introduce_code})}!$intro$$&&$obj$$.user_gt&&($intro$$=await global.getModel("introducer").findOne({id_app:$obj$$.id_app,be_introduced_by:$obj$$.user_gt}));if(!$intro$$){$obj$$.introduce_code="";$obj$$.user_gt="";let $intro_kh$$=await global.getModel("introducer").findOne({id_app:$obj$$.id_app,be_introduced:$customer_customer_gt_hieu_luc_tu$$.of_user||$obj$$.user_created});if($intro_kh$$){let $user_gt_kh$$=
|
|
3
|
+
await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$intro_kh$$.be_introduced_by}).populate("group_id").lean();$user_gt_kh$$&&($user_gt_kh$$.group_id=$user_gt_kh$$.group_id||{},$intro$$=$hieu_luc_den_tu_ngay_user_created_user_gt$$.email===$user_gt_kh$$.email&&($hieu_luc_den_tu_ngay_user_created_user_gt$$.group_id.is_agent_group||$hieu_luc_den_tu_ngay_user_created_user_gt$$.group_id.is_partner_group)?await global.getModel("introducer").findOne({id_app:$obj$$.id_app,be_introduced:$user_gt_kh$$.email}):
|
|
4
|
+
$intro_kh$$)}}if($intro$$&&($obj$$.introduce_code=$intro$$.introduce_code,$obj$$.user_gt=$intro$$.be_introduced_by,$hieu_luc_den_tu_ngay_user_created_user_gt$$=await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$obj$$.user_gt}).lean())){var $query$$={id_app:$obj$$.id_app,ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]},loai:"0",doi_tuong:"1",nh_kh:{$in:[void 0,null,"",$customer_customer_gt_hieu_luc_tu$$.nh_kh]},nh_kh2:{$in:[void 0,null,"",..._($customer_customer_gt_hieu_luc_tu$$.nh_kh2||
|
|
5
|
+
[])]},nh_kh3:{$in:[void 0,null,"",..._($customer_customer_gt_hieu_luc_tu$$.nh_kh3||[])]},nh_kh4:{$in:[void 0,null,"",..._($customer_customer_gt_hieu_luc_tu$$.nh_kh4||[])]},nh_kh5:{$in:[void 0,null,"",..._($customer_customer_gt_hieu_luc_tu$$.nh_kh5||[])]}};$query$$.user_group={$in:[($hieu_luc_den_tu_ngay_user_created_user_gt$$.group_id||"").toString(),null,void 0,""]};if($customer_customer_gt_hieu_luc_tu$$=await global.getModel("customer").findOne({id_app:$obj$$.id_app,of_user:$obj$$.user_gt}))$obj$$.ma_kh_hoa_hong_gt=
|
|
6
|
+
$customer_customer_gt_hieu_luc_tu$$.ma_kh;$hieu_luc_den_tu_ngay_user_created_user_gt$$=moment($obj$$.ngay_ct).startOf("date").toDate();$customer_customer_gt_hieu_luc_tu$$={$lte:moment($obj$$.ngay_ct).endOf("date").toDate()};$hieu_luc_den_tu_ngay_user_created_user_gt$$={$gte:$hieu_luc_den_tu_ngay_user_created_user_gt$$};$query$$.hieu_luc_tu=$customer_customer_gt_hieu_luc_tu$$;$query$$.hieu_luc_den=$hieu_luc_den_tu_ngay_user_created_user_gt$$;var $sort$$={do_uu_tien:1,gt_tu:-1,tien_hh:-1,ty_le_hh:-1,
|
|
7
|
+
ma_nv:-1,user_group:-1,nh_kh:-1,hieu_luc_tu:-1,kieu:1};await Promise.all($obj$$.details.map($detail$$=>{let $t_tt_nt$$=Math.roundBy($detail$$.tt_nt*$obj$$.ty_gia,0),$loi_nhuan$$=$t_tt_nt$$-$detail$$.tien_xuat_tmp;const $_query$$=_.cloneDeep($query$$);$_query$$.gt_tu={$lte:$t_tt_nt$$};$_query$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$t_tt_nt$$}}]},{$or:[{"vts.0":{$exists:!1}},{vts:$detail$$.ma_vt}]}];return(async()=>{var $ckhd_ckhds$$=await global.getModel("dmhoahonghd").find($_query$$).sort($sort$$).limit(1).lean();
|
|
8
|
+
if(0<$ckhd_ckhds$$.length){$ckhd_ckhds$$=$ckhd_ckhds$$[0];let $ty_le_hh$$,$tien_hh$$;$detail$$.gia_ban_niem_yet_nt&&$detail$$.gia_ban_niem_yet_nt>$detail$$.gia_ban_nt?($ty_le_hh$$=$ckhd_ckhds$$.ty_le_hh2||0,$tien_hh$$=$ckhd_ckhds$$.tien_hh2||0,"99"==$ckhd_ckhds$$.kieu&&($ckhd_ckhds$$.kieu="9")):($ty_le_hh$$=$ckhd_ckhds$$.ty_le_hh||0,$tien_hh$$=$ckhd_ckhds$$.tien_hh||0);$tien_hh$$?($detail$$.tien_hoa_hong_gt=$tien_hh$$,$detail$$.ty_le_hoa_hong_gt=0):($detail$$.ty_le_hoa_hong_gt=$ty_le_hh$$||0,$detail$$.tien_hoa_hong_gt=
|
|
9
|
+
"9"==$ckhd_ckhds$$.kieu?Math.roundBy($loi_nhuan$$*$ty_le_hh$$/100,0):Math.roundBy($t_tt_nt$$*$ty_le_hh$$/100,0));$detail$$.chuyen_ngay_gt="1"==$ckhd_ckhds$$.hinh_thuc_tt;$detail$$.tk_no_hoa_hong_gt=$ckhd_ckhds$$.tk_no;$detail$$.tk_co_hoa_hong_gt=$ckhd_ckhds$$.tk_co}})()}));$obj$$.tien_hoa_hong_gt=$obj$$.details.csum("tien_hoa_hong_gt");$obj$$.chuyen_ngay_gt=!!$obj$$.details.find($d$$=>$d$$.chuyen_ngay_gt)}}},hoahonghdctv=async($obj$$,$hieu_luc_tu$jscomp$1_user_created$$,$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$)=>
|
|
10
|
+
{if(!$obj$$.da_chuyen_hoa_hong_ctv&&($obj$$.thu_nhap_ctv=0,$obj$$.ty_le_hoa_hong_ctv=0,$obj$$.ma_ctv="",$obj$$.details.forEach($detail$$=>{$detail$$.thu_nhap_ctv=0;$detail$$.ty_le_hoa_hong_ctv=0}),$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$)){if($customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.of_user){let $customer_user$$=await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.of_user}).populate("group_id").exec();if($customer_user$$&&
|
|
11
|
+
$customer_user$$.group_id&&$customer_user$$.group_id.is_agent_group)return}var $customer_ctv$$;if($obj$$.user_ctv){if($customer_ctv$$=await global.getModel("customer").findOne({id_app:$obj$$.id_app,of_user:$obj$$.user_ctv})){$obj$$.ma_ctv=$customer_ctv$$.ma_kh;var $user_ctv$$=await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$obj$$.user_ctv}).populate("group_id").exec()}}else!$user_ctv$$&&$hieu_luc_tu$jscomp$1_user_created$$.email!==$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.of_user&&
|
|
12
|
+
($user_ctv$$=$hieu_luc_tu$jscomp$1_user_created$$,$obj$$.user_ctv=$user_ctv$$.email,$customer_ctv$$=await global.getModel("customer").findOne({id_app:$obj$$.id_app,of_user:$hieu_luc_tu$jscomp$1_user_created$$.email}))&&($obj$$.ma_ctv=$customer_ctv$$.ma_kh,$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.phu_trach||await global.getModel("customer").updateOne({_id:$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$._id},{phu_trach:$obj$$.user_ctv})),!$user_ctv$$&&$hieu_luc_tu$jscomp$1_user_created$$.email==
|
|
13
|
+
$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.of_user&&$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.phu_trach&&($user_ctv$$=await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.phu_trach}).populate("group_id").exec(),$user_ctv$$.group_id=$user_ctv$$.group_id||{},$user_ctv$$&&$user_ctv$$.group_id.is_partner_group?($obj$$.user_ctv=$user_ctv$$.email,$customer_ctv$$=await global.getModel("customer").findOne({id_app:$obj$$.id_app,
|
|
14
|
+
of_user:$obj$$.user_ctv})):$user_ctv$$=null);if($customer_ctv$$&&$user_ctv$$&&$user_ctv$$.email!==$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.of_user&&($user_ctv$$.group_id.is_agent_group||$user_ctv$$.group_id.is_partner_group)){var $query$$={id_app:$obj$$.id_app,ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]},loai:"9",doi_tuong:"2",nh_kh:{$in:[void 0,null,"",$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.nh_kh]},nh_kh2:{$in:[void 0,null,"",..._($customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.nh_kh2||
|
|
15
|
+
[])]},nh_kh3:{$in:[void 0,null,"",..._($customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.nh_kh3||[])]},nh_kh4:{$in:[void 0,null,"",..._($customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.nh_kh4||[])]},nh_kh5:{$in:[void 0,null,"",..._($customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$.nh_kh5||[])]}};$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$=moment($obj$$.ngay_ct).startOf("date").toDate();$hieu_luc_tu$jscomp$1_user_created$$={$lte:moment($obj$$.ngay_ct).endOf("date").toDate()};$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$=
|
|
16
|
+
{$gte:$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$};$query$$.hieu_luc_tu=$hieu_luc_tu$jscomp$1_user_created$$;$query$$.hieu_luc_den=$customer$jscomp$1_hieu_luc_den$jscomp$1_tu_ngay$$;var $sort$$={do_uu_tien:1,gt_tu:-1,tien_hh:-1,ty_le_hh:-1,ma_nv:-1,user_group:-1,nh_kh:-1,hieu_luc_tu:-1,kieu:1};$query$$.user_group={$in:[($user_ctv$$.group_id._id.toString()||"").toString(),null,void 0,""]};await Promise.all($obj$$.details.map($detail$$=>{let $t_tt_nt$$=Math.roundBy($detail$$.tt_nt*$obj$$.ty_gia,
|
|
17
|
+
0),$loi_nhuan$$=$t_tt_nt$$-$detail$$.tien_xuat_tmp;const $_query$$=_.cloneDeep($query$$);$_query$$.gt_tu={$lte:$t_tt_nt$$};$_query$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$t_tt_nt$$}}]},{$or:[{"vts.0":{$exists:!1}},{vts:$detail$$.ma_vt}]}];return(async()=>{var $ckhd$jscomp$1_ckhds$$=await global.getModel("dmhoahonghd").find($_query$$).sort($sort$$).limit(1).lean();if(0<$ckhd$jscomp$1_ckhds$$.length){$ckhd$jscomp$1_ckhds$$=$ckhd$jscomp$1_ckhds$$[0];if($detail$$.gia_ban_niem_yet_nt&&
|
|
18
|
+
$detail$$.gia_ban_niem_yet_nt>$detail$$.gia_ban_nt){var $tien_hoa_hong_ctv_ty_le_hh$$=$ckhd$jscomp$1_ckhds$$.ty_le_hh2||0;var $t_tt_niem_yet_nt_tien_hh$$=$ckhd$jscomp$1_ckhds$$.tien_hh2||0;"99"==$ckhd$jscomp$1_ckhds$$.kieu&&($ckhd$jscomp$1_ckhds$$.kieu="9")}else $tien_hoa_hong_ctv_ty_le_hh$$=$ckhd$jscomp$1_ckhds$$.ty_le_hh||0,$t_tt_niem_yet_nt_tien_hh$$=$ckhd$jscomp$1_ckhds$$.tien_hh||0;$t_tt_niem_yet_nt_tien_hh$$?($detail$$.tien_hoa_hong_ctv=$t_tt_niem_yet_nt_tien_hh$$,$detail$$.ty_le_hoa_hong_ctv=
|
|
19
|
+
0):($detail$$.ty_le_hoa_hong_ctv=$tien_hoa_hong_ctv_ty_le_hh$$,"9"==$ckhd$jscomp$1_ckhds$$.kieu?$detail$$.tien_hoa_hong_ctv=Math.roundBy($loi_nhuan$$*$tien_hoa_hong_ctv_ty_le_hh$$/100,0):($t_tt_niem_yet_nt_tien_hh$$=$detail$$.sl_xuat*($detail$$.gia_ban_niem_yet_nt||$detail$$.gia_ban_nt)-($detail$$.tien_ck_nt||0),$t_tt_niem_yet_nt_tien_hh$$=Math.roundBy($t_tt_niem_yet_nt_tien_hh$$*($obj$$.ty_gia||1),0),$tien_hoa_hong_ctv_ty_le_hh$$=Math.roundBy($t_tt_niem_yet_nt_tien_hh$$*$tien_hoa_hong_ctv_ty_le_hh$$/
|
|
20
|
+
100,0),$detail$$.tien_hoa_hong_ctv=$tien_hoa_hong_ctv_ty_le_hh$$-($t_tt_niem_yet_nt_tien_hh$$-$t_tt_nt$$)));$detail$$.chuyen_ngay_ctv="1"==$ckhd$jscomp$1_ckhds$$.hinh_thuc_tt;$detail$$.tk_cp_ctv=$ckhd$jscomp$1_ckhds$$.tk_no;$detail$$.tk_cn_ctv=$ckhd$jscomp$1_ckhds$$.tk_co}})()}));$obj$$.thu_nhap_ctv=$obj$$.details.csum("tien_hoa_hong_ctv");$obj$$.chuyen_ngay_ctv=!!$obj$$.details.find($d$$=>$d$$.chuyen_ngay_ctv)}else $obj$$.ma_ctv="",$obj$$.user_ctv=""}},hoahonghdnv=async($obj$$,$g_nv_user_created$$,
|
|
21
|
+
$customer$$)=>{if($obj$$.tu_tinh_hoa_hong&&!$obj$$.da_chuyen_hoa_hong){$obj$$.tien_hoa_hong=0;$obj$$.ty_le_hoa_hong=0;$obj$$.ma_kh_hoa_hong="";$obj$$.user_nv="";$obj$$.details.forEach($detail$$=>{$detail$$.tien_hoa_hong=0;$detail$$.ty_le_hoa_hong=0});var $customer_user$$={id_app:$obj$$.id_app,status:!0};$obj$$.ma_nv?$customer_user$$.ma_nv=$obj$$.ma_nv:$customer_user$$.user=$g_nv_user_created$$.email;if($g_nv_user_created$$=await global.getModel("dmnv").findOne($customer_user$$).lean())if($obj$$.ma_nv=
|
|
22
|
+
$g_nv_user_created$$.ma_nv,$obj$$.ma_bp=$g_nv_user_created$$.ma_bp,$obj$$.ten_nv=$g_nv_user_created$$.ten_nv,!$obj$$.user_ctv&&$g_nv_user_created$$.user){if($customer$$&&$customer$$.of_user&&($customer_user$$=await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$customer$$.of_user}).populate("group_id").exec())&&$customer_user$$.group_id&&$customer_user$$.group_id.is_agent_group)return;if($customer_user$$=$g_nv_user_created$$.ma_kh?await global.getModel("customer").findOne({id_app:$obj$$.id_app,
|
|
23
|
+
status:!0,ma_kh:$g_nv_user_created$$.ma_kh}):await global.getModel("customer").findOne({id_app:$obj$$.id_app,status:!0,of_user:$g_nv_user_created$$.user})){$obj$$.ma_kh_hoa_hong=$customer_user$$.ma_kh;$obj$$.user_nv=$g_nv_user_created$$.user;var $user_group$$;($g_nv_user_created$$=await global.getModel("participant").findOne({id_app:$obj$$.id_app,email:$obj$$.user_nv}).lean())&&($user_group$$={$in:[($g_nv_user_created$$.group_id||"").toString(),null,void 0,""]});await Promise.all($obj$$.details.map($detail$$=>
|
|
24
|
+
(async()=>{let $t_tt_nt$$=Math.roundBy($detail$$.tt_nt*$obj$$.ty_gia,0),$loi_nhuan$$=$t_tt_nt$$-$detail$$.tien_xuat_tmp;var $ckhd$jscomp$2_ckhds$jscomp$2_query$$={id_app:$obj$$.id_app,gt_tu:{$lte:$t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]},doi_tuong:"0",loai:"9",ma_nv:{$in:[void 0,null,"",$obj$$.ma_nv]},nh_kh:{$in:[void 0,null,"",$customer$$.nh_kh]},nh_kh2:{$in:[void 0,null,"",..._($customer$$.nh_kh2||[])]},nh_kh3:{$in:[void 0,null,"",..._($customer$$.nh_kh3||[])]},nh_kh4:{$in:[void 0,
|
|
25
|
+
null,"",..._($customer$$.nh_kh4||[])]},nh_kh5:{$in:[void 0,null,"",..._($customer$$.nh_kh5||[])]}};$ckhd$jscomp$2_ckhds$jscomp$2_query$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$t_tt_nt$$}}]},{$or:[{"vts.0":{$exists:!1}},{vts:$detail$$.ma_vt}]}];var $hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$=moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu$jscomp$2_ty_le_hh$$={$lte:moment($obj$$.ngay_ct).endOf("date").toDate()};$hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$=
|
|
26
|
+
{$gte:$hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$};$ckhd$jscomp$2_ckhds$jscomp$2_query$$.hieu_luc_tu=$hieu_luc_tu$jscomp$2_ty_le_hh$$;$ckhd$jscomp$2_ckhds$jscomp$2_query$$.hieu_luc_den=$hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$;$user_group$$&&($ckhd$jscomp$2_ckhds$jscomp$2_query$$.user_group=$user_group$$);$ckhd$jscomp$2_ckhds$jscomp$2_query$$=await global.getModel("dmhoahonghd").find($ckhd$jscomp$2_ckhds$jscomp$2_query$$).sort({do_uu_tien:1,gt_tu:-1,tien_hh:-1,ty_le_hh:-1,ma_nv:-1,user_group:-1,
|
|
27
|
+
nh_kh:-1,hieu_luc_tu:-1,kieu:1}).limit(1).lean();0<$ckhd$jscomp$2_ckhds$jscomp$2_query$$.length&&($ckhd$jscomp$2_ckhds$jscomp$2_query$$=$ckhd$jscomp$2_ckhds$jscomp$2_query$$[0],$detail$$.gia_ban_niem_yet_nt&&$detail$$.gia_ban_niem_yet_nt>$detail$$.gia_ban_nt?($hieu_luc_tu$jscomp$2_ty_le_hh$$=$ckhd$jscomp$2_ckhds$jscomp$2_query$$.ty_le_hh2||0,$hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$=$ckhd$jscomp$2_ckhds$jscomp$2_query$$.tien_hh2||0,"99"==$ckhd$jscomp$2_ckhds$jscomp$2_query$$.kieu&&($ckhd$jscomp$2_ckhds$jscomp$2_query$$.kieu=
|
|
28
|
+
"9")):($hieu_luc_tu$jscomp$2_ty_le_hh$$=$ckhd$jscomp$2_ckhds$jscomp$2_query$$.ty_le_hh||0,$hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$=$ckhd$jscomp$2_ckhds$jscomp$2_query$$.tien_hh||0),$ckhd$jscomp$2_ckhds$jscomp$2_query$$.tien_hh?($detail$$.tien_hoa_hong=$hieu_luc_den$jscomp$2_tien_hh$jscomp$2_tu_ngay$$,$detail$$.ty_le_hoa_hong=0):($detail$$.ty_le_hoa_hong=$hieu_luc_tu$jscomp$2_ty_le_hh$$||0,$detail$$.tien_hoa_hong="9"==$ckhd$jscomp$2_ckhds$jscomp$2_query$$.kieu?Math.roundBy($loi_nhuan$$*$hieu_luc_tu$jscomp$2_ty_le_hh$$/
|
|
29
|
+
100,0):Math.roundBy($t_tt_nt$$*$hieu_luc_tu$jscomp$2_ty_le_hh$$/100,0)),$detail$$.chuyen_ngay="1"==$ckhd$jscomp$2_ckhds$jscomp$2_query$$.hinh_thuc_tt,$detail$$.tk_no_hoa_hong=$ckhd$jscomp$2_ckhds$jscomp$2_query$$.tk_no,$detail$$.tk_co_hoa_hong=$ckhd$jscomp$2_ckhds$jscomp$2_query$$.tk_co)})()));$obj$$.tien_hoa_hong=$obj$$.details.csum("tien_hoa_hong");$obj$$.chuyen_ngay=!!$obj$$.details.find($d$$=>$d$$.chuyen_ngay)}}}};
|
|
30
|
+
module.exports=async function($giam_qua_obj$$){var $customer$$=$giam_qua_obj$$.ma_kh?await global.getModel("customer").findOne({id_app:$giam_qua_obj$$.id_app,ma_kh:$giam_qua_obj$$.ma_kh},{nh_kh:1,nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1,phu_trach:1,of_user:1}):void 0;const $user_created$$=await global.getModel("participant").findOne({id_app:$giam_qua_obj$$.id_app,email:$giam_qua_obj$$.user_created}).populate("group_id").exec();await hoahonghdgt($giam_qua_obj$$,$user_created$$,$customer$$);await hoahonghdctv($giam_qua_obj$$,
|
|
31
|
+
$user_created$$,$customer$$);await hoahonghdnv($giam_qua_obj$$,$user_created$$,$customer$$);if($user_created$$.group_id&&$giam_qua_obj$$.details.find($d$$=>$d$$.gia_ban_niem_yet_nt>$d$$.gia_ban_nt)){if(!$user_created$$.group_id.is_partner_group&&!$user_created$$.group_id.is_employee_group)throw"B\u1ea1n kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p gi\u1ea3m gi\u00e1 b\u00e1n s\u1ea3n ph\u1ea9m";if($user_created$$.group_id.is_partner_group&&($customer$$=$giam_qua_obj$$.details.find($d$$=>$d$$.gia_ban_niem_yet_nt>
|
|
32
|
+
$d$$.gia_ban_nt&&!$d$$.ty_le_hoa_hong_ctv)))throw`B\u1ea1n kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p gi\u1ea3m gi\u00e1 cho s\u1ea3n ph\u1ea9m ${$customer$$.ten_vt||$customer$$.ma_vt}`;if($giam_qua_obj$$=$giam_qua_obj$$.details.find($d$$=>$d$$.gia_ban_niem_yet_nt>$d$$.gia_ban_nt&&0>$d$$.tien_hoa_hong_ctv))throw`B\u1ea1n ch\u1ec9 \u0111\u01b0\u1ee3c ph\u00e9p gi\u1ea3m t\u1ed1i \u0111a ${$giam_qua_obj$$.ty_le_hoa_hong_ctv}% cho s\u1ea3n ph\u1ea9m ${$giam_qua_obj$$.ten_vt||$giam_qua_obj$$.ma_vt}`;}};
|
package/server/libs/utils.js
CHANGED
|
@@ -28,6 +28,7 @@ $callback$$){setImmediate(()=>{(async()=>{if("W"===$p$$.type||"EN"===$p$$.type)t
|
|
|
28
28
|
$e$$}else if("E"===$p$$.type&&$p$$.value){$condition$$=$p$$.value;0>$condition$$.indexOf("return ")&&($condition$$=`return ${$condition$$}`);if(0<=$condition$$.indexOf("async "))return $app$$[$p$$.name]="async function is not allow";$condition$$=`return (async ()=>{
|
|
29
29
|
${$condition$$}
|
|
30
30
|
})`;$query$jscomp$2_sandbox$$={m:$obj$$,master:$obj$$,data:$obj$$,Moment:moment,Numeral:numeral,numberToWord,getData:getParameterData};try{$app$$[$p$$.name]=await evalute($condition$$,$query$jscomp$2_sandbox$$)()}catch($e$$){console.error($e$$,$condition$$),$app$$[$p$$.name]=$e$$.message}}else $app$$[$p$$.name]=$p$$.value})().then(()=>{$callback$$()}).catch(()=>{$callback$$()})})},function($e$$){if($e$$)return $reject$$($e$$);$resole$$()})})},groupBy=($arr$$,$fieldkey$$,$fieldsums$$,$options$$)=>
|
|
31
|
-
[...$arr$$].asyncGroupBy($fieldkey$$,$fieldsums$$,$options$$),joinModel2=($arr$$,$id_app$$,$modelName$$,$where$$,$fields$$)=>[...$arr$$].asyncJoinModel2($id_app$$,$modelName$$,{where:$where$$,fields:$fields$$}),
|
|
32
|
-
$options$jscomp$5_rs
|
|
33
|
-
$options$jscomp$5_rs$$=await $
|
|
31
|
+
[...$arr$$].asyncGroupBy($fieldkey$$,$fieldsums$$,$options$$),joinModel2=($arr$$,$id_app$$,$modelName$$,$where$$,$fields$$)=>[...$arr$$].asyncJoinModel2($id_app$$,$modelName$$,{where:$where$$,fields:$fields$$}),count=async($model_name$$,$condition$$)=>{if(!$condition$$)throw"condition missed";if(!$condition$$.id_app)throw"condition missed id_app param";return await global.getModel($model_name$$).countDocuments($condition$$)},query=async($model_name$$,$condition$$,$options$jscomp$5_rs$$={})=>{if(!$condition$$)throw"condition missed";
|
|
32
|
+
if($options$jscomp$5_rs$$.action&&"find"!=$options$jscomp$5_rs$$.action){if(global.getModel($model_name$$)[$options$jscomp$5_rs$$.action]&&0<=["getCoinBalance","getInvestBalance","getOwners"].indexOf($options$jscomp$5_rs$$.action))return global.getModel($model_name$$)[$options$jscomp$5_rs$$.action]($condition$$,$options$jscomp$5_rs$$);throw`${$options$jscomp$5_rs$$.action} is not valid`;}if(!$condition$$.id_app)throw"condition missed id_app param";let $fields$$=$options$jscomp$5_rs$$.fields;$fields$$&&
|
|
33
|
+
($fields$$.mnemonic=-1,$fields$$.private_key=-1);$model_name$$=global.getModel($model_name$$).find($condition$$,$fields$$);$options$jscomp$5_rs$$.sort&&($model_name$$=$model_name$$.sort($options$jscomp$5_rs$$.sort));$options$jscomp$5_rs$$.limit&&($model_name$$=$model_name$$.limit($options$jscomp$5_rs$$.limit));$options$jscomp$5_rs$$=await $model_name$$.lean();$options$jscomp$5_rs$$.forEach($r$$=>{delete $r$$.mnemonic;delete $r$$.private_key;delete $r$$.password;delete $r$$.token;$r$$.local&&(delete $r$$.local.password,
|
|
34
|
+
delete $r$$.local.repassword,delete $r$$.local.pin)});return $options$jscomp$5_rs$$},getLib=$lib_name$$=>global.getLib($lib_name$$);module.exports={evalute,JSONParser,getParameterData,prepareParameters,advMapSeries,numberToWord,round,getInfoFromQuery,stripHtmlTags:strip_html_tags,unescapeHtml,compileHtml,isSupperAdmin,calcGrid,query,count,groupBy,joinModel2,getLib};
|
package/server/models/app.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
'use strict';const User=require("./user"),Participant=require("./participant"),_=require("lodash"),appScheam=new global.Schema({name:{type:String,required:!0,maxlength:1024},name_en:{type:String,maxlength:1024},short_name:{type:String,maxlength:1024},address:{type:String,maxlength:1024},address_en:{type:String,maxlength:1024},
|
|
2
|
-
email:{type:String,maxlength:1024},website:{type:String,maxlength:1024},sale_online:{type:Boolean,default:!1},facebook:{type:String,maxlength:2024},zalo:{type:String,maxlength:2024},messager:{type:String,maxlength:2024},bao_hanh:{type:String},van_chuyen:{type:String},dieu_khoan_su_dung:{type:String},dieu_khoan_su_dung_en:{type:String},dieu_khoan_kygui:{type:String},dieu_khoan_kygui_en:{type:String},dieu_khoan_congtacvien:{type:String},
|
|
3
|
-
chinh_sach_dau_tu_en:{type:String},gioi_thieu:{type:String},nganh_nghe:{type:String},keywords:{type:String},site_name:{type:String},ngay_dn:{type:Date,required:!0},ngay_ks:{type:Date,required:!0},nam_bd:{type:Number,required:!0},ngay_ky1:{type:Date,required:!0},ma_so_thue:{type:String,maxlength:1024},nguoi_nop_thue:{type:String,maxlength:1024},giam_doc:{type:String,maxlength:1024},ke_toan_truong:{type:String,maxlength:1024},viettel_version:{type:String,
|
|
4
|
-
viettel_password:{type:String,maxlength:1024},viettel_token:{type:String},viettel_url_service:{type:String,maxlength:1024},viettel_direct_issue:Boolean,ma_hoa_don:String,ky_hieu_hoa_don:String,sip_uri:String,sip_password:String,sip_websocket:String,voiip_access_token:String,voiip_webhook:String,wallet_address:{type:String,maxlength:2024},wallet_token:{type:String,maxlength:2024},exchange_fee:Number,wallet_network:{type:String,maxlength:2024},
|
|
5
|
-
tang_gioi_thieu_denom:String,tai_khoan_ngan_hang:String,ten_ngan_hang:String,chi_nhanh_ngan_hang:String,so_ngay_lam_mot_thang:{type:Number,default:24},logo:{type:String,maxlength:1024},logo_watermark:{type:String,maxlength:1024},gio_mo_cua:{type:Number,default:8},gio_dong_cua:{type:Number,default:22},partner:String,server:String,owner:String,default_password:String,email_host:String,email_port:Number,email_secure:{type:Boolean,
|
|
6
|
-
email_pass:String,email_name:String,exfields:global.Schema.Types.Mixed,domain:String,ssl_key:String,ssl_cert:String,ssl_ca:String,account_types_accept:[],options:{},allow_modules:[String],expire_date:Date,trang_thai:{type:String,default:"0"},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
7
|
-
appScheam.index({sale_online:1});appScheam.index({user_created:"text"},{name:"app_index_created"});appScheam.index({name:"text",province:"text",name_en:"text",address:"text",phone:"text",email:"text",ma_so_thue:"text"},{name:"app_index"});const App=global.mongoose.models.app||global.mongoose.model("app",appScheam);
|
|
1
|
+
'use strict';const User=require("./user"),Participant=require("./participant"),_=require("lodash"),appScheam=new global.Schema({name:{type:String,required:!0,maxlength:1024},name_en:{type:String,maxlength:1024},short_name:{type:String,maxlength:1024},address:{type:String,maxlength:1024},address_en:{type:String,maxlength:1024},factory_address:{type:String,maxlength:1024},factory_address_en:{type:String,maxlength:1024},city:{type:String,maxlength:1024},province:{type:String,maxlength:1024},country:{type:String,
|
|
2
|
+
maxlength:1024},phone:{type:String,maxlength:1024},fax:{type:String,maxlength:1024},email:{type:String,maxlength:1024},website:{type:String,maxlength:1024},sale_online:{type:Boolean,default:!1},facebook:{type:String,maxlength:2024},zalo:{type:String,maxlength:2024},messager:{type:String,maxlength:2024},bao_hanh:{type:String},van_chuyen:{type:String},dieu_khoan_su_dung:{type:String},dieu_khoan_su_dung_en:{type:String},dieu_khoan_kygui:{type:String},dieu_khoan_kygui_en:{type:String},dieu_khoan_congtacvien:{type:String},
|
|
3
|
+
dieu_khoan_congtacvien_en:{type:String},chinh_sach_dau_tu:{type:String},chinh_sach_dau_tu_en:{type:String},gioi_thieu:{type:String},nganh_nghe:{type:String},keywords:{type:String},site_name:{type:String},ngay_dn:{type:Date,required:!0},ngay_ks:{type:Date,required:!0},nam_bd:{type:Number,required:!0},ngay_ky1:{type:Date,required:!0},ma_so_thue:{type:String,maxlength:1024},nguoi_nop_thue:{type:String,maxlength:1024},giam_doc:{type:String,maxlength:1024},ke_toan_truong:{type:String,maxlength:1024},viettel_version:{type:String,
|
|
4
|
+
maxlength:1024},viettel_user:{type:String,maxlength:1024},viettel_password:{type:String,maxlength:1024},viettel_token:{type:String},viettel_url_service:{type:String,maxlength:1024},viettel_direct_issue:Boolean,ma_hoa_don:String,ky_hieu_hoa_don:String,sip_uri:String,sip_password:String,sip_websocket:String,voiip_access_token:String,voiip_webhook:String,wallet_address:{type:String,maxlength:2024},wallet_token:{type:String,maxlength:2024},exchange_fee:Number,wallet_network:{type:String,maxlength:2024},
|
|
5
|
+
tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_denom:String,tai_khoan_ngan_hang:String,ten_ngan_hang:String,chi_nhanh_ngan_hang:String,so_ngay_lam_mot_thang:{type:Number,default:24},logo:{type:String,maxlength:1024},logo_watermark:{type:String,maxlength:1024},gio_mo_cua:{type:Number,default:8},gio_dong_cua:{type:Number,default:22},partner:String,server:String,owner:String,default_password:String,email_host:String,email_port:Number,email_secure:{type:Boolean,
|
|
6
|
+
default:!0},email_authMethod:{type:String,default:"LOGIN"},email_user:String,email_pass:String,email_name:String,exfields:global.Schema.Types.Mixed,domain:String,ssl_key:String,ssl_cert:String,ssl_ca:String,account_types_accept:[],options:{},allow_modules:[String],expire_date:Date,trang_thai:{type:String,default:"0"},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
7
|
+
appScheam.index({name:1,province:1});appScheam.index({trang_thai:1});appScheam.index({sale_online:1});appScheam.index({user_created:"text"},{name:"app_index_created"});appScheam.index({name:"text",province:"text",name_en:"text",address:"text",phone:"text",email:"text",ma_so_thue:"text"},{name:"app_index"});const App=global.mongoose.models.app||global.mongoose.model("app",appScheam);
|
|
8
8
|
App.participants=async $app$$=>{_.isString($app$$)&&($app$$=await App.getInfo($app$$));let $participants$$=await Participant.ofApp($app$$._id);$app$$.participants&&($app$$.participants.forEach($p$$=>{$p$$.id_app=$app$$.id_app}),$participants$$=$participants$$.concat($app$$.participants));if($app$$.user_created&&!$participants$$.find($p$$=>$p$$.email===$app$$.user_created)){let $_p$$={email:$app$$.user_created,name:$app$$.user_created.split("@")[0],admin:!0,active:!0,cancel:!1,id_app:$app$$._id};$participants$$.push($_p$$);
|
|
9
9
|
Participant.createParticipant($_p$$,$e$$=>{$e$$&&console.log("create participant for user owner",$e$$.message)})}return $participants$$};App.getInfo=async function($id_app$$,$field$$){return new Promise(($resolve$$,$reject$$)=>{App.findOne({_id:$id_app$$}).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:"App is not exists"));$resolve$$($field$$?$rs$$[$field$$]:$rs$$)})})};
|
|
10
10
|
App.emitEvent=function($id_app$$,$event$$,$_data$$,$c_token$$=null,$users$$=null,$_createNotify$$=!1,$_push$$=!0){App.findOne({_id:$id_app$$}).lean().exec(async($e$jscomp$0$$,$app$$)=>{$app$$&&($_data$$.company=$app$$.name,$_data$$.app_info=$app$$,$_data$$.id_app=$id_app$$,$users$$?$users$$=$users$$.map($u$$=>({email:$u$$,name:$u$$})):($users$$=await App.participants($app$$),$users$$.find($u$$=>$app$$.user_created===$u$$.email)||$users$$.push({email:$app$$.user_created,name:$app$$.user_created})),
|
|
11
|
-
$users$$.forEach(function($user$$){let $data$$=_.cloneDeep($_data$$);!$data$$.title||!$_createNotify$$&&$event$$?$event$$&&User.emitEvent($user$$.email,$event$$,$data$$,$_push$$,$c_token$$):global.createNotification($data$$.user_updated||"SYSTEM",$user$$.email,$data$$.title,$data$$.body
|
|
11
|
+
$users$$.forEach(function($user$$){let $data$$=_.cloneDeep($_data$$);!$data$$.title||!$_createNotify$$&&$event$$?$event$$&&User.emitEvent($user$$.email,$event$$,$data$$,$_push$$,$c_token$$):global.createNotification($data$$.user_updated||"SYSTEM",$user$$.email,$data$$.title,$data$$.body,($e$$,$notify$$)=>{$e$$?console.error($e$$):$event$$&&($notify$$&&($data$$.notify_id=$notify$$._id.toString()),User.emitEvent($user$$.email,$event$$,$data$$,$_push$$,$c_token$$))},$data$$,!$event$$,$c_token$$)}))})};
|
|
12
|
+
module.exports=App;
|
package/server/models/approve.js
CHANGED
|
@@ -68,8 +68,8 @@ $_id$$=$key_data$$.id_request;$user_approved$$=$key_data$$.email;$user_approved_
|
|
|
68
68
|
($_c$$.trang_thai=$trang_thai$$);model.findOne($_c$$,($e$jscomp$3$$,$rq$$)=>{if($e$jscomp$3$$||!$rq$$)return $callback$$($e$jscomp$3$$||"Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if($rq$$.date_approved)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t b\u1edfi "+$rq$$.user_approved_name);if($rq$$.date_denied)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb t\u1eeb ch\u1ed1i duy\u1ec7t b\u1edfi "+$rq$$.user_denied_name);$rq$$.date_approved=
|
|
69
69
|
new Date;$rq$$.user_approved=$user_approved$$;$rq$$.user_approved_name=$user_approved_name$$;$rq$$.approved_reason=$options$$.reason||"";if(!$rq$$.user_approves||!$rq$$.user_approves.find($u$$=>0<=$u$$.email.indexOf($user_approved$$)))return $callback$$("User n\u00e0y kh\u00f4ng c\u00f3 quy\u1ec1n duy\u1ec7t y\u00eau c\u1ea7u n\u00e0y");$rq$$.save(($e$jscomp$2$$,$approve$$)=>{if($e$jscomp$2$$)return $callback$$($e$jscomp$2$$);model.sendNotifyApproved($rq$$,$token$$);if($rq$$.update_after_approve&&
|
|
70
70
|
$rq$$.update_after_approve.data)try{let $module_name$$=$rq$$.update_after_approve.module||$rq$$.update_after_approve.model,$ctrl$$;$module_name$$&&($ctrl$$=global.controllers[$module_name$$.toUpperCase()]);let $_m$$;$rq$$.update_after_approve.model?$_m$$=global.getModel($rq$$.update_after_approve.model):$ctrl$$&&($_m$$=$ctrl$$.getProperty("model"));if(!$_m$$)return;$_m$$.updateOne({_id:$rq$$.id_ct},$rq$$.update_after_approve.data,async $e$jscomp$1$$=>{if($e$jscomp$1$$)return console.error("Can't update data after approved, error:",
|
|
71
|
-
$e$jscomp$1$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct});if($obj$$){const $u$$=await global.getModel("user").findOne({email:$user_approved$$});$u$$.current_id_app=$obj$$.id_app;const $app_info$$=await App.findOne({_id:$obj$$.id_app});$ctrl$$.postData($obj$$,$e$$=>{$e$$&&console.error($e$$)});$ctrl$$.handleAfterAproved&&await $ctrl$$.handleAfterAproved($obj$$);$ctrl$$.onView($u$$,[$obj$$.toObject()],($e$jscomp$0
|
|
72
|
-
{$e$$&&console.error($e$$)},null,$rq$$)})}}catch($e$$){console.error($e$$)}})}catch($e$$){console.error("Can't update data after approved, error:",$e$$.message)}$callback$$(null,$approve$$)})})};
|
|
71
|
+
$e$jscomp$1$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct});if($obj$$){$ctrl$$.emit("saved",$obj$$);$ctrl$$.emit("updated",$obj$$);const $u$$=await global.getModel("user").findOne({email:$user_approved$$});$u$$.current_id_app=$obj$$.id_app;const $app_info$$=await App.findOne({_id:$obj$$.id_app});$ctrl$$.postData($obj$$,$e$$=>{$e$$&&console.error($e$$)});$ctrl$$.handleAfterAproved&&await $ctrl$$.handleAfterAproved($obj$$);$ctrl$$.onView($u$$,[$obj$$.toObject()],($e$jscomp$0$$,
|
|
72
|
+
$rs$$)=>{$ctrl$$.requestApprove($app_info$$,$u$$,$rs$$[0],$e$$=>{$e$$&&console.error($e$$)},null,$rq$$)})}}catch($e$$){console.error($e$$)}})}catch($e$$){console.error("Can't update data after approved, error:",$e$$.message)}$callback$$(null,$approve$$)})})};
|
|
73
73
|
model.deny=function($_c$jscomp$2_encrypted$$,$callback$$,$token$$,$options$$={reason:""}){let $key_data$$,$_id$$,$user_denied$$,$user_denied_name$$,$trang_thai$$;if(underscore.isObject($_c$jscomp$2_encrypted$$))$_id$$=$_c$jscomp$2_encrypted$$.id_request,$user_denied$$=$_c$jscomp$2_encrypted$$.email,$user_denied_name$$=$_c$jscomp$2_encrypted$$.name,$trang_thai$$=$_c$jscomp$2_encrypted$$.trang_thai;else try{const $decipher$$=crypto.createDecipher("aes192",configs.cryptoPassword||"PVT@1");let $decrypted$$=
|
|
74
74
|
$decipher$$.update($_c$jscomp$2_encrypted$$,"hex","utf8");$decrypted$$+=$decipher$$.final("utf8");$key_data$$=JSON.parse($decrypted$$);$_id$$=$key_data$$.id_request;$user_denied$$=$key_data$$.email;$user_denied_name$$=$key_data$$.name;$trang_thai$$=$key_data$$.trang_thai}catch($e$$){return $callback$$("Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb")}if(!$_id$$||!$user_denied$$)return $callback$$("request id and deny user are required");if(!global.mongoose.Types.ObjectId.isValid($_id$$))return $callback$$("request id '"+
|
|
75
75
|
$_id$$+"' is not valid");$_c$jscomp$2_encrypted$$={_id:$_id$$};void 0!==$trang_thai$$&&null!==$trang_thai$$&&($_c$jscomp$2_encrypted$$.trang_thai=$trang_thai$$);model.findOne($_c$jscomp$2_encrypted$$,($e$jscomp$2$$,$rq$$)=>{if($e$jscomp$2$$||!$rq$$||!$rq$$.ma_ct)return $callback$$($e$jscomp$2$$||"Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if($rq$$.date_approved)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t b\u1edfi "+$rq$$.user_approved_name);
|
|
@@ -87,5 +87,5 @@ $approve$$)=>{if($e$jscomp$1$$)return $callback$$($e$jscomp$1$$);let $title$$=`[
|
|
|
87
87
|
<hr/> ${$template$$} ${footerEmailTemplate($e$jscomp$19_requests$$.filter($r$$=>$r$$.user_approved||$r$$.user_denied))}`;let $ngEnviorment$$=new ngcompile([]);$_data$jscomp$3_app_info$$={user_request:{name:$rq$$.user_request_name,email:$rq$$.user_request},user_deny:{name:$rq$$.user_denied_name,email:$rq$$.user_denied},datasource:$rq$$.data,company:$_data$jscomp$3_app_info$$,app_info:$_data$jscomp$3_app_info$$,doc_so:utils.numberToWord};try{let $email_content$$=$ngEnviorment$$.$compile($template$$)($_data$jscomp$3_app_info$$),
|
|
88
88
|
$emails$$=[$rq$$.user_request],$rqs$$=$e$jscomp$19_requests$$.map($a$$=>$a$$.user_request),$aps$$=$e$jscomp$19_requests$$.filter($r$$=>$r$$._id.toString()!==$rq$$._id.toString()).map($a$$=>$a$$.user_approved);$emails$$=[...(new Set($emails$$.concat($rqs$$).concat($aps$$)))].filter($r$$=>$r$$);0<$emails$$.length&&App.emitEvent($rq$$.id_app,"request_denied",{_id:$rq$$.id_ct,id_app:$rq$$.id_app,title:$title$$,body:$title$$,email_content:$email_content$$,code:$rq$$.ma_ct,allow_unsubcribe:!1,attachments:$rq$$.data._id?
|
|
89
89
|
await File.find({id_link:$rq$$.data._id}).lean():void 0},null,$emails$$,!0,!0)}catch($e$$){console.log("Error send email",$e$$.message)}}):console.log("don't find email template or report template to send notify email to request user")});if($rq$$.update_after_deny&&$rq$$.update_after_deny.data)try{let $module_name$$=$rq$$.update_after_deny.module||$rq$$.update_after_deny.model,$ctrl$$;$module_name$$&&($ctrl$$=global.controllers[$module_name$$.toUpperCase()]);let $_m$$;$rq$$.update_after_deny.model?
|
|
90
|
-
$_m$$=global.getModel($rq$$.update_after_deny.model):$ctrl$$&&($_m$$=$ctrl$$.getProperty("model"));if(!$_m$$)return;$_m$$.findOneAndUpdate({_id:$rq$$.id_ct},$rq$$.update_after_deny.data,async $e$jscomp$0$$=>{if($e$jscomp$0$$)return console.error("Can't update data after denied, error:",$e$jscomp$0$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct});$ctrl$$.postData($obj$$,$e$$=>{$e$$&&console.error($e$$)})
|
|
91
|
-
$e$$.message)}$callback$$(null,$approve$$)})})};module.exports=model;
|
|
90
|
+
$_m$$=global.getModel($rq$$.update_after_deny.model):$ctrl$$&&($_m$$=$ctrl$$.getProperty("model"));if(!$_m$$)return;$_m$$.findOneAndUpdate({_id:$rq$$.id_ct},$rq$$.update_after_deny.data,async $e$jscomp$0$$=>{if($e$jscomp$0$$)return console.error("Can't update data after denied, error:",$e$jscomp$0$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct});$obj$$&&($ctrl$$.emit("saved",$obj$$),$ctrl$$.emit("updated",$obj$$),$ctrl$$.postData($obj$$,$e$$=>{$e$$&&console.error($e$$)}),$ctrl$$.handleAfterDenied&&
|
|
91
|
+
await $ctrl$$.handleAfterDenied($obj$$))}catch($e$$){console.error($e$$)}})}catch($e$$){console.log("Can't update data after deined, error:",$e$$.message)}$callback$$(null,$approve$$)})})};module.exports=model;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';const validator=require("validator"),customerSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",trim:!0,maxlength:32},ten_kh:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00ean kh\u00e1ch h\u00e0ng",trim:!0,maxlength:1024},device_user_id:String,gioi_tinh:{type:String,maxlength:1024},ngay_sinh:Date,dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},
|
|
2
2
|
tinh_thanh:{type:String,maxlength:1024},location:Schema.Types.Mixed,dien_thoai:{type:String,maxlength:1024},dia_chi2:{type:String,maxlength:1024},xa_phuong2:{type:String,maxlength:1024},quan_huyen2:{type:String,maxlength:1024},tinh_thanh2:{type:String,maxlength:1024},location2:Schema.Types.Mixed,dien_thoai2:{type:String,maxlength:1024},fax:{type:String,maxlength:1024},email:{type:String,maxlength:1024},website:{type:String,maxlength:1024},ma_so_thue:{type:String,maxlength:1024},phu_trach:{type:String,
|
|
3
|
-
maxlength:1024},ten_phu_trach:String,loai_kh:{type:String,default:"",trim:!0,maxlength:1024},nh_kh:{type:String,default:"",trim:!0,maxlength:1024},ten_nh_kh:String,ghi_chu:{type:String,default:"",trim:!0,maxlength:1024},ncc_yn:{type:Boolean,default:!0},kh_yn:{type:Boolean,default:!0},from_updated:{type:String,default:"M",maxlength:1024},of_user:{type:String,lowercase:!0,maxlength:1024,set:function($of_user$$){this._previous_of_user=
|
|
4
|
-
exfields:Schema.Types.Mixed,trang_thai:{type:String,default:"1"},status:{type:Boolean,default:!0},labels:[String],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],
|
|
5
|
-
customerSchema.index({
|
|
3
|
+
maxlength:1024},ten_phu_trach:String,loai_kh:{type:String,default:"",trim:!0,maxlength:1024},nh_kh:{type:String,default:"",trim:!0,maxlength:1024},ten_nh_kh:String,nh_kh2:[String],nh_kh3:[String],nh_kh4:[String],nh_kh5:[String],ma_nganh_hang:[String],ghi_chu:{type:String,default:"",trim:!0,maxlength:1024},ncc_yn:{type:Boolean,default:!0},kh_yn:{type:Boolean,default:!0},from_updated:{type:String,default:"M",maxlength:1024},of_user:{type:String,lowercase:!0,maxlength:1024,set:function($of_user$$){this._previous_of_user=
|
|
4
|
+
this.of_user;return $of_user$$}},group_user:String,default_password:{type:String},exfields:Schema.Types.Mixed,trang_thai:{type:String,default:"1"},activities:{},status:{type:Boolean,default:!0},ngay_mua_gan_nhat:Date,ngay_tuong_tac_gan_nhat:{type:Date,default:Date.now},labels:[String],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],
|
|
5
|
+
visible_to_usergroups:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]},{toJSON:{virtuals:!0}});customerSchema.index({id_app:1});customerSchema.index({ma_kh:1});customerSchema.index({ten_kh:1});customerSchema.index({nh_kh:1});customerSchema.index({nh_kh2:1});customerSchema.index({nh_kh3:1});customerSchema.index({nh_kh4:1});customerSchema.index({nh_kh5:1});customerSchema.index({activities:1});customerSchema.index({ma_nganh_hang:1});
|
|
6
|
+
customerSchema.index({ngay_mua_gan_nhat:1});customerSchema.index({ngay_tuong_tac_gan_nhat:1});customerSchema.index({dien_thoai:1});customerSchema.index({email:1});customerSchema.index({tinh_thanh:1});customerSchema.index({date_updated:-1});customerSchema.index({date_created:-1});customerSchema.index({user_created:1});customerSchema.index({labels:1});customerSchema.index({of_user:1});
|
|
6
7
|
customerSchema.index({ten_kh:"text",ma_kh:"text",dia_chi:"text",xa_phuong:"text",quan_huyen:"text",tinh_thanh:"text",dien_thoai:"text",email:"text",ma_so_thue:"text",phu_trach:"text",ten_phu_trach:"text",nh_kh:"text",ten_nh_kh:"text"},{name:"customer_index"});customerSchema.index({id_app:1,ma_kh:1},{unique:!0});customerSchema.index({status:1});customerSchema.index({user_created:1,visible_to:1,visible_to_users:1});customerSchema.index({trang_thai:1});
|
|
7
8
|
customerSchema.pre("save",function($next$$){if(!this.of_user)return $next$$();const $self$$=this;if(this.isNew||this.of_user!=this._previous_of_user){let $condition$$={id_app:this.id_app,of_user:this.of_user,ma_kh:{$ne:this.ma_kh}};console.log("Check of_user, previous of_user:",this._previous_of_user,"new of_user:",this.of_user,"ma_kh:",this.ma_kh);mongoose.models.customer.find($condition$$,{ten_kh:1,ma_kh:1},($e$$,$khs$$)=>{0<$khs$$.length?$next$$(Error(`Ng\u01b0\u1eddi s\u1eed d\u1ee5ng '${$self$$.of_user}' \u0111\u00e3 \u0111\u01b0\u1ee3c g\u1eafn cho kh\u00e1ch h\u00e0ng '${$khs$$.map($kh$$=>
|
|
8
9
|
$kh$$.ma_kh+" - "+$kh$$.ten_kh).join(",")}'`)):$next$$()})}else $next$$()});const model=mongoose.models.customer||mongoose.model("customer",customerSchema);
|
|
@@ -14,4 +15,7 @@ model.asyncCreateCustomerCode=async($id_app$$,$ma_kh$$,$lanthu$$)=>{$lanthu$$||(
|
|
|
14
15
|
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$$($e$$?$e$$.message:"Can't find customer information");$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
|
15
16
|
model.getList=async($id_app$$,$condition$$,$field$$)=>{$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$$($field$$?$rs$$.map($r$$=>$r$$[$field$$]):$rs$$)})})};
|
|
16
17
|
model.asyncCreateCustomer=async $data$$=>{if($data$$.of_user){var $_cust__cust$$=await model.findOne({id_app:$data$$.id_app,of_user:$data$$.of_user});if($_cust__cust$$)return $_cust__cust$$}$data$$.ma_kh||($data$$.ma_kh=await model.asyncCreateCustomerCode($data$$.id_app,$data$$.ten_kh));return($_cust__cust$$=await model.findOne({id_app:$data$$.id_app,ma_kh:$data$$.ma_kh}))?$_cust__cust$$:new Promise(($resolve$$,$reject$$)=>{$data$$.email&&!validator.isEmail($data$$.email)&&($data$$.email="");model.create($data$$,
|
|
17
|
-
($e$$,$rs$$)=>$e$$?$reject$$(Error($e$$.message)):$resolve$$($rs$$))})};
|
|
18
|
+
($e$$,$rs$$)=>$e$$?$reject$$(Error($e$$.message)):$resolve$$($rs$$))})};model.buyVouchers=["SO1","HD2","HD1","PBL"];
|
|
19
|
+
model.updateActives=async $cust_dhgn$$=>{let $_id$$,$kh$$;if($cust_dhgn$$.ma_kh&&$cust_dhgn$$.id_app)($kh$$=await model.findOne({id_app:$cust_dhgn$$.id_app,ma_kh:$cust_dhgn$$.ma_kh},{_id:1,ngay_tuong_tac_gan_nhat:1,ngay_mua_gan_nhat:1,trang_thai:1}))&&($_id$$=$kh$$._id.toString());else{let $link$$=$cust_dhgn$$.id_kh||$cust_dhgn$$.id_link;$link$$&&global.mongoose.Types.ObjectId.isValid($link$$)&&($kh$$=await model.findOne({_id:$link$$},{_id:1,ngay_tuong_tac_gan_nhat:1,ngay_mua_gan_nhat:1,trang_thai:1}))&&
|
|
20
|
+
($_id$$=$kh$$._id.toString())}if(!$kh$$)return{};$cust_dhgn$$.date_created&&(!$kh$$.ngay_tuong_tac_gan_nhat||(new Date($kh$$.ngay_tuong_tac_gan_nhat)).getTime()<(new Date($cust_dhgn$$.date_created)).getTime())&&$_id$$!=($cust_dhgn$$._id||"").toString()&&("3"==$kh$$.trang_thai?await model.updateOne({_id:$_id$$},{ngay_tuong_tac_gan_nhat:$cust_dhgn$$.date_created,trang_thai:"5"}):await model.updateOne({_id:$_id$$},{ngay_tuong_tac_gan_nhat:$cust_dhgn$$.date_created}));if($cust_dhgn$$=await global.getModel("socai").findOne({$or:[{ma_kh_no:$cust_dhgn$$.ma_kh},
|
|
21
|
+
{ma_kh_co:$cust_dhgn$$.ma_kh}],id_app:$cust_dhgn$$.id_app,ma_ct:{$in:model.buyVouchers}},{ngay_ct:1}).sort({ngay_ct:-1}))return"9"==$kh$$.trang_thai?await model.updateOne({_id:$_id$$},{ngay_mua_gan_nhat:$cust_dhgn$$.ngay_ct}):await model.updateOne({_id:$_id$$},{ngay_mua_gan_nhat:$cust_dhgn$$.ngay_ct,trang_thai:"1"}),{ngay_mua_gan_nhat:$cust_dhgn$$.ngay_ct};await model.updateOne({_id:$_id$$},{ngay_mua_gan_nhat:null});return{ngay_mua_gan_nhat:null}};module.exports=model;
|
package/server/models/dh2.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},
|
|
2
|
-
px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},gia_ban_niem_yet_nt:Number,tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,
|
|
3
|
+
default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},ten_vt_vat:{type:String},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,ty_le_hoa_hong_ctv:Number,
|
|
4
|
+
tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,
|
|
5
|
+
default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
5
6
|
const dh2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"DH2",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
6
7
|
ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,default:"",maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,
|
|
7
8
|
uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,
|
|
8
|
-
maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},promotion:Schema.Types.Mixed,id_contract:{type:String,maxlength:1024},
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},promotion:Schema.Types.Mixed,id_contract:{type:String,maxlength:1024},id_hd2:{type:String,maxlength:1024},id_pxh:{type:String,maxlength:1024},ma_kho:{type:String,
|
|
10
|
+
uppercase:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,
|
|
11
|
+
da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,
|
|
12
|
+
default:0},result_export_einvoice:Schema.Types.Mixed,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32}});dh2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};
|
|
13
|
+
dh2Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});dh2Schema.index({dien_giai:"text",ma_kh:"text",ten_kh:"text",so_ct:"text"},{name:"dh2_index_text"});dh2Schema.index({ma_ct:1});dh2Schema.index({ma_kh:1});dh2Schema.index({ma_kho:1});dh2Schema.index({id_contract:1});dh2Schema.index({id_hd2:1});dh2Schema.index({id_pxh:1});dh2Schema.index({"details.ma_vt":1});dh2Schema.index({user_created:1,date_created:-1});dh2Schema.index({date_updated:-1});dh2Schema.index({status:1});
|
|
14
|
+
dh2Schema.index({user_created:1,visible_to:1,visible_to_users:1});dh2Schema.index({user_nv:1});dh2Schema.index({user_gt:1});dh2Schema.index({user_ctv:1});dh2Schema.index({user_ql:1});dh2Schema.index({trang_thai:1});module.exports=mongoose.models.dh2||mongoose.model("dh2",dh2Schema);
|
package/server/models/dmbp.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
'use strict';const dmbpSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_bp:{type:String,required:!0,uppercase:!0,maxlength:32},ten_bp:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,uppercase:!0,maxlength:1024},ten_phu_trach:String,phoi_hop:{type:String,uppercase:!0,maxlength:1024},ma_bp_me:{type:String,uppercase:!0,maxlength:32},ma_bp_tuong_tac:[String],nhiem_vu:{type:String},tk_cp_luong:String,tk_pt_nv:String,tk_thue_tncn:String,ma_phi:String,tinh_luong_theo_ngay:Boolean,
|
|
2
|
-
ma_loai_cong_mac_dinh:String,stt:Number,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]},{toJSON:{virtuals:!0}});
|
|
3
|
-
dmbpSchema.index({ten_bp:1});dmbpSchema.index({phu_trach:1});dmbpSchema.index({ten_phu_trach:1});dmbpSchema.index({status:1});dmbpSchema.index({
|
|
4
|
-
const model=mongoose.models.dmbp||mongoose.model("dmbp",dmbpSchema);
|
|
2
|
+
ma_loai_cong_mac_dinh:String,sysorder:String,bac:{type:Number},loai_nh:{type:Number,default:1},stt:Number,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]},{toJSON:{virtuals:!0}});
|
|
3
|
+
dmbpSchema.index({id_app:1,ma_bp:1},{unique:!0});dmbpSchema.index({ten_bp:1});dmbpSchema.index({phu_trach:1});dmbpSchema.index({ten_phu_trach:1});dmbpSchema.index({status:1});dmbpSchema.index({sysorder:1});dmbpSchema.index({bac:1});dmbpSchema.index({loai_nh:1});dmbpSchema.index({ma_bp_me:1});dmbpSchema.index({ma_bp_tuong_tac:1});dmbpSchema.index({nhiem_vu:1});dmbpSchema.index({ma_loai_cong_mac_dinh:1});dmbpSchema.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
4
|
+
dmbpSchema.index({ma_bp:"text",ten_bp:"text",phu_trach:"text",ten_phu_trach:"text"},{name:"dmbp_index_text"});const model=mongoose.models.dmbp||mongoose.model("dmbp",dmbpSchema);
|
|
5
5
|
model.referenceKeys={ma_bp:[{model:"socai",key:"ma_bp",error:"B\u1ed9 ph\u1eadn {{VALUE}} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong s\u1ed5 c\u00e1i"},{model:"chamcong",key:"ma_bp",error:"B\u1ed9 ph\u1eadn {{VALUE}} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong b\u1ea3ng ch\u1ea5m c\u00f4ng"},{model:"bangtinhluong",key:"ma_bp",error:"B\u1ed9 ph\u1eadn {{VALUE}} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong b\u1ea3ng t\u00ednh l\u01b0\u01a1ng"},{model:"qts",key:"ma_bp",error:"B\u1ed9 ph\u1eadn {{VALUE}} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong qu\u1ea3n l\u00fd t\u00e0i s\u1ea3n"},
|
|
6
6
|
{model:"phieudanhgia",key:"ma_bp",error:"B\u1ed9 ph\u1eadn {{VALUE}} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong phi\u1ebfu \u0111\u00e1nh gi\u00e1 nh\u00e2n vi\u00ean"},{model:"dmnv",key:"ma_bp",error:"B\u1ed9 ph\u1eadn {{VALUE}} \u0111\u00e3 ph\u00e1t sinh nh\u00e2n vi\u00ean"},{model:"dmbp",key:"ma_bp_me",error:"B\u1ed9 ph\u1eadn {{VALUE}} c\u00f3 b\u1ed9 ph\u1eadn con"}]};
|
|
7
7
|
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 data"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
|
8
8
|
model.getChilren=async($id_app$$,$id$$)=>{let $_bp$$=await model.getInfo($id_app$$,{_id:$id$$});return new Promise(($resolve$$,$reject$$)=>{model.find({id_app:$id_app$$,ma_bp_me:$_bp$$.ma_bp}).lean().exec(async($_mbp_e$$,$_rs_rs$$)=>{if($_mbp_e$$)return $reject$$(Error($_mbp_e$$.message));$_mbp_e$$=$_rs_rs$$.map($r$$=>$r$$._id);$_rs_rs$$=[].concat($_mbp_e$$);for(let $i$$=0;$i$$<$_mbp_e$$.length;$i$$++)$_mbp_e$$=await model.getChilren($id_app$$,$_mbp_e$$[$i$$]),$_rs_rs$$=$_rs_rs$$.concat($_mbp_e$$);
|
|
9
|
-
$resolve$$($_rs_rs$$)})})};
|
|
9
|
+
$resolve$$($_rs_rs$$)})})};
|
|
10
|
+
model.getChilrenByMaBP=async($id_app$$,$ma_bp$$)=>{let $_bp$$=await model.getInfo($id_app$$,{ma_bp:$ma_bp$$});return new Promise(($resolve$$,$reject$$)=>{model.find({id_app:$id_app$$,ma_bp_me:$_bp$$.ma_bp}).lean().exec(async($_mbp$jscomp$1_e$$,$_rs$jscomp$1_rs$$)=>{if($_mbp$jscomp$1_e$$)return $reject$$(Error($_mbp$jscomp$1_e$$.message));$_mbp$jscomp$1_e$$=$_rs$jscomp$1_rs$$.map($r$$=>$r$$.ma_bp);$_rs$jscomp$1_rs$$=[].concat($_mbp$jscomp$1_e$$);for(let $i$$=0;$i$$<$_mbp$jscomp$1_e$$.length;$i$$++)$_mbp$jscomp$1_e$$=await model.getChilrenByMaBP($id_app$$,
|
|
11
|
+
$_mbp$jscomp$1_e$$[$i$$]),$_rs$jscomp$1_rs$$=$_rs$jscomp$1_rs$$.concat($_mbp$jscomp$1_e$$);$resolve$$($_rs$jscomp$1_rs$$)})})};model.getEmployeesByMaBP=async($id_app$$,$all_bp_ma_bp$$)=>{let $chilrends$$=await model.getChilrenByMaBP($id_app$$,$all_bp_ma_bp$$);$all_bp_ma_bp$$=[$all_bp_ma_bp$$,...$chilrends$$];return await global.getModel("dmnv").find({id_app:$id_app$$,ma_bp:{$in:$all_bp_ma_bp$$}})};
|
|
12
|
+
model.getUsersByMaBP=async($id_app$$,$ma_bp$$)=>(await model.getEmployeesByMaBP($id_app$$,$ma_bp$$)).map($e$$=>$e$$.user).filter($e$$=>$e$$);module.exports=model;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
'use strict';const dmgiabanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_vt:{type:String,uppercase:!0,default:"",maxlength:1024,trim:!0},ten_vt:String,ma_nvt:{type:String,default:"",maxlength:1024,trim:!0},ten_nvt:String,mieu_ta:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32,trim:!0},ten_kh:String,nh_kh:{type:String,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
ref:"dmnvt",localField:["ma_nvt"],foreignField:["_id"]}},{toJSON:{virtuals:!0}});dmgiabanSchema.index({id_app:1,ma_vt:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmgiabanSchema.index({ma_nvt:1});dmgiabanSchema.index({nh_kh:1});dmgiabanSchema.index({
|
|
5
|
-
dmgiabanSchema.index({
|
|
6
|
-
const model=mongoose.models.dmgiaban||mongoose.model("dmgiaban",dmgiabanSchema);module.exports=model;
|
|
1
|
+
'use strict';const dmgiabanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt_uu_tien:Number,ma_vt:{type:String,uppercase:!0,default:"",maxlength:1024,trim:!0},ten_vt:String,ma_nvt:{type:String,default:"",maxlength:1024,trim:!0},ten_nvt:String,mieu_ta:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32,trim:!0},ten_kh:String,nh_kh:{type:String,maxlength:1024,trim:!0},ten_nh_kh:String,nh_kh2:{type:String,maxlength:1024,trim:!0},ten_nh_kh2:String,nh_kh3:{type:String,
|
|
2
|
+
maxlength:1024,trim:!0},ten_nh_kh3:String,nh_kh4:{type:String,maxlength:1024,trim:!0},ten_nh_kh4:String,nh_kh5:{type:String,maxlength:1024,trim:!0},ten_nh_kh5:String,ma_kho:{type:String,default:"",maxlength:32,trim:!0},ten_kho:String,ma_ban:{type:String,default:"",maxlength:32,trim:!0},ten_ban:String,ma_tt1:{type:String,trim:!0},ma_tt2:{type:String,trim:!0},ma_tt3:{type:String,trim:!0},sl_tu:{type:Number,default:0},sl_den:{type:Number,default:0},gia_ban_le:{type:Number,default:0},gia_ban_buon:{type:Number,
|
|
3
|
+
default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},online:{type:Boolean},offline:{type:Boolean},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:""},dmvt:{type:Schema.Types.ObjectId,ref:"dmvt",
|
|
4
|
+
localField:["ma_vt"],foreignField:["ma_vt"]},dmkh:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},dmkho:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]},dmnvt:{type:Schema.Types.ObjectId,ref:"dmnvt",localField:["ma_nvt"],foreignField:["_id"]}},{toJSON:{virtuals:!0}});dmgiabanSchema.index({id_app:1,ma_vt:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmgiabanSchema.index({ma_nvt:1});dmgiabanSchema.index({nh_kh:1});dmgiabanSchema.index({nh_kh2:1});
|
|
5
|
+
dmgiabanSchema.index({nh_kh3:1});dmgiabanSchema.index({nh_kh4:1});dmgiabanSchema.index({nh_kh5:1});dmgiabanSchema.index({ma_kho:1});dmgiabanSchema.index({ma_ban:1});dmgiabanSchema.index({ma_kh:1});dmgiabanSchema.index({ma_tt1:1});dmgiabanSchema.index({ma_tt2:1});dmgiabanSchema.index({ma_tt3:1});dmgiabanSchema.index({ap_dung_lan_mua_thu:1});dmgiabanSchema.index({ap_dung_lan_mua_tu_thu:1});dmgiabanSchema.index({ap_dung_lan_mua_den_thu:1});dmgiabanSchema.index({sl_tu:1});dmgiabanSchema.index({sl_den:1});
|
|
6
|
+
dmgiabanSchema.index({date_updated:-1});dmgiabanSchema.index({date_created:-1});dmgiabanSchema.index({user_created:1});dmgiabanSchema.index({status:1});dmgiabanSchema.index({online:1});dmgiabanSchema.index({offline:1});dmgiabanSchema.index({mieu_ta:"text",ma_vt:"text",ten_vt:"text",ma_kh:"text",ten_kh:"text",ma_nvt:"text",ten_nvt:"text",ma_kho:"text",ten_kho:"text"},{name:"dmgiaban_index_text"});const model=mongoose.models.dmgiaban||mongoose.model("dmgiaban",dmgiabanSchema);module.exports=model;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
'use strict';const dmhoahonghdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},kieu:{type:String,default:"0"},doi_tuong:{type:String,default:"0"},hinh_thuc_tt:{type:String,default:"0"},do_uu_tien:{type:Number,default:0},ma_hoahong:{type:String,uppercase:!0,required:!0,maxlength:32},ten_hoahong:{type:String,required:!0,maxlength:1024},mieu_ta:{type:String},chi_su_dung_cho_ct:{type:String,uppercase:!0},khong_su_dung_cho_ct:{type:String,
|
|
2
|
-
default:"",maxlength:32},ten_nv:String,ma_bp:{type:String,default:"",maxlength:1024},ten_bp:String,ma_kh:{type:String,default:"",maxlength:32},ten_kh:String,nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,
|
|
3
|
-
|
|
4
|
-
ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]}});
|
|
5
|
-
dmhoahonghdSchema.index({
|
|
1
|
+
'use strict';const dmhoahonghdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},loai:{type:String,default:"0"},kieu:{type:String,default:"0"},doi_tuong:{type:String,default:"0"},hinh_thuc_tt:{type:String,default:"0"},tk_no:String,tk_co:String,do_uu_tien:{type:Number,default:0},ma_hoahong:{type:String,uppercase:!0,required:!0,maxlength:32},ten_hoahong:{type:String,required:!0,maxlength:1024},mieu_ta:{type:String},chi_su_dung_cho_ct:{type:String,uppercase:!0},khong_su_dung_cho_ct:{type:String,
|
|
2
|
+
uppercase:!0},user_group:String,ma_nv:{type:String,default:"",maxlength:32},ten_nv:String,ma_bp:{type:String,default:"",maxlength:1024},ten_bp:String,ma_kh:{type:String,default:"",maxlength:32},ten_kh:String,nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,nh_kh2:{type:String,default:"",maxlength:1024},ten_nh_kh2:String,nh_kh3:{type:String,default:"",maxlength:1024},ten_nh_kh3:String,nh_kh4:{type:String,default:"",maxlength:1024},ten_nh_kh4:String,nh_kh5:{type:String,default:"",maxlength:1024},
|
|
3
|
+
ten_nh_kh5:String,ma_kho:{type:String,default:"",maxlength:32},ten_kho:String,gt_tu:{type:Number,default:0},gt_den:{type:Number,default:0},vts:[],sl_toi_thieu:{type:Number,default:0},tien_hh:{type:Number,default:0},ty_le_hh:{type:Number,default:0},so_tien_max:{type:Number,default:0},tien_hh2:{type:Number,default:0},ty_le_hh2:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},details_km:[],picture:{type:String},exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,
|
|
4
|
+
default:!0},online:{type:Boolean},offline:{type:Boolean},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},ma_kh_id:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]}});
|
|
5
|
+
dmhoahonghdSchema.index({id_app:1,ma_hoahong:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1});dmhoahonghdSchema.index({gt_tu:1});dmhoahonghdSchema.index({gt_den:1});dmhoahonghdSchema.index({ten_kho:1});dmhoahonghdSchema.index({nh_kh:1});dmhoahonghdSchema.index({ten_nh_kh:1});dmhoahonghdSchema.index({nh_kh2:1});dmhoahonghdSchema.index({ten_nh_kh2:1});dmhoahonghdSchema.index({nh_kh3:1});dmhoahonghdSchema.index({ten_nh_kh3:1});dmhoahonghdSchema.index({nh_kh4:1});dmhoahonghdSchema.index({ten_nh_kh4:1});
|
|
6
|
+
dmhoahonghdSchema.index({nh_kh5:1});dmhoahonghdSchema.index({ten_nh_kh5:1});dmhoahonghdSchema.index({ma_nv:1});dmhoahonghdSchema.index({ma_bp:1});dmhoahonghdSchema.index({user_group:1});dmhoahonghdSchema.index({kieu:1});dmhoahonghdSchema.index({loai:1});dmhoahonghdSchema.index({do_uu_tien:1});dmhoahonghdSchema.index({date_updated:-1});dmhoahonghdSchema.index({date_created:-1});dmhoahonghdSchema.index({user_created:1});dmhoahonghdSchema.index({online:1});dmhoahonghdSchema.index({offline:1});
|
|
6
7
|
dmhoahonghdSchema.index({mieu_ta:"text",ma_hoahong:"text",ten_hoahong:"text",ma_kh:"text",ten_kh:"text",nh_kh:"text",ten_nh_kh:"text",ma_kho:"text",ten_kho:"text",ma_nv:"text",ten_nv:"text",ma_bp:"text",ten_bp:"text"},{name:"dmhoahonghd_index_text"});dmhoahonghdSchema.set("toObject",{virtuals:!0});dmhoahonghdSchema.set("toJSON",{virtuals:!0});dmhoahonghdSchema.index({status:1});const model=mongoose.models.dmhoahonghd||mongoose.model("dmhoahonghd",dmhoahonghdSchema);module.exports=model;
|
package/server/models/dmnvt.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';const dmnvtSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ten_nvt:{type:String,required:!0,maxlength:1024},nh_me:{type:String,maxlength:1024},loai_nh:{type:Number,default:1},bac:Number,sysorder:
|
|
2
|
-
default:!0},shared:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}},{toJSON:{virtuals:!0}});dmnvtSchema.index({id_app:1,ten_nvt:1});dmnvtSchema.index({nh_me:1});dmnvtSchema.index({loai_nh:1});dmnvtSchema.index({bac:1});dmnvtSchema.index({
|
|
3
|
-
dmnvtSchema.index({status:1});dmnvtSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.dmnvt||mongoose.model("dmnvt",dmnvtSchema);model.referenceKeys={_id:[{model:"dmvt",key:"ma_nvt",error:"Nh\u00f3m v\u1eadt t\u01b0 ${obj.ten_nvt} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong danh m\u1ee5c v\u1eadt t\u01b0"}]};module.exports=model;
|
|
1
|
+
'use strict';const dmnvtSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt:{type:Number,default:0},ten_nvt:{type:String,required:!0,maxlength:1024},nh_me:{type:String,maxlength:1024},ma_nganh_hang:String,loai_nh:{type:Number,default:1},bac:Number,sysorder:String,quan_trong:Boolean,la_nhom_hang_hoa:Boolean,description:String,logo:{type:String,maxlength:1024},banner1:{type:String,maxlength:1024},banner2:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,
|
|
2
|
+
default:!0},shared:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}},{toJSON:{virtuals:!0}});dmnvtSchema.index({id_app:1,ten_nvt:1});dmnvtSchema.index({nh_me:1});dmnvtSchema.index({sysorder:1});dmnvtSchema.index({loai_nh:1});dmnvtSchema.index({bac:1});dmnvtSchema.index({ma_nganh_hang:1});dmnvtSchema.index({la_nhom_hang_hoa:1});dmnvtSchema.index({description:1});
|
|
3
|
+
dmnvtSchema.index({ten_nvt:"text",nh_me:"text",description:"text"},{name:"dmnvt_index_text"});dmnvtSchema.index({status:1});dmnvtSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.dmnvt||mongoose.model("dmnvt",dmnvtSchema);model.referenceKeys={_id:[{model:"dmvt",key:"ma_nvt",error:"Nh\u00f3m v\u1eadt t\u01b0 ${obj.ten_nvt} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong danh m\u1ee5c v\u1eadt t\u01b0"}]};module.exports=model;
|
package/server/models/dmvt.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),unidecode=require("unidecode"),dmvtSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_vt:{type:String,required:"M\u00e3 v\u1eadt t\u01b0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",uppercase:!0,trim:!0,maxlength:1024},ma_vt2:{type:String,maxlength:1024,uppercase:!0,trim:!0},ma_can:{type:String,maxlength:1024,uppercase:!0,trim:!0},ten_vt:{type:String,required:"T\u00ean v\u1eadt t\u01b0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",
|
|
2
|
-
maxlength:1024},ten_vt_kd:String,ten_vt_eng:String,ma_dvt:{type:String,required:"M\u00e3 \u0111\u01a1n v\u1ecb t\u00ednh kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",maxlength:32,trim:!0},ma_lvt:{type:String,required:!1,maxlength:32,trim:!0},ma_nvt:{type:String,required:!1,maxlength:1024,trim:!0},ten_nvt:String,ma_nvt2:{type:String,required:!1,maxlength:1024,trim:!0},ma_nvt3:{type:String,required:!1,maxlength:1024,trim:!0},ma_nvt4:{type:String,required:!1,maxlength:1024,trim:!0},
|
|
3
|
-
required:!1,maxlength:32,trim:!0},ten_ncc:String,tg_tk:{type:Boolean,default:!0},kg_kiem_tra_ton_kho:{type:Boolean,default:!1},kg_kiem_tra_ton_kho_tt:{type:Boolean,default:!1},gia_xuat:{type:String,default:"1",maxlength:32},tk_vt:{type:String,default:"1561",maxlength:32},tk_dt:{type:String,maxlength:32},tk_gv:{type:String,maxlength:32},tk_dl:{type:String,maxlength:32},tk_tl:{type:String,maxlength:32},gia_ban_le0:{type:Number,default:0},gia_ban_buon0:{type:Number,
|
|
4
|
-
default:0},gia_ban_buon:{type:Number,default:0},ban_theo_tg:{type:Boolean,default:!1},sp_yeu_cau_che_bien:{type:Boolean,default:!1},sp_yeu_cau_pha_che:{type:Boolean,default:!1},gia_mua:{type:Number,default:0},ty_le_ck0:{type:Number,default:0},tien_ck0:{type:Number,default:0},thue_suat_nk0:{type:Number,default:0},ton_kho_mac_dinh:{type:Number,default:0},ton_kho_online_hien_tai:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},ma_thue:{type:String,maxlength:32},
|
|
5
|
-
maxlength:1024},picture:{type:String,maxlength:1024},picture2:{type:String,maxlength:1024},picture3:{type:String,maxlength:1024},picture4:{type:String,maxlength:1024},picture5:{type:String,maxlength:1024},picture6:{type:String,maxlength:1024},mieu_ta:{type:String},mieu_ta_chi_tiet:{type:String},khuyen_mai:{type:String},bao_hang:{type:String},
|
|
6
|
-
maxlength:1024},exfields:Schema.Types.Mixed,labels:[String],ma_lo_yn:Boolean,ma_tt1_yn:Boolean,ma_tt2_yn:Boolean,ma_tt3_yn:Boolean,thuoc_tinh:Schema.Types.Mixed,cong_doan_sx:[Schema.Types.Mixed],is_service:{type:Boolean,default:!1},is_digital:{type:Boolean,default:!1},is_coin:Boolean,is_point:Boolean,file_digital:String,combo:[],shared:{type:Boolean,default:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
7
|
-
default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]},{toJSON:{virtuals:!0}});
|
|
2
|
+
maxlength:1024},ten_vt_kd:String,ten_vt_eng:String,ma_dvt:{type:String,required:"M\u00e3 \u0111\u01a1n v\u1ecb t\u00ednh kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",maxlength:32,trim:!0},ma_lvt:{type:String,required:!1,maxlength:32,trim:!0},ma_nvt:{type:String,required:!1,maxlength:1024,trim:!0},ten_nvt:String,ma_nvt2:{type:String,required:!1,maxlength:1024,trim:!0},ma_nvt3:{type:String,required:!1,maxlength:1024,trim:!0},ma_nvt4:{type:String,required:!1,maxlength:1024,trim:!0},ma_danh_muc:String,
|
|
3
|
+
ma_danh_muc_cty:String,ma_ncc:{type:String,required:!1,maxlength:32,trim:!0},ten_ncc:String,tg_tk:{type:Boolean,default:!0},kg_kiem_tra_ton_kho:{type:Boolean,default:!1},kg_kiem_tra_ton_kho_tt:{type:Boolean,default:!1},gia_xuat:{type:String,default:"1",maxlength:32},tk_vt:{type:String,default:"1561",maxlength:32},tk_dt:{type:String,maxlength:32},tk_gv:{type:String,maxlength:32},tk_dl:{type:String,maxlength:32},tk_tl:{type:String,maxlength:32},gia_ban_le0:{type:Number,default:0},gia_ban_buon0:{type:Number,
|
|
4
|
+
default:0},gia_ban_le:{type:Number,default:0},gia_ban_buon:{type:Number,default:0},ban_theo_tg:{type:Boolean,default:!1},sp_yeu_cau_che_bien:{type:Boolean,default:!1},sp_yeu_cau_pha_che:{type:Boolean,default:!1},gia_mua:{type:Number,default:0},ty_le_ck0:{type:Number,default:0},tien_ck0:{type:Number,default:0},thue_suat_nk0:{type:Number,default:0},ton_kho_mac_dinh:{type:Number,default:0},ton_kho_online_hien_tai:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},ma_thue:{type:String,maxlength:32},
|
|
5
|
+
picture_slide:{type:String,maxlength:1024},picture:{type:String,maxlength:1024},picture2:{type:String,maxlength:1024},picture3:{type:String,maxlength:1024},picture4:{type:String,maxlength:1024},picture5:{type:String,maxlength:1024},picture6:{type:String,maxlength:1024},mieu_ta:{type:String},mieu_ta_chi_tiet:{type:String},khuyen_mai:{type:String},bao_hang:{type:String},ma_xuat_xu:{type:String},ma_thuong_hieu:{type:String},hot:{type:Boolean},bestseller:{type:Boolean},banner_large:{type:Boolean},banner_small:{type:Boolean},
|
|
6
|
+
tinh_trang:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,labels:[String],ma_kho_df:String,ma_lo_yn:Boolean,ma_tt1_yn:Boolean,ma_tt2_yn:Boolean,ma_tt3_yn:Boolean,thuoc_tinh:Schema.Types.Mixed,cong_doan_sx:[Schema.Types.Mixed],is_service:{type:Boolean,default:!1},is_digital:{type:Boolean,default:!1},is_coin:Boolean,is_point:Boolean,file_digital:String,combo:[],shared:{type:Boolean,default:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
7
|
+
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]},{toJSON:{virtuals:!0}});
|
|
8
8
|
dmvtSchema.validate={tk_vt:validAccount.existsTk,ma_dvt:validator.existsDvt,ma_thue:validator.existsVat,gia_xuat:[function($id_app$$,$gx$$,$callback$$){"1"!=$gx$$&&"2"!=$gx$$&&"3"!=$gx$$?$callback$$(!1):$callback$$(!0)},"Ph\u01b0\u01a1ng ph\u00e1p t\u00ednh gi\u00e1 xu\u1ea5t: 1- Trung b\u00ecnh th\u00e1ng, 2- Nh\u1eadp tr\u01b0\u1edbc xu\u1ea5t tr\u01b0\u1edbc, 3- \u0110\u00edch danh"],tinh_trang:[function($id_app$$,$gx$$,$callback$$){"1"!=$gx$$&&"2"!=$gx$$&&"3"!=$gx$$?$callback$$(!1):$callback$$(!0)},
|
|
9
|
-
"T\u00ecnh tr\u1ea1ng: 1- \u0110ang c\u00f3 h\u00e0ng, 2- S\u1eafp c\u00f3 h\u00e0ng, 3- H\u1ebft h\u00e0ng"]};dmvtSchema.index({
|
|
10
|
-
dmvtSchema.index({
|
|
11
|
-
dmvtSchema.index({
|
|
9
|
+
"T\u00ecnh tr\u1ea1ng: 1- \u0110ang c\u00f3 h\u00e0ng, 2- S\u1eafp c\u00f3 h\u00e0ng, 3- H\u1ebft h\u00e0ng"]};dmvtSchema.index({ten_vt:"text",mieu_ta:"text",ma_vt:"text",ma_vt2:"text",ma_can:"text",ma_thuong_hieu:"text",ma_xuat_xu:"text",ma_nvt:"text",ten_nvt:"text",ma_ncc:"text",ten_ncc:"text",labels:"text",ten_vt_eng:"text"},{name:"product_index"});dmvtSchema.index({id_app:1,ma_vt:1},{unique:!0});dmvtSchema.index({ma_vt2:1});dmvtSchema.index({ma_can:1});dmvtSchema.index({ten_vt:1});dmvtSchema.index({ten_vt_eng:1});
|
|
10
|
+
dmvtSchema.index({ma_dvt:1});dmvtSchema.index({ma_lvt:1});dmvtSchema.index({ma_nvt:1});dmvtSchema.index({ma_danh_muc:1});dmvtSchema.index({ma_danh_muc_cty:1});dmvtSchema.index({ten_nvt:1});dmvtSchema.index({ma_ncc:1});dmvtSchema.index({ten_ncc:1});dmvtSchema.index({ma_kho_df:1});dmvtSchema.index({tg_tk:1});dmvtSchema.index({ma_thuong_hieu:1});dmvtSchema.index({ma_xuat_xu:1});dmvtSchema.index({labels:1});dmvtSchema.index({mieu_ta:1});dmvtSchema.index({id_app:1});dmvtSchema.index({is_service:1});dmvtSchema.index({is_digital:1});
|
|
11
|
+
dmvtSchema.index({date_updated:-1});dmvtSchema.index({date_created:-1});dmvtSchema.index({user_created:1});dmvtSchema.index({ton_kho_online_hien_tai:1});dmvtSchema.index({ten_vt_kd:1});dmvtSchema.index({status:1});dmvtSchema.index({user_created:1,visible_to:1,visible_to_users:1});dmvtSchema.pre("save",function($next$$){const $self$$=this;$self$$.ten_vt?setImmediate(()=>{const $ten_vt_kd$$=unidecode($self$$.ten_vt);$self$$.ten_vt_kd=`${$ten_vt_kd$$}`;$next$$()}):$next$$()});
|
|
12
12
|
const model=mongoose.models.dmvt||mongoose.model("dmvt",dmvtSchema);model.on("index",async function($err$$){$err$$?(console.error("Product index error",$err$$),(await model.aggregate([{$group:{_id:{id_app:"$id_app",ma_vt:"$ma_vt"},count:{$sum:1},ids:{$push:"$_id"}}},{$match:{count:{$gt:1}}}])).forEach($d$$=>{console.info("product duplication",$d$$._id,$d$$.ids);$d$$.ids.forEach(($id$$,$index$$)=>{0<$index$$&&console.info("you should delete product",$id$$)})})):console.info("Product indexing complete")});
|
|
13
13
|
model.referenceKeys={ma_vt:[{model:"sokho",key:"ma_vt",error:"V\u1eadt t\u01b0 ${obj.ten_vt} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong s\u1ed5 kho"},{model:"cdvt",key:"ma_vt",error:"V\u1eadt t\u01b0 ${obj.ten_vt} \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u trong c\u00e2n \u0111\u1ed1i v\u1eadt t\u01b0"}]};module.exports=model;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';const ecomcategoriesScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},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:""}});ecomcategoriesScheam.index({id_app:1});ecomcategoriesScheam.index({status:1});
|
|
2
|
-
module.exports=mongoose.models.ecomcategories||mongoose.model("ecomcategories",ecomcategoriesScheam);
|
|
1
|
+
'use strict';const ecomcategoriesScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},status:{type:Boolean,default:!0},ma_danh_muc:String,ten_danh_muc:String,ma_nganh_hang:String,danh_muc_me:String,sysorder:String,bac:{type:Number},loai_nh:{type:Number,default:1},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});ecomcategoriesScheam.index({id_app:1});ecomcategoriesScheam.index({status:1});
|
|
2
|
+
ecomcategoriesScheam.index({ma_danh_muc:1});ecomcategoriesScheam.index({ten_danh_muc:1});ecomcategoriesScheam.index({ma_nganh_hang:1});ecomcategoriesScheam.index({danh_muc_me:1});ecomcategoriesScheam.index({sysorder:1});ecomcategoriesScheam.index({bac:1});ecomcategoriesScheam.index({loai_nh:1});ecomcategoriesScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.ecomcategories||mongoose.model("ecomcategories",ecomcategoriesScheam);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';const ecomcategoriesScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},status:{type:Boolean,default:!0},ma_danh_muc:String,ten_danh_muc:String,ma_nganh_hang:String,sysorder:String,danh_muc_me:String,bac:{type:Number},loai_nh:{type:Number,default:1},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});ecomcategoriesScheam.index({id_app:1});ecomcategoriesScheam.index({status:1});
|
|
2
|
+
ecomcategoriesScheam.index({ma_danh_muc:1});ecomcategoriesScheam.index({ten_danh_muc:1});ecomcategoriesScheam.index({ma_nganh_hang:1});ecomcategoriesScheam.index({danh_muc_me:1});ecomcategoriesScheam.index({sysorder:1});ecomcategoriesScheam.index({bac:1});ecomcategoriesScheam.index({loai_nh:1});ecomcategoriesScheam.index({id_app:1,ma_danh_muc:1},{unique:!0});ecomcategoriesScheam.index({user_created:1,visible_to:1,visible_to_users:1});
|
|
3
|
+
module.exports=mongoose.models.ecomcategories_cty||mongoose.model("ecomcategories_cty",ecomcategoriesScheam);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';const axios=require("axios"),async=require("async"),fbconversationSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},page_id:{type:String,required:!0,maxlength:1024},id:String,link:String,updated_time:Date,with: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:""}});
|
|
2
|
+
fbconversationSchema.index({id_app:1,page_id:1,id:1},{unique:!0});fbconversationSchema.index({status:1});fbconversationSchema.index({"with.id":1});fbconversationSchema.index({updated_time:-1});fbconversationSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.fbconversation||mongoose.model("fbconversation",fbconversationSchema);
|
|
3
|
+
model.getConvByUserId=async($id_app$$,$page_id$$,$page_access_token$$,$user_id$$)=>{let $conv$$=await global.getModel("fbconversation").findOne({id_app:$id_app$$,"with.id":$user_id$$}).lean();if($conv$$)return $conv$$;let $config$$={method:"get",maxBodyLength:Infinity,url:`https://graph.facebook.com/${$page_id$$}/conversations/?platform=messenger&access_token=${$page_access_token$$}&user_id=${$user_id$$}`,headers:{}};return new Promise(($rs$$,$rj$$)=>{axios.request($config$$).then(async $convs_response$$=>
|
|
4
|
+
{$convs_response$$=($convs_response$$.data||[]).data||[];if(0<$convs_response$$.length){$conv$$=$convs_response$$[0];$conv$$.id_app=$id_app$$;$conv$$.page_id=$page_id$$;try{await model.create($conv$$),console.log("created conversation",$conv$$)}catch($e$$){console.error("Kh\u00f4ng th\u1ec3 l\u01b0u facebook conversation",$e$$,$conv$$)}return $rs$$($conv$$)}$rj$$("Kh\u00f4ng tim th\u1ea5y cu\u1ed9c h\u1ed9i tho\u1ea1i v\u1edbi user n\u00e0y")}).catch($e$$=>{$rj$$($e$$)})})};
|
|
5
|
+
model.getMessage=async($id_app$$,$page_id$$,$conv_id$$,$page_access_token$$,$id$$)=>{let $ex$$=await global.getModel("fbmessage").findOne({id_app:$id_app$$,page_id:$page_id$$,conv_id:$conv_id$$,id:$id$$}).lean();if($ex$$)return $ex$$;let $config$$={method:"get",maxBodyLength:Infinity,url:`https://graph.facebook.com/${$id$$}/?&access_token=${$page_access_token$$}&fields=id,created_time,from,to,message,attachments`,headers:{}};return new Promise(($rs$$,$rj$$)=>{axios.request($config$$).then(async $c_response$$=>
|
|
6
|
+
{$c_response$$=$c_response$$.data;$c_response$$.page_id=$page_id$$;$c_response$$.id_app=$id_app$$;$c_response$$.conv_id=$conv_id$$;try{await global.getModel("fbmessage").create($c_response$$),$c_response$$.from.id!==$page_id$$&&await model.updateOne({id_app:$id_app$$,page_id:$page_id$$,id:$conv_id$$,with:{$exists:!1}},{with:$c_response$$.from})}catch($e$$){console.error("can't sync fb message",$e$$)}$rs$$(null,$c_response$$)}).catch($e$$=>{$rj$$($e$$)})})};
|
|
7
|
+
model.sync=async($id_app$$,$page_id$$,$conv_id$$)=>{const $pageInfo$$=await global.getModel("fbpage").findOne({id_app:$id_app$$,page_id:$page_id$$});if(!$pageInfo$$)throw"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y";console.log("sync conversation",{page_id:$page_id$$,conv_id:$conv_id$$});return new Promise(($resole$$,$reject$$)=>{let $rs$$=[],$next_page$$;async.forever($next$$=>{setImmediate(()=>{axios.request({method:"get",maxBodyLength:Infinity,url:$next_page$$?$next_page$$:`https://graph.facebook.com/${$conv_id$$}/?&access_token=${$pageInfo$$.page_access_token}&fields=messages`,
|
|
8
|
+
headers:{}}).then(async $response$$=>{const $ms$$=(($response$$.data||{}).messages||{}).data||[];$next_page$$=((($response$$.data||{}).messages||{}).paging||{}).next;async.map($ms$$,($m$$,$cb$$)=>{setImmediate(()=>{model.getMessage($id_app$$,$page_id$$,$conv_id$$,$pageInfo$$.page_access_token,$m$$.id).then(async $c$$=>{$cb$$(null,$c$$)}).catch($e$$=>{$cb$$($e$$)})})},($e$$,$_ms$$)=>{if($e$$)return $next$$($e$$);$rs$$=[...$rs$$,...$_ms$$];$next$$($next_page$$?void 0:"end")})}).catch($error$$=>{$next$$($error$$)})})},
|
|
9
|
+
$error$$=>{if("end"!==$error$$)return $reject$$($error$$);$resole$$($rs$$)})})};module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';const fbmessageSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},page_id:{type:String,required:!0,maxlength:1024},conv_id:{type:String,required:!0,maxlength:1024},id:String,created_time:Date,from:{},to:{},message:String,attachments: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:""}});
|
|
2
|
+
fbmessageSchema.index({id_app:1,page_id:1,conv_id:1,id:1},{unique:!0});fbmessageSchema.index({status:1});fbmessageSchema.index({created_time:-1});fbmessageSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.fbmessage||mongoose.model("fbmessage",fbmessageSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';const fbpageSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},page_id:{type:String,required:!0,maxlength:1024},page_title:{type:String},page_access_token:{type:String},page_logo:String,verify_token: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:""}});fbpageSchema.index({id_app:1,page_id:1});fbpageSchema.index({status:1});
|
|
2
|
+
fbpageSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.fbpage||mongoose.model("fbpage",fbpageSchema);module.exports=model;
|
package/server/models/group.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
'use strict';const groupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_type:{type:String,uppercase:!0,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},group_name_en:{type:String,maxlength:1024},group_mother:String,ma_kho:{type:String,maxlength:32},ma_bp:{type:String,maxlength:32},ma_dt:{type:String,maxlength:32},color:{type:String,maxlength:32},muc_tieu_bieu:{type:Number,default:0},ma_doi_tuong_danh_gia_default:{type:String},
|
|
2
|
-
collection_link:String,phu_trach:String,attends:[],dac_thu:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],
|
|
3
|
-
groupSchema.index({id_app:1,group_type:1,ma_dt:1,ma_bp:1});groupSchema.index({group_type:1});groupSchema.index({
|
|
4
|
-
groupSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.group||mongoose.model("group",groupSchema);model.referenceKeys={_id:[{model:"task",key:"nh_cv",error:"Nh\u00f3m n\u00e0y \u0111\u00e3 c\u00f3 ph\u00e1t sinh chi ti\u1ebft. B\u1ea1n c\u1ea7n xo\u00e1 t\u1ea5t c\u1ea3 chi ti\u1ebft tr\u01b0\u1edbc khi xo\u00e1 nh\u00f3m n\u00e0y"}]};
|
|
5
|
-
model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:"Can't find information"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
|
1
|
+
'use strict';const _=require("lodash"),groupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_kind:{type:Number,default:1},group_type:{type:String,uppercase:!0,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},group_name_en:{type:String,maxlength:1024},group_mother:String,ma_kho:{type:String,maxlength:32},ma_bp:{type:String,maxlength:32},ma_dt:{type:String,maxlength:32},color:{type:String,maxlength:32},muc_tieu_bieu:{type:Number,default:0},ma_doi_tuong_danh_gia_default:{type:String},
|
|
2
|
+
id_link:String,collection_link:String,phu_trach:String,sysorder:String,bac:{type:Number},loai_nh:{type:Number,default:1},attends:[],dac_thu:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String],
|
|
3
|
+
dataview_to:{type:Number,default:0},dataview_to_users:[String]});groupSchema.index({id_app:1,group_type:1,ma_dt:1,ma_bp:1});groupSchema.index({group_type:1});groupSchema.index({group_kind:1});groupSchema.index({group_mother:1});groupSchema.index({group_name:1});groupSchema.index({ma_kho:1});groupSchema.index({ma_dt:1});groupSchema.index({ma_bp:1});groupSchema.index({sysorder:1});groupSchema.index({bac:1});groupSchema.index({loai_nh:1});groupSchema.index({phu_trach:1});groupSchema.index({id_link:1});
|
|
4
|
+
groupSchema.index({status:1});groupSchema.index({attends:1});groupSchema.index({group_name:"text",group_type:"text"},{name:"group_index_text"});groupSchema.index({status:1});groupSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.group||mongoose.model("group",groupSchema);model.referenceKeys={_id:[{model:"task",key:"nh_cv",error:"Nh\u00f3m n\u00e0y \u0111\u00e3 c\u00f3 ph\u00e1t sinh chi ti\u1ebft. B\u1ea1n c\u1ea7n xo\u00e1 t\u1ea5t c\u1ea3 chi ti\u1ebft tr\u01b0\u1edbc khi xo\u00e1 nh\u00f3m n\u00e0y"}]};
|
|
5
|
+
model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:"Can't find information"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
|
6
|
+
model.getAllChildrenGroup=async($id_app$$,$nh_kh_rs$$,$chil_condition$$={})=>{let $nh_khs$$;$nh_khs$$=_.isArray($nh_kh_rs$$)?[...$nh_kh_rs$$]:[$nh_kh_rs$$];$nh_kh_rs$$=[...$nh_khs$$];$chil_condition$$=(await model.find({id_app:$id_app$$,group_mother:{$in:$nh_khs$$},...$chil_condition$$},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil_condition$$.length&&($chil_condition$$=await Promise.all($chil_condition$$.map($nh$$=>model.getAllChildrenGroup($id_app$$,
|
|
7
|
+
$nh$$))),$chil_condition$$=$chil_condition$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$nh_kh_rs$$=[...$chil_condition$$,...$nh_kh_rs$$]);return $nh_kh_rs$$};module.exports=model;
|
package/server/models/hd2.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp kho
|
|
2
|
-
|
|
3
|
-
default:0},
|
|
4
|
-
uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,
|
|
5
|
-
maxlength:32},
|
|
1
|
+
'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},tk_vt:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00e0i kho\u1ea3n v\u1eadt t\u01b0",uppercase:!0,maxlength:32},tk_gv:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00e0i kho\u1ea3n gi\u00e1 v\u1ed1n",
|
|
2
|
+
uppercase:!0,maxlength:32},tk_dt:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00e0i kho\u1ea3n doanh thu",uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,
|
|
3
|
+
default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},gia_ban_niem_yet_nt:Number,tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},
|
|
4
|
+
ten_vt_vat:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,
|
|
5
|
+
default:"",uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,combo:Schema.Types.Mixed,
|
|
6
|
+
exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
6
7
|
const hd2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"HD2",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
7
8
|
ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,
|
|
8
9
|
uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},tien_thue_dc_nt:Number,t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,
|
|
9
10
|
trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},promotion:Schema.Types.Mixed,id_contract:{type:String,maxlength:1024},id_dh2:{type:String,maxlength:1024},ma_kho:{type:String,uppercase:!0,
|
|
10
|
-
maxlength:32},
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
maxlength:32},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},tk_ck:String,result_export_einvoice:Schema.Types.Mixed,ma_nv:{type:String,uppercase:!0,maxlength:32},user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},
|
|
12
|
+
ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,
|
|
13
|
+
chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32}});hd2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};
|
|
14
|
+
hd2Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});hd2Schema.index({dien_giai:"text",ma_kh:"text",ten_kh:"text",so_ct:"text"},{name:"hd2_index_text"});hd2Schema.index({ma_ct:1});hd2Schema.index({ma_kh:1});hd2Schema.index({ma_kho:1});hd2Schema.index({"details.ma_vt":1});hd2Schema.index({id_dh2:1});hd2Schema.index({id_contract:1});hd2Schema.index({user_created:1,date_created:-1});hd2Schema.index({date_updated:-1});hd2Schema.index({user_nv:1});hd2Schema.index({user_gt:1});hd2Schema.index({user_ctv:1});
|
|
15
|
+
hd2Schema.index({user_ql:1});hd2Schema.index({status:1});hd2Schema.index({user_created:1,visible_to:1,visible_to_users:1});hd2Schema.index({trang_thai:1});module.exports=mongoose.models.hd2||mongoose.model("hd2",hd2Schema);
|
package/server/models/hd3.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({id_hd:{type:String,maxlength:1024},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},sl_nhap:{type:Number,default:0},pn_gia_tb:{type:Boolean,default:!1},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_nhap_nt:{type:Number,
|
|
2
|
-
default:0},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tk_tl:{type:String,uppercase:!0,maxlength:32},id_reason:{type:String,maxlength:32},
|
|
3
|
-
default:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
tk_thue_co:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du_thue:{type:String,required:!0,uppercase:!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,uppercase:!0,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},
|
|
7
|
-
line:{type:Number,default:0}});vatraSchema.validate={tk_thue_co:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat};
|
|
2
|
+
default:0},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tk_tl:{type:String,uppercase:!0,maxlength:32},id_reason:{type:String,maxlength:32},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,
|
|
3
|
+
default:0},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ma_kh_hoa_hong:String,user_nv:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ma_kh_hoa_hong_gt:String,user_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ma_ctv:String,user_ctv:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,
|
|
4
|
+
chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,ma_kh_hoa_hong_ql:String,user_ql:String,combo:Schema.Types.Mixed,ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",
|
|
5
|
+
uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
8
6
|
const hd3Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"HD3",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
9
7
|
ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ten_kh:String,ong_ba:{type:String,default:"",maxlength:1024},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32},tk_co:{type:String,uppercase:!0,default:"",maxlength:32},tk_dt:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},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,
|
|
10
8
|
uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},exfields:Schema.Types.Mixed,trang_thai:{type:String,
|
|
11
|
-
maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},ma_nv:{type:String,uppercase:!0,maxlength:32},user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,
|
|
10
|
+
tk_no_hoa_hong:String,tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,
|
|
11
|
+
chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean});hd3Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_co:validAccount.existsTk};hd3Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});
|
|
12
|
+
hd3Schema.index({dien_giai:"text",ma_kh:"text",ten_kh:"text",so_ct:"text",ong_ba:"text"},{name:"hd3_index_text"});hd3Schema.index({ma_ct:1});hd3Schema.index({ma_kh:1});hd3Schema.index({ma_kho:1});hd3Schema.index({user_created:1,date_created:-1});hd3Schema.index({date_updated:-1});hd3Schema.index({status:1});hd3Schema.index({user_created:1,visible_to:1,visible_to_users:1});hd3Schema.index({trang_thai:1});hd3Schema.index({user_nv:1});hd3Schema.index({user_gt:1});hd3Schema.index({user_ctv:1});hd3Schema.index({user_ql:1});
|
|
13
|
+
hd3Schema.index({"details.user_nv":1});hd3Schema.index({"details.user_gt":1});hd3Schema.index({"details.user_ctv":1});hd3Schema.index({"details.user_ql":1});module.exports=mongoose.models.hd3||mongoose.model("hd3",hd3Schema);
|