1.采购订单选择付款单插件 -20250718
This commit is contained in:
		
							parent
							
								
									ab5206bcfd
								
							
						
					
					
						commit
						10e74d393b
					
				|  | @ -0,0 +1,189 @@ | |||
| package tqq9.lc123.cloud.app.plugin.form.pm; | ||||
| 
 | ||||
| import kd.bos.bill.AbstractBillPlugIn; | ||||
| import kd.bos.bill.BillShowParameter; | ||||
| import kd.bos.bill.OperationStatus; | ||||
| import kd.bos.dataentity.entity.DynamicObject; | ||||
| import kd.bos.dataentity.entity.DynamicObjectCollection; | ||||
| import kd.bos.dataentity.resource.ResManager; | ||||
| import kd.bos.dataentity.utils.ObjectUtils; | ||||
| import kd.bos.dataentity.utils.StringUtils; | ||||
| import kd.bos.entity.datamodel.IDataModel; | ||||
| import kd.bos.entity.datamodel.ListSelectedRow; | ||||
| import kd.bos.entity.datamodel.ListSelectedRowCollection; | ||||
| import kd.bos.form.*; | ||||
| import kd.bos.form.control.Control; | ||||
| import kd.bos.form.control.EntryGrid; | ||||
| import kd.bos.form.control.events.BeforeClickEvent; | ||||
| import kd.bos.form.events.ClosedCallBackEvent; | ||||
| import kd.bos.form.events.HyperLinkClickEvent; | ||||
| import kd.bos.form.events.HyperLinkClickListener; | ||||
| import kd.bos.form.field.ItemClassEdit; | ||||
| import kd.bos.form.field.RefBillEdit; | ||||
| import kd.bos.form.field.events.BeforeF7SelectEvent; | ||||
| import kd.bos.form.field.events.BeforeF7SelectListener; | ||||
| import kd.bos.list.ListFilterParameter; | ||||
| import kd.bos.list.ListShowParameter; | ||||
| import kd.bos.orm.query.QCP; | ||||
| import kd.bos.orm.query.QFilter; | ||||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||
| import kd.bos.workflow.bpmn.model.basedata.BaseDataHelper; | ||||
| import kd.sdk.plugin.Plugin; | ||||
| 
 | ||||
| 
 | ||||
| import java.math.BigDecimal; | ||||
| import java.util.ArrayList; | ||||
| import java.util.EventObject; | ||||
| import java.util.List; | ||||
| 
 | ||||
