diff --git a/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java b/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java index f56f386..23b906e 100644 --- a/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java @@ -41,6 +41,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); DynamicObject[] im_purinblil = null; + DynamicObject[] pm_purrefundapplybill = null; for (DynamicObject entry : dynamicObjectCollection) { String mainbillnumber = entry.getString("mainbillnumber"); //采购订单 @@ -55,7 +56,8 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp "billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," + "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")}); - + //采购退货申请单 + 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; @@ -211,17 +213,49 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp if (StringUtils.equals(inwarebillentryid, id)) { BigDecimal qty2 = dynamicObject1.getBigDecimal("qty"); BigDecimal add = qty2.add(qty1); + if (add.compareTo(BigDecimal.ZERO) > 0) { dynamicObject1.set("tqq9_inwarebillentryqty", add); dynamicObject1.set("tqq9_maxqty", add); dynamicObject1.set("qty", 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 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(); + } + } + } + } } } } } } - } - - } \ No newline at end of file