From a513332ec3a51947c158c911502fc2b77f7e9c22 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Mon, 12 Dec 2022 22:51:21 +0800 Subject: [PATCH] 指定门店,购物车的优化, 和积分购普通购买多规格的优化 --- pages/cart/cart/cart.js | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------- pages/goods/goodsInfo/buy_com_pop.wxml | 2 +- pages/goods/goodsInfo/goodsInfo.js | 7 ++++++- 3 files changed, 166 insertions(+), 19 deletions(-) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index ff3c1d8..cf80c80 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -1359,6 +1359,8 @@ Page({ } } }, + + //删除商品 delete_th_item: function (t) { var e = this; @@ -1416,28 +1418,37 @@ Page({ var b = t.currentTarget.dataset.pitems; a = this.data.requestData[b].goods[a]; - console.log('add+'); - if (a.goods_num < a.store_count) { + console.log('add+'); + + if(this.data.sales_rules <2 || a.whsle_id || [1,2,4,6,8,9].indexOf(a.prom_type)>-1 ) { + + if (a.goods_num < a.store_count) { + + // wx.showModal({ + // title: '提示', + // content: '购买的数量不能超出库存数量', + // }); + wx.showToast({ + title: '购买的数量不能超出库存数量', + icon: 'none', + }); + // getApp().my_warnning('购买的数量不能超出库存数量', 0, this); + this.data.up_dating = 0; + + return false; + } + } + + var e = { - goods_num: a.goods_num + 1, + goods_num: a.goods_num + 1, id: a.id, goods_id: a.goods_id, store_id: oo.stoid }; // console.log('goods_num', e.goods_num); this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); - } else { - // wx.showModal({ - // title: '提示', - // content: '购买的数量不能超出库存数量', - // }); - wx.showToast({ - title: '购买的数量不能超出库存数量', - icon: 'none', - }); - // getApp().my_warnning('购买的数量不能超出库存数量', 0, this); - this.data.up_dating = 0; - } + }, //-------------减数量--------------------- subNum: function (t) { @@ -1455,6 +1466,8 @@ Page({ return false; } + + if (1 != a.goods_num) { var e = { goods_num: a.goods_num - 1, @@ -1751,7 +1764,7 @@ Page({ }, //------门店全选按钮,要判断是否门店的匹配方式一致--------- check_th_all_item: async function (ele) { - var e = this, + var e = this,th=this, pitems = ele.currentTarget.dataset.pitems, item = this.data.requestData[pitems].goods, sele = this.data.requestData[pitems].selected; @@ -1808,6 +1821,50 @@ Page({ for (var i = 0; i < item.length; i++) { var txt = "requestData[" + pitems + "].goods[" + i + "].selected"; + + var gd_info=item[i]; + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 ) { + var ob = {}; + await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) { + ob = res; + }); + + if (ob.code == -1) { + + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + return false; + }else{ + if(th.data.sales_rules==3){ + var goods_id=gd_info.goods_id; + var num=0; + + for (let i = 0; i < th.data.requestData.length; i++) { + if(pitems==i) continue; + var it= th.data.requestData[i].goods.find((e)=>{ + return e.goods_id==goods_id; + }) + if(it && it.selected) num+=it.goods_num + } + + if(num>ob.CanOutQty){ + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + return false; + } + } + } + + } + + + e.setData({ [txt]: Number(!sele), }); @@ -1829,7 +1886,7 @@ Page({ }, //---------------单选,也要判断门店的配送方式是否一致-------------- check_th_item: async function (t) { - var e = this, + var e = this,th=this, item = t.currentTarget.dataset.item, pitems = t.currentTarget.dataset.pitems; a = this.data.requestData[pitems].goods[item]; @@ -1884,6 +1941,51 @@ Page({ }); } else { var txt = "requestData[" + pitems + "].goods[" + item + "].selected"; + var gd_info=a; + + var erpwareid = gd_info.erpwareid; + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 ) { + var ob = {}; + await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) { + ob = res; + }); + + if (ob.code == -1) { + + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + return false; + }else{ + if(th.data.sales_rules==3){ + var goods_id=gd_info.goods_id; + var num=0; + + for (let i = 0; i < th.data.requestData.length; i++) { + if(pitems==i) continue; + var it= th.data.requestData[i].goods.find((e)=>{ + return e.goods_id==goods_id; + }) + if(it && it.selected) num+=it.goods_num + } + + if(num>ob.CanOutQty){ + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + return false; + } + } + } + + } + + + e.setData({ [txt]: Number(!a.selected), }); @@ -2708,7 +2810,43 @@ Page({ }); th.doCheckAll(); t.goods_num = ob.CanOutQty; + }else{ + + var this_obj=this.data.requestData[pitem].goods[item]; + + if(th.data.sales_rules==3 && this_obj.selected){ + + + var goods_id=this_obj.goods_id; + + var num=0; + + for (let i = 0; i < this.data.requestData.length; i++) { + if(pitem==i) continue; + var it= this.data.requestData[i].goods.find((e)=>{ + return e.goods_id==goods_id; + }) + if(it && it.selected) num+=it.goods_num + } + + if(num>ob.CanOutQty){ + wx.showToast({ + title: '购买数量超出商品库存', + icon: 'none', + }); + + th.data.up_dating = 0; + return false; + } + + + + } } + + + + this.update_cart(t, pitem, item); }, @@ -2792,7 +2930,11 @@ Page({ ob.code = -1; ob.CanOutQty = plist.CanOutQty - lock if (ob.CanOutQty < 0) ob.CanOutQty = 0; + }else{ + ob.CanOutQty=plist.CanOutQty-c_num- lock; } + + func(ob) }, diff --git a/pages/goods/goodsInfo/buy_com_pop.wxml b/pages/goods/goodsInfo/buy_com_pop.wxml index c5d6e0d..2bcde72 100644 --- a/pages/goods/goodsInfo/buy_com_pop.wxml +++ b/pages/goods/goodsInfo/buy_com_pop.wxml @@ -12,7 +12,7 @@ 已售:{{sele_g.sales_sum}} - + 可售:{{def_pick_store.CanOutQty}} diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 26694ba..b27e493 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -2967,6 +2967,9 @@ Page({ }); + if(nor) that.get_sto(1); + else that.get_sto(); + if(!item.whsle_id) that.check_is_youhui(gid, that.data.is_normal); //默认门店要拿下门店库存 @@ -3006,7 +3009,7 @@ Page({ // that.setData({def_pick_store: that.data.def_pick_store}); // }) - that.check_CanOutQty(th.data.sele_g,that.data.def_pick_store,function (CanOutQty){ + that.check_CanOutQty(that.data.sele_g,that.data.def_pick_store,function (CanOutQty){ that.data.def_pick_store.CanOutQty = CanOutQty; //--给门店赋值线下库存-- that.setData({def_pick_store: that.data.def_pick_store}); @@ -6096,6 +6099,8 @@ Page({ var ind = ee.currentTarget.dataset.ind; var bconfig = th.data.bconfig; + debugger + //如果开启了,则不在选择门店 if(this.data.sys_switch.is_pricing_open_store && getApp().globalData.pk_store){ return false; -- libgit2 0.21.4