diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java new file mode 100644 index 0000000..50aba87 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java @@ -0,0 +1,48 @@ +package shjh.jhzj7.fi.fi.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; + +/** + * 动态表单插件 + * 付款处理表单插件 + */ +public class PayBillFromPlugin extends AbstractFormPlugin implements Plugin { + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("tbmain"); + } + + + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + String key = evt.getItemKey().toLowerCase(); + if ("bar_cancelpay".equals(key)) { + this.cancelRecValidator(evt); + } + } + + /** + * 已推送SAP不允许取消付款 + * @param evt + */ + private void cancelRecValidator(BeforeItemClickEvent evt) { + String billno = (String)this.getModel().getValue("billno"); + DynamicObject recObj = BusinessDataServiceHelper.loadSingle("cas_paybill", "id,billno,shjh_ispushsap", new QFilter[]{new QFilter("billno", "=", billno)}); + boolean ispushsap = recObj.getBoolean("shjh_ispushsap"); + if (ispushsap){ + this.getView().showTipNotification("已推送SAP,不允许取消付款!"); + evt.setCancel(true); + } + } +} \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java new file mode 100644 index 0000000..386fba0 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java @@ -0,0 +1,54 @@ +package shjh.jhzj7.fi.fi.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.EntityMetadataCache; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.list.BillList; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +/** + * 标准单据列表插件 + * 付款处理-取消付款校验 + */ +public class PayBillListPlugin extends AbstractListPlugin implements Plugin { + + + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + BillList list = (BillList) this.getView().getControl("billlistap"); + ListSelectedRowCollection selectedRows = list.getSelectedRows(); + if (selectedRows == null || selectedRows.isEmpty()) { + this.getView().showTipNotification("请选择需要操作的付款单!"); + evt.setCancel(true); + return; + } + if (selectedRows.size()>1){ + this.getView().showTipNotification("请选择单条数据进行操作"); + evt.setCancel(true); + return; + } + + DynamicObject recBill= BusinessDataServiceHelper.loadSingle( + selectedRows.get(0).getPrimaryKeyValue(), + EntityMetadataCache.getDataEntityType("cas_paybill")); + + String key = evt.getItemKey().toLowerCase(); + if ("tblcancelpay".equals(key)){ + this.cancelPayValidator(evt,recBill); + } + + } + + private void cancelPayValidator(BeforeItemClickEvent evt, DynamicObject recBill) { + boolean ispushsap = recBill.getBoolean("shjh_ispushsap"); + if (ispushsap){ + this.getView().showTipNotification("已推送SAP,不允许取消付款!"); + evt.setCancel(true); + } + } + +} \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java index a709590..2e41209 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java @@ -46,7 +46,7 @@ public class RecBillChangeListExtendPlugin extends AbstractListPlugin implements return; } if (selectedRows.size()>1){ - this.getView().showTipNotification("请选择单条数据进行变更"); + this.getView().showTipNotification("请选择单条数据进行操作"); evt.setCancel(true); return; }