|
|
@@ -61,6 +61,12 @@ public class tpartreimbursement extends Controller {
|
|
|
insertSQL.setValue("changeby", username);
|
|
|
insertSQL.setDateValue("changedate");
|
|
|
insertSQL.setValue("status", "新建");
|
|
|
+ //制单方 1表示工厂方,0表示客户方
|
|
|
+ if (usertype == 21 || usertype == 22) {
|
|
|
+ insertSQL.setValue("createflag", 0);
|
|
|
+ } else {
|
|
|
+ insertSQL.setValue("createflag", 1);
|
|
|
+ }
|
|
|
sqlList.add(insertSQL.getSQL());
|
|
|
|
|
|
sqlList.add(DataContrlLog.createLog(this, "sa_tpartreimbursement", sa_tpartreimbursementid, "新增", "配件核销单新增成功").getSQL());
|
|
|
@@ -107,17 +113,17 @@ public class tpartreimbursement extends Controller {
|
|
|
querySQL.setWhere("t1.sa_tpartreimbursementid", sa_tpartreimbursementid);
|
|
|
Rows rows = querySQL.query();
|
|
|
|
|
|
- QuerySQL querySQLdetail = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementid", "sa_tpartreimbursementdetailid");
|
|
|
- querySQLdetail.setTableAlias("t1");
|
|
|
- querySQLdetail.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid", "*");
|
|
|
- querySQLdetail.setWhere("t1.siteid", siteid);
|
|
|
- querySQLdetail.setWhere("t1.sa_tpartreimbursementid", rows.toArrayList("sa_tpartreimbursementid"));
|
|
|
- Rows rowsdetail = querySQL.query();
|
|
|
- RowsMap rowsMap = rowsdetail.toRowsMap("sa_tpartreimbursementid");
|
|
|
- for (Row row : rows) {
|
|
|
- row.put("totalamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).sum("amount"));
|
|
|
- row.put("offamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).toRowsMap("offstatus").get("已核销").sum("amount"));
|
|
|
- }
|
|
|
+// QuerySQL querySQLdetail = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementid", "sa_tpartreimbursementdetailid","qty");
|
|
|
+// querySQLdetail.setTableAlias("t1");
|
|
|
+// querySQLdetail.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid", "price");
|
|
|
+// querySQLdetail.setWhere("t1.siteid", siteid);
|
|
|
+// querySQLdetail.setWhere("t1.sa_tpartreimbursementid", rows.toArrayList("sa_tpartreimbursementid"));
|
|
|
+// Rows rowsdetail = querySQL.query();
|
|
|
+// RowsMap rowsMap = rowsdetail.toRowsMap("sa_tpartreimbursementid");
|
|
|
+// for (Row row : rows) {
|
|
|
+// row.put("totalamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).sum("amount"));
|
|
|
+// row.put("offamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).toRowsMap("offstatus").get("已核销").sum("amount"));
|
|
|
+// }
|
|
|
|
|
|
Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
|
|
|
return getSucReturnObject().setData(row).toString();
|
|
|
@@ -159,17 +165,17 @@ public class tpartreimbursement extends Controller {
|
|
|
querySQL.setPage(pageSize, pageNumber);
|
|
|
Rows rows = querySQL.query();
|
|
|
|
|
|
- QuerySQL querySQLdetail = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementid", "sa_tpartreimbursementdetailid");
|
|
|
- querySQLdetail.setTableAlias("t1");
|
|
|
- querySQLdetail.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid", "*");
|
|
|
- querySQLdetail.setWhere("t1.siteid", siteid);
|
|
|
- querySQLdetail.setWhere("t1.sa_tpartreimbursementid", rows.toArrayList("sa_tpartreimbursementid"));
|
|
|
- Rows rowsdetail = querySQL.query();
|
|
|
- RowsMap rowsMap = rowsdetail.toRowsMap("sa_tpartreimbursementid");
|
|
|
- for (Row row : rows) {
|
|
|
- row.put("totalamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).sum("amount"));
|
|
|
- row.put("offamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).toRowsMap("offstatus").get("已核销").sum("amount"));
|
|
|
- }
|
|
|
+// QuerySQL querySQLdetail = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementid", "sa_tpartreimbursementdetailid");
|
|
|
+// querySQLdetail.setTableAlias("t1");
|
|
|
+// querySQLdetail.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid", "*");
|
|
|
+// querySQLdetail.setWhere("t1.siteid", siteid);
|
|
|
+// querySQLdetail.setWhere("t1.sa_tpartreimbursementid", rows.toArrayList("sa_tpartreimbursementid"));
|
|
|
+// Rows rowsdetail = querySQL.query();
|
|
|
+// RowsMap rowsMap = rowsdetail.toRowsMap("sa_tpartreimbursementid");
|
|
|
+// for (Row row : rows) {
|
|
|
+// row.put("totalamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).sum("amount"));
|
|
|
+// row.put("offamount", rowsMap.get(row.getString("sa_tpartreimbursementid")).toRowsMap("offstatus").get("已核销").sum("amount"));
|
|
|
+// }
|
|
|
return getSucReturnObject().setData(rows).toString();
|
|
|
}
|
|
|
|
|
|
@@ -204,7 +210,7 @@ public class tpartreimbursement extends Controller {
|
|
|
Long sa_tpartreimbursementid = content.getLong("sa_tpartreimbursementid");
|
|
|
boolean issubmit = content.getBooleanValue("issubmit");
|
|
|
|
|
|
- Rows rows = dbConnect.runSqlQuery("select t1.billno,t1.status from sa_tpartreimbursement t1 where t1.sa_tpartreimbursementid ='"
|
|
|
+ Rows rows = dbConnect.runSqlQuery("select t1.billno,t1.status,createflag from sa_tpartreimbursement t1 where t1.sa_tpartreimbursementid ='"
|
|
|
+ sa_tpartreimbursementid + "' and t1.siteid='" + siteid + "'");
|
|
|
|
|
|
for (Row row : rows) {
|
|
|
@@ -223,7 +229,28 @@ public class tpartreimbursement extends Controller {
|
|
|
}
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
if (issubmit) {
|
|
|
-
|
|
|
+ Rows rowsdetail = dbConnect.runSqlQuery("select t1.sa_orderitemsid from sa_tpartreimbursement t1 where t1.sa_tpartreimbursementid ='"
|
|
|
+ + sa_tpartreimbursementid + "' and t1.siteid='" + siteid + "'");
|
|
|
+
|
|
|
+ QuerySQL tpartreimbursementdetailQuery = SQLFactory.createQuerySQL(dbConnect, "sa_tpartreimbursementdetail", "sa_orderitemsid");
|
|
|
+ tpartreimbursementdetailQuery.addQueryFields("sumqty", "sum(qty)");
|
|
|
+ tpartreimbursementdetailQuery.setWhere("sa_orderitemsid", rowsdetail.toArrayList("sa_orderitemsid"));
|
|
|
+ tpartreimbursementdetailQuery.addGroupBy("sa_orderitemsid");
|
|
|
+
|
|
|
+
|
|
|
+ QuerySQL orderitemsQuery = SQLFactory.createQuerySQL(dbConnect, "sa_orderitems", "sa_orderitemsid");
|
|
|
+ orderitemsQuery.setTableAlias("t1");
|
|
|
+ orderitemsQuery.addJoinTable(JOINTYPE.inner,tpartreimbursementdetailQuery,"t2","t1.sa_orderitemsid=t2.sa_orderitemsid");
|
|
|
+ orderitemsQuery.setWhere("t1.sa_orderitemsid", rowsdetail.toArrayList("sa_orderitemsid"));
|
|
|
+ orderitemsQuery.addQueryFields("qty", "t1.tobeoffqty-ifnull(t2.sumqty,0)");
|
|
|
+ Rows orderitemsrows = orderitemsQuery.query();
|
|
|
+ if(!rows.get(0).getBoolean("createflag")){
|
|
|
+ for (Row row :orderitemsrows) {
|
|
|
+ if(row.getBigDecimal("qty").compareTo(BigDecimal.ZERO)<0){
|
|
|
+ return getErrReturnObject().setErrMsg("该配件核销单数量不符合要求,请检查").toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
sqlList.add(
|
|
|
DataContrlLog.createLog(this, "sa_tpartreimbursement", sa_tpartreimbursementid, "提交", "配件核销单提交成功").getSQL());
|
|
|
} else {
|
|
|
@@ -295,9 +322,9 @@ public class tpartreimbursement extends Controller {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementdetailid", "remarks", "sa_orderitemsid", "sa_tpartreimbursementid");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementdetailid", "remarks","qty", "sa_orderitemsid", "sa_tpartreimbursementid");
|
|
|
querySQL.setTableAlias("t1");
|
|
|
- querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid", "qty", "price", "amount", "rowno", "cardno", "offstatus", "billingstatus");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid","price", "amount", "rowno", "cardno", "offstatus", "billingstatus");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t2.itemid = t3.itemid AND t2.siteid = t3.siteid", "itemno", "itemname", "spec", "model");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t4", "t2.sa_orderid = t4.sa_orderid AND t2.siteid = t4.siteid", "sonum");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_warrantycard", "t5", "t2.cardno = t5.cardno AND t2.siteid = t5.siteid", "name", "phonenumber");
|
|
|
@@ -306,7 +333,7 @@ public class tpartreimbursement extends Controller {
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t8", "t8.sys_enterpriseid = t6.sys_enterpriseid AND t8.siteid = t6.siteid", "agentnum");
|
|
|
|
|
|
querySQL.setSiteid(siteid);
|
|
|
- querySQL.setWhere("t6.status='审核' and t2.offstatus='待核销' and t6.sys_enterpriseid=" + sys_enterpriseid);
|
|
|
+ querySQL.setWhere("t6.status='审核' and t1.isverified=0 and t6.sys_enterpriseid=" + sys_enterpriseid);
|
|
|
querySQL.setWhere(where.toString());
|
|
|
querySQL.setPage(pageSize, pageNumber);
|
|
|
Rows rows = querySQL.query();
|
|
|
@@ -323,12 +350,12 @@ public class tpartreimbursement extends Controller {
|
|
|
"inner join sa_order t3 on t2.sa_orderid=t3.sa_orderid and t2.siteid=t3.siteid" +
|
|
|
" where t1.siteid='" + siteid + "' and t1.status='审核' and t1.type='销售出库' and t3.type='配件订单' and t3.sys_enterpriseid='" + sys_enterpriseid + "' and DATE_FORMAT( t1.checkdate, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
|
|
|
|
|
|
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems", "amount");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill");
|
|
|
querySQL.setTableAlias("t1");
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t2.sa_orderid = t1.sa_orderid AND t2.siteid = t1.siteid");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "st_stockbill_items", "t2", "t2.st_stockbillid = t1.st_stockbillid AND t2.siteid = t1.siteid","amount");
|
|
|
querySQL.setSiteid(siteid);
|
|
|
- querySQL.setWhere("t2.sys_enterpriseid", sys_enterpriseid);
|
|
|
- querySQL.setWhere("t1.offstatus='已核销' and DATE_FORMAT( t1.offdate, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
|
|
|
+ querySQL.setWhere("t1.sys_enterpriseid", sys_enterpriseid);
|
|
|
+ querySQL.setWhere("t1.sourceobject='tpartreimbursement' and t1.status='审核' and t1.type='销售出库' and DATE_FORMAT(t1.checkdate, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
|
|
|
Rows rows = querySQL.query();
|
|
|
|
|
|
|
|
|
@@ -338,11 +365,13 @@ public class tpartreimbursement extends Controller {
|
|
|
@API(title = "查询审核需核销金额", apiversion = R.ID2025081815213903.v1.class)
|
|
|
@CACHEING
|
|
|
public String queryCheckAmount() throws YosException {
|
|
|
- JSONArray sa_orderitemsids = content.getJSONArray("sa_orderitemsids");
|
|
|
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems", "amount");
|
|
|
+ JSONArray sa_tpartreimbursementdetailids = content.getJSONArray("sa_tpartreimbursementdetailids");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "qty");
|
|
|
querySQL.setTableAlias("t1");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid","price");
|
|
|
querySQL.setSiteid(siteid);
|
|
|
- querySQL.setWhere("t1.sa_orderitemsid", sa_orderitemsids);
|
|
|
+ querySQL.addQueryFields("amount","t1.qty*t2.price");
|
|
|
+ querySQL.setWhere("t1.sa_tpartreimbursementdetailid", sa_tpartreimbursementdetailids);
|
|
|
Rows rows = querySQL.query();
|
|
|
return getSucReturnObject().setData(rows.sum("amount")).toString();
|
|
|
}
|
|
|
@@ -353,19 +382,34 @@ public class tpartreimbursement extends Controller {
|
|
|
public String hexiao() throws YosException {
|
|
|
ArrayList<String> sqllist = new ArrayList<>();
|
|
|
long sys_enterpriseid = content.getLong("sys_enterpriseid");
|
|
|
- JSONArray sa_orderitemsids = content.getJSONArray("sa_orderitemsids");
|
|
|
+ JSONArray sa_tpartreimbursementdetailids = content.getJSONArray("sa_tpartreimbursementdetailids");
|
|
|
JSONArray iteminfos = content.getJSONArray("iteminfos");
|
|
|
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems", "offstatus", "sa_orderitemsid", "amount");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_tpartreimbursementdetailid","isverified","qty","sa_orderitemsid");
|
|
|
querySQL.setTableAlias("t1");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid");
|
|
|
querySQL.setSiteid(siteid);
|
|
|
- querySQL.setWhere("t1.sa_orderitemsid", sa_orderitemsids);
|
|
|
+ querySQL.setWhere("t1.sa_tpartreimbursementdetailid", sa_tpartreimbursementdetailids);
|
|
|
Rows rows = querySQL.query();
|
|
|
+
|
|
|
+ QuerySQL querySQLgroup = SQLFactory.createQuerySQL(this, "sa_tpartreimbursementdetail", "sa_orderitemsid");
|
|
|
+ querySQLgroup.setTableAlias("t1");
|
|
|
+ querySQLgroup.addJoinTable(JOINTYPE.left, "sa_orderitems", "t2", "t1.sa_orderitemsid = t2.sa_orderitemsid AND t1.siteid = t2.siteid");
|
|
|
+ querySQLgroup.setSiteid(siteid);
|
|
|
+ querySQLgroup.addQueryFields("sumqty", "sum(t1.qty)");
|
|
|
+ querySQLgroup.setWhere("t1.sa_tpartreimbursementdetailid", sa_tpartreimbursementdetailids);
|
|
|
+ querySQLgroup.addGroupBy("sa_orderitemsid");
|
|
|
+ Rows rowsgroup = querySQLgroup.query();
|
|
|
+
|
|
|
for (Row row : rows) {
|
|
|
- if (!row.getString("offstatus").equals("待核销")) {
|
|
|
+ if (row.getBoolean("isverified")) {
|
|
|
return getErrReturnObject().setErrMsg("存在记录已核销,请检查").toString();
|
|
|
}
|
|
|
- sqllist.add("update sa_orderitems set offstatus='已核销',offdate='" + getDate_Str() + "' where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
|
|
|
+ sqllist.add("update sa_tpartreimbursementdetail set isverified=1 where sa_tpartreimbursementdetailid=" + row.getLong("sa_tpartreimbursementdetailid"));
|
|
|
+ }
|
|
|
+ for (Row row : rowsgroup) {
|
|
|
+ sqllist.add("update sa_orderitems set verifiedqty=ifnull(verifiedqty,0)+"+row.getBigDecimal("sumqty")+" where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
|
|
|
}
|
|
|
+
|
|
|
String tableName = "st_stockbill";
|
|
|
Rows stocks = dbConnect.runSqlQuery("select stockid from st_stock where stockname='配件仓库' and siteid='" + siteid + "'");
|
|
|
Rows department = dbConnect.runSqlQuery("select departmentid from sys_department where depname='售后部' and siteid='" + siteid + "'");
|