获取库存服务货主类型过滤不生效的处理方案原创
金蝶云社区-邱育华
邱育华
3人赞赏了该文章 360次浏览 未经作者许可,禁止转载编辑于2022年05月13日 10:42:46

一、【需求问题】

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

image.png

image.png

从即时库存看当前物料货主类型为供应商的库存合计应该为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.png


获取效果:

image.png

image.png

图标赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0