Pass field value from SalesTable to CustTrans in AX 2012 & D365FO
AX 2012
Following are the steps to pass the value from Sales Table to custtrans.
1) Create a new field (If not already existing)
2) Create the parm method for that field on CustVoucher class
3) Assign value to this parm method in SalesInvoiceJournalPost.postCustVend() method by using the salesTable buffer
4) Add the code for assigning the variable value(or the parm method value) in CustVoucher.initCustVendTrans() method
And now post an invoice and go to custTrans table to check the field value.
Source AX-2012
D365FO
Add the field in SalesTable
Add the field in CustTrans
Create Extension class of SalesInvoiceJournalPost
Override postCustVend method using coc
[ExtensionOf(classStr(SalesInvoiceJournalPost))]
final class
SLD_SalesInvoiceJournalPost_Extension
{
/// <summary>
///
Performs the customer related postings.
/// </summary>
protected void postCustVend()
{
CustTrans custTrans;
Name ecomMethodOfPayment = this.salesTable.SLDTenderTypeName; // getting E-Com method of payment from Sales
order
next postCustVend();
// getting the customer transaction
custTrans = CustTrans::findByVoucher(this.custInvoiceJour.LedgerVoucher);
custTrans.selectForUpdate(true);
// updating the customer transaction
ttsbegin;
custTrans.SLDTenderTypeName =
ecomMethodOfPayment;
custTrans.update();
ttscommit;
}
}
Please feel free to contact me if you are facing any issue during implementation of this blog.
Following are the steps to pass the value from Sales Table to custtrans.
1) Create a new field (If not already existing)
2) Create the parm method for that field on CustVoucher class
3) Assign value to this parm method in SalesInvoiceJournalPost.postCustVend() method by using the salesTable buffer
4) Add the code for assigning the variable value(or the parm method value) in CustVoucher.initCustVendTrans() method
And now post an invoice and go to custTrans table to check the field value.
Source AX-2012
D365FO
Add the field in SalesTable
Add the field in CustTrans
Create Extension class of SalesInvoiceJournalPost
Override postCustVend method using coc
[ExtensionOf(classStr(SalesInvoiceJournalPost))]
final class
SLD_SalesInvoiceJournalPost_Extension
{
/// <summary>
///
Performs the customer related postings.
/// </summary>
protected void postCustVend()
{
CustTrans custTrans;
Name ecomMethodOfPayment = this.salesTable.SLDTenderTypeName; // getting E-Com method of payment from Sales
order
next postCustVend();
// getting the customer transaction
custTrans = CustTrans::findByVoucher(this.custInvoiceJour.LedgerVoucher);
custTrans.selectForUpdate(true);
// updating the customer transaction
ttsbegin;
custTrans.SLDTenderTypeName =
ecomMethodOfPayment;
custTrans.update();
ttscommit;
}
}