Przeglądaj źródła

保修卡作废及bug修复

hu 5 miesięcy temu
rodzic
commit
cc686e6dba

+ 5 - 0
src/custom/restcontroller/R.java

@@ -6811,6 +6811,11 @@ public class R {
         public static class v1 {
         public static class v1 {
         }
         }
     }
     }
+
+    public static class ID2025103114461303 {
+        public static class v1 {
+        }
+    }
 }
 }
 
 
 
 

+ 1 - 1
src/custom/restcontroller/webmanage/sale/sendplan/sendplandetail.java

@@ -291,7 +291,7 @@ public class sendplandetail extends Controller {
         pageSorting = "t2.sa_orderid desc";
         pageSorting = "t2.sa_orderid desc";
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail", "sa_sendplanid","sa_sendplandetailid", "colorflag", "outplace", "sendqty", "willoutqty", "willinqty", "canuseqty");
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail", "sa_sendplanid","sa_sendplandetailid", "colorflag", "outplace", "sendqty", "willoutqty", "willinqty", "canuseqty");
         querySQL.setTableAlias("t1");
         querySQL.setTableAlias("t1");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.siteid = t2.siteid and t1.sa_orderid = t2.sa_orderid", "sonum", "checkdate", "sys_enterpriseid", "sa_orderid","rec_contactsid","delivery");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.siteid = t2.siteid and t1.sa_orderid = t2.sa_orderid", "sonum", "checkdate", "sys_enterpriseid", "sa_orderid","rec_contactsid","delivery","invoicename","invoiceaddress");
         querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t3", "t3.siteid = t1.siteid and t3.sa_orderitemsid = t1.sa_orderitemsid", "rowno", "remarks", "sa_orderitemsid");
         querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t3", "t3.siteid = t1.siteid and t3.sa_orderitemsid = t1.sa_orderitemsid", "rowno", "remarks", "sa_orderitemsid");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.siteid = t1.siteid and t4.sa_agentsid = t1.sa_agentsid", "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.siteid = t1.siteid and t4.sa_agentsid = t1.sa_agentsid", "agentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid", "enterprisename", "abbreviation");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid", "enterprisename", "abbreviation");

+ 7 - 0
src/custom/restcontroller/webmanage/sale/stockbill/stockbill.java

@@ -236,12 +236,19 @@ public class stockbill extends Controller {
         Rows rowsdetail = dbConnect.runSqlQuery("select amount,qty from st_stockbill_items where st_stockbillid=" + st_stockbillid);
         Rows rowsdetail = dbConnect.runSqlQuery("select amount,qty from st_stockbill_items where st_stockbillid=" + st_stockbillid);
         row.put("receivableamount", rowsdetail.sum("amount"));
         row.put("receivableamount", rowsdetail.sum("amount"));
         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=" + row.getLong("sys_enterpriseid"));
         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=" + row.getLong("sys_enterpriseid"));
+        Rows stockbillrows_hong = dbConnect.runSqlQuery("select billno from st_stockbill t1 where t1.rb=0 and t1.sourceobject='st_stockbill' and t1.sourceid=" + st_stockbillid);
         if(accountbalancerows.isNotEmpty()){
         if(accountbalancerows.isNotEmpty()){
             row.put("discountamount_xjzh", accountbalancerows.get(0).getBigDecimal("discountamount"));
             row.put("discountamount_xjzh", accountbalancerows.get(0).getBigDecimal("discountamount"));
         }else{
         }else{
             row.put("discountamount_xjzh", 0);
             row.put("discountamount_xjzh", 0);
         }
         }
+        if(stockbillrows_hong.isNotEmpty()){
+            row.put("billno_hong", stockbillrows_hong.get(0).getString("billno"));
+        }else{
+            row.put("billno_hong", "");
+        }
         row.put("qty",rowsdetail.sum("qty"));
         row.put("qty",rowsdetail.sum("qty"));
+
         return getSucReturnObject().setData(row).toString();
         return getSucReturnObject().setData(row).toString();
 
 
     }
     }

+ 39 - 2
src/custom/restcontroller/webmanage/sale/warrantycard/warrantycard.java

@@ -1,5 +1,6 @@
 package restcontroller.webmanage.sale.warrantycard;
 package restcontroller.webmanage.sale.warrantycard;
 
 
+import beans.datacontrllog.DataContrlLog;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
 import common.Controller;
 import common.Controller;
 import common.YosException;
 import common.YosException;
@@ -7,11 +8,13 @@ import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
 import common.annotation.CACHEING_CLEAN;
 import common.data.*;
 import common.data.*;
+import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 import restcontroller.R;
 import restcontroller.webmanage.sale.salearea.salearea;
 import restcontroller.webmanage.sale.salearea.salearea;
 
 
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 
 
 
 
 @API(title = "保修卡")
 @API(title = "保修卡")
