소스 검색

订单行冻结及修改折扣

hu 2 년 전
부모
커밋
5aba2f390b

+ 8 - 1
src/custom/restcontroller/R.java

@@ -4695,7 +4695,14 @@ public class R {
         public static class v1 {
         }
     }
-
+    public static class ID20230508093003 {
+        public static class v1 {
+        }
+    }
+    public static class ID20230508101703 {
+        public static class v1 {
+        }
+    }
 
 }
 

+ 1 - 0
src/custom/restcontroller/webmanage/sale/dispatch/SQL/发货商品列表查询.sql

@@ -20,6 +20,7 @@ FROM sa_orderitems t1
          inner join sa_order t3 on t1.siteid=t3.siteid and t1.sa_orderid=t3.sa_orderid
 WHERE t3.STATUS = '审核'
   and ifnull(t1.undeliqty, 0) !=0
+  and ifnull(t1.isfreeze, 0) =0
 	AND t1.siteid = $siteid$
 	and t3.sys_enterpriseid=$sys_enterpriseid$
 	AND ifnull( t1.isclose, 0 )= 0

+ 1 - 1
src/custom/restcontroller/webmanage/sale/dispatch/SQL/审核订单列表查询.sql

@@ -13,6 +13,6 @@ FROM sa_order t1
     AND t1.siteid = t2.siteid
 WHERE t1.STATUS = '审核'
   and t1.sys_enterpriseid=$sys_enterpriseid$
-  and  exists (select 1 from sa_orderitems where (ifnull(undeliqty, 0)!=0 and ifnull(isclose, 0 )= 0) and sa_orderid=t1.sa_orderid)
+  and  exists (select 1 from sa_orderitems where (ifnull(undeliqty, 0)!=0 and ifnull(isclose, 0 )= 0 and ifnull(isfreeze, 0 )= 0) and sa_orderid=t1.sa_orderid)
   AND t1.siteid = $siteid$
   and $where$

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

@@ -614,7 +614,7 @@ public class dispatch extends Controller {
         sqlFactory.addParameter("freightstatus", orderRows.get(0).getString("freightstatus"));
         sqlFactory.addParameter("billdate", now());
         sqlList.add(sqlFactory.getSQL());
-        RowsMap orderitemsRowsMap = dbConnect.runSqlQuery("select itemid,itemno,qty,sa_orderitemsid,sa_orderid,remarks from sa_orderitems where siteid='" + siteid + "' and sa_orderid=" + sa_orderid).toRowsMap("sa_orderitemsid");
+        RowsMap orderitemsRowsMap = dbConnect.runSqlQuery("select itemid,itemno,qty,sa_orderitemsid,sa_orderid,remarks from sa_orderitems where isfreeze=0 and siteid='" + siteid + "' and sa_orderid=" + sa_orderid).toRowsMap("sa_orderitemsid");
         RowsMap dispatchitemsRowsMap;
         if (dbConnect.runSqlQuery("select 1 from sys_site_parameter where siteid='" + siteid + "' and dispatch_recheck=1").isEmpty()) {
             dispatchitemsRowsMap = dbConnect.runSqlQuery("select sa_orderid,sa_orderitemsid,ifnull(sum(qty),0) qty from sa_dispatch t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_dispatchid=t2.sa_dispatchid where t1.siteid='" + siteid + "' and t1.status in ('审核','关闭') group by t1.sa_orderid,t2.sa_orderitemsid").toRowsMap("sa_orderitemsid");

+ 53 - 0
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -323,6 +323,59 @@ public class OrderItems extends Controller {
         return getSucReturnObject().toString();
     }
 
+    @API(title = "商品行冻结", apiversion = R.ID20230508093003.v1.class)
+    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, ToolBill.class})
+    public String freeze() throws YosException {
+        Long sa_orderid = content.getLong("sa_orderid");
+        JSONArray sa_orderitemsids = content.getJSONArray("sa_orderitemsids");
+        boolean isfreeze=content.getBooleanValue("isfreeze");
+        Rows orderRows = dbConnect.runSqlQuery("select * from sa_order where sa_orderid="+sa_orderid+ " and siteid='"+siteid+"'");
+        if(!orderRows.isEmpty()){
+
+            if(!orderRows.get(0).getString("status").equals("审核")){
+                if(isfreeze){
+                    return getErrReturnObject().setErrMsg("非审核状态无法进行冻结").toString();
+                }else {
+                    return getErrReturnObject().setErrMsg("非审核状态无法进行反冻结").toString();
+                }
+
+            }
+        }else {
+            return getErrReturnObject().setErrMsg("该订单不存在").toString();
+        }
+        SQLFactory sqlFactory;
+        if(isfreeze){
+             sqlFactory = new SQLFactory(this, "订单商品明细_冻结");
+        }else {
+             sqlFactory = new SQLFactory(this, "订单商品明细_反冻结");
+        }
+        sqlFactory.addParameter("siteid", siteid);
+        sqlFactory.addParameter_in("sa_orderitemsid", sa_orderitemsids.toArray());
+        String sql = sqlFactory.getSQL();
+         System.out.println(sql);
+        dbConnect.runSqlUpdate(sql);
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "商品行折扣变更", apiversion = R.ID20230508101703.v1.class)
+    @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class, ToolBill.class})
+    public String updateOrderItemsDiscountrate() throws YosException {
+        Long sa_orderid = content.getLong("sa_orderid");
+        BigDecimal discountrate =content.getBigDecimal("discountrate");
+
+        Rows orderItemsRows = dbConnect.runSqlQuery("select * from sa_orderitems where sa_orderid="+sa_orderid+ " and siteid='"+siteid+"'");
+        ArrayList<String> sqlList =new ArrayList<>();
+        if(!orderItemsRows.isEmpty()){
+            for (Row row :orderItemsRows) {
+                BigDecimal price =row.getBigDecimal("price").multiply(discountrate);
+                BigDecimal amount =row.getBigDecimal("amount").multiply(discountrate);
+                sqlList.add("update sa_orderitems set price="+price+",amount="+amount+" where sa_orderitemsid="+row.getLong("sa_orderitemsid"));
+            }
+        }
+        dbConnect.runSqlUpdate(sqlList);
+        return getSucReturnObject().toString();
+    }
+
     @API(title = "关闭", apiversion = R.ID20221109093802.v1.class)
     @CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class})
     public String close() throws YosException {

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_冻结.sql

@@ -0,0 +1 @@
+update sa_orderitems set isfreeze=1 WHERE sa_orderitemsid in $sa_orderitemsid$ and  siteid = $siteid$

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_列表.sql

@@ -28,6 +28,7 @@ SELECT t1.sa_orderitemsid,
        t1.stockno,
        t1.position,
        t1.batchno,
+       t1.isfreeze,
        ifnull(t2.candispatchqty, 0)   candispatchqty,
        ifnull(t2.cansaleqty, 0)       cansaleqty,
        ifnull(t2.qty, 0)              totalaty,

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_反冻结.sql

@@ -0,0 +1 @@
+update sa_orderitems set isfreeze=0 WHERE sa_orderitemsid in $sa_orderitemsid$ and  siteid = $siteid$

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_详情.sql

@@ -22,6 +22,7 @@ SELECT t1.sa_orderitemsid,
        t1.stockno,
        t1.position,
        t1.batchno,
+       t1.isfreeze,
        t1.sa_orderid,
        t1.deliverydate,
        ifnull(t2.candispatchqty, 0) candispatchqty,