【发布时间】:2022-06-15 03:55:00
【问题描述】:
Acumatica 似乎已将 CreateSalesOrder 方法从 OpportunityMaint 移至新的 CRCreateSalesOrder 类。我不知道如何用新结构覆盖 CreateSalesOrder 方法。下面是原始代码。非常感谢任何帮助。
using PX.Data;
using PX.Objects.AR;
using PX.Objects.CM;
using PX.Objects.Common.Discount;
using PX.Objects.CR;
using PX.Objects.CR.Extensions.CRCreateSalesOrder;
using PX.Objects.CS;
using PX.Objects.IN;
using PX.Objects.PO;
using PX.Objects.SO;
using PX.Objects.TX;
using System.Collections.Generic;
using static PX.Objects.CR.OpportunityMaint;
namespace CH.KV.CPLVendorSOPO
{
public class CHKVOpportunityMaintExt : PXGraphExtension<OpportunityMaint>
{
public delegate void DoCreateSalesOrderDelegate(CreateSalesOrderFilter param);
[PXOverride]
public void DoCreateSalesOrder(CreateSalesOrderFilter param, DoCreateSalesOrderDelegate baseMethod)
{
DoCreateSalesOrderCHKVExt(param);
}
protected virtual void DoCreateSalesOrderCHKVExt(CreateSalesOrderFilter param)
{
bool recalcAny = param.RecalculatePrices == true ||
param.RecalculateDiscounts == true ||
param.OverrideManualDiscounts == true ||
param.OverrideManualDocGroupDiscounts == true ||
param.OverrideManualPrices == true;
var opportunity = Base.Opportunity.Current;
Customer customer = (Customer)PXSelect<Customer, Where<Customer.bAccountID, Equal<Current<CROpportunity.bAccountID>>>>.Select(Base);
//do things
docgraph.Save.Press();
}
}
}
【问题讨论】:
标签: acumatica