diff --git a/packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js b/packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js index 6b21bc1..d7489cb 100644 --- a/packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js +++ b/packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js @@ -1496,6 +1496,33 @@ Page({ } } + if (th.data.sales_rules==1 && th.data.bn_goods.store_count= 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, goods.goods_num, function (res) { + isok = res; + }); + if (!isok) { + getApp().confirmBox("商品的门店库存不足"); + th.data.is_summit_ing = 0; + th.setData({ + submit: 0 + }) + return false; + } + } + + + + } if (getApp().globalData.skinface_id) { @@ -2273,8 +2300,50 @@ Page({ mark:true }) th.calculatePrice2() + }, - } + //---确认线下门店的数量足不足--- + async check_store_num(goods_id, pick, goods_num, func) { + var lock = 0, pick_no, plist, erpwareid; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { + data: { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 } + }).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; + } + }) + //先获取商品的线下库存 + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } + }).then(res => { + if (res.data.code == 0) { + erpwareid = res.data.data.erpwareid; + } + }) + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { + data: { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid } + }).then(res => { + if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length) { + plist = res.data.data.pageData[0]; + } + }) + var isok = 1; + if (!plist || goods_num > plist.CanOutQty - lock) { + isok = 0; + } + func(isok); + }, }); diff --git a/packageC/pages/presell/cart/cart2.js b/packageC/pages/presell/cart/cart2.js index 1bb61cb..32efcb2 100644 --- a/packageC/pages/presell/cart/cart2.js +++ b/packageC/pages/presell/cart/cart2.js @@ -1605,6 +1605,30 @@ Page({ } } + if (th.data.sales_rules==1 && th.data.bn_goods.store_count= 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, goods.goods_num, function (res) { + isok = res; + }); + if (!isok) { + getApp().confirmBox("商品的门店库存不足"); + th.data.is_summit_ing = 0; + th.setData({ + submit: 0 + }) + return false; + } + } + } @@ -2149,7 +2173,7 @@ Page({ } }) var isok = 1; - if (goods_num > plist.CanOutQty - lock) { + if (!plist || goods_num > plist.CanOutQty - lock) { isok = 0; } func(isok); diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index bb43f53..a0877a6 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -3411,16 +3411,7 @@ Page({ let user_addr = th.data.user_addr; let c_wuliu=parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2); - //-- 因为订单促销的取价规则,所以要判断一下各种情况 -- - switch (ord_prom && ord_prom.discount_field){ - case 1: - c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_shop_price - no_post_temp_shop_price).toFixed(2); - break; - case 2: - c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_market_price - no_post_temp_market_price).toFixed(2); - break; - } - + var req_d = { province: user_addr.province, city: user_addr.city, district: user_addr.district, wuliu: c_wuliu, store_id: os.stoid @@ -5075,6 +5066,7 @@ Page({ 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; }); @@ -5088,6 +5080,7 @@ Page({ } } + //-- 如果有线下取价的话 -- if (th.data.bn_goods.is_offline) { item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); @@ -6026,7 +6019,7 @@ Page({ }) var isok = 1; - if (goods_num > plist.CanOutQty - lock) { + if (!plist || goods_num > plist.CanOutQty - lock) { isok = 0; } func(isok); diff --git a/packageE/pages/cart/cart2_inte/cart2_inte.js b/packageE/pages/cart/cart2_inte/cart2_inte.js index 7dad782..3cb0758 100644 --- a/packageE/pages/cart/cart2_inte/cart2_inte.js +++ b/packageE/pages/cart/cart2_inte/cart2_inte.js @@ -1359,6 +1359,31 @@ Page({ } } + + if (th.data.sales_rules==1 && th.data.bn_goods.store_count= 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, goods.goods_num, function (res) { + isok = res; + }); + if (!isok) { + getApp().confirmBox("商品的门店库存不足"); + th.data.is_summit_ing = 0; + th.setData({ + submit: 0 + }) + return false; + } + } + } if(getApp().globalData.skinface_id){ @@ -1577,7 +1602,7 @@ Page({ } }) var isok = 1; - if (goods_num > plist.CanOutQty - lock) { + if (!plist || goods_num > plist.CanOutQty - lock) { isok = 0; } func(isok); diff --git a/packageE/pages/cart/cart2_pt/cart2_pt.js b/packageE/pages/cart/cart2_pt/cart2_pt.js index 23d1d5c..34336e0 100644 --- a/packageE/pages/cart/cart2_pt/cart2_pt.js +++ b/packageE/pages/cart/cart2_pt/cart2_pt.js @@ -1507,6 +1507,30 @@ Page({ } } + if (th.data.sales_rules==1 && th.data.bn_goods.store_count= 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, goods.goods_num, function (res) { + isok = res; + }); + if (!isok) { + getApp().confirmBox("商品的门店库存不足"); + th.data.is_summit_ing = 0; + th.setData({ + submit: 0 + }) + return false; + } + } + } if (getApp().globalData.skinface_id) { @@ -2445,7 +2469,69 @@ Page({ if(!th.data.can_use_ord_prom[pickid]){ th.get_buy_now_quan(); } - } + }, + + //---确认线下门店的数量足不足--- + 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: 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; + } + }) + + 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 } + }).then(res => { + if (res.data.code == 0) { + 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: sto_rq + }).then(res => { + if (res.data.code == 0) { + plist = res.data.data.pageData[0]; + } + }) + + var isok = 1; + if (!plist || goods_num > plist.CanOutQty - lock) { + isok = 0; + } + func(isok); + }, diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index ff117d6..3b9777b 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -2064,6 +2064,8 @@ Page({ //判断多门店,优惠促销次数的控制 async multiple_stores_pro(pitems, item) { + if(!this.data.requestData || !this.data.requestData[pitems]) return false + let a = this.data.requestData[pitems].goods[item]; let th = this let arr_pro = [] diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 07fdcc1..223b3f8 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -5710,7 +5710,7 @@ Page({ }); // s.my_warnning('超出商品限购', 0, th); - var num = th.data.prom_buy_limit - th.data.prom_buy_num; + var num = 0;//th.data.prom_buy_limit - th.data.prom_buy_num; if (num < 0) num = 0; th.setData({ goodsInputNum: num