应付付款申请如何在明细增加账户名称或二开字段?

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

应付付款申请如何在明细增加账户名称或二开字段?

1 简介

1.1 功能介绍

付款申请明细选择往来户后,往来账户可根据往来户的默认银行信息携带到付款申请,但没有携带账户名称及其他信息。现场希望在付款申请上二开处理携带往来户下银行信息的其他字段。

1.2 应用场景

1、付款申请审批时,不仅希望看到往来账户、往来银行,还希望看到账户名称;

2、供应商的银行信息明细增加了二开字段,需要展示到付款申请。

2 主要操作

2.1 在供应商的银行信息分录增加两个文本类型的二开字段

上传图片


2.2 在付款申请单分录,同样增加两个文本类型的二开字段

上传图片


2.3 新增付款申请单编辑界面插件,插件逻辑如下所示:

```java

package kd.fi.ap.formplugin;

 

import kd.bos.bill.AbstractBillPlugIn;

import kd.bos.dataentity.entity.DynamicObject;

import kd.bos.dataentity.entity.DynamicObjectCollection;

import kd.bos.dataentity.utils.ObjectUtils;

import kd.bos.entity.datamodel.events.ChangeData;

import kd.bos.entity.datamodel.events.PropertyChangedArgs;

import kd.bos.servicehelper.BusinessDataServiceHelper;

 

/**

 * @description: 付款申请单编辑界面插件

 * @author: renjie_li

 * @create: 2024-07-02 14:56

 **/

public class ApplyPayBillEditTest extends AbstractBillPlugIn {

 

    /**

     * 新增一个值改变事件

     * @param e

     */

    @Override

    public void propertyChanged(PropertyChangedArgs e) {

        //key为值改变字段标识,比如往来户改变,则key = e_asstact

        String key = e.getProperty().getName();

        //获取改变的数据

        ChangeData[] changeData = e.getChangeSet();

        switch (key) {

            //如果往来户改变,则会进入下面的方法

            case "e_asstact":

                asstactChanged(changeData);

                break;

            default:

                break;

        }

    }

 

    /**

     * 往来户改变,可以同时给一些字段赋值

     * @param data

     */

    private void asstactChanged(ChangeData[] data) {

        // 当前分录行

        int rowIndex = data[0].getRowIndex();

        // 选择后的新值

        Object newValue = data[0].getNewValue();

        // 新值不为空,可以进行相关字段获取以及赋值

        if (!ObjectUtils.isEmpty(newValue)) {

            DynamicObject asstActInfo = (DynamicObject) newValue;

            // 判断一下往来户是否为空

            if(asstActInfo!=null){

                //获取往来户类型,付款申请单往来户类型分为:供应商,人员,公司,客户

                String asstactType = asstActInfo.getDataEntityType().getName();

                switch (asstactType) {

                    //往来户类型 = 人员

                    case "bos_user":

                        // 以供应商举例

                        break;

                    //往来类型 = 客户

                    case "bd_customer":

                        // 以供应商举例

                        break;

                    //往来户类型 = 供应商

                    case "bd_supplier":

                        // 想携供应商相关信息的在这里查询,示例如下

                        //这里重新查询一次的意义是,界面上取的基础资料不全,只有引用了的字段才能查到。重新查询一下,是把供应商所有数据都取过来

                        asstActInfo = BusinessDataServiceHelper.loadSingleFromCache(asstActInfo.getPkValue(), "bd_supplier");

                        // 取供应商银行信息分录数据,其他分录类似

                        DynamicObjectCollection bankInfoCollection = asstActInfo.getDynamicObjectCollection("entry_bank");

                        // 有默认,就取默认;否则,取第一条

                        DynamicObject bankInfo = null;

                        if (bankInfoCollection.size() > 0) {

                            bankInfo = bankInfoCollection.get(0);

                        }

                        for (int i = 0; i < bankInfoCollection.size(); i++) {

                            DynamicObject bank = bankInfoCollection.get(i);

                            if (bank.getBoolean("isdefault_bank")) {

                                bankInfo = bank;

                                break;

                            }

                        }

                        if (bankInfo != null) {

                            // 获取往来户银行信息页签扩展字段

                            String textTest1 = bankInfo.getString("textfieldtest1");

                            String textTest2 = bankInfo.getString("textfieldtest2");

                            // 给付款申请单上的扩展字段赋值

                            this.getModel().setValue("textfieldtext1", textTest1, rowIndex);

                            this.getModel().setValue("textfieldtext2", textTest2, rowIndex);

                        }

                        break;

                    //往来类型 = 公司

                    case "bos_org":

                        // 以供应商举例

                        break;

                    default:

                        break;

                }

            }

        }

    }

}

```

应付付款申请如何在明细增加账户名称或二开字段?

1 简介1.1 功能介绍付款申请明细选择往来户后,往来账户可根据往来户的默认银行信息携带到付款申请,但没有携带账户名称及其他信息。现场...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息