Commit dd5105b40b11473f09f9588f85e2b35e5bedc6ad
1 parent
3da4e0b1
订单取价的优化
Showing
7 changed files
with
215 additions
and
16 deletions
packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js
... | ... | @@ -1496,6 +1496,33 @@ Page({ |
1496 | 1496 | } |
1497 | 1497 | } |
1498 | 1498 | |
1499 | + if (th.data.sales_rules==1 && th.data.bn_goods.store_count<oods.goods_num){ | |
1500 | + getApp().confirmBox("商品的门店库存不足"); | |
1501 | + th.data.is_summit_ing = 0; | |
1502 | + th.setData({ | |
1503 | + submit: 0 | |
1504 | + }) | |
1505 | + return false; | |
1506 | + } | |
1507 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | |
1508 | + if (th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { | |
1509 | + var isok = 1; | |
1510 | + await th.check_store_num(goods.goods_id, th.data.bn_pick, goods.goods_num, function (res) { | |
1511 | + isok = res; | |
1512 | + }); | |
1513 | + if (!isok) { | |
1514 | + getApp().confirmBox("商品的门店库存不足"); | |
1515 | + th.data.is_summit_ing = 0; | |
1516 | + th.setData({ | |
1517 | + submit: 0 | |
1518 | + }) | |
1519 | + return false; | |
1520 | + } | |
1521 | + } | |
1522 | + | |
1523 | + | |
1524 | + | |
1525 | + | |
1499 | 1526 | } |
1500 | 1527 | |
1501 | 1528 | if (getApp().globalData.skinface_id) { |
... | ... | @@ -2273,8 +2300,50 @@ Page({ |
2273 | 2300 | mark:true |
2274 | 2301 | }) |
2275 | 2302 | th.calculatePrice2() |
2303 | + }, | |
2276 | 2304 | |
2277 | - } | |
2305 | + //---确认线下门店的数量足不足--- | |
2306 | + async check_store_num(goods_id, pick, goods_num, func) { | |
2307 | + var lock = 0, pick_no, plist, erpwareid; | |
2308 | + //先读取门店的lock | |
2309 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { | |
2310 | + data: { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 } | |
2311 | + }).then(res => { | |
2312 | + if (res.data.code == 0 && res.data.data.total > 0) { | |
2313 | + for (var i in res.data.data.pageData) | |
2314 | + lock += res.data.data.pageData[i].outQty; | |
2315 | + } | |
2316 | + }) | |
2317 | + //先获取门店的编号 | |
2318 | + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { | |
2319 | + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } | |
2320 | + }).then(res => { | |
2321 | + if (res.data.code == 0) { | |
2322 | + pick_no = res.data.data.pickup_no; | |
2323 | + } | |
2324 | + }) | |
2325 | + //先获取商品的线下库存 | |
2326 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { | |
2327 | + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } | |
2328 | + }).then(res => { | |
2329 | + if (res.data.code == 0) { | |
2330 | + erpwareid = res.data.data.erpwareid; | |
2331 | + } | |
2332 | + }) | |
2333 | + //读取线下的门店库存 | |
2334 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { | |
2335 | + data: { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid } | |
2336 | + }).then(res => { | |
2337 | + if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length) { | |
2338 | + plist = res.data.data.pageData[0]; | |
2339 | + } | |
2340 | + }) | |
2341 | + var isok = 1; | |
2342 | + if (!plist || goods_num > plist.CanOutQty - lock) { | |
2343 | + isok = 0; | |
2344 | + } | |
2345 | + func(isok); | |
2346 | + }, | |
2278 | 2347 | |
2279 | 2348 | |
2280 | 2349 | }); | ... | ... |
packageC/pages/presell/cart/cart2.js
... | ... | @@ -1605,6 +1605,30 @@ Page({ |
1605 | 1605 | } |
1606 | 1606 | } |
1607 | 1607 | |
1608 | + if (th.data.sales_rules==1 && th.data.bn_goods.store_count<oods.goods_num){ | |
1609 | + getApp().confirmBox("商品的门店库存不足"); | |
1610 | + th.data.is_summit_ing = 0; | |
1611 | + th.setData({ | |
1612 | + submit: 0 | |
1613 | + }) | |
1614 | + return false; | |
1615 | + } | |
1616 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | |
1617 | + if (th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { | |
1618 | + var isok = 1; | |
1619 | + await th.check_store_num(goods.goods_id, th.data.bn_pick, goods.goods_num, function (res) { | |
1620 | + isok = res; | |
1621 | + }); | |
1622 | + if (!isok) { | |
1623 | + getApp().confirmBox("商品的门店库存不足"); | |
1624 | + th.data.is_summit_ing = 0; | |
1625 | + th.setData({ | |
1626 | + submit: 0 | |
1627 | + }) | |
1628 | + return false; | |
1629 | + } | |
1630 | + } | |
1631 | + | |
1608 | 1632 | |
1609 | 1633 | } |
1610 | 1634 | |
... | ... | @@ -2149,7 +2173,7 @@ Page({ |
2149 | 2173 | } |
2150 | 2174 | }) |
2151 | 2175 | var isok = 1; |
2152 | - if (goods_num > plist.CanOutQty - lock) { | |
2176 | + if (!plist || goods_num > plist.CanOutQty - lock) { | |
2153 | 2177 | isok = 0; |
2154 | 2178 | } |
2155 | 2179 | func(isok); | ... | ... |
packageE/pages/cart/cart2/cart2.js
... | ... | @@ -3411,16 +3411,7 @@ Page({ |
3411 | 3411 | let user_addr = th.data.user_addr; |
3412 | 3412 | let c_wuliu=parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2); |
3413 | 3413 | |
3414 | - //-- 因为订单促销的取价规则,所以要判断一下各种情况 -- | |
3415 | - switch (ord_prom && ord_prom.discount_field){ | |
3416 | - case 1: | |
3417 | - c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_shop_price - no_post_temp_shop_price).toFixed(2); | |
3418 | - break; | |
3419 | - case 2: | |
3420 | - c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_market_price - no_post_temp_market_price).toFixed(2); | |
3421 | - break; | |
3422 | - } | |
3423 | - | |
3414 | + | |
3424 | 3415 | var req_d = { |
3425 | 3416 | province: user_addr.province, city: user_addr.city, district: user_addr.district, |
3426 | 3417 | wuliu: c_wuliu, store_id: os.stoid |
... | ... | @@ -5075,6 +5066,7 @@ Page({ |
5075 | 5066 | if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 |
5076 | 5067 | && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { |
5077 | 5068 | var isok = 1; |
5069 | + | |
5078 | 5070 | await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { |
5079 | 5071 | isok = res; |
5080 | 5072 | }); |
... | ... | @@ -5088,6 +5080,7 @@ Page({ |
5088 | 5080 | } |
5089 | 5081 | } |
5090 | 5082 | |
5083 | + | |
5091 | 5084 | //-- 如果有线下取价的话 -- |
5092 | 5085 | if (th.data.bn_goods.is_offline) { |
5093 | 5086 | item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); |
... | ... | @@ -6026,7 +6019,7 @@ Page({ |
6026 | 6019 | }) |
6027 | 6020 | |
6028 | 6021 | var isok = 1; |
6029 | - if (goods_num > plist.CanOutQty - lock) { | |
6022 | + if (!plist || goods_num > plist.CanOutQty - lock) { | |
6030 | 6023 | isok = 0; |
6031 | 6024 | } |
6032 | 6025 | func(isok); | ... | ... |
packageE/pages/cart/cart2_inte/cart2_inte.js
... | ... | @@ -1359,6 +1359,31 @@ Page({ |
1359 | 1359 | } |
1360 | 1360 | } |
1361 | 1361 | |
1362 | + | |
1363 | + if (th.data.sales_rules==1 && th.data.bn_goods.store_count<oods.goods_num){ | |
1364 | + getApp().confirmBox("商品的门店库存不足"); | |
1365 | + th.data.is_summit_ing = 0; | |
1366 | + th.setData({ | |
1367 | + submit: 0 | |
1368 | + }) | |
1369 | + return false; | |
1370 | + } | |
1371 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | |
1372 | + if (th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { | |
1373 | + var isok = 1; | |
1374 | + await th.check_store_num(goods.goods_id, th.data.bn_pick, goods.goods_num, function (res) { | |
1375 | + isok = res; | |
1376 | + }); | |
1377 | + if (!isok) { | |
1378 | + getApp().confirmBox("商品的门店库存不足"); | |
1379 | + th.data.is_summit_ing = 0; | |
1380 | + th.setData({ | |
1381 | + submit: 0 | |
1382 | + }) | |
1383 | + return false; | |
1384 | + } | |
1385 | + } | |
1386 | + | |
1362 | 1387 | } |
1363 | 1388 | |
1364 | 1389 | if(getApp().globalData.skinface_id){ |
... | ... | @@ -1577,7 +1602,7 @@ Page({ |
1577 | 1602 | } |
1578 | 1603 | }) |
1579 | 1604 | var isok = 1; |
1580 | - if (goods_num > plist.CanOutQty - lock) { | |
1605 | + if (!plist || goods_num > plist.CanOutQty - lock) { | |
1581 | 1606 | isok = 0; |
1582 | 1607 | } |
1583 | 1608 | func(isok); | ... | ... |
packageE/pages/cart/cart2_pt/cart2_pt.js
... | ... | @@ -1507,6 +1507,30 @@ Page({ |
1507 | 1507 | } |
1508 | 1508 | } |
1509 | 1509 | |
1510 | + if (th.data.sales_rules==1 && th.data.bn_goods.store_count<goods.goods_num){ | |
1511 | + getApp().confirmBox("商品的门店库存不足"); | |
1512 | + th.data.is_summit_ing = 0; | |
1513 | + th.setData({ | |
1514 | + submit: 0 | |
1515 | + }) | |
1516 | + return false; | |
1517 | + } | |
1518 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | |
1519 | + if (th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { | |
1520 | + var isok = 1; | |
1521 | + await th.check_store_num(goods.goods_id, th.data.bn_pick, goods.goods_num, function (res) { | |
1522 | + isok = res; | |
1523 | + }); | |
1524 | + if (!isok) { | |
1525 | + getApp().confirmBox("商品的门店库存不足"); | |
1526 | + th.data.is_summit_ing = 0; | |
1527 | + th.setData({ | |
1528 | + submit: 0 | |
1529 | + }) | |
1530 | + return false; | |
1531 | + } | |
1532 | + } | |
1533 | + | |
1510 | 1534 | } |
1511 | 1535 | |
1512 | 1536 | if (getApp().globalData.skinface_id) { |
... | ... | @@ -2445,7 +2469,69 @@ Page({ |
2445 | 2469 | if(!th.data.can_use_ord_prom[pickid]){ |
2446 | 2470 | th.get_buy_now_quan(); |
2447 | 2471 | } |
2448 | - } | |
2472 | + }, | |
2473 | + | |
2474 | + //---确认线下门店的数量足不足--- | |
2475 | + async check_store_num(goods_id, pick, goods_num, func) { | |
2476 | + var lock = 0, pick_no, plist, erpwareid; | |
2477 | + | |
2478 | + var lock_rq = { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 }; | |
2479 | + if (this.data.sales_rules == 3) { | |
2480 | + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid; | |
2481 | + delete lock_rq.storageId | |
2482 | + } | |
2483 | + //先读取门店的lock | |
2484 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { | |
2485 | + data: lock_rq | |
2486 | + }).then(res => { | |
2487 | + if (res.data.code == 0 && res.data.data.total > 0) { | |
2488 | + for (var i in res.data.data.pageData) | |
2489 | + lock += res.data.data.pageData[i].outQty; | |
2490 | + } | |
2491 | + }) | |
2492 | + | |
2493 | + if (this.data.sales_rules == 2) { | |
2494 | + //先获取门店的编号 | |
2495 | + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { | |
2496 | + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } | |
2497 | + }).then(res => { | |
2498 | + if (res.data.code == 0) { | |
2499 | + pick_no = res.data.data.pickup_no; | |
2500 | + } | |
2501 | + }) | |
2502 | + } | |
2503 | + | |
2504 | + //先获取商品的线下库存 | |
2505 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { | |
2506 | + data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } | |
2507 | + }).then(res => { | |
2508 | + if (res.data.code == 0) { | |
2509 | + erpwareid = res.data.data.erpwareid; | |
2510 | + } | |
2511 | + }) | |
2512 | + | |
2513 | + | |
2514 | + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 }; | |
2515 | + if (this.data.sales_rules == 3) { | |
2516 | + sto_rq.storageIds = this.data.appoint_pick_keyid; | |
2517 | + delete sto_rq.storageNos | |
2518 | + } | |
2519 | + | |
2520 | + //读取线下的门店库存 | |
2521 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { | |
2522 | + data: sto_rq | |
2523 | + }).then(res => { | |
2524 | + if (res.data.code == 0) { | |
2525 | + plist = res.data.data.pageData[0]; | |
2526 | + } | |
2527 | + }) | |
2528 | + | |
2529 | + var isok = 1; | |
2530 | + if (!plist || goods_num > plist.CanOutQty - lock) { | |
2531 | + isok = 0; | |
2532 | + } | |
2533 | + func(isok); | |
2534 | + }, | |
2449 | 2535 | |
2450 | 2536 | |
2451 | 2537 | ... | ... |
pages/cart/cart/cart.js
... | ... | @@ -2064,6 +2064,8 @@ Page({ |
2064 | 2064 | //判断多门店,优惠促销次数的控制 |
2065 | 2065 | async multiple_stores_pro(pitems, item) { |
2066 | 2066 | |
2067 | + if(!this.data.requestData || !this.data.requestData[pitems]) return false | |
2068 | + | |
2067 | 2069 | let a = this.data.requestData[pitems].goods[item]; |
2068 | 2070 | let th = this |
2069 | 2071 | let arr_pro = [] | ... | ... |
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -5710,7 +5710,7 @@ Page({ |
5710 | 5710 | }); |
5711 | 5711 | |
5712 | 5712 | // s.my_warnning('超出商品限购', 0, th); |
5713 | - var num = th.data.prom_buy_limit - th.data.prom_buy_num; | |
5713 | + var num = 0;//th.data.prom_buy_limit - th.data.prom_buy_num; | |
5714 | 5714 | if (num < 0) num = 0; |
5715 | 5715 | th.setData({ |
5716 | 5716 | goodsInputNum: num | ... | ... |