package tqq9.lc123.cloud.app.plugin.form.ap; import kd.bos.algo.DataSet; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.BillShowParameter; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.metadata.IDataEntityProperty; import kd.bos.dataentity.utils.StringUtils; import kd.bos.db.DB; import kd.bos.db.DBRoute; import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.CloseCallBack; import kd.bos.form.FormShowParameter; import kd.bos.form.ShowFormHelper; import kd.bos.form.ShowType; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.list.ListFilterParameter; import kd.bos.list.ListShowParameter; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.ORM; import kd.sdk.plugin.Plugin; import scala.annotation.meta.param; import tqq9.lc123.cloud.app.plugin.form.conm.purconmAddRebateRulesPlugin; import java.math.BigDecimal; import java.util.EventObject; /** * 付款申请新增抵扣订单按钮 */ public class PayApplyFormPlugin extends AbstractBillPlugIn implements Plugin { private final static Log logger = LogFactory.getLog(PayApplyFormPlugin.class); @Override public void registerListener(EventObject e) { super.registerListener(e); this.addItemClickListeners("tbmain"); } @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); String itemKey = evt.getItemKey(); if (StringUtils.equals("tqq9_deductorder", itemKey)) { DynamicObjectCollection entry = this.getModel().getDataEntity(true).getDynamicObjectCollection("entry"); if (entry.isEmpty()) { getView().showMessage("请先维护供应商"); return; } else { DynamicObject e_asstact = entry.get(0).getDynamicObject("e_asstact");//往来户 DynamicObject settleorg = (DynamicObject) this.getModel().getValue("settleorg");//结算组织 if (e_asstact == null) { getView().showMessage("请先维护供应商"); return; } else { FormShowParameter param = new FormShowParameter(); param.setFormId("ap_handsettle"); param.setCustomParam("e_asstact", e_asstact); param.setCustomParam("settleorg", settleorg); param.setCloseCallBack(new CloseCallBack(this, "tqq9_deductorder")); param.getOpenStyle().setShowType(ShowType.Modal); this.getView().showForm(param); } } } } @Override public void afterCreateNewData(EventObject e) { super.afterCreateNewData(e); IDataModel model = this.getModel(); DynamicObject e_asstact = (DynamicObject) model.getValue("e_asstact", 0); if (e_asstact != null) { long id = e_asstact.getLong("id"); String sql = "/*dialect*/select fasstactid,sum(funsettleamount) qty from t_ap_finapbill,t_ap_finapbilldetailentry " + " WHERE fsettlestatus in ('unsettle','partsettle') and fbillstatus ='C' and funsettleamount<0 AND fasstactid=" + id + " group by fasstactid"; DataSet dataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("cas"), sql); DataSet copy = dataSet.copy(); DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy); BigDecimal qty = dynamicObjects.get(0).getBigDecimal("qty"); model.setValue("tqq9_gyskdkzje", qty); getView().updateView(); } } @Override public void propertyChanged(PropertyChangedArgs e) { super.propertyChanged(e); String name = e.getProperty().getName(); if (StringUtils.equals("e_asstact", name)) { IDataModel model = this.getModel(); DynamicObject e_asstact = (DynamicObject) model.getValue("e_asstact", 0); if (e_asstact != null) { long id = e_asstact.getLong("id"); String sql = "/*dialect*/select fasstactid,sum(funsettleamount) qty from t_ap_finapbill,t_ap_finapbilldetailentry " + " WHERE fsettlestatus in ('unsettle','partsettle') and fbillstatus ='C' and funsettleamount<0 AND fasstactid=" + id + " group by fasstactid"; DataSet dataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("cas"), sql); DataSet copy = dataSet.copy(); DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy); BigDecimal qty = dynamicObjects.get(0).getBigDecimal("qty"); model.setValue("tqq9_gyskdkzje", qty); getView().updateView(); } } } }