[解锁库存插件]锁库、解锁二开代码原创
6人赞赏了该文章
2,601次浏览
编辑于2022年03月12日 10:33:58
“库存锁库是动态表单,要想实现锁库、解锁可以调用服务端方法实现:
Kingdee.K3.SCM.App.Core.StockLockService.SaveLockInfo
Kingdee.K3.SCM.App.Core.StockLockService.SaveUnLockInfo。
其中SaveLockInfo(this.Context, argsList); argsList 锁库参数可以反编译锁库客户端插件参考构建:
Kingdee.K3.SCM.Stock.Business.PlugIn.LockOperate
Kingdee.K3.SCM.Stock.Business.PlugIn.LockStockOperate
Kingdee.K3.SCM.Stock.Business.PlugIn.UnLockStockOperate。”
【订单类解锁库存】直接调用平台方法
using Kingdee.K3.SCM.ServiceHelper; List<LockStockArgs> lockStockArgs = StockServiceHelper.GetLockInfoByID(this.Context, string.Join(",", entryIds), "SaleOrder", false); lockStockArgs.ForEach(i => { i.UnLockQty = i.LockQty; //数量 i.UnLockBaseQty = i.LockBaseQty; //基本单位数量 i.UnLockSecQty = i.LockSecQty; //辅数量 i.UnLockNote = "xxx添加解锁"; }); StockServiceHelper.SaveUnLockInfo(this.Context, lockStockArgs, "SaleOrder");//会自动写锁库日志
【解锁库存】:根据维度信息找到即时库存ID,再根据即时库存ID查询锁库信息后解锁
StockLockService service = StockLockService.GetInstance(); //根据库存维度等信息查找即时库存 DynamicObject invStock = service.getInvStockID(this.Context, stockId, stockLocID, lotID, ownerTypeID, ownerID, materialID。。。。).FirstOrDefault(); if ( invStock!=null) { //根据即时库存ID查找锁库信息 List<LockStockArgs> lockStockArgs = service.GetLockInfoByID(this.Context , string.Format("'{0}'", Convert.ToString(invStock["FID"])), "Inv", true); //解锁数量 foreach (LockStockArgs arg in lockStockArgs) { arg.UnLockQty = Qty; arg.UnLockNote = "xxx解锁"; } StockServiceHelper.SaveUnLockInfo(this.Context, stockArgs, "Inv");//会自动写锁库日志 }
赞 6
6人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0