How to find tax type in tally purchase xml export?

Discussion in 'Tally Integration' started by utsav, Mar 5, 2021.

    
  1. utsav

    utsav New Member


    I am new to TDL development I am using
    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    <ENVELOPE>
    <HEADER>
    <TALLYREQUEST>
    Export Data
    </TALLYREQUEST>
    </HEADER>
    <BODY>
    <EXPORTDATA>
    <REQUESTDESC>
    <STATICVARIABLES>
    <SVFROMDATE>
    20210101
    </SVFROMDATE>
    <SVTODATE>
    20210116
    </SVTODATE>
    <VOUCHERTYPENAME>
    Purchase
    </VOUCHERTYPENAME>
    <EXPLODEFLAG>
    Yes
    </EXPLODEFLAG>
    <SVEXPORTFORMAT>
    $$SysName: XML
    </SVEXPORTFORMAT>
    </STATICVARIABLES>
    <REPORTNAME>
    Voucher Register
    </REPORTNAME>
    </REQUESTDESC>
    </EXPORTDATA>
    </BODY>
    </ENVELOPE>
    
    
    The above mention XML request successfully gives me the list of purchase voucher. All the invoice level information can be found in ENVELOPE/BODY/IMPORTDATA/REQUESTDATA/TALLYMESSAGE node. each TALLYMESSAGE node consist of all the invoice level information and comes with multiple LEDGERENTRIES.LIST nodes which then consist of multiple amount fro eg.

    Code:
    <LEDGERENTRIES.LIST>
    <AMOUNT>123</AMOUNT>
    </LEDGERENTRIES.LIST>
    
    <LEDGERENTRIES.LIST>
    <AMOUNT>-12</AMOUNT>
    </LEDGERENTRIES.LIST>
    
    <LEDGERENTRIES.LIST>
    <AMOUNT>-12</AMOUNT>
    </LEDGERENTRIES.LIST>
    
    These negative values denotes the tax amount but i am unable to find a way to identify the type of tax (CGST,IGST,SGST) in the voucher. Is there any way to identify the type of tax.
    I also posted this question on stack overflow (https://stackoverflow.com/questions/66437037/how-to-find-tax-type-in-tally-xml-export) maybe this will help you under stand my problem better.
     


  2. teja varma

    teja varma Active Member


    Attach the full response you got from tally..
     


  3. utsav

    utsav New Member


    Here it is. This is the case of IGST. DOnt get confused by LEDGERNAME node as it can be changed from tally. i want a generic identifier.
    https://codebeautify.org/xmlviewer/cb341373
    Moreover i cosidered a case where STATE and SUPPLY sate are equal then CSGT adn SGST is applicable but this fails in case of SEZ.
     


  4. teja varma

    teja varma Active Member


    In order to distinguish Tax ledgers, We need to have information like its parent name (Duties & Taxes) and Gst Duty Type (Central,State,Integrated)
    But there is no such information in the response and its normal because we are asking about only purchase vouchers, not Masters information
    So we only get information regarding voucher-like (Ledger name, amount, is deemed positive..)
    So if you want to identity GST types, there are 3 ways :
    1)You need to store ledger information, so you can compare it with your storage cache to identify whether the ledger is a GST duty ledger and its type.
    2)You need to get Ledgers information like(parent, GST duty type, etc....) in the response
    3)Creating a custom collection, where you can whatever information you want.
     
    utsav likes this.


  5. utsav

    utsav New Member


    Ok, i tried this but again i am stuck on the same thing i.e. Ledger name can be altered. If we put all the duties and taxes under specific group and try to fetch which all ledgers that fall under duties and taxes group, but again group names can also be changed.
    moreover if i knew that specific ledger name falls under duties and taxes group then i could have solved the issue from the above mentioned response as it also contains that ledger name (INPUT SGST/CGST/IGST)
     


  6. teja varma

    teja varma Active Member


    Let me clarify one thing
    For every master (Accounting) there is one method $_PrimaryGroup
    That cannot be changed irrespective of ledger name, group name, etc...
    Tax ledgers Primary Group will be Duties and Taxes (Never change, even if you change group name)
    So you check whether the Primary group is Duties and Taxes or not.

    Second: Ledger name can be altered
    Yes names can be changed, but GUID cannot be changed
    So you have to match or compare Ledgers using their GUID.
     


  7. utsav

    utsav New Member


    i am new to tally development. I guess according to below attached image INPUT CSGT falls under Duties And Taxes (name changed from duties & taxes).

    [​IMG]
    The XML request i am sending is
    Code:
    <ENVELOPE>
        <HEADER>
            <TALLYREQUEST>Export Data</TALLYREQUEST>
        </HEADER>
        <BODY>
            <EXPORTDATA>
                <REQUESTDESC>
                    <STATICVARIABLES>
                        <SVFROMDATE>20190101</SVFROMDATE>
                        <SVTODATE>20210301</SVTODATE>
                        <GROUPNAME>Duties And Taxes</GROUPNAME>
                    </STATICVARIABLES>
                    <REPORTNAME>GST</REPORTNAME>
                </REQUESTDESC>
            </EXPORTDATA>
        </BODY>
    </ENVELOPE>
    TBH i don't know what should be the report name so i tried hit and trial and every time i got response was unable to find report name.
    I Used Group Voucehr as REPORTNAME and used Duties And Taxes as Group name and i got the appropriate response, But names can be changes (like my request dsnt work for duties & taxes). please help me crafting xml request for fetching the required info that can tell me thetax type.
    please help
     
    Last edited: Mar 8, 2021


  8. teja varma

    teja varma Active Member


    What information do you want to get?
    What is reportaname 'GST' ? is it a customized report.
     


  9. utsav

    utsav New Member


    tH
    That was just for RnD. Right now all i want is to identify the type of tax imposed in purchase register via XML. last thing i did was used the code in #7 post where i changed the report name to Group Voucher and Group name to duties and taxes.
    But the problem is this group name can be changed by tally user. i want to be in a blackbox condition where i dont know anything about the users tally not even the ledger or group name that handles the tax value.​
     


  10. teja varma

    teja varma Active Member


    <DBIncludeFamily>Yes</DBIncludeFamily>

    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    <ENVELOPE>
    <HEADER>
    <TALLYREQUEST>
    Export Data
    </TALLYREQUEST>
    </HEADER>
    <BODY>
    <EXPORTDATA>
    <REQUESTDESC>
    <STATICVARIABLES>
    <SVFROMDATE>
    20210101
    </SVFROMDATE>
    <SVTODATE>
    20210116
    </SVTODATE>
    <VOUCHERTYPENAME>
    Purchase
    </VOUCHERTYPENAME>
    <EXPLODEFLAG>
    Yes
    </EXPLODEFLAG>
    <DBIncludeFamily>Yes</DBIncludeFamily>
    <SVEXPORTFORMAT>
    $$SysName: XML
    </SVEXPORTFORMAT>
    </STATICVARIABLES>
    <REPORTNAME>
    Voucher Register
    </REPORTNAME>
    </REQUESTDESC>
    </EXPORTDATA>
    
    Now in response tally will send all the master's information involved in the voucher, so you can identify whether the ledger is a duty ledger and its tax type.
     
    Last edited: Mar 8, 2021


  11. utsav

    utsav New Member


    Thank You so much this really helped me. <3
     


Share This Page