计划运算产生的计划订单如何按“库存单位”计算“订单确认数量”

需求描述:物料的采购单位或者生产单位与库存单位不一致,计划员核对数量的时候是想看库存单位对应的订单确认数量。
解决方案:因为计划运算产生的计划订单不会调用计划订单的保存,因此无法在计划订单的保存操作上去二开,只能通过二开MRP数据模型中的插件去实现,详细解决方案如下:
1、计划订单增加计量单位字段和数量字段,具体如下:


2、二开插件继承标准产品MRP数据模型(MRP_DP_NC_CreateNetDemand)中的插件CreateNetDemandPolicy,重写CsdYieldRate 方法,将修改后插件注册到该数据模型的策略实现类处,如下图所示:

示例代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.BOS.Core.Metadata;
using Kingdee.K3.MFG.Common.BusinessEntity.PLN;
using Kingdee.K3.MFG.App;
using Kingdee.K3.Core.BD.ServiceArgs;
using Kingdee.K3.Core.MFG.PLN.MrpEntity;
using Kingdee.BOS.Orm.DataEntity;
namespace Kingdee.K3.MFG.PLN.App.MrpModel.PolicyImpl.NetCalc
{
public class test : CreateNetDemandPolicy
{
protected override void CsdYieldRate(MrpDemandContext demandContextRow, DynamicObject planOrderItem)
{
base.CsdYieldRate(demandContextRow, planOrderItem);
MrpCalcBillView.MaterialData materialRowView = demandContextRow.MaterialDataEntity;
MrpCalcBillView.MaterialStock materialstockView = demandContextRow.MaterialDataEntity;
long baseUnitId = materialRowView.BaseUnitID.Id;
long stockUnitId = materialstockView.StoreUnitID.Id;
MrpPlanOrderBillView planOrderBillView = planOrderItem;
decimal baseQty = planOrderBillView.BaseFirmQty;
GetUnitConvertRateArgs unitRat
计划运算产生的计划订单如何按“库存单位”计算“订单确认数量”
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



