电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

单据保存、反审核等操作,判断是否库存已关账、是否生成凭证校验二开插件

来源:金蝶云社区作者:金蝶2024-09-2310

单据保存、反审核等操作,判断是否库存已关账、是否生成凭证校验二开插件

单据在保存、审核、反审核等操作时,有时需要校验单据所在日期是否已经关账、该单据是否已经生成凭证。

插件注册在相应的操作上,如保存操作。库存关账是否生成凭证校验.zip


代码示例如下(有源码附件):

import clr
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.ServiceHelper')

from System import * 
from System import StringComparison
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Core.Validation import *
from Kingdee.BOS.Log import Logger
from Kingdee.BOS.ServiceHelper import * 

def OnAddValidators(e):
  #判断是否关账 
  validator = StockOrgCloseDateValidator()
  validator.AlwaysValidate = True
  validator.EntityKey = "FBillHead"
  e.Validators.Add(validator)
  
  #单据是否生成凭证
  validator2 = BillVoucherValidator()
  validator2.AlwaysValidate = True
  validator2.EntityKey = "FBillHead"
  e.Validators.Add(validator2)

#判断是否关账                
class StockOrgCloseDateValidator(AbstractValidator):
  def Validate(self, dataEntities, validateContext, ctx):
    if len(dataEntities) == 0:
      return
            
    for bill in dataEntities:
      targetOrgId = bill["StockOrgId_Id"]  # 单据库存组织
      sqlText = "select max(FCLOSEDATE) FCLOSEDATE FROM T_STK_CLOSEPROFILE WHERE FCATEGORY = 'STK' and FORGID = " + str(targetOrgId); 
      dyObjs = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlText)
      if dyObjs.Count == 0:
        continue        
      date = Convert.ToDateTime(bill["Date"])  # 单据业务日期
      closeDate = Convert.ToDateTime(dyObjs[0]["FCLOSEDATE"])
      if date < closeDate:
        errorMsg = "单据日期{0}必

单据保存、反审核等操作,判断是否库存已关账、是否生成凭证校验二开插件

单据在保存、审核、反审核等操作时,有时需要校验单据所在日期是否已经关账、该单据是否已经生成凭证。插件注册在相应的操作上,如保存操作...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信