关联下推的付款申请单如何通过DEP配置快速录入需要申请付款的金额?

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

关联下推的付款申请单如何通过DEP配置快速录入需要申请付款的金额?

1.1.1 业务场景简介

在做付款申请时,每次的付款都是按应付单的某一固定比例来进行支付申请,在应付单(供应商一次性开出发票)下推付款申请单时,每一分录的申请付款金额都需手工计算修改工作量太大,而且容易出错,希望在付款申请单表头增加“本次付款比例”字段,录入后每一分录行上的“申请付款金额”自动按照本次付款比例*(累计付款金额+未付款金额)得出,减少人工计算与录入的工作量与出错率。

1.1.2 简要实现方案

付款申请单上增加“付款比率”字段,单价型,允许编辑,也支持BOTP配置,并增加此字段在值变动后的逻辑:自动计算和修改分录的申请付款金额(通过脚本,增加DataChange监听器实现)。

1.1.3 DEP详细开发步骤

1、导入实体“付款申请单”

2、在“界面--编辑界面-付款申请单”节点,打开付款单编辑界面

3、在单据头增加一个控件(单价型),输入字段名称(payRate)、字段显示名称(付款比率)等属性,列表界面可见勾选。

   

4、在界面加载(onload)添加前置脚本(处理避免重复添加监听器)

var   payRateChangeEvent =   pluginCtx.getUIContext().get("payRateChangeEvent");

if   (payRateChangeEvent != null){

         pluginCtx.getKDFormattedTextField("txtpayRate").removeDataChangeListener(payRateChangeEvent);

}

5、界面加载(onload)添加后置脚本(增加付款比率的监听器,当值改变时自动计算和修改分录的申请付款金额)

//累计付款金额   totalPayAmt  未付款金额   unpayAmount 申请付款金额   reqPayAmount

var   payRateChangeEvent =   pluginCtx.getUIContext().get("payRateChangeEvent");

if   (payRateChangeEvent == null){

         payRateChangeEvent = function(event,methodName){     

                   if(methodName ==   "equals"){    return this ==   event; }      

         if (methodName ==   "dataChanged" &&    (pluginCtx.getOprtState() == "ADDNEW" ||   pluginCtx.getOprtState()=="EDIT")    ) 

         {

                   var payRate =   pluginCtx.getKDFormattedTextField("txtpayRate");

                   var rate =   payRate.getValue().divide(new    java.math.BigDecimal("100") ) ;

                   if (rate != null ){

                   var table =   pluginCtx.getKDTable("kdtEntrys");

                   var rowCount =   table.getRowCount();

                   if ( rowCount != null){

                   for(var   i=0;i<rowCount;i++){

                            //总应付金额

                            var totalPayAmt =   table.getCell(i,"totalPayAmt").getValue();

                            var unpayAmount =   table.getCell(i,"unpayAmount").getValue();

                            if (totalPayAmt !=   null && unpayAmount != null ){

                            var totalAmount =   totalPayAmt.add(unpayAmount);

                            //计算本次申请付款金额        

                             table.getCell(i,"reqPayAmount").setValue(   rate.multiply(totalAmount));

                            }

                   }

         }

         }

         }       

         }

         pluginCtx.getUIContext().put("payRateChangeEvent",payRateChangeEvent);

         pluginCtx.getKDFormattedTextField("txtpayRate").addDataChangeListener(payRateChangeEvent);} 

6、保存、启用方案


关联下推的付款申请单如何通过DEP配置快速录入需要申请付款的金额?

1.1.1 业务场景简介在做付款申请时,每次的付款都是按应付单的某一固定比例来进行支付申请,在应付单(供应商一次性开出发票)下推付款申...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息