59 lines
3.4 KiB
Java
59 lines
3.4 KiB
Java
package tqq9.lc123.cloud.app.plugin.operate.cas;
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import kd.sdk.plugin.Plugin;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
/**
|
|
* 采购订单操作插件
|
|
* 1.反审核插件:付款计划分录对应付款单的已结算金额转化为未结算金额
|
|
*/
|
|
public class PurOrderUnReversePayBillPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
|
@Override
|
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
|
super.afterExecuteOperationTransaction(e);
|
|
DynamicObject[] dataEntities = e.getDataEntities();
|
|
for (DynamicObject dataEntity : dataEntities) {
|
|
String billno = dataEntity.getString("billno");
|
|
//查询采购订单
|
|
DynamicObject purorderbill = BusinessDataServiceHelper.loadSingle("pm_purorderbill", new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
//获取付款计划分录
|
|
DynamicObjectCollection purbillentry_pay = purorderbill.getDynamicObjectCollection("purbillentry_pay");
|
|
for (DynamicObject dynamicObject : purbillentry_pay) {
|
|
String tqq9_paybillno = dynamicObject.getString("tqq9_paybillno");
|
|
//查询付款单
|
|
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)});
|
|
if (paybill != null) {
|
|
//获取付款明细分录
|
|
DynamicObjectCollection entries = paybill.getDynamicObjectCollection("entry");
|
|
BigDecimal settleamount = paybill.getBigDecimal("settleamount");//已结算金额
|
|
BigDecimal settleamountbase = paybill.getBigDecimal("settleamountbase");//已结算金额(本位币)
|
|
//单头已结算金额转化为未结算金额
|
|
paybill.set("settleamount", BigDecimal.ZERO);
|
|
paybill.set("settleamountbase", BigDecimal.ZERO);
|
|
paybill.set("unsettleamount", settleamount);//未结算金额
|
|
paybill.set("unsettleamountbase", settleamountbase);//已结算金额(本位币)
|
|
for (DynamicObject entry : entries) {
|
|
BigDecimal e_settledamt = entry.getBigDecimal("e_settledamt");//已结算金额
|
|
BigDecimal e_settledlocalamt = entry.getBigDecimal("e_settledlocalamt");//已结算金额折本币
|
|
//分录已结算金额转化为未结算金额
|
|
entry.set("e_settledamt", BigDecimal.ZERO);
|
|
entry.set("e_settledlocalamt", BigDecimal.ZERO);
|
|
entry.set("e_unsettledamt", e_settledamt);//未结算金额
|
|
entry.set("e_unsettledlocalamt", e_settledlocalamt);//未结算金额折本币
|
|
}
|
|
paybill.set("entry", entries);
|
|
SaveServiceHelper.save(new DynamicObject[]{paybill});// }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |