说明:标准产品已经在2020年12月24日的补丁中处理了计划订单上的“计划员”等于计划订单的创建人,时机是计划订单切换物料时,如果用户关联了计划员,在物料F8选值返回时会自动给计划员赋值。
前置条件:用户关联的关联对象,已设置成了当前组织下的计划员,参考下面这帖子:https://vip.kingdee.com/article/171867
单据头实体服务规则里面有一个携带物料的计划员的,去掉之后再加上这个插件:
/// <summary>
/// 加载后执行
/// </summary>
/// <param name="e"></param>
public override void AfterBindData(EventArgs e)
{
if (this.View.OpenParameter.Status == OperationStatus.ADDNEW)
{
SetPlanerId();
}
}
/// <summary>
/// 创建单据的时候根据当前用户设置计划员
/// </summary>
private void SetPlanerId()
{
long planerId = this.View.Model.DataObject.GetDynamicValue<long>(CONST_PLN_PLANORDER.CONST_FBillHead.ORM_PlanerId_Id);
if (planerId <= 0)
{
long OrgId = this.Context.CurrentOrganizationInfo.ID;
planerId = BD.ServiceHelper.StaffServiceHelper.GetUserOperatorId(this.Context, this.Context.UserId, OrgId, Kingdee.K3.Core.SCM.OperatorTypeConst.PLANER);
this.View.Model.SetValue(CONST_PLN_PLANORDER.CONST_FBillHead.KEY_FPlanerId_Id, planerId);
}
}
推荐阅读