|
|
@@ -18,6 +18,7 @@ import restcontroller.R;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
|
|
|
public class stockbillitems extends Controller {
|
|
|
public stockbillitems(JSONObject content) throws YosException {
|
|
|
@@ -164,6 +165,14 @@ public class stockbillitems extends Controller {
|
|
|
if (!maxidRows.isEmpty()) {
|
|
|
maxid = maxidRows.get(0).getLong("rowno");
|
|
|
}
|
|
|
+ List<Long> list = new ArrayList<>();
|
|
|
+
|
|
|
+ for (Object object : iteminfos) {
|
|
|
+ list.add(((JSONObject)object).getLong("itemid"));
|
|
|
+ }
|
|
|
+
|
|
|
+ RowsMap itemRowsMap = SQLFactory.createQuerySQL(this, "plm_item", "*").setWhere("itemid", list).query().toRowsMap("itemid");
|
|
|
+
|
|
|
|
|
|
for (Object obj : iteminfos) {
|
|
|
JSONObject iteminfo = (JSONObject) obj;
|
|
|
@@ -192,7 +201,7 @@ public class stockbillitems extends Controller {
|
|
|
insertSQL.setValue("amount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price")));
|
|
|
insertSQL.setValue("untaxedprice", iteminfo.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP));
|
|
|
insertSQL.setValue("untaxedamount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP)));
|
|
|
- insertSQL.setValue("skucontrol", iteminfo.getBoolean("skucontrol"));
|
|
|
+ insertSQL.setValue("skucontrol", itemRowsMap.containsKey(iteminfo.getStringValue("itemid"))?itemRowsMap.get(iteminfo.getStringValue("itemid")).get(0).getBoolean("skucontrol"):iteminfo.getBoolean("skucontrol"));
|
|
|
i++;
|
|
|
sqlList.add(insertSQL.getSQL());
|
|
|
} else {
|
|
|
@@ -221,7 +230,7 @@ public class stockbillitems extends Controller {
|
|
|
updateSQL.setValue("untaxedamount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP)));
|
|
|
updateSQL.setValue("batchno", iteminfo.getString("batchno"));
|
|
|
updateSQL.setValue("stockid", iteminfo.getString("stockid"));
|
|
|
- updateSQL.setValue("skucontrol", iteminfo.getBoolean("skucontrol"));
|
|
|
+ updateSQL.setValue("skucontrol",itemRowsMap.containsKey(iteminfo.getStringValue("itemid"))?itemRowsMap.get(iteminfo.getStringValue("itemid")).get(0).getBoolean("skucontrol"):iteminfo.getBoolean("skucontrol"));
|
|
|
if(detailRowsMap.containsKey(iteminfo.getString("st_stockbill_itemsid"))){
|
|
|
if(iteminfo.getBigDecimal("discountrate").compareTo(detailRowsMap.get(iteminfo.getString("st_stockbill_itemsid")).get(0).getBigDecimal("discountrate"))!=0
|
|
|
|| iteminfo.getBigDecimal("defaultprice").compareTo(detailRowsMap.get(iteminfo.getString("st_stockbill_itemsid")).get(0).getBigDecimal("defaultprice"))!=0
|