|
|
@@ -307,7 +307,7 @@ public class aftersalesmag extends Controller {
|
|
|
|
|
|
@API(title = "审核核反审核", apiversion = R.ID20230104161103.v1.class)
|
|
|
@CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class},apiClass = {aftersalesmag.class,aftersalesmagItems.class})
|
|
|
- public String recheck() throws YosException {
|
|
|
+ public String check() throws YosException {
|
|
|
Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
|
|
|
boolean ischeck = content.getBooleanValue("ischeck");
|
|
|
// Rows rows = dbConnect
|
|
|
@@ -381,7 +381,7 @@ public class aftersalesmag extends Controller {
|
|
|
|
|
|
@API(title = "复核", apiversion = R.ID20230104160903.v1.class)
|
|
|
@CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class},apiClass = {aftersalesmag.class,aftersalesmagItems.class, cashbill.class})
|
|
|
- public String check() throws YosException {
|
|
|
+ public String recheck() throws YosException {
|
|
|
Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
|
|
|
Long sa_orderid = 0L;
|
|
|
Rows rows = dbConnect.runSqlQuery(
|
|
|
@@ -472,9 +472,9 @@ public class aftersalesmag extends Controller {
|
|
|
|
|
|
}
|
|
|
|
|
|
- @API(title = "关闭", apiversion = R.ID20230522090403.v1.class)
|
|
|
+ @API(title = "反复核", apiversion = R.ID20230523085403.v1.class)
|
|
|
@CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class},apiClass = {aftersalesmag.class,aftersalesmagItems.class, cashbill.class})
|
|
|
- public String close() throws YosException {
|
|
|
+ public String unrecheck() throws YosException {
|
|
|
Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
|
|
|
Long sa_orderid = 0L;
|
|
|
Rows rows = dbConnect.runSqlQuery(
|
|
|
@@ -485,20 +485,20 @@ public class aftersalesmag extends Controller {
|
|
|
} else {
|
|
|
sa_orderid = rows.get(0).getLong("sa_orderid");
|
|
|
if (!rows.get(0).getString("status").equals("复核")) {
|
|
|
- return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非复核状态,无法关闭")
|
|
|
+ return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非复核状态,无法反复核")
|
|
|
.toString();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
- if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
|
|
|
- ERPDocking erpDocking =new ERPDocking();
|
|
|
- String billno = rows.get(0).getString("billno");
|
|
|
- String result =erpDocking.recheckErpSareturn(billno,true,this,sa_aftersalesmagid);
|
|
|
- if(!result.equals("true")){
|
|
|
- return getErrReturnObject().setErrMsg(result).toString();
|
|
|
- }
|
|
|
- }
|
|
|
+// if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
|
|
|
+// ERPDocking erpDocking =new ERPDocking();
|
|
|
+// String billno = rows.get(0).getString("billno");
|
|
|
+// String result =erpDocking.recheckErpSareturn(billno,true,this,sa_aftersalesmagid);
|
|
|
+// if(!result.equals("true")){
|
|
|
+// return getErrReturnObject().setErrMsg(result).toString();
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
if(rows.get(0).getString("type").equals("退货单")) {
|
|
|
if (rows.get(0).getDouble("returnamount") > 0) {
|
|
|
@@ -509,52 +509,79 @@ public class aftersalesmag extends Controller {
|
|
|
cashbillEntity.setOwnerid(sa_aftersalesmagid);
|
|
|
cashbillEntity.setOwnertable("sa_aftersalesmag");
|
|
|
cashbillEntity.setRemarks("退货单号:" + rows.get(0).getString("billno") + ";订单号:" + rows.get(0).getString("sonum"));
|
|
|
- cashbillEntity.setSource("退货单关闭");
|
|
|
+ cashbillEntity.setSource("退货单反复核");
|
|
|
if(!Accountbalance.judgeBalance(this, rows.get(0).getLong("sys_enterpriseid"), rows.get(0).getLong("sa_accountclassid"),returnamount)){
|
|
|
- return getErrReturnObject().setErrMsg("该经销商账户余额不足,无法关闭")
|
|
|
+ return getErrReturnObject().setErrMsg("经销商账户余额不足无法反复核")
|
|
|
.toString();
|
|
|
}
|
|
|
- Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname,t2.skucontrol from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
|
|
|
- for (Row row : sa_aftersalesmag_itemsRows) {
|
|
|
- BigDecimal returnqty = row.getBigDecimal("qty");
|
|
|
- if(rows.get(0).getString("type").equals("退货单")){
|
|
|
- sqlList.add("update sa_orderitems set returnqty=returnqty-" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
|
|
|
- }
|
|
|
- }
|
|
|
+// Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname,t2.skucontrol from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
|
|
|
+// for (Row row : sa_aftersalesmag_itemsRows) {
|
|
|
+// BigDecimal returnqty = row.getBigDecimal("qty");
|
|
|
+// if(rows.get(0).getString("type").equals("退货单")){
|
|
|
+// sqlList.add("update sa_orderitems set returnqty=returnqty-" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
|
|
|
+// }
|
|
|
+// }
|
|
|
sqlList.addAll(Accountbalance.createCashbillPay(this, rows.get(0).getLong("sys_enterpriseid"), rows.get(0).getLong("sa_accountclassid"), cashbillEntity, true));
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
+ SQLFactory sqlFactoryupdate = new SQLFactory(this, "返退单反复核");
|
|
|
+ sqlFactoryupdate.addParameter("siteid", siteid);
|
|
|
+ sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
|
|
|
+ sqlFactoryupdate.addParameter("recheckby", username);
|
|
|
+ sqlList.add(sqlFactoryupdate.getSQL());
|
|
|
+ sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "反复核", "返退单反复核成功").getSQL());
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ String type=rows.get(0).getString("type");
|
|
|
+ Long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
|
|
|
+ if(type.equals("退货单")){
|
|
|
+ String message = "您的退货单"+rows.get(0).getString("billno")+"已反复核,,退款已从账户扣除,请及时查看!";
|
|
|
+ sendMsg(message, sa_aftersalesmagid, sys_enterpriseid);
|
|
|
+ }
|
|
|
|
|
|
-// /**
|
|
|
-// * * 核销对冲计算
|
|
|
-// */
|
|
|
-// {
|
|
|
-// HashMap<Long, Row> orderdetailmap = new HashMap<>();
|
|
|
-// HashMap<Long, BigDecimal> orderdetailchangeamount = new HashMap<>();
|
|
|
-// Rows rowsOrder = dbConnect.runSqlQuery("select * from sa_order t1 where t1.sa_orderid=" + sa_orderid);
|
|
|
-// Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.price,t1.returnqty,t1.amount,t1.sa_orderitemsid,t1.writeoffamount from sa_orderitems t1 where t1.sa_orderid=" + sa_orderid);
|
|
|
-// RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
|
|
|
-// Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
|
|
|
-// for (Row row : sa_aftersalesmag_itemsRows) {
|
|
|
-// Rows orderitemsRows = rowsMap.get(row.getString("sa_orderitemsid"));
|
|
|
-// BigDecimal price = orderitemsRows.get(0).getBigDecimal("price");
|
|
|
-// BigDecimal qty = row.getBigDecimal("qty");
|
|
|
-// BigDecimal returnamount_detail = qty.multiply(price);//退货金额
|
|
|
-// BigDecimal writeoffamount = orderitemsRows.get(0).getBigDecimal("writeoffamount");//订单行已核销金额
|
|
|
-// if (writeoffamount.compareTo(BigDecimal.ZERO) > 0 && (orderitemsRows.get(0).getBigDecimal("amount").subtract(returnamount_detail)).compareTo(writeoffamount) < 0) {
|
|
|
-// //如果已核销金额大于0 且调整后折后金额小于已核销金额,则需要将差价进行回冲
|
|
|
-// orderdetailmap.put(orderitemsRows.get(0).getLong("sa_orderitemsid"), orderitemsRows.get(0));
|
|
|
-// orderdetailchangeamount.put(orderitemsRows.get(0).getLong("sa_orderitemsid"), writeoffamount.subtract(orderitemsRows.get(0).getBigDecimal("amount").subtract(returnamount_detail)));
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * * 核销对冲
|
|
|
-// */
|
|
|
-// if (!orderdetailmap.isEmpty()) {
|
|
|
-// sqlList.addAll(new twriteoffbill_orderchange(rowsOrder.get(0), orderdetailmap, orderdetailchangeamount).hedging());
|
|
|
-// }
|
|
|
-// }
|
|
|
+
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "关闭", apiversion = R.ID20230522090403.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class},apiClass = {aftersalesmag.class,aftersalesmagItems.class, cashbill.class})
|
|
|
+ public String close() throws YosException {
|
|
|
+ Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
|
|
|
+ Long sa_orderid = 0L;
|
|
|
+ Rows rows = dbConnect.runSqlQuery(
|
|
|
+ "select t1.sa_aftersalesmagid,t1.status,t1.billno,ifnull(t1.sa_orderid,0) sa_orderid ,t1.returnamount,t1.payamount,t1.sys_enterpriseid,t1.sa_accountclassid,t2.sonum,t1.type from sa_aftersalesmag t1 left join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
|
|
|
+ + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
|
|
|
+ if (rows.isEmpty()) {
|
|
|
+ return getErrReturnObject().setErrMsg("该返退单不存在").toString();
|
|
|
+ } else {
|
|
|
+ sa_orderid = rows.get(0).getLong("sa_orderid");
|
|
|
+ if (!rows.get(0).getString("status").equals("审核")) {
|
|
|
+ return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非审核状态,无法关闭")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true")) {
|
|
|
+ ERPDocking erpDocking =new ERPDocking();
|
|
|
+ String billno = rows.get(0).getString("billno");
|
|
|
+ String result =erpDocking.recheckErpSareturn(billno,true,this,sa_aftersalesmagid);
|
|
|
+ if(!result.equals("true")){
|
|
|
+ return getErrReturnObject().setErrMsg(result).toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(rows.get(0).getString("type").equals("退货单")) {
|
|
|
+ Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname,t2.skucontrol from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
|
|
|
+ for (Row row : sa_aftersalesmag_itemsRows) {
|
|
|
+ BigDecimal returnqty = row.getBigDecimal("qty");
|
|
|
+ if(rows.get(0).getString("type").equals("退货单")){
|
|
|
+ sqlList.add("update sa_orderitems set returnqty=returnqty-" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
SQLFactory sqlFactoryupdate = new SQLFactory(this, "返退单关闭");
|
|
|
@@ -567,7 +594,7 @@ public class aftersalesmag extends Controller {
|
|
|
String type=rows.get(0).getString("type");
|
|
|
Long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
|
|
|
if(type.equals("退货单")){
|
|
|
- String message = "您的退货单"+rows.get(0).getString("billno")+"已关闭,退款已从您的账户扣除,请及时查收!";
|
|
|
+ String message = "您的退货单"+rows.get(0).getString("billno")+"已关闭,请及时查收!";
|
|
|
sendMsg(message, sa_aftersalesmagid, sys_enterpriseid);
|
|
|
}
|
|
|
|