选择付款单带出可结算金额

This commit is contained in:
sez 2025-12-03 17:11:47 +08:00
parent 343d7c0882
commit f05ba6bb07
1 changed files with 42 additions and 9 deletions

View File

@ -29,10 +29,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.EventObject;
import java.util.List;
/** /**
* 采购订单界面插件 * 采购订单界面插件
@ -82,12 +79,48 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
int rowIndex = selectRows[0]; int rowIndex = selectRows[0];
ListSelectedRow listSelectedRow = ((ListSelectedRowCollection) returnData).get(0); ListSelectedRow listSelectedRow = ((ListSelectedRowCollection) returnData).get(0);
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "cas_paybill"); DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "cas_paybill");
BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount"); if (null != dynamicObject) {
//查询非当前订单已提交已审核的订单
DynamicObject[] pm_purorderbills = BusinessDataServiceHelper.load("pm_purorderbill",
"id,billno,purbillentry_pay.tqq9_paybillno,purbillentry_pay.isprepay,purbillentry_pay.tqq9_settleamount"
, new QFilter[]{new QFilter("purbillentry_pay.tqq9_paybillno", QCP.in, dynamicObject.getString("billno"))
, new QFilter("billno", QCP.not_equals, this.getModel().getValue("billno"))
, new QFilter("billstatus", QCP.in, new String[]{"B", "C"})});
//历史采购订单的付款单map
Map<String, BigDecimal> settleMap = new HashMap<>();
if (null != pm_purorderbills && pm_purorderbills.length > 0) {
for (DynamicObject pm_purorderbill : pm_purorderbills) {
DynamicObjectCollection purbillentry_pay = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");
for (DynamicObject object : purbillentry_pay) {
boolean isprepay = object.getBoolean("isprepay");//是否预付
if (isprepay) {
String tqq9_paybillno = object.getString("tqq9_paybillno");//付款处理单
if (kd.bos.util.StringUtils.isNotEmpty(tqq9_paybillno)) {
BigDecimal tqq9_settleamount = object.getBigDecimal("tqq9_settleamount") == null
? BigDecimal.ZERO : object.getBigDecimal("tqq9_settleamount");//本次结算金额
if (!settleMap.containsKey(tqq9_paybillno)) {
settleMap.put(tqq9_paybillno, tqq9_settleamount);
} else {
BigDecimal bigDecimal = settleMap.get(tqq9_paybillno);
settleMap.put(tqq9_paybillno, tqq9_settleamount.add(bigDecimal));
}
}
}
}
}
}
model.setValue("tqq9_paybillno", dynamicObject.getString("billno"));//付款单 BigDecimal actpayamt = dynamicObject.getBigDecimal("actpayamt") == null
model.setValue("joinpayamount", unsettleamount, rowIndex);//关联付款金额 ? BigDecimal.ZERO : dynamicObject.getBigDecimal("actpayamt");//付款金额
model.setValue("paidamount", unsettleamount, rowIndex);//已付金额 String casPayBillNo = dynamicObject.getString("billno");
model.setValue("tqq9_settleamount", unsettleamount, rowIndex);//本次结算金额 BigDecimal settleamount = settleMap.get(casPayBillNo) == null ? BigDecimal.ZERO : settleMap.get(casPayBillNo);//历史已结算金额
BigDecimal leftAmount = actpayamt.subtract(settleamount);//剩余结算金额
model.setValue("tqq9_paybillno", dynamicObject.getString("billno"));//付款单
model.setValue("joinpayamount", leftAmount, rowIndex);//关联付款金额
model.setValue("paidamount", leftAmount, rowIndex);//已付金额
model.setValue("tqq9_settleamount", leftAmount, rowIndex);//本次结算金额
}
} }
} }