Commit 2a85c32729f652e3f72d48f71304220b675d3ab2

Authored by yvan.ni
1 parent 52418513

幸运购的优化

packageC/pages/luckyGo/luckyGo_goodsInfo/buy_pt.wxml
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 <block wx:if="{{is_normal==1}}"> 25 <block wx:if="{{is_normal==1}}">
26 <view class="flex"> 26 <view class="flex">
27 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view> 27 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view>
28 - <block wx:if="{{sales_rules==2}}"> 28 + <block wx:if="{{sales_rules>=2}}">
29 <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">可售:{{def_pick_store.CanOutQty}}</view> 29 <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">可售:{{def_pick_store.CanOutQty}}</view>
30 <view class="spec-goods-stock" wx:else>可售:0</view> 30 <view class="spec-goods-stock" wx:else>可售:0</view>
31 </block> 31 </block>
packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js
@@ -444,7 +444,9 @@ Page({ @@ -444,7 +444,9 @@ Page({
444 store_config: e, 444 store_config: e,
445 sys_switch: json_d, 445 sys_switch: json_d,
446 is_closecoupon: json_d.is_closecoupon, 446 is_closecoupon: json_d.is_closecoupon,
447 - is_newsales_rules: json_d.is_newsales_rules 447 + is_newsales_rules: json_d.is_newsales_rules,
  448 + appoint_pick_keyid: json_d.appoint_pick_keyid
  449 +
448 }); 450 });
449 ee.init(gid); 451 ee.init(gid);
450 //------几人评价------- 452 //------几人评价-------
@@ -586,31 +588,45 @@ Page({ @@ -586,31 +588,45 @@ Page({
586 var that = this, th = this; 588 var that = this, th = this;
587 getApp().getConfig2(function (e) { 589 getApp().getConfig2(function (e) {
588 var sales_rules = e.sales_rules; 590 var sales_rules = e.sales_rules;
589 - if (sales_rules == 2) { 591 + if (sales_rules >= 2) {
590 getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () { 592 getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () {
591 var lock = 0, plist = null; 593 var lock = 0, plist = null;
592 var gd = that.data.fir_goods; 594 var gd = that.data.fir_goods;
593 //先读取门店的lock,采用链式写法,少用await 595 //先读取门店的lock,采用链式写法,少用await
594 - getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {  
595 - data: { store_id: os.stoid, wareId: that.data.fir_goods.goods_id, storageId: ee.pickup_id, pageSize: 1000 }  
596 - }).then(res => {  
597 - if (res.data.code == 0 && res.data.data.total > 0) {  
598 - for (var i in res.data.data.pageData)  
599 - lock += res.data.data.pageData[i].outQty  
600 - }  
601 - //---通过接口获取门店的线下库存信息--  
602 - return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {  
603 - data: { storageNos: ee.pickup_no, wareIds: encodeURIComponent(th.data.data.erpwareid), storeId: os.stoid }  
604 - })  
605 - }).then(res => {  
606 - if (res.data.code == 0 && res.data.data.total > 0) {  
607 - plist = res.data.data.pageData[0];  
608 - }  
609 - if (plist && plist.CanOutQty - lock > 0) {  
610 - ee.CanOutQty = plist.CanOutQty - lock;  
611 - } else {  
612 - ee.CanOutQty = 0;  
613 - } 596 +
  597 + // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  598 + // data: { store_id: os.stoid, wareId: that.data.fir_goods.goods_id, storageId: ee.pickup_id, pageSize: 1000 }
  599 + // }).then(res => {
  600 + // if (res.data.code == 0 && res.data.data.total > 0) {
  601 + // for (var i in res.data.data.pageData)
  602 + // lock += res.data.data.pageData[i].outQty
  603 + // }
  604 + // //---通过接口获取门店的线下库存信息--
  605 + // return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  606 + // data: { storageNos: ee.pickup_no, wareIds: encodeURIComponent(th.data.data.erpwareid), storeId: os.stoid }
  607 + // })
  608 + // }).then(res => {
  609 + // if (res.data.code == 0 && res.data.data.total > 0) {
  610 + // plist = res.data.data.pageData[0];
  611 + // }
  612 + // if (plist && plist.CanOutQty - lock > 0) {
  613 + // ee.CanOutQty = plist.CanOutQty - lock;
  614 + // } else {
  615 + // ee.CanOutQty = 0;
  616 + // }
  617 + // //--给门店赋值线下库存--
  618 + // that.data.fir_def_store = ee;
  619 + // that.setData({
  620 + // def_pick_store: ee,
  621 + // sto_sele_name: ee.pickup_name,
  622 + // sto_sele_id: ee.pickup_id,
  623 + // sto_sele_distr: ee.distr_type
  624 + // })
  625 + // })
  626 +
  627 + //最新的获取线下门店库存
  628 + th.check_CanOutQty(gd, ee, function (CanOutQty) {
  629 + ee.CanOutQty = CanOutQty;
614 //--给门店赋值线下库存-- 630 //--给门店赋值线下库存--
615 that.data.fir_def_store = ee; 631 that.data.fir_def_store = ee;
616 that.setData({ 632 that.setData({
@@ -620,6 +636,8 @@ Page({ @@ -620,6 +636,8 @@ Page({
620 sto_sele_distr: ee.distr_type 636 sto_sele_distr: ee.distr_type
621 }) 637 })
622 }) 638 })
  639 +
  640 +
623 }) 641 })
624 } else { 642 } else {
625 that.data.fir_def_store = ee; 643 that.data.fir_def_store = ee;
@@ -1575,45 +1593,68 @@ Page({ @@ -1575,45 +1593,68 @@ Page({
1575 return false; 1593 return false;
1576 } else { 1594 } else {
1577 //---如果是线下门店销售的时候--- 1595 //---如果是线下门店销售的时候---
1578 - if (th.data.sales_rules == 2) { 1596 + if (th.data.sales_rules >= 2) {
1579 var pick = th.get_pick_from_list(th.data.sto_sele_id) 1597 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1580 //---通过接口获取门店的线下库存信息-- 1598 //---通过接口获取门店的线下库存信息--
1581 - getApp().request.get("/api/weshop/goods/getWareStorages", {  
1582 - data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid },  
1583 - success: function (res) {  
1584 - if (res.data.code == 0) {  
1585 - if (res.data.data.pageData.length > 0) {  
1586 - var CanOutQty = res.data.data.pageData[0].CanOutQty;  
1587 - if (CanOutQty < e.data.goodsInputNum) {  
1588 - return s.my_warnning("库存不足!", 0, th);  
1589 - }  
1590 - //在调一次接口,读取商品的预出库的数量,lock  
1591 - getApp().request.get("/api/weshop/order/ware/lock/page", {  
1592 - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 },  
1593 - success: function (res_data) {  
1594 - if (res_data.data.code == 0 && res_data.data.data.total > 0) {  
1595 -  
1596 - var lock = 0;  
1597 - for (var i in res_data.data.data.pageData) {  
1598 - lock += res_data.data.data.pageData[i].outQty;  
1599 - }  
1600 -  
1601 - if (CanOutQty <= lock) {  
1602 - return s.my_warnning("库存不足!", 0, th);  
1603 - }  
1604 - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);  
1605 - } else {  
1606 - th.add_cart_next(e, t, a, o, newd, CanOutQty);  
1607 - }  
1608 - }  
1609 - })  
1610 - } else {  
1611 - return s.my_warnning("库存不足!", 0, th);  
1612 - }  
1613 - 1599 + // getApp().request.get("/api/weshop/goods/getWareStorages", {
  1600 + // data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid },
  1601 + // success: function (res) {
  1602 + // if (res.data.code == 0) {
  1603 + // if (res.data.data.pageData.length > 0) {
  1604 + // var CanOutQty = res.data.data.pageData[0].CanOutQty;
  1605 + // if (CanOutQty < e.data.goodsInputNum) {
  1606 + // return s.my_warnning("库存不足!", 0, th);
  1607 + // }
  1608 + // //在调一次接口,读取商品的预出库的数量,lock
  1609 + // getApp().request.get("/api/weshop/order/ware/lock/page", {
  1610 + // data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 },
  1611 + // success: function (res_data) {
  1612 + // if (res_data.data.code == 0 && res_data.data.data.total > 0) {
  1613 + //
  1614 + // var lock = 0;
  1615 + // for (var i in res_data.data.data.pageData) {
  1616 + // lock += res_data.data.data.pageData[i].outQty;
  1617 + // }
  1618 + //
  1619 + // if (CanOutQty <= lock) {
  1620 + // return s.my_warnning("库存不足!", 0, th);
  1621 + // }
  1622 + // th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);
  1623 + // } else {
  1624 + // th.add_cart_next(e, t, a, o, newd, CanOutQty);
  1625 + // }
  1626 + // }
  1627 + // })
  1628 + // } else {
  1629 + // return s.my_warnning("库存不足!", 0, th);
  1630 + // }
  1631 + //
  1632 + // }
  1633 + // }
  1634 + // })
  1635 +
  1636 + th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) {
  1637 + if (CanOutQty) {
  1638 + if (CanOutQty < e.data.goodsInputNum) {
  1639 + wx.showToast({
  1640 + title: '库存不足!',
  1641 + icon: 'none',
  1642 + });
  1643 + return false;
1614 } 1644 }
  1645 +
  1646 + th.add_cart_next(e, t, a, o, newd, CanOutQty);
  1647 + } else {
  1648 + wx.showToast({
  1649 + title: '库存不足!',
  1650 + icon: 'none',
  1651 + });
  1652 + return false;
1615 } 1653 }
1616 }) 1654 })
  1655 +
  1656 +
  1657 +
1617 } else { 1658 } else {
1618 if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); 1659 if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
1619 if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); 1660 if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
@@ -1628,45 +1669,69 @@ Page({ @@ -1628,45 +1669,69 @@ Page({
1628 newd.prom_id = 0; 1669 newd.prom_id = 0;
1629 1670
1630 //---如果是线下门店销售的时候--- 1671 //---如果是线下门店销售的时候---
1631 - if (th.data.sales_rules == 2) { 1672 + if (th.data.sales_rules >= 2) {
1632 var pick = th.get_pick_from_list(th.data.sto_sele_id) 1673 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1633 //---通过接口获取门店的线下库存信息-- 1674 //---通过接口获取门店的线下库存信息--
1634 - getApp().request.get("/api/weshop/goods/getWareStorages", {  
1635 - data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid },  
1636 - success: function (res) {  
1637 - if (res.data.code == 0) {  
1638 - if (res.data.data.pageData.length > 0) {  
1639 - var CanOutQty = res.data.data.pageData[0].CanOutQty;  
1640 - if (CanOutQty < e.data.goodsInputNum) {  
1641 - return s.my_warnning("库存不足!", 0, th);  
1642 - }  
1643 - //在调一次接口,读取商品的预出库的数量,lock  
1644 - getApp().request.get("/api/weshop/order/ware/lock/page", {  
1645 - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 },  
1646 - success: function (res_data) {  
1647 - if (res_data.data.code == 0 && res_data.data.data.total > 0) {  
1648 -  
1649 - var lock = 0;  
1650 - for (var i in res_data.data.data.pageData) {  
1651 - lock += res_data.data.data.pageData[i].outQty;  
1652 - }  
1653 -  
1654 - if (CanOutQty <= lock) {  
1655 - return s.my_warnning("库存不足!", 0, th);  
1656 - }  
1657 - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);  
1658 - } else {  
1659 - th.add_cart_next(e, t, a, o, newd, CanOutQty);  
1660 - }  
1661 - }  
1662 - })  
1663 - } else {  
1664 - return s.my_warnning("库存不足!", 0, th);  
1665 - } 1675 + // getApp().request.get("/api/weshop/goods/getWareStorages", {
  1676 + // data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid },
  1677 + // success: function (res) {
  1678 + // if (res.data.code == 0) {
  1679 + // if (res.data.data.pageData.length > 0) {
  1680 + // var CanOutQty = res.data.data.pageData[0].CanOutQty;
  1681 + // if (CanOutQty < e.data.goodsInputNum) {
  1682 + // return s.my_warnning("库存不足!", 0, th);
  1683 + // }
  1684 + // //在调一次接口,读取商品的预出库的数量,lock
  1685 + // getApp().request.get("/api/weshop/order/ware/lock/page", {
  1686 + // data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 },
  1687 + // success: function (res_data) {
  1688 + // if (res_data.data.code == 0 && res_data.data.data.total > 0) {
  1689 + //
  1690 + // var lock = 0;
  1691 + // for (var i in res_data.data.data.pageData) {
  1692 + // lock += res_data.data.data.pageData[i].outQty;
  1693 + // }
  1694 + //
  1695 + // if (CanOutQty <= lock) {
  1696 + // return s.my_warnning("库存不足!", 0, th);
  1697 + // }
  1698 + // th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);
  1699 + // } else {
  1700 + // th.add_cart_next(e, t, a, o, newd, CanOutQty);
  1701 + // }
  1702 + // }
  1703 + // })
  1704 + // } else {
  1705 + // return s.my_warnning("库存不足!", 0, th);
  1706 + // }
  1707 + //
  1708 + // }
  1709 + // }
  1710 + // })
  1711 +
  1712 +
  1713 + th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) {
  1714 + if (CanOutQty) {
1666 1715
  1716 + if (CanOutQty < e.data.goodsInputNum) {
  1717 + wx.showToast({
  1718 + title: '库存不足!',
  1719 + icon: 'none',
  1720 + });
  1721 + return false;
1667 } 1722 }
  1723 +
  1724 + th.add_cart_next(e, t, a, o, newd, CanOutQty);
  1725 + } else {
  1726 + wx.showToast({
  1727 + title: '库存不足!',
  1728 + icon: 'none',
  1729 + });
  1730 + return false;
1668 } 1731 }
1669 }) 1732 })
  1733 +
  1734 +
1670 } else { 1735 } else {
1671 if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); 1736 if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
1672 if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); 1737 if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
@@ -1981,7 +2046,7 @@ Page({ @@ -1981,7 +2046,7 @@ Page({
1981 } 2046 }
1982 var e = th.data.sele_g.store_count; 2047 var e = th.data.sele_g.store_count;
1983 var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4 2048 var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
1984 - if (th.data.sales_rules == 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { 2049 + if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
1985 if (!th.data.def_pick_store) { 2050 if (!th.data.def_pick_store) {
1986 wx.showModal({ title: '请选择门店', }); 2051 wx.showModal({ title: '请选择门店', });
1987 return false; 2052 return false;
@@ -2062,7 +2127,7 @@ Page({ @@ -2062,7 +2127,7 @@ Page({
2062 2127
2063 var e = th.data.sele_g.store_count; 2128 var e = th.data.sele_g.store_count;
2064 var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4 2129 var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
2065 - if (th.data.sales_rules == 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) { 2130 + if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
2066 if (!th.data.def_pick_store) { 2131 if (!th.data.def_pick_store) {
2067 wx.showModal({ title: '请选择门店', }); 2132 wx.showModal({ title: '请选择门店', });
2068 return false; 2133 return false;
@@ -2687,32 +2752,41 @@ Page({ @@ -2687,32 +2752,41 @@ Page({
2687 2752
2688 2753
2689 //默认门店要拿下门店库存 2754 //默认门店要拿下门店库存
2690 - if (that.data.sales_rules == 2 && that.data.def_pick_store) { 2755 + if (that.data.sales_rules >= 2 && that.data.def_pick_store) {
2691 var lock = 0, plist = null; 2756 var lock = 0, plist = null;
2692 - //先读取门店的lock,采用链式写法,少用await  
2693 - getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {  
2694 - data: { store_id: os.stoid, wareId: ee.data.sele_g.goods_id, storageId: that.data.def_pick_store.pickup_id, pageSize: 1000 }  
2695 - }).then(res => {  
2696 - if (res.data.code == 0 && res.data.data.total > 0) {  
2697 - for (var i in res.data.data.pageData)  
2698 - lock += res.data.data.pageData[i].outQty  
2699 - }  
2700 - //---通过接口获取门店的线下库存信息--  
2701 - return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {  
2702 - data: { storageNos: that.data.def_pick_store.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid }  
2703 - })  
2704 - }).then(res => {  
2705 - if (res.data.code == 0 && res.data.data.total > 0) {  
2706 - plist = res.data.data.pageData[0];  
2707 - }  
2708 - if (plist && plist.CanOutQty - lock > 0) {  
2709 - that.data.def_pick_store.CanOutQty = plist.CanOutQty - lock;  
2710 - } else {  
2711 - that.data.def_pick_store.CanOutQty = 0;  
2712 - } 2757 + // //先读取门店的lock,采用链式写法,少用await
  2758 + // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  2759 + // data: { store_id: os.stoid, wareId: ee.data.sele_g.goods_id, storageId: that.data.def_pick_store.pickup_id, pageSize: 1000 }
  2760 + // }).then(res => {
  2761 + // if (res.data.code == 0 && res.data.data.total > 0) {
  2762 + // for (var i in res.data.data.pageData)
  2763 + // lock += res.data.data.pageData[i].outQty
  2764 + // }
  2765 + // //---通过接口获取门店的线下库存信息--
  2766 + // return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  2767 + // data: { storageNos: that.data.def_pick_store.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid }
  2768 + // })
  2769 + // }).then(res => {
  2770 + // if (res.data.code == 0 && res.data.data.total > 0) {
  2771 + // plist = res.data.data.pageData[0];
  2772 + // }
  2773 + // if (plist && plist.CanOutQty - lock > 0) {
  2774 + // that.data.def_pick_store.CanOutQty = plist.CanOutQty - lock;
  2775 + // } else {
  2776 + // that.data.def_pick_store.CanOutQty = 0;
  2777 + // }
  2778 + // //--给门店赋值线下库存--
  2779 + // th.setData({ def_pick_store: that.data.def_pick_store });
  2780 + // })
  2781 +
  2782 + that.check_CanOutQty(that.data.sele_g, that.data.def_pick_store, function (CanOutQty) {
  2783 + that.data.def_pick_store.CanOutQty = CanOutQty;
2713 //--给门店赋值线下库存-- 2784 //--给门店赋值线下库存--
2714 - th.setData({ def_pick_store: that.data.def_pick_store }); 2785 + that.setData({
  2786 + def_pick_store: that.data.def_pick_store
  2787 + });
2715 }) 2788 })
  2789 +
2716 } 2790 }
2717 2791
2718 2792
@@ -2908,7 +2982,7 @@ Page({ @@ -2908,7 +2982,7 @@ Page({
2908 th.setData({ all_pick_list: e.data.data.pageData }); 2982 th.setData({ all_pick_list: e.data.data.pageData });
2909 2983
2910 //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购-- 2984 //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购--
2911 - if (th.data.sales_rules == 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) { 2985 + if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) {
2912 setTimeout(function () { 2986 setTimeout(function () {
2913 th.deal_pickup_dline(e); 2987 th.deal_pickup_dline(e);
2914 }, 800) 2988 }, 800)
@@ -3108,16 +3182,42 @@ Page({ @@ -3108,16 +3182,42 @@ Page({
3108 3182
3109 var g_distr_type = th.data.sele_g.distr_type; 3183 var g_distr_type = th.data.sele_g.distr_type;
3110 var lock = []; 3184 var lock = [];
  3185 +
  3186 +
  3187 +
  3188 + var lock_rq = {
  3189 + store_id: os.stoid,
  3190 + wareId: th.data.sele_g.goods_id,
  3191 + pageSize: 1000
  3192 + };
  3193 +
  3194 + if (th.data.sales_rules == 3) {
  3195 + lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid;
  3196 + }
  3197 +
3111 //先读取门店的lock,采用链式写法,少用await 3198 //先读取门店的lock,采用链式写法,少用await
3112 getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { 3199 getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
3113 - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, pageSize: 1000 } 3200 + data: lock_rq
3114 }).then(res => { 3201 }).then(res => {
3115 if (res.data.code == 0 && res.data.data.total > 0) { 3202 if (res.data.code == 0 && res.data.data.total > 0) {
3116 lock = res.data.data.pageData 3203 lock = res.data.data.pageData
3117 } 3204 }
  3205 +
  3206 + var sto_rq = {
  3207 + wareIds: encodeURIComponent(th.data.sele_g.erpwareid),
  3208 + storeId: os.stoid,
  3209 + pageSize: 2000
  3210 + }
  3211 +
  3212 + if (th.data.sales_rules == 3) {
  3213 + sto_rq.storageIds = th.data.appoint_pick_keyid;
  3214 + } else {
  3215 + sto_rq.storageNos = pkno_str;
  3216 + }
  3217 +
3118 //---通过接口获取门店的线下库存信息-- 3218 //---通过接口获取门店的线下库存信息--
3119 return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { 3219 return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
3120 - data: { storageNos: pkno_str, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid, pageSize: 2000 } 3220 + data: sto_rq
3121 }) 3221 })
3122 }).then(res => { 3222 }).then(res => {
3123 3223
@@ -3126,28 +3226,64 @@ Page({ @@ -3126,28 +3226,64 @@ Page({
3126 if (res.data.data.pageData && res.data.data.pageData.length > 0) { 3226 if (res.data.data.pageData && res.data.data.pageData.length > 0) {
3127 var plist = res.data.data.pageData; 3227 var plist = res.data.data.pageData;
3128 var def_pick_store = th.data.def_pick_store; 3228 var def_pick_store = th.data.def_pick_store;
3129 - //以原来的数组为外循环,保证距离的顺序  
3130 - for (var kk in o_plist) {  
3131 - for (var ii in plist) {  
3132 - //线下的门店小心  
3133 - var n_item = plist[ii];  
3134 - if (n_item.StorageNo == o_plist[kk].pickup_no) {  
3135 -  
3136 - //拿到锁库的数量  
3137 - var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock);  
3138 - //可出库数大于预出库库存的数量,可以判断为有库存  
3139 - if (n_item.CanOutQty > lock_num) {  
3140 - o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num;  
3141 - new_list.push(o_plist[kk]);  
3142 - //--如果找到默认门店,同时也应该判断配送方式对不对--  
3143 - if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {  
3144 - th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num;  
3145 - if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)  
3146 - th.setData({ def_pick_store: th.data.fir_def_store })  
3147 - is_find_def_store = 1; 3229 +
  3230 + if (th.data.sales_rules == 3) {
  3231 + var lock_num = 0;
  3232 + var Qty = 0;
  3233 + //-- 计算锁住的库存 --
  3234 + for (var i in lock) lock_num += lock[i].outQty;
  3235 + Qty = plist[0].CanOutQty - lock_num;
  3236 +
  3237 + if (Qty > 0) {
  3238 + for (var kk in o_plist) {
  3239 + o_plist[kk].CanOutQty = Qty;
  3240 + new_list.push(o_plist[kk]);
  3241 + }
  3242 + if (th.data.fir_def_store &&
  3243 + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) {
  3244 + th.data.fir_def_store.Qty;
  3245 + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
  3246 + th.setData({
  3247 + def_pick_store: th.data.fir_def_store
  3248 + })
  3249 + is_find_def_store = 1;
  3250 + }
  3251 +
  3252 + } else {
  3253 + th.setData({
  3254 + all_sto: null,
  3255 + only_pk: null,
  3256 + def_pickpu_list: null
  3257 + });
  3258 + return false;
  3259 + }
  3260 +
  3261 + } else {
  3262 +
  3263 +
  3264 + //以原来的数组为外循环,保证距离的顺序
  3265 + for (var kk in o_plist) {
  3266 + for (var ii in plist) {
  3267 + //线下的门店小心
  3268 + var n_item = plist[ii];
  3269 + if (n_item.StorageNo == o_plist[kk].pickup_no) {
  3270 +
  3271 + //拿到锁库的数量
  3272 + var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock);
  3273 + //可出库数大于预出库库存的数量,可以判断为有库存
  3274 + if (n_item.CanOutQty > lock_num) {
  3275 + o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num;
  3276 + new_list.push(o_plist[kk]);
  3277 + //--如果找到默认门店,同时也应该判断配送方式对不对--
  3278 + if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
  3279 + th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num;
  3280 + if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
  3281 + th.setData({def_pick_store: th.data.fir_def_store})
  3282 + is_find_def_store = 1;
  3283 + }
3148 } 3284 }
  3285 + break;
3149 } 3286 }
3150 - break;  
3151 } 3287 }
3152 } 3288 }
3153 } 3289 }
@@ -5698,34 +5834,48 @@ Page({ @@ -5698,34 +5834,48 @@ Page({
5698 func(); return false; 5834 func(); return false;
5699 } 5835 }
5700 5836
5701 - if (this.data.sales_rules != 2) { 5837 + if (this.data.sales_rules < 2) {
5702 func(); 5838 func();
5703 } else { 5839 } else {
5704 5840
5705 //先读取门店的lock 5841 //先读取门店的lock
5706 - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {  
5707 - data: { store_id: os.stoid, wareId: goodsinfo.goods_id, storageId: item.pickup_id, pageSize: 1000 }  
5708 - }).then(res => {  
5709 - if (res.data.code == 0 && res.data.data.total > 0) {  
5710 - for (var i in res.data.data.pageData)  
5711 - lock += res.data.data.pageData[i].outQty;  
5712 - }  
5713 - })  
5714 - //读取线下的门店库存  
5715 - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {  
5716 - data: { storageNos: item.pickup_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid }  
5717 - }).then(res => {  
5718 - if (res.data.code == 0 && res.data.data.total > 0) {  
5719 - plist = res.data.data.pageData[0];  
5720 - }  
5721 - }) 5842 + // await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  5843 + // data: { store_id: os.stoid, wareId: goodsinfo.goods_id, storageId: item.pickup_id, pageSize: 1000 }
  5844 + // }).then(res => {
  5845 + // if (res.data.code == 0 && res.data.data.total > 0) {
  5846 + // for (var i in res.data.data.pageData)
  5847 + // lock += res.data.data.pageData[i].outQty;
  5848 + // }
  5849 + // })
  5850 + // //读取线下的门店库存
  5851 + // await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  5852 + // data: { storageNos: item.pickup_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid }
  5853 + // }).then(res => {
  5854 + // if (res.data.code == 0 && res.data.data.total > 0) {
  5855 + // plist = res.data.data.pageData[0];
  5856 + // }
  5857 + // })
  5858 + //
  5859 + // if (plist && plist.CanOutQty - lock > 0) {
  5860 + // item.CanOutQty = plist.CanOutQty - lock;
  5861 + // func();
  5862 + // return false;
  5863 + // }
  5864 + // getApp().my_warnning(item.pickup_name + "库存不足!", 0, th);
5722 5865
5723 - if (plist && plist.CanOutQty - lock > 0) {  
5724 - item.CanOutQty = plist.CanOutQty - lock; 5866 + this.check_CanOutQty(goodsinfo, item, function (CanOutQty) {
  5867 + // let str = item.pickup_name + '库存不足!';
  5868 + if (!CanOutQty) {
  5869 + wx.showToast({
  5870 + title: item.pickup_name + '库存不足!',
  5871 + icon: 'none',
  5872 + });
  5873 + return false;
  5874 + }
  5875 + item.CanOutQty = CanOutQty;
5725 func(); 5876 func();
5726 - return false;  
5727 - }  
5728 - getApp().my_warnning(item.pickup_name + "库存不足!", 0, th); 5877 +
  5878 + });
5729 5879
5730 } 5880 }
5731 }, 5881 },
@@ -6656,5 +6806,65 @@ Page({ @@ -6656,5 +6806,65 @@ Page({
6656 }); 6806 });
6657 }, 6807 },
6658 6808
  6809 + //统一一下获取线下库存的函数
  6810 + async check_CanOutQty(goodsinfo, item, func) {
  6811 +
  6812 + var sales_rules = this.data.sales_rules;
  6813 +
  6814 + var lock_rq = {
  6815 + store_id: os.stoid,
  6816 + wareId: goodsinfo.goods_id,
  6817 + pageSize: 1000
  6818 + };
  6819 +
  6820 + if (sales_rules == 2) {
  6821 + lock_rq.storageId = item.pickup_id
  6822 + } else {
  6823 + lock_rq.appoint_pick_keyid = encodeURIComponent(this.data.appoint_pick_keyid)
  6824 + }
  6825 +
  6826 + var lock = 0;
  6827 + var CanOutQty = 0;
  6828 + var plist = null;
  6829 + //先读取门店的lock
  6830 + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  6831 + data: lock_rq
  6832 + }).then(res => {
  6833 + if (res.data.code == 0 && res.data.data.total > 0) {
  6834 + for (var i in res.data.data.pageData)
  6835 + lock += res.data.data.pageData[i].outQty;
  6836 + }
  6837 + })
  6838 +
  6839 + var sto_req = {
  6840 + wareIds: encodeURIComponent(goodsinfo.erpwareid),
  6841 + storeId: os.stoid
  6842 + }
  6843 + if (sales_rules == 2) {
  6844 + sto_req.storageNos = item.pickup_no
  6845 + } else {
  6846 + sto_req.storageIds = encodeURIComponent(this.data.appoint_pick_keyid)
  6847 + }
  6848 +
  6849 +
  6850 +
  6851 + //读取线下的门店库存
  6852 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  6853 + data: sto_req
  6854 + }).then(res => {
  6855 + if (res.data.code == 0 && res.data.data.total > 0) {
  6856 + plist = res.data.data.pageData[0];
  6857 + }
  6858 + })
  6859 +
  6860 + if (plist && plist.CanOutQty - lock > 0) {
  6861 + CanOutQty = plist.CanOutQty - lock;
  6862 + }
  6863 +
  6864 + if (func) func(CanOutQty);
  6865 +
  6866 + },
  6867 +
  6868 +
6659 6869
6660 }); 6870 });
packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml
@@ -426,7 +426,7 @@ @@ -426,7 +426,7 @@
426 <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}"> 426 <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}">
427 (配送不匹配) 427 (配送不匹配)
428 </view> 428 </view>
429 - <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}"> 429 + <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules>=2 && prom_type==0}}">
430 (库存不足) 430 (库存不足)
431 </view> 431 </view>
432 </block> 432 </block>
@@ -1081,7 +1081,7 @@ @@ -1081,7 +1081,7 @@
1081 <block wx:if="{{prom_type == 0}}"> 1081 <block wx:if="{{prom_type == 0}}">
1082 <view class="flex"> 1082 <view class="flex">
1083 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view> 1083 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view>
1084 - <block wx:if="{{sales_rules==2}}"> 1084 + <block wx:if="{{sales_rules>=2}}">
1085 <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}"> 1085 <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
1086 可售:{{def_pick_store.CanOutQty}} 1086 可售:{{def_pick_store.CanOutQty}}
1087 </view> 1087 </view>
@@ -1122,7 +1122,7 @@ @@ -1122,7 +1122,7 @@
1122 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view> 1122 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
1123 <block wx:else> 1123 <block wx:else>
1124 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view> 1124 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
1125 - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}"> 1125 + <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules>=2 && prom_type==0}}">
1126 (库存不足) 1126 (库存不足)
1127 </view> 1127 </view>
1128 </block> 1128 </block>
@@ -1194,7 +1194,7 @@ @@ -1194,7 +1194,7 @@
1194 </block> 1194 </block>
1195 <block wx:else> 1195 <block wx:else>
1196 <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 --> 1196 <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 -->
1197 - <block wx:if="{{sales_rules==2 && prom_type==0}}"> 1197 + <block wx:if="{{sales_rules>=2 && prom_type==0}}">
1198 <block wx:if="{{!def_pick_store.CanOutQty}}"> 1198 <block wx:if="{{!def_pick_store.CanOutQty}}">
1199 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999"> 1199 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">
1200 库存不足 1200 库存不足
pages/goods/goodsInfo/goodsInfo.js
@@ -3063,7 +3063,7 @@ Page({ @@ -3063,7 +3063,7 @@ Page({
3063 3063
3064 //默认门店要拿下门店库存 3064 //默认门店要拿下门店库存
3065 if (that.data.sales_rules >= 2 && that.data.def_pick_store && !that.data.sele_g.whsle_id) { 3065 if (that.data.sales_rules >= 2 && that.data.def_pick_store && !that.data.sele_g.whsle_id) {
3066 - var lock = 0, 3066 + var lock = 0,
3067 plist = null; 3067 plist = null;
3068 //先读取门店的lock,采用链式写法,少用await 3068 //先读取门店的lock,采用链式写法,少用await
3069 // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { 3069 // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
pages/user/order_detail/order_detail.js
@@ -975,6 +975,7 @@ Page({ @@ -975,6 +975,7 @@ Page({
975 sto_rq.storageIds=this.data.appoint_pick_keyid; 975 sto_rq.storageIds=this.data.appoint_pick_keyid;
976 delete sto_rq.storageNos 976 delete sto_rq.storageNos
977 } 977 }
  978 +
978 979
979 //读取线下的门店库存 980 //读取线下的门店库存
980 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ 981 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
@@ -1115,6 +1116,7 @@ Page({ @@ -1115,6 +1116,7 @@ Page({
1115 } 1116 }
1116 1117
1117 var prom=null; 1118 var prom=null;
  1119 + let user_id = getApp().globalData.userInfo.user_id;
1118 1120
1119 b_item.goods_id=g_item.goods_id; 1121 b_item.goods_id=g_item.goods_id;
1120 b_item.goods_name=g_item.goods_name; 1122 b_item.goods_name=g_item.goods_name;
@@ -1210,7 +1212,7 @@ Page({ @@ -1210,7 +1212,7 @@ Page({
1210 }) 1212 })
1211 break; 1213 break;
1212 case 10: 1214 case 10:
1213 - let user_id = getApp().globalData.userInfo.user_id; 1215 +
1214 var url = `/api/weshop/prom/ladderForm/getNew/${os.stoid}/${user_id}/${good.prom_id}`; 1216 var url = `/api/weshop/prom/ladderForm/getNew/${os.stoid}/${user_id}/${good.prom_id}`;
1215 await getApp().request.promiseGet(url, {}).then(res => { 1217 await getApp().request.promiseGet(url, {}).then(res => {
1216 if (res.data.code == 0 && res.data.data && res.data.data.isuse && res.data.data.is_end == 0) { 1218 if (res.data.code == 0 && res.data.data && res.data.data.isuse && res.data.data.is_end == 0) {
@@ -1314,6 +1316,8 @@ Page({ @@ -1314,6 +1316,8 @@ Page({
1314 delete sto_rq.storageNos; 1316 delete sto_rq.storageNos;
1315 } 1317 }
1316 1318
  1319 +
  1320 +
1317 //---通过接口获取门店的线下库存信息-- 1321 //---通过接口获取门店的线下库存信息--
1318 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { 1322 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
1319 data: sto_rq 1323 data: sto_rq