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

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

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

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

如何实现系统库存关帐、存货关帐校验信息增加单据创建人


说明:

  1. 目前某些客户关帐时出现一些单据校验类不通过,想及时通知相关人员处理,需要在关帐校验信息中显示创建人,好及时知会对应人员处理。

  2. 系统库存关帐、存货关帐相关校验信息,是可以通过二开关帐插件处理。相关说明可以参考:

  3. 下面以具体的实现库存关帐、存货关帐关于:单据未审核、暂存、盘点单未审核校验信息增加创建人。供客户二开实现参考


步骤:

(下面以实现:库存关帐、存货关帐关于 单据未审核、暂存、盘点单未审核 校验信息增加创建人)

    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>();
               

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

如何实现系统库存关帐、存货关帐校验信息增加单据创建人说明:目前某些客户关帐时出现一些单据校验类不通过,想及时通知相关人员处理,需要...
点击下载文档文档为doc格式

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

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