|
|
@@ -77,7 +77,7 @@ public class aftersalesmagItems extends Controller {
|
|
|
Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
|
|
|
JSONArray iteminfos = content.getJSONArray("iteminfos");
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
- Rows rowscount = dbConnect.runSqlQuery("select status from sa_aftersalesmag where sa_aftersalesmagid=" + sa_aftersalesmagid);
|
|
|
+ Rows rowscount = dbConnect.runSqlQuery("select sa_orderid,status from sa_aftersalesmag where sa_aftersalesmagid=" + sa_aftersalesmagid);
|
|
|
|
|
|
if (!rowscount.isEmpty()) {
|
|
|
if (!rowscount.get(0).getString("status").equals("新建")) {
|
|
|
@@ -86,52 +86,21 @@ public class aftersalesmagItems extends Controller {
|
|
|
} else {
|
|
|
return getErrReturnObject().setErrMsg("该返退单不存在").toString();
|
|
|
}
|
|
|
-
|
|
|
+ RowsMap rowsMap = dbConnect.runSqlQuery("select sa_aftersalesmag_itemsid,qty,itemid from sa_aftersalesmag_items where sa_aftersalesmagid=" + sa_aftersalesmagid).toRowsMap("itemid");
|
|
|
int i = 0;
|
|
|
long[] sa_aftersalesmag_itemsid = createTableID("sa_aftersalesmag_items", iteminfos.size());
|
|
|
-
|
|
|
for (Object obj : iteminfos) {
|
|
|
JSONObject iteminfo = (JSONObject) obj;
|
|
|
- if (iteminfo.getLong("sa_aftersalesmag_itemsid") <= 0 || dbConnect
|
|
|
- .runSqlQuery("select sa_aftersalesmag_itemsid from sa_aftersalesmag_items where sa_aftersalesmag_itemsid="
|
|
|
- + iteminfo.getLong("sa_aftersalesmag_itemsid"))
|
|
|
- .isEmpty()) {
|
|
|
- Rows sa_aftersalesmag_itemsrows = dbConnect.runSqlQuery("select sa_aftersalesmag_itemsid,qty from sa_aftersalesmag_items where sa_aftersalesmagid="
|
|
|
- + sa_aftersalesmagid + " and sa_orderitemsid=" + iteminfo.getLong("sa_orderitemsid"));
|
|
|
- if (!sa_aftersalesmag_itemsrows.isEmpty() && sa_aftersalesmag_itemsrows.get(0).getLong("sa_aftersalesmag_itemsid") > 0) {
|
|
|
- SQLFactory saleFactory = new SQLFactory(this, "返退单明细更新");
|
|
|
- saleFactory.addParameter("sa_aftersalesmag_itemsid", sa_aftersalesmag_itemsrows.get(0).getLong("sa_aftersalesmag_itemsid"));
|
|
|
- // saleFactory.addParameter("itemno", iteminfo.getString("itemno"));
|
|
|
- saleFactory.addParameter("qty", iteminfo.getBigDecimal("qty"));
|
|
|
- saleFactory.addParameter("price", iteminfo.getBigDecimal("price"));
|
|
|
- saleFactory.addParameter("amount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price")));
|
|
|
- saleFactory.addParameter("reason", iteminfo.getStringValue("reason"));
|
|
|
- sqlList.add(saleFactory.getSQL());
|
|
|
- } else {
|
|
|
- SQLFactory saleFactory = new SQLFactory(this, "返退单明细新增");
|
|
|
- saleFactory.addParameter("siteid", siteid);
|
|
|
- saleFactory.addParameter("sa_aftersalesmag_itemsid", sa_aftersalesmag_itemsid[i]);
|
|
|
- saleFactory.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
|
|
|
- saleFactory.addParameter("sa_orderitemsid", iteminfo.getLong("sa_orderitemsid"));
|
|
|
- saleFactory.addParameter("itemid", iteminfo.getLong("itemid"));
|
|
|
- saleFactory.addParameter("qty", iteminfo.getBigDecimal("qty"));
|
|
|
- saleFactory.addParameter("price", iteminfo.getBigDecimal("price"));
|
|
|
- saleFactory.addParameter("amount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price")));
|
|
|
- saleFactory.addParameter("reason", iteminfo.getStringValue("reason"));
|
|
|
- sqlList.add(saleFactory.getSQL());
|
|
|
+ String itemid = iteminfo.getString("itemid");
|
|
|
+ if (rowscount.get(0).getLong("sa_orderid") == 0) {
|
|
|
+ insertOrUpdate(sa_aftersalesmagid, sqlList, i, sa_aftersalesmag_itemsid, iteminfo);
|
|
|
+ } else {
|
|
|
+ if (rowsMap.containsKey(itemid)) {
|
|
|
+ iteminfo.put("sa_aftersalesmag_itemsid",rowsMap.get(itemid).get(0).getLong("sa_aftersalesmag_itemsid"));
|
|
|
}
|
|
|
+ insertOrUpdate(sa_aftersalesmagid, sqlList, i, sa_aftersalesmag_itemsid, iteminfo);
|
|
|
i++;
|
|
|
- } else {
|
|
|
- SQLFactory saleFactory = new SQLFactory(this, "返退单明细更新");
|
|
|
- saleFactory.addParameter("sa_aftersalesmag_itemsid", iteminfo.getLong("sa_aftersalesmag_itemsid"));
|
|
|
- // saleFactory.addParameter("itemno", iteminfo.getString("itemno"));
|
|
|
- saleFactory.addParameter("qty", iteminfo.getBigDecimal("qty"));
|
|
|
- saleFactory.addParameter("price", iteminfo.getBigDecimal("price"));
|
|
|
- saleFactory.addParameter("amount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price")));
|
|
|
- saleFactory.addParameter("reason", iteminfo.getString("reason"));
|
|
|
- sqlList.add(saleFactory.getSQL());
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
dbConnect.runSqlUpdate(sqlList);
|
|
|
Rows sumamountrows = dbConnect.runSqlQuery("select sum(amount) sumamount from sa_aftersalesmag_items where sa_aftersalesmagid=" + sa_aftersalesmagid + " and siteid = '" + siteid + "'");
|
|
|
@@ -143,6 +112,33 @@ public class aftersalesmagItems extends Controller {
|
|
|
return queryaftersalesmagItemsList();
|
|
|
}
|
|
|
|
|
|
+ private void insertOrUpdate(Long sa_aftersalesmagid, ArrayList<String> sqlList, int i, long[] sa_aftersalesmag_itemsid, JSONObject iteminfo) throws YosException {
|
|
|
+ if (iteminfo.getLong("sa_aftersalesmag_itemsid") <= 0 || dbConnect.runSqlQuery("select sa_aftersalesmag_itemsid from sa_aftersalesmag_items where sa_aftersalesmag_itemsid="
|
|
|
+ + iteminfo.getLong("sa_aftersalesmag_itemsid"))
|
|
|
+ .isEmpty()) {
|
|
|
+ SQLFactory saleFactory = new SQLFactory(this, "返退单明细新增");
|
|
|
+ saleFactory.addParameter("siteid", siteid);
|
|
|
+ saleFactory.addParameter("sa_aftersalesmag_itemsid", sa_aftersalesmag_itemsid[i]);
|
|
|
+ saleFactory.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
|
|
|
+ saleFactory.addParameter("sa_orderitemsid", iteminfo.getLong("sa_orderitemsid"));
|
|
|
+ saleFactory.addParameter("itemid", iteminfo.getLong("itemid"));
|
|
|
+ saleFactory.addParameter("qty", iteminfo.getBigDecimal("qty"));
|
|
|
+ saleFactory.addParameter("price", iteminfo.getBigDecimal("price"));
|
|
|
+ saleFactory.addParameter("amount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price")));
|
|
|
+ saleFactory.addParameter("reason", iteminfo.getStringValue("reason"));
|
|
|
+ sqlList.add(saleFactory.getSQL());
|
|
|
+ }else {
|
|
|
+ SQLFactory saleFactory = new SQLFactory(this, "返退单明细更新");
|
|
|
+ saleFactory.addParameter("sa_aftersalesmag_itemsid", iteminfo.getLong("sa_aftersalesmag_itemsid"));
|
|
|
+ // saleFactory.addParameter("itemno", iteminfo.getString("itemno"));
|
|
|
+ saleFactory.addParameter("qty", iteminfo.getBigDecimal("qty"));
|
|
|
+ saleFactory.addParameter("price", iteminfo.getBigDecimal("price"));
|
|
|
+ saleFactory.addParameter("amount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price")));
|
|
|
+ saleFactory.addParameter("reason", iteminfo.getString("reason"));
|
|
|
+ sqlList.add(saleFactory.getSQL());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@API(title = "返退单商品明细列表", apiversion = R.ID20230105111103.v1.class)
|
|
|
@CACHEING
|
|
|
public String queryaftersalesmagItemsList() throws YosException {
|