calculate total sales order or sales quotation amount / discounts / tax etc., through code( X++ ) in AX


I have seen that few developers have a problem in getting the total Sales order amount or sales quotation amount with Tax /discounts etc., in the preferred currency before invoicing because these are not stored into any specific tables.

The below form shows, where we can see the sales totals, Accounts Receivable->Sales Order-> Inquiries Menu->Totals

Now, this can be achieved through code using SalesTotals class. Check out the below code snippet.


SalesTotals  salesTotals;
SalesTable  salesTable;
container  displayFields;
str totalTax, amountWithoutTax, amountInclTax;

salesTable = salesTable::find('SO-1112345');
salesTotals  SalesTotals::construct(salesTable, salesUpdate::All);
salesTotals.calc();
displayFields salesTotals.displayFieldsCurrency(salesTotals.currencyCode());

amountWithoutTax  = conpeek(displayFields, TradeTotals::posBalance());
amountInclTax  = conpeek(displayFields, TradeTotals::posTotalAmount());
totalTax  = conpeek(displayFields,TradeTotals::posTaxTotal());

In the above way, we can get all the values available in the totals form in the Sales Order Form by changing the TradeTotals values.

We can get the values in the desired currency by providing a valid currency as a parameter to the displayFieldsCurrency method.

In the same way we can apply it to get the Sales Quotation totals also but instead of salestotals we need to use SalesQuotationTotals class.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.