diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/TotaltaxValidationBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/TotaltaxValidationBillPlugin.java new file mode 100644 index 0000000..895cef3 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/TotaltaxValidationBillPlugin.java @@ -0,0 +1,38 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.sdk.plugin.Plugin; + +import java.math.BigDecimal; + +public class TotaltaxValidationBillPlugin extends AbstractBillPlugIn implements Plugin { + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String name = e.getProperty().getName(); + if (name.equals("totaltax")) { + ChangeData changeData = e.getChangeSet()[0]; + BigDecimal newTotaltax = (BigDecimal) changeData.getNewValue(); + + //获取单据体当前税额值,进行累加 + BigDecimal totaltax1 = new BigDecimal(0); + DynamicObjectCollection listmodelentry = this.getModel().getEntryEntity("listmodelentry"); + for (DynamicObject dy : listmodelentry) { + DynamicObjectCollection dyEntrys = dy.getDynamicObjectCollection("listentry"); + for (DynamicObject dyEntry : dyEntrys) { + BigDecimal thistax = dyEntry.getBigDecimal("thistax"); + totaltax1 = totaltax1.add(thistax); + } + } + //如果不相等,将算出来的值赋给tataltax + if (!totaltax1.equals(newTotaltax)) { + this.getModel().setValue("totaltax", totaltax1); + } + } + + } +}