diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java index 6ffa113..35778f6 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java @@ -157,6 +157,23 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement } else if (StringUtils.equals(name, "zcgj_bolttype")) { //冲销类型 Object newValue = changeData.getNewValue();//新值 + if ("30".equals(newValue)) { + //无冲销 + this.getView().setVisible(false, "zcgj_advconap21");//隐藏冲销支出结算分录 + this.getView().setVisible(false, "zcgj_advconap211");//隐藏冲销履约记录分录 + } else if ("10".equals(newValue)) { + //冲销合同履约 + this.getView().setVisible(true, "zcgj_advconap211");//显示冲销履约记录分录 + this.getView().setVisible(false, "zcgj_advconap21");//隐藏冲销支出结算分录 + } else if ("20".equals(newValue)) { + //冲销支出结算 + this.getView().setVisible(false, "zcgj_advconap211");//隐藏冲销履约记录分录 + this.getView().setVisible(true, "zcgj_advconap21");//显示冲销支出结算分录 + } else if ("40".equals(newValue)) { + //冲销合同履约&&冲销支出结算 + this.getView().setVisible(true, "zcgj_advconap211");//显示冲销履约记录分录 + this.getView().setVisible(true, "zcgj_advconap21");//显示冲销支出结算分录 + } DynamicObjectCollection zcgj_expensereversal = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录 DynamicObjectCollection zcgj_performrec = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_performrec");//冲销履约记录分录 if (newValue == null || newValue.equals("30")) { @@ -167,7 +184,7 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement } else if (newValue.equals("20")) { zcgj_performrec.clear(); } - this.getView().updateView("zcgj_expensereversal"); + this.getView().updateView("zcgj_expensereversal");//刷新分录 this.getView().updateView("zcgj_performrec"); } else if (StringUtils.equals(name, "zcgj_contract")) { //合同名称 @@ -242,6 +259,8 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement this.addItemClickListeners("zcgj_entrytoolbar1111"); EntryGrid entryGrid = this.getView().getControl("zcgj_performrec");//冲销履约记录 entryGrid.addHyperClickListener(this); + EntryGrid zcgj_expensereversal = this.getView().getControl("zcgj_expensereversal");//冲销支出结算 + zcgj_expensereversal.addHyperClickListener(this); } @Override @@ -285,6 +304,25 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId); this.getView().showForm(listShowParameter); + } else if (StringUtils.equals(fieldName, "zcgj_alreadyboltamount")) { + //冲销支出结算-已冲销金额 + List dailyLoanBillDataIds = new ArrayList<>(); + int rowIndex = hyperLinkClickEvent.getRowIndex(); + DynamicObjectCollection expenseReversalCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算 + DynamicObject expenseReversal = expenseReversalCollection.get(rowIndex); + long zcgj_expensereversaid = expenseReversal.getLong("zcgj_expensereversaid"); + QFilter filter = new QFilter("zcgj_expensereversal.zcgj_expensereversaid", QCP.equals, zcgj_expensereversaid); + filter.and(new QFilter("billstatus", QCP.equals, "C")); + DynamicObjectCollection zcgj_ec_in_finaceconfirms = QueryServiceHelper.query("zcgj_ec_in_finaceconfirm", "id", new QFilter[]{filter}); + for (DynamicObject zcgj_ec_in_finaceconfirm : zcgj_ec_in_finaceconfirms) { + dailyLoanBillDataIds.add((Long) zcgj_ec_in_finaceconfirm.get("id")); + } + ListShowParameter listShowParameter = new ListShowParameter(); + listShowParameter.setFormId("bos_list"); //列表界面 + listShowParameter.setBillFormId("zcgj_ec_in_finaceconfirm"); //单据的标识 + listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); + dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId); + this.getView().showForm(listShowParameter); } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PerFormRecordsBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PerFormRecordsBillPlugin.java new file mode 100644 index 0000000..dc6e8e0 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PerFormRecordsBillPlugin.java @@ -0,0 +1,52 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.control.EntryGrid; +import kd.bos.form.control.events.ItemClickEvent; + +import java.math.BigDecimal; +import java.util.EventObject; + +/** + * 收入合同履约记录表单插件 + */ +public class PerFormRecordsBillPlugin extends AbstractBillPlugIn { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("advcontoolbarap"); + } + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + if (itemKey.equals("deleteline")) { + //事务记录明细删行 + EntryGrid entryGrid = (EntryGrid) this.getControl("entryentity"); + BigDecimal amount = entryGrid.getSum("amount").abs();//价税合计 + this.getModel().setValue("zcgj_taxperformeamou", amount);//含税履约金额 + BigDecimal notaxamount = entryGrid.getSum("notaxamount").abs();//金额 + this.getModel().setValue("zcgj_performamount", notaxamount);//履约金额(不含税) + BigDecimal tax = entryGrid.getSum("tax").abs();//税额 + this.getModel().setValue("zcgj_taxamount", tax);//履约税额 + } + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + String propName = e.getProperty().getName(); + if ("amount".equals(propName) || "notaxamount".equals(propName) || "tax".equals(propName)) { + //价税合计,金额,税额 + EntryGrid entryGrid = (EntryGrid) this.getControl("entryentity"); + BigDecimal amount = entryGrid.getSum("amount").abs();//价税合计 + this.getModel().setValue("zcgj_taxperformeamou", amount);//含税履约金额 + BigDecimal notaxamount = entryGrid.getSum("notaxamount").abs();//金额 + this.getModel().setValue("zcgj_performamount", notaxamount);//履约金额(不含税) + BigDecimal tax = entryGrid.getSum("tax").abs();//税额 + this.getModel().setValue("zcgj_taxamount", tax);//履约税额 + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/FinaceConfirmRevWriteAmtOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/FinaceConfirmRevWriteAmtOp.java index 56e2dad..f88c313 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/FinaceConfirmRevWriteAmtOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/FinaceConfirmRevWriteAmtOp.java @@ -15,7 +15,7 @@ import java.util.ArrayList; import java.util.List; /** - * 收入财务确认单反写收入合同履约记录已冲销金额 + * 收入财务确认单反写收入合同履约记录已冲销金额和支出合同结算已冲销金额 */ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn { @@ -24,6 +24,9 @@ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn { e.getFieldKeys().add("zcgj_performrec");//冲销履约记录分录 e.getFieldKeys().add("zcgj_performrec.zcgj_thisreversalamount");//本次冲销金额 e.getFieldKeys().add("zcgj_performrec.zcgj_performrecid");//来源单据id-收入合同履约记录id + e.getFieldKeys().add("zcgj_expensereversal");//冲销支出结算分录 + e.getFieldKeys().add("zcgj_expensereversal.zcgj_boltamount");//本次冲销金额 + e.getFieldKeys().add("zcgj_expensereversal.zcgj_expensereversaid");//来源单据id-支出合同结算id e.getFieldKeys().add("zcgj_bolttype");//冲销类型 } @@ -63,6 +66,21 @@ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn { } } else if ("20".equals(zcgj_bolttype)) { //冲销业主支出结算 + DynamicObjectCollection expenseReversalCollection = dataEntity.getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录 + for (DynamicObject expenseReversal : expenseReversalCollection) { + BigDecimal zcgj_boltamount = expenseReversal.getBigDecimal("zcgj_boltamount");//本次冲销金额 + long zcgj_expensereversaid = expenseReversal.getLong("zcgj_expensereversaid");//来源单据id-支出合同结算id + QFilter[] qFilters = new QFilter[]{new QFilter("id", QCP.equals, zcgj_expensereversaid)}; + DynamicObject ec_out_contract_settle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", "id,zcgj_taxinclcontractrev", qFilters);//支出合同结算 + BigDecimal zcgj_taxinclcontractrev = ec_out_contract_settle.getBigDecimal("zcgj_taxinclcontractrev");//含税合同金额(已冲销) + if (isAudit) { + zcgj_taxinclcontractrev = zcgj_taxinclcontractrev.add(zcgj_boltamount); + } else { + zcgj_taxinclcontractrev = zcgj_taxinclcontractrev.subtract(zcgj_boltamount); + } + ec_out_contract_settle.set("zcgj_taxinclcontractrev", zcgj_taxinclcontractrev);//含税履约金额(已冲销) + SaveServiceHelper.save(new DynamicObject[]{ec_out_contract_settle}); + } } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/other/FinanceConfirmOutContractPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/other/FinanceConfirmOutContractPlugin.java new file mode 100644 index 0000000..ba232bc --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/other/FinanceConfirmOutContractPlugin.java @@ -0,0 +1,34 @@ +package zcgj.zcdev.zcdev.pr.plugin.other; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; +import kd.bos.entity.botp.plugin.args.AfterBuildDrawFilterEventArgs; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; + +import java.util.ArrayList; +import java.util.List; + +/** + * 收入财务确认上拉支出合同结算botp插件 + */ +public class FinanceConfirmOutContractPlugin extends AbstractConvertPlugIn { + @Override + public void afterBuildDrawFilter(AfterBuildDrawFilterEventArgs e) { + //选单过滤 + super.afterBuildDrawFilter(e); + DynamicObject targetDataEntity = e.getTargetDataEntity();//当前数据包 + DynamicObjectCollection expenseReversalCollection = targetDataEntity.getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录 + List ids = new ArrayList<>(); + for (DynamicObject expenseReversa : expenseReversalCollection) { + long zcgj_expensereversaid = expenseReversa.getLong("zcgj_expensereversaid"); + ids.add(zcgj_expensereversaid); + } + QFilter filter = new QFilter("id", QCP.not_in, ids); + DynamicObject zcgj_contract = targetDataEntity.getDynamicObject("zcgj_contract");//合同名称 + DynamicObject project = zcgj_contract.getDynamicObject("project"); + filter = filter.and(new QFilter("project", QCP.equals, project.getPkValue())); + e.setPlugFilter(filter); + } +}