一、需求背景
某公司在使用【融资管理】的借款单处理业务时,由于没有启用“借款合同”单据,则使用“借款单”来管理公司的相关融资业务,并且系统环境更新了2023.10月资金大补丁【PT172651】
本篇主要解决特性功能场景以及一般融资情形下,针对多次发放的借款每次录入可能会造成“借款利率”影响字段的不一致,而使得利率取值错误,导致预测、测算、预提、付息等计算利息场景的利息错误;
二、痛点
借款单序时簿中,没有锁定相关的“借款利率影响字段”,例如:“利率类型”、“重定价日”、“重定价周期”等;
业务场景:
1、多次发放借款单,适用利率按照“每次发放”,在第二次发放时,未锁定“利率类型”影响利率的字段;
2、多次发放借款单,适用利率按照“首次发放”,在第二次发放时,未锁定“利率类型”、“重定价日”、“重定价周期”等影响利率的字段;
这样导致多次发放借款单的适用利率可能每次发放的利率影响字段不同,预测利息就会有问题!
那么如何处理才能解决这个问题呢?
三、解决思路
1、可以根据借款单上的“选择合同”字段,如果有值,那么就说明本次录入的借款单是非首次发放的借款单,如果这个字段为空则说明,录入的是首次发放的借款单或者压根就不是多次发放的借款单;
2、二开DEP“界面加载”后置脚本,监听这个“选择合同”字段,通过脚本来处理!
四、关键步骤
1、在【编辑界面】借款单的“界面加载”放置【后置脚本】
进入“动态拓展平台(高级版)【DEP】”中,拓展“借款”方案;
在借款【编辑界面】中的【拓展定义】,放置【界面加载】的如下【后置脚本】;
PS:之所以放置后置脚本,是因为要监听用户是否输入了“选择合同”,从而根据锁定相关字段;
脚本如下:
//选择合同后,锁定“利率类型”、“重定价周期”字段;确保多次发放的利率是正确的; pluginCtx.getKDBizPromptBox("prmtConBill").addDataChangeListener(function(event,methodName){ if(methodName == "equals"){ return this ==event; } var prmtConBill = pluginCtx.getKDBizPromptBox("prmtConBill").getValue(); if(prmtConBill == null){ pluginCtx.getKDBizPromptBox("prmtIntRateType").setEditable(true); pluginCtx.getKDBizPromptBox("prmtIntRateType").setEnabled(true); pluginCtx.getKDDatePicker("dpFirstRateAdjustDate").setEditable(true); pluginCtx.getKDDatePicker("dpFirstRateAdjustDate").setEnabled(true); pluginCtx.getKDFormattedTextField("txtRateAdjustPeriod").setEditable(true); pluginCtx.getKDFormattedTextField("txtRateAdjustPeriod").setEnabled(true); }else{ pluginCtx.getKDBizPromptBox("prmtIntRateType").setEditable(false); pluginCtx.getKDBizPromptBox("prmtIntRateType").setEnabled(false); pluginCtx.getKDDatePicker("dpFirstRateAdjustDate").setEditable(false); pluginCtx.getKDDatePicker("dpFirstRateAdjustDate").setEnabled(false); pluginCtx.getKDFormattedTextField("txtRateAdjustPeriod").setEditable(false); pluginCtx.getKDFormattedTextField("txtRateAdjustPeriod").setEnabled(false); } } );
五、效果展示
PS:基本实现和场景是这样,如果有不符合实际业务的情况,可评论下,一起探讨!
另外“重定价日”应该是由于代码控制,没锁成功!
其他锁定需求也可参考此脚本!
推荐阅读