Search This Blog

Showing posts with label Indian localization. Show all posts
Showing posts with label Indian localization. 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;

                }

            }

        }*/

    }

}