@@ -119,12 +122,16 @@ public class warrantycard extends Controller {
     public String updatedate() throws YosException {
     public String updatedate() throws YosException {
         long sa_warrantycardid = content.getLong("sa_warrantycardid");
         long sa_warrantycardid = content.getLong("sa_warrantycardid");
         String begindate = content.getString("begindate");
         String begindate = content.getString("begindate");
-        Rows rows = dbConnect.runSqlQuery("select itemid from sa_warrantycard where siteid='" + siteid
+        String enddate = content.getStringValue("enddate");
+        Rows rows = dbConnect.runSqlQuery("select itemid,begdate,enddate from sa_warrantycard where siteid='" + siteid
                 + "' and sa_warrantycardid='" + sa_warrantycardid + "'");
                 + "' and sa_warrantycardid='" + sa_warrantycardid + "'");
 
 
         if (rows.isEmpty()) {
         if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("保修卡不存在").toString();
             return getErrReturnObject().setErrMsg("保修卡不存在").toString();
         }
         }
+        if (getDate_Str(content.getDate("begindate")).compareTo(getDate_Str(rows.get(0).getDate("begdate")))>0) {
+            return getErrReturnObject().setErrMsg("开始日期不能晚于原日期").toString();
+        }
         Rows itemRows = dbConnect.runSqlQuery("select * from plm_item where siteid='" + siteid + "' and itemid=" + rows.get(0).getLong("itemid"));
         Rows itemRows = dbConnect.runSqlQuery("select * from plm_item where siteid='" + siteid + "' and itemid=" + rows.get(0).getLong("itemid"));
         if (itemRows.isEmpty()) {
         if (itemRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("该保修卡对应商品不存在").toString();
             return getErrReturnObject().setErrMsg("该保修卡对应商品不存在").toString();
@@ -142,7 +149,7 @@ public class warrantycard extends Controller {
         updateSQL.setUniqueid(sa_warrantycardid);
         updateSQL.setUniqueid(sa_warrantycardid);
         updateSQL.setSiteid(siteid);
         updateSQL.setSiteid(siteid);
         updateSQL.setValue("begdate", begindate);
         updateSQL.setValue("begdate", begindate);
-        updateSQL.setValue("enddate", newDate.toString());
+        updateSQL.setValue("enddate", StringUtils.isBlank(enddate)?newDate.toString():enddate);
         updateSQL.setValue("changeuserid", userid);
         updateSQL.setValue("changeuserid", userid);
         updateSQL.setValue("changeby", username);
         updateSQL.setValue("changeby", username);
         updateSQL.setDateValue("changedate");
         updateSQL.setDateValue("changedate");
@@ -151,5 +158,35 @@ public class warrantycard extends Controller {
         return getSucReturnObject().toString();
         return getSucReturnObject().toString();
     }
     }
 
 
+    @API(title = "作废保修卡", apiversion = R.ID2025103114461303.v1.class)
+    @CACHEING_CLEAN(apiClass = {warrantycard.class})
+    public String voidWarrantycard() throws YosException {
+        long sa_warrantycardid = content.getLong("sa_warrantycardid");
+        String voidreason =content.getStringValue("voidreason");
+        ArrayList<String> sqlList = new ArrayList<>();
+        Rows rows = dbConnect.runSqlQuery("select isvoid from sa_warrantycard where siteid='" + siteid
+                + "' and sa_warrantycardid='" + sa_warrantycardid + "'");
+        if (rows.isEmpty()) {
+            return getErrReturnObject().setErrMsg("保修卡不存在").toString();
+        }
+        if (rows.get(0).getBoolean("isvoid")) {
+            return getErrReturnObject().setErrMsg("保修卡已作废,无法再次作废").toString();
+        }
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_warrantycard");
+        updateSQL.setUniqueid(sa_warrantycardid);
+        updateSQL.setSiteid(siteid);
+        updateSQL.setValue("isvoid", true);
+        updateSQL.setValue("voidreason", voidreason);
+        updateSQL.setValue("changeuserid", userid);
+        updateSQL.setValue("changeby", username);
+        updateSQL.setDateValue("changedate");
+        updateSQL.setDateValue("voiddate");
+        sqlList.add(updateSQL.getSQL());
+        sqlList.add(DataContrlLog.createLog(this, "sa_warrantycard", sa_warrantycardid, "作废", "保修卡作废成功")
+                .getSQL());
+        dbConnect.runSqlUpdate(sqlList);
+        return getSucReturnObject().toString();
+    }
+
 
 
 }
 }

+ 3 - 0
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -420,6 +420,9 @@ public class workorder extends Controller {
             if (whereObject.containsKey("sys_enterpriseid") && !"".equals(whereObject.getString("sys_enterpriseid"))) {
             if (whereObject.containsKey("sys_enterpriseid") && !"".equals(whereObject.getString("sys_enterpriseid"))) {
                 where.append(" and t1.sys_enterpriseid ='").append(whereObject.getString("sys_enterpriseid")).append("'");
                 where.append(" and t1.sys_enterpriseid ='").append(whereObject.getString("sys_enterpriseid")).append("'");
             }
             }
+            if (whereObject.containsKey("sys_enterpriseid_service") && !"".equals(whereObject.getString("sys_enterpriseid_service"))) {
+                where.append(" and t2.sys_enterpriseid_service ='").append(whereObject.getString("sys_enterpriseid_service")).append("'");
+            }
             if (whereObject.containsKey("finishdate") && !"".equals(whereObject.getString("finishdate"))) {
             if (whereObject.containsKey("finishdate") && !"".equals(whereObject.getString("finishdate"))) {
                 where.append(" and t1.finishdate >='").append(whereObject.getString("finishdate")).append("'");
                 where.append(" and t1.finishdate >='").append(whereObject.getString("finishdate")).append("'");
                 where.append(" and t1.finishdate <='").append(getDate_Str(whereObject.getDate("finishdate"), 1)).append("'");
                 where.append(" and t1.finishdate <='").append(getDate_Str(whereObject.getDate("finishdate"), 1)).append("'");