Search This Blog

Showing posts with label GST. Show all posts
Showing posts with label GST. Show all posts

Thursday, May 26, 2022

How to calculate the GST amount using x++

 static void Job236(Args _args)

{

    TmpTaxDocument                  tmpTax;

    SalesCalcTax                    salesCalcTax;   

    SalesTotals                     salesTotals1;

    ITaxableDocument                taxableDocument;

    ITaxDocumentComponentLineEnumerator lineEnumerator;

    ITaxDocument                    taxDocumentObject;

    real                            taxTotalGTE,taxtotal,SGST,CGST,IGST;

    ITaxDocumentMeasure             taxMeasure;

    ITaxDocumentMeasureEnumerator   taxMeasureEnumerator;

    ITaxDocumentMeasureValue        partyTaxMeasureValue;

    int                             i;

    SalesLine                       salesLine;

    ITaxDocumentLine                taxDocumentLine;


    salestotals1 = SalesTotals::construct(SalesTable::find("SO-2021-122436"));

    

    

    taxableDocument = TaxableDocumentObject::construct(salestotals1.parmTaxableDocumentDescriptor());

    taxDocumentObject = TaxBusinessService::calculateTax(taxableDocument);

    salesLine = SalesLine::findInventTransId("40016597686");

    if (taxDocumentObject)

    {

        taxTotalGTE = taxDocumentObject.getTotalTax().amountTransactionCurrency();


        // Calculation of Tax amount for Tax type GST and Tax component SGST

        //lineEnumerator = taxDocumentObject.componentLines('GST','SGST');

        taxDocumentline = taxDocumentObject.findLineByOrig(salesLine.TableId,SalesLine.RecId);

        lineEnumerator = taxDocumentline.componentLines("GST","SGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasure = lineEnumerator.current().getMeasure("Rate");

            info(strFmt("SGST Rate %1",taxMeasure.value().value()));

            taxMeasure = lineEnumerator.current().getMeasure("Tax Amount");

            info(strFmt("SGST Rate %1",taxMeasure.value().value()));            

            lineEnumerator.current().

           

        }

        

        lineEnumerator = taxDocumentline.componentLines("GST","CGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasure = lineEnumerator.current().getMeasure("Rate");

            info(strFmt("CGST Rate %1",taxMeasure.value().value()));

            taxMeasure = lineEnumerator.current().getMeasure("Tax Amount");

            info(strFmt("CGST Rate %1",taxMeasure.value().value()));            

           

        }

        

        lineEnumerator = taxDocumentline.componentLines("GST","IGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasure = lineEnumerator.current().getMeasure("Rate");

            info(strFmt("IGST Rate %1",taxMeasure.value().value()));

            taxMeasure = lineEnumerator.current().getMeasure("Tax Amount");

            info(strFmt("IGST Rate %1",taxMeasure.value().value()));            

           

        }

        

        

        

       /* while (lineEnumerator.moveNext())

        {

            taxMeasureEnumerator = lineEnumerator.current().measures();

            while (taxMeasureEnumerator.moveNext())

            {

                i++;

                if (i == 3)

                {

                    partyTaxMeasureValue = taxMeasureEnumerator.current().value();

                    info(strFmt("SGST = %1",partyTaxMeasureValue.amountTransactionCurrency()));

                    SGST += partyTaxMeasureValue.amountTransactionCurrency();

                    i=0;

                    break;

                }

            }

        }


        // Calculation of Tax amount for Tax type GST and Tax component CGST

        lineEnumerator = taxDocumentObject.componentLines("GST","CGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasureEnumerator = lineEnumerator.current().measures();

            while (taxMeasureEnumerator.moveNext())

            {

                i++;

                if (i == 3)

                {

                    partyTaxMeasureValue = taxMeasureEnumerator.current().value();

                    info(strFmt("CGST = %1",partyTaxMeasureValue.amountTransactionCurrency()));

                    CGST += partyTaxMeasureValue.amountTransactionCurrency();

                    i=0;

                    break;

                }

            }

        }


        // Calculation of Tax amount for Tax type GST and Tax component IGST

        lineEnumerator = taxDocumentObject.componentLines("GST","IGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasureEnumerator = lineEnumerator.current().measures();

            while (taxMeasureEnumerator.moveNext())

            {

                i++;

                if (i == 3)

                {

                    partyTaxMeasureValue = taxMeasureEnumerator.current().value();

                    info(strFmt("IGST = %1",partyTaxMeasureValue.amountTransactionCurrency()));

                    IGST += partyTaxMeasureValue.amountTransactionCurrency();

                    i=0;

                    break;

                }

            }

        }*/

    }

}