Parcourir la source

20230719154103销售出库单审核接口,缺货时报错改为批量报错

wu il y a 2 mois
Parent
commit
08aacbd01a
1 fichiers modifiés avec 9 ajouts et 2 suppressions
  1. 9 2
      src/custom/beans/stockbill/bills/XSCK.java

+ 9 - 2
src/custom/beans/stockbill/bills/XSCK.java

@@ -91,6 +91,8 @@ public class XSCK extends BasicBill {
         }
         //库存校验
         RowsMap invbalsRowsMap = SQLFactory.createQuerySQL(dbConnect, "st_invbal").setWhere("siteid", siteid).setWhere("itemid", itemRows.toArrayList("itemid")).query().toRowsMap("itemid");
+        StringBuffer errmsg = new StringBuffer("");
+        boolean iserr = false;
         for (Row row : itemRows) {
             if (!row.getBoolean("isnegative") && row.getBoolean("ismodule")) {
                 long itemid = row.getLong("itemid");
@@ -98,17 +100,22 @@ public class XSCK extends BasicBill {
                 BigDecimal qty = row.getBigDecimal("qty");
                 if (!isInStock(ischeck)) {
                     if (!invbalsRowsMap.containsKey(String.valueOf(itemid)) || !invbalsRowsMap.get(String.valueOf(itemid)).toRowsMap("stockid").containsKey(String.valueOf(stockid))) {
-                        throw new YosException("行【" + row.getString("rowno") + "】不能负库存出库");
+                        errmsg.append("行【" + row.getString("rowno") + "】不能负库存出库;");
+                        iserr = true;
                     } else {
                         BigDecimal invbalqty = invbalsRowsMap.get(String.valueOf(itemid)).toRowsMap("stockid").get(String.valueOf(stockid)).get(0).getBigDecimal("qty");
                         if (invbalqty.compareTo(qty) < 0) {
-                            throw new YosException("行【" + row.getString("rowno") + "】不能负库存出库");
+                            errmsg.append("行【" + row.getString("rowno") + "】不能负库存出库;");
+                            iserr = true;
                         }
                     }
                 }
 
             }
         }
+        if (iserr) {
+            throw new YosException(String.valueOf(errmsg));
+        }
 
         if ((ischeck && rb == 1) || (!ischeck && rb == 0)) {
 //            if (order_paymentnode.equals("3") && !Accountbalance.judgeBalance(dbConnect, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), itemRows.toRowsMap("sa_orderitemsidnum").get("0").sum("amount"))) {