供应商发生改变,历史未到账余额,历史未到账数量

This commit is contained in:
sez 2025-12-03 14:50:24 +08:00
parent cba0e4a4ee
commit 6116504b6c
1 changed files with 12 additions and 8 deletions

View File

@ -28,23 +28,27 @@ public class PurorderCalculateBillPlugin extends AbstractBillPlugIn {
BigDecimal totalCount = BigDecimal.ZERO; BigDecimal totalCount = BigDecimal.ZERO;
DynamicObject supplier = (DynamicObject) newValue; DynamicObject supplier = (DynamicObject) newValue;
if (null != supplier) { if (null != supplier) {
//查询已审核未关闭非克隆上游单据编号为空数量-到货数量有优惠有返利含税单价*数量-到货数量
// 查询正常的采购订单 总额总数量 // 查询正常的采购订单 总额总数量
QFilter f1 = new QFilter("supplier.id", "=", supplier.getPkValue()); QFilter f1 = new QFilter("supplier.id", "=", supplier.getPkValue());
QFilter f2 = new QFilter("billstatus", "=", "C");//已审核的订单 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");//行终止状态正常 QFilter f4 = new QFilter("tqq9_sourcebillno", "=", "");//上游单据编号为空
DynamicObject[] pmBillArr = BusinessDataServiceHelper.load("pm_purorderbill", DynamicObject[] pmBillArr = BusinessDataServiceHelper.load("pm_receiptnotice",
"id,billno,totalamount,billentry.qty,billentry.invqty,billentry.tqq9_disandrefoundprice", "id,billno,supplier,billentry.qty,billentry.tqq9_dhsl,billentry.tqq9_yyhyflje,tqq9_sourcebillno",
new QFilter[]{f1, f2, f3, f4}); new QFilter[]{f1, f2, f3, f4});
for (DynamicObject bill : pmBillArr) { for (DynamicObject bill : pmBillArr) {
//String billno = bill.getString("billno");
//String tqq9_sourcebillno = bill.getString("tqq9_sourcebillno");
DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry"); DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry");
for (DynamicObject entry : entries) { for (DynamicObject entry : entries) {
BigDecimal qty = entry.getBigDecimal("qty") == null ? BigDecimal.ZERO : 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 tqq9_dhsl = entry.getBigDecimal("tqq9_dhsl") == null ? BigDecimal.ZERO : entry.getBigDecimal("tqq9_dhsl");//到货数量
BigDecimal wrkqty = qty.subtract(invqty);//未入库数量 BigDecimal wrkqty = qty.subtract(tqq9_dhsl);//未入库数量
totalCount = totalCount.add(wrkqty); totalCount = totalCount.add(wrkqty);
BigDecimal tqq9_disandrefoundprice = entry.getBigDecimal("tqq9_disandrefoundprice") == null ? BigDecimal tqq9_disandrefoundprice = entry.getBigDecimal("tqq9_yyhyflje") == null ?
BigDecimal.ZERO : entry.getBigDecimal("tqq9_disandrefoundprice");//有优惠有返利含税单价 BigDecimal.ZERO : entry.getBigDecimal("tqq9_yyhyflje");//有优惠有返利含税单价
BigDecimal wrkAmount = tqq9_disandrefoundprice.multiply(wrkqty); BigDecimal wrkAmount = tqq9_disandrefoundprice.multiply(wrkqty);
totalAmount = totalAmount.add(wrkAmount); totalAmount = totalAmount.add(wrkAmount);
} }