批号拣货按库存状态设置拣货

一、【业务需求】
拣货场景:一个仓库下的物料库存状态涉及"可用"、"不良"、"废品"、"冻结"等, 拣货只按照物料+库存状态拣货,仓库不管,目的是要拣出"可用"库存状态的物料,想要在库存状态上有类似仓库"参与拣货"的控制,拣货服务再配置勾选"只考虑参与拣货的库存状态" |
二、【功能分析】
当前系统的拣货服务功能只支持到仓库级的配置,控制仓库拣货或者拣货,对于仓库里面又区分个别库存状态不参与拣货,目前没有实现,只能通过二开拣货插件的方式处理。
二开拣货插件相关文章参考:
1、批号拣货插件
二次开发步骤:
1、库存状态扩展字段"参与拣货",用于对拣货库存数据的过滤

2、编写插件继承批号拣货插件基类;
3、根据业务需要重载对应事件RegexUseableInvData,该事件用于处理拣货前处理获取的即时库存数据, 获取到可用于拣货的库存状态设置,添加过滤到拣货的即时库存数据。
using Kingdee.BOS.App.Data;
using Kingdee.K3.SCM.App.Core.ConvertBusinessService;
using System;
using System.Collections.Generic;
using System.Data;
namespace Kingdee.K3.SCM.App.Stock.CustomizePlugIn
{
public class LotStockStatusFilter : AbstractLotPickPlugIn
{
public override void RegexUseableInvData(Dictionary<long, DataTable> dctinvDatas)
{
base.RegexUseableInvData(dctinvDatas);
List<long> dataRuleStockStatusIds = new List<long>();
string stockSql = string.Format(@"SELECT FSTOCKSTATUSID from T_BD_STOCKSTATUS WHERE FAVAILABLEPICKING = 1");
using (IDataReader dataReader = DBUtils.ExecuteReader(this.Ctx, stockSql))
{
while (dataReader.Read())
{
dataRuleStockStatusIds.Add(Convert.ToInt64(dataReader["FSTOCKSTATUSID"]));
}
dataR批号拣货按库存状态设置拣货
一、【业务需求】拣货场景:一个仓库下的物料库存状态涉及"可用"、"不良"、"废品"、"冻结"等, 拣货只按照物料+库存状态拣货,仓库不管,目...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



