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.
Files changed (129) hide show
  1. package/README.md +439 -4
  2. package/package.json +4 -3
  3. package/server/agents/agents.js +1 -0
  4. package/server/agents/ai_memory_manager.js +6 -0
  5. package/server/agents/ceoAgent.js +43 -0
  6. package/server/agents/chatController.js +6 -0
  7. package/server/agents/cskhAgent.js +43 -0
  8. package/server/agents/flowAgent.js +43 -0
  9. package/server/agents/prompts/ceo.js +2 -0
  10. package/server/agents/prompts/flow.js +2 -0
  11. package/server/agents/staffAgent.js +44 -0
  12. package/server/agents/tools/financeTools.js +57 -0
  13. package/server/agents/tools/flowTools.js +36 -0
  14. package/server/agents/tools/kpiTools.js +104 -0
  15. package/server/agents/tools/masterDataTools.js +74 -0
  16. package/server/agents/tools/okrTools.js +21 -0
  17. package/server/agents/tools/ragTools.js +21 -0
  18. package/server/agents/tools/reportTools.js +43 -0
  19. package/server/agents/tools/staffTools.js +13 -0
  20. package/server/agents/tools/stockTools.js +41 -0
  21. package/server/agents/tools/systemTools.js +52 -0
  22. package/server/agents/tools/taskTools.js +23 -0
  23. package/server/agents/tools/utils.js +57 -0
  24. package/server/app.js +7 -7
  25. package/server/controllers/controller.js +31 -29
  26. package/server/controllers/controllerRPT.js +31 -29
  27. package/server/controllers/findHandler.js +22 -21
  28. package/server/controllers/importFromExcelHandler.js +17 -14
  29. package/server/controllers/importHandler.js +26 -41
  30. package/server/controllers/importHandler_old.js +41 -0
  31. package/server/controllers/rptHandler.js +14 -11
  32. package/server/controllers/viewHandler.js +7 -7
  33. package/server/flow/FlowEngine.js +49 -45
  34. package/server/flow/WebhookManager.js +1 -1
  35. package/server/flow/handlers.js +2 -2
  36. package/server/flow/nodes/userform.js +28 -0
  37. package/server/flow/utils.js +12 -4
  38. package/server/global.js +4 -3
  39. package/server/libs/cdpstk.js +1 -1
  40. package/server/libs/ckvt.js +12 -11
  41. package/server/libs/ckvtcapphat.js +5 -5
  42. package/server/libs/ckvtnpp.js +8 -8
  43. package/server/libs/ckvttt.js +6 -5
  44. package/server/libs/ctvt.js +7 -6
  45. package/server/libs/ctvtnpp.js +7 -6
  46. package/server/libs/ctvttt.js +6 -6
  47. package/server/libs/databanle.js +17 -18
  48. package/server/libs/databanle_old.js +18 -0
  49. package/server/libs/databanletheongay.js +25 -29
  50. package/server/libs/dktk.js +3 -3
  51. package/server/libs/dkvt.js +11 -11
  52. package/server/libs/dkvtnpp.js +7 -6
  53. package/server/libs/dkvttt.js +7 -6
  54. package/server/libs/docs.js +72 -36
  55. package/server/libs/dtbanletheosp.js +16 -19
  56. package/server/libs/fifo_dk.js +8 -0
  57. package/server/libs/fifo_group.js +4 -0
  58. package/server/libs/fifo_trace_query.js +12 -0
  59. package/server/libs/getGiaban.js +59 -70
  60. package/server/libs/getGiaban_old.js +70 -0
  61. package/server/libs/joinData.js +3 -3
  62. package/server/libs/joinData_bk.js +44 -0
  63. package/server/libs/kpistatus.js +24 -17
  64. package/server/libs/permission.js +54 -56
  65. package/server/libs/permission_old.js +58 -0
  66. package/server/libs/post-book.js +1 -1
  67. package/server/libs/post-socai.js +2 -1
  68. package/server/libs/post-sokho.js +11 -11
  69. package/server/libs/prototypes.js +13 -12
  70. package/server/libs/queryBuilding.js +11 -10
  71. package/server/libs/redis-cache.js +22 -10
  72. package/server/libs/sctcnkh.js +19 -17
  73. package/server/libs/socaitk.js +1 -1
  74. package/server/libs/thnxt.js +17 -14
  75. package/server/libs/thnxtnpp.js +8 -8
  76. package/server/libs/thnxttt.js +8 -7
  77. package/server/libs/tinhgia1vt_fifo.js +22 -0
  78. package/server/libs/tinhgiafifo.js +28 -0
  79. package/server/libs/utils.js +37 -19
  80. package/server/models/app.js +1 -1
  81. package/server/models/approve.js +8 -8
  82. package/server/models/cacheDataReport.js +2 -2
  83. package/server/models/cacheSessionReport.js +5 -1
  84. package/server/models/cdvt.js +2 -2
  85. package/server/models/checkin.js +2 -2
  86. package/server/models/chitietluongds.js +1 -1
  87. package/server/models/contract.js +1 -1
  88. package/server/models/csluongtheods.js +2 -2
  89. package/server/models/ctds2.js +7 -6
  90. package/server/models/custom_report.js +1 -0
  91. package/server/models/dmdt.js +2 -2
  92. package/server/models/dmkho.js +5 -4
  93. package/server/models/dmnvt.js +5 -4
  94. package/server/models/fifo_dk.js +2 -0
  95. package/server/models/fifo_lot.js +3 -0
  96. package/server/models/fifo_trace.js +4 -0
  97. package/server/models/flowpending.js +2 -0
  98. package/server/models/group.js +3 -5
  99. package/server/models/listinfo.js +61 -33
  100. package/server/models/schedule.js +4 -3
  101. package/server/models/task.js +1 -1
  102. package/server/models/trangthai.js +2 -2
  103. package/server/modules/lists/bg-fifo_dk.js +8 -0
  104. package/server/modules/lists/ls-checkin.js +1 -1
  105. package/server/modules/lists/ls-customer.js +23 -26
  106. package/server/modules/lists/ls-dmbp.js +5 -5
  107. package/server/modules/lists/ls-dmkho.js +7 -1
  108. package/server/modules/lists/ls-dmnhtask.js +1 -1
  109. package/server/modules/lists/ls-dmvt.js +52 -70
  110. package/server/modules/lists/ls-flowpending.js +3 -0
  111. package/server/modules/lists/ls-participant.js +6 -4
  112. package/server/modules/lists/ls-task.js +6 -6
  113. package/server/modules/reports/calc-tinhgiafifo.js +8 -0
  114. package/server/modules/reports/calc-tinhluong.js +17 -16
  115. package/server/modules/reports/rp-baoCaoFifoKy.js +1 -0
  116. package/server/modules/reports/rp-congviectheobp.js +4 -4
  117. package/server/modules/reports/rp-congviectheodt.js +1 -1
  118. package/server/modules/reports/rp-congviectheokh.js +1 -1
  119. package/server/modules/reports/rp-congviectheonv.js +1 -1
  120. package/server/modules/reports/rp-dtbanletheoct.js +22 -23
  121. package/server/modules/reports/rp-dtbanletheokh.js +17 -20
  122. package/server/modules/reports/rp-dtbanletheokho.js +15 -18
  123. package/server/modules/reports/rp-hoahong.js +1 -1
  124. package/server/modules/reports/rp-sctvt.js +1 -1
  125. package/server/modules/reports/rp-sosanhkhvatt2.js +1 -1
  126. package/server/modules/reports/rp-thnxt.js +8 -8
  127. package/server/modules/reports/rp-tongquannvbh.js +1 -1
  128. package/server/modules/systems/sys-app.js +5 -5
  129. package/server/modules/vouchers/vo-so1.js +14 -14
@@ -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"),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$$)}`)};
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$$)}`)};
@@ -1,5 +1,5 @@
1
- const lodash=require("lodash"),{runWithoutSession}=require("./sessionContext");let cachedKeys={};try{cachedKeys=require("./redis-cache").cachedKeys()}catch($e$$){Logger.warn("Redis cache config not found, caching disabled.")}
2
- const {generateRedisKey,sortObjectKeys}=require("./redis-cache"),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$$||[]))),{isValidObjectIdValue}=require("./utils");
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$$=mongoose.models[$_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};