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 |