首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在从机会创建销售订单时填充自定义字段

在从机会创建销售订单时填充自定义字段
EN

Stack Overflow用户
提问于 2017-05-11 17:18:13
回答 1查看 356关注 0票数 0

我在screen (SO301000)上创建了一个自定义的字段联系人。现在,当用户从机会屏幕(CR304000)创建销售订单时,我需要填充这些字段。新的自定义领域联系是基于客户选择的机会。我可以看到,客户是自动填充,当我创建销售订单的机会,因为它是由设计。但是,如何对自定义字段执行相同的操作。

我尝试过扩展现有的CreateSalesOrder方法,但这似乎没有帮助。

Contact Lookup (它基于客户选择进行刷新,但当我从机会中创建它时则不会刷新)

代码语言:javascript
复制
[PXDBInt()]

[PXUIField(DisplayName = "Contact", Visibility = PXUIVisibility.Visible)]
[PXSelector(typeof(Search2<Contact.contactID,
	LeftJoin<BAccount2, On<BAccount2.bAccountID, Equal<Contact.bAccountID>>>>),
	DescriptionField = typeof(Contact.displayName), Filterable = true, DirtyRead = true)]
[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
[PXFormula(typeof(Default<SOOrder.customerID>))]
[PXRestrictor(typeof(Where<Contact.contactType, NotEqual<ContactTypesAttribute.bAccountProperty>,
		And<Where<BAccount2.bAccountID, Equal<Current<SOOrder.customerID>>,
				Or<Current<SOOrder.customerID>, IsNull>>>>), PX.Objects.CR.Messages.ContactBAccountDiff)]
[PXRestrictor(typeof(Where<Contact.isActive, Equal<True>>), PX.Objects.CR.Messages.ContactInactive,
			  typeof(Contact.displayName))]

public virtual int? UsrCustContactID { get; set; }
public abstract class usrCustContactID : IBqlField { }

联系查找(当我根据机会创建时,它正在按要求工作,但不根据客户选择进行刷新)

代码语言:javascript
复制
[PXDBInt()]

[PXDBChildIdentity(typeof(Contact.contactID))]
[PXRestrictor(typeof(Where<Contact.isActive, Equal<True>>), "Contact '{0}' is inactive or closed.", new[] { typeof(Contact.displayName) })]
[PXSelector(typeof(Search2<Contact.contactID, LeftJoin<BAccount, On<BAccount.bAccountID, Equal<Contact.bAccountID>>>, Where<Contact.contactType, Equal<ContactTypesAttribute.person>, Or<Contact.contactType, Equal<ContactTypesAttribute.lead>>>>), DescriptionField = typeof(Contact.displayName), Filterable = true)]
[PXUIField(DisplayName = "Contact")]


public virtual int? UsrCustContactID { get; set; }
public abstract class usrCustContactID : IBqlField { }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-11 20:37:35

类似的答案在这里找到:How to pass line item custom field value to sales order from opportunity?

可以从CROpportunity翻译成SOOrder.

代码语言:javascript
复制
public class CROpportunityMaintExtension : PXGraphExtension<OpportunityMaint>
{
    [PXOverride]
    public virtual void DoCreateSalesOrder(Action del)
    {
        PXGraph.InstanceCreated.AddHandler<SOOrderEntry>(graph =>
        {
            graph.RowInserting.AddHandler<SOOrder>((cache, args) =>
            {
                var soOrder = (SOOrder)args.Row;
                CROpportunity opportunity = PXResult<CROpportunity>.Current;

                // Copy logic here...

            });
        });

        del();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43921902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档