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