hu 5 месяцев назад
Родитель
Сommit
22586f5593

+ 39 - 0
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -1654,6 +1654,10 @@ public class Order extends Controller {
 
         int i = 1;
         BigDecimal payamount =BigDecimal.ZERO;
+        RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "*").setTableAlias("t1").addJoinTable(JOINTYPE.left, "st_stock", "t2", "t1.siteid = t2.siteid and t1.stockno = t2.stockno","stockid").setWhere("itemid", rowsdetail.toArrayList("itemid")).query().toRowsMap("itemid");
+        RowsMap stockRowsMap = SQLFactory.createQuerySQL(this, "st_stock", "stockid", "stockno").query().toRowsMap("stockno");
+
+
         for (Row row : rowsdetail) {
             payamount=payamount.add(row.getBigDecimal("undeliqty").multiply(row.getBigDecimal("price")));
             insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill_items");
@@ -1677,6 +1681,15 @@ public class Order extends Controller {
             insertSQL.setValue("untaxedprice", row.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP));
             insertSQL.setValue("untaxedamount", row.getBigDecimal("undeliqty").multiply(row.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP)));
             insertSQL.setValue("skucontrol", row.getBoolean("skucontrol"));
+            if(itemRowsMap.containsKey(row.getString("itemid"))){
+                if(itemRowsMap.get(row.getString("itemid")).get(0).getBoolean("ismodule")){
+                    insertSQL.setValue("stockid", stockRowsMap.get("105").get(0).getLong("stockid"));
+                }else{
+                    insertSQL.setValue("stockid", stockRowsMap.get("101").get(0).getLong("stockid"));
+                }
+            }else{
+                insertSQL.setValue("stockid", 0);
+            }
             i++;
             sqlList.add(insertSQL.getSQL());
         }
@@ -1779,6 +1792,10 @@ public class Order extends Controller {
 
         int i = 1;
         BigDecimal payamount =BigDecimal.ZERO;
+        RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "*").setTableAlias("t1").addJoinTable(JOINTYPE.left, "st_stock", "t2", "t1.siteid = t2.siteid and t1.stockno = t2.stockno","stockid").setWhere("itemid", rowsdetail.toArrayList("itemid")).query().toRowsMap("itemid");
+        RowsMap stockRowsMap = SQLFactory.createQuerySQL(this, "st_stock", "stockid", "stockno").query().toRowsMap("stockno");
+
+
         for (Row row : rowsdetail) {
             payamount=payamount.add(row.getBigDecimal("undeliqty").multiply(row.getBigDecimal("price")));
             insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill_items");
@@ -1802,6 +1819,15 @@ public class Order extends Controller {
             insertSQL.setValue("untaxedprice", row.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP));
             insertSQL.setValue("untaxedamount", row.getBigDecimal("undeliqty").multiply(row.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP)));
             insertSQL.setValue("skucontrol", row.getBoolean("skucontrol"));
+            if(itemRowsMap.containsKey(row.getString("itemid"))){
+                if(itemRowsMap.get(row.getString("itemid")).get(0).getBoolean("ismodule")){
+                    insertSQL.setValue("stockid", stockRowsMap.get("105").get(0).getLong("stockid"));
+                }else{
+                    insertSQL.setValue("stockid", stockRowsMap.get("101").get(0).getLong("stockid"));
+                }
+            }else{
+                insertSQL.setValue("stockid", 0);
+            }
             i++;
             sqlList.add(insertSQL.getSQL());
         }
@@ -2036,6 +2062,10 @@ public class Order extends Controller {
 
                     int i = 1;
                     BigDecimal payamount =BigDecimal.ZERO;
+                    RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "*").setTableAlias("t1").addJoinTable(JOINTYPE.left, "st_stock", "t2", "t1.siteid = t2.siteid and t1.stockno = t2.stockno","stockid").setWhere("itemid", orderdetailRows.toArrayList("itemid")).query().toRowsMap("itemid");
+                    RowsMap stockRowsMap = SQLFactory.createQuerySQL(this, "st_stock", "stockid", "stockno").query().toRowsMap("stockno");
+
+
                     for (Row row : orderdetailRows) {
                         payamount=payamount.add(row.getBigDecimal("undeliqty").multiply(row.getBigDecimal("price")));
                         insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill_items");
@@ -2059,6 +2089,15 @@ public class Order extends Controller {
                         insertSQL.setValue("untaxedprice", row.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP));
                         insertSQL.setValue("untaxedamount", row.getBigDecimal("undeliqty").multiply(row.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP)));
                         insertSQL.setValue("skucontrol", row.getBoolean("skucontrol"));
