关联下推的付款申请单如何通过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配置快速录入需要申请付款的金额?
本文2024-09-22 19:06:03发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-105033.html