| /** | ||||
|  * 单据界面插件 | ||||
|  */ | ||||
| public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implements HyperLinkClickListener { | ||||
|     @Override | ||||
|     public void registerListener(EventObject e) { | ||||
|         super.registerListener(e); | ||||
|         this.addClickListeners(new String[]{"tqq9_paybillno"}); | ||||
|         EntryGrid preEntry = (EntryGrid) this.getView().getControl("purbillentry_pay"); | ||||
|         preEntry.addHyperClickListener(this); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| //    @Override | ||||
| //    public void beforeF7Select(BeforeF7SelectEvent event) { | ||||
| //        IDataModel model = this.getModel(); | ||||
| //        DynamicObject org =model.getDataEntity().getDynamicObject("org"); | ||||
| //        if (org!=null) { | ||||
| //            ListShowParameter param = (ListShowParameter) event.getFormShowParameter(); | ||||
| //            QFilter qF1 = new QFilter("org.number", QCP.in, org.getString("number")); | ||||
| //            QFilter qF2 = new QFilter("yem_iscontactpaybill", QCP.equals, false); | ||||
| //            param.getListFilterParameter().getQFilters().add(qF1.and(qF2)); | ||||
| //        } | ||||
| //        CloseCallBack closeCallBack = new CloseCallBack(this.getPluginName(), "zbBill"); | ||||
| // | ||||
| // | ||||
| //    } | ||||
| 
 | ||||
|     @Override | ||||
|     public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { | ||||
|         super.closedCallBack(closedCallBackEvent); | ||||
|         IDataModel model = this.getModel(); | ||||
|         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; | ||||
|                 } | ||||
|             } | ||||
|             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"); | ||||
|         } | ||||
|         this.getView().updateView(); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     public void beforeClick(BeforeClickEvent evt) { | ||||
|         super.beforeClick(evt); | ||||
|             IDataModel model = this.getModel(); | ||||
|         Control c = (Control) evt.getSource(); | ||||
|         String key = c.getKey().toLowerCase(); | ||||
|         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");//订货供应商 | ||||
|             DynamicObject dynamicObject = entries.get(length); | ||||
|             Boolean isprepay = dynamicObject.getBoolean("isprepay"); | ||||
|             if (supplier == null) { | ||||
|                 this.getView().showMessage("订货供应商不能为空"); | ||||
|                 evt.setCancel(true); | ||||
|             } | ||||
|             if (isprepay.equals(false)) { | ||||
|                 this.getView().showMessage("请勾选是否预付"); | ||||
|                 evt.setCancel(true); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void click(EventObject evt) { | ||||
|         super.click(evt); | ||||
|         Control c = (Control) evt.getSource(); | ||||
|         String key = c.getKey().toLowerCase(); | ||||
|         IDataModel model = this.getModel(); | ||||
| 
 | ||||
|         if ("tqq9_paybillno".equals(key)) { | ||||
|             int entryRowCount = model.getEntryRowCount("purbillentry_pay"); | ||||
|             List<String> selectedNos = new ArrayList(entryRowCount); | ||||
|             DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单 | ||||
|             DynamicObjectCollection entries = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");//付款计划分录 | ||||
|             DynamicObject supplier = pm_purorderbill.getDynamicObject("supplier");//订货供应商 | ||||
|             if (entries != null) { | ||||
|                 for (DynamicObject entry : entries) { | ||||
|                     String tqq9_paybillno = entry.getString("tqq9_paybillno"); | ||||
|                     if (tqq9_paybillno != null) { | ||||
|                         selectedNos.add(tqq9_paybillno); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             QFilter filter = new QFilter("billstatus", "=", "D");//已付款 | ||||
|             if (ObjectUtils.isEmpty(selectedNos)) { | ||||
|                 filter.and(new QFilter("billno", "not in", selectedNos)); | ||||
|             } | ||||
|             filter.and(new QFilter("itempayeetype", "=", "bd_supplier"));//收款人类型为供应商 | ||||
|             filter.and(new QFilter("itempayee", "=", supplier.getLong("id")));//收款人为采购订单供应商 | ||||
|             filter.and(new QFilter("paymenttype.number", "=", "202")); | ||||
|             filter.and("unsettleamount", QCP.large_than, BigDecimal.ZERO); | ||||
| //            //组织一致 | ||||
| //            DynamicObject org = (DynamicObject)model.getValue("org"); | ||||
| //            filter.and(new QFilter("entry.settleorg", "=", org.getLong("id"))); | ||||
|             DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{filter}); | ||||
|             showZbBillF7(this.getView(), this.getPluginName(), filter); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) { | ||||
|         int rowIndex = hyperLinkClickEvent.getRowIndex(); | ||||
|         Long billId = (Long) this.getModel().getValue("tqq9_paybillno", rowIndex); | ||||
|         if (billId != null) { | ||||
|             BillShowParameter formshowParameter = new BillShowParameter(); | ||||
|             formshowParameter.setFormId("cas_paybill"); | ||||
|             formshowParameter.getOpenStyle().setInlineStyleCss(new StyleCss()); | ||||
|             formshowParameter.setPkId(billId); | ||||
|             formshowParameter.getOpenStyle().setShowType(ShowType.Modal); | ||||
|             formshowParameter.setStatus(OperationStatus.VIEW); | ||||
|             this.getView().showForm(formshowParameter); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static void showZbBillF7(IFormView view, String pluginName, QFilter filter) { | ||||
|         ListShowParameter lsp = ShowFormHelper.createShowListForm("cas_paybill", true, 2); | ||||
|         ListFilterParameter lfp = new ListFilterParameter(); | ||||
|         lfp.setFilter(filter); | ||||
|         lsp.setCustomParam("ismergerows", Boolean.FALSE); | ||||
|         lsp.setListFilterParameter(lfp); | ||||
|         CloseCallBack closeCallBack = new CloseCallBack(pluginName, "paybill"); | ||||
|         lsp.setCloseCallBack(closeCallBack); | ||||
|         view.showForm(lsp); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue