|
|
@@ -126,14 +126,17 @@ public class DoWorkThread extends Thread {
|
|
|
SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT_LOT, warehouseProductLotBo);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//更新 产品信息
|
|
|
//BO_EU_DNIVT_PRODUCT 上面的 库存平均单元成本 UNIT_COST_AVG
|
|
|
+ //入库时,需要计算库存成本(客户虚拟仓不需要)
|
|
|
BO productBo = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_PRODUCT).addQuery("ID=", warehouseProductLotBo.getString("PRODUCT_ID")).detail();
|
|
|
- double UNIT_COST_AVG = Double.parseDouble(productBo.getString("UNIT_COST_AVG"));
|
|
|
- UNIT_COST_AVG = (oldQuantity * UNIT_COST_AVG + intBenReceive * Double.parseDouble(bo.getString("UNIT_COST"))) / (oldQuantity + intBenReceive);
|
|
|
- productBo.set("UNIT_COST_AVG", UNIT_COST_AVG);
|
|
|
- SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_PRODUCT, productBo);
|
|
|
+ if (productBo.getString("OUT_RULE").equals("1030") && DBSql.getString("SELECT CATE_ID FROM BO_EU_DNIVT_WAREHOUSE WHERE ID=?", new Object[]{warehouseProductLotBo.getString("WAREHOUSE_ID")}).equals("1")) {
|
|
|
+
|
|
|
+ double UNIT_COST_AVG = Double.parseDouble(productBo.getString("UNIT_COST_AVG"));
|
|
|
+ UNIT_COST_AVG = (oldQuantity * UNIT_COST_AVG + intBenReceive * Double.parseDouble(bo.getString("UNIT_COST"))) / (oldQuantity + intBenReceive);
|
|
|
+ productBo.set("UNIT_COST_AVG", UNIT_COST_AVG);
|
|
|
+ SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_PRODUCT, productBo);
|
|
|
+ }
|
|
|
|
|
|
//2、库存转移记录 BO_EU_DNIVT_TRANSFER
|
|
|
ProcessInstance warehouseTransferInstance = SDK.getProcessAPI().createBOProcessInstance("obj_e15a8fedeaeb43dc85aa258a7e1cffcf", uc.getUID(), "采购接收-" + warehouseProductLotBo.get("LOT"));
|
|
|
@@ -262,23 +265,22 @@ public class DoWorkThread extends Thread {
|
|
|
DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2150 + " WHERE BINDID='" + orderBindId + "'");
|
|
|
|
|
|
for (BO bo : orderProductList) {
|
|
|
- //采购项全部接收后,更改关联合同产品的状态
|
|
|
- BO contractProductBo = SDK.getBOAPI().get(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, bo.getString("CONTRACT_COST_ID"));
|
|
|
- contractProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);//待配送
|
|
|
- SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, contractProductBo);
|
|
|
|
|
|
+ //采购项全部接收后,更改关联合同产品的状态
|
|
|
+ String sql = "SELECT a.QUANTITY-SUM(ifnull(b.QUANTITY,0)) FROM BO_EU_DNCTT_CONTRACT_COST a LEFT JOIN BO_EU_DNCTT_CONTRACT_COST_PRODUCT b ON a.ID=b.CONTRACT_COST_ID AND b.CLOSED = 0 WHERE a.ID=?";
|
|
|
+ if (DBSql.getInt(sql, new Object[]{bo.getString("CONTRACT_COST_ID")}) <= 0) {
|
|
|
+ BO contractProductBo = SDK.getBOAPI().get(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, bo.getString("CONTRACT_COST_ID"));
|
|
|
+ contractProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);//待配送
|
|
|
+ SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, contractProductBo);
|
|
|
+ }
|
|
|
//更新合同产品上面的合同产品状态
|
|
|
|
|
|
BO costProduct = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT).addQuery("ORDER_ID=", bo.getString("ORDER_ID")).addQuery("CONTRACT_COST_ID=", bo.getString("CONTRACT_COST_ID")).detail();
|
|
|
if (costProduct != null) {
|
|
|
costProduct.set("STATUS_ID", "2158");//待配送
|
|
|
costProduct.set("SN", DBSql.getString("SELECT GROUP_CONCAT(SN) FROM BO_EU_DNIVT_WAREHOUSE_PRODUCT_LOT WHERE ORDER_PRODUCT_ID=?", new Object[]{bo.getId()}));
|
|
|
- try {
|
|
|
- //记录日志
|
|
|
- dn.recordFormChanges.record(uc, costProduct, "采购产品接收后更新");
|
|
|
- } catch (Exception e) {
|
|
|
-
|
|
|
- }
|
|
|
+ //记录日志
|
|
|
+ dn.recordFormChanges.record(uc, costProduct, "采购产品接收后更新");
|
|
|
SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProduct);
|
|
|
}
|
|
|
}
|