Quellcode durchsuchen

德来包发货单复核增加库存判断

hu vor 1 Jahr
Ursprung
Commit
c48f3d2db6
1 geänderte Dateien mit 36 neuen und 0 gelöschten Zeilen
  1. 36 0
      src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

+ 36 - 0
src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

@@ -763,6 +763,42 @@ public class dispatch extends Controller {
         }
 
 
+        if (!siteid.equalsIgnoreCase("lsa") && Parameter.get(siteid, "dispatchinstock").equals("1")) {
+            ERPDocking erpDocking = new ERPDocking(siteid);
+
+            JSONArray jsonArray = erpDocking.getErpIcinvbalRows(200000, 1, rowsDispatchDetail.toJsonArray("itemno"));
+
+            SQLFactory sqlFactory1 = new SQLFactory(this, "商品发货数量汇总");
+            sqlFactory1.addParameter("siteid", siteid);
+            sqlFactory1.addParameter_in("itemno", rowsDispatchDetail.toArrayList("itemno", new ArrayList<>()));
+            Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
+            RowsMap sumQtyRowsMap = sumQtyRows.toRowsMap("itemno");
+
+            for (Object obj : jsonArray) {
+                JSONObject jsonObject = (JSONObject) obj;
+                if (rowsMapDispatchDetailGroupByItem.containsKey(jsonObject.getString("fitemno"))) {
+                    if (rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).isNotEmpty()) {
+                        rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", jsonObject.getBigDecimalValue("fqty"));
+                    } else {
+                        rowsMapDispatchDetailGroupByItem.get(jsonObject.getString("fitemno")).get(0).put("invbalqty", 0);
+                    }
+                }
+            }
+
+            for (Row row : rowsDispatchDetailGroupByItem) {
+                if (sumQtyRowsMap.containsKey(row.getString("itemno"))) {
+                    row.put("delinvbalqty", (row.containsKey("invbalqty") ? row.getBigDecimal("invbalqty") : BigDecimal.ZERO).subtract(sumQtyRowsMap.get(row.getString("itemno")).get(0).getBigDecimal("qty")));
+                } else {
+                    row.put("delinvbalqty", row.containsKey("invbalqty") ? row.getBigDecimal("invbalqty") : BigDecimal.ZERO);
+                }
+
+                if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("delinvbalqty")) > 0) {
+                    return getErrReturnObject().setErrMsg("发货商品" + row.getString("itemno") + ",库存不足,无法操作复核!")
+                            .toString();
+                }
+            }
+        }
+
         if (!rowscurrentDispatchDetail.isEmpty()) {
             for (Row row : rowscurrentDispatchDetail) {