flexbiz-server 12.6.13 → 12.6.16
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/README.md +439 -4
- package/package.json +4 -3
- package/server/agents/agents.js +1 -0
- package/server/agents/ai_memory_manager.js +6 -0
- package/server/agents/ceoAgent.js +43 -0
- package/server/agents/chatController.js +6 -0
- package/server/agents/cskhAgent.js +43 -0
- package/server/agents/flowAgent.js +43 -0
- package/server/agents/prompts/ceo.js +2 -0
- package/server/agents/prompts/flow.js +2 -0
- package/server/agents/staffAgent.js +44 -0
- package/server/agents/tools/financeTools.js +57 -0
- package/server/agents/tools/flowTools.js +36 -0
- package/server/agents/tools/kpiTools.js +104 -0
- package/server/agents/tools/masterDataTools.js +74 -0
- package/server/agents/tools/okrTools.js +21 -0
- package/server/agents/tools/ragTools.js +21 -0
- package/server/agents/tools/reportTools.js +43 -0
- package/server/agents/tools/staffTools.js +13 -0
- package/server/agents/tools/stockTools.js +41 -0
- package/server/agents/tools/systemTools.js +52 -0
- package/server/agents/tools/taskTools.js +23 -0
- package/server/agents/tools/utils.js +57 -0
- package/server/app.js +7 -7
- package/server/controllers/controller.js +31 -29
- package/server/controllers/controllerRPT.js +31 -29
- package/server/controllers/findHandler.js +22 -21
- package/server/controllers/importFromExcelHandler.js +17 -14
- package/server/controllers/importHandler.js +26 -41
- package/server/controllers/importHandler_old.js +41 -0
- package/server/controllers/rptHandler.js +14 -11
- package/server/controllers/viewHandler.js +7 -7
- package/server/flow/FlowEngine.js +49 -45
- package/server/flow/WebhookManager.js +1 -1
- package/server/flow/handlers.js +2 -2
- package/server/flow/nodes/userform.js +28 -0
- package/server/flow/utils.js +12 -4
- package/server/global.js +4 -3
- package/server/libs/cdpstk.js +1 -1
- package/server/libs/ckvt.js +12 -11
- package/server/libs/ckvtcapphat.js +5 -5
- package/server/libs/ckvtnpp.js +8 -8
- package/server/libs/ckvttt.js +6 -5
- package/server/libs/ctvt.js +7 -6
- package/server/libs/ctvtnpp.js +7 -6
- package/server/libs/ctvttt.js +6 -6
- package/server/libs/databanle.js +17 -18
- package/server/libs/databanle_old.js +18 -0
- package/server/libs/databanletheongay.js +25 -29
- package/server/libs/dktk.js +3 -3
- package/server/libs/dkvt.js +11 -11
- package/server/libs/dkvtnpp.js +7 -6
- package/server/libs/dkvttt.js +7 -6
- package/server/libs/docs.js +72 -36
- package/server/libs/dtbanletheosp.js +16 -19
- package/server/libs/fifo_dk.js +8 -0
- package/server/libs/fifo_group.js +4 -0
- package/server/libs/fifo_trace_query.js +12 -0
- package/server/libs/getGiaban.js +59 -70
- package/server/libs/getGiaban_old.js +70 -0
- package/server/libs/joinData.js +3 -3
- package/server/libs/joinData_bk.js +44 -0
- package/server/libs/kpistatus.js +24 -17
- package/server/libs/permission.js +54 -56
- package/server/libs/permission_old.js +58 -0
- package/server/libs/post-book.js +1 -1
- package/server/libs/post-socai.js +2 -1
- package/server/libs/post-sokho.js +11 -11
- package/server/libs/prototypes.js +13 -12
- package/server/libs/queryBuilding.js +11 -10
- package/server/libs/redis-cache.js +22 -10
- package/server/libs/sctcnkh.js +19 -17
- package/server/libs/socaitk.js +1 -1
- package/server/libs/thnxt.js +17 -14
- package/server/libs/thnxtnpp.js +8 -8
- package/server/libs/thnxttt.js +8 -7
- package/server/libs/tinhgia1vt_fifo.js +22 -0
- package/server/libs/tinhgiafifo.js +28 -0
- package/server/libs/utils.js +37 -19
- package/server/models/app.js +1 -1
- package/server/models/approve.js +8 -8
- package/server/models/cacheDataReport.js +2 -2
- package/server/models/cacheSessionReport.js +5 -1
- package/server/models/cdvt.js +2 -2
- package/server/models/checkin.js +2 -2
- package/server/models/chitietluongds.js +1 -1
- package/server/models/contract.js +1 -1
- package/server/models/csluongtheods.js +2 -2
- package/server/models/ctds2.js +7 -6
- package/server/models/custom_report.js +1 -0
- package/server/models/dmdt.js +2 -2
- package/server/models/dmkho.js +5 -4
- package/server/models/dmnvt.js +5 -4
- package/server/models/fifo_dk.js +2 -0
- package/server/models/fifo_lot.js +3 -0
- package/server/models/fifo_trace.js +4 -0
- package/server/models/flowpending.js +2 -0
- package/server/models/group.js +3 -5
- package/server/models/listinfo.js +61 -33
- package/server/models/schedule.js +4 -3
- package/server/models/task.js +1 -1
- package/server/models/trangthai.js +2 -2
- package/server/modules/lists/bg-fifo_dk.js +8 -0
- package/server/modules/lists/ls-checkin.js +1 -1
- package/server/modules/lists/ls-customer.js +23 -26
- package/server/modules/lists/ls-dmbp.js +5 -5
- package/server/modules/lists/ls-dmkho.js +7 -1
- package/server/modules/lists/ls-dmnhtask.js +1 -1
- package/server/modules/lists/ls-dmvt.js +52 -70
- package/server/modules/lists/ls-flowpending.js +3 -0
- package/server/modules/lists/ls-participant.js +6 -4
- package/server/modules/lists/ls-task.js +6 -6
- package/server/modules/reports/calc-tinhgiafifo.js +8 -0
- package/server/modules/reports/calc-tinhluong.js +17 -16
- package/server/modules/reports/rp-baoCaoFifoKy.js +1 -0
- package/server/modules/reports/rp-congviectheobp.js +4 -4
- package/server/modules/reports/rp-congviectheodt.js +1 -1
- package/server/modules/reports/rp-congviectheokh.js +1 -1
- package/server/modules/reports/rp-congviectheonv.js +1 -1
- package/server/modules/reports/rp-dtbanletheoct.js +22 -23
- package/server/modules/reports/rp-dtbanletheokh.js +17 -20
- package/server/modules/reports/rp-dtbanletheokho.js +15 -18
- package/server/modules/reports/rp-hoahong.js +1 -1
- package/server/modules/reports/rp-sctvt.js +1 -1
- package/server/modules/reports/rp-sosanhkhvatt2.js +1 -1
- package/server/modules/reports/rp-thnxt.js +8 -8
- package/server/modules/reports/rp-tongquannvbh.js +1 -1
- package/server/modules/systems/sys-app.js +5 -5
- package/server/modules/vouchers/vo-so1.js +14 -14
package/server/libs/getGiaban.js
CHANGED
|
@@ -1,70 +1,59 @@
|
|
|
1
|
-
const dmvt=global.getModel("dmvt"),dmgiaban=global.getModel("dmgiaban"),so1=global.getModel("so1"),pbl=global.getModel("pbl"),dmchietkhau=global.getModel("dmchietkhau"),dmkhuyenmai=global.getModel("dmkhuyenmai"),customer=global.getModel("customer"),
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
$g$$.cks.sort(($a$$,$b$$)=>$a$$.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
$
|
|
14
|
-
$condition$$.
|
|
15
|
-
|
|
16
|
-
$
|
|
17
|
-
|
|
18
|
-
$
|
|
19
|
-
|
|
20
|
-
$
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
$
|
|
25
|
-
$
|
|
26
|
-
$
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
null]}
|
|
30
|
-
$
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
$
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
$
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
$
|
|
42
|
-
$
|
|
43
|
-
$
|
|
44
|
-
$
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
$
|
|
52
|
-
(
|
|
53
|
-
|
|
54
|
-
$
|
|
55
|
-
$
|
|
56
|
-
|
|
57
|
-
(!$
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
[];$rs$$.price.discount.forEach($d$$=>{$d$$.tien_ck&&$rs$$.price.gia_ban_le_ct&&($d$$.ty_le_ck=$d$$.tien_ck/$rs$$.price.gia_ban_le_ct*100);$d$$.sl_tu=$d$$.sl_tu||0;$d$$.sl_den=$d$$.sl_den||0;$d$$.gt_hd_tu=$d$$.gt_hd_tu||0;$d$$.gt_hd_den=$d$$.gt_hd_den||0;$discounts$$.push($d$$)});$rs$$.price.discount=$discounts$$;let $t_gt_hd$$=$condition$$.t_gt_hd||0,$t_tien_ntt$$=$condition$$.t_tien_ntt||0,$t_so_luong_ntt$$=$condition$$.t_so_luong_ntt||0,$default_cks$$=$discounts$$.filter($d$$=>(!$d$$.gt_hd_tu||
|
|
61
|
-
$d$$.gt_hd_tu<=$t_gt_hd$$)&&(!$d$$.gt_hd_den||$d$$.gt_hd_den>$t_gt_hd$$)&&!$d$$.mua_them&&$condition$$.so_luong>=$d$$.sl_tu&&(!$d$$.sl_den||$d$$.sl_den>$condition$$.so_luong)&&(!$d$$.t_sl_tu||$d$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$d$$.t_sl_den||$d$$.t_sl_den>$condition$$.t_so_luong)&&(!$d$$.t_sl_ntt_tu||$d$$.t_sl_ntt_tu<=$t_so_luong_ntt$$)&&(!$d$$.t_sl_ntt_den||$d$$.t_sl_ntt_den>$t_so_luong_ntt$$)&&(!$d$$.t_tien_ntt_tu||$d$$.t_tien_ntt_tu<=$t_tien_ntt$$)&&(!$d$$.t_tien_ntt_den||$d$$.t_tien_ntt_den>
|
|
62
|
-
$t_tien_ntt$$));var $default_ck_groups$jscomp$2_i$$;$condition$$.id_cs_ck&&($default_ck_groups$jscomp$2_i$$=$default_cks$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs_ck));!$default_ck_groups$jscomp$2_i$$&&$default_cks$$.length>0&&($default_ck_groups$jscomp$2_i$$=[...(new Set($default_cks$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$default_cks$$.filter($d$$=>($d$$.ma_nhom||"")==($ma_nhom$$||""))})),$default_ck_groups$jscomp$2_i$$=await calcDefaultDiscount($condition$$.id_app,
|
|
63
|
-
$default_ck_groups$jscomp$2_i$$));$default_ck_groups$jscomp$2_i$$&&(underscore.extend($rs$$.price,{sl_tu:$default_ck_groups$jscomp$2_i$$.sl_tu,ty_le_ck:$default_ck_groups$jscomp$2_i$$.ty_le_ck||0,tien_ck:$default_ck_groups$jscomp$2_i$$.tien_ck,gt_hd_tu:$default_ck_groups$jscomp$2_i$$.gt_hd_tu,gt_hd_den:$default_ck_groups$jscomp$2_i$$.gt_hd_den,sl_ap_dung:$default_ck_groups$jscomp$2_i$$.sl_ap_dung,so_tien_max:$default_ck_groups$jscomp$2_i$$.so_tien_max,id_cs:$default_ck_groups$jscomp$2_i$$._id}),$rs$$.tien_ck_tmp=
|
|
64
|
-
$rs$$.tien_ck,$rs$$.tien_ck_tmp||($rs$$.tien_ck_tmp=utils.round($rs$$.price.gia_ban_le_ct*$rs$$.ty_le_ck/100,2)),$rs$$.price.gia_ban_le_sau_ck_tmp=Math.max(0,$rs$$.price.gia_ban_le-$rs$$.tien_ck_tmp));$default_ck_groups$jscomp$2_i$$=underscore.filter($rs$$.discount,$d$$=>$d$$.sl_tu>1).sort(function($a$$,$b$$){return $b$$.ty_le_ck-$a$$.ty_le_ck});$default_ck_groups$jscomp$2_i$$.length>0&&($rs$$.price.ck_sl_tu2=$default_ck_groups$jscomp$2_i$$)}if($condition$$.get_promotion!=0){$rs$$.promotion=$rs$$.promotion_vt;
|
|
65
|
-
$rs$$.promotion.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.promotion&&$rs$$.promotion.forEach($p$$=>{delete $p$$.status;delete $p$$.user_created;delete $p$$.user_updated;delete $p$$.date_created;delete $p$$.date_updated;delete $p$$.exfields;delete $p$$.id_app;delete $p$$.dmkh;delete $p$$.dmkho;delete $p$$.dmnvt;delete $p$$.dmvt;delete $p$$.__v});$rs$$.price.promotion=$rs$$.promotion||[];$condition$$.ma_ct?($rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct||$p$$.chi_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())>=
|
|
66
|
-
0),$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.khong_su_dung_cho_ct||$p$$.khong_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())<0)):$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct&&!$p$$.khong_su_dung_cho_ct);for($default_ck_groups$jscomp$2_i$$=0;$default_ck_groups$jscomp$2_i$$<$rs$$.price.promotion.length;$default_ck_groups$jscomp$2_i$$++)$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$rs$$.price.promotion[$default_ck_groups$jscomp$2_i$$],
|
|
67
|
-
await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).asyncJoinModel2($condition$$.id_app,dmvt,{where:"ma_vt",fields:["ten_vt","picture"]}),await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).filter($d$$=>$d$$.ma_tt1).asyncJoinModel2($condition$$.id_app,"dmtt",{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),setFields:($item$$,$ref$$)=>{$item$$.thuoc_tinh=$ref$$}});let $promotions_df$$=$rs$$.price.promotion.filter($p$$=>$p$$.details_km&&
|
|
68
|
-
$p$$.details_km.length>0&&$p$$.sl_tu<=$condition$$.so_luong&&(!$p$$.sl_den||$p$$.sl_den>=$condition$$.so_luong||$p$$.sl_den===$p$$.sl_tu)&&(!$p$$.t_sl_tu||$p$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$p$$.t_sl_den||$p$$.t_sl_den>$condition$$.t_so_luong)&&(!$p$$.t_sl_ntt_tu||$p$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$p$$.t_sl_ntt_den||$p$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&(!$p$$.t_tien_ntt_tu||$p$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$p$$.t_tien_ntt_den||$p$$.t_tien_ntt_den>$condition$$.t_tien_ntt));
|
|
69
|
-
var $groups$$;$condition$$.id_cs&&($groups$$=$promotions_df$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs));!$groups$$&&$promotions_df$$.length>0&&($promotions_df$$.forEach($p$$=>{$p$$.t_sl_km=($p$$.details_km||[]).map($d$$=>$d$$.sl_km||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)}),$groups$$=[...(new Set($promotions_df$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$promotions_df$$.filter($d$$=>($d$$.ma_nhom||"")==$ma_nhom$$)})),$groups$$=await calcDefaultPromotion($condition$$.id_app,
|
|
70
|
-
$groups$$));$rs$$.price.default_promotion=$groups$$}$fn$$(null,$rs$$.price)})}else $fn$$(`Condition required ma_vt,id_app. Current condition ${JSON.stringify($condition$$)}`)};
|
|
1
|
+
const dmvt=global.getModel("dmvt"),dmgiaban=global.getModel("dmgiaban"),so1=global.getModel("so1"),pbl=global.getModel("pbl"),dmchietkhau=global.getModel("dmchietkhau"),dmkhuyenmai=global.getModel("dmkhuyenmai"),customer=global.getModel("customer"),utils=require("./utils"),_=require("lodash"),round=0,_cache=new Map,DEFAULT_TTL_MS=18E5;function cacheGet($key$$){const $entry$$=_cache.get($key$$);return $entry$$?Date.now()>$entry$$.expireAt?(_cache.delete($key$$),null):$entry$$.value:null}
|
|
2
|
+
function cacheSet($key$$,$value$$,$ttlMs$$=DEFAULT_TTL_MS){_cache.set($key$$,{value:$value$$,expireAt:Date.now()+$ttlMs$$});if(_cache.size%500===0){$key$$=Date.now();for(const [$k$$,$v$$]of _cache)$key$$>$v$$.expireAt&&_cache.delete($k$$)}}
|
|
3
|
+
function buildCacheKey($condition_relevant$$){$condition_relevant$$={id_app:$condition_relevant$$.id_app,ma_vt:$condition_relevant$$.ma_vt,ma_kh:$condition_relevant$$.ma_kh,ma_kho:$condition_relevant$$.ma_kho,ma_tt1:$condition_relevant$$.ma_tt1,ma_tt2:$condition_relevant$$.ma_tt2,ma_tt3:$condition_relevant$$.ma_tt3,so_luong:$condition_relevant$$.so_luong,t_so_luong:$condition_relevant$$.t_so_luong,t_so_luong_ntt:$condition_relevant$$.t_so_luong_ntt,t_tien_ntt:$condition_relevant$$.t_tien_ntt,ma_dvt_sd:$condition_relevant$$.ma_dvt_sd,
|
|
4
|
+
ngay_ct:$condition_relevant$$.ngay_ct?(new Date($condition_relevant$$.ngay_ct)).toDateString():null,online:$condition_relevant$$.online,offline:$condition_relevant$$.offline,ma_ct:$condition_relevant$$.ma_ct,id_cs:$condition_relevant$$.id_cs,id_cs_ck:$condition_relevant$$.id_cs_ck,t_gt_hd:$condition_relevant$$.t_gt_hd,get_price:$condition_relevant$$.get_price,get_discount:$condition_relevant$$.get_discount,get_promotion:$condition_relevant$$.get_promotion};return`gia_ban:${JSON.stringify($condition_relevant$$)}`}
|
|
5
|
+
const getSLDaBanCKs=async $items$$=>{if(!$items$$.length)return $items$$;var $ids_slMap$$=$items$$.map($item$$=>$item$$._id.toString());const $allSo1$$=await so1.find({id_app:$items$$[0].id_app,"details.id_cs":{$in:$ids_slMap$$},trang_thai:{$nin:["9","10","LCT"]}},{"details.id_cs":1,"details.sl_xuat":1}).lean();$ids_slMap$$=new Map;for(var $doc_slList$$ of $allSo1$$)for(const $d$$ of $doc_slList$$.details||[])$d$$.id_cs&&($ids_slMap$$.has($d$$.id_cs)||$ids_slMap$$.set($d$$.id_cs,[]),$ids_slMap$$.get($d$$.id_cs).push($d$$.sl_xuat||
|
|
6
|
+
0));for(const $item$$ of $items$$)$doc_slList$$=$ids_slMap$$.get($item$$._id.toString())||[],$item$$.sl_da_ban=$doc_slList$$.reduce(($s$$,$sl$$)=>$s$$+($item$$.sl_ap_dung?Math.min($sl$$,$item$$.sl_ap_dung):$sl$$),0),$item$$.sl_con_lai=Math.max(($item$$.tong_sl_ap_dung||0)-$item$$.sl_da_ban,0),$item$$.sl_ap_dung=$item$$.tong_sl_ap_dung?Math.min($item$$.sl_ap_dung,$item$$.sl_con_lai):$item$$.sl_ap_dung;return $items$$},calcDefaultDiscount=async($id_app_rs$$,$groups$$)=>{await $groups$$.filter($d$$=>
|
|
7
|
+
$d$$.ma_nhom&&!$d$$.phuong_phap_ap_dung).asyncJoinModel2($id_app_rs$$,"dmnckkm",{where:{ma_nhom:"_id"},fields:["phuong_phap_ap_dung","nh_me",{stt_uu_tien:"stt"}]});$groups$$.forEach($g$$=>{switch($g$$.phuong_phap_ap_dung){case "TOI_THIEU":$g$$.ck=$g$$.cks.sort(($a$$,$b$$)=>$a$$.ty_le_ck-$b$$.ty_le_ck)[0];break;case "TOI_DA":$g$$.ck=$g$$.cks.sort(($a$$,$b$$)=>$b$$.ty_le_ck-$a$$.ty_le_ck)[0];break;case "CONG":$g$$.ck={ty_le_ck:$g$$.cks.reduce(($s$$,$c$$)=>$s$$+$c$$.ty_le_ck,0),tien_ck:$g$$.cks.reduce(($s$$,
|
|
8
|
+
$c$$)=>$s$$+($c$$.tien_ck||0),0)};break;default:$g$$.ck=$g$$.cks.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0))[0]}$g$$.ck&&($g$$.ck.stt_uu_tien=$g$$.stt_uu_tien);delete $g$$.cks});if($groups$$.length===1)$id_app_rs$$=$groups$$[0].ck;else if($groups$$.find($g$$=>$g$$.nh_me)){$groups$$=$groups$$.map($g$$=>{$g$$.nh_me&&($g$$.ma_nhom=$g$$.nh_me,$g$$.nh_me="",$g$$.phuong_phap_ap_dung="");return $g$$});const $new_groups$$=[...(new Set($groups$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>
|
|
9
|
+
({ma_nhom:$ma_nhom$$,cks:$groups$$.filter($d$$=>($d$$.ma_nhom||"")===$ma_nhom$$).map($g$$=>$g$$.ck)}));$id_app_rs$$=await calcDefaultDiscount($id_app_rs$$,$new_groups$$)}else $id_app_rs$$=$groups$$.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0))[0];return $id_app_rs$$},calcDefaultPromotion=async($id_app$jscomp$1_rs$$,$groups$$)=>{await $groups$$.filter($d$$=>$d$$.ma_nhom&&!$d$$.phuong_phap_ap_dung).asyncJoinModel2($id_app$jscomp$1_rs$$,"dmnckkm",{where:{ma_nhom:"_id"},fields:["phuong_phap_ap_dung",
|
|
10
|
+
"nh_me",{stt_uu_tien:"stt"}]});$groups$$.forEach($g$$=>{var $ck_ck$jscomp$1_ck$$=$g$$.cks.sort(($a$$,$b$$)=>$a$$.t_sl_km-$b$$.t_sl_km);const $sorted_max$$=$g$$.cks.sort(($a$$,$b$$)=>$b$$.t_sl_km-$a$$.t_sl_km),$sorted_stt$$=$g$$.cks.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0));switch($g$$.phuong_phap_ap_dung){case "TOI_THIEU":$ck_ck$jscomp$1_ck$$=$ck_ck$jscomp$1_ck$$[0];$g$$.ck=$ck_ck$jscomp$1_ck$$?{t_sl_km:$ck_ck$jscomp$1_ck$$.t_sl_km||0,promotions:[$ck_ck$jscomp$1_ck$$],stt_uu_tien:$g$$.stt_uu_tien}:
|
|
11
|
+
{t_sl_km:0,promotions:[],stt_uu_tien:$g$$.stt_uu_tien};break;case "TOI_DA":$ck_ck$jscomp$1_ck$$=$sorted_max$$[0];$g$$.ck=$ck_ck$jscomp$1_ck$$?{t_sl_km:$ck_ck$jscomp$1_ck$$.t_sl_km||0,promotions:[$ck_ck$jscomp$1_ck$$],stt_uu_tien:$g$$.stt_uu_tien}:{t_sl_km:0,promotions:[],stt_uu_tien:$g$$.stt_uu_tien};break;case "CONG":$g$$.ck={t_sl_km:$g$$.cks.reduce(($s$$,$c$$)=>$s$$+$c$$.t_sl_km,0),promotions:$g$$.cks,stt_uu_tien:$g$$.stt_uu_tien};break;default:$ck_ck$jscomp$1_ck$$=$sorted_stt$$[0],$g$$.ck=$ck_ck$jscomp$1_ck$$?
|
|
12
|
+
{t_sl_km:$ck_ck$jscomp$1_ck$$.t_sl_km||0,promotions:[$ck_ck$jscomp$1_ck$$],stt_uu_tien:$g$$.stt_uu_tien}:{t_sl_km:0,promotions:[],stt_uu_tien:$g$$.stt_uu_tien}}});if($groups$$.length===1)$id_app$jscomp$1_rs$$=$groups$$[0].ck.promotions;else if($groups$$.find($g$$=>$g$$.nh_me)){$groups$$=$groups$$.map($g$$=>{$g$$.nh_me&&($g$$.ma_nhom=$g$$.nh_me,$g$$.nh_me="",$g$$.phuong_phap_ap_dung="");return $g$$});const $new_groups$$=[...(new Set($groups$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,
|
|
13
|
+
cks:$groups$$.filter($d$$=>($d$$.ma_nhom||"")===$ma_nhom$$).map($g$$=>$g$$.ck)}));$id_app$jscomp$1_rs$$=await calcDefaultPromotion($id_app$jscomp$1_rs$$,$new_groups$$)}else $id_app$jscomp$1_rs$$=$groups$$.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0))[0].ck.promotions;return $id_app$jscomp$1_rs$$},matchNhomKh=($item$$,$condition$$)=>(!$item$$.ma_kh||$condition$$.ma_kh===$item$$.ma_kh)&&(!$item$$.nh_kh||($condition$$.nh_kh_me||[]).includes($item$$.nh_kh))&&(!$item$$.nh_kh2?.length||
|
|
14
|
+
($condition$$.nh_kh2_me||[]).some($nh$$=>$item$$.nh_kh2.includes($nh$$)))&&(!$item$$.nh_kh3?.length||($condition$$.nh_kh3_me||[]).some($nh$$=>$item$$.nh_kh3.includes($nh$$)))&&(!$item$$.nh_kh4?.length||($condition$$.nh_kh4_me||[]).some($nh$$=>$item$$.nh_kh4.includes($nh$$)))&&(!$item$$.nh_kh5?.length||($condition$$.nh_kh5_me||[]).some($nh$$=>$item$$.nh_kh5.includes($nh$$))),matchThuocTinh=($item$$,$condition$$)=>(!$item$$.ma_tt1||$condition$$.ma_tt1===$item$$.ma_tt1)&&(!$item$$.ma_tt2||$condition$$.ma_tt2===
|
|
15
|
+
$item$$.ma_tt2)&&(!$item$$.ma_tt3||$condition$$.ma_tt3===$item$$.ma_tt3)&&(!$item$$.nh_tt||($condition$$.nh_tt_me||[]).includes($item$$.nh_tt))&&(!$item$$.nh_tt2?.length||($condition$$.nh_tt2_me||[]).some($nh$$=>$item$$.nh_tt2.includes($nh$$)))&&(!$item$$.nh_tt3?.length||($condition$$.nh_tt3_me||[]).some($nh$$=>$item$$.nh_tt3.includes($nh$$)))&&(!$item$$.nh_tt4?.length||($condition$$.nh_tt4_me||[]).some($nh$$=>$item$$.nh_tt4.includes($nh$$)))&&(!$item$$.nh_tt5?.length||($condition$$.nh_tt5_me||[]).some($nh$$=>
|
|
16
|
+
$item$$.nh_tt5.includes($nh$$))),getMotherOrEmpty=($id_app$$,$val$$)=>$val$$?global.getModel("group").getAllMotherGroup($id_app$$,$val$$):Promise.resolve([]);
|
|
17
|
+
module.exports=async($condition$$,$fn$$,$discounts_gbMacDinh_gbTheoSl_groups$$={},$cacheKey_cacheOptions$$={})=>{const {enabled:$cacheEnabled$$=!0,ttl:$cacheTtl$$=DEFAULT_TTL_MS,forceRefresh:$cacheForceRefresh$$=!1}=$cacheKey_cacheOptions$$;!$condition$$.ma_vt&&$condition$$.vt&&($condition$$.ma_vt=$condition$$.vt.ma_vt);$condition$$.so_luong=$condition$$.so_luong||$condition$$.sl_xuat||1;$condition$$.t_so_luong=$condition$$.t_so_luong||$condition$$.t_sl_xuat||$condition$$.t_sl||$condition$$.so_luong;
|
|
18
|
+
$condition$$.t_so_luong_ntt=$condition$$.t_so_luong_ntt||$condition$$.t_sl_xuat_ntt||$condition$$.t_sl_ntt||$condition$$.so_luong_ntt||0;$condition$$.t_tien_ntt=$condition$$.t_tien_ntt||0;$condition$$.ngay_ct=$condition$$.ngay_ct?new Date($condition$$.ngay_ct):new Date;if(!$condition$$.ma_vt||!$condition$$.id_app)return $fn$$(`Condition required ma_vt,id_app. Current condition ${JSON.stringify($condition$$)}`);if(($cacheKey_cacheOptions$$=$cacheEnabled$$?buildCacheKey($condition$$):null)&&!$cacheForceRefresh$$){var $cached_he_so_qd$$=
|
|
19
|
+
cacheGet($cacheKey_cacheOptions$$);if($cached_he_so_qd$$)return Logger.info("[getGiaBan] cache hit",$cacheKey_cacheOptions$$),$fn$$(null,$cached_he_so_qd$$)}$cached_he_so_qd$$=1;if($condition$$.ma_dvt_sd){var $VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$=await global.getModel("dmqddvt").findOne({id_app:$condition$$.id_app,ma_vt:$condition$$.ma_vt,ma_dvt:$condition$$.ma_dvt_sd}).lean();$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$&&($cached_he_so_qd$$=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.mau&&$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.tu?
|
|
20
|
+
$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.tu/$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.mau:$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.ty_le_qd||1)}$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$={ma_vt:1,ma_nvt:1,ma_nvt2:1,ma_nvt3:1,ma_nvt4:1,ma_danh_muc:1,gia_ban_le0:1,gia_ban_buon0:1,gia_ban_le:1,gia_ban_buon:1,ty_le_ck0:1,tien_ck0:1,ma_nt:1,gia_ban_chua_thue:1,ma_thue:1,ma_nt0:1};let $vt$$=$condition$$.vt;if(!$vt$$||!$vt$$.is_full&&($vt$$.gia_ban_le===void 0||$vt$$.gia_ban_le0===void 0||$vt$$.ty_le_ck0===
|
|
21
|
+
void 0||$vt$$.tien_ck0===void 0||$vt$$.ma_nt0===void 0||$vt$$.ma_thue===void 0))if($vt$$=await dmvt.findOne({ma_vt:$condition$$.ma_vt,id_app:$condition$$.id_app},$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$).lean(),!$vt$$)return $fn$$("Not found product: "+$condition$$.ma_vt);for(var $f_khuyenmais_lan_mua_thu$$ of["ma_nvt2","ma_nvt3","ma_nvt4"])$vt$$[$f_khuyenmais_lan_mua_thu$$]?typeof $vt$$[$f_khuyenmais_lan_mua_thu$$]==="string"&&($vt$$[$f_khuyenmais_lan_mua_thu$$]=[$vt$$[$f_khuyenmais_lan_mua_thu$$]]):
|
|
22
|
+
$vt$$[$f_khuyenmais_lan_mua_thu$$]=[];const [$thuoc_tinh1$$,$_custFromUser$$]=await Promise.all([(async()=>{let $thuoc_tinh1$$=null;for(const [$loai$$,$key$$]of[["1","ma_tt1"],["2","ma_tt2"],["3","ma_tt3"]]){if(!$condition$$[$key$$])continue;const $tt$$=await global.getModel("dmtt").findOne({id_app:$vt$$.id_app_vt||$condition$$.id_app,ma_vt:$vt$$.ma_vt,status:!0,ma_tt:$condition$$[$key$$],loai_tt:$loai$$}).lean();if($tt$$){$vt$$.gia_ban_le0=$tt$$.gia_ban_le||$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0;
|
|
23
|
+
$vt$$.gia_ban_buon0=$tt$$.gia_ban_buon||$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||0;$loai$$==="1"&&($thuoc_tinh1$$=$tt$$);break}}return $thuoc_tinh1$$})(),(async()=>{let $_cust$$=null;if($condition$$.user&&!$condition$$.ma_kh)try{if($_cust$$=await customer.findOne({id_app:$condition$$.id_app,of_user:$condition$$.user.email},{ma_kh:1,nh_kh:1,nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1}).lean())$condition$$.ma_kh=$_cust$$.ma_kh,$condition$$.nh_kh=$_cust$$.nh_kh,$condition$$.nh_kh2=$_cust$$.nh_kh2,$condition$$.nh_kh3=
|
|
24
|
+
$_cust$$.nh_kh3,$condition$$.nh_kh4=$_cust$$.nh_kh4,$condition$$.nh_kh5=$_cust$$.nh_kh5}catch($e$$){Logger.info("Error find customer code of user",$e$$)}return $_cust$$})()]);$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$=$_custFromUser$$;$f_khuyenmais_lan_mua_thu$$=0;if($condition$$.ma_kh){const [$so1Count$$,$pblCount$$,$custDoc$$]=await Promise.all([so1.countDocuments({id_app:$condition$$.id_app,ma_kh:$condition$$.ma_kh,trang_thai:{$in:["4","5"]}}),pbl.countDocuments({id_app:$condition$$.id_app,ma_kh:$condition$$.ma_kh,
|
|
25
|
+
trang_thai:{$in:["5","6"]}}),$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$?Promise.resolve(null):customer.findOne({id_app:$condition$$.id_app,ma_kh:$condition$$.ma_kh},{nh_kh:1,nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1}).lean()]);$f_khuyenmais_lan_mua_thu$$=$so1Count$$+$pblCount$$+1;!$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$&&$custDoc$$&&($VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$=$custDoc$$,$condition$$.nh_kh=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.nh_kh,$condition$$.nh_kh2=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.nh_kh2,
|
|
26
|
+
$condition$$.nh_kh3=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.nh_kh3,$condition$$.nh_kh4=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.nh_kh4,$condition$$.nh_kh5=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.nh_kh5)}const [$nh_kh_me$$,$nh_kh2_me$$,$nh_kh3_me$$,$nh_kh4_me$$,$nh_kh5_me$$,$nh_tt_me$$,$nh_tt2_me$$,$nh_tt3_me$$,$nh_tt4_me$$,$nh_tt5_me$$]=await Promise.all([getMotherOrEmpty($condition$$.id_app,$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$?.nh_kh),getMotherOrEmpty($condition$$.id_app,$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$?.nh_kh2),
|
|
27
|
+
getMotherOrEmpty($condition$$.id_app,$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$?.nh_kh3),getMotherOrEmpty($condition$$.id_app,$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$?.nh_kh4),getMotherOrEmpty($condition$$.id_app,$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$?.nh_kh5),getMotherOrEmpty($condition$$.id_app,$thuoc_tinh1$$?.nh_tt),getMotherOrEmpty($condition$$.id_app,$thuoc_tinh1$$?.nh_tt2),getMotherOrEmpty($condition$$.id_app,$thuoc_tinh1$$?.nh_tt3),getMotherOrEmpty($condition$$.id_app,$thuoc_tinh1$$?.nh_tt4),
|
|
28
|
+
getMotherOrEmpty($condition$$.id_app,$thuoc_tinh1$$?.nh_tt5)]);Object.assign($condition$$,{nh_kh_me:$nh_kh_me$$,nh_kh2_me:$nh_kh2_me$$,nh_kh3_me:$nh_kh3_me$$,nh_kh4_me:$nh_kh4_me$$,nh_kh5_me:$nh_kh5_me$$,nh_tt_me:$nh_tt_me$$,nh_tt2_me:$nh_tt2_me$$,nh_tt3_me:$nh_tt3_me$$,nh_tt4_me:$nh_tt4_me$$,nh_tt5_me:$nh_tt5_me$$});$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$=$condition$$.ngay_ct;const $baseQuery$$={ma_vt:$condition$$.ma_vt,id_app:$condition$$.id_app,status:!0,$and:[],ma_kh:{$in:[null,"",$condition$$.ma_kh]},
|
|
29
|
+
nh_kh:{$in:[null,"",...$nh_kh_me$$]},nh_kh2:{$in:[null,"",...$nh_kh2_me$$]},nh_kh3:{$in:[null,"",...$nh_kh3_me$$]},nh_kh4:{$in:[null,"",...$nh_kh4_me$$]},nh_kh5:{$in:[null,"",...$nh_kh5_me$$]},ma_kho:{$in:[null,"",$condition$$.ma_kho]},ma_tt1:{$in:[null,"",$condition$$.ma_tt1]},ma_tt2:{$in:[null,"",$condition$$.ma_tt2]},ma_tt3:{$in:[null,"",$condition$$.ma_tt3]},hieu_luc_tu:{$lte:$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$},hieu_luc_den:{$gte:$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$}},$lanMuaFilter$$=
|
|
30
|
+
[{$or:[{ap_dung_lan_mua_tu_thu:{$in:[0,null]}},{ap_dung_lan_mua_tu_thu:{$lte:$f_khuyenmais_lan_mua_thu$$}}]},{$or:[{ap_dung_lan_mua_den_thu:{$in:[0,null]}},{ap_dung_lan_mua_den_thu:{$gte:$f_khuyenmais_lan_mua_thu$$}}]}],$nvtQuery$$=$_q_q$$=>{$_q_q$$=_.cloneDeep($_q_q$$);$_q_q$$.ma_vt={$in:["",null]};$_q_q$$.ma_nvt={$in:["",null,$vt$$.ma_nvt]};$_q_q$$.ma_nvt2={$in:["",null,...$vt$$.ma_nvt2]};$_q_q$$.ma_nvt3={$in:["",null,...$vt$$.ma_nvt3]};$_q_q$$.ma_nvt4={$in:["",null,...$vt$$.ma_nvt4]};$_q_q$$.ma_danh_muc=
|
|
31
|
+
{$in:["",null,$vt$$.ma_danh_muc]};return $_q_q$$},$applyOnlineOffline$$=$q$$=>{$condition$$.online!==void 0&&($q$$.online=$condition$$.online);$condition$$.offline!==void 0&&($q$$.offline=$condition$$.offline);return $q$$},$cleanAnd$$=$q$$=>{$q$$.$and?.length||delete $q$$.$and;return $q$$},$sort$$={stt_uu_tien:1},[$giabans$$,$chietkhaus_raw$$,$khuyenmais_raw$$]=await Promise.all([(async()=>{if($condition$$.get_price===!1)return[];const $q$$=$cleanAnd$$($applyOnlineOffline$$(_.cloneDeep($baseQuery$$)));
|
|
32
|
+
$q$$.$and=[...($q$$.$and||[]),...$lanMuaFilter$$];$cleanAnd$$($q$$);const $gbs$$=await dmgiaban.find($q$$).sort($sort$$).lean();return $gbs$$.length>0?$gbs$$:dmgiaban.find($cleanAnd$$($applyOnlineOffline$$($nvtQuery$$($q$$)))).sort($sort$$).lean()})(),(async()=>{if($condition$$.get_discount===!1)return[];const $q$$=_.cloneDeep($baseQuery$$);$q$$.$and=[...($q$$.$and||[]),...$lanMuaFilter$$];for(const $f$$ of"ma_kh nh_kh nh_kh2 nh_kh3 nh_kh4 nh_kh5 ma_tt1 ma_tt2 ma_tt3".split(" "))delete $q$$[$f$$];
|
|
33
|
+
$applyOnlineOffline$$($q$$);$cleanAnd$$($q$$);const [$ckVt$$,$ckNvt$$]=await Promise.all([dmchietkhau.find($q$$).sort($sort$$).lean(),dmchietkhau.find($nvtQuery$$(_.cloneDeep($q$$))).sort($sort$$).lean()]);return $ckVt$$.concat($ckNvt$$)})(),(async()=>{if($condition$$.get_promotion===!1)return[];const $q$$=_.cloneDeep($baseQuery$$);for(const $f$$ of"ma_kh nh_kh nh_kh2 nh_kh3 nh_kh4 nh_kh5 ma_tt1 ma_tt2 ma_tt3".split(" "))delete $q$$[$f$$];$applyOnlineOffline$$($q$$);$cleanAnd$$($q$$);const [$kmVt$$,
|
|
34
|
+
$kmNvt$$]=await Promise.all([dmkhuyenmai.find($q$$).sort($sort$$).lean(),dmkhuyenmai.find($nvtQuery$$(_.cloneDeep($q$$))).sort($sort$$).lean()]);return $kmVt$$.concat($kmNvt$$)})()]);$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$=$chietkhaus_raw$$.filter($ck$$=>matchNhomKh($ck$$,$condition$$)&&matchThuocTinh($ck$$,$condition$$));await getSLDaBanCKs($VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$);$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.filter($ck$$=>!$ck$$.tong_sl_ap_dung||
|
|
35
|
+
!$ck$$.sl_da_ban||$ck$$.sl_con_lai>0);$f_khuyenmais_lan_mua_thu$$=$khuyenmais_raw$$.filter($km$$=>matchNhomKh($km$$,$condition$$)&&matchThuocTinh($km$$,$condition$$));if($f_khuyenmais_lan_mua_thu$$.length>0){var $allDetailsKm_gbs$$=$f_khuyenmais_lan_mua_thu$$.flatMap($p$$=>$p$$.details_km||[]);const $allDetailsWithTt$$=$allDetailsKm_gbs$$.filter($d$$=>$d$$.ma_tt1);await Promise.all([$allDetailsKm_gbs$$.length?$allDetailsKm_gbs$$.asyncJoinModel2($condition$$.id_app,dmvt,{where:"ma_vt",fields:["ten_vt",
|
|
36
|
+
"picture"]}):Promise.resolve(),$allDetailsWithTt$$.length?$allDetailsWithTt$$.asyncJoinModel2($condition$$.id_app,"dmtt",{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),setFields:($item$$,$ref$$)=>{$item$$.thuoc_tinh=$ref$$}}):Promise.resolve()])}let $price$$={};if($condition$$.get_price!==!1){$vt$$.ma_nt0||($vt$$.ma_nt0="VND");$allDetailsKm_gbs$$=[];if(!($giabans$$.length>0)||$giabans$$[0].sl_tu||$giabans$$[0].sl_den||$giabans$$[0].t_sl_tu||$giabans$$[0].t_sl_den)for(const $g$$ of $giabans$$)$g$$.sl_tu=
|
|
37
|
+
$g$$.sl_tu||0,$g$$.sl_den=$g$$.sl_den||0,$g$$.t_sl_tu=$g$$.t_sl_tu||0,$g$$.t_sl_den=$g$$.t_sl_den||0,$allDetailsKm_gbs$$.find($_g$$=>$_g$$.sl_tu===$g$$.sl_tu&&$_g$$.sl_den===$g$$.sl_den&&$_g$$.t_sl_tu===$g$$.t_sl_tu&&$_g$$.t_sl_den===$g$$.t_sl_den)||$allDetailsKm_gbs$$.push($g$$);else $allDetailsKm_gbs$$=[$giabans$$[0]];$allDetailsKm_gbs$$.find($g$$=>!$g$$.sl_tu)||$allDetailsKm_gbs$$.push({gia_ban_le:$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0,gia_ban_buon:$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||0,ma_nt:$vt$$.ma_nt0,
|
|
38
|
+
gia_ban_chua_thue:$vt$$.gia_ban_chua_thue,t_sl_tu:0,t_sl_den:0,sl_tu:0,sl_den:$allDetailsKm_gbs$$.length>0?$allDetailsKm_gbs$$.sort(($a$$,$b$$)=>$a$$.sl_tu-$b$$.sl_tu)[0].sl_tu-.001:0});for(var $g$$ of $allDetailsKm_gbs$$)$g$$.ma_nt||($g$$.ma_nt="VND"),$g$$.ma_thue=$vt$$.ma_thue,$g$$.thue_suat=$vt$$.thue_suat;await Promise.all([$allDetailsKm_gbs$$.asyncJoinModel2($condition$$.id_app,"currency",{where:"ma_nt",fields:["ty_gia"]}),[$vt$$].asyncJoinModel2($condition$$.id_app,"currency",{where:{ma_nt0:"ma_nt"},
|
|
39
|
+
fields:[{ty_gia0:"ty_gia"}]}),$vt$$.ma_thue?[$vt$$].asyncJoinModel2($condition$$.id_app,"vat",{where:{ma_thue:"ma_thue"},fields:[{thue_suat:"thue_suat"}]}):Promise.resolve()]);for(var $default_ck_g$jscomp$11_groups$$ of $allDetailsKm_gbs$$){$discounts_gbMacDinh_gbTheoSl_groups$$?.ma_nt&&$discounts_gbMacDinh_gbTheoSl_groups$$?.ty_gia&&$default_ck_g$jscomp$11_groups$$.ma_nt!==$discounts_gbMacDinh_gbTheoSl_groups$$.ma_nt?($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd=utils.round(($vt$$.gia_ban_le0||
|
|
40
|
+
0)*$vt$$.ty_gia0/$discounts_gbMacDinh_gbTheoSl_groups$$.ty_gia,2),$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd=utils.round(($vt$$.gia_ban_buon0||0)*$vt$$.ty_gia0/$discounts_gbMacDinh_gbTheoSl_groups$$.ty_gia,2),$default_ck_g$jscomp$11_groups$$.gia_ban_le=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_le*$default_ck_g$jscomp$11_groups$$.ty_gia/$discounts_gbMacDinh_gbTheoSl_groups$$.ty_gia,2),$default_ck_g$jscomp$11_groups$$.gia_ban_buon=utils.round(($default_ck_g$jscomp$11_groups$$.gia_ban_buon||
|
|
41
|
+
0)*$default_ck_g$jscomp$11_groups$$.ty_gia/$discounts_gbMacDinh_gbTheoSl_groups$$.ty_gia,2),$default_ck_g$jscomp$11_groups$$.ma_nt=$discounts_gbMacDinh_gbTheoSl_groups$$.ma_nt,$default_ck_g$jscomp$11_groups$$.ty_gia=$discounts_gbMacDinh_gbTheoSl_groups$$.ty_gia):($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd=$vt$$.gia_ban_le0||0,$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd=$vt$$.gia_ban_buon0||0);$g$$=$vt$$.thue_suat||0;$default_ck_g$jscomp$11_groups$$.gia_ban_chua_thue?($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd_ct=
|
|
42
|
+
$default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd,$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd,$default_ck_g$jscomp$11_groups$$.gia_ban_le_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_le,$default_ck_g$jscomp$11_groups$$.gia_ban_buon_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_buon,$vt$$.ma_thue&&($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd_ct*(1+$g$$/100),2),$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd=
|
|
43
|
+
utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd_ct*(1+$g$$/100),2),$default_ck_g$jscomp$11_groups$$.gia_ban_le=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_le_ct*(1+$g$$/100),2),$default_ck_g$jscomp$11_groups$$.gia_ban_buon=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_buon_ct*(1+$g$$/100),2))):($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd,$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd,
|
|
44
|
+
$default_ck_g$jscomp$11_groups$$.gia_ban_le_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_le,$default_ck_g$jscomp$11_groups$$.gia_ban_buon_ct=$default_ck_g$jscomp$11_groups$$.gia_ban_buon,$vt$$.ma_thue&&($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd_ct=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_le0_qd/(1+$g$$/100),2),$default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd_ct=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_buon0_qd/(1+$g$$/100),2),$default_ck_g$jscomp$11_groups$$.gia_ban_le_ct=
|
|
45
|
+
utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_le/(1+$g$$/100),2),$default_ck_g$jscomp$11_groups$$.gia_ban_buon_ct=utils.round($default_ck_g$jscomp$11_groups$$.gia_ban_buon/(1+$g$$/100),2)));delete $default_ck_g$jscomp$11_groups$$.gia_ban_chua_thue;if($default_ck_g$jscomp$11_groups$$.ma_dvt_gia_ban&&($g$$=await global.getModel("dmqddvt").findOne({id_app:$condition$$.id_app,ma_vt:$condition$$.ma_vt,ma_dvt:$default_ck_g$jscomp$11_groups$$.ma_dvt_gia_ban}).lean())&&($g$$=$g$$.mau&&$g$$.tu?$g$$.mau/
|
|
46
|
+
$g$$.tu:$g$$.ty_le_qd?1/$g$$.ty_le_qd:1)&&$g$$!==1)for(const $f$$ of"gia_ban_le gia_ban_buon gia_ban_le0_qd_ct gia_ban_buon0_qd_ct gia_ban_le_ct gia_ban_buon_ct".split(" "))$default_ck_g$jscomp$11_groups$$[$f$$]=utils.round($default_ck_g$jscomp$11_groups$$[$f$$]*$g$$,round);$default_ck_g$jscomp$11_groups$$.he_so_qd=$cached_he_so_qd$$;if($condition$$.ma_dvt_sd){for(const $f$$ of"gia_ban_le gia_ban_buon gia_ban_le0_qd_ct gia_ban_buon0_qd_ct gia_ban_le_ct gia_ban_buon_ct".split(" "))$default_ck_g$jscomp$11_groups$$[$f$$]=
|
|
47
|
+
utils.round($default_ck_g$jscomp$11_groups$$[$f$$]*$cached_he_so_qd$$,round);$default_ck_g$jscomp$11_groups$$.ma_dvt=$condition$$.ma_dvt_sd}}$discounts_gbMacDinh_gbTheoSl_groups$$=$allDetailsKm_gbs$$.filter($g$$=>$g$$.sl_tu<=$condition$$.so_luong&&(!$g$$.sl_den||$g$$.sl_den>$condition$$.so_luong)&&$g$$.t_sl_tu<=$condition$$.t_so_luong&&(!$g$$.t_sl_den||$g$$.t_sl_den>$condition$$.t_so_luong)&&(!$g$$.t_sl_ntt_tu||$g$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$g$$.t_sl_ntt_den||$g$$.t_sl_ntt_den>
|
|
48
|
+
$condition$$.t_so_luong_ntt)&&(!$g$$.t_tien_ntt_tu||$g$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$g$$.t_tien_ntt_den||$g$$.t_tien_ntt_den>$condition$$.t_tien_ntt));$discounts_gbMacDinh_gbTheoSl_groups$$=$discounts_gbMacDinh_gbTheoSl_groups$$.length>0?$discounts_gbMacDinh_gbTheoSl_groups$$[0]:$allDetailsKm_gbs$$[0]||{};$price$$={gia_ban_le0_qd:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_le0_qd,gia_ban_buon0_qd:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_buon0_qd,gia_ban_le:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_le,
|
|
49
|
+
gia_ban_buon:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_buon,gia_ban_le0_qd_ct:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_le0_qd_ct,gia_ban_buon0_qd_ct:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_buon0_qd_ct,gia_ban_le_ct:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_le_ct,gia_ban_buon_ct:$discounts_gbMacDinh_gbTheoSl_groups$$.gia_ban_buon_ct,ma_nt:$discounts_gbMacDinh_gbTheoSl_groups$$.ma_nt,ty_gia:$discounts_gbMacDinh_gbTheoSl_groups$$.ty_gia,ma_thue:$vt$$.ma_thue,thue_suat:$vt$$.thue_suat,
|
|
50
|
+
prices:$allDetailsKm_gbs$$}}if($condition$$.get_discount!==!1){$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.forEach($r$$=>{$r$$.id_cs=$r$$._id});$discounts_gbMacDinh_gbTheoSl_groups$$=$VT_FIELDS__cust_chietkhaus_qddct_tu_ngay$$.sort(($a$$,$b$$)=>($b$$.ap_dung_lan_mua_tu_thu||0)>($a$$.ap_dung_lan_mua_tu_thu||0)?1:$b$$.ty_le_ck-$a$$.ty_le_ck).map($d$$=>{$d$$.tien_ck&&$price$$.gia_ban_le_ct&&($d$$.ty_le_ck=$d$$.tien_ck/$price$$.gia_ban_le_ct*100);$d$$.sl_tu=$d$$.sl_tu||0;$d$$.sl_den=$d$$.sl_den||0;$d$$.gt_hd_tu=
|
|
51
|
+
$d$$.gt_hd_tu||0;$d$$.gt_hd_den=$d$$.gt_hd_den||0;return $d$$});$price$$.discount=$discounts_gbMacDinh_gbTheoSl_groups$$;const $t_gt_hd$$=$condition$$.t_gt_hd||0,$t_tien_ntt$$=$condition$$.t_tien_ntt||0,$t_sl_ntt$$=$condition$$.t_so_luong_ntt||0;let $default_cks$$=$discounts_gbMacDinh_gbTheoSl_groups$$.filter($d$$=>(!$d$$.gt_hd_tu||$d$$.gt_hd_tu<=$t_gt_hd$$)&&(!$d$$.gt_hd_den||$d$$.gt_hd_den>$t_gt_hd$$)&&!$d$$.mua_them&&$condition$$.so_luong>=$d$$.sl_tu&&(!$d$$.sl_den||$d$$.sl_den>$condition$$.so_luong)&&
|
|
52
|
+
(!$d$$.t_sl_tu||$d$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$d$$.t_sl_den||$d$$.t_sl_den>$condition$$.t_so_luong)&&(!$d$$.t_sl_ntt_tu||$d$$.t_sl_ntt_tu<=$t_sl_ntt$$)&&(!$d$$.t_sl_ntt_den||$d$$.t_sl_ntt_den>$t_sl_ntt$$)&&(!$d$$.t_tien_ntt_tu||$d$$.t_tien_ntt_tu<=$t_tien_ntt$$)&&(!$d$$.t_tien_ntt_den||$d$$.t_tien_ntt_den>$t_tien_ntt$$));$default_ck_g$jscomp$11_groups$$=$condition$$.id_cs_ck?$default_cks$$.find($d$$=>$d$$._id.toString()===$condition$$.id_cs_ck):null;!$default_ck_g$jscomp$11_groups$$&&
|
|
53
|
+
$default_cks$$.length>0&&($default_ck_g$jscomp$11_groups$$=[...(new Set($default_cks$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$default_cks$$.filter($d$$=>($d$$.ma_nhom||"")===($ma_nhom$$||""))})),$default_ck_g$jscomp$11_groups$$=await calcDefaultDiscount($condition$$.id_app,$default_ck_g$jscomp$11_groups$$));$default_ck_g$jscomp$11_groups$$&&Object.assign($price$$,{sl_tu:$default_ck_g$jscomp$11_groups$$.sl_tu,ty_le_ck:$default_ck_g$jscomp$11_groups$$.ty_le_ck||0,tien_ck:$default_ck_g$jscomp$11_groups$$.tien_ck,
|
|
54
|
+
gt_hd_tu:$default_ck_g$jscomp$11_groups$$.gt_hd_tu,gt_hd_den:$default_ck_g$jscomp$11_groups$$.gt_hd_den,sl_ap_dung:$default_ck_g$jscomp$11_groups$$.sl_ap_dung,so_tien_max:$default_ck_g$jscomp$11_groups$$.so_tien_max,id_cs:$default_ck_g$jscomp$11_groups$$._id});$discounts_gbMacDinh_gbTheoSl_groups$$=$discounts_gbMacDinh_gbTheoSl_groups$$.filter($d$$=>$d$$.sl_tu>1).sort(($a$$,$b$$)=>$b$$.ty_le_ck-$a$$.ty_le_ck);$discounts_gbMacDinh_gbTheoSl_groups$$.length>0&&($price$$.ck_sl_tu2=$discounts_gbMacDinh_gbTheoSl_groups$$)}if($condition$$.get_promotion!==
|
|
55
|
+
!1){const $PROMO_DELETE_FIELDS$$="status user_created user_updated date_created date_updated exfields id_app dmkh dmkho dmnvt dmvt __v".split(" ");$f_khuyenmais_lan_mua_thu$$.forEach($p$$=>{$p$$.id_cs=$p$$._id;$PROMO_DELETE_FIELDS$$.forEach($f$$=>delete $p$$[$f$$])});$discounts_gbMacDinh_gbTheoSl_groups$$=[...$f_khuyenmais_lan_mua_thu$$];$condition$$.ma_ct?($discounts_gbMacDinh_gbTheoSl_groups$$=$discounts_gbMacDinh_gbTheoSl_groups$$.filter($p$$=>!$p$$.chi_su_dung_cho_ct||$p$$.chi_su_dung_cho_ct.toUpperCase().split(",").includes($condition$$.ma_ct.toUpperCase())),
|
|
56
|
+
$discounts_gbMacDinh_gbTheoSl_groups$$=$discounts_gbMacDinh_gbTheoSl_groups$$.filter($p$$=>!$p$$.khong_su_dung_cho_ct||!$p$$.khong_su_dung_cho_ct.toUpperCase().split(",").includes($condition$$.ma_ct.toUpperCase()))):$discounts_gbMacDinh_gbTheoSl_groups$$=$discounts_gbMacDinh_gbTheoSl_groups$$.filter($p$$=>!$p$$.chi_su_dung_cho_ct&&!$p$$.khong_su_dung_cho_ct);$price$$.promotion=$discounts_gbMacDinh_gbTheoSl_groups$$;const $promotions_df$$=$discounts_gbMacDinh_gbTheoSl_groups$$.filter($p$$=>$p$$.details_km?.length>
|
|
57
|
+
0&&$p$$.sl_tu<=$condition$$.so_luong&&(!$p$$.sl_den||$p$$.sl_den>=$condition$$.so_luong||$p$$.sl_den===$p$$.sl_tu)&&(!$p$$.t_sl_tu||$p$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$p$$.t_sl_den||$p$$.t_sl_den>$condition$$.t_so_luong)&&(!$p$$.t_sl_ntt_tu||$p$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$p$$.t_sl_ntt_den||$p$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&(!$p$$.t_tien_ntt_tu||$p$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$p$$.t_tien_ntt_den||$p$$.t_tien_ntt_den>$condition$$.t_tien_ntt));
|
|
58
|
+
$discounts_gbMacDinh_gbTheoSl_groups$$=$condition$$.id_cs?$promotions_df$$.find($d$$=>$d$$._id.toString()===$condition$$.id_cs):null;!$discounts_gbMacDinh_gbTheoSl_groups$$&&$promotions_df$$.length>0&&($promotions_df$$.forEach($p$$=>{$p$$.t_sl_km=($p$$.details_km||[]).reduce(($s$$,$d$$)=>$s$$+($d$$.sl_km||0),0)}),$discounts_gbMacDinh_gbTheoSl_groups$$=[...(new Set($promotions_df$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$promotions_df$$.filter($d$$=>($d$$.ma_nhom||
|
|
59
|
+
"")===$ma_nhom$$)})),$discounts_gbMacDinh_gbTheoSl_groups$$=await calcDefaultPromotion($condition$$.id_app,$discounts_gbMacDinh_gbTheoSl_groups$$));$price$$.default_promotion=$discounts_gbMacDinh_gbTheoSl_groups$$}$cacheKey_cacheOptions$$&&(cacheSet($cacheKey_cacheOptions$$,$price$$,$cacheTtl$$),Logger.info("[getGiaBan] cache set",{key:$cacheKey_cacheOptions$$,ttl:$cacheTtl$$}));$fn$$(null,$price$$)};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
const dmvt=global.getModel("dmvt"),dmgiaban=global.getModel("dmgiaban"),so1=global.getModel("so1"),pbl=global.getModel("pbl"),dmchietkhau=global.getModel("dmchietkhau"),dmkhuyenmai=global.getModel("dmkhuyenmai"),customer=global.getModel("customer"),async=require("async"),underscore=require("underscore"),utils=require("./utils"),_=require("lodash"),round=0,getSLDaBanCKs=async $items$$=>new Promise(($rs$$,$rj$$)=>{async.mapSeries($items$$,($item$$,$cb$$)=>{setImmediate(async()=>{try{const $details$$=
|
|
2
|
+
(await so1.find({id_app:$item$$.id_app,"details.id_cs":$item$$._id.toString(),trang_thai:{$nin:["9","10","LCT"]}})).map($r$$=>$r$$.details||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($a$$=>$a$$.id_cs===$item$$._id.toString());$item$$.sl_da_ban=$details$$.map($r$$=>$item$$.sl_ap_dung?Math.min($r$$.sl_xuat,$item$$.sl_ap_dung):$r$$.sl_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.sl_con_lai=Math.max(($item$$.tong_sl_ap_dung||0)-$item$$.sl_da_ban,0);$item$$.sl_ap_dung=$item$$.tong_sl_ap_dung?
|
|
3
|
+
Math.min($item$$.sl_ap_dung,$item$$.sl_con_lai):$item$$.sl_ap_dung;$cb$$(null,$item$$)}catch($e$$){$cb$$($e$$)}})},$e$$=>{if($e$$)return $rj$$($e$$);$rs$$($items$$)})}),calcDefaultDiscount=async($id_app_rs$$,$groups$$)=>{await $groups$$.filter($d$$=>$d$$.ma_nhom&&!$d$$.phuong_phap_ap_dung).asyncJoinModel2($id_app_rs$$,"dmnckkm",{where:{ma_nhom:"_id"},fields:["phuong_phap_ap_dung","nh_me",{stt_uu_tien:"stt"}]});$groups$$.forEach($g$$=>{switch($g$$.phuong_phap_ap_dung){case "TOI_THIEU":$g$$.ck=$g$$.cks.sort(($a$$,
|
|
4
|
+
$b$$)=>$a$$.ty_le_ck-$b$$.ty_le_ck)[0];$g$$.ck.stt_uu_tien=$g$$.stt_uu_tien;break;case "TOI_DA":$g$$.ck=$g$$.cks.sort(($a$$,$b$$)=>$b$$.ty_le_ck-$a$$.ty_le_ck)[0];$g$$.ck.stt_uu_tien=$g$$.stt_uu_tien;break;case "CONG":$g$$.ck={ty_le_ck:$g$$.cks.map($c$$=>$c$$.ty_le_ck).reduce(($a$$,$b$$)=>$a$$+$b$$,0),tien_ck:$g$$.cks.map($c$$=>$c$$.tien_ck||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)};$g$$.ck.stt_uu_tien=$g$$.stt_uu_tien;break;default:$g$$.ck=$g$$.cks.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||
|
|
5
|
+
0))[0],$g$$.ck.stt_uu_tien=$g$$.stt_uu_tien}delete $g$$.cks});if($groups$$.length==1)$id_app_rs$$=$groups$$[0].ck;else if($groups$$.find($g$$=>$g$$.nh_me)){$groups$$=$groups$$.map($g$$=>{$g$$.nh_me&&($g$$.ma_nhom=$g$$.nh_me,$g$$.nh_me="",$g$$.phuong_phap_ap_dung="");return $g$$});const $new_groups$$=[...(new Set($groups$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>{const $cks$$=$groups$$.filter($d$$=>($d$$.ma_nhom||"")==$ma_nhom$$).map($g$$=>$g$$.ck);return{ma_nhom:$ma_nhom$$,cks:$cks$$}});$id_app_rs$$=
|
|
6
|
+
await calcDefaultDiscount($id_app_rs$$,$new_groups$$)}else $id_app_rs$$=$groups$$.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0))[0];return $id_app_rs$$},calcDefaultPromotion=async($id_app$jscomp$1_rs$$,$groups$$)=>{await $groups$$.filter($d$$=>$d$$.ma_nhom&&!$d$$.phuong_phap_ap_dung).asyncJoinModel2($id_app$jscomp$1_rs$$,"dmnckkm",{where:{ma_nhom:"_id"},fields:["phuong_phap_ap_dung","nh_me",{stt_uu_tien:"stt"}]});$groups$$.forEach($g$$=>{switch($g$$.phuong_phap_ap_dung){case "TOI_THIEU":var $ck_ck$jscomp$1_ck$$=
|
|
7
|
+
$g$$.cks.sort(($a$$,$b$$)=>$a$$.t_sl_km-$b$$.t_sl_km)[0];$g$$.ck=$ck_ck$jscomp$1_ck$$?{t_sl_km:$ck_ck$jscomp$1_ck$$.t_sl_km||0,promotions:[$ck_ck$jscomp$1_ck$$],stt_uu_tien:$g$$.stt_uu_tien}:{t_sl_km:0,promotions:[],stt_uu_tien:$g$$.stt_uu_tien};break;case "TOI_DA":$ck_ck$jscomp$1_ck$$=$g$$.cks.sort(($a$$,$b$$)=>$b$$.t_sl_km-$a$$.t_sl_km)[0];$g$$.ck=$ck_ck$jscomp$1_ck$$?{t_sl_km:$ck_ck$jscomp$1_ck$$.t_sl_km||0,promotions:[$ck_ck$jscomp$1_ck$$],stt_uu_tien:$g$$.stt_uu_tien}:{t_sl_km:0,promotions:[],
|
|
8
|
+
stt_uu_tien:$g$$.stt_uu_tien};break;case "CONG":$ck_ck$jscomp$1_ck$$=$g$$.cks.map($c$$=>$c$$.t_sl_km).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$g$$.ck={t_sl_km:$ck_ck$jscomp$1_ck$$,promotions:$g$$.cks,stt_uu_tien:$g$$.stt_uu_tien};break;default:$ck_ck$jscomp$1_ck$$=$g$$.cks.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0))[0],$g$$.ck=$ck_ck$jscomp$1_ck$$?{t_sl_km:$ck_ck$jscomp$1_ck$$.t_sl_km||0,promotions:[$ck_ck$jscomp$1_ck$$],stt_uu_tien:$g$$.stt_uu_tien}:{t_sl_km:0,promotions:[],stt_uu_tien:$g$$.stt_uu_tien}}});
|
|
9
|
+
if($groups$$.length==1)$id_app$jscomp$1_rs$$=$groups$$[0].ck.promotions;else if($groups$$.find($g$$=>$g$$.nh_me)){$groups$$=$groups$$.map($g$$=>{$g$$.nh_me&&($g$$.ma_nhom=$g$$.nh_me,$g$$.nh_me="",$g$$.phuong_phap_ap_dung="");return $g$$});const $new_groups$$=[...(new Set($groups$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>{const $cks$$=$groups$$.filter($d$$=>($d$$.ma_nhom||"")==$ma_nhom$$).map($g$$=>$g$$.ck);return{ma_nhom:$ma_nhom$$,cks:$cks$$}});$id_app$jscomp$1_rs$$=await calcDefaultPromotion($id_app$jscomp$1_rs$$,
|
|
10
|
+
$new_groups$$)}else $id_app$jscomp$1_rs$$=$groups$$.sort(($a$$,$b$$)=>($a$$.stt_uu_tien||0)-($b$$.stt_uu_tien||0))[0].ck.promotions;return $id_app$jscomp$1_rs$$};
|
|
11
|
+
module.exports=async($condition$$,$fn$$,$par$$={})=>{!$condition$$.ma_vt&&$condition$$.vt&&($condition$$.ma_vt=$condition$$.vt.ma_vt);$condition$$.so_luong=$condition$$.so_luong||$condition$$.sl_xuat||1;$condition$$.t_so_luong=$condition$$.t_so_luong||$condition$$.t_sl_xuat||$condition$$.t_sl||$condition$$.so_luong;$condition$$.t_so_luong_ntt=$condition$$.t_so_luong_ntt||$condition$$.t_sl_xuat_ntt||$condition$$.t_sl_ntt||$condition$$.so_luong_ntt||0;$condition$$.t_tien_ntt=$condition$$.t_tien_ntt||
|
|
12
|
+
0;let $he_so_qd$$=1;if($condition$$.ma_dvt_sd){var $qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$=await global.getModel("dmqddvt").findOne({id_app:$condition$$.id_app,ma_vt:$condition$$.ma_vt,ma_dvt:$condition$$.ma_dvt_sd}).lean();$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$&&($he_so_qd$$=$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.ty_le_qd||1,$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.mau&&$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.tu&&($he_so_qd$$=$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.tu/
|
|
13
|
+
$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.mau))}!$condition$$.ma_vt&&$condition$$.vt&&$condition$$.vt._id&&($condition$$.vt=await dmvt.findOne({_id:$condition$$.vt._id},{ma_vt:1,ma_nvt:1,ma_nvt2:1,ma_nvt3:1,ma_nvt4:1,ma_danh_muc:1,gia_ban_le0:1,gia_ban_buon0:1,gia_ban_le:1,gia_ban_buon:1,ty_le_ck0:1,tien_ck0:1,ma_nt:1,gia_ban_chua_thue:1,ma_thue:1,ma_nt0:1}).inTxn().lean(),$condition$$.vt&&($condition$$.vt.is_full=!0,$condition$$.ma_vt=$condition$$.vt.ma_vt));if($condition$$&&$condition$$.ma_vt&&
|
|
14
|
+
$condition$$.id_app){var $vt$$=$condition$$.vt;if(!$vt$$||!$vt$$.is_full&&($vt$$.gia_ban_le===void 0||$vt$$.gia_ban_le0===void 0||$vt$$.ty_le_ck0===void 0||$vt$$.tien_ck0===void 0||$vt$$.ma_nt0===void 0||$vt$$.ma_thue===void 0))if($vt$$=await dmvt.findOne({ma_vt:$condition$$.ma_vt,id_app:$condition$$.id_app},{ma_vt:1,ma_nvt:1,ma_nvt2:1,ma_nvt3:1,ma_nvt4:1,ma_danh_muc:1,gia_ban_le0:1,gia_ban_buon0:1,gia_ban_le:1,gia_ban_buon:1,ty_le_ck0:1,tien_ck0:1,ma_nt:1,gia_ban_chua_thue:1,ma_thue:1,ma_nt0:1}).inTxn().lean(),
|
|
15
|
+
!$vt$$)return $fn$$("Not found product: "+$condition$$.ma_vt);$vt$$.ma_nvt2||($vt$$.ma_nvt2=[]);typeof $vt$$.ma_nvt2=="string"&&($vt$$.ma_nvt2=[$vt$$.ma_nvt2]);$vt$$.ma_nvt3||($vt$$.ma_nvt3=[]);typeof $vt$$.ma_nvt3=="string"&&($vt$$.ma_nvt3=[$vt$$.ma_nvt3]);$vt$$.ma_nvt4||($vt$$.ma_nvt4=[]);typeof $vt$$.ma_nvt4=="string"&&($vt$$.ma_nvt4=[$vt$$.ma_nvt4]);if($condition$$.ma_tt1){var $hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$={id_app:$vt$$.id_app_vt||$condition$$.id_app,ma_vt:$vt$$.ma_vt,status:!0};
|
|
16
|
+
$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.ma_tt=$condition$$.ma_tt1;$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.loai_tt="1";if($hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$=await global.getModel("dmtt").findOne($hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$).lean())$vt$$.gia_ban_le0=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.gia_ban_le||$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0,$vt$$.gia_ban_buon0=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.gia_ban_buon||$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||
|
|
17
|
+
0}else if($condition$$.ma_tt2){if($qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$={id_app:$vt$$.id_app_vt||$condition$$.id_app,ma_vt:$vt$$.ma_vt,status:!0},$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.ma_tt=$condition$$.ma_tt2,$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.loai_tt="2",$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$=await global.getModel("dmtt").findOne($qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$).lean())$vt$$.gia_ban_le0=$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.gia_ban_le||
|
|
18
|
+
$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0,$vt$$.gia_ban_buon0=$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.gia_ban_buon||$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||0}else $condition$$.ma_tt3&&($qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$={id_app:$vt$$.id_app_vt||$condition$$.id_app,ma_vt:$vt$$.ma_vt,status:!0},$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.ma_tt=$condition$$.ma_tt3,$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.loai_tt="3",$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$=
|
|
19
|
+
await global.getModel("dmtt").findOne($qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$).lean())&&($vt$$.gia_ban_le0=$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.gia_ban_le||$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0,$vt$$.gia_ban_buon0=$qddct_query_tt$jscomp$1_query_tt$jscomp$2_tt_tt$$.gia_ban_buon||$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||0);$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$&&($condition$$.nh_tt_me=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt?await global.getModel("group").getAllMotherGroup($condition$$.id_app,
|
|
20
|
+
$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt):[],$condition$$.nh_tt2_me=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt2?await global.getModel("group").getAllMotherGroup($condition$$.id_app,$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt2):[],$condition$$.nh_tt3_me=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt3?await global.getModel("group").getAllMotherGroup($condition$$.id_app,$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt3):[],$condition$$.nh_tt4_me=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt4?
|
|
21
|
+
await global.getModel("group").getAllMotherGroup($condition$$.id_app,$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt4):[],$condition$$.nh_tt5_me=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt5?await global.getModel("group").getAllMotherGroup($condition$$.id_app,$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$.nh_tt5):[]);var $_cust_den_ngay_hieu_luc_tu$$;if($condition$$.user&&!$condition$$.ma_kh)try{if($_cust_den_ngay_hieu_luc_tu$$=await customer.findOne({id_app:$condition$$.id_app,of_user:$condition$$.user.email},
|
|
22
|
+
{ma_kh:1,nh_kh:1,nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1}).lean())$condition$$.ma_kh=$_cust_den_ngay_hieu_luc_tu$$.ma_kh,$condition$$.nh_kh=$_cust_den_ngay_hieu_luc_tu$$.nh_kh,$condition$$.nh_kh2=$_cust_den_ngay_hieu_luc_tu$$.nh_kh2,$condition$$.nh_kh3=$_cust_den_ngay_hieu_luc_tu$$.nh_kh3,$condition$$.nh_kh4=$_cust_den_ngay_hieu_luc_tu$$.nh_kh4,$condition$$.nh_kh5=$_cust_den_ngay_hieu_luc_tu$$.nh_kh5}catch($e$$){Logger.info("Error find customer code of user",$e$$)}if($condition$$.ma_kh){var $lan_mua_thu$$=
|
|
23
|
+
await so1.countDocuments({id_app:$condition$$.id_app,ma_kh:$condition$$.ma_kh,trang_thai:{$in:["4","5"]}});($lan_mua_thu$$+=await pbl.countDocuments({id_app:$condition$$.id_app,ma_kh:$condition$$.ma_kh,trang_thai:{$in:["5","6"]}}))||($lan_mua_thu$$=0);$lan_mua_thu$$+=1;!$_cust_den_ngay_hieu_luc_tu$$&&($_cust_den_ngay_hieu_luc_tu$$=await customer.findOne({id_app:$condition$$.id_app,ma_kh:$condition$$.ma_kh},{nh_kh:1,nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1}).lean())&&($condition$$.nh_kh=$_cust_den_ngay_hieu_luc_tu$$.nh_kh,
|
|
24
|
+
$condition$$.nh_kh2=$_cust_den_ngay_hieu_luc_tu$$.nh_kh2,$condition$$.nh_kh3=$_cust_den_ngay_hieu_luc_tu$$.nh_kh3,$condition$$.nh_kh4=$_cust_den_ngay_hieu_luc_tu$$.nh_kh4,$condition$$.nh_kh5=$_cust_den_ngay_hieu_luc_tu$$.nh_kh5)}else $lan_mua_thu$$=0;var $query$$={ma_vt:$condition$$.ma_vt,id_app:$condition$$.id_app,status:!0,$and:[]};$query$$.ma_kh={$in:[null,"",$condition$$.ma_kh]};$_cust_den_ngay_hieu_luc_tu$$&&($condition$$.nh_kh_me=$_cust_den_ngay_hieu_luc_tu$$.nh_kh?await global.getModel("group").getAllMotherGroup($condition$$.id_app,
|
|
25
|
+
$_cust_den_ngay_hieu_luc_tu$$.nh_kh):[],$condition$$.nh_kh2_me=$_cust_den_ngay_hieu_luc_tu$$.nh_kh2?await global.getModel("group").getAllMotherGroup($condition$$.id_app,$_cust_den_ngay_hieu_luc_tu$$.nh_kh2):[],$condition$$.nh_kh3_me=$_cust_den_ngay_hieu_luc_tu$$.nh_kh3?await global.getModel("group").getAllMotherGroup($condition$$.id_app,$_cust_den_ngay_hieu_luc_tu$$.nh_kh3):[],$condition$$.nh_kh4_me=$_cust_den_ngay_hieu_luc_tu$$.nh_kh4?await global.getModel("group").getAllMotherGroup($condition$$.id_app,
|
|
26
|
+
$_cust_den_ngay_hieu_luc_tu$$.nh_kh4):[],$condition$$.nh_kh5_me=$_cust_den_ngay_hieu_luc_tu$$.nh_kh5?await global.getModel("group").getAllMotherGroup($condition$$.id_app,$_cust_den_ngay_hieu_luc_tu$$.nh_kh5):[]);$query$$.nh_kh={$in:[null,"",...($condition$$.nh_kh_me||[])]};$query$$.nh_kh2={$in:[null,"",...($condition$$.nh_kh2_me||[])]};$query$$.nh_kh3={$in:[null,"",...($condition$$.nh_kh3_me||[])]};$query$$.nh_kh4={$in:[null,"",...($condition$$.nh_kh4_me||[])]};$query$$.nh_kh5={$in:[null,"",...($condition$$.nh_kh5_me||
|
|
27
|
+
[])]};$query$$.ma_kho={$in:[null,"",$condition$$.ma_kho]};$query$$.ma_tt1={$in:[null,"",$condition$$.ma_tt1]};$query$$.ma_tt2={$in:[null,"",$condition$$.ma_tt2]};$query$$.ma_tt3={$in:[null,"",$condition$$.ma_tt3]};$condition$$.ngay_ct=$condition$$.ngay_ct?new Date($condition$$.ngay_ct):new Date;$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$=$_cust_den_ngay_hieu_luc_tu$$=$condition$$.ngay_ct;$_cust_den_ngay_hieu_luc_tu$$={$lte:$_cust_den_ngay_hieu_luc_tu$$};$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$=
|
|
28
|
+
{$gte:$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$};$query$$.hieu_luc_tu=$_cust_den_ngay_hieu_luc_tu$$;$query$$.hieu_luc_den=$hieu_luc_den_query_tt_thuoc_tinh1_tu_ngay$$;var $sort$$={stt_uu_tien:1};async.parallel({giabans:$callback$$=>{if($condition$$.get_price==0)return $callback$$(null,[]);setImmediate(()=>{let $_query$$=_.cloneDeep($query$$);$_query$$.$and.push({$or:[{ap_dung_lan_mua_tu_thu:{$in:[0,null]}},{ap_dung_lan_mua_tu_thu:{$lte:$lan_mua_thu$$}}]});$_query$$.$and.push({$or:[{ap_dung_lan_mua_den_thu:{$in:[0,
|
|
29
|
+
null]}},{ap_dung_lan_mua_den_thu:{$gte:$lan_mua_thu$$}}]});$condition$$.online!=void 0&&($_query$$.online=$condition$$.online);$condition$$.offline!=void 0&&($_query$$.offline=$condition$$.offline);$_query$$.$and&&$_query$$.$and.length==0&&delete $_query$$.$and;dmgiaban.find($_query$$).sort($sort$$).lean().then(async $_q_giabans$$=>{$_q_giabans$$.length>0?$callback$$(null,$_q_giabans$$):($_q_giabans$$=_.cloneDeep($_query$$),$_q_giabans$$.ma_vt={$in:["",null]},$_q_giabans$$.ma_nvt={$in:["",null,$vt$$.ma_nvt]},
|
|
30
|
+
$_q_giabans$$.ma_nvt2={$in:["",null,...$vt$$.ma_nvt2]},$_q_giabans$$.ma_nvt3={$in:["",null,...$vt$$.ma_nvt3]},$_q_giabans$$.ma_nvt4={$in:["",null,...$vt$$.ma_nvt4]},$_q_giabans$$.ma_danh_muc={$in:["",null,$vt$$.ma_danh_muc]},dmgiaban.find($_q_giabans$$).sort($sort$$).lean().then(async $giabans$$=>{$callback$$(null,$giabans$$)}).catch($error$$=>{$callback$$({message:$error$$.message})}))}).catch($error$$=>{$callback$$({message:$error$$.message})})})},discount_vt:$callback$$=>{if($condition$$.get_discount==
|
|
31
|
+
0)return $callback$$(null,[]);setImmediate(async()=>{let $query_ck$$=_.cloneDeep($query$$);$query_ck$$.$and.push({$or:[{ap_dung_lan_mua_tu_thu:{$in:[0,null]}},{ap_dung_lan_mua_tu_thu:{$lte:$lan_mua_thu$$}}]});$query_ck$$.$and.push({$or:[{ap_dung_lan_mua_den_thu:{$in:[0,null]}},{ap_dung_lan_mua_den_thu:{$gte:$lan_mua_thu$$}}]});$condition$$.online!=void 0&&($query_ck$$.online=$condition$$.online);$condition$$.offline!=void 0&&($query_ck$$.offline=$condition$$.offline);delete $query_ck$$.ma_kh;delete $query_ck$$.nh_kh;
|
|
32
|
+
delete $query_ck$$.nh_kh2;delete $query_ck$$.nh_kh3;delete $query_ck$$.nh_kh4;delete $query_ck$$.nh_kh5;delete $query_ck$$.ma_tt1;delete $query_ck$$.ma_tt2;delete $query_ck$$.ma_tt3;$query_ck$$.$and&&$query_ck$$.$and.length==0&&delete $query_ck$$.$and;let $chietkhaus$$;try{$chietkhaus$$=await new Promise(($resolve$$,$reject$$)=>{async.parallel({cktheovt:$callback$$=>{let $_query$$=_.cloneDeep($query_ck$$);dmchietkhau.find($_query$$).sort($sort$$).lean().then(async $chietkhaus$$=>{$callback$$(null,
|
|
33
|
+
$chietkhaus$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})},cktheonvt:$callback$$=>{let $_q$$=_.cloneDeep($query_ck$$);$_q$$.ma_vt={$in:["",null]};$_q$$.ma_nvt={$in:["",null,$vt$$.ma_nvt]};$_q$$.ma_nvt2={$in:["",null,...$vt$$.ma_nvt2]};$_q$$.ma_nvt3={$in:["",null,...$vt$$.ma_nvt3]};$_q$$.ma_nvt4={$in:["",null,...$vt$$.ma_nvt4]};$_q$$.ma_danh_muc={$in:["",null,$vt$$.ma_danh_muc]};dmchietkhau.find($_q$$).sort($sort$$).lean().then(async $chietkhaus$$=>{$callback$$(null,$chietkhaus$$)}).catch($error$$=>
|
|
34
|
+
{$callback$$({message:$error$$.message})})}},async($chietkhaus$jscomp$3_e$$,$rs$$)=>{if($chietkhaus$jscomp$3_e$$)return $reject$$($chietkhaus$jscomp$3_e$$);$chietkhaus$jscomp$3_e$$=$rs$$.cktheovt.concat($rs$$.cktheonvt);$resolve$$($chietkhaus$jscomp$3_e$$)})})}catch($e$$){return $callback$$($e$$)}$chietkhaus$$=$chietkhaus$$.filter($ck$$=>(!$ck$$.ma_kh||$condition$$.ma_kh==$ck$$.ma_kh)&&(!$ck$$.nh_kh||($condition$$.nh_kh_me||[]).find($nh$$=>$ck$$.nh_kh==$nh$$))&&(!$ck$$.nh_kh2||$ck$$.nh_kh2.length==
|
|
35
|
+
0||($condition$$.nh_kh2_me||[]).find($nh$$=>$ck$$.nh_kh2.indexOf($nh$$)>=0))&&(!$ck$$.nh_kh3||$ck$$.nh_kh3.length==0||($condition$$.nh_kh3_me||[]).find($nh$$=>$ck$$.nh_kh3.indexOf($nh$$)>=0))&&(!$ck$$.nh_kh4||$ck$$.nh_kh4.length==0||($condition$$.nh_kh4_me||[]).find($nh$$=>$ck$$.nh_kh4.indexOf($nh$$)>=0))&&(!$ck$$.nh_kh5||$ck$$.nh_kh5.length==0||($condition$$.nh_kh5_me||[]).find($nh$$=>$ck$$.nh_kh5.indexOf($nh$$)>=0))&&(!$ck$$.ma_tt1||$condition$$.ma_tt1==$ck$$.ma_tt1)&&(!$ck$$.ma_tt2||$condition$$.ma_tt2==
|
|
36
|
+
$ck$$.ma_tt2)&&(!$ck$$.ma_tt3||$condition$$.ma_tt3==$ck$$.ma_tt3)&&(!$ck$$.nh_tt||($condition$$.nh_tt_me||[]).find($nh$$=>$ck$$.nh_tt==$nh$$))&&(!$ck$$.nh_tt2||$ck$$.nh_tt2.length==0||($condition$$.nh_tt2_me||[]).find($nh$$=>$ck$$.nh_tt2.indexOf($nh$$)>=0))&&(!$ck$$.nh_tt3||$ck$$.nh_tt3.length==0||($condition$$.nh_tt3_me||[]).find($nh$$=>$ck$$.nh_tt3.indexOf($nh$$)>=0))&&(!$ck$$.nh_tt4||$ck$$.nh_tt4.length==0||($condition$$.nh_tt4_me||[]).find($nh$$=>$ck$$.nh_tt4.indexOf($nh$$)>=0))&&(!$ck$$.nh_tt5||
|
|
37
|
+
$ck$$.nh_tt5.length==0||($condition$$.nh_tt5_me||[]).find($nh$$=>$ck$$.nh_tt5.indexOf($nh$$)>=0)));await getSLDaBanCKs($chietkhaus$$);$chietkhaus$$=$chietkhaus$$.filter($ck$$=>!$ck$$.tong_sl_ap_dung||!$ck$$.sl_da_ban||$ck$$.sl_con_lai>0);$callback$$(null,$chietkhaus$$)})},promotion_vt:$callback$$=>{if($condition$$.get_promotion==0)return $callback$$(null,[]);setImmediate(async()=>{let $query_promotion$$=_.cloneDeep($query$$);$condition$$.online!=void 0&&($query_promotion$$.online=$condition$$.online);
|
|
38
|
+
$condition$$.offline!=void 0&&($query_promotion$$.offline=$condition$$.offline);let $sort_km$$={stt_uu_tien:1};$query_promotion$$.$and&&$query_promotion$$.$and.length==0&&delete $query_promotion$$.$and;delete $query_promotion$$.ma_kh;delete $query_promotion$$.nh_kh;delete $query_promotion$$.nh_kh2;delete $query_promotion$$.nh_kh3;delete $query_promotion$$.nh_kh4;delete $query_promotion$$.nh_kh5;delete $query_promotion$$.ma_tt1;delete $query_promotion$$.ma_tt2;delete $query_promotion$$.ma_tt3;try{var $khuyenmais_khuyenmais_tm$$=
|
|
39
|
+
await new Promise(($resolve$$,$reject$$)=>{async.parallel({theovt:$callback$$=>{dmkhuyenmai.find($query_promotion$$).sort($sort_km$$).lean().then($khuyenmai$$=>{$callback$$(null,$khuyenmai$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})},theonvt:$callback$$=>{let $_q$$=_.cloneDeep($query_promotion$$);$_q$$.ma_vt={$in:["",null]};$_q$$.ma_nvt={$in:["",null,$vt$$.ma_nvt]};$_q$$.ma_nvt2={$in:["",null,...$vt$$.ma_nvt2]};$_q$$.ma_nvt3={$in:["",null,...$vt$$.ma_nvt3]};$_q$$.ma_danh_muc={$in:["",
|
|
40
|
+
null,$vt$$.ma_danh_muc]};dmkhuyenmai.find($_q$$).sort($sort_km$$).lean().then($khuyenmai$$=>{$callback$$(null,$khuyenmai$$)}).catch($error$$=>{$callback$$({message:$error$$.message})})}},($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$e$$=$rs$$.theovt.concat($rs$$.theonvt);$resolve$$($e$$)})})}catch($e$$){return $callback$$($e$$)}$khuyenmais_khuyenmais_tm$$=$khuyenmais_khuyenmais_tm$$.filter($ck$$=>(!$ck$$.ma_kh||$condition$$.ma_kh==$ck$$.ma_kh)&&(!$ck$$.nh_kh||($condition$$.nh_kh_me||[]).find($nh$$=>
|
|
41
|
+
$ck$$.nh_kh==$nh$$))&&(!$ck$$.nh_kh2||$ck$$.nh_kh2.length==0||($condition$$.nh_kh2_me||[]).find($nh$$=>$ck$$.nh_kh2.indexOf($nh$$)>=0))&&(!$ck$$.nh_kh3||$ck$$.nh_kh3.length==0||($condition$$.nh_kh3_me||[]).find($nh$$=>$ck$$.nh_kh3.indexOf($nh$$)>=0))&&(!$ck$$.nh_kh4||$ck$$.nh_kh4.length==0||($condition$$.nh_kh4_me||[]).find($nh$$=>$ck$$.nh_kh4.indexOf($nh$$)>=0))&&(!$ck$$.nh_kh5||$ck$$.nh_kh5.length==0||($condition$$.nh_kh5_me||[]).find($nh$$=>$ck$$.nh_kh5.indexOf($nh$$)>=0))&&(!$ck$$.ma_tt1||$condition$$.ma_tt1==
|
|
42
|
+
$ck$$.ma_tt1)&&(!$ck$$.ma_tt2||$condition$$.ma_tt2==$ck$$.ma_tt2)&&(!$ck$$.ma_tt3||$condition$$.ma_tt3==$ck$$.ma_tt3)&&(!$ck$$.nh_tt||($condition$$.nh_tt_me||[]).find($nh$$=>$ck$$.nh_tt==$nh$$))&&(!$ck$$.nh_tt2||$ck$$.nh_tt2.length==0||($condition$$.nh_tt2_me||[]).find($nh$$=>$ck$$.nh_tt2.indexOf($nh$$)>=0))&&(!$ck$$.nh_tt3||$ck$$.nh_tt3.length==0||($condition$$.nh_tt3_me||[]).find($nh$$=>$ck$$.nh_tt3.indexOf($nh$$)>=0))&&(!$ck$$.nh_tt4||$ck$$.nh_tt4.length==0||($condition$$.nh_tt4_me||[]).find($nh$$=>
|
|
43
|
+
$ck$$.nh_tt4.indexOf($nh$$)>=0))&&(!$ck$$.nh_tt5||$ck$$.nh_tt5.length==0||($condition$$.nh_tt5_me||[]).find($nh$$=>$ck$$.nh_tt5.indexOf($nh$$)>=0)));$callback$$(null,$khuyenmais_khuyenmais_tm$$)})}},async($e$jscomp$7_g$jscomp$12_giabans$$,$rs$$)=>{if($e$jscomp$7_g$jscomp$12_giabans$$)return $fn$$($e$jscomp$7_g$jscomp$12_giabans$$);if($condition$$.get_price==0)$rs$$.price={};else{$vt$$.ma_nt0||($vt$$.ma_nt0="VND");!($rs$$.giabans.length>0)||$rs$$.giabans[0].sl_tu||$rs$$.giabans[0].sl_den||$rs$$.giabans[0].t_sl_tu||
|
|
44
|
+
$rs$$.giabans[0].t_sl_den||($rs$$.giabans=[$rs$$.giabans[0]]);$e$jscomp$7_g$jscomp$12_giabans$$=[];for(let $g$$ of $rs$$.giabans)$g$$.sl_tu=$g$$.sl_tu||0,$g$$.sl_den=$g$$.sl_den||0,$g$$.t_sl_tu=$g$$.t_sl_tu||0,$g$$.t_sl_den=$g$$.t_sl_den||0,$e$jscomp$7_g$jscomp$12_giabans$$.find($_g$$=>$_g$$.sl_tu===$g$$.sl_tu&&$_g$$.sl_den===$g$$.sl_den&&$_g$$.t_sl_tu===$g$$.t_sl_tu&&$_g$$.t_sl_den===$g$$.t_sl_den)||$e$jscomp$7_g$jscomp$12_giabans$$.push($g$$);$rs$$.giabans=$e$jscomp$7_g$jscomp$12_giabans$$;$rs$$.giabans.find($g$$=>
|
|
45
|
+
!$g$$.sl_tu)||($rs$$.giabans=[...$rs$$.giabans,{gia_ban_le:$vt$$.gia_ban_le0||$vt$$.gia_ban_le||0,gia_ban_buon:$vt$$.gia_ban_buon0||$vt$$.gia_ban_buon||0,ma_nt:$vt$$.ma_nt0,gia_ban_chua_thue:$vt$$.gia_ban_chua_thue,t_sl_tu:0,t_sl_den:0,sl_tu:0,sl_den:$rs$$.giabans.length>0?$rs$$.giabans.sort(($a$$,$b$$)=>$a$$.sl_tu-$b$$.sl_tu)[0].sl_tu-.001:0}]);for(var $g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$ of $rs$$.giabans)$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt||($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt=
|
|
46
|
+
"VND"),$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_thue=$vt$$.ma_thue,$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.thue_suat=$vt$$.thue_suat;await $rs$$.giabans.asyncJoinModel2($condition$$.id_app,"currency",{where:"ma_nt",fields:["ty_gia"]});await [$vt$$].asyncJoinModel2($condition$$.id_app,"currency",{where:{ma_nt0:"ma_nt"},fields:[{ty_gia0:"ty_gia"}]});$vt$$.ma_thue&&await [$vt$$].asyncJoinModel2($condition$$.id_app,"vat",{where:{ma_thue:"ma_thue"},fields:[{thue_suat:"thue_suat"}]});
|
|
47
|
+
$rs$$.giabans.forEach($g$$=>{$par$$&&$par$$.ma_nt&&$par$$.ty_gia&&$g$$.ma_nt!==$par$$.ma_nt?($g$$.gia_ban_le0_qd=utils.round(($vt$$.gia_ban_le0||0)*$vt$$.ty_gia0/$par$$.ty_gia,2),$g$$.gia_ban_buon0_qd=utils.round(($vt$$.gia_ban_buon0||0)*$vt$$.ty_gia0/$par$$.ty_gia,2),$g$$.gia_ban_le=utils.round($g$$.gia_ban_le*$g$$.ty_gia/$par$$.ty_gia,2),$g$$.gia_ban_buon=utils.round(($g$$.gia_ban_buon||0)*$g$$.ty_gia/$par$$.ty_gia,2),$g$$.ma_nt=$par$$.ma_nt,$g$$.ty_gia=$par$$.ty_gia):($g$$.gia_ban_le0_qd=$vt$$.gia_ban_le0||
|
|
48
|
+
0,$g$$.gia_ban_buon0_qd=$vt$$.gia_ban_buon0||0)});for($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=0;$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$<$rs$$.giabans.length;$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$++){$e$jscomp$7_g$jscomp$12_giabans$$=$rs$$.giabans[$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$];$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_chua_thue?($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd,
|
|
49
|
+
$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon,$vt$$.ma_thue&&($vt$$.thue_suat=$vt$$.thue_suat||0,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct*(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd=
|
|
50
|
+
utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct*(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct*(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct*(1+$vt$$.thue_suat/100),2))):($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=
|
|
51
|
+
$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon,$vt$$.ma_thue&&($vt$$.thue_suat=$vt$$.thue_suat||0,$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd/(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd/
|
|
52
|
+
(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le/(1+$vt$$.thue_suat/100),2),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon/(1+$vt$$.thue_suat/100),2)));delete $e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_chua_thue;if($e$jscomp$7_g$jscomp$12_giabans$$.ma_dvt_gia_ban){let $qddct$$=await global.getModel("dmqddvt").findOne({id_app:$condition$$.id_app,ma_vt:$condition$$.ma_vt,
|
|
53
|
+
ma_dvt:$e$jscomp$7_g$jscomp$12_giabans$$.ma_dvt_gia_ban}).lean();if($qddct$$){let $he_so_qd_dvtc$$=$qddct$$.ty_le_qd?1/$qddct$$.ty_le_qd:1;$qddct$$.mau&&$qddct$$.tu&&($he_so_qd_dvtc$$=$qddct$$.mau/$qddct$$.tu);$he_so_qd_dvtc$$&&$he_so_qd_dvtc$$!=1&&($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon*$he_so_qd_dvtc$$,round),
|
|
54
|
+
$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le0_qd_ct*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon0_qd_ct*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_le_ct*$he_so_qd_dvtc$$,round),$e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct=utils.round($e$jscomp$7_g$jscomp$12_giabans$$.gia_ban_buon_ct*
|
|
55
|
+
$he_so_qd_dvtc$$,round))}}$e$jscomp$7_g$jscomp$12_giabans$$.he_so_qd=$he_so_qd$$;$condition$$.ma_dvt_sd&&$rs$$.giabans.forEach($g$$=>{$g$$.gia_ban_le=utils.round($g$$.gia_ban_le*$he_so_qd$$,round);$g$$.gia_ban_buon=utils.round($g$$.gia_ban_buon*$he_so_qd$$,round);$g$$.gia_ban_le0_qd_ct=utils.round($g$$.gia_ban_le0_qd_ct*$he_so_qd$$,round);$g$$.gia_ban_buon0_qd_ct=utils.round($g$$.gia_ban_buon0_qd_ct*$he_so_qd$$,round);$g$$.gia_ban_le_ct=utils.round($g$$.gia_ban_le_ct*$he_so_qd$$,round);$g$$.gia_ban_buon_ct=
|
|
56
|
+
utils.round($g$$.gia_ban_buon_ct*$he_so_qd$$,round);$g$$.ma_dvt=$condition$$.ma_dvt_sd;$g$$.he_so_qd=$he_so_qd$$})}$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$rs$$.giabans.filter($g$$=>$g$$.sl_tu<=$condition$$.so_luong&&(!$g$$.sl_den||$g$$.sl_den>$condition$$.so_luong)&&$g$$.t_sl_tu<=$condition$$.t_so_luong&&(!$g$$.t_sl_den||$g$$.t_sl_den>$condition$$.t_so_luong)&&(!$g$$.t_sl_ntt_tu||$g$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$g$$.t_sl_ntt_den||$g$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&
|
|
57
|
+
(!$g$$.t_tien_ntt_tu||$g$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$g$$.t_tien_ntt_den||$g$$.t_tien_ntt_den>$condition$$.t_tien_ntt));$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.length>0?$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$[0]:$rs$$.giabans[0]||{};$rs$$.price={gia_ban_le0_qd:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le0_qd,gia_ban_buon0_qd:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon0_qd,
|
|
58
|
+
gia_ban_le:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le,gia_ban_buon:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon,gia_ban_le0_qd_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le0_qd_ct,gia_ban_buon0_qd_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon0_qd_ct,gia_ban_le_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_le_ct,gia_ban_buon_ct:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.gia_ban_buon_ct,
|
|
59
|
+
ma_nt:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ma_nt,ty_gia:$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.ty_gia,ma_thue:$vt$$.ma_thue,thue_suat:$vt$$.thue_suat,prices:$rs$$.giabans}}if($condition$$.get_discount!=0){$rs$$.discount=$rs$$.discount_vt;$rs$$.discount.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.price.discount=$rs$$.discount.sort(function($a$$,$b$$){return($b$$.ap_dung_lan_mua_tu_thu||0)>($a$$.ap_dung_lan_mua_tu_thu||0)?1:$b$$.ty_le_ck-$a$$.ty_le_ck});let $discounts$$=
|
|
60
|
+
[];$rs$$.price.discount.forEach($d$$=>{$d$$.tien_ck&&$rs$$.price.gia_ban_le_ct&&($d$$.ty_le_ck=$d$$.tien_ck/$rs$$.price.gia_ban_le_ct*100);$d$$.sl_tu=$d$$.sl_tu||0;$d$$.sl_den=$d$$.sl_den||0;$d$$.gt_hd_tu=$d$$.gt_hd_tu||0;$d$$.gt_hd_den=$d$$.gt_hd_den||0;$discounts$$.push($d$$)});$rs$$.price.discount=$discounts$$;let $t_gt_hd$$=$condition$$.t_gt_hd||0,$t_tien_ntt$$=$condition$$.t_tien_ntt||0,$t_so_luong_ntt$$=$condition$$.t_so_luong_ntt||0,$default_cks$$=$discounts$$.filter($d$$=>(!$d$$.gt_hd_tu||
|
|
61
|
+
$d$$.gt_hd_tu<=$t_gt_hd$$)&&(!$d$$.gt_hd_den||$d$$.gt_hd_den>$t_gt_hd$$)&&!$d$$.mua_them&&$condition$$.so_luong>=$d$$.sl_tu&&(!$d$$.sl_den||$d$$.sl_den>$condition$$.so_luong)&&(!$d$$.t_sl_tu||$d$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$d$$.t_sl_den||$d$$.t_sl_den>$condition$$.t_so_luong)&&(!$d$$.t_sl_ntt_tu||$d$$.t_sl_ntt_tu<=$t_so_luong_ntt$$)&&(!$d$$.t_sl_ntt_den||$d$$.t_sl_ntt_den>$t_so_luong_ntt$$)&&(!$d$$.t_tien_ntt_tu||$d$$.t_tien_ntt_tu<=$t_tien_ntt$$)&&(!$d$$.t_tien_ntt_den||$d$$.t_tien_ntt_den>
|
|
62
|
+
$t_tien_ntt$$));var $default_ck_groups$jscomp$2_i$$;$condition$$.id_cs_ck&&($default_ck_groups$jscomp$2_i$$=$default_cks$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs_ck));!$default_ck_groups$jscomp$2_i$$&&$default_cks$$.length>0&&($default_ck_groups$jscomp$2_i$$=[...(new Set($default_cks$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$default_cks$$.filter($d$$=>($d$$.ma_nhom||"")==($ma_nhom$$||""))})),$default_ck_groups$jscomp$2_i$$=await calcDefaultDiscount($condition$$.id_app,
|
|
63
|
+
$default_ck_groups$jscomp$2_i$$));$default_ck_groups$jscomp$2_i$$&&(underscore.extend($rs$$.price,{sl_tu:$default_ck_groups$jscomp$2_i$$.sl_tu,ty_le_ck:$default_ck_groups$jscomp$2_i$$.ty_le_ck||0,tien_ck:$default_ck_groups$jscomp$2_i$$.tien_ck,gt_hd_tu:$default_ck_groups$jscomp$2_i$$.gt_hd_tu,gt_hd_den:$default_ck_groups$jscomp$2_i$$.gt_hd_den,sl_ap_dung:$default_ck_groups$jscomp$2_i$$.sl_ap_dung,so_tien_max:$default_ck_groups$jscomp$2_i$$.so_tien_max,id_cs:$default_ck_groups$jscomp$2_i$$._id}),$rs$$.tien_ck_tmp=
|
|
64
|
+
$rs$$.tien_ck,$rs$$.tien_ck_tmp||($rs$$.tien_ck_tmp=utils.round($rs$$.price.gia_ban_le_ct*$rs$$.ty_le_ck/100,2)),$rs$$.price.gia_ban_le_sau_ck_tmp=Math.max(0,$rs$$.price.gia_ban_le-$rs$$.tien_ck_tmp));$default_ck_groups$jscomp$2_i$$=underscore.filter($rs$$.discount,$d$$=>$d$$.sl_tu>1).sort(function($a$$,$b$$){return $b$$.ty_le_ck-$a$$.ty_le_ck});$default_ck_groups$jscomp$2_i$$.length>0&&($rs$$.price.ck_sl_tu2=$default_ck_groups$jscomp$2_i$$)}if($condition$$.get_promotion!=0){$rs$$.promotion=$rs$$.promotion_vt;
|
|
65
|
+
$rs$$.promotion.forEach($r$$=>{$r$$.id_cs=$r$$._id});$rs$$.promotion&&$rs$$.promotion.forEach($p$$=>{delete $p$$.status;delete $p$$.user_created;delete $p$$.user_updated;delete $p$$.date_created;delete $p$$.date_updated;delete $p$$.exfields;delete $p$$.id_app;delete $p$$.dmkh;delete $p$$.dmkho;delete $p$$.dmnvt;delete $p$$.dmvt;delete $p$$.__v});$rs$$.price.promotion=$rs$$.promotion||[];$condition$$.ma_ct?($rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct||$p$$.chi_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())>=
|
|
66
|
+
0),$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.khong_su_dung_cho_ct||$p$$.khong_su_dung_cho_ct.toUpperCase().split(",").indexOf($condition$$.ma_ct.toUpperCase())<0)):$rs$$.price.promotion=$rs$$.price.promotion.filter($p$$=>!$p$$.chi_su_dung_cho_ct&&!$p$$.khong_su_dung_cho_ct);for($default_ck_groups$jscomp$2_i$$=0;$default_ck_groups$jscomp$2_i$$<$rs$$.price.promotion.length;$default_ck_groups$jscomp$2_i$$++)$g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$=$rs$$.price.promotion[$default_ck_groups$jscomp$2_i$$],
|
|
67
|
+
await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).asyncJoinModel2($condition$$.id_app,dmvt,{where:"ma_vt",fields:["ten_vt","picture"]}),await ($g$jscomp$10_gia_ban_mac_dinh_giabanstheosoluong_i_p$$.details_km||[]).filter($d$$=>$d$$.ma_tt1).asyncJoinModel2($condition$$.id_app,"dmtt",{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),setFields:($item$$,$ref$$)=>{$item$$.thuoc_tinh=$ref$$}});let $promotions_df$$=$rs$$.price.promotion.filter($p$$=>$p$$.details_km&&
|
|
68
|
+
$p$$.details_km.length>0&&$p$$.sl_tu<=$condition$$.so_luong&&(!$p$$.sl_den||$p$$.sl_den>=$condition$$.so_luong||$p$$.sl_den===$p$$.sl_tu)&&(!$p$$.t_sl_tu||$p$$.t_sl_tu<=$condition$$.t_so_luong)&&(!$p$$.t_sl_den||$p$$.t_sl_den>$condition$$.t_so_luong)&&(!$p$$.t_sl_ntt_tu||$p$$.t_sl_ntt_tu<=$condition$$.t_so_luong_ntt)&&(!$p$$.t_sl_ntt_den||$p$$.t_sl_ntt_den>$condition$$.t_so_luong_ntt)&&(!$p$$.t_tien_ntt_tu||$p$$.t_tien_ntt_tu<=$condition$$.t_tien_ntt)&&(!$p$$.t_tien_ntt_den||$p$$.t_tien_ntt_den>$condition$$.t_tien_ntt));
|
|
69
|
+
var $groups$$;$condition$$.id_cs&&($groups$$=$promotions_df$$.find($d$$=>$d$$._id.toString()==$condition$$.id_cs));!$groups$$&&$promotions_df$$.length>0&&($promotions_df$$.forEach($p$$=>{$p$$.t_sl_km=($p$$.details_km||[]).map($d$$=>$d$$.sl_km||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)}),$groups$$=[...(new Set($promotions_df$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$promotions_df$$.filter($d$$=>($d$$.ma_nhom||"")==$ma_nhom$$)})),$groups$$=await calcDefaultPromotion($condition$$.id_app,
|
|
70
|
+
$groups$$));$rs$$.price.default_promotion=$groups$$}$fn$$(null,$rs$$.price)})}else $fn$$(`Condition required ma_vt,id_app. Current condition ${JSON.stringify($condition$$)}`)};
|
package/server/libs/joinData.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const lodash=require("lodash"),{runWithoutSession}=require("./sessionContext")
|
|
2
|
-
const
|
|
1
|
+
const lodash=require("lodash"),{runWithoutSession}=require("./sessionContext"),{cachedKeys:cachedKeysFunc,generateRedisKey,sortObjectKeys}=require("./redis-cache"),{isValidObjectIdValue}=require("./utils");let cachedKeys={};try{cachedKeys=cachedKeysFunc()}catch($e$$){Logger.warn("Redis cache config not found, caching disabled.")}
|
|
2
|
+
const redisGet=$key$$=>new Promise($resolve$$=>global.clientRedis.get($key$$,($err$$,$reply$$)=>$resolve$$($reply$$||null))),redisMGet=$keys$$=>new Promise($resolve$$=>global.clientRedis.mget($keys$$,($err$$,$reply$$)=>$resolve$$($reply$$||[])));
|
|
3
3
|
function findDynamicFields($dataArray$$){if(!$dataArray$$||$dataArray$$.length<2)return[];const $baseline$$=$dataArray$$[0],$dynamicFields$$=new Set;for(let $i$$=1;$i$$<$dataArray$$.length;$i$$++){const $currentObject$$=$dataArray$$[$i$$];var $currentValue_keys$$=Object.keys($currentObject$$);for(const $key$$ of $currentValue_keys$$)$dynamicFields$$.has($key$$)||($currentValue_keys$$=$currentObject$$[$key$$],$currentValue_keys$$!==null&&typeof $currentValue_keys$$==="object"||$baseline$$[$key$$]===
|
|
4
4
|
$currentValue_keys$$||$dynamicFields$$.add($key$$))}return Array.from($dynamicFields$$)}function getFields($fields$$){if($fields$$&&!lodash.isFunction($fields$$)){var $select$$={};(Array.isArray($fields$$)?$fields$$:[$fields$$]).forEach($map$$=>{lodash.isString($map$$)?$select$$[$map$$]=1:lodash.isObject($map$$)&&($map$$.value?$select$$[$map$$.value]=1:Object.keys($map$$).forEach($key$$=>$select$$[$map$$[$key$$]]=1))});return Object.keys($select$$).length>0?$select$$:void 0}}
|
|
5
5
|
function normalizeArgs($items$$,$id_app$$,$model$$,$joinFields$$,$_fn_fn$$,$options$$){let $_id_app$$=$id_app$$,$_model$$=$model$$,$_joinFields$$=$joinFields$$;Array.isArray($id_app$$)&&($_id_app$$=$id_app$$,$_model$$=null,$_joinFields$$=$model$$,$_fn_fn$$=$joinFields$$);$_joinFields$$=$_joinFields$$?Array.isArray($_joinFields$$)?$_joinFields$$:[$_joinFields$$]:[];$_joinFields$$.forEach($join$$=>{$join$$.fields_need_get_data||$join$$.setFields||$join$$.asyncSetFields||($join$$.fields_need_get_data=
|
|
@@ -18,7 +18,7 @@ else return{type:"SKIP"};if("_id"in $field_manualQ_staticQuery$$&&!isValidObject
|
|
|
18
18
|
{...$field_manualQ_staticQuery$$};if($finalIdApp_join$jscomp$1_value$$.where&&lodash.isObject($finalIdApp_join$jscomp$1_value$$.where))for($k$jscomp$2_queryForKey$$ in $finalIdApp_join$jscomp$1_value$$.where)$dynamicKey_queryForKey_v$$=$finalIdApp_join$jscomp$1_value$$.where[$k$jscomp$2_queryForKey$$],lodash.isObject($dynamicKey_queryForKey_v$$)?$field_manualQ_staticQuery$$[$k$jscomp$2_queryForKey$$]=$dynamicKey_queryForKey_v$$:$field_manualQ_staticQuery$$[$dynamicKey_queryForKey_v$$]=$item$$[$k$jscomp$2_queryForKey$$];
|
|
19
19
|
if($model$$.schema?.paths?.id_app)if($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$($field_manualQ_staticQuery$$.id_app))$dynamicKey$$=$field_manualQ_staticQuery$$.id_app=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$;
|
|
20
20
|
else return{type:"SKIP"};if("_id"in $field_manualQ_staticQuery$$&&!isValidObjectIdValue($field_manualQ_staticQuery$$._id))return{type:"SKIP"};$dynamicKey_queryForKey_v$$={...$field_manualQ_staticQuery$$};$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=generateRedisKey($model$$.modelName,$dynamicKey_queryForKey_v$$,$dynamicKey$$);return{type:"MANUAL",query:$field_manualQ_staticQuery$$,cacheKey:$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$}}
|
|
21
|
-
function createQueryPlan($dynamicFields$jscomp$1_items$$,$joinFields$$,$modelOrigin$$,$id_app$$){const $batchPlan$$={},$manualQueries$$=[],$metaMap$$=new Map;$dynamicFields$jscomp$1_items$$.forEach($item$$=>{const $itemMetas$$=[];$joinFields$$.forEach($join$$=>{var $_model$jscomp$1_cacheKey$$=typeof $modelOrigin$$!=="function"||$modelOrigin$$.findOne?$modelOrigin$$:$modelOrigin$$($item$$);lodash.isString($_model$jscomp$1_cacheKey$$)&&($_model$jscomp$1_cacheKey$$=
|
|
21
|
+
function createQueryPlan($dynamicFields$jscomp$1_items$$,$joinFields$$,$modelOrigin$$,$id_app$$){const $batchPlan$$={},$manualQueries$$=[],$metaMap$$=new Map;$dynamicFields$jscomp$1_items$$.forEach($item$$=>{const $itemMetas$$=[];$joinFields$$.forEach($join$$=>{var $_model$jscomp$1_cacheKey$$=typeof $modelOrigin$$!=="function"||$modelOrigin$$.findOne?$modelOrigin$$:$modelOrigin$$($item$$);lodash.isString($_model$jscomp$1_cacheKey$$)&&($_model$jscomp$1_cacheKey$$=global.getModel($_model$jscomp$1_cacheKey$$));
|
|
22
22
|
if($_model$jscomp$1_cacheKey$$){var $strategy$$=analyzeJoinStrategy($join$$,$item$$,$_model$jscomp$1_cacheKey$$,$id_app$$);if($strategy$$&&$strategy$$.type!=="SKIP"){const $fields$$=$join$$.fields_need_get_data;if($strategy$$.type==="MANUAL")$manualQueries$$.push({model:$_model$jscomp$1_cacheKey$$,modelName:$_model$jscomp$1_cacheKey$$.modelName,query:$strategy$$.query,fields:$fields$$,item:$item$$,join:$join$$,cacheKey:$strategy$$.cacheKey}),$itemMetas$$.push({type:"MANUAL",join:$join$$,cacheKey:$strategy$$.cacheKey});
|
|
23
23
|
else if($strategy$$.type==="BATCH"){const {signature:$signature$$,dynamicKey:$dynamicKey$$,dynamicValue:$dynamicValue$$,staticQuery:$staticQuery$$}=$strategy$$;$batchPlan$$[$signature$$]||($batchPlan$$[$signature$$]={model:$_model$jscomp$1_cacheKey$$,staticQuery:$staticQuery$$,dynamicKey:$dynamicKey$$,signature:$signature$$,values:new Set,fields:void 0});mergeFields($batchPlan$$[$signature$$],$fields$$);$batchPlan$$[$signature$$].values.add($dynamicValue$$);$_model$jscomp$1_cacheKey$$=`${$signature$$}_VAL_${$dynamicValue$$==
|
|
24
24
|
null?"__NULL__":$dynamicKey$$==="_id"?$dynamicValue$$.toString():$dynamicValue$$}`.replace(/\./g,"_");$itemMetas$$.push({type:"BATCH",join:$join$$,cacheKey:$_model$jscomp$1_cacheKey$$})}}else $itemMetas$$.push({type:"SKIP",join:$join$$,cacheKey:"__SKIP__"})}});$itemMetas$$.length&&$metaMap$$.set($item$$,$itemMetas$$)});$dynamicFields$jscomp$1_items$$=findDynamicFields($manualQueries$$.map($m$$=>$m$$.query));if($dynamicFields$jscomp$1_items$$.length===1){const $dynamicKey$$=$dynamicFields$jscomp$1_items$$[0],
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const lodash=require("lodash"),{runWithoutSession}=require("./sessionContext"),{cachedKeys:cachedKeysFunc,generateRedisKey,sortObjectKeys}=require("./redis-cache"),{isValidObjectIdValue}=require("./utils");let cachedKeys={};try{cachedKeys=cachedKeysFunc()}catch($e$$){Logger.warn("Redis cache config not found, caching disabled.")}
|
|
2
|
+
const redisGet=$key$$=>new Promise($resolve$$=>global.clientRedis.get($key$$,($err$$,$reply$$)=>$resolve$$($reply$$||null))),redisMGet=$keys$$=>new Promise($resolve$$=>global.clientRedis.mget($keys$$,($err$$,$reply$$)=>$resolve$$($reply$$||[])));
|
|
3
|
+
function findDynamicFields($dataArray$$){if(!$dataArray$$||$dataArray$$.length<2)return[];const $baseline$$=$dataArray$$[0],$dynamicFields$$=new Set;for(let $i$$=1;$i$$<$dataArray$$.length;$i$$++){const $currentObject$$=$dataArray$$[$i$$];var $currentValue_keys$$=Object.keys($currentObject$$);for(const $key$$ of $currentValue_keys$$)$dynamicFields$$.has($key$$)||($currentValue_keys$$=$currentObject$$[$key$$],$currentValue_keys$$!==null&&typeof $currentValue_keys$$==="object"||$baseline$$[$key$$]===
|
|
4
|
+
$currentValue_keys$$||$dynamicFields$$.add($key$$))}return Array.from($dynamicFields$$)}function getFields($fields$$){if($fields$$&&!lodash.isFunction($fields$$)){var $select$$={};(Array.isArray($fields$$)?$fields$$:[$fields$$]).forEach($map$$=>{lodash.isString($map$$)?$select$$[$map$$]=1:lodash.isObject($map$$)&&($map$$.value?$select$$[$map$$.value]=1:Object.keys($map$$).forEach($key$$=>$select$$[$map$$[$key$$]]=1))});return Object.keys($select$$).length>0?$select$$:void 0}}
|
|
5
|
+
function normalizeArgs($items$$,$id_app$$,$model$$,$joinFields$$,$_fn_fn$$,$options$$){let $_id_app$$=$id_app$$,$_model$$=$model$$,$_joinFields$$=$joinFields$$;Array.isArray($id_app$$)&&($_id_app$$=$id_app$$,$_model$$=null,$_joinFields$$=$model$$,$_fn_fn$$=$joinFields$$);$_joinFields$$=$_joinFields$$?Array.isArray($_joinFields$$)?$_joinFields$$:[$_joinFields$$]:[];$_joinFields$$.forEach($join$$=>{$join$$.fields_need_get_data||$join$$.setFields||$join$$.asyncSetFields||($join$$.fields_need_get_data=
|
|
6
|
+
getFields($join$$.fields))});return{items:$items$$||[],id_app:$_id_app$$,modelOrigin:$_model$$,joinFields:$_joinFields$$,fn:$_fn_fn$$||(()=>{}),options:$options$$||{cache:!0}}}function safeCallback($fn$$,$result$$){try{typeof $fn$$==="function"&&$fn$$($result$$)}catch($e$$){Logger.error("Callback Error:",$e$$)}}
|
|
7
|
+
function analyzeJoinStrategy($finalIdApp_join$jscomp$1_value$$,$item$$,$model$$,$globalIdApp$$){$finalIdApp_join$jscomp$1_value$$.modelName=$model$$?.modelName;var $cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=$currentQueryIdApp$$=>{if($model$$.schema?.paths?.id_app)return $item$$.id_app||$globalIdApp$$||$currentQueryIdApp$$},$dynamicKey_queryForKey_v$$={},$dynamicKey$$=$globalIdApp$$;if($finalIdApp_join$jscomp$1_value$$.where&&
|
|
8
|
+
lodash.isFunction($finalIdApp_join$jscomp$1_value$$.where)){let $q$$=$finalIdApp_join$jscomp$1_value$$.where($item$$)||{};if($model$$.schema?.paths?.id_app&&!$q$$.id_app)if($finalIdApp_join$jscomp$1_value$$=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$($q$$.id_app))$q$$.id_app=$finalIdApp_join$jscomp$1_value$$;else return{type:"SKIP"};if("_id"in $q$$&&!isValidObjectIdValue($q$$._id)||$model$$.schema?.paths?.id_app&&
|
|
9
|
+
Object.keys($q$$).length>1&&Object.keys($q$$).filter($k$$=>$k$$!=="id_app"&&($q$$[$k$$]||$q$$[$k$$]===0)).length==0)return{type:"SKIP"};$dynamicKey_queryForKey_v$$={...$q$$};$dynamicKey$$=$model$$.schema?.paths?.id_app?$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$($q$$.id_app):$globalIdApp$$;$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=
|
|
10
|
+
generateRedisKey($model$$.modelName,$dynamicKey_queryForKey_v$$,$dynamicKey$$);return{type:"MANUAL",query:$q$$,cacheKey:$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$}}if(typeof $finalIdApp_join$jscomp$1_value$$.where==="string"){var $field_manualQ_staticQuery$$=$finalIdApp_join$jscomp$1_value$$.where;$finalIdApp_join$jscomp$1_value$$=$item$$[$field_manualQ_staticQuery$$];if($finalIdApp_join$jscomp$1_value$$==null||
|
|
11
|
+
$finalIdApp_join$jscomp$1_value$$==="")return{type:"SKIP"};$dynamicKey$$=$field_manualQ_staticQuery$$;var $k$jscomp$2_queryForKey$$={};if($model$$.schema?.paths?.id_app)if($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$($globalIdApp$$))$k$jscomp$2_queryForKey$$.id_app=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$;
|
|
12
|
+
else return{type:"SKIP"};($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=$model$$.schema.paths[$field_manualQ_staticQuery$$])&&$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$.options&&$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$.options.ref&&
|
|
13
|
+
($dynamicKey$$="_id");if($dynamicKey$$==="_id"&&!isValidObjectIdValue($finalIdApp_join$jscomp$1_value$$))return{type:"SKIP"};$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=sortObjectKeys($k$jscomp$2_queryForKey$$);return{type:"BATCH",staticQuery:$k$jscomp$2_queryForKey$$,dynamicKey:$dynamicKey$$,dynamicValue:$finalIdApp_join$jscomp$1_value$$,signature:`${$model$$.modelName}_${JSON.stringify($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$)}_${$dynamicKey$$}`}}$field_manualQ_staticQuery$$=
|
|
14
|
+
{};let $dynamicValue$$=$dynamicKey_queryForKey_v$$=null;if($finalIdApp_join$jscomp$1_value$$.where&&lodash.isObject($finalIdApp_join$jscomp$1_value$$.where)){let $dynamicCount$$=0;for(let $k$$ in $finalIdApp_join$jscomp$1_value$$.where){const $value_key$$=$finalIdApp_join$jscomp$1_value$$.where[$k$$];if(!lodash.isObject($value_key$$)||$value_key$$._bsontype||$value_key$$.$in){const $value$$=$item$$[$k$$];if($k$$==="_id"&&!isValidObjectIdValue($value$$))return{type:"SKIP"};$dynamicCount$$===0&&($dynamicKey_queryForKey_v$$=
|
|
15
|
+
$value_key$$,$dynamicValue$$=$value$$);$dynamicCount$$++}else $field_manualQ_staticQuery$$[$k$$]=$value_key$$}$dynamicCount$$>1&&($dynamicKey_queryForKey_v$$=null)}else if($finalIdApp_join$jscomp$1_value$$.akey&&$finalIdApp_join$jscomp$1_value$$.bkey&&($dynamicKey_queryForKey_v$$=$finalIdApp_join$jscomp$1_value$$.bkey,$dynamicValue$$=$item$$[$finalIdApp_join$jscomp$1_value$$.akey],$dynamicKey_queryForKey_v$$==="_id"&&!isValidObjectIdValue($dynamicValue$$)))return{type:"SKIP"};if($dynamicKey_queryForKey_v$$){if($dynamicValue$$==
|
|
16
|
+
null||$dynamicValue$$==="")return{type:"SKIP"};if($model$$.schema?.paths?.id_app)if($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$($field_manualQ_staticQuery$$.id_app))$field_manualQ_staticQuery$$.id_app=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$;
|
|
17
|
+
else return{type:"SKIP"};if("_id"in $field_manualQ_staticQuery$$&&!isValidObjectIdValue($field_manualQ_staticQuery$$._id))return{type:"SKIP"};$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=sortObjectKeys($field_manualQ_staticQuery$$);return{type:"BATCH",staticQuery:$field_manualQ_staticQuery$$,dynamicKey:$dynamicKey_queryForKey_v$$,dynamicValue:$dynamicValue$$,signature:`${$model$$.modelName}_${JSON.stringify($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$)}_${$dynamicKey_queryForKey_v$$}`}}$field_manualQ_staticQuery$$=
|
|
18
|
+
{...$field_manualQ_staticQuery$$};if($finalIdApp_join$jscomp$1_value$$.where&&lodash.isObject($finalIdApp_join$jscomp$1_value$$.where))for($k$jscomp$2_queryForKey$$ in $finalIdApp_join$jscomp$1_value$$.where)$dynamicKey_queryForKey_v$$=$finalIdApp_join$jscomp$1_value$$.where[$k$jscomp$2_queryForKey$$],lodash.isObject($dynamicKey_queryForKey_v$$)?$field_manualQ_staticQuery$$[$k$jscomp$2_queryForKey$$]=$dynamicKey_queryForKey_v$$:$field_manualQ_staticQuery$$[$dynamicKey_queryForKey_v$$]=$item$$[$k$jscomp$2_queryForKey$$];
|
|
19
|
+
if($model$$.schema?.paths?.id_app)if($cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$($field_manualQ_staticQuery$$.id_app))$dynamicKey$$=$field_manualQ_staticQuery$$.id_app=$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$;
|
|
20
|
+
else return{type:"SKIP"};if("_id"in $field_manualQ_staticQuery$$&&!isValidObjectIdValue($field_manualQ_staticQuery$$._id))return{type:"SKIP"};$dynamicKey_queryForKey_v$$={...$field_manualQ_staticQuery$$};$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$=generateRedisKey($model$$.modelName,$dynamicKey_queryForKey_v$$,$dynamicKey$$);return{type:"MANUAL",query:$field_manualQ_staticQuery$$,cacheKey:$cacheKey_cacheKey$jscomp$1_finalIdApp$jscomp$1_finalIdApp$jscomp$2_finalIdApp$jscomp$3_path_resolveIdApp_sortedStatic_sortedStatic$$}}
|
|
21
|
+
function createQueryPlan($dynamicFields$jscomp$1_items$$,$joinFields$$,$modelOrigin$$,$id_app$$){const $batchPlan$$={},$manualQueries$$=[],$metaMap$$=new Map;$dynamicFields$jscomp$1_items$$.forEach($item$$=>{const $itemMetas$$=[];$joinFields$$.forEach($join$$=>{var $_model$jscomp$1_cacheKey$$=typeof $modelOrigin$$!=="function"||$modelOrigin$$.findOne?$modelOrigin$$:$modelOrigin$$($item$$);lodash.isString($_model$jscomp$1_cacheKey$$)&&($_model$jscomp$1_cacheKey$$=mongoose.models[$_model$jscomp$1_cacheKey$$]);
|
|
22
|
+
if($_model$jscomp$1_cacheKey$$){var $strategy$$=analyzeJoinStrategy($join$$,$item$$,$_model$jscomp$1_cacheKey$$,$id_app$$);if($strategy$$&&$strategy$$.type!=="SKIP"){const $fields$$=$join$$.fields_need_get_data;if($strategy$$.type==="MANUAL")$manualQueries$$.push({model:$_model$jscomp$1_cacheKey$$,modelName:$_model$jscomp$1_cacheKey$$.modelName,query:$strategy$$.query,fields:$fields$$,item:$item$$,join:$join$$,cacheKey:$strategy$$.cacheKey}),$itemMetas$$.push({type:"MANUAL",join:$join$$,cacheKey:$strategy$$.cacheKey});
|
|
23
|
+
else if($strategy$$.type==="BATCH"){const {signature:$signature$$,dynamicKey:$dynamicKey$$,dynamicValue:$dynamicValue$$,staticQuery:$staticQuery$$}=$strategy$$;$batchPlan$$[$signature$$]||($batchPlan$$[$signature$$]={model:$_model$jscomp$1_cacheKey$$,staticQuery:$staticQuery$$,dynamicKey:$dynamicKey$$,signature:$signature$$,values:new Set,fields:void 0});mergeFields($batchPlan$$[$signature$$],$fields$$);$batchPlan$$[$signature$$].values.add($dynamicValue$$);$_model$jscomp$1_cacheKey$$=`${$signature$$}_VAL_${$dynamicValue$$==
|
|
24
|
+
null?"__NULL__":$dynamicKey$$==="_id"?$dynamicValue$$.toString():$dynamicValue$$}`.replace(/\./g,"_");$itemMetas$$.push({type:"BATCH",join:$join$$,cacheKey:$_model$jscomp$1_cacheKey$$})}}else $itemMetas$$.push({type:"SKIP",join:$join$$,cacheKey:"__SKIP__"})}});$itemMetas$$.length&&$metaMap$$.set($item$$,$itemMetas$$)});$dynamicFields$jscomp$1_items$$=findDynamicFields($manualQueries$$.map($m$$=>$m$$.query));if($dynamicFields$jscomp$1_items$$.length===1){const $dynamicKey$$=$dynamicFields$jscomp$1_items$$[0],
|
|
25
|
+
$remainingManualQueries$$=[];$manualQueries$$.forEach($mq$$=>{var $newBatchCacheKey_val$$=$mq$$.query[$dynamicKey$$],$itemMetas$jscomp$1_metaToUpdate_staticQuery$$={...$mq$$.query};delete $itemMetas$jscomp$1_metaToUpdate_staticQuery$$[$dynamicKey$$];var $signature$jscomp$1_sortedStatic$$=sortObjectKeys($itemMetas$jscomp$1_metaToUpdate_staticQuery$$);$signature$jscomp$1_sortedStatic$$=`${$mq$$.modelName}_${JSON.stringify($signature$jscomp$1_sortedStatic$$)}_${$dynamicKey$$}`;if($dynamicKey$$!=="_id"||
|
|
26
|
+
isValidObjectIdValue($newBatchCacheKey_val$$)){if($batchPlan$$[$signature$jscomp$1_sortedStatic$$]||($batchPlan$$[$signature$jscomp$1_sortedStatic$$]={model:$mq$$.model,staticQuery:$itemMetas$jscomp$1_metaToUpdate_staticQuery$$,dynamicKey:$dynamicKey$$,signature:$signature$jscomp$1_sortedStatic$$,values:new Set,fields:void 0}),mergeFields($batchPlan$$[$signature$jscomp$1_sortedStatic$$],$mq$$.fields),$batchPlan$$[$signature$jscomp$1_sortedStatic$$].values.add($newBatchCacheKey_val$$),$newBatchCacheKey_val$$=
|
|
27
|
+
`${$signature$jscomp$1_sortedStatic$$}_VAL_${$newBatchCacheKey_val$$==null?"__NULL__":$dynamicKey$$==="_id"?$newBatchCacheKey_val$$.toString():$newBatchCacheKey_val$$}`.replace(/\./g,"_"),$itemMetas$jscomp$1_metaToUpdate_staticQuery$$=$metaMap$$.get($mq$$.item))if($itemMetas$jscomp$1_metaToUpdate_staticQuery$$=$itemMetas$jscomp$1_metaToUpdate_staticQuery$$.find($m$$=>$m$$.cacheKey===$mq$$.cacheKey))$itemMetas$jscomp$1_metaToUpdate_staticQuery$$.type="BATCH",$itemMetas$jscomp$1_metaToUpdate_staticQuery$$.cacheKey=
|
|
28
|
+
$newBatchCacheKey_val$$}else $remainingManualQueries$$.push($mq$$)});$manualQueries$$.length=0;$remainingManualQueries$$.length>0&&$manualQueries$$.push(...$remainingManualQueries$$)}return{batchPlan:$batchPlan$$,manualQueries:$manualQueries$$,metaMap:$metaMap$$}}
|
|
29
|
+
function mergeFields($plan$$,$newFields$$){$plan$$.fields!==null&&($newFields$$===void 0?$plan$$.fields=null:($plan$$.fields?Object.assign($plan$$.fields,$newFields$$):$plan$$.fields={...$newFields$$},$plan$$.dynamicKey&&($plan$$.fields[$plan$$.dynamicKey]=1)))}
|
|
30
|
+
async function executeQueries($batchPlan$$,$manualQueries$$,$options$$,$id_app$$){const $fetchedCache$$={};await runWithoutSession(async()=>{const $promises$$=[];Object.values($batchPlan$$).forEach($plan$$=>{const $values$$=Array.from($plan$$.values).filter($v$$=>$v$$!=null);$values$$.length&&$promises$$.push((async()=>{try{const $modelName$$=$plan$$.model.modelName,$isCacheEnabled$$=$options$$.cache&&cachedKeys&&cachedKeys[$modelName$$];let $missingValues$$=[...$values$$];if($isCacheEnabled$$&&global.clientRedis){const $redisMap$$=
|
|
31
|
+
$values$$.map($val$$=>{var $rKey_tempQ$$={...$plan$$.staticQuery};$rKey_tempQ$$[$plan$$.dynamicKey]=$val$$;$rKey_tempQ$$=generateRedisKey($modelName$$,$rKey_tempQ$$,$id_app$$);return{val:$val$$,rKey:$rKey_tempQ$$}}),$keysToGet$$=$redisMap$$.map($i$$=>$i$$.rKey),$results$$=await redisMGet($keysToGet$$)||[];$missingValues$$=[];$results$$.forEach(($jsonStr$$,$i$$)=>{$i$$=$redisMap$$[$i$$].val;if($jsonStr$$)try{const $data$$=JSON.parse($jsonStr$$);$data$$._id&&($data$$._id=$data$$._id.toString());const $cacheKey$$=
|
|
32
|
+
`${$plan$$.signature}_VAL_${$i$$==null?"__NULL__":$plan$$.dynamicKey==="_id"?$i$$.toString():$i$$}`.replace(/\./g,"_");$fetchedCache$$[$cacheKey$$]=$data$$}catch($e$$){Logger.warn("\u26a0\ufe0f [joinData] parse d\u1eef li\u1ec7u t\u1eeb redis",$e$$),$missingValues$$.push($i$$)}else $missingValues$$.push($i$$)})}$plan$$.dynamicKey==="_id"&&($missingValues$$=$missingValues$$.filter($m$$=>isValidObjectIdValue($m$$)));if($missingValues$$.length){const $query$$={...$plan$$.staticQuery,[$plan$$.dynamicKey]:{$in:$missingValues$$}};
|
|
33
|
+
$plan$$.model.schema.paths.id_app&&($query$$.id_app=$id_app$$);let $mq$$=$plan$$.model.find($query$$);$plan$$.fields&&($mq$$=$mq$$.select($plan$$.fields));let $dbResults$$;try{$dbResults$$=await $mq$$.lean()}catch($e$$){throw Logger.warn("\u274c[joinData] Batch Error with query:",JSON.stringify($query$$,null,2)),$e$$;}$dbResults$$.forEach($row$$=>{$row$$._id&&($row$$._id=$row$$._id.toString());var $cacheKey$jscomp$4_val$$=$row$$[$plan$$.dynamicKey];$cacheKey$jscomp$4_val$$=`${$plan$$.signature}_VAL_${$cacheKey$jscomp$4_val$$==
|
|
34
|
+
null?"__NULL__":$plan$$.dynamicKey==="_id"?$cacheKey$jscomp$4_val$$.toString():$cacheKey$jscomp$4_val$$}`.replace(/\./g,"_");$fetchedCache$$[$cacheKey$jscomp$4_val$$]=$row$$})}}catch($e$$){Logger.error("\u274c[joinData] Batch Error:",$e$$.message)}})())});const $pendingRequests$$=new Map;$manualQueries$$.forEach($mq$$=>{const $key$$=$mq$$.cacheKey;if($pendingRequests$$.has($key$$))$promises$$.push($pendingRequests$$.get($key$$));else{var $executionPromise$$=(async()=>{try{let $data$$=null;if($options$$.cache&&
|
|
35
|
+
cachedKeys&&cachedKeys[$mq$$.modelName]&&global.clientRedis){const $jsonStr$$=await redisGet($mq$$.cacheKey);if($jsonStr$$)try{$data$$=JSON.parse($jsonStr$$)}catch($e$$){Logger.warn("\u26a0\ufe0f [joinData][executeQueries][manualQueries] JSON parse error from Redis:",$mq$$.cacheKey)}}if(!$data$$)if(Object.values($mq$$.query).filter($v$$=>$v$$===void 0||$v$$===null).length>0)Logger.info("\u26a0\ufe0f [joinData][executeQueries][manualQueries]",$mq$$.model.modelName,": query kh\u00f4ng h\u1ee3p l\u1ec7 do c\u00f3 tr\u01b0\u1eddng c\u00f3 gi\u00e1 tr\u1ecb = null or undefined",
|
|
36
|
+
$mq$$.query);else if("_id"in $mq$$.query&&!isValidObjectIdValue($mq$$.query._id))Logger.info("\u26a0\ufe0f [joinData][executeQueries][manualQueries]",$mq$$.model.modelName,": query kh\u00f4ng h\u1ee3p l\u1ec7.",$mq$$.query);else{let $query$$=$mq$$.model.findOne($mq$$.query);$mq$$.fields&&($query$$=$query$$.select($mq$$.fields));$data$$=await $query$$.lean()}$data$$?($data$$._id&&($data$$._id=$data$$._id.toString()),$fetchedCache$$[$mq$$.cacheKey]=$data$$):$fetchedCache$$[$mq$$.cacheKey]=null}catch($e$$){Logger.error("\u274c[joinData][executeQueries] Manual Query Error:",
|
|
37
|
+
$e$$,$mq$$.query),$fetchedCache$$[$mq$$.cacheKey]=null}finally{$pendingRequests$$.delete($key$$)}})();$pendingRequests$$.set($key$$,$executionPromise$$);$promises$$.push($executionPromise$$)}});await Promise.all($promises$$)});return $fetchedCache$$}
|
|
38
|
+
async function mapResultsToItems($data$jscomp$2_items$$,$metaMap$$,$dataCache$$){for(let $item$$ of $data$jscomp$2_items$$){$data$jscomp$2_items$$=$metaMap$$.get($item$$)||[];for(let $meta$$ of $data$jscomp$2_items$$){const {join:$join$$,cacheKey:$cacheKey$$}=$meta$$;$data$jscomp$2_items$$=($data$jscomp$2_items$$=$dataCache$$[$cacheKey$$])||null;await applyFields($item$$,$data$jscomp$2_items$$||{},$join$$)}}}
|
|
39
|
+
async function applyFields($item$$,$data$$,$join$$){if($data$$)try{$join$$.fields&&(lodash.isFunction($join$$.fields)?$join$$.fields($item$$,$data$$):(Array.isArray($join$$.fields)?$join$$.fields:[$join$$.fields]).forEach($map$$=>{if(lodash.isObject($map$$))if($map$$.name&&$map$$.value)$item$$[$map$$.name]=$data$$[$map$$.value];else for(let $key_map$$ in $map$$)$item$$[$key_map$$]=$data$$[$map$$[$key_map$$]];else $item$$[$map$$]=$data$$[$map$$]})),$join$$.setFields&&$join$$.setFields($item$$,$data$$),
|
|
40
|
+
$join$$.asyncSetFields&&await $join$$.asyncSetFields($item$$,$data$$,()=>{}).catch(console.error)}catch($e$$){Logger.error("[joinData] [applyFields]",$e$$.message,JSON.stringify({item:$item$$,data:$data$$,join:$join$$},null,2))}}
|
|
41
|
+
Array.prototype.joinModel9=async function($args_id_app$$,$dataCache$jscomp$1_model$$,$joinFields$$,$fn$$,$options$$={cache:!0}){$args_id_app$$=normalizeArgs(this,$args_id_app$$,$dataCache$jscomp$1_model$$,$joinFields$$,$fn$$,$options$$);if(!$args_id_app$$.items.length)return safeCallback($args_id_app$$.fn,$args_id_app$$.items),$args_id_app$$.items;if(Array.isArray($args_id_app$$.id_app)&&!$args_id_app$$.modelOrigin){$dataCache$jscomp$1_model$$=$args_id_app$$.id_app;for(let $item$$ of $args_id_app$$.items)for(let $join$$ of $args_id_app$$.joinFields){$joinFields$$=
|
|
42
|
+
null;if($join$$.akey&&$join$$.bkey){const $val$$=$item$$[$join$$.akey];$val$$!==void 0&&$val$$!==null&&($joinFields$$=$dataCache$jscomp$1_model$$.find($d$$=>$d$$[$join$$.bkey]==$val$$))}else $join$$.where&&lodash.isObject($join$$.where)&&!lodash.isFunction($join$$.where)?$joinFields$$=$dataCache$jscomp$1_model$$.find($d$$=>{let $isMatch$$=!0;for(let $k$$ in $join$$.where)if($item$$[$join$$.where[$k$$]]!=$d$$[$k$$]){$isMatch$$=!1;break}return $isMatch$$}):$join$$.where&&lodash.isFunction($join$$.where)&&
|
|
43
|
+
($joinFields$$=$dataCache$jscomp$1_model$$.find($d$$=>$join$$.where($item$$,$d$$)));$joinFields$$&&await applyFields($item$$,$joinFields$$,$join$$)}safeCallback($args_id_app$$.fn,$args_id_app$$.items);return $args_id_app$$.items}const {batchPlan:$batchPlan$$,manualQueries:$manualQueries$$,metaMap:$metaMap$$}=createQueryPlan($args_id_app$$.items,$args_id_app$$.joinFields,$args_id_app$$.modelOrigin,$args_id_app$$.id_app);$dataCache$jscomp$1_model$$=await executeQueries($batchPlan$$,$manualQueries$$,
|
|
44
|
+
$args_id_app$$.options,$args_id_app$$.id_app);await mapResultsToItems($args_id_app$$.items,$metaMap$$,$dataCache$jscomp$1_model$$);safeCallback($args_id_app$$.fn,$args_id_app$$.items);return $args_id_app$$.items};
|