生产退料单自定义数量字段怎么包含在未领料数量的计算逻辑中?

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

生产退料单自定义数量字段怎么包含在未领料数量的计算逻辑中?

【应用场景】

客户自己需要加了一个退料类型的字段,这个字段要包含在未领料数量的计算逻辑上



【实现步骤】

<1>未领数量=应发-已领+良品退料+来料不良数量-多领退回数量,客户需要在用料清单上加一个字段,用于生产退料单第四种退料类型反写回来。 二开一个反写插件,挂在生产退料单的反写插件上面,如下图:



<2>二开代码实例如下:


using Kingdee.BOS.Core.BusinessFlow.PlugIn.Args;
using Kingdee.K3.Core.MFG;
using Kingdee.K3.MFG.App.ServicePlugIn;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EK.Kingdee.K3.MFG.PRD.App.ServicePlugIn
{
    public class ReturnMtrlBussinessFlow : AbstractMfgBusinessFlowServicePlugIn
    {
        /// <summary>
        /// 获取是否跟新wip和已消耗数参数
        /// </summary>
        /// <param name="e"></param>
        public override void BeforeTrackBusinessFlow(BeforeTrackBusinessFlowEventArgs e)
        {
            base.BeforeTrackBusinessFlow(e);
            base.GetIsUpdateWipConsume();
        }

        /// <summary>
        /// 待反写用料清单分录内码
        /// </summary>
        private List<long> UpdatePpbomEntryIds { get; set; }

        /// <summary>
        /// 重载此事件用于收集PPBOM分录ID
        /// </summary>
        /// <param name="e"></param>
        public override void AfterCommitAmount(AfterCommitAmountEventArgs e)
        {
            base.AfterCommitAmount(e);
            if (!base.IsUpdateWipConsume) return;

            if (UpdatePpbomEntryIds == null) UpdatePpbomEntryIds = new List<long>();
            if (string.CompareOrdinal(e.Rule.SourceFormId, MFGFormIdConst.SubSys_PRD.PPBOMBill) == 0)
            {
                UpdatePpbomEntryIds.Add(e.SourceActiveRow.GetDynamicObjectItemValue<long>("Id"));
            }
        }

        /// <summary>
        /// 所有单据反写完成,统一反写用料清单的未领数量
        /// </summary>
        /// <param name="e"></param>
        public override void FinishWriteBack(FinishWriteBackEventArgs e)
        {
            base.FinishWriteBack(e);
            if (!UpdatePpbomEntryIds.IsEmpty())
            {
                //这里通过SQL语句更新未领数量
            }
        }
    }
}






生产退料单自定义数量字段怎么包含在未领料数量的计算逻辑中?

【应用场景】客户自己需要加了一个退料类型的字段,这个字段要包含在未领料数量的计算逻辑上【实现步骤】<1>未领数量=应发-已领+良品退料+...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息