Thursday, December 31, 2015

GST/TAX at sales order and sales line level through X++

Sales order GST:

Total GST of Sales order can be seen from following screen in AX 2012


X++ code to achieve this;
static void SalesTax_Per_SalesOrder(Args _args)
{
    TaxTmpWorkTransForm     taxTmpWorkTransForm;
    SalesTotals             salesTotals;
    TaxSales                taxSales;
    SalesLine               salesLine;
    container               cont;
    salesTotals = SalesTotals::construct(SalesTable::find("SAOR000770"));
    salesTotals.calc();
    cont         = salesTotals.displayFieldsCurrency(salesTotals.currencyCode());
    info(strFmt("Sales order total GST: %1"conpeek(cont, TradeTotals::posTaxTotal())));
}

X++ code to achieve this;
This code will print GST against each sales line for selected/passed sales order
static void SalesTax_Per_SalesLine(Args _args)
{
    TaxTmpWorkTransForm     taxTmpWorkTransForm;
    SalesTotals             salesTotals;
    TaxSales                taxSales;
    SalesLine               salesLine;
    salesTotals = SalesTotals::construct(SalesTable::find("SAOR000770"));
    salesTotals.calc();
    taxSales = salesTotals.tax();
    taxTmpWorkTransForm = TaxTmpWorkTransForm::construct();
    taxTmpWorkTransForm.parmTaxObject(taxSales);
    While select SalesLine where salesLine.SalesId == 'SAOR000770'
    {
        taxTmpWorkTransForm.updateTaxShowTaxesSourceSingleLine(tableNum(SalesLine), salesLine.RecId, true);
        info(strFmt('%1',taxTmpWorkTransForm.parmTaxAmountCurTotal()));
    }
}

No comments:

Post a Comment

I will appreciate your comments !

Download large bacpac (sandbox database) to DEV environment much faster

As the LCS website gets slower and slower and the database backups get bigger and bigger.  Use AZCopy to download objects out of LCS asset l...