Przeglądaj źródła

订单明细起订量逻辑更新

hu 2 lat temu
rodzic
commit
c90c20f9b4

+ 17 - 1
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -1276,7 +1276,7 @@ public class Order extends Controller {
                         boolean islimit = promotionitemsRowsMap.get(itemid).get(0).getBoolean("islimit");
                         if (islimit) {
                             if (groupqty.compareTo(saledqty.add(qty)) < 0) {
-                                return getErrReturnObject().setErrMsg(orderdetail.getString("itemno") + "商品数量已超过促销活动的限定数量【" + groupqty.subtract(saledqty) + "】,无法提交").toString();
+                                return getErrReturnObject().setErrMsg("品号:"+orderdetail.getString("itemno") +"已超过限购数量:"+groupqty.subtract(saledqty)).toString();
                             }
                         }
                         sqlList.add("update sa_promotion_items set saledqty=ifnull(saledqty,0)+" + qty + " where sa_promotion_itemsid=" + promotionitemsRowsMap.get(itemid).get(0).getLong("sa_promotion_itemsid"));
@@ -2976,6 +2976,22 @@ public class Order extends Controller {
         sqlList.add("UPDATE sa_order SET STATUS='手工关闭',closedate=current_time,closeby='" + username + "' WHERE sa_orderid='" + sa_orderid + "' and siteid = '" + siteid + "'");
         sqlList.add("UPDATE sa_orderitems SET isclose=1 WHERE sa_orderid='" + sa_orderid + "' and siteid = '" + siteid + "'");
 
+        String type = orderRow.get(0).getString("type");
+        if (type.equals("促销订单")) {
+            Rows orderdetails = dbConnect.runSqlQuery("select sa_promotion_itemsid,itemno,sum(undeliqty) qty  from sa_orderitems where siteid='" + siteid + "' and sa_orderid=" + sa_orderid +" group by sa_promotion_itemsid,itemno");
+            Rows promotionitems = dbConnect.runSqlQuery("select * from sa_promotion_items where siteid='" + siteid + "' and sa_promotionid=" + orderRow.get(0).getLong("sa_promotionid"));
+            RowsMap promotionitemsRowsMap = promotionitems.toRowsMap("sa_promotion_itemsid");
+            for (Row orderdetail : orderdetails) {
+                String sa_promotion_itemsid = orderdetail.getString("sa_promotion_itemsid");
+                BigDecimal qty = orderdetail.getBigDecimal("qty");
+                if (promotionitemsRowsMap.containsKey(sa_promotion_itemsid)) {
+                    if (promotionitemsRowsMap.get(sa_promotion_itemsid).isNotEmpty()) {
+                        sqlList.add("update sa_promotion_items set saledqty=saledqty-" + qty + " where sa_promotion_itemsid=" + sa_promotion_itemsid);
+                    }
+                }
+            }
+        }
+
         Rows rows = dbConnect.runSqlQuery("SELECT sum(undeliqty*price) totalprice from sa_orderitems WHERE sa_orderid=" + sa_orderid + " and siteid = '" + siteid + "'");
         if (rows.isNotEmpty()) {
             BigDecimal totalprice = rows.get(0).getBigDecimal("totalprice");

+ 1 - 1
src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

@@ -60,7 +60,7 @@ public class OrderItemsHelper extends BaseClass {
                     }
                     if (islimit) {
                         if (groupqty.compareTo(saledqty.add(qty)) < 0) {
-                            throw new YosException(itemRow.getString("itemno") + "商品数量已超过促销活动的限定数量【" + groupqty.subtract(saledqty) + "】,无法新建");
+                            throw new YosException("品号:"+itemRow.getString("itemno") +"已超过限购数量:"+groupqty.subtract(saledqty));
                         }
                     }
                 }