diff --git a/app.js b/app.js index e30525f..8f5180b 100644 --- a/app.js +++ b/app.js @@ -1314,7 +1314,6 @@ App({ var stoid=this.globalData.setting.stoid; var user_id=this.globalData.user_id; - this.getConfig2(async function (e){ if(e && e.switch_list) conf=JSON.parse(e.switch_list); if(conf && conf.express_searchtype==1){ @@ -1335,7 +1334,43 @@ App({ return true; } return false; + }, + //---- 判断是不是虚拟商品狗阿米 ----- + is_virtual(gd){ + if(gd.is_virtual==2) return true; + return false; + }, + + /** + * + * @param gd 商品 + * @param act 活动 + * @param get_type 0默认 1是加和减的时候 + */ + get_limit_qty(gd,act,get_type){ + var islimit=gd.erp_islimit; //是不是限购 + var limittype=gd.erp_limittype; //不低于0、倍数1 + var limitqty=gd.erp_limitqty; //起购量 + + //-- 如果有活动的时候 -- + if(act){ + islimit=act.islimit; + limittype=act.limittype; + limitqty=act.limitqty; + } + + //-- 不是限购的时候,返回1-- + if(!islimit) return 1; + //-- 默认的时候 -- + if(!get_type) return limitqty; + //不低于的时候,加减的时候 + if(!limittype) return 1; + //倍数,加减的时候 + return limitqty; } + + + }); diff --git a/components/diy_seckill/diy_seckill.wxml b/components/diy_seckill/diy_seckill.wxml index dd117ea..07332e5 100644 --- a/components/diy_seckill/diy_seckill.wxml +++ b/components/diy_seckill/diy_seckill.wxml @@ -481,52 +481,12 @@ -<<<<<<< HEAD - - {{aitem.goods_name}} - - {{aitem.djs.day}} 天 - {{aitem.djs.hou}} : - {{aitem.djs.min}} : - {{aitem.djs.sec}} - - - - ¥{{aitem.price}} - - - - - 正在预热 - - - - - - 已结束 - - - - - - 我要抢 - - - - - - 已抢光 - - - -======= 已抢光 ->>>>>>> dev_component diff --git a/packageA/pages/goodsInfo/goodsInfo.js b/packageA/pages/goodsInfo/goodsInfo.js index 3c956b7..94ec55b 100644 --- a/packageA/pages/goodsInfo/goodsInfo.js +++ b/packageA/pages/goodsInfo/goodsInfo.js @@ -3894,507 +3894,7 @@ Page({ }); }, - - - - - - - //-- 加入购物的函数 -- - add_cart_func: function (t) { - var i = getApp().request; - if (oo.user_id == null) { - return s.my_warnning("还未登录!", 0, this); - } - - if (!getApp().globalData.userInfo) { - return s.my_warnning("还未登录!", 0, this); - } - - var e = this, - th = e, - a = 0, - o = this.data.sele_g; - a = o.goods_id; - - //----------添加到购物车时,要判断限购数量,-------- - e.get_buy_num(o, function (ee) { - //---判断商品是否超出限购--- - if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { - if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { - // wx.showModal({ - // title: '提示', - // content: '超出活动限购数量' - // }); - getApp().my_warnning('超出活动限购数量', 0, self); - return false; - } - } - //---判断商品是否超出活动限购--- - if ((th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0) && !th.data.is_normal) { - if (th.data.goodsInputNum + th.data.prom_buy_num > th.data.prom_buy_limit) { - // wx.showModal({ - // title: '提示', - // content: '超出活动限购数量' - // }); - getApp().my_warnning('超出活动限购数量', 0, self); - return false; - } - } - - if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th); - if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) - th.setData({ - sto_sele_name: "" - }); - if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th); - - //--------------此时操作的数据------------ - var newd = { - goods_id: o.goods_id, - goods_num: th.data.goodsInputNum, - pick_id: th.data.sto_sele_id, - user_id: oo.user_id, - store_id: th.data.stoid, - goods_price: o.shop_price, - member_goods_price: o.shop_price, - goods_name: o.goods_name, - goods_sn: o.goods_sn, - sku: o.sku, - prom_id: th.data.sele_g.prom_id, - prom_type: th.data.sele_g.prom_type, - }; - - //---是不是从收藏夹出来的--- - if (th.data.c_guide_id) { - newd['guide_id'] = th.data.c_guide_id; - newd['guide_type'] = 2; - if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 3; - } else { - if (getApp().globalData.guide_id) { - newd['guide_id'] = getApp().globalData.guide_id; - newd['guide_type'] = 0; - if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 1; - } - } - if(getApp().globalData.groupchat_id){ - newd['groupchat_id'] = getApp().globalData.groupchat_id; - } - //让商品带上房间号 - //让商品带上房间号 - if (th.data.sys_switch.is_skuroom_id == 1) { - if (th.data.data.goods_id == getApp().globalData.room_goods_id) { - newd.room_id = getApp().globalData.room_id; - } - } else { - if (newd.goods_id == getApp().globalData.room_goods_id) newd.room_id = getApp().globalData.room_id; - } - - //如果是积分够,is_integral_normal就要有积分购普通购买字段 - if (o.prom_type == 4) { - newd.is_integral_normal = 1; - } - - //如果有线下取价 - if (o.offline_price) { - newd.offline_price = o.offline_price; - newd.pricing_type = o.pricing_type; - } - - //-----如果是秒杀,团购,积分购,拼团----- - if (th.data.prom_type == 1 || th.data.prom_type == 2) { - - if (th.data.openSpecModal_flash_normal) { - - newd.prom_type = 0; - newd.prom_id = 0; - - //---如果是线下门店销售的时候--- - if (th.data.sales_rules == 2) { - var pick = th.get_pick_from_list(th.data.sto_sele_id) - //---通过接口获取门店的线下库存信息-- - getApp().request.get("/api/weshop/goods/getWareStorages", { - data: { - storageNos: pick.pickup_no, - wareIds: encodeURIComponent(th.data.sele_g.erpwareid), - storeId: os.stoid - }, - success: function (res) { - if (res.data.code == 0) { - if (res.data.data.pageData.length > 0) { - var CanOutQty = res.data.data.pageData[0].CanOutQty; - if (CanOutQty < e.data.goodsInputNum) { - return s.my_warnning("库存不足!", 0, th); - } - //在调一次接口,读取商品的预出库的数量,lock - getApp().request.get("/api/weshop/order/ware/lock/page", { - data: { - store_id: os.stoid, - wareId: th.data.sele_g.goods_id, - storageId: pick.pickup_id, - pageSize: 1000 - }, - success: function (res_data) { - if (res_data.data.code == 0 && res_data.data.data.total > 0) { - - var lock = 0; - for (var i in res_data.data.data.pageData) { - lock += res_data.data.data.pageData[i].outQty; - } - - if (CanOutQty <= lock) { - return s.my_warnning("库存不足!", 0, th); - } - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock); - } else { - th.add_cart_next(e, t, a, o, newd, CanOutQty); - } - } - }) - } else { - return s.my_warnning("库存不足!", 0, th); - } - - } - } - }) - } else { - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 - } - - return false; - } - - - newd.goods_price = th.data.prom_price; - newd.member_goods_price = th.data.prom_price, - newd.prom_type = th.data.prom_type; - newd.prom_id = th.data.prom_id; - - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); - - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 - - } else if (o.prom_type == 7) { - - //判断进行中的活动,是不是要判断线下库存 - th.check_zh_acting(function (ee) { - newd.prom_id = 0; - newd.prom_type = 0; - if (ee && th.data.sele_g.act) { - newd.prom_id = th.data.sele_g.act.id; - newd.prom_type = 7; - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 - return false; - } else { - //---如果是线下门店销售的时候--- - if (th.data.sales_rules == 2) { - var pick = th.get_pick_from_list(th.data.sto_sele_id) - //---通过接口获取门店的线下库存信息-- - getApp().request.get("/api/weshop/goods/getWareStorages", { - data: { - storageNos: pick.pickup_no, - wareIds: encodeURIComponent(th.data.sele_g.erpwareid), - storeId: os.stoid - }, - success: function (res) { - if (res.data.code == 0) { - if (res.data.data.pageData.length > 0) { - var CanOutQty = res.data.data.pageData[0].CanOutQty; - if (CanOutQty < e.data.goodsInputNum) { - return s.my_warnning("库存不足!", 0, th); - } - //在调一次接口,读取商品的预出库的数量,lock - getApp().request.get("/api/weshop/order/ware/lock/page", { - data: { - store_id: os.stoid, - wareId: th.data.sele_g.goods_id, - storageId: pick.pickup_id, - pageSize: 1000 - }, - success: function (res_data) { - if (res_data.data.code == 0 && res_data.data.data.total > 0) { - - var lock = 0; - for (var i in res_data.data.data.pageData) { - lock += res_data.data.data.pageData[i].outQty; - } - - if (CanOutQty <= lock) { - return s.my_warnning("库存不足!", 0, th); - } - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock); - } else { - th.add_cart_next(e, t, a, o, newd, CanOutQty); - } - } - }) - } else { - return s.my_warnning("库存不足!", 0, th); - } - - } - } - }) - } else { - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 - } - } - }) - - } - else if (th.data.prom_type == 0 || th.data.prom_type == 3 || th.data.prom_type == 4 || th.data.prom_type == 5 || th.data.prom_type == 10) { - newd.prom_type = 0; - newd.prom_id = 0; - - if (th.data.prom_type == 10) { - newd.prom_type = th.data.prom_type; - newd.prom_id = th.data.prom_id; - } - - //---如果是线下门店销售的时候--- - if (th.data.sales_rules == 2) { - var pick = th.get_pick_from_list(th.data.sto_sele_id) - //---通过接口获取门店的线下库存信息-- - getApp().request.get("/api/weshop/goods/getWareStorages", { - data: { - storageNos: pick.pickup_no, - wareIds: encodeURIComponent(th.data.sele_g.erpwareid), - storeId: os.stoid - }, - success: function (res) { - if (res.data.code == 0) { - if (res.data.data.pageData.length > 0) { - var CanOutQty = res.data.data.pageData[0].CanOutQty; - if (CanOutQty < e.data.goodsInputNum) { - return s.my_warnning("库存不足!", 0, th); - } - //在调一次接口,读取商品的预出库的数量,lock - getApp().request.get("/api/weshop/order/ware/lock/page", { - data: { - store_id: os.stoid, - wareId: th.data.sele_g.goods_id, - storageId: pick.pickup_id, - pageSize: 1000 - }, - success: function (res_data) { - if (res_data.data.code == 0 && res_data.data.data.total > 0) { - - var lock = 0; - for (var i in res_data.data.data.pageData) { - lock += res_data.data.data.pageData[i].outQty; - } - - if (CanOutQty <= lock) { - return s.my_warnning("库存不足!", 0, th); - } - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock); - } else { - th.add_cart_next(e, t, a, o, newd, CanOutQty); - } - } - }) - } else { - return s.my_warnning("库存不足!", 0, th); - } - - } - } - }) - } else { - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 - } - } - }) - }, - - //---加入购物车的最后一步--- - add_cart_next(e, t, a, o, newd, CanOutQty) { - var th = this, i = getApp().request; - //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ - if ((o.prom_type != 1 || o.prom_id <= 0) && ((o.prom_type != 6 && o.prom_type != 4 && o.prom_type != 2 ) || th.data.is_normal)) { - var conf = th.data.bconfig; - if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) { - var s_list = JSON.parse(conf.switch_list); - var now = ut.gettimestamp(); - - - var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); - var end = new Date(str); - end = Date.parse(end) / 1000; - - //--如果后台有开启等级价的功能,而且会员的等级没有过期的情况下-- - if (parseInt(s_list.rank_switch) == 2 && end > now) { - var card_price = o[getApp().globalData.userInfo['card_field']]; - //如果会员有等级价 - if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null - && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) { - newd.goods_price = card_price; - newd.member_goods_price = card_price; - } - } - } - } - - //if (this.data.data.goods.is_virtual) return this.buyVirtualGoods(d); - if ("add" == t.currentTarget.dataset.action) { - - if (th.data.prom_goods) { - newd.prom_type = 3; - newd.prom_id = th.data.prom_goods[0].prom_id; - } - - //----先看会员在购物车中是否加入了该商品----- - i.get("/api/weshop/cart/page", { - data: { - store_id: e.data.stoid, - user_id: oo.user_id, - goods_id: a, - pick_id: e.data.sto_sele_id, - prom_type:(newd.prom_type?newd.prom_type:0), - state: 0 - }, - success: function (re) { - - //-------如果购物车中有相关的数据--------- - if (re.data.data.total > 0) { - - var item = re.data.data.pageData[0]; - - //判断数量,要看下购物车中有没有该商品 - if (CanOutQty) { - if (item.goods_num + th.data.goodsInputNum > CanOutQty) { - return s.my_warnning("库存不足!", 0, th); - } - } else { - if (item.goods_num + th.data.goodsInputNum > o.store_count) { - return s.my_warnning("库存不足!", 0, th); - } - } - - var updata = { - id: item.id, - goods_num: e.data.goodsInputNum + item.goods_num, - goods_price: newd.goods_price, - member_goods_price: newd.goods_price, - store_id: th.data.stoid, - }; - - //---是不是从收藏夹出来的--- - if (th.data.c_guide_id) { - updata['guide_id'] = th.data.c_guide_id; - updata['guide_type'] = 3; //加入购物车之后就变成了3 - } else { - if (getApp().globalData.guide_id) { - updata['guide_id'] = getApp().globalData.guide_id; - updata['guide_type'] = 0; - } - } - if(getApp().globalData.groupchat_id){ - updata['groupchat_id'] = getApp().globalData.groupchat_id; - } - i.put("/api/weshop/cart/update", { - data: updata, - success: function (t) { - getApp().my_warnning('加入购物车成功', 1, th, 450); - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; - th.setData({ - cartGoodsNum: c_num - }); - th.closeSpecModal(); - } - }); - } else { - - - i.post("/api/weshop/cart/save", { - data: newd, - success: function (t) { - getApp().my_warnning('加入购物车成功', 1, th, 450); - var c_num = th.data.cartGoodsNum + e.data.goodsInputNum; - th.setData({ - cartGoodsNum: c_num - }); - th.closeSpecModal(); - } - }); - } - } - }); - - } - else { - - //这一步主要是要让立即购买 走 购物车的逻辑 参与活动 - if (newd.prom_type == 10 || newd.prom_type == 7) { - //----先看会员在购物车中是否加入了该商品,立即购买的----- - getApp().request.get("/api/weshop/cart/page", { - data: { - store_id: e.data.stoid, - user_id: oo.user_id, - state: 1 - }, - success: function (res) { - //-------如果购物车中有相关的数据--------- - if (res.data.code == 0 && res.data.data.total > 0) { - for (let j in res.data.data.pageData) { - let item_j = res.data.data.pageData[j]; - var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id; - getApp().request.delete(url, {}); - } - } - newd.state = 1; - getApp().request.post("/api/weshop/cart/save", { - data: newd, - success: function (t) { - th.closeSpecModal(); - getApp().goto("/packageE/pages/cart/cart2/cart2?state=1"); - } - }); - }, - }) - return false; - } - - if (th.data.prom_goods) { - var prom_d = th.data.prom_goods; - for (var i in prom_d) { - //判断活动有俩种条件,0元 1件 - var condition_t = prom_d[i].prom_type; - switch (condition_t) { - case 0: //按钱 - if (newd.goods_price >= condition_t) { - newd.prom_type = 3; - newd.prom_id = prom_d[i].prom_id; - } - break - case 1://按购买数量 - if (newd.goods_num >= condition_t) { - newd.prom_type = 3; - newd.prom_id = prom_d[i].prom_id; - } - break; - } - } - - } - - newd['pick_name'] = th.data.sto_sele_name; - newd['pick_dis'] = th.data.sto_sele_distr; - th.buyNow(newd); - } - }, - - + click_contact:function () { getApp().globalData.no_clear=1; }, diff --git a/packageA/pages/prom_list/prom_list.js b/packageA/pages/prom_list/prom_list.js index 254846a..fdb4160 100644 --- a/packageA/pages/prom_list/prom_list.js +++ b/packageA/pages/prom_list/prom_list.js @@ -351,7 +351,7 @@ Page({ //获取统一条形码,普通商品和优惠促销的商品 //默认门店要拿下门店库存 - if (that.data.sales_rules >= 2) { + if (!getApp().is_virtual(t.data.data) && !t.data.data.whsle_id && that.data.sales_rules >= 2) { //--等待某个值只运行---,这里有可能因为导航的时间太久,而不能计算门店库存 getApp().waitfor2(that, "wait_for_user_store", "fir_def_store", function () { @@ -1622,12 +1622,12 @@ Page({ var plist=null; var lock=0; - //---如果是活动的时候--- - if(th.data.prom_type==1 || th.data.prom_type==6){ + //---如果是活动的时候,或者是虚拟商品的时候--- + if(th.data.prom_type==1 || th.data.prom_type==6 || getApp().is_virtual(goodsinfo)){ func(); return false; } - if(this.data.sales_rules!=2){ + if(this.data.sales_rules<2){ func(); }else{ diff --git a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js index 7f65661..2935434 100644 --- a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js +++ b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js @@ -575,7 +575,9 @@ Page({ var that = this, th = this; getApp().getConfig2(function (e) { var sales_rules = e.sales_rules; - if (sales_rules >= 2) { + + //虚拟商品, 代发商品不计算 + if (!getApp().is_virtual(that.data.fir_goods) && !that.data.fir_goods.whsle_id && sales_rules >= 2) { getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () { var lock = 0, plist = null; var gd = that.data.fir_goods; @@ -1570,7 +1572,7 @@ Page({ // title: '提示', // content: '超出商品限购' // }); - getApp().my_warnning('超出商品限购', 0, th); + getApp().my_warnning('超出商品限购', 0, th); return false; } } @@ -1581,7 +1583,7 @@ Page({ // title: '提示', // content: '超出商品活动限购' // }); - getApp().my_warnning('超出商品活动限购', 0, th); + getApp().my_warnning('超出商品活动限购', 0, th); return false; } } @@ -1672,7 +1674,7 @@ Page({ return false; } else { //---如果是线下门店销售的时候--- - if (th.data.sales_rules >= 2) { + if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2) { var pick = th.get_pick_from_list(th.data.sto_sele_id) //---通过接口获取门店的线下库存信息-- // getApp().request.get("/api/weshop/goods/getWareStorages", { @@ -1748,45 +1750,9 @@ Page({ newd.prom_id = 0; //---如果是线下门店销售的时候--- - if (th.data.sales_rules >= 2) { + if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2) { var pick = th.get_pick_from_list(th.data.sto_sele_id) - //---通过接口获取门店的线下库存信息-- - // getApp().request.get("/api/weshop/goods/getWareStorages", { - // data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid }, - // success: function (res) { - // if (res.data.code == 0) { - // if (res.data.data.pageData.length > 0) { - // var CanOutQty = res.data.data.pageData[0].CanOutQty; - // if (CanOutQty < e.data.goodsInputNum) { - // return s.my_warnning("库存不足!", 0, th); - // } - // //在调一次接口,读取商品的预出库的数量,lock - // getApp().request.get("/api/weshop/order/ware/lock/page", { - // data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 }, - // success: function (res_data) { - // if (res_data.data.code == 0 && res_data.data.data.total > 0) { - // - // var lock = 0; - // for (var i in res_data.data.data.pageData) { - // lock += res_data.data.data.pageData[i].outQty; - // } - // - // if (CanOutQty <= lock) { - // return s.my_warnning("库存不足!", 0, th); - // } - // th.add_cart_next(e, t, a, o, newd, CanOutQty - lock); - // } else { - // th.add_cart_next(e, t, a, o, newd, CanOutQty); - // } - // } - // }) - // } else { - // return s.my_warnning("库存不足!", 0, th); - // } - // - // } - // } - // }) + th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { @@ -2188,11 +2154,20 @@ Page({ //----------增加购买数量----------- addCartNum: function (t) { - this.checkCartNum(this.data.goodsInputNum + 1); + + var add_num=1; + if(this.data.is_normal == 1){ + add_num=getApp().get_limit_qty(this.data.sele_g,0,1); + } + this.checkCartNum(this.data.goodsInputNum + add_num); }, //----------减少购买数量----------- subCartNum: function (t) { - this.checkCartNum(this.data.goodsInputNum - 1); + var add_num=1; + if(this.data.is_normal == 1){ + add_num=getApp().get_limit_qty(this.data.sele_g,0,1); + } + this.checkCartNum(this.data.goodsInputNum - add_num); }, //----------输入框输入购买数量----------- inputCartNum: function (t) { @@ -2216,6 +2191,7 @@ Page({ //------检查数量是不是超出限购------ checkCartNum: function (t) { var th = this; + var mo_num=getApp().get_limit_qty(th.data.sele_g); this.get_buy_num(this.data.sele_g, async function () { //--判断商品是否超出限购-- @@ -2269,8 +2245,9 @@ Page({ } } var e = th.data.sele_g.store_count; - var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4 - if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { + var p_type = parseInt(th.data.prom_type); //&& p_type!=1 && p_type!=4 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && + th.data.sales_rules >= 2 && ( [1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { if (!th.data.def_pick_store) { wx.showModal({ title: '请选择门店', }); return false; @@ -2283,9 +2260,20 @@ Page({ if (e < t) { wx.showModal({ title: '库存不足', }); if (e < 0) e = 0; + + if(th.data.is_normal == 1){ + if(e e || 0 == e ? t = e : t < 1 && (t = 1); + + //只有普通商品才有起购数 + if(th.data.is_normal == 1){ + if(t= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { + var p_type = parseInt(th.data.prom_type); //&& p_type!=1 && p_type!=4 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && + th.data.sales_rules >= 2 && ([1,2,4,6,8,9].indexOf(p_type)== -1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { if (!th.data.def_pick_store) { wx.showModal({ title: '请选择门店', }); return false; @@ -2983,7 +2972,7 @@ Page({ //默认门店要拿下门店库存 - if (that.data.sales_rules >= 2 && that.data.def_pick_store) { + if (!getApp().is_virtual(item) && !item.whsle_id && that.data.sales_rules >= 2 && that.data.def_pick_store) { var lock = 0, plist = null; // //先读取门店的lock,采用链式写法,少用await // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { @@ -3213,7 +3202,8 @@ Page({ th.setData({ all_pick_list: e.data.data.pageData }); //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购-- - if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 9 && th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) { + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && + th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ([1,2,4,6,8,9].indexOf(th.data.prom_type)== -1 || is_normal == 1)) { setTimeout(function () { th.deal_pickup_dline(e); }, 800) @@ -4298,7 +4288,10 @@ Page({ // ind == 1 为普通购买 openSpecModel_pt: function (e) { - this.setData({ open_ind_store: 9, goodsInputNum: 1 }); + + var mo_num=getApp().get_limit_qty(this.data.sele_g); + + this.setData({ open_ind_store: 9, goodsInputNum: mo_num }); // 判断是否有待支付订单 var aid = this.data.group_id; var switOn = true; @@ -4472,172 +4465,252 @@ Page({ //----------添加到购物车时,要判断限购数量,-------- e.get_buy_num(o, async function (ee) { - //---判断商品是否超出限购--- - // if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { - // if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { - // wx.showModal({ - // title: '提示', - // content: '超出商品限购' - // }); - - // var num = th.data.prom_buy_limit - th.data.prom_buy_num; - // if (num < 0) num = 0; - // th.setData({ goodsInputNum: num }) - // return false; - // } - // } + //---判断商品是否超出限购--- + if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { + if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { + wx.showModal({ + title: '提示', + content: '超出商品限购' + }); - //---判断商品是否超出活动限购,拼团的普通购买不计算活动的限购--- - // if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0 && th.data.is_normal != 1) { - // if (th.data.goodsInputNum + th.data.prom_buy_num > th.data.prom_buy_limit) { - // wx.showModal({ - // title: '提示', - // content: '超出商品活动限购' - // }); - - // var num = th.data.prom_buy_limit - th.data.prom_buy_num; - // if (num < 0) num = 0; - // th.setData({ goodsInputNum: num }) - // return false; - // } - // } + var num = th.data.prom_buy_limit - th.data.prom_buy_num; + if (num < 0) num = 0; + th.setData({goodsInputNum: num}) + return false; + } + } - var redis_num = 0 - //不是普通购买的时候 - // if (th.data.is_normal != 1) { - // //-------判断活动是否抢光--------- - // await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/6/" + th.data.sele_g.prom_id, { - // 1: 1 - // }).then(res => { - // redis_num = res.data.data; - // }) - // if (th.data.goodsInputNum > redis_num) { - // wx.showModal({ - // title: '提示', - // content: '超出商品活动库存' - // }); + var redis_num = 0 - // th.setData({ goodsInputNum: redis_num }) + if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) + th.setData({ + sto_sele_name: "" + }); - // return false; - // } - // } + if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th); + + //--------------此时操作的数据------------ + var newd = { + goods_id: o.goods_id, + goods_num: th.data.goodsInputNum, + pick_id: th.data.sto_sele_id, + user_id: oo.user_id, + store_id: th.data.stoid, + goods_price: o.shop_price, + goods_name: o.goods_name, + goods_sn: o.goods_sn, + sku: o.sku, + }; - // if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th); - // if (th.data.goodsInputNum > o.store_count) { - // th.setData({ goodsInputNum: o.store_count }) - // return s.my_warnning("超出商品库存", 0, th); - // } + //---是不是从收藏夹出来的--- + if (th.data.c_guide_id) { + newd['guide_id'] = th.data.c_guide_id; + newd['guide_type'] = 2; - if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) - th.setData({ - sto_sele_name: "" - }); - if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th); + } else { + if (getApp().globalData.guide_id) { + newd['guide_id'] = getApp().globalData.guide_id; + newd['guide_type'] = 0; - //--------------此时操作的数据------------ - var newd = { - goods_id: o.goods_id, - goods_num: th.data.goodsInputNum, - pick_id: th.data.sto_sele_id, - user_id: oo.user_id, - store_id: th.data.stoid, - goods_price: o.shop_price, - goods_name: o.goods_name, - goods_sn: o.goods_sn, - sku: o.sku, - }; + } + } + if (getApp().globalData.groupchat_id) { + newd['groupchat_id'] = getApp().globalData.groupchat_id; + } + //让商品带上房间号 + if (th.data.sys_switch.is_skuroom_id == 1) { + if (th.data.data.goods_id == getApp().globalData.room_goods_id) { + newd.room_id = getApp().globalData.room_id; + } + } else { + if (newd.goods_id == getApp().globalData.room_goods_id) { + newd.room_id = getApp().globalData.room_id; + } + } - //---是不是从收藏夹出来的--- - if (th.data.c_guide_id) { - newd['guide_id'] = th.data.c_guide_id; - newd['guide_type'] = 2; + //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ - } else { - if (getApp().globalData.guide_id) { - newd['guide_id'] = getApp().globalData.guide_id; - newd['guide_type'] = 0; + if (th.data.is_normal == 1) { + var conf = th.data.bconfig; + if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) { + var s_list = JSON.parse(conf.switch_list); - } - } - if(getApp().globalData.groupchat_id){ - newd['groupchat_id'] = getApp().globalData.groupchat_id; - } - //让商品带上房间号 - if (th.data.sys_switch.is_skuroom_id == 1) { - if (th.data.data.goods_id == getApp().globalData.room_goods_id) { - newd.room_id = getApp().globalData.room_id; - } - } else { - if (newd.goods_id == getApp().globalData.room_goods_id) { - newd.room_id = getApp().globalData.room_id; - } - } + var now = ut.gettimestamp(); + + var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); + var end = new Date(str); + end = Date.parse(end) / 1000; + + //如果后台有开启等级价的功能 + if (parseInt(s_list.rank_switch) == 2 && end > now) { + var card_price = o[getApp().globalData.userInfo['card_field']]; + //如果会员有等级价 + if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null + && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) { + newd.goods_price = card_price; + } + } + } - //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ + //---如果是线下门店销售的时候--- + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) { + var pick = th.get_pick_from_list(th.data.sto_sele_id) - if (th.data.is_normal == 1) { - var conf = th.data.bconfig; - if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) { - var s_list = JSON.parse(conf.switch_list); + th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { + if (CanOutQty) { - var now = ut.gettimestamp(); + if (CanOutQty < e.data.goodsInputNum) { + wx.showToast({ + title: '库存不足!', + icon: 'none', + }); + return false; + } - var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); - var end = new Date(str); - end = Date.parse(end) / 1000; + th.by_next_func(newd); + } else { + wx.showToast({ + title: '库存不足!', + icon: 'none', + }); + return false; + } + }) - //如果后台有开启等级价的功能 - if (parseInt(s_list.rank_switch) == 2 && end > now) { - var card_price = o[getApp().globalData.userInfo['card_field']]; - //如果会员有等级价 - if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null - && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) { - newd.goods_price = card_price; + } else { + if (o.store_count <= 0) { + wx.showToast({ + title: '库存已为空!', + icon: 'none', + }); + return false; + //return s.my_warnning("库存已为空!", 0, th); + } + + if (o.store_count < e.data.goodsInputNum) { + wx.showToast({ + title: '库存不足!', + icon: 'none', + }); + return false; + //return s.my_warnning("库存不足!", 0, th); + } + + + th.by_next_func(newd); } + return false; + + } - } - } - //-----如果是秒杀,团购,积分购,拼团,且不是普通购买----- - if (th.data.prom_type == 9 && th.data.is_normal != 1) { - newd.goods_price = th.data.prom_price; - newd.prom_type = th.data.prom_type; - newd.prom_id = th.data.prom_id; - //newd.kt_type = th.data.prom_act.kttype; //开团类型 - newd.is_pt_tz = 0; - //th.data.sto_sele_distr=1; //直接用自提的方式提交 - if (newd.kt_type > 1) { - newd.is_pt_tz = 1; //开团类型 + //-----如果是秒杀,团购,积分购,拼团,且不是普通购买----- + if (th.data.prom_type == 9 && th.data.is_normal != 1) { + newd.goods_price = th.data.prom_price; + newd.prom_type = th.data.prom_type; + newd.prom_id = th.data.prom_id; + //newd.kt_type = th.data.prom_act.kttype; //开团类型 + newd.is_pt_tz = 0; + //th.data.sto_sele_distr=1; //直接用自提的方式提交 + if (newd.kt_type > 1) { + newd.is_pt_tz = 1; //开团类型 + } + if (newd.kt_type == 3) { + th.data.sto_sele_distr = 1; + } + + } + + // else if (th.data.prom_type == 3) { + // newd.prom_type = 0; + // newd.prom_id = 0; + // } + + th.by_next_func(newd); } - if (newd.kt_type == 3) { - th.data.sto_sele_distr = 1; + + + ) + }, + by_next_func(newd){ + var th=this; + newd['pick_name'] = th.data.sto_sele_name; + newd['pick_dis'] = th.data.sto_sele_distr; + newd['is_normal'] = th.data.is_normal; + + if (newd['is_normal']) { + newd['is_pd_normal'] = 1; + //判断一下有没有全局优惠活动 + th.buyNow(newd); + } + else { + // 点击立即参团 + th.buyNow_pt(newd); + } + }, + + //统一一下获取线下库存的函数 + async check_CanOutQty(goodsinfo, item, func) { + + var sales_rules = this.data.sales_rules; + + var lock_rq = { + store_id: os.stoid, + wareId: goodsinfo.goods_id, + pageSize: 1000 + }; + + if (sales_rules == 2) { + lock_rq.storageId = item.pickup_id + } else { + lock_rq.appoint_pick_keyid = encodeURIComponent(this.data.appoint_pick_keyid) + } + + var lock = 0; + var CanOutQty = 0; + var plist = null; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { + data: lock_rq + }).then(res => { + if (res.data.code == 0 && res.data.data.total > 0) { + for (var i in res.data.data.pageData) + lock += res.data.data.pageData[i].outQty; } + }) + var sto_req = { + wareIds: encodeURIComponent(goodsinfo.erpwareid), + storeId: os.stoid + } + if (sales_rules == 2) { + sto_req.storageNos = item.pickup_no + } else { + sto_req.storageIds = encodeURIComponent(this.data.appoint_pick_keyid) } - // else if (th.data.prom_type == 3) { - // newd.prom_type = 0; - // newd.prom_id = 0; - // } - newd['pick_name'] = th.data.sto_sele_name; - newd['pick_dis'] = th.data.sto_sele_distr; - newd['is_normal'] = th.data.is_normal; - if (newd['is_normal']) { - newd['is_pd_normal'] = 1; - //判断一下有没有全局优惠活动 - th.buyNow(newd); + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { + data: sto_req + }).then(res => { + if (res.data.code == 0 && res.data.data.total > 0) { + plist = res.data.data.pageData[0]; + } + }) + + if (plist && plist.CanOutQty - lock > 0) { + CanOutQty = plist.CanOutQty - lock; } - else { - // 点击立即参团 - th.buyNow_pt(newd); - }; - }) - }, + + if (func) func(CanOutQty); + + }, + + //----------立即购买_pt----------- buyNow_pt: function (e) { s.set_b_now(e); diff --git a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml index 3bd55de..8b166fc 100644 --- a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml +++ b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml @@ -436,7 +436,7 @@ (配送不匹配) - + (库存不足) @@ -1064,12 +1064,17 @@ 已售:{{sele_g.sales_sum}} + - - 可售:{{def_pick_store.CanOutQty}} - - 可售:0 + + + + 可售:{{def_pick_store.CanOutQty}} + + 可售:0 + + 可售:{{sele_g.store_count}} @@ -1105,7 +1110,7 @@ (库存不足) (配送不匹配) - + (库存不足) @@ -1177,7 +1182,7 @@ - + 库存不足 diff --git a/packageC/pages/presell/cart/cart2.js b/packageC/pages/presell/cart/cart2.js index 0dad414..a31f25c 100644 --- a/packageC/pages/presell/cart/cart2.js +++ b/packageC/pages/presell/cart/cart2.js @@ -128,8 +128,8 @@ Page({ dis_config:null, bn_use_commission:0, //是不是使用佣金 - - same_ok:1 //同城配送按钮控制 + same_ok:1, + appoint_pick_keyid: '', }, onLoad: function (t) { @@ -248,7 +248,8 @@ Page({ sales_rules: ee.sales_rules, rank_switch: json_d.rank_switch, is_default_logistics: is_default_logistics, - is_same_city: is_same_city + is_same_city: is_same_city, + appoint_pick_keyid: json_d.appoint_pick_keyid }); var rank_switch = json_d.rank_switch; @@ -1284,7 +1285,7 @@ Page({ if (gg.is_pd_normal) goods.is_pd_normal = 1; //如果不立即购买或者秒杀,如果是线下库存购买的时候 - if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 8 && th.data.sales_rules == 2) { + if ([1,2,4,6,8,9].indexOf(goods.prom_type)== -1 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { var isok = 1; await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { isok = res; @@ -1552,7 +1553,7 @@ Page({ } //如果不立即购买或者秒杀,如果是线下库存购买的时候 - if (goods.prom_type == 0 && th.data.sales_rules == 2) { + if (goods.prom_type == 0 && th.data.sales_rules >= 2 && !g_item.whsle_id && !getApp().is_virtual(g_item)) { var isok = 1; await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) { isok = res; @@ -1729,26 +1730,38 @@ Page({ }) }, + + + //---确认线下门店的数量足不足--- async check_store_num(goods_id, pick, goods_num, func) { var lock = 0, pick_no, plist, erpwareid; + + var lock_rq = { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 }; + if (this.data.sales_rules == 3) { + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid; + delete lock_rq.storageId + } //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { - data: { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 } + data:lock_rq }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { for (var i in res.data.data.pageData) lock += res.data.data.pageData[i].outQty; } }) - //先获取门店的编号 - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { - data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } - }).then(res => { - if (res.data.code == 0) { - pick_no = res.data.data.pickup_no; - } - }) + + if (this.data.sales_rules == 2) { + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { + data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick} + }).then(res => { + if (res.data.code == 0) { + pick_no = res.data.data.pickup_no; + } + }) + } //先获取商品的线下库存 await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } @@ -1757,9 +1770,16 @@ Page({ erpwareid = res.data.data.erpwareid; } }) + + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 }; + if (this.data.sales_rules == 3) { + sto_rq.storageIds = this.data.appoint_pick_keyid; + delete sto_rq.storageNos + } + //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { - data: { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 } + data: sto_rq }).then(res => { if (res.data.code == 0) { plist = res.data.data.pageData[0]; diff --git a/packageC/pages/presell/goodsInfo/goodsInfo.js b/packageC/pages/presell/goodsInfo/goodsInfo.js index aa70361..47c0561 100644 --- a/packageC/pages/presell/goodsInfo/goodsInfo.js +++ b/packageC/pages/presell/goodsInfo/goodsInfo.js @@ -395,6 +395,8 @@ Page({ is_closecoupon: json_d.is_closecoupon, is_newsales_rules: json_d.is_newsales_rules, is_retail_price: json_d.is_retail_price || 0, + appoint_pick_keyid: json_d.appoint_pick_keyid + }); // ee.init(gid); //------几人评价------- @@ -1992,7 +1994,8 @@ Page({ th.setData({ all_pick_list: e.data.data.pageData }); //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购 预售-- - if (th.data.sales_rules == 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4 && th.data.prom_type != 8) || is_normal == 1)) { + if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id + && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ([1,2,4,6,8,9].indexOf(th.data.prom_type)==-1 || is_normal == 1)) { setTimeout(function () { th.deal_pickup_dline(e); }, 800) @@ -2199,7 +2202,8 @@ Page({ //------------处理线下门店库存-------- deal_pickup_dline(e) { - var pkno = [], th = this; + var pkno = [], + th = this; if (!th.data.sele_g) return false; if (this.data.def_pick_store) { @@ -2219,78 +2223,165 @@ Page({ var g_distr_type = th.data.sele_g.distr_type; var lock = []; + + var lock_rq = { + store_id: os.stoid, + wareId: th.data.sele_g.goods_id, + pageSize: 1000 + }; + + if (th.data.sales_rules == 3) { + lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid; + } + //先读取门店的lock,采用链式写法,少用await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, pageSize: 1000 } + data: lock_rq }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { lock = res.data.data.pageData } + var sto_rq = { + wareIds: encodeURIComponent(th.data.sele_g.erpwareid), + storeId: os.stoid, + pageSize: 2000 + } + + if (th.data.sales_rules == 3) { + sto_rq.storageIds = th.data.appoint_pick_keyid; + } else { + sto_rq.storageNos = pkno_str; + } + + //---通过接口获取门店的线下库存信息-- return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { - data: { storageNos: pkno_str, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid, pageSize: 2000 } + data: sto_rq }) }).then(res => { wx.hideLoading(); if (res.data.code == 0) { + if (res.data.data.pageData && res.data.data.pageData.length > 0) { - var plist = res.data.data.pageData; + var def_pick_store = th.data.def_pick_store; - //以原来的数组为外循环,保证距离的顺序 - for (var kk in o_plist) { - for (var ii in plist) { - //线下的门店小心 - var n_item = plist[ii]; - if (n_item.StorageNo == o_plist[kk].pickup_no) { - - //拿到锁库的数量 - var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock); - //可出库数大于预出库库存的数量,可以判断为有库存 - if (n_item.CanOutQty > lock_num) { - o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num; - new_list.push(o_plist[kk]); - //--如果找到默认门店,同时也应该判断配送方式对不对-- - if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { - th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num; - if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) - th.setData({ def_pick_store: th.data.fir_def_store }) - is_find_def_store = 1; + var plist = res.data.data.pageData; + if (th.data.sales_rules == 3) { + var lock_num = 0; + var Qty = 0; + //-- 计算锁住的库存 -- + for (var i in lock) lock_num += lock[i].outQty; + Qty = plist[0].CanOutQty - lock_num; + + if (Qty > 0) { + for (var kk in o_plist) { + o_plist[kk].CanOutQty = Qty; + new_list.push(o_plist[kk]); + } + if (th.data.fir_def_store && + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) { + th.data.fir_def_store.Qty=Qty; + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) + th.setData({ + def_pick_store: th.data.fir_def_store + }) + is_find_def_store = 1; + } + + } else { + th.setData({ + all_sto: null, + only_pk: null, + def_pickpu_list: null + }); + return false; + } + + } else { + + + //以原来的数组为外循环,保证距离的顺序 + for (var kk in o_plist) { + for (var ii in plist) { + //线下的门店小心 + var n_item = plist[ii]; + if (n_item.StorageNo == o_plist[kk].pickup_no) { + + //拿到锁库的数量 + var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock); + //可出库数大于预出库库存的数量,可以判断为有库存 + if (n_item.CanOutQty > lock_num) { + o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num; + new_list.push(o_plist[kk]); + //--如果找到默认门店,同时也应该判断配送方式对不对-- + if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { + th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num; + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) + th.setData({ + def_pick_store: th.data.fir_def_store + }) + is_find_def_store = 1; + } } + break; } - break; } } + } //数据组装下 - var em = {}; em.data = {}; em.data.data = {}; + var em = {}; + em.data = {}; + em.data.data = {}; em.data.data.total = new_list.length; em.data.data.pageData = new_list; + //--如果找到默认门店,同时也应该判断配送方式对不对-- - if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { + if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { th.data.fir_def_store.CanOutQty = 0; //--当选择的门店是客户默认的门店的时候-- if (th.data.def_pick_store && th.data.fir_def_store.pickup_id == th.data.def_pick_store.pickup_id) { - th.setData({ def_pick_store: th.data.fir_def_store }); + th.setData({ + def_pick_store: th.data.fir_def_store + }); em.data.data.pageData.unshift(th.data.def_pick_store); } else { em.data.data.pageData.splice(1, 0, th.data.fir_def_store); } } + for (let j = 0; j < em.data.data.pageData.length; j++) { + var iu = em.data.data.pageData[j]; + if (iu.CanOutQty <= 0) iu.is_no_qyt = 1; + + } + //---把数组组装进去--- th.deal_pickup(em); + } else { - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null }) + th.setData({ + all_sto: null, + only_pk: null, + def_pickpu_list: null + }) } + } else { - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null }) + th.setData({ + all_sto: null, + only_pk: null, + def_pickpu_list: null + }) } }) }, + find_lock_num(pick_id, lock) { var lock_num = 0; if (!lock) return 0; diff --git a/packageC/pages/presell/goodsInfo/goodsInfo.wxml b/packageC/pages/presell/goodsInfo/goodsInfo.wxml index 8fde05a..ca90d87 100644 --- a/packageC/pages/presell/goodsInfo/goodsInfo.wxml +++ b/packageC/pages/presell/goodsInfo/goodsInfo.wxml @@ -194,7 +194,7 @@ (配送不匹配2) - + (库存不足) @@ -630,7 +630,7 @@ (库存不足) (配送不匹配1) - + (库存不足) diff --git a/packageC/pages/presell/list/list.wxml b/packageC/pages/presell/list/list.wxml index 92486e1..6bc2abf 100644 --- a/packageC/pages/presell/list/list.wxml +++ b/packageC/pages/presell/list/list.wxml @@ -33,7 +33,7 @@ {{item.goods_name}} + url="/packageC/pages/presell/goodsInfo/goodsInfo?goods_id={{item.goods_id}}&pre_id={{item.id}}">{{item.goods_name}} diff --git a/packageC/pages/presell/pregoodsInfo/goodsInfo.js b/packageC/pages/presell/pregoodsInfo/goodsInfo.js index c687687..8542103 100644 --- a/packageC/pages/presell/pregoodsInfo/goodsInfo.js +++ b/packageC/pages/presell/pregoodsInfo/goodsInfo.js @@ -1916,7 +1916,7 @@ Page({ th.setData({ all_pick_list: e.data.data.pageData }); //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购-- - if (th.data.sales_rules == 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) { + if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) { setTimeout(function () { th.deal_pickup_dline(e); }, 800) @@ -2121,9 +2121,10 @@ Page({ } }, - //------------处理线下门店库存-------- + //------------处理线下门店库存-------- deal_pickup_dline(e) { - var pkno = [], th = this; + var pkno = [], + th = this; if (!th.data.sele_g) return false; if (this.data.def_pick_store) { @@ -2143,78 +2144,166 @@ Page({ var g_distr_type = th.data.sele_g.distr_type; var lock = []; + + var lock_rq = { + store_id: os.stoid, + wareId: th.data.sele_g.goods_id, + pageSize: 1000 + }; + + if (th.data.sales_rules == 3) { + lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid; + } + //先读取门店的lock,采用链式写法,少用await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, pageSize: 1000 } + data: lock_rq }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { lock = res.data.data.pageData } + var sto_rq = { + wareIds: encodeURIComponent(th.data.sele_g.erpwareid), + storeId: os.stoid, + pageSize: 2000 + } + + if (th.data.sales_rules == 3) { + sto_rq.storageIds = th.data.appoint_pick_keyid; + } else { + sto_rq.storageNos = pkno_str; + } + + //---通过接口获取门店的线下库存信息-- return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { - data: { storageNos: pkno_str, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid, pageSize: 2000 } + data: sto_rq }) }).then(res => { wx.hideLoading(); if (res.data.code == 0) { + if (res.data.data.pageData && res.data.data.pageData.length > 0) { - var plist = res.data.data.pageData; + var def_pick_store = th.data.def_pick_store; - //以原来的数组为外循环,保证距离的顺序 - for (var kk in o_plist) { - for (var ii in plist) { - //线下的门店小心 - var n_item = plist[ii]; - if (n_item.StorageNo == o_plist[kk].pickup_no) { - - //拿到锁库的数量 - var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock); - //可出库数大于预出库库存的数量,可以判断为有库存 - if (n_item.CanOutQty > lock_num) { - o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num; - new_list.push(o_plist[kk]); - //--如果找到默认门店,同时也应该判断配送方式对不对-- - if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { - th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num; - if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) - th.setData({ def_pick_store: th.data.fir_def_store }) - is_find_def_store = 1; + var plist = res.data.data.pageData; + if (th.data.sales_rules == 3) { + var lock_num = 0; + var Qty = 0; + //-- 计算锁住的库存 -- + for (var i in lock) lock_num += lock[i].outQty; + Qty = plist[0].CanOutQty - lock_num; + + if (Qty > 0) { + for (var kk in o_plist) { + o_plist[kk].CanOutQty = Qty; + new_list.push(o_plist[kk]); + } + if (th.data.fir_def_store && + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) { + th.data.fir_def_store.Qty=Qty; + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) + th.setData({ + def_pick_store: th.data.fir_def_store + }) + is_find_def_store = 1; + } + + } else { + th.setData({ + all_sto: null, + only_pk: null, + def_pickpu_list: null + }); + return false; + } + + } else { + + + //以原来的数组为外循环,保证距离的顺序 + for (var kk in o_plist) { + for (var ii in plist) { + //线下的门店小心 + var n_item = plist[ii]; + if (n_item.StorageNo == o_plist[kk].pickup_no) { + + //拿到锁库的数量 + var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock); + //可出库数大于预出库库存的数量,可以判断为有库存 + if (n_item.CanOutQty > lock_num) { + o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num; + new_list.push(o_plist[kk]); + //--如果找到默认门店,同时也应该判断配送方式对不对-- + if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { + th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num; + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) + th.setData({ + def_pick_store: th.data.fir_def_store + }) + is_find_def_store = 1; + } } + break; } - break; } } + } //数据组装下 - var em = {}; em.data = {}; em.data.data = {}; + var em = {}; + em.data = {}; + em.data.data = {}; em.data.data.total = new_list.length; em.data.data.pageData = new_list; + //--如果找到默认门店,同时也应该判断配送方式对不对-- - if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { + if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) { th.data.fir_def_store.CanOutQty = 0; //--当选择的门店是客户默认的门店的时候-- if (th.data.def_pick_store && th.data.fir_def_store.pickup_id == th.data.def_pick_store.pickup_id) { - th.setData({ def_pick_store: th.data.fir_def_store }); + th.setData({ + def_pick_store: th.data.fir_def_store + }); em.data.data.pageData.unshift(th.data.def_pick_store); } else { em.data.data.pageData.splice(1, 0, th.data.fir_def_store); } } + for (let j = 0; j < em.data.data.pageData.length; j++) { + var iu = em.data.data.pageData[j]; + if (iu.CanOutQty <= 0) iu.is_no_qyt = 1; + + } + //---把数组组装进去--- th.deal_pickup(em); + } else { - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null }) + th.setData({ + all_sto: null, + only_pk: null, + def_pickpu_list: null + }) } + } else { - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null }) + th.setData({ + all_sto: null, + only_pk: null, + def_pickpu_list: null + }) } }) }, + + find_lock_num(pick_id, lock) { var lock_num = 0; if (!lock) return 0; diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index a101c3a..ef60a0e 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -4000,8 +4000,25 @@ Page({ } + var mo_num=getApp().get_limit_qty(th.data.bn_goods); + var steep=getApp().get_limit_qty(th.data.bn_goods,0,1); + + if ([0,3,5,7,10].indexOf(goods.prom_type)>=-1){ + if(mo_num>goods.goods_num){ + getApp().confirmBox(goods.goods_name + "的未到达起订数量"); + th.data.is_summit_ing = 0; + return false; + } + if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){ + getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数"); + th.data.is_summit_ing = 0; + return false; + } + } + //如果不立即购买或者秒杀,如果是线下库存购买的时候 - if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id) { + if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 + && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { var isok = 1; await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { isok = res; @@ -4124,7 +4141,6 @@ Page({ var order_prom_list_cart = th.data.order_prom_list_cart; - //--组装推送数据-- for (var i = 0; i < order_prom_list_cart.length; i++) { var t_item = order_prom_list_cart[i]; @@ -4347,8 +4363,26 @@ Page({ check_map[txt] = 1; } - //如果不立即购买或者秒杀,如果是线下库存购买的时候 - if (goods.prom_type == 0 && th.data.sales_rules >= 2) { + goods.prom_type=parseInt(goods.prom_type+''); + var mo_num=getApp().get_limit_qty(g_item); + var steep=getApp().get_limit_qty(g_item,0,1); + + if ([0,3,5,7,10].indexOf(goods.prom_type)>=-1){ + if(mo_num>goods.goods_num){ + getApp().confirmBox(goods.goods_name + "的未到达起订数量"); + th.data.is_summit_ing = 0; + return false; + } + if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){ + getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数"); + th.data.is_summit_ing = 0; + return false; + } + + } + + //如果不立即购买或者秒杀,如果是线下库存购买的时候 + if ([0,3,5,7,10].indexOf(goods.prom_type)>=-1 && th.data.sales_rules >= 2 && !g_item.whsle_id && !getApp().is_virtual(g_item) ) { var isok = 1; await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) { isok = res; diff --git a/pages/activity/pind_list/pind_list.js b/pages/activity/pind_list/pind_list.js index 257f307..4f816d4 100644 --- a/pages/activity/pind_list/pind_list.js +++ b/pages/activity/pind_list/pind_list.js @@ -163,6 +163,39 @@ Page({ if (plist.length <= 0) { getApp().showWarning("没有更多数据"); th.data.ismore = 0; + + + + //没有数据切换 + if (e.data.currentPage == 1 && this.data.type == 1) { + + + e.data.currentPage=1; + i = "/api/weshop/teamlist/pageteam/0?page=" + e.data.currentPage; + await getApp().request.promiseGet(i, { + isShowLoading: 0, + data: { + store_id: os.stoid, + is_end: 0, + is_show: 1, + user_id:getApp().globalData.user_id, + } + }).then(res => { + plist = res.data.data.pageData; + }); + + if(plist){ + setTimeout(function () { + th.data.ismore = 1; + th.setData({ + type: 0 + }); + th.requestSalelist(); + }, 1000); + } + + } + } //--循环读取接口--- for (var i = 0; i < plist.length; i++) { diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index dc1ecae..4c61b86 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -1612,9 +1612,16 @@ Page({ } } + var add_num=1; + var mo_num=getApp().get_limit_qty(a); + var steep=getApp().get_limit_qty(a,0,1); + if(steep>1){ + add_num=steep; + } + var e = { - goods_num: a.goods_num + 1, + goods_num: a.goods_num + add_num, id: a.id, goods_id: a.goods_id, store_id: oo.stoid @@ -1640,16 +1647,26 @@ Page({ } + var add_num=1; + var mo_num=getApp().get_limit_qty(a); + var steep=getApp().get_limit_qty(a,0,1); + if(steep>1){ + add_num=steep; + } - if (1 != a.goods_num) { - var e = { - goods_num: a.goods_num - 1, - id: a.id, - goods_id: a.goods_id, - store_id: oo.stoid - }; - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + var e = { + goods_num: a.goods_num - add_num, + id: a.id, + goods_id: a.goods_id, + store_id: oo.stoid + }; + + if(e.goods_num<=0){ + this.data.up_dating = 0; + return false; } + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + }, @@ -1668,7 +1685,10 @@ Page({ var e = a; var th = this; - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { + + var mo_num=getApp().get_limit_qty(e); + + if (a = isNaN(t.detail.value) || t.detail.value < mo_num ? mo_num : parseInt(t.detail.value)) { var s = { goods_num: a, goods_id: e.service_id, @@ -1754,6 +1774,33 @@ Page({ }, + click_set_limit(gd_info,pitems,item){ + var th=this; + var mo_num=getApp().get_limit_qty(gd_info); + var steep=getApp().get_limit_qty(gd_info,0,1); + if(gd_info.is_integral_normal || gd_info.is_pd_normal || [0,3,5,7,10].indexOf(gd_info.prom_type) > -1){ + + var ue = { + goods_num: gd_info.goods_num,store_id: oo.stoid, + id: gd_info.id,goods_id: gd_info.goods_id + }; + var up_num=0; + if(mo_num>gd_info.goods_num){ + up_num=mo_num; + } + if(gd_info.goods_num>mo_num && (gd_info.goods_num-mo_num)%steep!=0 && steep>1){ + up_num=mo_num+ parseInt((gd_info.goods_num-mo_num)/steep)*steep+steep; + } + if(up_num){ + ue.goods_num=up_num; + th.update_cart(ue, pitems, item); + var txt1 = "requestData[" + pitems + "].goods[" + item + "].goods_num"; + th.setData({[txt1]:up_num }) + } + } + }, + + //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- checkAll: async function () { var e = this, @@ -1792,11 +1839,16 @@ Page({ [txt]: 0, }); } + var fir = 0; for (var j = 0; j < item.length; j++) { if (item[j].is_gift) continue; - var obj = JSON.parse(JSON.stringify(item[j])); + //-- 判断起购数量 -- + if(!e.data.checkAllToggle){ + th.click_set_limit(obj,i,j); + } + //计算之前先移除组合购的计算 if (obj.prom_type == 7) zh_calc.remove_zhprom(dda, i, obj); @@ -1884,7 +1936,7 @@ Page({ // if (!e.data.checkAllToggle) { //多门店优惠促销次数控制 - if(dda[i].pro_off){ + if(dda[i].pro_off || e.data.checkAllToggle){ var txt = "requestData[" + i + "].selected"; e.setData({ [txt]: 0, @@ -2041,9 +2093,11 @@ Page({ for (var i = 0; i < item.length; i++) { let pro_off1=false 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 && !gd_info.selected) { + + if(!sele) th.click_set_limit(gd_info,pitems,i) + + if (!getApp().is_virtual(gd_info) && th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected) { var ob = {}; await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) { ob = res; @@ -2227,45 +2281,56 @@ Page({ 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 && !a.selected) { - 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', - }); + //-- 如果是选中的时候 -- + if(!a.selected){ - return false; - } else { - if (th.data.sales_rules == 3) { - var goods_id = gd_info.goods_id; - var num = 0; + //-- 专门来设置商品订购数量 -- + th.click_set_limit(gd_info,pitems,item) + if (!getApp().is_virtual(gd_info) && th.data.sales_rules >= 2 + && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 ) { - 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 - } + var ob = {}; + await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) { + ob = res; + }); + if (ob.code == -1) { - if (num > ob.CanOutQty) { 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; + } + } } - } + } } + + let pro_off=false //判断多店优惠促销次数控制 if (th.data.requestData.length>1) { @@ -2536,8 +2601,34 @@ Page({ user_id = getApp().globalData.user_id; function normal_check(store_count, goodsinfo, wareIds) { + + + // getApp().my_warnning('购买数量超出商品库存', 0, th); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + //-- 要判断是不是起订量不购 -- + if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){ + var mo_num=getApp().get_limit_qty(goodsinfo); + var steep=getApp().get_limit_qty(goodsinfo,0,1); + if(mo_num>1 && t.goods_num1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){ + + wx.showToast({ + title: '购买数量必须是起订量的倍数', + icon: 'none', + }); + t.goods_num =mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep+steep; + } + } + + //--- 看一下是不是线下库存 --- - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) { + if (!getApp().is_virtual(goodsinfo) && th.data.sales_rules >= 2 && !goodsinfo.whsle_id) { th.check_down_line(t, pitem, item, wareIds); } else { if (t.goods_num > store_count) { @@ -2545,8 +2636,6 @@ Page({ title: '购买数量超出商品库存', icon: 'none', }); - // getApp().my_warnning('购买数量超出商品库存', 0, th); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: store_count }); @@ -2620,7 +2709,29 @@ Page({ }); e.doCheckAll(); - t.goods_num = cbuy > 0 ? cbuy : limit, + t.goods_num = cbuy > 0 ? cbuy : limit; + + if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){ + var mo_num=getApp().get_limit_qty(goodsinfo); + var steep=getApp().get_limit_qty(goodsinfo,0,1); + if(mo_num>1 && t.goods_num1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){ + + wx.showToast({ + title: '购买数量必须是起订量的倍数', + icon: 'none', + }); + + t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep + } + } // t.goods_num = cbuy > 0 ? cbuy : 0, e.update_cart(t, pitem, item); return false; @@ -3370,10 +3481,42 @@ Page({ } glist += i_arr[j].goods_id + ","; ab = 1; + + //判断商品的起订数量 + var mo_num=getApp().get_limit_qty(i_arr[j]); + var steep=getApp().get_limit_qty(i_arr[j],0,1); + var py_type= parseInt(i_arr[j].prom_type+''); + + if([0,3,5,7,10].indexOf(py_type)>-1){ + + if(mo_num>i_arr[j].goods_num){ + getApp().confirmBox(i_arr[j].goods_name + "的未到达起订数量"); + wx.hideLoading(); + return false; + } + if(steep>1 && (i_arr[j].goods_num-mo_num)%steep!=0 ){ + getApp().confirmBox(i_arr[j].goods_name + "的购买的数量不是起订量的倍数"); + var num=mo_num+ parseInt((i_arr[j].goods_num-mo_num)/steep)*steep+steep; + var e = { + goods_num: num, + id: i_arr[j].id, + goods_id: i_arr[j].goods_id, + store_id: oo.stoid + }; + + th.postCardList(e, j, i); + + wx.hideLoading(); + return false; + } + + } + + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- - if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || - i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { + if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || i_arr[j].prom_type == 10 || + i_arr[j].need_downlow_num) && !getApp().is_virtual(i_arr[j]) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { //--获取商品的线下商品ID-- var gd = null; diff --git a/pages/cart/cart/cart.wxml b/pages/cart/cart/cart.wxml index 60e8fab..4779638 100644 --- a/pages/cart/cart/cart.wxml +++ b/pages/cart/cart/cart.wxml @@ -42,6 +42,7 @@ + diff --git a/pages/goods/goodsInfo/buy_com_pop.wxml b/pages/goods/goodsInfo/buy_com_pop.wxml index d81e608..ee65537 100644 --- a/pages/goods/goodsInfo/buy_com_pop.wxml +++ b/pages/goods/goodsInfo/buy_com_pop.wxml @@ -13,10 +13,14 @@ 已售:{{sele_g.sales_sum}} - - 可售:{{def_pick_store.CanOutQty}} - - 可售:0 + + + + 可售:{{def_pick_store.CanOutQty}} + + 可售:0 + + 可售:{{sele_g.store_count}} @@ -29,8 +33,8 @@ - - {{def_pick_store.pickup_name}} + + {{def_pick_store.pickup_name}} 距离:{{def_pick_store.distance > 1000 ? filters.toFix(def_pick_store.distance / 1000, 2) + "km" : filters.toFix(def_pick_store.distance, 0) + "m"}} @@ -53,7 +57,7 @@ (库存不足) (配送不匹配) - + (库存不足) @@ -136,7 +140,7 @@ - + 库存不足 @@ -154,7 +158,7 @@ - + 库存不足 diff --git a/pages/goods/goodsInfo/buy_integral.wxml b/pages/goods/goodsInfo/buy_integral.wxml index fc198a4..6f05c80 100644 --- a/pages/goods/goodsInfo/buy_integral.wxml +++ b/pages/goods/goodsInfo/buy_integral.wxml @@ -26,9 +26,9 @@ - - {{def_pick_store.pickup_name}} - + + {{def_pick_store.pickup_name}} + 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}} @@ -47,11 +47,11 @@ (库存不足) (配送不匹配) - (库存不足) + (库存不足) - 地址:{{def_pick_store.fulladdress}} + 地址:{{def_pick_store.fulladdress}} diff --git a/pages/goods/goodsInfo/buy_pt.wxml b/pages/goods/goodsInfo/buy_pt.wxml index 62530c5..4a302f1 100644 --- a/pages/goods/goodsInfo/buy_pt.wxml +++ b/pages/goods/goodsInfo/buy_pt.wxml @@ -25,8 +25,10 @@ 已售:{{sele_g.sales_sum}} - 可售:{{def_pick_store.CanOutQty}} - 可售:0 + + 可售:{{def_pick_store.CanOutQty}} + 可售:0 + 可售:{{sele_g.store_count}} @@ -47,11 +49,11 @@ - - {{def_pick_store.pickup_name}} + + {{def_pick_store.pickup_name}} - + 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}} @@ -71,7 +73,7 @@ (库存不足) (配送不匹配) - (库存不足) + (库存不足) @@ -176,16 +178,32 @@ 请先选择门店 - - - - 库存不足 - - - 立即购买 - - - + + + + + + + + 库存不足 + + + + 立即购买 + + + + + + + 库存不足 + + + + 立即购买 + + + diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index cd996f1..dd67cc6 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -558,7 +558,7 @@ Page({ th = this; getApp().getConfig2(function (e) { var sales_rules = e.sales_rules; - if (sales_rules >= 2 && [1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 && !th.data.sele_g.whsle_id) { + if (!getApp().is_virtual(th.data.sele_g) && sales_rules >= 2 && [1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 && !th.data.sele_g.whsle_id) { getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () { var lock = 0, plist = null; @@ -1102,18 +1102,18 @@ Page({ }); + + //获取统一条形码,普通商品和优惠促销的商品 if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5 || ee.data.data.prom_type == 7 || ee.data.data.prom_type == 9 || ee.data.data.prom_type == 10) { - //默认门店要拿下门店库存 - if (that.data.sales_rules == 2 && that.data.is_newsales_rules) { - //获取门店 - ee.get_sto(); - } else { - //获取门店 - ee.get_sto(); - } + //-- 更新默认购买的数量 --- + var mo_num=getApp().get_limit_qty(t.data.data); + ee.setData({goodsInputNum:mo_num}) + ee.setData({mo_num:mo_num}) + + ee.get_sto(); ee.get_sku(o.stoid, t.data.data, gid); ee.check_has_flash(); @@ -1197,6 +1197,7 @@ Page({ setTimeout(()=> { console.log('cccc'); console.log(th.data.prom_type); + },500) @@ -1208,11 +1209,8 @@ Page({ console.log('aaaaaaaaaa'); console.log(this.data.prom_type); - this.data.enterAddressPage && (this.data.enterAddressPage = !1); - - - + this.data.enterAddressPage && (this.data.enterAddressPage = !1); }, @@ -1680,7 +1678,7 @@ Page({ newd.is_pd_normal = 1; //---如果是线下门店销售的时候--- - if (th.data.sales_rules >= 2) { + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2) { var pick = th.get_pick_from_list(th.data.sto_sele_id) //---通过接口获取门店的线下库存信息-- th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { @@ -1778,7 +1776,7 @@ Page({ return false; } else { //---如果是线下门店销售的时候--- - if (th.data.sales_rules >= 2) { + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2) { var pick = th.get_pick_from_list(th.data.sto_sele_id) th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) { @@ -1837,7 +1835,7 @@ Page({ } //---如果是线下门店销售的时候--- - if (th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) { + if ( !getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) { var pick = th.get_pick_from_list(th.data.sto_sele_id) //---通过接口获取门店的线下库存信息-- // getApp().request.get("/api/weshop/goods/getWareStorages", { @@ -1942,6 +1940,9 @@ Page({ th.add_cart_next(e, t, a, o, newd); //加入购物车下一步 } } + + + }) }, @@ -2402,11 +2403,24 @@ Page({ //----------增加购买数量----------- addCartNum: function (t) { - this.checkCartNum(this.data.goodsInputNum + 1); + + var add_num=1; + var p_type=parseInt(this.data.prom_type) + if([1,2,4,6,8,9].indexOf(p_type)==-1 || this.data.openSpecModal_inte_normal == 1 || this.data.is_normal == 1){ + add_num=getApp().get_limit_qty(this.data.sele_g,0,1); + } + + this.checkCartNum(this.data.goodsInputNum + add_num); }, //----------减少购买数量----------- subCartNum: function (t) { - this.checkCartNum(this.data.goodsInputNum - 1); + + var add_num=1; + var p_type=parseInt(this.data.prom_type) + if([1,2,4,6,8,9].indexOf(p_type)==-1 || this.data.openSpecModal_inte_normal == 1 || this.data.is_normal == 1){ + add_num=getApp().get_limit_qty(this.data.sele_g,0,1); + } + this.checkCartNum(this.data.goodsInputNum - add_num); }, //----------输入框输入购买数量----------- inputCartNum: function (t) { @@ -2430,6 +2444,8 @@ Page({ //------检查数量是不是超出限购------ checkCartNum: function (t) { var th = this; + var mo_num=getApp().get_limit_qty(th.data.sele_g); + var steep=getApp().get_limit_qty(th.data.sele_g,0,1); this.get_buy_num(this.data.sele_g, async function () { //--判断商品是否超出限购-- @@ -2495,8 +2511,9 @@ Page({ } } var e = th.data.sele_g.store_count; - var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4 - if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 && p_type != 2 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { + var p_type =parseInt(th.data.prom_type+'') ; //&& p_type!=1 && p_type!=4 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2 && + ([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { if (!th.data.def_pick_store) { wx.showToast({ title: '请选择门店', @@ -2517,12 +2534,33 @@ Page({ }); // wx.showModal({title: '库存不足',}); if (e < 0) e = 0; + + //只有普通商品才有起购数 + if([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){ + if(emo_num && (e-mo_num)%steep!=0){ + e=mo_num+ parseInt((e-mo_num)/steep)*steep; + } + } th.setData({ goodsInputNum: e }); return false; } + + + //var steep=getApp().get_limit_qty(th.data.sele_g,0,1); + + t > e || 0 == e ? t = e : t < 1 && (t = 1); + + + //只有普通商品才有起购数 + if([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){ + if(t= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2 && + ([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { if (!th.data.def_pick_store) { wx.showModal({ title: '请选择门店', @@ -3342,7 +3381,7 @@ Page({ if (!item.whsle_id && [1,2,4,6].indexOf(item.prom_type)==-1) that.check_is_youhui(gid, that.data.is_normal); //默认门店要拿下门店库存 - if (that.data.sales_rules >= 2 && that.data.def_pick_store && !that.data.sele_g.whsle_id && [1,2,4,6].indexOf(item.prom_type)==-1) { + if (!getApp().is_virtual(th.data.sele_g) && that.data.sales_rules >= 2 && that.data.def_pick_store && !that.data.sele_g.whsle_id && [1,2,4,6].indexOf(item.prom_type)==-1) { var lock = 0, plist = null; @@ -3643,7 +3682,7 @@ Page({ }); //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购-- - if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && !th.data.sele_g.whsle_id && ([1,2,4,6,8,9].indexOf(th.data.prom_type)==-1 || is_normal == 1)) { + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && !th.data.sele_g.whsle_id && ([1,2,4,6,8,9].indexOf(th.data.prom_type)==-1 || is_normal == 1)) { setTimeout(function () { th.deal_pickup_dline(e); }, 800) @@ -3939,7 +3978,7 @@ Page({ } if (th.data.fir_def_store && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) { - th.data.fir_def_store.Qty; + th.data.fir_def_store.Qty=Qty; if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id) th.setData({ def_pick_store: th.data.fir_def_store @@ -4946,6 +4985,7 @@ Page({ var th = this; var ind = parseInt(e.currentTarget.dataset.it); + var mo_num=getApp().get_limit_qty(this.data.sele_g); //如果是拼单活动的普通购买 if (ind == 1) { @@ -4959,14 +4999,19 @@ Page({ th.get_sto(1); th.setData({ is_normal: ind, - openSpecModal_pt: 1 + openSpecModal_pt: 1, + goodsInputNum: mo_num, + mo_num:mo_num + }); } else { th.get_sto(1); th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () { th.setData({ is_normal: ind, - openSpecModal_pt: 1 + openSpecModal_pt: 1, + goodsInputNum: mo_num, + mo_num:mo_num }); }); } @@ -4975,6 +5020,10 @@ Page({ if (th.data.is_normal) { th.data.g_buy_num = new Map(); + th.setData({ + goodsInputNum: mo_num, + mo_num:mo_num + }); } //拼单商品从这里进,先判断有没有买过商品, @@ -5041,7 +5090,6 @@ Page({ getApp().confirmBox("拼团商品至少要买" + qnum + "件!"); return false; } - } th.addcart_pt_func(); @@ -6919,7 +6967,7 @@ Page({ var lock = 0; //---如果是活动的时候,同时不是普通购买--- - if (th.data.sele_g.whsle_id || [1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) > -1 && !th.data.is_normal) { + if (getApp().is_virtual(th.data.sele_g) || th.data.sele_g.whsle_id || ([1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) > -1 && !th.data.is_normal)) { func(); return false; } @@ -8068,10 +8116,14 @@ Page({ openSpecModel_Nor: function () { this.data.g_buy_num = new Map(); var th = this; + var mo_num=getApp().get_limit_qty(this.data.sele_g); + this.setData({ open_ind_store: 5, - goodsInputNum: 1 + goodsInputNum: mo_num, + mo_num:mo_num }); //拼团直接给4 + if (th.data.sku_g_pt) { this.get_sto(1) this.setData({ diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index 7997753..97d7ee5 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -684,7 +684,7 @@ (配送不匹配) - + (库存不足) @@ -1264,12 +1264,19 @@ 已售:{{sele_g.sales_sum}} + - - 可售:{{def_pick_store.CanOutQty}} - - 可售:0 + + + + + 可售:{{def_pick_store.CanOutQty}} + + 可售:0 + + + 可售:{{sele_g.store_count}} @@ -1314,7 +1321,7 @@ (库存不足) (配送不匹配) - + (库存不足) @@ -1394,8 +1401,8 @@ - - + + 库存不足 @@ -1411,7 +1418,7 @@ - + 库存不足 @@ -1610,7 +1617,7 @@ {{item.pickup_name}} - (库存不足) + (库存不足) @@ -1638,7 +1645,7 @@ {{item.pickup_name}} - (库存不足) + (库存不足) @@ -1668,7 +1675,7 @@ {{item.pickup_name}} - (库存不足) + (库存不足) diff --git a/pages/user/index/index.js b/pages/user/index/index.js index 5ab3214..7fae82f 100644 --- a/pages/user/index/index.js +++ b/pages/user/index/index.js @@ -991,10 +991,23 @@ Page({ //过滤掉分销关闭的 let distribut_end_time = await getApp().user_tools_endTime(2);//过滤掉分销到期的 await getApp().promiseGet("/api/weshop/storeDistribut/get/" + os.stoid, {}).then(rs => { - if (rs.data.code == 0) { - var dis = rs.data.data; + if (rs.data.code == 0 || !rs.data.data) { + var is_ok=1; + + if(!distribut_end_time){ + is_ok=0; + } + else if(!rs.data.data){ + is_ok=0; + }else{ + var dis=rs.data.data; + if(!dis || dis.switch == 0){ + is_ok=0; + } + } + for (var i in d_list) { - if (d_list[i].name == '我的分销' && (!dis || dis.switch == 0) || (d_list[i].name == '我的分销' && !distribut_end_time)) { + if (d_list[i].name == '我的分销' && !is_ok) { d_list.splice(i, 1); } } diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 7553b06..2a90a97 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -1041,7 +1041,7 @@ Page({ } //--如果是线下库存的时候-- - if (th.data.conf.sales_rules >= 2 && !gg.whsle_id) { + if (!getApp().is_virtual(gg) && th.data.conf.sales_rules >= 2 && !gg.whsle_id) { var ob = {}; await th.check_down_line_next(gg, good.goods_num, order.pickup_id, function (obj) { ob = obj; @@ -1667,7 +1667,7 @@ Page({ //判断是不是线下库存的购买, 是不是秒杀活动 - if (th.data.sales_rules >= 2 && !prom && !good.whsle_id) { + if (!getApp().is_virtual(good) && th.data.sales_rules >= 2 && !prom && !good.whsle_id) { //-- 看一下购物车上有多少商品 -- var cart_num = 0; diff --git a/utils/filter.wxs b/utils/filter.wxs index c74dce0..a3f3eb5 100644 --- a/utils/filter.wxs +++ b/utils/filter.wxs @@ -289,4 +289,8 @@ module.exports = { isExpired: filters.isExpired, gettimestamp: filters.gettimestamp, showStartAndEndDate: filters.showStartAndEndDate, + is_virtual_gd:function (is_virtual){ + if(is_virtual==2) return true; + return false; + } } \ No newline at end of file