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,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 | if (getApp().globalData.skinface_id) { | 1528 | if (getApp().globalData.skinface_id) { |
@@ -2273,8 +2300,50 @@ Page({ | @@ -2273,8 +2300,50 @@ Page({ | ||
2273 | mark:true | 2300 | mark:true |
2274 | }) | 2301 | }) |
2275 | th.calculatePrice2() | 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,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,7 +2173,7 @@ Page({ | ||
2149 | } | 2173 | } |
2150 | }) | 2174 | }) |
2151 | var isok = 1; | 2175 | var isok = 1; |
2152 | - if (goods_num > plist.CanOutQty - lock) { | 2176 | + if (!plist || goods_num > plist.CanOutQty - lock) { |
2153 | isok = 0; | 2177 | isok = 0; |
2154 | } | 2178 | } |
2155 | func(isok); | 2179 | func(isok); |
packageE/pages/cart/cart2/cart2.js
@@ -3411,16 +3411,7 @@ Page({ | @@ -3411,16 +3411,7 @@ Page({ | ||
3411 | let user_addr = th.data.user_addr; | 3411 | let user_addr = th.data.user_addr; |
3412 | let c_wuliu=parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2); | 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 | var req_d = { | 3415 | var req_d = { |
3425 | province: user_addr.province, city: user_addr.city, district: user_addr.district, | 3416 | province: user_addr.province, city: user_addr.city, district: user_addr.district, |
3426 | wuliu: c_wuliu, store_id: os.stoid | 3417 | wuliu: c_wuliu, store_id: os.stoid |
@@ -5075,6 +5066,7 @@ Page({ | @@ -5075,6 +5066,7 @@ Page({ | ||
5075 | if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 | 5066 | if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 |
5076 | && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { | 5067 | && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { |
5077 | var isok = 1; | 5068 | var isok = 1; |
5069 | + | ||
5078 | await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { | 5070 | await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { |
5079 | isok = res; | 5071 | isok = res; |
5080 | }); | 5072 | }); |
@@ -5088,6 +5080,7 @@ Page({ | @@ -5088,6 +5080,7 @@ Page({ | ||
5088 | } | 5080 | } |
5089 | } | 5081 | } |
5090 | 5082 | ||
5083 | + | ||
5091 | //-- 如果有线下取价的话 -- | 5084 | //-- 如果有线下取价的话 -- |
5092 | if (th.data.bn_goods.is_offline) { | 5085 | if (th.data.bn_goods.is_offline) { |
5093 | item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); | 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,7 +6019,7 @@ Page({ | ||
6026 | }) | 6019 | }) |
6027 | 6020 | ||
6028 | var isok = 1; | 6021 | var isok = 1; |
6029 | - if (goods_num > plist.CanOutQty - lock) { | 6022 | + if (!plist || goods_num > plist.CanOutQty - lock) { |
6030 | isok = 0; | 6023 | isok = 0; |
6031 | } | 6024 | } |
6032 | func(isok); | 6025 | func(isok); |
packageE/pages/cart/cart2_inte/cart2_inte.js
@@ -1359,6 +1359,31 @@ Page({ | @@ -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 | if(getApp().globalData.skinface_id){ | 1389 | if(getApp().globalData.skinface_id){ |
@@ -1577,7 +1602,7 @@ Page({ | @@ -1577,7 +1602,7 @@ Page({ | ||
1577 | } | 1602 | } |
1578 | }) | 1603 | }) |
1579 | var isok = 1; | 1604 | var isok = 1; |
1580 | - if (goods_num > plist.CanOutQty - lock) { | 1605 | + if (!plist || goods_num > plist.CanOutQty - lock) { |
1581 | isok = 0; | 1606 | isok = 0; |
1582 | } | 1607 | } |
1583 | func(isok); | 1608 | func(isok); |
packageE/pages/cart/cart2_pt/cart2_pt.js
@@ -1507,6 +1507,30 @@ Page({ | @@ -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 | if (getApp().globalData.skinface_id) { | 1536 | if (getApp().globalData.skinface_id) { |
@@ -2445,7 +2469,69 @@ Page({ | @@ -2445,7 +2469,69 @@ Page({ | ||
2445 | if(!th.data.can_use_ord_prom[pickid]){ | 2469 | if(!th.data.can_use_ord_prom[pickid]){ |
2446 | th.get_buy_now_quan(); | 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,6 +2064,8 @@ Page({ | ||
2064 | //判断多门店,优惠促销次数的控制 | 2064 | //判断多门店,优惠促销次数的控制 |
2065 | async multiple_stores_pro(pitems, item) { | 2065 | async multiple_stores_pro(pitems, item) { |
2066 | 2066 | ||
2067 | + if(!this.data.requestData || !this.data.requestData[pitems]) return false | ||
2068 | + | ||
2067 | let a = this.data.requestData[pitems].goods[item]; | 2069 | let a = this.data.requestData[pitems].goods[item]; |
2068 | let th = this | 2070 | let th = this |
2069 | let arr_pro = [] | 2071 | let arr_pro = [] |
pages/goods/goodsInfo/goodsInfo.js
@@ -5710,7 +5710,7 @@ Page({ | @@ -5710,7 +5710,7 @@ Page({ | ||
5710 | }); | 5710 | }); |
5711 | 5711 | ||
5712 | // s.my_warnning('超出商品限购', 0, th); | 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 | if (num < 0) num = 0; | 5714 | if (num < 0) num = 0; |
5715 | th.setData({ | 5715 | th.setData({ |
5716 | goodsInputNum: num | 5716 | goodsInputNum: num |