Ich habe benutzerdefinierte Felder Terms und Ship via in Opportunity hinzugefügt und wenn ich den Wert an den Kundenauftrag übergebe. Sie wird durch die Standardbegriffe & ersetzt.So überschreiben Sie die Aktualisierung der Standardbedingungen aus der Konvertierung von Opportunity in Kundenauftrag
Der folgende Code ich den Pass, den Wert von Opportunity-bin mit auf Kundenauftrag
public virtual IEnumerable CreateSalesOrder(PXAdapter adapter)
{
PXGraph.InstanceCreated.AddHandler<SOOrderEntry>((graph) =>
{
graph.RowInserted.AddHandler<SOOrder>((cache, args) =>
{
var soOrder = (SOOrder)args.Row;
var soOrderExt = PXCache<SOOrder>.GetExtension<SOOrderExtNV>(soOrder);
foreach (CROpportunity opportunity in adapter.Get())
{
OppertunityExtn extOpprow = PXCache<CROpportunity>.GetExtension<OppertunityExtn>(opportunity);
soOrderExt.UsrOpportunityID = opportunity.OpportunityID;
soOrderExt.UsrCustomerContact = opportunity.ContactID;
soOrderExt.UsrIsEmbroidery = extOpprow.UsrIsEmbroidery;
soOrderExt.UsrIsPromo = extOpprow.UsrIsPromo;
soOrderExt.UsrIsBlank = extOpprow.UsrIsBlank;
soOrderExt.UsrIsService = extOpprow.UsrIsService;
soOrderExt.UsrIsDigital = extOpprow.UsrIsDigital;
soOrderExt.UsrIsSample = extOpprow.UsrIsSample;
soOrderExt.UsrIsScreenPrint = extOpprow.UsrIsScreenPrint;
soOrderExt.UsrIsRushJob = extOpprow.UsrIsRushJob;
soOrderExt.UsrHardDate = extOpprow.UsrHardDate;
soOrderExt.UsrIsInHandsDate = extOpprow.UsrIsInHandsDate;
soOrderExt.UsrEventDate = extOpprow.UsrEventDate;
soOrderExt.UsrEventDescription = extOpprow.UsrEventDescription;
soOrderExt.UsrShipDate = extOpprow.UsrShipDate;
soOrderExt.UsrHoldUntil = extOpprow.UsrHoldUntil;
soOrderExt.UsrExactQuantityNeeded = extOpprow.UsrExactQuantityNeeded;
soOrderExt.UsrIsNewCustomer = extOpprow.UsrIsNewCustomer;
soOrderExt.UsrBatchShip = extOpprow.UsrBatchShip;
soOrderExt.UsrInternalRef = extOpprow.UsrInternalRef;
soOrder.ShipVia = extOpprow.UsrShipVia;
soOrder.TermsID = extOpprow.UsrTerms;
soOrder.FreightAmt = extOpprow.UsrFreightEstimate;
}
});
graph.RowPersisting.AddHandler<SOOrder>((cache, args) =>
{
var soOrder = (SOOrder)args.Row;
foreach (CROpportunity opportunity in adapter.Get())
{
OppertunityExtn extOpprow = PXCache<CROpportunity>.GetExtension<OppertunityExtn>(opportunity);
soOrder.TermsID = extOpprow.UsrTerms;
}
});
});
return Base.createSalesOrder.Press(adapter);
}
Ihre Frage ist überhaupt nicht klar. Ihr Problem besteht darin, dass beim Konvertieren einer Verkaufschance in einen Kundenauftrag die benutzerdefinierten Felder (UsrTerms und ShipVia) auf die Standardwerte zurückgesetzt werden, anstatt die Werte aus Opportunity beizubehalten? –