From 44d592d516cd07a7f450881f7de758336c1af954 Mon Sep 17 00:00:00 2001 From: yvan.ni <765199919@qq.com> Date: Thu, 23 Jul 2020 17:30:31 +0800 Subject: [PATCH] 1. 即使不平摊 ,在计算使用优惠券时,商品的实收都要平摊来计算 2. 指定单品优惠券的使用优化 --- pages/cart/cart2/c_filter.wxs | 4 ++++ pages/cart/cart2/cart2.js | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 15 deletions(-) diff --git a/pages/cart/cart2/c_filter.wxs b/pages/cart/cart2/c_filter.wxs index 6a74c7e..7216131 100644 --- a/pages/cart/cart2/c_filter.wxs +++ b/pages/cart/cart2/c_filter.wxs @@ -15,6 +15,7 @@ var filters = { if(ind==2) return "blue"; if(ind==11) return "green"; if(ind==12) return "blue"; + if(ind==20) return "green"; return ""; }, setbgcolor: function (ind) { @@ -23,6 +24,7 @@ var filters = { if (ind == 2) return "#a3bcff"; if (ind == 11) return "#59e1d2"; if (ind == 12) return "#a3bcff"; + if (ind == 20) return "#6d87cd"; return ""; }, @@ -32,6 +34,7 @@ var filters = { if (ind == 2) return "品类"; if (ind == 11) return "用途"; if (ind == 12) return "分类1"; + if (ind == 20) return "指定单品"; return ""; }, get_type_card:function(ind){ @@ -40,6 +43,7 @@ var filters = { if (ind == 2) return "指定品类"; if (ind == 11) return "指定用途"; if (ind == 12) return "指定分类1"; + if (ind == 20) return "指定单品"; return ""; }, format_huiche:function (text) { diff --git a/pages/cart/cart2/cart2.js b/pages/cart/cart2/cart2.js index 7b58bd5..376b3f8 100644 --- a/pages/cart/cart2/cart2.js +++ b/pages/cart/cart2/cart2.js @@ -707,8 +707,7 @@ Page({ } //-- 如果系统要平摊到单品 -- - if(!th.data.ispt_goods){ - + //if(!th.data.ispt_goods){ var pt_data={ 'prom_id':item_map.prom_id, 'dis': parseFloat((item_map.price-item_map.prom_price).toFixed(2)), @@ -722,11 +721,15 @@ Page({ if(pt_res){ for (var io in item_map.goods){ //平摊赋值 - item_map.goods[io].account=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account; - item_map.goods[io].account_yu=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account_yu; + item_map.goods[io].account_fir=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account; + item_map.goods[io].account_yu_fir=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account_yu; + if(!th.data.ispt_goods){ + item_map.goods[io].account=item_map.goods[io].account_fir; + item_map.goods[io].account_yu=item_map.goods[io].account_yu_fir; + } } } - } + // } o_price-=(item_map.price-item_map.prom_price); //如果有限制使用优惠券,就要减掉参与的活动商品的钱 @@ -738,6 +741,8 @@ Page({ if(item[j].prom_type==3 && item[j].prom_id==item_map.prom_id){ item[j].is_xz_yh= item_map.is_xz_yh; item[j].is_past= item_map.is_past; + item[j].account_fir= th.item_map_get_goods(item[j].goods_id,item_map).account_fir; + item[j].account_yu_fir= th.item_map_get_goods(item[j].goods_id,item_map).account_yu_fir; item[j].account= th.item_map_get_goods(item[j].goods_id,item_map).account; item[j].account_yu= th.item_map_get_goods(item[j].goods_id,item_map).account_yu; } @@ -2134,17 +2139,60 @@ Page({ /*--点击选择券--*/ sele_quan_item:function(e) { + + var ind = e.currentTarget.dataset.ind; + var quan_item=this.data.selected_quan_list[ind]; + var pickid=this.data.selected_quan_pick; //现在选择的是哪一个门店 + //--如果券是单品使用的时候-- + if(quan_item.UseObjectType=="20"){ + //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- + var gg=getApp().get_b_now(); + if(this.data.is_b_now==0 || this.data.gg.prom_type==5){ + var arr=this.data.order_prom_list_cart; + var t_pk_item=null; + for(var ii in arr){ + var ep=arr[ii]; + if(pickid==ep.pickup_id){ + t_pk_item=ep; break; + } + } + //--寻找券指定的商品-- + var gd=null; + if(t_pk_item){ + var goods=t_pk_item.goods; + for(var gid in goods){ + if(quan_item.UseObjectID==goods[gid].erpwareid){ gd=goods[gid]; } + } + } + if(!gd){ + getApp().my_warnning("未找到指定商品使用",0,this,600); + return false; + } + //计算价格,如果有平摊的实收要计算实收的金额 + var item_price=gd.goods_price*gd.goods_num; + //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- + if(gd.account_fir!=null && gd.account_fir!=undefined){ + item_price=gd.account_fir*gd.goods_num; + } + + if(item_price< parseFloat(quan_item.BuySum)){ + getApp().my_warnning("该单品金额没有大于等于"+quan_item.BuySum+"元时不能使用优惠券",0,this,600); + return false; + } + } + } + var no_use=e.currentTarget.dataset.no, quanlist=this.data.selected_quan_list; //---所有的券的显示红色选择都清理一遍--- - for(var ind in quanlist){ - quanlist[ind].show_red=0; + for(var i in quanlist){ + quanlist[i].show_red=0; } this.setData({selected_quan_list:quanlist}); var by_quanlist=this.data.get_by_quan_list; if(by_quanlist){ //---所有的券的显示红色选择都清理一遍--- - for(var ind in by_quanlist){ - by_quanlist[ind].show_red=0; + for(var inb in by_quanlist){ + by_quanlist[inb].show_red=0; } this.setData({get_by_quan_list:by_quanlist}); } @@ -2173,11 +2221,9 @@ Page({ return; } - var ind = e.currentTarget.dataset.ind; - - var quan_item = this.data.selected_quan_list[ind]; + + var txt = "selected_quan_list[" + ind + "].show_red"; - var obj = {}; obj[txt] = 1; if (quan_item.show_red) { @@ -2527,8 +2573,8 @@ Page({ is_xz_yh=0; var item_price=gd.goods_price*gd.goods_num; //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 -- - if(gd.account!=null && gd.account!=undefined){ - item_price=gd.account*gd.goods_num; + if(gd.account_fir!=null && gd.account_fir!=undefined){ + item_price=gd.account_fir*gd.goods_num; } ckeck_quan_price+=item_price; -- libgit2 0.21.4