Преглед изворни кода

通过bom添加的商品行,可核销数量修改判断;

wu пре 1 недеља
родитељ
комит
c55b2dae86
1 измењених фајлова са 16 додато и 2 уклоњено
  1. 16 2
      src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

+ 16 - 2
src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

@@ -710,7 +710,7 @@ public class OrderItemsHelper extends BaseClass {
 
     public UpdateSQL getUpdateSQL(long sa_orderitemsid, JSONObject item, Row itemRow, String type, BigDecimal defaultprice, BigDecimal price, BigDecimal saleprice, long width, long length) throws YosException {
         BigDecimal qty = item.getBigDecimal("qty");
-
+        Long itemid = item.getLong("itemid");
         UpdateSQL updateSQL = SQLFactory.createUpdateSQL(controller, sa_orderitems);
         //订购数量
         updateSQL.setValue("qty", qty);
@@ -719,7 +719,7 @@ public class OrderItemsHelper extends BaseClass {
         if (conversionrate.compareTo(BigDecimal.ZERO) <= 0) {
             conversionrate = BigDecimal.valueOf(1);
         }
-        updateSQL.setValue("itemid", item.getLongValue("itemid"));
+        updateSQL.setValue("itemid", itemid);
         updateSQL.setValue("itemno", itemRow.getString("itemno"));
         updateSQL.setValue("itemname", itemRow.getString("itemname"));
         updateSQL.setValue("model", itemRow.getString("model"));
@@ -792,6 +792,20 @@ public class OrderItemsHelper extends BaseClass {
 
         updateSQL.setValue("length", length);
 
+
+        if (type.equals("配件订单") && StringUtils.isNotBlank(item.getStringValue("cardno"))) {
+            Rows aftersalesbomrows = dbConnect.runSqlQuery("select t2.sa_aftersalesbomid from sa_warrantycard t1 inner join sa_aftersalesbom_items t2 on t1.itemid=t2.itemid inner join sa_aftersalesbom t3 on t2.sa_aftersalesbomid=t3.sa_aftersalesbomid where t1.cardno='" + item.getStringValue("cardno") + "' and t3.status='审核'");
+            if (aftersalesbomrows.isNotEmpty() && (controller.usertype == 21 || controller.usertype == 22)) {
+                Rows aftersalesbompjrows = dbConnect.runSqlQuery("select qty from sa_aftersalesbom_pjs t1 where t1.sa_aftersalesbomid=" + aftersalesbomrows.get(0).getString("sa_aftersalesbomid") + " and t1.itemid=" + itemid);
+                if (aftersalesbompjrows.isNotEmpty()) {
+                    updateSQL.setValue("canoffqty", aftersalesbompjrows.get(0).getBigDecimal("qty").compareTo(qty) > 0 ? qty : aftersalesbompjrows.get(0).getBigDecimal("qty"));
+                } else {
+                    updateSQL.setValue("canoffqty", 1);
+                }
+            }
+        }
+
+
         updateSQL.setWhere("siteid", controller.siteid);
         updateSQL.setWhere("sa_orderitemsid", sa_orderitemsid);