|
@@ -2,6 +2,7 @@ package fi.er.opplugin;
|
|
|
|
|
|
import com.alibaba.druid.util.StringUtils;
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
import kd.bos.form.field.RefBillEdit;
|
|
@@ -11,11 +12,17 @@ import kd.bos.form.plugin.AbstractFormPlugin;
|
|
|
import kd.bos.list.ListShowParameter;
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Date;
|
|
|
import java.util.EventObject;
|
|
|
|
|
|
public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements BeforeF7SelectListener {
|
|
|
private static String nckd_apfinapbill = "nckd_apfinapbill"; //应付挂账单字段
|
|
|
+ private static String nckd_real_card = "assetentry.nckd_real_card"; //应付挂账单字段
|
|
|
+ private static String nckd_ap_finapbill_gz = "ap_finapbill"; //应付挂账单标识
|
|
|
+ private static String nckd_er_publicreimbur_ext = "er_publicreimbursebill"; //报销单标识
|
|
|
@Override
|
|
|
public void registerListener(EventObject e) {
|
|
|
//监听单据字段
|
|
@@ -27,14 +34,79 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
|
|
|
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
|
|
String fieldKey = arg0.getProperty().getName();
|
|
|
if (StringUtils.equals(fieldKey, nckd_apfinapbill)){
|
|
|
- DynamicObject costcompany = (DynamicObject) this.getModel().getValue("costcompany");
|
|
|
- Long costcompanyId = costcompany.getLong("id");
|
|
|
// 生成过滤条件对象QFilter
|
|
|
- QFilter qFilter = new QFilter("org", QCP.equals, costcompanyId);
|
|
|
- qFilter.and("nckd_selectflag", QCP.not_in, "1");
|
|
|
- // 设置列表过滤条件
|
|
|
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
|
|
|
- showParameter.getListFilterParameter().setFilter(qFilter);
|
|
|
+ Object nckd_sourcebillid = this.getModel().getValue("nckd_sourcebillid");
|
|
|
+ if (nckd_sourcebillid != null) {
|
|
|
+ //查询暂估报销单
|
|
|
+ String sourcebillid = String.valueOf(nckd_sourcebillid);
|
|
|
+ QFilter filter = new QFilter("nckd_sourcebillid", QCP.equals,sourcebillid);
|
|
|
+ filter.and("nckd_ywlx", QCP.equals, "2");
|
|
|
+ DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load(nckd_er_publicreimbur_ext,"id",new QFilter[] {filter});
|
|
|
+ if (bxDynamicObjects.length > 0) {
|
|
|
+ DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[0].getPkValue(), bxDynamicObjects[0].getDynamicObjectType().getName());
|
|
|
+ Long id = bxInfo.getLong("id");
|
|
|
+ QFilter qFilter = new QFilter("sourcebillid", QCP.equals,id);
|
|
|
+ // 表过滤条件
|
|
|
+ ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
|
|
|
+ showParameter.getListFilterParameter().setFilter(qFilter);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //选取不到应付挂账单
|
|
|
+ QFilter qFilter = new QFilter("id", QCP.equals,null);
|
|
|
+ // 表过滤条件
|
|
|
+ ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
|
|
|
+ showParameter.getListFilterParameter().setFilter(qFilter);
|
|
|
+ }
|
|
|
+ } else if (StringUtils.equals(fieldKey, nckd_real_card)) {
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void propertyChanged(PropertyChangedArgs e) {
|
|
|
+ String fieldKey = e.getProperty().getName();
|
|
|
+ if (StringUtils.equals("nckd_real_card", fieldKey)){
|
|
|
+ ChangeData changeData = e.getChangeSet()[0];
|
|
|
+ DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue();
|
|
|
+ for(DynamicObject object : dynamicObjectCollection) {
|
|
|
+ DynamicObject realcard = object.getDynamicObject("nckd_real_card");
|
|
|
+ }
|
|
|
+ DynamicObject dynamicObject = dynamicObjectCollection.get(0);
|
|
|
+ } else if (StringUtils.equals("nckd_apfinapbill", fieldKey)) {
|
|
|
+ ChangeData changeData = e.getChangeSet()[0];
|
|
|
+ DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
|
|
|
+ if (dynamicObject != null) {
|
|
|
+ Long id = dynamicObject.getLong("id");
|
|
|
+ //查询应付挂账
|
|
|
+ QFilter filter = new QFilter("id", QCP.equals,id);
|
|
|
+ DynamicObject[] yfgzDynamicObjects = BusinessDataServiceHelper.load(nckd_ap_finapbill_gz,"id",new QFilter[] {filter});
|
|
|
+ DynamicObject gzInfo = BusinessDataServiceHelper.loadSingle(yfgzDynamicObjects[0].getPkValue(), yfgzDynamicObjects[0].getDynamicObjectType().getName());
|
|
|
+ String billno = gzInfo.getString("billno");//单据编号
|
|
|
+ DynamicObject org = gzInfo.getDynamicObject("org");//结算组织
|
|
|
+ DynamicObject detailentry = gzInfo.getDynamicObjectCollection("detailentry").get(0);
|
|
|
+ DynamicObject expenseitem = detailentry.getDynamicObject("expenseitem");//费用项目
|
|
|
+ DynamicObject receivingsupplierid = gzInfo.getDynamicObject("receivingsupplierid");//供应商
|
|
|
+ Date bookdate = gzInfo.getDate("bookdate");
|
|
|
+ String remark = gzInfo.getString("remark");
|
|
|
+ BigDecimal pricetaxtotal = gzInfo.getBigDecimal("pricetaxtotal");
|
|
|
+ //给冲预付借款赋值
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow("writeoffmoney");
|
|
|
+
|
|
|
+ this.getModel().setValue("loanbillnov1",billno,rowIndex);
|
|
|
+ this.getModel().setValue("sourceentrycostdept",org,rowIndex);
|
|
|
+ this.getModel().setValue("sourceentrycostcompany",org,rowIndex);
|
|
|
+ this.getModel().setValue("sourceexpenseitem",expenseitem,rowIndex);
|
|
|
+ this.getModel().setValue("srcentrywlunit",receivingsupplierid,rowIndex);
|
|
|
+ this.getModel().setValue("loanapplydatev1",bookdate,rowIndex);
|
|
|
+ this.getModel().setValue("loandescriptionv1",remark,rowIndex);
|
|
|
+ this.getModel().setValue("loanamount",pricetaxtotal,rowIndex);
|
|
|
+ this.getModel().setValue("accloanamount",pricetaxtotal,rowIndex);
|
|
|
+ this.getModel().setValue("currloanamount",pricetaxtotal,rowIndex);
|
|
|
+ this.getModel().setValue("curraccloanamount",pricetaxtotal,rowIndex);
|
|
|
+ //刷新冲预付借款分录
|
|
|
+ this.getView().updateView("writeoffmoney");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|