+                        if(itemRowsMap.containsKey(row.getString("itemid"))){
+                            if(itemRowsMap.get(row.getString("itemid")).get(0).getBoolean("ismodule")){
+                                insertSQL.setValue("stockid", stockRowsMap.get("105").get(0).getLong("stockid"));
+                            }else{
+                                insertSQL.setValue("stockid", stockRowsMap.get("101").get(0).getLong("stockid"));
+                            }
+                        }else{
+                            insertSQL.setValue("stockid", 0);
+                        }
                         i++;
                         sqlList.add(insertSQL.getSQL());
                     }

+ 20 - 2
src/custom/restcontroller/webmanage/sale/stockbill/stockbillitems.java

@@ -181,7 +181,7 @@ public class stockbillitems extends Controller {
 
         for (Object obj : iteminfos) {
             JSONObject iteminfo = (JSONObject) obj;
-            if (iteminfo.getLong("st_stockbill_itemsid") <= 0 || dbConnect
+            if (iteminfo.getLong("st_stockbill_istemsid") <= 0 || dbConnect
                     .runSqlQuery("select st_stockbill_itemsid from st_stockbill_items where st_stockbill_itemsid="
                             + iteminfo.getLong("st_stockbill_itemsid"))
                     .isEmpty()) {
@@ -276,7 +276,14 @@ public class stockbillitems extends Controller {
 
         dbConnect.runSqlUpdate(sqlList);
         Rows rowsdetail = dbConnect.runSqlQuery("select amount,qty from st_stockbill_items where st_stockbillid=" + st_stockbillid);
-        dbConnect.runSqlUpdate("update st_stockbill set payamount="+rowsdetail.sum("amount")+" where st_stockbillid="+st_stockbillid);
+        Rows stockbillrows= dbConnect.runSqlQuery("select paydiscountamount from st_stockbill where st_stockbillid=" + st_stockbillid);
+        if(stockbillrows.isNotEmpty()){
+            if(stockbillrows.get(0).getBigDecimal("paydiscountamount").compareTo(rowsdetail.sum("amount"))>0){
+                dbConnect.runSqlUpdate("update st_stockbill set paydiscountamount="+rowsdetail.sum("amount")+",payamount=0 where st_stockbillid="+st_stockbillid);
+            }else{
+                dbConnect.runSqlUpdate("update st_stockbill set payamount="+rowsdetail.sum("amount")+"-paydiscountamount where st_stockbillid="+st_stockbillid);
+            }
+        }
         return querStcokbillItemsList();
     }
 
@@ -366,6 +373,17 @@ public class stockbillitems extends Controller {
         }
         //重新排序
         updateRowNo(st_stockbillid);
+
+        Rows rowsdetail = dbConnect.runSqlQuery("select amount,qty from st_stockbill_items where st_stockbillid=" + st_stockbillid);
+        Rows stockbillrows= dbConnect.runSqlQuery("select paydiscountamount from st_stockbill where st_stockbillid=" + st_stockbillid);
+        if(stockbillrows.isNotEmpty()){
+            if(stockbillrows.get(0).getBigDecimal("paydiscountamount").compareTo(rowsdetail.sum("amount"))>0){
+                dbConnect.runSqlUpdate("update st_stockbill set paydiscountamount="+rowsdetail.sum("amount")+",payamount=0 where st_stockbillid="+st_stockbillid);
+            }else{
+                dbConnect.runSqlUpdate("update st_stockbill set payamount="+rowsdetail.sum("amount")+"-paydiscountamount where st_stockbillid="+st_stockbillid);
+            }
+        }
+
         return batchDeleteErr.getReturnObject().toString();
     }
     /**