Overview:-
SQL Query:
In this article we will see
about how to get GST tax rate and tax amount through SQL query. Recently I came
across a requirement which needs to print total tax amount in sales order
confirmation report after India GST update. Along with that I need to print tax
amount based ontax type (GST, custom duty) & tax components (i.e. CGST, SGST,
IGST etc.).
Here I have given sample
demonstration to get purchase invoice GST tax rate and tax amount in ax 2012. Using
SQL query you can check GST tax rate and tax amount.
here I have create SQL query
for get sales tax, voucher, currency code, exchange rate, item number, item
quantity, purch price, line amount, discount amount, charges amount, discount
percentage, GST rate and tax amount.
Here also you can get tax registration
number by party name in ax 2012. Intermediate table for dirpartytable and tax registration is dirpartylocation and registration number is the field to get
value of tax registration number.
You can also get line amount
in INR also if you’re sales order in foreign currency. If you get IGST amount
then here I have also get IGST in INR. Below is the SQL query to get tax amount
details based on tax type & tax component for a given sales order. In this
example I have taken tax type as GST and tax components are CGST, SGST, IGST,
BCD, ECESS C, IGST CUS, SHECESS C.
SQL Query:
SELECT vendinvoicejour.purchid AS 'PURCHASE ORDER NUMBER', vendinvoicejour.invoiceaccount AS VENDACCOUNT, dirpartytable.NAME AS 'VENDOR NAME', taxregistrationnumbers_in.registrationnumber AS GSTIN, hsncodetable_in.code AS 'HSN CODE', vendinvoicejour.invoiceid AS INVOICEID, vendinvoicejour.ledgervoucher AS VOUCHER, Cast(vendinvoicejour.sumtax AS DECIMAL(10, 2)) AS 'SALES TAX', vendinvoicejour.currencycode AS CURRENCY, Cast(vendinvoicejour.exchrate / 100 AS DECIMAL(10, 2)) AS 'EXCHANGE RATE', taxtrans.sourcerecid AS 'VENDINVOICETRANS (RECID)', Cast(vendinvoicetrans.linenum AS DECIMAL(10, 2)) AS 'LINE NUMBER', vendinvoicetrans.itemid AS ITEMID, vendinvoicetrans.NAME AS 'ITEM NAME', Cast(vendinvoicetrans.qty AS DECIMAL(10, 2)) AS QUANTITY, Cast(vendinvoicetrans.priceunit AS DECIMAL(10, 2)) AS 'PRICE UNIT', Cast(vendinvoicetrans.lineamount AS DECIMAL(10, 2)) AS 'LINE AMOUNT', Cast(vendinvoicetrans.lineamountmst AS DECIMAL(10, 2)) AS 'LINE AMOUNT (INR)', Cast(vendinvoicetrans.discamount AS DECIMAL(10, 2)) AS DICOUNT, Cast(vendinvoicetrans.discamount * vendinvoicejour.exchrate / 100 AS DECIMAL(10, 2)) AS 'DICOUNT (INR)', Cast(vendinvoicetrans.discpercent AS DECIMAL(10, 2)) AS 'DISCOUNT PERCENTAGE', Cast(markuptrans.calculatedamount AS DECIMAL(10, 2)) AS 'TOTAL CHARGES', Cast(markuptrans.calculatedamount * vendinvoicejour.exchrate / 100 AS DECIMAL(10, 2)) AS 'TOTAL CHARGES (INR)', taxtrans.taxcode AS 'TAX CODE', taxtrans.taxaccounttype, Cast(taxtrans.taxvalue AS DECIMAL(10, 2)) AS 'RATE', Cast(taxtrans.sourceregulateamountcur AS DECIMAL(10, 2)) AS 'TAX AMOUNT', Cast(taxtrans.taxamount AS DECIMAL(10, 2)) AS 'TAX AMOUNT (INR)', Cast(vendinvoicejour.invoiceamount AS DECIMAL(10, 2)) AS 'INVOICE AMOUNT', Cast(vendinvoicejour.invoiceamountmst AS DECIMAL(10, 2)) AS 'INVOICE AMOUNT (INR)', Cast(( taxwithholdtrans_in.taxwithholdamountcur * -1 ) AS DECIMAL(10, 2)) AS 'TCS AMOUNT' FROM vendinvoicetrans JOIN vendinvoicejour ON vendinvoicejour.invoiceid = vendinvoicetrans.invoiceid AND vendinvoicejour.purchid = vendinvoicetrans.purchid AND vendinvoicejour.invoicedate = vendinvoicetrans.invoicedate AND vendinvoicejour.numbersequencegroup = vendinvoicetrans.numbersequencegroup AND vendinvoicejour.internalinvoiceid = vendinvoicetrans.internalinvoiceid LEFT OUTER JOIN taxwithholdtrans_in ON taxwithholdtrans_in.voucher = vendinvoicejour.ledgervoucher LEFT OUTER JOIN taxtrans ON taxtrans.sourcerecid = vendinvoicetrans.recid AND taxtrans.voucher = vendinvoicejour.ledgervoucher AND taxtrans.transdate = vendinvoicejour.invoicedate AND taxtrans.taxaccounttype = 1 AND taxtrans.taxcode IN ( 'IGST', 'CGST', 'SGST' ) --,'BCD','ECESS C','IGST CUS','SHECESS C') LEFT OUTER JOIN markuptrans ON markuptrans.transrecid = vendinvoicetrans.recid LEFT OUTER JOIN vendtable ON vendtable.accountnum = vendinvoicejour.invoiceaccount LEFT OUTER JOIN dirpartytable ON dirpartytable.recid = vendtable.party LEFT OUTER JOIN taxinformation_in ON taxinformation_in.registrationlocation = dirpartytable.primaryaddresslocation AND taxinformation_in.isprimary = 1 LEFT OUTER JOIN taxregistrationnumbers_in ON taxregistrationnumbers_in.recid = taxinformation_in.gstin LEFT OUTER JOIN inventtable ON inventtable.itemid = vendinvoicetrans.itemid LEFT OUTER JOIN hsncodetable_in ON hsncodetable_in.recid = inventtable.hsncodetable_in WHERE --VENDINVOICEJOUR.PURCHID = 'Purchase Order Number' vendinvoicejour.invoiceid = 'Invoice Number' GROUP BY taxwithholdtrans_in.taxwithholdamountcur, taxtrans.taxcode, taxtrans.taxaccounttype, taxtrans.taxamount, taxtrans.sourceregulateamountcur, vendinvoicejour.invoiceid, vendinvoicejour.purchid, vendinvoicejour.invoiceaccount, taxtrans.sourcerecid, taxtrans.taxvalue, dirpartytable.NAME, dirpartytable.primaryaddresslocation, taxregistrationnumbers_in.registrationnumber, taxinformation_in.gstin, taxinformation_in.registrationlocation, hsncodetable_in.code, vendtable.party, vendtable.accountnum, markuptrans.calculatedamount, markuptrans.transrecid, vendinvoicetrans.itemid, vendinvoicetrans.NAME, vendinvoicetrans.lineamount, vendinvoicetrans.lineamountmst, vendinvoicetrans.recid, vendinvoicejour.invoiceamount, vendinvoicejour.invoiceamountmst, vendinvoicejour.invoiceaccount, vendinvoicejour.currencycode, vendinvoicejour.exchrate, vendinvoicejour.ledgervoucher, vendinvoicejour.sumtax, vendinvoicetrans.qty, vendinvoicetrans.priceunit, vendinvoicetrans.discamount, vendinvoicetrans.discpercent, vendinvoicetrans.linenum ORDER BY vendinvoicejour.invoiceid ASC
No comments:
Post a Comment
Thanks for your comment.