Commit dd5105b40b11473f09f9588f85e2b35e5bedc6ad

Authored by yvan.ni
1 parent 3da4e0b1

订单取价的优化

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
... ...