|
@@ -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) {
|
|
|
|