【二开指导】凭证允许汇率为负及本位币和原币正负方向不一致原创
5人赞赏了该文章
655次浏览
编辑于2023年04月21日 15:14:04
【二开指导】凭证允许汇率为负及本位币和原币正负方向不一致
主要思路:通过重新修改官方插件再编译后实现
一、允许汇率为负
通常当汇率为负时,会提示“汇率不合法”,修改方法如下:
l 位置:凭证保存校验
涉及组件名:Kingdee.K3.FIN.GL.App.ServicePlugIn.dll
类及方法名:GLVoucher.SaveValidator.CheckEntryExchangeRate():
处理方法:增加为结转损益凭证时汇率取绝对值的逻辑
string billKey = this.dyObj.GetValue<string>("FSourceBillKey_Id"); if (billKey == VoucherTypeConst.TRANSFERPL) { this.dyEntryCol[i]["EXCHANGERATE"] = Math.Abs(dRate); } else { if (strMsgRate.IsNullOrEmptyOrWhiteSpace()) { strMsgRate = "第{0}行凭证分录的[汇率]不合法,请重新输入!"; } AddError(dyObj, i, string.Format(strMsgRate, i + 1)); }
二、允许本位币和原币正负方向不一致
涉及三处位置,分别如下:
l 位置:凭证保存校验
涉及组件名:Kingdee.K3.FIN.GL.App.ServicePlugIn.dll
类及方法名:GLVoucher.SaveValidator.CheckEntryAmount():
处理方法:增加为结转损益凭证时跳过该检查的逻辑
if(dAmount * dAmountFor < 0 && this.dyObj.GetValue<string>("FSourceBillKey_Id")!= VoucherTypeConst.TRANSFERPL)
l 位置:凭证审核校验
涉及组件名:Kingdee.K3.FIN.GL.App.ServicePlugIn.dll
类及方法名:GLVoucher.Audit.AuditValidator.CheckVoucher():
处理方法:增加为结转损益凭证时跳过该检查的逻辑
if(lstAmountSeq.Count > 0 && this.dyObj.GetValue<string>("FSourceBillKey_Id")!= VoucherTypeConst.TRANSFERPL)
l 位置:凭证过账校验
涉及组件名:Kingdee.K3.FIN.GL.App.Core.dll
类及方法名:AbstractVoucherPost.VoucherGuidePostCheck():
处理方法:注释掉本位币原币方向一致性检查方法
//lstSqlObj.Add(CheckAmount(ctx));
赞 5
5人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0