diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/ContractbillFromPlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/ContractbillFromPlugin.java index 5ac436c..c569575 100644 --- a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/ContractbillFromPlugin.java +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/ContractbillFromPlugin.java @@ -4,6 +4,8 @@ import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.metadata.IDataEntityProperty; import kd.bos.entity.datamodel.IDataModel; +import kd.bos.entity.datamodel.events.AfterDeleteRowEventArgs; +import kd.bos.entity.datamodel.events.BeforeDeleteRowEventArgs; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.plugin.AbstractFormPlugin; @@ -46,17 +48,14 @@ public class ContractbillFromPlugin extends AbstractFormPlugin { @Override public void propertyChanged(PropertyChangedArgs e) { super.propertyChanged(e); - IDataModel model = this.getModel(); String name = e.getProperty().getName(); ChangeData[] changeSet = e.getChangeSet(); ChangeData changeData = changeSet[0]; - - switch (name){ case "contractparty" : DynamicObject newValue = (DynamicObject)changeData.getNewValue(); this.getModel().setValue("costcompany",newValue); - case "orientryamount": + case "orientryamount"://监听税额变化 DynamicObjectCollection expenseentryentity = this.getModel().getEntryEntity("expenseentryentity"); BigDecimal orientryamounttotal = BigDecimal.ZERO; BigDecimal taxamounttotal = BigDecimal.ZERO; @@ -67,9 +66,40 @@ public class ContractbillFromPlugin extends AbstractFormPlugin { orientryamounttotal = orientryamounttotal.add(orientryamount); taxamounttotal = taxamounttotal.add(taxamount); } - BigDecimal divide = orientryamounttotal.divide(taxamounttotal, 2, 4); //计算税率 - this.getModel().setValue("taxrate",divide); - + if (orientryamounttotal.compareTo(BigDecimal.ZERO) != 0){ + BigDecimal divide = taxamounttotal.divide(orientryamounttotal, 4, 4); //计算税率 + divide = divide.multiply(new BigDecimal(100)); + this.getModel().setValue("billtaxrate",divide); + }else { + this.getModel().setValue("billtaxrate",0); + } } } + + + @Override + public void afterDeleteRow(AfterDeleteRowEventArgs e) { + super.afterDeleteRow(e); + String name = e.getEntryProp().getName(); + if (name.equals("expenseentryentity")){ + DynamicObjectCollection expenseentryentity = this.getModel().getEntryEntity("expenseentryentity"); + BigDecimal orientryamounttotal = BigDecimal.ZERO; + BigDecimal taxamounttotal = BigDecimal.ZERO; + for(int i = 0;i