diff --git a/lc123/cloud/app/plugin/form/pm/PurorderEntryIntroPaybillPlugin.java b/lc123/cloud/app/plugin/form/pm/PurorderEntryIntroPaybillPlugin.java index 9415637..e46f0c7 100644 --- a/lc123/cloud/app/plugin/form/pm/PurorderEntryIntroPaybillPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PurorderEntryIntroPaybillPlugin.java @@ -71,25 +71,28 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen IFormView view = this.getView(); String actionId = closedCallBackEvent.getActionId(); Object returnData = closedCallBackEvent.getReturnData(); - if ("paybill".equals(actionId)) { - DynamicObjectCollection purbillentry_pay = this.getModel().getDataEntity(true).getDynamicObjectCollection("purbillentry_pay"); - int seq=0; - for (DynamicObject dynamicObject : purbillentry_pay) { - boolean isprepay = dynamicObject.getBoolean("isprepay"); - if (isprepay){ - seq = dynamicObject.getInt("seq")-1; + if(returnData==null){ + if ("paybill".equals(actionId)) { + DynamicObjectCollection purbillentry_pay = this.getModel().getDataEntity(true).getDynamicObjectCollection("purbillentry_pay"); + int seq=0; + for (DynamicObject dynamicObject : purbillentry_pay) { + boolean isprepay = dynamicObject.getBoolean("isprepay"); + if (isprepay){ + seq = dynamicObject.getInt("seq")-1; + } } - } - ListSelectedRow listSelectedRow = ((ListSelectedRowCollection) returnData).get(0); - DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "cas_paybill"); - BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount"); + ListSelectedRow listSelectedRow = ((ListSelectedRowCollection) returnData).get(0); + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "cas_paybill"); + BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount"); - model.setValue("tqq9_paybillno", dynamicObject.getString("billno")); - model.setValue("paidpreallamount", unsettleamount); - model.setValue("paidallamount", unsettleamount); - model.setValue("joinpayamount", unsettleamount,seq); - model.setValue("paidamount", unsettleamount,seq); - view.setVisible(true,"paidpreallamount,paidallamount,joinpayamount,paidamount"); + model.setValue("tqq9_paybillno", dynamicObject.getString("billno")); +// model.setValue("tqq9_paybillid", dynamicObject.getString("id")); + model.setValue("paidpreallamount", unsettleamount); + model.setValue("paidallamount", unsettleamount); + model.setValue("joinpayamount", unsettleamount,seq); + model.setValue("paidamount", unsettleamount,seq); + view.setVisible(true,"paidpreallamount,paidallamount,joinpayamount,paidamount"); + } } this.getView().updateView(); } @@ -104,8 +107,6 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen if ("tqq9_paybillno".equals(key)) { EntryGrid entryGrid = this.getControl("purbillentry_pay"); int length = entryGrid.getSelectRows()[0];//获取点击分录序号从0开始 -// int length = selectRows[0];//获取点击分录序号从0开始 -//// int length = selectRows.length;//获取点击分录序号从0开始 DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单 DynamicObjectCollection entries = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");//付款计划分录 DynamicObject supplier = pm_purorderbill.getDynamicObject("supplier");//订货供应商 @@ -162,12 +163,14 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen @Override public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) { int rowIndex = hyperLinkClickEvent.getRowIndex(); - Long billId = (Long) this.getModel().getValue("tqq9_paybillno", rowIndex); - if (billId != null) { + String tqq9_paybillno = (String) this.getModel().getValue("tqq9_paybillno", rowIndex); + DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)}); + Long id = paybill.getLong("id"); + if (id != null) { BillShowParameter formshowParameter = new BillShowParameter(); formshowParameter.setFormId("cas_paybill"); formshowParameter.getOpenStyle().setInlineStyleCss(new StyleCss()); - formshowParameter.setPkId(billId); + formshowParameter.setPkId(id); formshowParameter.getOpenStyle().setShowType(ShowType.Modal); formshowParameter.setStatus(OperationStatus.VIEW); this.getView().showForm(formshowParameter); diff --git a/lc123/cloud/app/plugin/operate/cas/PurOrderReversePayBillPlugin.java b/lc123/cloud/app/plugin/operate/cas/PurOrderReversePayBillPlugin.java new file mode 100644 index 0000000..560bbc7 --- /dev/null +++ b/lc123/cloud/app/plugin/operate/cas/PurOrderReversePayBillPlugin.java @@ -0,0 +1,98 @@ +package tqq9.lc123.cloud.app.plugin.operate.cas; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.newdevportal.domaindefine.sample.validator.MyValidator; +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.校验器:未结算金额大于0校验 + * 2.审核插件:付款计划分录对应付款单的未结算金额转化为已结算金额 + */ +public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn implements Plugin { + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + e.addValidator(new UnSettleAmountValidator()); + } + + + class UnSettleAmountValidator extends AbstractValidator { + @Override + public void validate() { + for (ExtendedDataEntity dataEntity : this.getDataEntities()) { + String billno = dataEntity.getDataEntity().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)}); + BigDecimal unsettleamount = paybill.getBigDecimal("unsettleamount");//未结算金额 + if (unsettleamount.compareTo(BigDecimal.ZERO) <= 0) { + this.addErrorMessage(dataEntity, "单据号:" + billno + "付款计划分录的付款单:" + tqq9_paybillno + "未结算金额为:" + unsettleamount+"无法审核"); + } + } + + } + } + } + + + @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 unsettleamount = paybill.getBigDecimal("unsettleamount");//未结算金额 + BigDecimal unsettleamountbase = paybill.getBigDecimal("unsettleamountbase");//未结算金额(本位币) + //单头未结算金额转化为已结算金额 + paybill.set("unsettleamount", BigDecimal.ZERO); + paybill.set("unsettleamountbase", BigDecimal.ZERO); + paybill.set("settleamount", unsettleamount);//已结算金额 + paybill.set("settleamountbase", unsettleamountbase);//已结算金额(本位币) + for (DynamicObject entry : entries) { + BigDecimal e_unsettledamt = entry.getBigDecimal("e_unsettledamt");//未结算金额 + BigDecimal e_unsettledlocalamt = entry.getBigDecimal("e_unsettledlocalamt");//未结算金额折本位币 + //分录未结算金额转化为已结算金额 + entry.set("e_unsettledamt", BigDecimal.ZERO); + entry.set("e_unsettledlocalamt", BigDecimal.ZERO); + entry.set("e_settledamt", e_unsettledamt);//已结算金额 + entry.set("e_settledlocalamt", e_unsettledlocalamt);//已结算金额折本币 + } + paybill.set("entry", entries); + //保存 + SaveServiceHelper.save(new DynamicObject[]{paybill}); + } + } + } + } +} \ No newline at end of file diff --git a/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java b/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java new file mode 100644 index 0000000..537b596 --- /dev/null +++ b/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java @@ -0,0 +1,59 @@ +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});// } + } + } + } + } +} \ No newline at end of file