根据单据类型校验创建人和审核人要求不一致
一、【业务需求】
直接调拨单想要根据单据类型设置创建人跟审核人不为同一人。
二、【功能分析】
当前系统参数只能按整个单据进行设置,无法按单据类型设置
administrator角色登录,【基础管理】→【公共设置】→【单据参数设置】
二、【实现】
import clr clr.AddReference("mscorlib") clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.ServiceHelper') from System import * from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Core.Validation import * from Kingdee.BOS.Log import Logger def OnPreparePropertys(e): e.FieldKeys.Add("FBillTypeID"); e.FieldKeys.Add("FCreatorId"); def OnAddValidators(e): validator = ValidateAuditUserByBillType() validator.EntityKey = "FBillHead" validator.AlwaysValidate = True e.Validators.Add(validator) class ValidateAuditUserByBillType(AbstractValidator): def Validate(self, dataEntities, validateContext,ctx): for bill in dataEntities: billId = Convert.ToString(bill["Id"]) billType = bill.DataEntity["BillTypeID"] billTypeNumber = Convert.ToString(billType["Number"]) # 单据类型编码 billTypeName = Convert.ToString(billType["Name"]) # 单据类型名称 creatorId = Convert.ToInt64(bill.DataEntity["CreatorId_Id"]) userId = this.Context.UserId if creatorId == userId and billTypeNumber == "ZJDB01_SYS": msg = '''当前用户与创建人相同,单据类型为【{0}-{1}】的直接调拨单,审核校验不通过'''.format(billTypeNumber, billTypeName) info = ValidationErrorInfo("AuditUserByBillType",billId, bill.DataEntityIndex,bill.RowIndex,billId, msg, "单据创建人与审核人校验", ErrorLevel.Error) validateContext.AddError(None,info)
根据单据类型校验创建人和审核人要求不一致
一、【业务需求】直接调拨单想要根据单据类型设置创建人跟审核人不为同一人。二、【功能分析】当前系统参数只能按整个单据进行设置,无法按...
点击下载文档
本文2024-09-16 19:04:24发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-26220.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章