有源单批号拣货不拣已经过期的物料
一、【业务需求】有源单批号拣货不拣已经过期的物料
二、【功能分析】
物料上有:1、启用批号管理;2、启用保质期管理;3、启用批号附属信息 相关控制参数。
批号、生产日期、有效期至是库存的三个维度
在保质期作为批号的附属信息时,一个批号仅有一个保质期(生产日期、有效期至)
保质期不是批号的附属信息时,一个批号允许有多个保质期(生产日期、有效期至)
二次开发步骤:
1.编写插件继承批号拣货插件基类;
2.批号拣货会根据相关维度条件获取即时库存数据,返回的即时库存中有两个字段"生产日期-FPRODUCEDATE"、"保质期至-FEXPIRYDATE", 用保质期至与当前时间进行比较,当当前时间 > 保质期至时,则将该库存记录移除
CASE WHEN T_BD_MATERIALSTOCK.FISEXPPARTOFLOT = '1' THEN T_BD_LOTMASTER.FPRODUCEDATE ELSE TI.FPRODUCEDATE END AS FPRODUCEDATE CASE WHEN T_BD_MATERIALSTOCK.FISEXPPARTOFLOT = '1' THEN T_BD_LOTMASTER.FEXPIRYDATE ELSE TI.FEXPIRYDATE END AS FEXPIRYDATE
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) { int count = item.Value.Rows.Count; var invTable = item.Value; List<int> removeRows = new List<int>(); for (var i = count - 1; i >= 0; i--) { DataRow row = invTable.Rows[i]; DateTime expiryDate = Convert.ToDateTime(row["FEXPIRYDATE"]); if(DateTime.Now > expiryDate) { removeRows.Add(i); } } foreach (var index in removeRows) { invTable.Rows.RemoveAt(index); } } } } }
3.注册插件至对应服务配置界面。
以上二开仅供参考,是否能够达到业务要求有待实际账套业务数据验证!
有源单批号拣货不拣已经过期的物料
一、【业务需求】有源单批号拣货不拣已经过期的物料二、【功能分析】批号拣货插件 批号捡货二次开发插件示例 有源单批号拣货仓库过滤【库存...
点击下载文档
本文2024-09-16 19:05:58发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-26381.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章