有源单批号拣货按最小包装量倍数拣货

一、【业务需求】
商品的单位是基本单位包,库存单位也是包;下单时最小包装数为25;销售出库根据先进先出拣货,可能会存在A批次库存 10 拣货10,B批次库存30 拣货15的情况,可否控制 先进先出拣货根据最小包装数去拣货;例如:订单数量下单数量 50包 ;若C批次库存 36包; 拣货可检25包,D批次 库存26 包,拣货拣25包;即按批次按最小包装的倍数拣货 |
二、【功能分析】
二次开发步骤:
1.编写插件继承批号拣货插件基类;
2.根据业务需要重载对应事件RegexUseableInvData,该事件用于处理拣货前处理获取的即时库存数据, 获取到对应物料的【最小包装量】设置,设置批号拣货返回的数量,不直接取即时库存数量,而是:向下取整(即时库存量/最小包装量)*最小包装量
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Permission.Objects;
using Kingdee.BOS.Util;
using Kingdee.K3.SCM.App.Core.ConvertBusinessService;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespace Kingdee.K3.SCM.App.Stock.CustomizePlugIn
{
public class LotPickIncreaseQtyFilter : AbstractLotPickPlugIn
{
public override void RegexUseableInvData(Dictionary<long, DataTable> dctinvDatas)
{
base.RegexUseableInvData(dctinvDatas);
foreach (var item in dctinvDatas)
{
// 获取最小包装量
string stockSql = string.Format(@"SELECT FINCREASEQTY FROM t_BD_MaterialPlan WHERE FINCREASEQTY != 0 and FMATERIALID = {0}", item.Key);
using (IDataReader dataReader = DBUtils.ExecuteReader(this.Ctx, stockSql))
{
while (dataReader.Read())
有源单批号拣货按最小包装量倍数拣货
一、【业务需求】商品的单位是基本单位包,库存单位也是包;下单时最小包装数为25;销售出库根据先进先出拣货,可能会存在A批次库存 10 ...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



