UNPKG

flexbiz-server

Version:

Flexible Server

21 lines (20 loc) 9.06 kB
'use strict';const dmchietkhauhdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},stt_uu_tien:{type:Number,default:0},ma_chietkhau:{type:String,uppercase:!0,required:!0,maxlength:32},ten_chietkhau:{type:String,required:!0,maxlength:1024},ma_nhom:String,mieu_ta:{type:String},ma_kh:{type:String,default:"",maxlength:32},ten_kh:String,nh_kh:{type:String,default:"",maxlength:1024},ten_nh_kh:String,nh_kh2:[],nh_kh3:[],nh_kh4:[],nh_kh5:[],ma_kho:{type:String,default:"",maxlength:32},ten_kho:String, gt_tu:{type:Number,default:0},gt_den:{type:Number,default:0},vts:[],sl_toi_thieu:{type:Number,default:0},tien_ck:{type:Number,default:0},ty_le_ck:{type:Number,default:0},so_tien_max:{type:Number,default:0},hieu_luc_tu:{type:Date,required:!0},hieu_luc_den:{type:Date,required:!0},ap_dung_lan_mua_thu:{type:Number},ap_dung_lan_mua_tu_thu:{type:Number},ap_dung_lan_mua_den_thu:{type:Number},details_km:[],picture:{type:String},exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,default:!0},online:{type:Boolean}, offline:{type:Boolean},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},ma_kh_id:{type:Schema.Types.ObjectId,ref:"customer",localField:["ma_kh"],foreignField:["ma_kh"]},ma_kho_id:{type:Schema.Types.ObjectId,ref:"dmkho",localField:["ma_kho"],foreignField:["ma_kho"]}}); (global.configs||{}).createIndexes&&(dmchietkhauhdSchema.index({id_app:1,ma_chietkhau:1,ma_kho:1,ma_kh:1,hieu_luc_tu:-1,hieu_luc_den:-1}),dmchietkhauhdSchema.index({ma_nhom:1}),dmchietkhauhdSchema.index({ap_dung_lan_mua_thu:1}),dmchietkhauhdSchema.index({ap_dung_lan_mua_tu_thu:1}),dmchietkhauhdSchema.index({ap_dung_lan_mua_den_thu:1}),dmchietkhauhdSchema.index({gt_tu:1}),dmchietkhauhdSchema.index({gt_den:1}),dmchietkhauhdSchema.index({ten_kho:1}),dmchietkhauhdSchema.index({nh_kh:1}),dmchietkhauhdSchema.index({ten_nh_kh:1}), dmchietkhauhdSchema.index({nh_kh2:1}),dmchietkhauhdSchema.index({nh_kh3:1}),dmchietkhauhdSchema.index({nh_kh4:1}),dmchietkhauhdSchema.index({nh_kh5:1}),dmchietkhauhdSchema.index({date_updated:-1}),dmchietkhauhdSchema.index({date_created:-1}),dmchietkhauhdSchema.index({user_created:1}),dmchietkhauhdSchema.index({online:1}),dmchietkhauhdSchema.index({offline:1}),dmchietkhauhdSchema.index({mieu_ta:"text",ma_chietkhau:"text",ten_chietkhau:"text",ma_kh:"text",ten_kh:"text",nh_kh:"text",ten_nh_kh:"text", ma_kho:"text",ten_kho:"text"},{name:"dmchietkhauhd_index_text"}),dmchietkhauhdSchema.set("toObject",{virtuals:!0}),dmchietkhauhdSchema.set("toJSON",{virtuals:!0}),dmchietkhauhdSchema.index({status:1})); const model=mongoose.models.dmchietkhauhd||mongoose.model("dmchietkhauhd",dmchietkhauhdSchema),moment=require("moment"),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$$,$b$$)=>$a$$.tien_ck-$b$$.tien_ck)[0]; $g$$.ck.stt_uu_tien=$g$$.stt_uu_tien;break;case "TOI_DA":$g$$.ck=$g$$.cks.sort(($a$$,$b$$)=>$b$$.tien_ck-$a$$.tien_ck)[0];$g$$.ck.stt_uu_tien=$g$$.stt_uu_tien;break;case "CONG":$g$$.ck={ty_le_ck: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||0))[0],$g$$.ck.stt_uu_tien=$g$$.stt_uu_tien}delete $g$$.cks});if(1==$groups$$.length)$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$$=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$$}; model.tinhChietKhau=async($ckhds_groups$$,$ckhd$jscomp$1_id_app$$,$obj$$,$t_tt_nt$$,$i_lan_mua_thu$$=1)=>{$obj$$.tien_ck_hd=0;$obj$$.ty_le_ck_hd=0;var $ckhd_query$$={id_app:$ckhd$jscomp$1_id_app$$,gt_tu:{$lte:$t_tt_nt$$},ma_kho:{$in:[void 0,null,"",$obj$$.ma_kho]}};$ckhd_query$$.$and=[{$or:[{gt_den:{$in:[0,void 0,null]}},{gt_den:{$gte:$t_tt_nt$$}}]}];var $hieu_luc_den_q_nh_kh_tu_ngay$$=moment($obj$$.ngay_ct).startOf("date").toDate();var $hieu_luc_tu_q_ma_kh_sl_toi_thieu$$={$lte:moment($obj$$.ngay_ct).endOf("date").toDate()}; $hieu_luc_den_q_nh_kh_tu_ngay$$={$gte:$hieu_luc_den_q_nh_kh_tu_ngay$$};$ckhd_query$$.hieu_luc_tu=$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$;$ckhd_query$$.hieu_luc_den=$hieu_luc_den_q_nh_kh_tu_ngay$$;$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$={$in:[void 0,null,""]};$hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,""]};let $query_kh$$={id_app:$ckhd$jscomp$1_id_app$$};$obj$$.ma_kh?$query_kh$$.ma_kh=$obj$$.ma_kh:$query_kh$$.of_user=$ckhds_groups$$;let $kh$$=await global.getModel("customer").findOne($query_kh$$,{nh_kh:1, nh_kh2:1,nh_kh3:1,nh_kh4:1,nh_kh5:1,ma_kh:1}).lean();$kh$$&&($kh$$.nh_kh_me=$kh$$.nh_kh?await global.getModel("group").getAllMotherGroup($ckhd$jscomp$1_id_app$$,$kh$$.nh_kh):[],$kh$$.nh_kh2_me=$kh$$.nh_kh2?await global.getModel("group").getAllMotherGroup($ckhd$jscomp$1_id_app$$,$kh$$.nh_kh2):[],$kh$$.nh_kh3_me=$kh$$.nh_kh3?await global.getModel("group").getAllMotherGroup($ckhd$jscomp$1_id_app$$,$kh$$.nh_kh3):[],$kh$$.nh_kh4_me=$kh$$.nh_kh4?await global.getModel("group").getAllMotherGroup($ckhd$jscomp$1_id_app$$, $kh$$.nh_kh4):[],$kh$$.nh_kh5_me=$kh$$.nh_kh5?await global.getModel("group").getAllMotherGroup($ckhd$jscomp$1_id_app$$,$kh$$.nh_kh5):[],$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$={$in:[void 0,null,"",$kh$$.ma_kh]},$hieu_luc_den_q_nh_kh_tu_ngay$$={$in:[void 0,null,"",...$kh$$.nh_kh_me]},$ckhd_query$$.ap_dung_lan_mua_thu={$in:[null,void 0,0,$i_lan_mua_thu$$]});$ckhd_query$$.$or=[{$and:[{ma_kh:$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$},{nh_kh:{$in:["",null,void 0]}}]},{$and:[{nh_kh:$hieu_luc_den_q_nh_kh_tu_ngay$$}, {ma_kh:{$in:["",null,void 0]}}]}];$ckhds_groups$$=await model.find($ckhd_query$$).sort({stt_uu_tien:1,gt_tu:-1,tien_ck:-1,ty_le_ck:-1,ma_kh:-1,nh_kh:-1,hieu_luc_tu:-1}).lean();$ckhds_groups$$=$ckhds_groups$$.filter($ck$$=>(!$ck$$.nh_kh2||0==$ck$$.nh_kh2.length||(($kh$$||[]).nh_kh2_me||[]).find($nh$$=>0<=$ck$$.nh_kh2.indexOf($nh$$)))&&(!$ck$$.nh_kh3||0==$ck$$.nh_kh3.length||(($kh$$||[]).nh_kh3_me||[]).find($nh$$=>0<=$ck$$.nh_kh3.indexOf($nh$$)))&&(!$ck$$.nh_kh4||0==$ck$$.nh_kh4.length||(($kh$$||[]).nh_kh4_me|| []).find($nh$$=>0<=$ck$$.nh_kh4.indexOf($nh$$)))&&(!$ck$$.nh_kh5||0==$ck$$.nh_kh5.length||(($kh$$||[]).nh_kh5_me||[]).find($nh$$=>0<=$ck$$.nh_kh5.indexOf($nh$$))));const $cs_thoai_man$$=[];if(0<$ckhds_groups$$.length)for($i_lan_mua_thu$$=0;$i_lan_mua_thu$$<$ckhds_groups$$.length;$i_lan_mua_thu$$++){$ckhd_query$$=$ckhds_groups$$[$i_lan_mua_thu$$];$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$=$ckhd_query$$.sl_toi_thieu||0;let $sl_dap_ung$$=0;$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$&&$ckhd_query$$.vts&&0<$ckhd_query$$.vts.length&& $ckhd_query$$.vts.forEach($vt$$=>{var $ds_tien$$=$obj$$.details.filter($d$$=>$d$$.ma_vt===$vt$$.ma_vt&&(!$vt$$.ma_tt1||$vt$$.ma_tt1===$d$$.ma_tt1)&&(!$vt$$.ma_tt2||$vt$$.ma_tt2===$d$$.ma_tt2)&&(!$vt$$.ma_tt3||$vt$$.ma_tt3===$d$$.ma_tt3));if(0!=$ds_tien$$.length){var $so_luong$$=$ds_tien$$.map($d$$=>$d$$.sl_xuat).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$ds_tien$$=$ds_tien$$.map($d$$=>($d$$.tien_hang_nt||0)-($d$$.tien_ck_nt||0)).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$vt$$.sl_tu&&$so_luong$$<$vt$$.sl_tu||$vt$$.sl_den&& $so_luong$$>$vt$$.sl_den||$vt$$.gt_tu&&$ds_tien$$<$vt$$.gt_tu||$vt$$.gt_den&&$ds_tien$$>$vt$$.gt_den||($sl_dap_ung$$+=1)}});$hieu_luc_tu_q_ma_kh_sl_toi_thieu$$<=$sl_dap_ung$$&&$cs_thoai_man$$.push($ckhd_query$$)}0<$cs_thoai_man$$.length&&($cs_thoai_man$$.forEach($cs$$=>{$cs$$.ty_le_ck=$cs$$.ty_le_ck||0;$cs$$.tien_ck=$cs$$.tien_ck||Math.roundBy($t_tt_nt$$*$cs$$.ty_le_ck/100,0)}),$ckhds_groups$$=[...(new Set($cs_thoai_man$$.map($d$$=>$d$$.ma_nhom||"")))].map($ma_nhom$$=>({ma_nhom:$ma_nhom$$,cks:$cs_thoai_man$$.filter($d$$=> ($d$$.ma_nhom||"")==($ma_nhom$$||""))})),$ckhd$jscomp$1_id_app$$=await calcDefaultDiscount($ckhd$jscomp$1_id_app$$,$ckhds_groups$$),$obj$$.id_cs_ck_hd=$ckhd$jscomp$1_id_app$$._id,$ckhd$jscomp$1_id_app$$.tien_ck?($obj$$.tien_ck_hd=$ckhd$jscomp$1_id_app$$.tien_ck,$obj$$.ty_le_ck_hd=0):($obj$$.ty_le_ck_hd=$ckhd$jscomp$1_id_app$$.ty_le_ck,$obj$$.tien_ck_hd=Math.roundBy($t_tt_nt$$*$ckhd$jscomp$1_id_app$$.ty_le_ck/100,0)),$ckhd$jscomp$1_id_app$$.so_tien_max&&($obj$$.tien_ck_hd=Math.min($ckhd$jscomp$1_id_app$$.so_tien_max, $obj$$.tien_ck_hd)));return{tien_ck_hd:$obj$$.tien_ck_hd,ty_le_ck_hd:$obj$$.ty_le_ck_hd,_id:$obj$$.id_cs_ck_hd}};module.exports=model;