1.采购订单下推采购退货减去退货占单数量

This commit is contained in:
龚豆豆 2025-11-11 17:28:36 +08:00
parent 0f2f54efd9
commit 2827c64d12
1 changed files with 38 additions and 4 deletions

View File

@ -41,6 +41,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObject dataEntity = extendedDataEntity.getDataEntity();
DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry");
DynamicObject[] im_purinblil = null; DynamicObject[] im_purinblil = null;
DynamicObject[] pm_purrefundapplybill = null;
for (DynamicObject entry : dynamicObjectCollection) { for (DynamicObject entry : dynamicObjectCollection) {
String mainbillnumber = entry.getString("mainbillnumber"); String mainbillnumber = entry.getString("mainbillnumber");
//采购订单 //采购订单
@ -55,7 +56,8 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
"billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," + "billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," +
"billentry.returnbaseqty,billentry.tqq9_yyhyflje,billentry.tqq9_yyhwflje,billentry.lotnumber," + "billentry.returnbaseqty,billentry.tqq9_yyhyflje,billentry.tqq9_yyhwflje,billentry.lotnumber," +
"billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")}); "billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")});
//采购退货申请单
pm_purrefundapplybill = BusinessDataServiceHelper.load("pm_purrefundapplybill", "id,name,billentry.material,billentry.qty,billentry.returnqty,billentry.tqq9_inwarebillentryid,", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")});
} }
BigDecimal zero = BigDecimal.ZERO; BigDecimal zero = BigDecimal.ZERO;
@ -211,17 +213,49 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp
if (StringUtils.equals(inwarebillentryid, id)) { if (StringUtils.equals(inwarebillentryid, id)) {
BigDecimal qty2 = dynamicObject1.getBigDecimal("qty"); BigDecimal qty2 = dynamicObject1.getBigDecimal("qty");
BigDecimal add = qty2.add(qty1); BigDecimal add = qty2.add(qty1);
if (add.compareTo(BigDecimal.ZERO) > 0) {
dynamicObject1.set("tqq9_inwarebillentryqty", add); dynamicObject1.set("tqq9_inwarebillentryqty", add);
dynamicObject1.set("tqq9_maxqty", add); dynamicObject1.set("tqq9_maxqty", add);
dynamicObject1.set("qty", add); dynamicObject1.set("qty", add);
dynamicObject1.set("baseqty", add); dynamicObject1.set("baseqty", add);
} else {
iterator.remove();
}
}
}
}
//采购退货申请锁定数量扣减
if (pm_purrefundapplybill != null) {
for (DynamicObject dynamicObject : pm_purrefundapplybill) {
DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
for (DynamicObject object : billentry) {
BigDecimal returnqty = object.getBigDecimal("returnqty");
BigDecimal qty = object.getBigDecimal("qty");
BigDecimal subtract = qty.subtract(returnqty);
if (subtract.compareTo(zero) > 0) {
String id = object.getString("tqq9_inwarebillentryid");
ListIterator<DynamicObject> iterator = dynamicObjectCollection.listIterator();
while (iterator.hasNext()) {
DynamicObject dynamicObject1 = iterator.next();
String inwarebillentryid = dynamicObject1.getString("tqq9_inwarebillentryid");
if (StringUtils.equals(inwarebillentryid, id)) {
BigDecimal qty1 = dynamicObject1.getBigDecimal("qty");
BigDecimal subtract1 = qty1.subtract(subtract);
if (subtract1.compareTo(BigDecimal.ZERO) > 0) {
dynamicObject1.set("tqq9_inwarebillentryqty", subtract1);
dynamicObject1.set("tqq9_maxqty", subtract1);
dynamicObject1.set("qty", subtract1);
dynamicObject1.set("baseqty", subtract1);
} else {
iterator.remove();
}
}
}
}
} }
} }
} }
} }
} }
} }
} }