【客户需求】关帐校验信息增加单据创建人

如何实现系统库存关帐、存货关帐校验信息增加单据创建人
说明:
目前某些客户关帐时出现一些单据校验类不通过,想及时通知相关人员处理,需要在关帐校验信息中显示创建人,好及时知会对应人员处理。
系统库存关帐、存货关帐相关校验信息,是可以通过二开关帐插件处理。相关说明可以参考:
下面以具体的实现库存关帐、存货关帐关于:单据未审核、暂存、盘点单未审核校验信息增加创建人。供客户二开实现参考。
步骤:
(下面以实现:库存关帐、存货关帐关于 单据未审核、暂存、盘点单未审核 校验信息增加创建人)
1.二开关帐校验插件,继承AbstractInvAccountValidatorPlugIn,重载InvAccountOffModifyErrInfo,根据已校验的相关信息,再获取对应单据创建人信息,追加至校验信息中。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using Kingdee.K3.Core.SCM.STK;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS;
namespace TestInvAccountValidatorPlugIn
{
[Description("校验信息增加创建人-关账插件")]
public class AddCreatorForInvAccountInfo : AbstractInvAccountValidatorPlugIn
{
public override bool InvAccountOffModifyErrInfo(bool isCallByOwner, List<StockOrgOperateResult> errInfo)
{
bool bModified = false;
List<OperateErrorInfo> stkBillErrInfos = new List<OperateErrorInfo>();
foreach (var info in errInfo)
{
//库存非忽略性异常校验信息:包含未审核单据校验信息
if (info.ErrInfo != null)
{
var errinfo = info.ErrInfo.Where(p => p.ErrType == 100).ToList();
if (errinfo != null && errinfo.Count > 0)
stkBillErrInfos.AddRange(info.ErrInfo.Where(p => p.ErrType == 100));
}
//暂存单据校验信息
if (info.StkBillDraftErrInfo != null && info.StkBillDraftErrInfo.Count > 0)
stkBillErrInfos.AddRange(info.StkBillDraftErrInfo);
//盘点单校验信息
if (info.StkCountBillAuditErrInfo != null && info.StkCountBillAuditErrInfo.Count > 0)
stkBillErrInfos.AddRange(info.StkCountBillAuditErrInfo);
}
//无上述校验信息时,返回不处理
if (stkBillErrInfos.Count <= 0)
return bModified;
Dictionary<string, string> dCrearorInfo = new Dictionary<string, string>();
FormMetadata billMeta;
IMetaDataService metaService = Kingdee.BOS.Contracts.ServiceFactory.GetService<IMetaDataService>(this.Context);
IQueryService service = Kingdee.BOS.App.ServiceHelper.GetService<IQueryService>();
Dictionary<string, List<string>> dFormidToKeys = stkBillErrInfos.GroupBy(p => p.ErrObjType).ToDictionary(p => p.Key, o => o.Select(p => p.ErrObjKeyID).ToList());
foreach (var dInfo in dFormidToKeys)
{
billMeta = (FormMetadata)metaService.Load(this.Context, dInfo.Key);
var createrField = billMeta.BusinessInfo.GetFieldList().Where(p => p is CreaterField).FirstOrDefault();
if (createrField == null)
continue;
List<SelectorItemInfo> selector = new List<SelectorItemInfo>();
selector.A【客户需求】关帐校验信息增加单据创建人
如何实现系统库存关帐、存货关帐校验信息增加单据创建人说明:目前某些客户关帐时出现一些单据校验类不通过,想及时通知相关人员处理,需要...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



