获取库存服务货主类型过滤不生效的处理方案

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

获取库存服务货主类型过滤不生效的处理方案

一、【需求问题】

简单生产领料单上配置的获取库存的服务,匹配字段都维护了货主跟货主类型,当VMI简单生产领料时,获取到的库存是即时库存全部的库存,而不是按货主类型【供应商】进行匹配

image.webp

image.webp

从即时库存看当前物料货主类型为供应商的库存合计应该为749 + (-20) = 729, 获取库存服务返回的库存为754,将货主类型为业务组织的也一并统计了


二、【功能分析】

获取库存服务,根据服务配置上的维度字段从当前单据明细分录中取得对应值,匹配即时库存,单据字段为空时则不匹配,

但是货主和货主类型,保管者和保管者类型处理比较特殊,当货主为空时,货主类型有值也没法参与到数据过滤,即:货主类型和货主同时不为空才进行字段匹配过滤,导致出现问题


根据系统预留的库存查询插件入口,将匹配返回的库存数据做二次处理,将货主类型和货主,保管者类型和保管者分别进行过滤。

using Kingdee.BOS.Util;
using Kingdee.K3.Core.SCM.Args;
using Kingdee.K3.SCM.Common.BusinessEntity.STK;
using System.Collections.Generic;
using System.Data;
using System.Linq;

namespace Kingdee.K3.SCM.Stock.App.CustomizePlugIn
{
    public class OwnerGetInvStock : AbstractGetInvStockPlugIn
    {
        public override IEnumerable<STK_Inventory> ApplyExtFilter(IEnumerable<STK_Inventory> data, GetInvStockDetailArg item)
        {
            if (!item.OwnerTypeId.IsNullOrEmptyOrWhiteSpace())
            {
                data = from p in data
                       where p.OwnerTypeId == item.OwnerTypeId
                       select p;
            }
            if (item.OwnerId != 0)
            {
                data = from p in data
                       where p.OwnerId == item.OwnerId
                       select p;
            }
            if (!item.KeeperTypeId.IsNullOrEmptyOrWhiteSpace() )
            {
                data = from p in data
                       where p.KeeperTypeId == item.KeeperTypeId
                       select p;
            }
            if (item.KeeperId != 0)
            {
                data = from p in data
                       where p.KeeperId == item.KeeperId
                       select p;
            }
            
            return data;
        }
    }
}

处理步骤:

1、上传组件Kingdee.K3.SCM.Stock.App.CustomizePlugIn.dll到bin目录,重启IIS

2、配置插件:Kingdee.K3.SCM.Stock.App.CustomizePlugIn.OwnerGetInvStock,Kingdee.K3.SCM.Stock.App.CustomizePlugIn


image.webp


获取效果:

image.webp

image.webp

组件及代码参考.rar


我的怎么不行了,现在用的热启动

获取库存服务货主类型过滤不生效的处理方案

一、【需求问题】简单生产领料单上配置的获取库存的服务,匹配字段都维护了货主跟货主类型,当VMI简单生产领料时,获取到的库存是即时库存...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息