Monday, November 17, 2025

Getting CGST,SGST,IGST Amount

 

Getting CGST,SGST,IGST Amount:


public static void getTaxAmount(PurchLine  _purchLine) 

    { 

        ITaxableDocument                        gTaxableDocument; 

        ITaxDocument                            gTaxDocument; 

        ITaxDocumentLine                        gTaxDocumentLine; 

        ITaxDocumentLine                        gTaxDocumentLineCur; 

        ITaxDocumentLineEnumerator              gTaxDocumentLineEnum; 

        ITaxDocumentLineEnumerator              gTaxDocumentLineEnumCur; 

        ITaxDocumentComponentLine               gComponentLine; 

        ITaxDocumentComponentLineEnumerator     gComponentLineEnum; 

        ITaxDocumentComponentLineMetaData       gComponentLineMetadata; 

        str                                     taxComponent; 

  

        PurchTable                              gPurchTable; 

        SalesQuotationLine                      gPurchLine; 

        real                                    CGSTTaxValueSGSTTaxValueIGSTTaxValueUGSTTaxValue,SGSTTaxAmountCGSTTaxAmountIGSTTaxAmountUGSTTaxAmount; 

        Str1260 taxDesc; 

         

        gTaxableDocument = TaxableDocumentObject::construct(TaxableDocumentDescriptorFactory::getTaxableDocumentDescriptor(_purchLine)); 

  

        gTaxDocument = TaxBusinessService::calculateTax(gTaxableDocument); 

  

        if(gTaxDocument) 

        { 

            gTaxDocumentLineEnum = gTaxDocument.subLines(); 

  

            while(gTaxDocumentLineEnum.moveNext()) 

            { 

                gTaxDocumentLineCur = gTaxDocumentLineEnum.current(); 

  

                gTaxDocumentLineEnumCur = gTaxDocumentLineCur.lines(); 

  

                // Single Document Line 

  

                while(gTaxDocumentLineEnumCur.moveNext()) 

                { 

                    gTaxDocumentLine = gTaxDocumentLineEnumCur.current(); 

  

                    gComponentLineEnum = gTaxDocumentLine.componentLines(); 

  

                    while(gComponentLineEnum.moveNext()) 

                    { 

                        gComponentLine = gComponentLineEnum.current(); 

  

                        gComponentLineMetadata = gComponentLine.metaData(); 

  

                        taxComponent = gComponentLineMetadata.taxComponent(); 

                        //if (gPurchLine.RecId == _purchLine.RecId) 

                        //{ 

                            switch (taxComponent) 

                            { 

                                case 'IGST': 

                                    IGSTTaxValue = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                    IGSTTaxAmount = gComponentLine.getMeasure("Tax Amount").value().value(); 

                                     

  

                                    break; 

                                case 'CGST': 

                                    CGSTTaxValue = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                    CGSTTaxAmount = gComponentLine.getMeasure("Tax Amount").value().value(); 

                                    //_grnReportTmp.CGSTRate = taxvalue; 

                                    //_grnReportTmp.CGSTAmount = taxAmount; 

  

                                    break; 

                                case 'SGST': 

                                    SGSTTaxValue = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                    SGSTTaxAmount = gComponentLine.getMeasure("Tax Amount").value().value(); 

                                    //_grnReportTmp.SGSTRate = taxvalue; 

                                    //_grnReportTmp.SGSTAmount = taxAmount; 

                                    break; 

  

                                case 'UGST': 

                                    UGSTTaxValue = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                    UGSTTaxAmount = gComponentLine.getMeasure("Tax Amount").value().value(); 

                                    //_grnReportTmp.UGSTRate = taxvalue; 

                                    //_grnReportTmp.UGSTAmount = taxAmount; 

                                    break; 

                                default: 

                                    break; 

                            } 

                        //} 

                    } 

                } 

            } 

  

        } 

    } 

 

======= to display  memo field in report  data CGST,SGST,ICST === 

 

Output ICST   9%  900 

 

              CGST  9% 800 

              SGST   9% 600 

              CGST   10% 700 

               SGST   9% 300 

 

