|
|
@@ -249,7 +249,38 @@ public class OrderItems extends Controller {
|
|
|
if(type.equals("配件订单")){
|
|
|
dbConnect.runSqlUpdate("UPDATE sa_order o JOIN (SELECT sa_orderid,GROUP_CONCAT(DISTINCT delivery SEPARATOR '+') AS delivery FROM sa_orderitems where sa_orderid="+sa_orderid+" GROUP BY sa_orderid) od ON o.sa_orderid = od.sa_orderid SET o.delivery = od.delivery ");
|
|
|
}
|
|
|
-
|
|
|
+ sqlList=new ArrayList<>();
|
|
|
+ if (type.equals("配件订单")) {
|
|
|
+ Rows rowsdetails = dbConnect.runSqlQuery("select t1.price,t1.amount,t1.sa_orderitemsid,t1.itemid,ifnull(t2.iswriteoff,0) iswriteoff,t3.begdate,t3.enddate from sa_orderitems t1 " +
|
|
|
+ "left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " +
|
|
|
+ "left join sa_warrantycard t3 on t1.cardno=t3.cardno and t1.siteid=t3.siteid and t3.isvoid=0 and t3.deleted=0 where t1.sa_orderid=" + sa_orderid);
|
|
|
+ for (Row rowsdetail : rowsdetails) {
|
|
|
+ String billingstatus = "";
|
|
|
+ BigDecimal price = rowsdetail.getBigDecimal("price");
|
|
|
+ BigDecimal amount = rowsdetail.getBigDecimal("amount");
|
|
|
+ String begdate = rowsdetail.getString("begdate");
|
|
|
+ String enddate = rowsdetail.getString("enddate");
|
|
|
+ if (StringUtils.isBlank(begdate) || StringUtils.isBlank(enddate)) {
|
|
|
+ billingstatus = "保外收费";
|
|
|
+ } else {
|
|
|
+ Date date = new Date();
|
|
|
+ if (date.before(rowsdetail.getDate("enddate"))) {
|
|
|
+ if (rowsdetail.getBoolean("iswriteoff")) {
|
|
|
+ billingstatus = "保内收费";
|
|
|
+ } else {
|
|
|
+ billingstatus = "保内免费";
|
|
|
+ price = BigDecimal.ZERO;
|
|
|
+ amount = BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!billingstatus.equals("保内收费")){
|
|
|
+ sqlList.add("update sa_orderitems set canoffqty=0 where sa_orderitemsid=" + rowsdetail.getLong("sa_orderitemsid"));
|
|
|
+ }
|
|
|
+ sqlList.add("update sa_orderitems set price=" + price + ",amount=" + amount + ",billingstatus='" + billingstatus + "' where sa_orderitemsid=" + rowsdetail.getLong("sa_orderitemsid"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
|
|
|
|
@@ -259,17 +290,23 @@ public class OrderItems extends Controller {
|
|
|
Long sa_orderid = content.getLong("sa_orderid");
|
|
|
Long sa_orderitemsid = content.getLong("sa_orderitemsid");
|
|
|
BigDecimal canoffqty = content.getBigDecimal("canoffqty");
|
|
|
- Rows orderRows = dbConnect.runSqlQuery("SELECT status,sonum from sa_order WHERE sa_orderid=" + sa_orderid + " and siteid='" + siteid + "'");
|
|
|
- Rows orderitemsRows = dbConnect.runSqlQuery("SELECT sa_orderitemsid,qty from sa_orderitems WHERE sa_orderid=" + sa_orderid + " and sa_orderitemsid='" + sa_orderitemsid + "'");
|
|
|
+ Rows orderRows = dbConnect.runSqlQuery("SELECT status,sonum,type from sa_order WHERE sa_orderid=" + sa_orderid + " and siteid='" + siteid + "'");
|
|
|
+ Rows orderitemsRows = dbConnect.runSqlQuery("SELECT sa_orderitemsid,qty,billingstatus,rowno from sa_orderitems WHERE sa_orderid=" + sa_orderid + " and sa_orderitemsid='" + sa_orderitemsid + "'");
|
|
|
if(orderRows.isEmpty()){
|
|
|
- return getErrReturnObject().setErrMsg("订单不存在").toString();
|
|
|
+ return getErrReturnObject().setErrMsg("配件订单不存在").toString();
|
|
|
+ }
|
|
|
+ if(!orderRows.get(0).getString("type").equals("配件订单")){
|
|
|
+ return getErrReturnObject().setErrMsg("非配件订单无法更新可核销数").toString();
|
|
|
}
|
|
|
if(orderRows.get(0).getString("status").equals("审核")){
|
|
|
- return getErrReturnObject().setErrMsg("订单【"+orderRows.get(0).getString("sonum")+"】已审核,无法更新可核销数").toString();
|
|
|
+ return getErrReturnObject().setErrMsg("配件订单【"+orderRows.get(0).getString("sonum")+"】已审核,无法更新可核销数").toString();
|
|
|
}
|
|
|
if(orderitemsRows.isEmpty()){
|
|
|
return getErrReturnObject().setErrMsg("订单明细不存在").toString();
|
|
|
}
|
|
|
+ if(!orderitemsRows.get(0).getString("billingstatus").equals("保内收费")){
|
|
|
+ return getErrReturnObject().setErrMsg("行号【"+orderitemsRows.get(0).getString("rowno")+"】为非保内收费配件,无法更新可核销数").toString();
|
|
|
+ }
|
|
|
if(orderitemsRows.get(0).getBigDecimal("qty").compareTo(canoffqty)<0){
|
|
|
return getErrReturnObject().setErrMsg("可核销数不可大于商品明细行数量").toString();
|
|
|
}
|