Browse Source

发货库存bug 修复

hu 2 years ago
parent
commit
88bf96d012

+ 2 - 1
src/custom/restcontroller/webmanage/sale/dispatch/SQL/发货单明细列表查询.sql

@@ -4,7 +4,8 @@ SELECT t1.sa_dispatch_itemsid,
        t1.rowno,
        t5.rowno                       orderRowno,
        t1.itemid,
-       ifnull(t1.qty, 0)              qty,
+       ifnull(t1.qty, 0) qty,
+       ifnull(t1.outwarehouseqty, 0) outwarehouseqty,
        t1.batchcontrol,
        t1.batchno,
        t1.remarks,

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

@@ -8,13 +8,17 @@ import common.YosException;
 import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
+import common.data.Row;
 import common.data.Rows;
+import common.data.RowsMap;
 import common.data.SQLFactory;
 import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 import restcontroller.webmanage.sale.order.Order;
 import restcontroller.webmanage.sale.order.OrderItems;
+import utility.ERPDocking;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 
 public class dispatchItems extends Controller {
@@ -201,7 +205,28 @@ public class dispatchItems extends Controller {
         sqlFactory.addParameter("sa_dispatchid", sa_dispatchid);
         sqlFactory.addParameter("siteid", siteid);
         Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        RowsMap rowsMap =rows.toRowsMap("itemno");
+        ERPDocking erpDocking =new ERPDocking();
+        JSONArray jsonArray =new JSONArray();
+        if(rows.toJsonArray("itemno").size()!=0){
+            jsonArray=erpDocking.getErpIcinvbalRows(200000, 1,rows.toJsonArray("itemno"));
+        }
+        if(!jsonArray.isEmpty()){
+            for (Object object:jsonArray) {
+                JSONObject jsonObject =(JSONObject)object;
+                if(rowsMap.containsKey(jsonObject.getString("fitemno"))){
+                    if(rowsMap.get(jsonObject.getString("fitemno")).isNotEmpty()){
+                        rowsMap.get(jsonObject.getString("fitemno")).get(0).put("delinvbalqty", jsonObject.getBigDecimalValue("fqty").subtract( rowsMap.get(jsonObject.getString("fitemno")).get(0).getBigDecimal("undeliqty")));
+                    }
+                }
+            }
+        }
 
+        for (Row row:rows) {
+            if(!row.containsKey("delinvbalqty")){
+                row.put("delinvbalqty", row.getBigDecimal("undeliqty").negate());
+            }
+        }
         return getSucReturnObject().setData(rows).toString();
     }
 

+ 4 - 0
src/custom/restcontroller/webmanage/sale/invbal/invbal.java

@@ -113,6 +113,7 @@ public class invbal extends Controller {
 	public String queryErpInvbalList() throws YosException {
 		String itemno = content.getString("itemno");
 		String itemname = content.getString("itemname");
+		boolean all = content.getBooleanValue("all");
 		JSONArray itemclassids = content.getJSONArray("itemclassids");
 		String where ="1=2";
 		if(!StringUtils.isBlank(itemno)){
@@ -126,6 +127,9 @@ public class invbal extends Controller {
 			sql = sql.replace("[", "(").replace("]", ")");
 			where=where+sql;
 		}
+		if(all){
+			where=where+" or 1=1 ";
+		}
 
 		SQLFactory sqlFactory =new SQLFactory(this,"订单明细未发商品列表");
 		sqlFactory.addParameter("siteid", siteid);

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

@@ -2318,7 +2318,11 @@ public class Order extends Controller {
         if (rows.isNotEmpty()) {
             BigDecimal totalprice = rows.get(0).getBigDecimal("totalprice");
             if (totalprice.compareTo(BigDecimal.ZERO) > 0) {
-                sqlList.add("UPDATE sa_accountbalance set balance=" + totalprice + " WHERE sys_enterpriseid=" + sys_enterpriseid + " and sa_accountclassid=" + sa_accountclassid + " and siteid='" + siteid + "'");
+                CashbillEntity entity = new CashbillEntity();
+                entity.setAmount(totalprice);
+                entity.setOwnerid(sa_orderid);
+                entity.setOwnertable("sa_order");
+                Accountbalance.createCashbillIncome(this, sys_enterpriseid, sa_accountclassid, entity, true);
             }
 
         }