Code: 

======= 

 

 

public  void getTaxAmount(CustInvoiceJour _custInvoiceJour) 

    { 

        ITaxableDocument                        gTaxableDocument; 

        ITaxDocument                            gTaxDocument; 

        ITaxDocumentLine                        gTaxDocumentLine; 

        ITaxDocumentLine                        gTaxDocumentLineCur; 

        ITaxDocumentLineEnumerator              gTaxDocumentLineEnum; 

        ITaxDocumentLineEnumerator              gTaxDocumentLineEnumCur; 

        ITaxDocumentComponentLine               gComponentLine; 

        ITaxDocumentComponentLineEnumerator     gComponentLineEnum; 

        ITaxDocumentComponentLineMetaData       gComponentLineMetadata; 

        str                                     taxComponent; 

        PurchTable                              gPurchTable; 

        SalesQuotationLine                      gPurchLine; 

        Str1260                                 taxDesc; 

        TaxTrans                                taxTrans; 

        str sgst,cgst,igst; 

        Map                                     SGSTMap = new Map(Types::String, Types::Real); 

        Map                                     CGSTMap = new Map(Types::String, Types::Real); 

        Map                                     IGSTMap = new Map(Types::String, Types::Real); 

        Map                                     cur     = new Map(Types::String ,Types::String); 

  

        gTaxableDocument    = TaxableDocumentObject::construct(TaxableDocumentDescriptorFactory::getTaxableDocumentDescriptor(_custInvoiceJour)); 

        gTaxDocument        = TaxBusinessService::calculateTax(gTaxableDocument); 

  

        if(gTaxDocument) 

        { 

            gTaxDocumentLineEnum        = gTaxDocument.subLines(); 

  

            while(gTaxDocumentLineEnum.moveNext()) 

            { 

                gTaxDocumentLineCur     = gTaxDocumentLineEnum.current(); 

                gTaxDocumentLineEnumCur = gTaxDocumentLineCur.lines(); 

  

                // Single Document Line 

                while(gTaxDocumentLineEnumCur.moveNext()) 

                { 

                    gTaxDocumentLine    = gTaxDocumentLineEnumCur.current(); 

                    gComponentLineEnum  = gTaxDocumentLine.componentLines(); 

  

                    while(gComponentLineEnum.moveNext()) 

                    { 

                        gComponentLine          = gComponentLineEnum.current(); 

                        gComponentLineMetadata  = gComponentLine.metaData(); 

                        taxComponent            = gComponentLineMetadata.taxComponent(); 

  

                        switch (taxComponent) 

                        { 

                            case 'IGST': 

                                IGSTTaxValue  = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                IGSTTaxAmount += gComponentLine.getMeasure("Tax Amount").value().value(); 

                                                                

                                if (IGSTMap.exists(strFmt("IGST  %1%", IGSTTaxValue))) 

                                { 

                                    real    amount = IGSTMap.lookup(strFmt("IGST  %1%", IGSTTaxValue)); 

  

                                    amount += gComponentLine.getMeasure("Tax Amount").value().value(); 

  

                                    IGSTMap.insert(strFmt("IGST  %1%", IGSTTaxValue), amount); 

                                } 

                                else 

                                { 

                                    IGSTMap.insert(strFmt("IGST  %1%", IGSTTaxValue), gComponentLine.getMeasure("Tax Amount").value().value()); 

                                } 

                                IGSTstr = taxComponent; 

                                                                  

                                break; 

  

                            case 'CGST': 

                                CGSTTaxValue  = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                CGSTTaxAmount += gComponentLine.getMeasure("Tax Amount").value().value(); 

  

                                if (CGSTMap.exists(strFmt("CGST  %1%", CGSTTaxValue))) 

                                { 

                                    real    cGSTAmount = CGSTMap.lookup(strFmt("CGST  %1%", CGSTTaxValue)); 

  

                                    cGSTAmount += gComponentLine.getMeasure("Tax Amount").value().value(); 

  

                                    CGSTMap.insert(strFmt("CGST  %1%", CGSTTaxValue), cGSTAmount); 

                                } 

                                else 

                                { 

                                    CGSTMap.insert(strFmt("CGST  %1%", CGSTTaxValue), gComponentLine.getMeasure("Tax Amount").value().value()); 

                                } 

                                break; 

  

                            case 'SGST': 

                                SGSTTaxValue  = gComponentLine.getMeasure("Rate").value().value() * 100; 

                                SGSTTaxAmount += gComponentLine.getMeasure("Tax Amount").value().value(); 

  

                                if (SGSTMap.exists(strFmt("SGST  %1%", SGSTTaxValue))) 

                                { 

                                    real    amount = SGSTMap.lookup(strFmt("SGST  %1%", SGSTTaxValue)); 

  

                                    amount += gComponentLine.getMeasure("Tax Amount").value().value(); 

  

                                    SGSTMap.insert(strFmt("SGST  %1%", SGSTTaxValue), amount); 

                                } 

                                else 

                                { 

                                    SGSTMap.insert(strFmt("SGST  %1%", SGSTTaxValue), gComponentLine.getMeasure("Tax Amount").value().value()); 

  

                                } 

                                break; 

  

                            default: 

                                break; 

                        } 

                    } 

                } 

            } 

  

            if (IGSTMap.elements()) 

            { 

                isgstpercentage = this.getKeyValue(IGSTMap, '',  true); 

                isgsttotal      = this.getKeyValue(IGSTMap, _custInvoiceJour.CurrencyCode); 

  

            } 

  

            if (CGSTMap.elements() || SGSTMap.elements()) 

            { 

                totalpercentage = this.getKeyValue(CGSTMap, '', true) + this.getKeyValue(SGSTMap, '', true); 

                total           = this.getKeyValue(CGSTMap, custInvoiceJour.CurrencyCode) + this.getKeyValue(SGSTMap, custInvoiceJour.CurrencyCode); 

            } 

          

        } 

    } 

  

    /// <summary> 

    /// This method is used to get key value. 

    /// </summary> 

    /// <param name = "_map">boolean</param> 

    /// <param name = "_key"></param> 

    /// <returns>value</returns> 

    public str getKeyValue(Map map,CurrencyCode  currencyCode = '', boolean _key = false) 

    { 

        str             value; 

        MapEnumerator   mapEnumerator; 

     

        mapEnumerator = _map.getEnumerator(); 

  

        if (_key) 

        { 

            while (mapEnumerator.moveNext()) 

            { 

                value += mapEnumerator.currentKey() + "\n"; 

            } 

        } 

        else 

        { 

            while (mapEnumerator.moveNext()) 

            { 

                value +=  num2Str(mapEnumerator.currentValue(),-1,2,DecimalSeparator::Dot,ThousandSeparator::None) + "\n"; 

  

                IGSTCur += _currencyCode + "\n"; 

            } 

        } 

        return value; 

    } 

  

    /// <summary> 

    /// This method is used to get amount value 

    /// </summary> 

    /// <param name = "_map">Map</param> 

    /// <returns>value</returns> 

    public str getAmountValue(Map _map) 

    { 

        str     value; 

  

        MapEnumerator   mapEnumerator; 

     

        mapEnumerator = _map.getEnumerator(); 

  

        while (mapEnumerator.moveNext()) 

        { 

            value +=  mapEnumerator.currentValue() + "\n"; 

        } 

        return value; 

    } 

  

        /// <summary> 

    /// This method is used to getValueDel 

        /// </summary> 

    /// <param name = "_map">Map</param> 

    /// <param name = "_currencyCode">CustCurrencyCode</param> 

    /// <returns>value</returns> 

       public str getValueDel(Map map, CustCurrencyCode  currencyCode) 

    { 

        str     value; 

  

        MapEnumerator   mapEnumerator; 

     

        mapEnumerator = _map.getEnumerator(); 

  

        while (mapEnumerator.moveNext()) 

        { 

            value= strFmt("%1", _currencyCode) + "\n"; 

        } 

  

        return value; 

    } 

  

} 

 

 

No comments:

Post a Comment