diff --git a/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java b/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java index 0705a21..7420c0c 100644 --- a/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java @@ -31,30 +31,25 @@ public class PurorderCalculateBillPlugin extends AbstractBillPlugIn { // 查询正常的采购订单 总额,总数量 QFilter f1 = new QFilter("supplier.id", "=", supplier.getPkValue()); QFilter f2 = new QFilter("billstatus", "=", "C");//已审核的订单 - QFilter f3 = new QFilter("closestatus", "=", "A");//排除已关闭的订单 + QFilter f3 = new QFilter("closestatus", "=", "A");//关闭状态正常 + QFilter f4 = new QFilter("billentry.rowterminatestatus", "=", "A");//行终止状态正常 DynamicObject[] pmBillArr = BusinessDataServiceHelper.load("pm_purorderbill", - "id,billno,totalamount,billentry.qty", - new QFilter[]{f1, f2, f3}); + "id,billno,totalamount,billentry.qty,billentry.invqty,billentry.tqq9_disandrefoundprice", + new QFilter[]{f1, f2, f3, f4}); for (DynamicObject bill : pmBillArr) { - totalAmount = totalAmount.add(bill.getBigDecimal("totalamount")); DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry"); for (DynamicObject entry : entries) { - totalCount = totalCount.add(entry.getBigDecimal("qty")); - } - } - //查询采购入库单的总金额,总数量 - QFilter qf1 = new QFilter("supplier.id", "=", supplier.getPkValue()); - QFilter qf2 = new QFilter("billstatus", "=", "C"); - DynamicObject[] imBillArr = BusinessDataServiceHelper.load("im_purinbill", - "id,billno,billentry.qty,billentry.amountandtax", - new QFilter[]{qf1, qf2}); - for (DynamicObject bill : imBillArr) { - DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry"); - for (DynamicObject entry : entries) { - totalAmount = totalAmount.subtract(entry.getBigDecimal("amountandtax")); - totalCount = totalCount.subtract(entry.getBigDecimal("qty")); + BigDecimal qty = entry.getBigDecimal("qty") == null ? BigDecimal.ZERO : entry.getBigDecimal("qty");//数量 + BigDecimal invqty = entry.getBigDecimal("invqty") == null ? BigDecimal.ZERO : entry.getBigDecimal("invqty");//已入库数量 + BigDecimal wrkqty = qty.subtract(invqty);//未入库数量 + totalCount = totalCount.add(wrkqty); + BigDecimal tqq9_disandrefoundprice = entry.getBigDecimal("tqq9_disandrefoundprice") == null ? + BigDecimal.ZERO : entry.getBigDecimal("tqq9_disandrefoundprice");//有优惠有返利含税单价 + BigDecimal wrkAmount = tqq9_disandrefoundprice.multiply(wrkqty); + totalAmount = totalAmount.add(wrkAmount); } } + this.getModel().setValue("tqq9_lswdhje", totalAmount); this.getModel().setValue("tqq9_lswdhsl", totalCount); }