|  | @@ -2,8 +2,10 @@ package fi.er.opplugin;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import com.alibaba.druid.util.StringUtils;
 |  |  import com.alibaba.druid.util.StringUtils;
 | 
											
												
													
														|  |  import kd.bos.dataentity.entity.DynamicObject;
 |  |  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.ChangeData;
 | 
											
												
													
														|  |  import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 |  |  import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 | 
											
												
													
														|  | 
 |  | +import kd.bos.form.control.EntryGrid;
 | 
											
												
													
														|  |  import kd.bos.form.field.RefBillEdit;
 |  |  import kd.bos.form.field.RefBillEdit;
 | 
											
												
													
														|  |  import kd.bos.form.field.events.BeforeF7SelectEvent;
 |  |  import kd.bos.form.field.events.BeforeF7SelectEvent;
 | 
											
												
													
														|  |  import kd.bos.form.field.events.BeforeF7SelectListener;
 |  |  import kd.bos.form.field.events.BeforeF7SelectListener;
 | 
											
										
											
												
													
														|  | @@ -11,11 +13,17 @@ import kd.bos.form.plugin.AbstractFormPlugin;
 | 
											
												
													
														|  |  import kd.bos.list.ListShowParameter;
 |  |  import kd.bos.list.ListShowParameter;
 | 
											
												
													
														|  |  import kd.bos.orm.query.QCP;
 |  |  import kd.bos.orm.query.QCP;
 | 
											
												
													
														|  |  import kd.bos.orm.query.QFilter;
 |  |  import kd.bos.orm.query.QFilter;
 | 
											
												
													
														|  | 
 |  | +import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import java.math.BigDecimal;
 | 
											
												
													
														|  |  import java.util.EventObject;
 |  |  import java.util.EventObject;
 | 
											
												
													
														|  | 
 |  | +import java.util.List;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements BeforeF7SelectListener {
 |  |  public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements BeforeF7SelectListener {
 | 
											
												
													
														|  |      private static String nckd_apfinapbill = "nckd_apfinapbill"; //应付挂账单字段
 |  |      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
 |  |      @Override
 | 
											
												
													
														|  |      public void registerListener(EventObject e) {
 |  |      public void registerListener(EventObject e) {
 | 
											
												
													
														|  |          //监听单据字段
 |  |          //监听单据字段
 | 
											
										
											
												
													
														|  | @@ -27,14 +35,71 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
 | 
											
												
													
														|  |      public void beforeF7Select(BeforeF7SelectEvent arg0) {
 |  |      public void beforeF7Select(BeforeF7SelectEvent arg0) {
 | 
											
												
													
														|  |          String fieldKey = arg0.getProperty().getName();
 |  |          String fieldKey = arg0.getProperty().getName();
 | 
											
												
													
														|  |          if (StringUtils.equals(fieldKey, nckd_apfinapbill)){
 |  |          if (StringUtils.equals(fieldKey, nckd_apfinapbill)){
 | 
											
												
													
														|  | -            DynamicObject costcompany = (DynamicObject) this.getModel().getValue("costcompany");
 |  | 
 | 
											
												
													
														|  | -            Long costcompanyId = costcompany.getLong("id");
 |  | 
 | 
											
												
													
														|  |              // 生成过滤条件对象QFilter
 |  |              // 生成过滤条件对象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);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            DynamicObject Obj = (DynamicObject) this.getModel().getValue("sourcebillid");
 | 
											
												
													
														|  | 
 |  | +            if (Obj != null) {
 | 
											
												
													
														|  | 
 |  | +                Long sourcebillid = Obj.getLong("Obj");
 | 
											
												
													
														|  | 
 |  | +                //查询暂估报销单
 | 
											
												
													
														|  | 
 |  | +                QFilter filter = new QFilter("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();
 | 
											
												
													
														|  | 
 |  | +//            DynamicObject dynamicObject = dynamicObjectCollection.get(0);
 | 
											
												
													
														|  | 
 |  | +//            String number = dynamicObject.getString("number");
 | 
											
												
													
														|  | 
 |  | +//            System.out.println(number);
 | 
											
												
													
														|  | 
 |  | +//        }
 | 
											
												
													
														|  | 
 |  | +        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 settlestatus = gzInfo.getString("settlestatus");
 | 
											
												
													
														|  | 
 |  | +                String billno = gzInfo.getString("billno");//单据编号
 | 
											
												
													
														|  | 
 |  | +                BigDecimal amount = gzInfo.getBigDecimal("amount");
 | 
											
												
													
														|  | 
 |  | +                DynamicObject department = gzInfo.getDynamicObject("department");//费用承担部门
 | 
											
												
													
														|  | 
 |  | +                DynamicObject payorg = gzInfo.getDynamicObject("payorg");//费用承担公司
 | 
											
												
													
														|  | 
 |  | +                //费用项目
 | 
											
												
													
														|  | 
 |  | +                //合同号
 | 
											
												
													
														|  | 
 |  | +                //往来单位
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +                //给冲预付借款赋值
 | 
											
												
													
														|  | 
 |  | +                int rowIndex = this.getModel().createNewEntryRow("writeoffmoney");
 | 
											
												
													
														|  | 
 |  | +                this.getModel().setValue("curraccloanamount",amount,rowIndex);
 | 
											
												
													
														|  | 
 |  | +                this.getModel().setValue("sourceentrycostdept",department,rowIndex);
 | 
											
												
													
														|  | 
 |  | +                this.getModel().setValue("sourceentrycostcompany",payorg,rowIndex);
 | 
											
												
													
														|  | 
 |  | +                //刷新冲预付借款分录
 | 
											
												
													
														|  | 
 |  | +                this.getView().updateView("writeoffmoney");
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  }
 |  |  }
 |