Explorar o código

Merge remote-tracking branch 'origin/develop' into develop

shenjingwei hai 5 meses
pai
achega
e79df85672

+ 1 - 0
src/custom/restcontroller/webmanage/sale/accountclass/accountclass.java

@@ -319,6 +319,7 @@ public class accountclass extends Controller {
                 "status", "sonum");
         querySQL.setSiteid(siteid);
         querySQL.setWhere("t1.sa_accountbalanceid", sa_accountbalanceid);
+        querySQL.setWhere("t1.amount>0");
         querySQL.setWhere(where.toString());
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();

+ 24 - 6
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -1581,7 +1581,7 @@ public class Order extends Controller {
             reccontactrow=reccontactrows.get(0);
         }
         if(stockbillRows.isNotEmpty()){
-            return getErrReturnObject().setErrMsg("存在订单明细已生成销售出库单,无法一键出库").toString();
+            //return getErrReturnObject().setErrMsg("存在订单明细已生成销售出库单,无法一键出库").toString();
         }
         Rows rows = getOrderRows(this, sa_orderid);
         if (rows.isEmpty()) {
@@ -1593,9 +1593,7 @@ public class Order extends Controller {
         if(sa_orderitemsids.isEmpty()){
             return getErrReturnObject().setErrMsg("未选择订单明细,无法一键出库").toString();
         }
-        if(sa_orderitemsids.isEmpty()){
-            return getErrReturnObject().setErrMsg("未选择订单明细,无法一键出库").toString();
-        }
+
         ArrayList<String> sqlList = new ArrayList<>();
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems","*");
         querySQL.setTableAlias("t1");
@@ -1603,6 +1601,12 @@ public class Order extends Controller {
         querySQL.setWhere("t1.siteid",siteid);
         querySQL.setWhere("t1.sa_orderitemsid",sa_orderitemsids);
         Rows rowsdetail = querySQL.query();
+        for(Row row :rowsdetail){
+            if(row.getBoolean("isclose")){
+                return getErrReturnObject().setErrMsg("行"+row.getString("rowno")+"已关闭,无法出库").toString();
+            }
+        }
+
         Row orderRow = rows.get(0);
         Rows departmenthrrows =dbConnect.runSqlQuery("select *from sys_departmenthrid where hrid="+hrid);
 
@@ -1723,6 +1727,11 @@ public class Order extends Controller {
         querySQL.setWhere("t1.siteid",siteid);
         querySQL.setWhere("t1.sa_orderitemsid",sa_orderitemsids);
         Rows rowsdetail = querySQL.query();
+        for(Row row :rowsdetail){
+            if(row.getBoolean("isclose")){
+                return getErrReturnObject().setErrMsg("行"+row.getString("rowno")+"已关闭,无法出库").toString();
+            }
+        }
         Row orderRow = rows.get(0);
         Rows departmenthrrows =dbConnect.runSqlQuery("select *from sys_departmenthrid where hrid="+hrid);
         Rows accountbalancerows = dbConnect.runSqlQuery("select * from  sa_accountbalance t1 inner join sa_accountclass t2 on  t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t2.accountname='现金账户' and t1.sys_enterpriseid=" + orderRow.getLong("sys_enterpriseid"));
@@ -1829,13 +1838,13 @@ public class Order extends Controller {
         orderQuerySQL.addJoinTable(JOINTYPE.inner, "plm_item", "t3", "t2.itemid=t3.itemid and t3.siteid=t2.siteid","skucontrol","outplace");
         orderQuerySQL.setWhere("t1.siteid",siteid);
         orderQuerySQL.setWhere("t1.sa_orderid",sa_orderids);
-        orderQuerySQL.setWhere("t1.status='审核' and t1.type='配件订单' and t2.undeliqty>0 and ifnull(t2.delivery,'')!='' and t2.delivery!='随货'");
+        orderQuerySQL.setWhere("t1.status='审核' and t1.type='配件订单' and t2.undeliqty>0 and ifnull(t2.delivery,'')!='' and t2.isclose=0 and t2.delivery!='随货'");
         Rows orderRows =orderQuerySQL.query();
 
         QuerySQL orderQuerySQL_jundge = SQLFactory.createQuerySQL(this, "sa_order","sa_orderid","status","sonum","type","delivery");
         orderQuerySQL_jundge.setTableAlias("t1");
         orderQuerySQL_jundge.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid=t1.sa_orderid and t1.siteid=t2.siteid",
-                "sa_orderitemsid","itemid","undeliqty","defaultprice","remarks","itemno","itemname","model","price","rowno");
+                "sa_orderitemsid","itemid","undeliqty","defaultprice","remarks","itemno","itemname","model","price","rowno","isclose");
         orderQuerySQL_jundge.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sys_enterpriseid=t1.sys_enterpriseid and t4.siteid=t1.siteid", "agentnum");
         orderQuerySQL_jundge.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid", "enterprisename", "abbreviation");
         orderQuerySQL_jundge.setWhere("t1.siteid",siteid);
@@ -1871,6 +1880,15 @@ public class Order extends Controller {
                 errRow.put("delivery",row.getString("delivery"));
                 errRow.put("errreason","行号"+row.getString("rowno")+"的商品已发货,不可发货");
                 errRows.add(errRow);
+            }else if(row.getBoolean("isclose")){
+                errRow.put("sa_orderid",row.getLong("sa_orderid"));
+                errRow.put("sonum",row.getString("sonum"));
+                errRow.put("agentnum",row.getString("agentnum"));
+                errRow.put("status",row.getString("status"));
+                errRow.put("abbreviation",row.getString("abbreviation"));
+                errRow.put("delivery",row.getString("delivery"));
+                errRow.put("errreason","行号"+row.getString("rowno")+"的商品已关闭,不可发货");
+                errRows.add(errRow);
             }else if(StringUtils.isBlank(row.getString("delivery"))){
                 errRow.put("sa_orderid",row.getLong("sa_orderid"));
                 errRow.put("sonum",row.getString("sonum"));

+ 6 - 1
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -1403,6 +1403,7 @@ public class OrderItems extends Controller {
         boolean isclose= content.getBoolean("isclose");
         long sa_orderid=content.getLong("sa_orderid");
         JSONArray sa_orderitemsids = content.getJSONArray("sa_orderitemsids");
+        String closereason=content.getStringValue("closereason");
         ArrayList<String> sqlList = new ArrayList<>();
         Rows rows = getOrderRows(this, sa_orderid);
         if (rows.isEmpty()) {
@@ -1429,7 +1430,7 @@ public class OrderItems extends Controller {
             BigDecimal sendamount =price.multiply(sendqty).setScale(2, RoundingMode.HALF_UP);
             returnamount = returnamount.add(amount.subtract(sendamount));
 
-            sqlList.add("update sa_orderitems set isclose="+isclose+" where sa_orderitemsid="+rowsdetail.getLong("sa_orderitemsid"));
+            sqlList.add("update sa_orderitems set isclose="+isclose+",closereason='"+closereason+"',closeby='"+username+"',closedate=CURRENT_TIME where sa_orderitemsid="+rowsdetail.getLong("sa_orderitemsid"));
         }
 
         Rows freezRows = dbConnect.runSqlQuery("select * from sa_accountbalance_freez where sourcetable='sa_order' and sourceid="+sa_orderid);
@@ -1446,6 +1447,8 @@ public class OrderItems extends Controller {
                     sqlList.add("delete from  sa_accountbalance_freez where sa_accountbalance_freezid="+freezRow.getLong("sa_accountbalance_freezid"));
                 }
             }
+            sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "关闭", "行"+rowsdetails.toJsonArray("rowno")+"关闭成功")
+                    .getSQL());
         } else {
             if (freezRow == null) {
                 Rows accountbalanceRows = dbConnect.runSqlQuery("select * from sa_accountbalance where sys_enterpriseid="+row.getLong("sys_enterpriseid")+" and sa_accountclassid="+row.getLong("sa_accountclassid"));
@@ -1468,6 +1471,8 @@ public class OrderItems extends Controller {
                 BigDecimal amount = freezRow.getBigDecimal("amount");// 冻结金额
                 sqlList.add("update sa_accountbalance_freez set amount="+amount.add(returnamount)+" where sa_accountbalance_freezid="+freezRow.getLong("sa_accountbalance_freezid"));
             }
+            sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "反关闭", "行"+rowsdetails.toJsonArray("rowno")+"反关闭成功")
+                    .getSQL());
         }
         /******** 增加总仓可销售量 ********/
         if (isclose) {

+ 5 - 4
src/custom/restcontroller/webmanage/sale/sendrepair/sendrepair.java

@@ -377,11 +377,12 @@ public class sendrepair extends Controller {
             sqlList.add(
                     DataContrlLog.createLog(this, "sa_sendrepair", sa_sendrepairid, "反进仓", "送修单反进仓成功").getSQL());
         }
+        long st_stockbillid =0;
         if(row.getString("disposition").equals("返修") || row.getString("disposition").equals("翻新")){
             if(isinstock){
                 if(StringUtils.isBlank(row.getString("newitemno")) && StringUtils.isBlank(row.getString("newsku"))){
                     InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill");
-                    long st_stockbillid = createTableID("st_stockbill");
+                    st_stockbillid = createTableID("st_stockbill");
                     insertSQL.setUniqueid(st_stockbillid);
                     insertSQL.setSiteid(siteid);
                     insertSQL.setValue("billno", createBillCode("stockbilla"));
@@ -435,7 +436,7 @@ public class sendrepair extends Controller {
                     sqlList.addAll(updatefnewmachinecode(isinstock,row,stockRowsMap));
 
                     InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill");
-                    long st_stockbillid = createTableID("st_stockbill");
+                    st_stockbillid = createTableID("st_stockbill");
                     insertSQL.setUniqueid(st_stockbillid);
                     insertSQL.setSiteid(siteid);
                     insertSQL.setValue("billno", createBillCode("stockbilla"));
@@ -488,7 +489,7 @@ public class sendrepair extends Controller {
                     sqlList.addAll(updatefitemno(isinstock,row));
 
                     InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill");
-                    long st_stockbillid = createTableID("st_stockbill");
+                    st_stockbillid = createTableID("st_stockbill");
                     insertSQL.setUniqueid(st_stockbillid);
                     insertSQL.setSiteid(siteid);
                     insertSQL.setValue("billno", createBillCode("stockbilla"));
@@ -578,7 +579,7 @@ public class sendrepair extends Controller {
         System.err.println(sqlList.toString());
         dbConnect.runSqlUpdate(sqlList);
 
-        return getSucReturnObject().toString();
+        return getSucReturnObject().setData(st_stockbillid).toString();
     }
 
     @API(title = "审核", apiversion = R.ID2025102509532403.v1.class)