Sfoglia il codice sorgente

发货单复核增加判断条件,可用量(发货单复核需满足库存可用量的条件下)

hu 2 anni fa
parent
commit
5dbf8c5a88

+ 15 - 1
src/custom/restcontroller/webmanage/sale/dispatch/dispatch.java

@@ -757,6 +757,12 @@ public class dispatch extends Controller {
         if(isJSONArray(result)){
             jsonArray = JSONArray.parseArray(result);
         }
+        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 (rowsMapDispatchDetail.containsKey(jsonObject.getString("fitemno"))) {
@@ -768,10 +774,16 @@ public class dispatch extends Controller {
             }
         }
 
+
         if (!rowsDispatchDetail.isEmpty()) {
             for (Row row : rowsDispatchDetail) {
                 System.out.println(Parameter.get(siteid, "dispatchinstock"));
                 System.out.println(Parameter.get(siteid, "dispatchinstock").equals("1"));
+                if (sumQtyRowsMap.containsKey(row.getString("fitemno"))) {
+                   row.put("delinvbalqty", (row.containsKey("invbalqty")?row.getBigDecimal("invbalqty"):BigDecimal.ZERO).subtract(sumQtyRowsMap.get(row.getString("fitemno")).get(0).getBigDecimal("qty")));
+                } else {
+                    row.put("delinvbalqty", row.containsKey("invbalqty")?row.getBigDecimal("invbalqty"):BigDecimal.ZERO);
+                }
                 if (rowsMap.get(row.getString("sa_orderitemsid")).isEmpty()) {
                     return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细不存在对应得订单行,无法复核")
                             .toString();
@@ -782,7 +794,9 @@ public class dispatch extends Controller {
                 }
 
                 if (Parameter.get(siteid, "dispatchinstock").equals("1")) {
-                    if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("invbalqty")) > 0) {
+
+
+                    if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("delinvbalqty")) > 0) {
                         return getErrReturnObject().setErrMsg("行号为:【" + row.getString("rowno") + "】的发货单明细的数量大于erp的库存数量,无法复核")
                                 .toString();
                     }