[二开方案]凭证保存时检查凭证日期是不大于之前凭证

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

[二开方案]凭证保存时检查凭证日期是不大于之前凭证

官方标准功能未支持凭证保存时检查凭证日期是不大于之前凭证的凭证日期,但部分客户有类似的需求,这里给出一个采用Python插件的二开方案,以扩展星空的功能。

基本思路:该插件需要注册在凭证元数据的表单插件后面,实现在BeforeSave时检查凭证日期,先查询数据库获得当前账簿下最新的凭证日期,然后和当前凭证的日期进行比较。

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from Kingdee.BOS.App.Data import *

def BeforeSave(e):
    vchDate=this.View.Model.GetValue("FDATE").ToString("yyyy-MM-dd")
    #this.View.ShowMessage(vchDate)
    maxtDate = GetMaxHistoryDate()
    if(vchDate<maxtDate):
        e.Cancel=1
        this.View.ShowErrMessage("当前凭证日期小于最近历史凭证日期:"+maxtDate+",请重新输入!")
        this.View.Model.SetValue("FDATE",maxtDate)

def GetMaxHistoryDate():
    bookid = this.View.Model.GetValue("FACCOUNTBOOKID")["Id"]
    sql="/*dialect*/ SELECT CONVERT(CHAR(10), MAX(FDATE),120) AS FMAXDATE FROM T_GL_VOUCHER WHERE FACCOUNTBOOKID="+str(bookid)
    return str(DBUtils.ExecuteScalar(this.Context,sql,'2000-01-01'))

需要注意的是,这里检查条件只考虑了账簿,并没有考虑期间和凭证字,有需要的用户可以自行添加上,以满足更多个性化需求。

[二开方案]凭证保存时检查凭证日期是不大于之前凭证

官方标准功能未支持凭证保存时检查凭证日期是不大于之前凭证的凭证日期,但部分客户有类似的需求,这里给出一个采用Python插件的二开方案,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息