Case When TCS Is There
Case When TCS Is There
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(T0."Dscription",'"',''),'&',''),'-'
,' '), CHAR(13), ''), CHAR(10), ''),' ','') "PrdDesc",
--hsn - HsnCd
--T1."ChapterID" "HsnCd",
CASE WHEN ISNULL(T1."ChapterID", '') <> '' THEN ISNULL(T1."ChapterID", '')
ELSE SAC."ServCode" END "HsnCd",
--barcode - Barcde
REPLACE(T0."CodeBars",'"','') "Barcde",
--quantity - Qty
T0."Quantity" "Qty",
--free quantity - FreeQty
0.00 "FreeQty",
--unit - Unit
COALESCE(T3."U_GstUom", T0."unitMsr") "Unit",
--price - UnitPrice
CASE WHEN T5."DocType"='I' THEN ROUND(T4."BaseSum" / T0."Quantity", 3) ELSE
T0."PriceBefDi" END "UnitPrice",
--line total - TotAmt
T4."BaseSum" "TotAmt",
--discount - Discount
0.00 "Discount",
--other charges - OthChrg
(select round(sum(x.taxsum),2) from INV4 x where x.statype not in('-100','-
110','-120') and x.docentry=t0.docentry and x.LineNum=t0.LineNum) "OthChrg" ,
--0.00 "OthChrg",
--assessable value - AssAmt
T4."BaseSum" "AssAmt",
--gst rate
T0."VatPrcnt" "GstRt",
--sgst rate - SgstRt
(select round(sum(x.taxsum),2) from INV4 x where x.statype in('-100') and
x.docentry=t0.docentry and x.LineNum=t0.LineNum) "SgstVal",
--CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "SgstAmt",
--cgst rate - CgstRt
(select round(sum(x.taxsum),2) from INV4 x where x.statype in('-100') and
x.docentry=t0.docentry and x.LineNum=t0.LineNum) "CgstAmt",
--CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "CgstAmt",
--igst rate - IgstRt
(select round(sum(x.taxsum),2) from INV4 x where x.statype in('-100') and
x.docentry=t0.docentry and x.LineNum=t0.LineNum) "IgstAmt",
--CASE WHEN T2."BPStatGSTN" <> T2."LocStaGSTN" And T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum",2) ELSE 0.00 END "IgstAmt",
--cess rate - CesRt
0.00 "CesRt",
--cessnonadval - CesNonAdVal
0.00 "CesNonAdVal",
--state cess - StateCes
0.00 "StateCes",
--total value - TotItemVal
round(T4."BaseSum" +T0."VatSum",2) "TotItemVal"
FROM INV1 T0
LEFT JOIN (
SELECT "AbsEntry",
LEFT(REPLACE("ChapterID", '.', ''),8) "ChapterID"
FROM OCHP
) T1 ON T0."HsnEntry" = T1."AbsEntry"
LEFT JOIN (
SELECT "AbsEntry",
--CASE
--WHEN LEFT("ServCode", 4) = '0000' THEN RIGHT("ServCode",
LEN("ServCode")-4)
--WHEN LEFT("ServCode", 2) = '00' THEN RIGHT("ServCode",
LEN("ServCode")-2)
--ELSE "ServCode"
--END "ServCode"
LEFT(REPLACE("ServCode", '.', ''),8) "ServCode"
FROM OSAC
) SAC ON T0."SacEntry" = SAC."AbsEntry"
LEFT JOIN INV12 T2 ON T0."DocEntry" = T2."DocEntry"
LEFT JOIN (
SELECT T9."DocEntry", T9."LineNum", MAX(T9."BaseSum") "BaseSum"
FROM INV4 T9
WHERE T9."RelateType" = 1
GROUP BY T9."DocEntry", T9."LineNum"
) T4 ON T0."DocEntry" = T4."DocEntry" AND T0."LineNum" = T4."LineNum"
LEFT JOIN OITM T3 ON T0."ItemCode" = T3."ItemCode"
LEFT JOIN OINV T5 on T5."DocEntry" = T0."DocEntry"
WHERE T0."DocEntry" = [%DocEntry]
UNION ALL
--ITEM LIST
SELECT
--serial number
--CAST(T0."LineNum" + 1 AS NVARCHAR) "SlNo",
--is service
'Y' "IsServc",
--product name - PrdNm
CAST(T4."ExpnsCode" AS NVARCHAR) "PrdNm",
--product desc - PrdDesc
T4."ExpnsName" "PrdDesc",
--hsn - HsnCd
T4."SacCode" "HsnCd",
--barcode - Barcde
'' "Barcde",
--quantity - Qty
0.00 "Qty",
--free quantity - FreeQty
0.00 "FreeQty",
--unit - Unit
'' "Unit",
--price - UnitPrice
T0."LineTotal" "UnitPrice",
--line total - TotAmt
T0."LineTotal" "TotAmt",
--discount - Discount
0.00 "Discount",
--other charges - OthChrg
0.00 "OthChrg",
--assessable value - AssAmt
T0."LineTotal" "AssAmt",
--gst rate
T0."VatPrcnt" "GstRt",
--sgst rate - SgstRt
CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "SgstAmt",
--cgst rate - CgstRt
CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "CgstAmt",
--igst rate - IgstRt
CASE WHEN T2."BPStatGSTN" <> T2."LocStaGSTN" And T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum",2) ELSE 0.00 END "IgstAmt",
--cess rate - CesRt
0.00 "CesRt",
--cessnonadval - CesNonAdVal
0.00 "CesNonAdVal",
--state cess - StateCes
0.00 "StateCes",
--total value - TotItemVal
T0."LineTotal" + round(T0."VatSum",2) "TotItemVal"
FROM INV3 T0
LEFT JOIN OEXD T4 ON T0."ExpnsCode" = T4."ExpnsCode"
LEFT JOIN INV12 T2 ON T0."DocEntry" = T2."DocEntry"
WHERE T0."DocEntry" = [%DocEntry]
) T1
--VAT DETAILS
SELECT
--assessable value - AssVal
T0."DocTotal" - T0."VatSum" - T0."RoundDif" "AssVal",
--sgst value - SgstVal
(select round(sum(x.taxsum),2) from INV4 x where x.statype in('-100') and
x.docentry=t0.docentry) "SgstVal",
--CASE WHEN T1."BPStatGSTN" = T1."LocStaGSTN" And T1."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "SgstVal",
--cgst value - CgstVal
(select round(sum(x.taxsum),2) from INV4 x where x.statype in('-110') and
x.docentry=t0.docentry) "CgstVal",
--CASE WHEN T1."BPStatGSTN" = T1."LocStaGSTN" And T1."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "CgstVal",
--igst value - IgstVal
(select round(sum(x.taxsum),2) from INV4 x where x.statype in('-120') and
x.docentry=t0.docentry) "IgstVal",
--CASE WHEN T1."BPStatGSTN" <> T1."LocStaGSTN" And T1."ImpORExp" = 'N' THEN
ROUND(T0."VatSum",2) ELSE 0.00 END "IgstVal",
--cess value - CesVal
0.00 "CesVal",
--state cess value - StCesVal
0.00 "StCesVal",
--cess non ad value - CesNonAdVal
0.00 "CesNonAdVal",
--discount - Disc
T0."DiscSum" "Disc",
--other charges - OthChrg
(select round(sum(x.taxsum),2) from INV4 x where x.statype not in('-100','-
110','-120') and x.docentry=t0.docentry) "OthChrg" ,
--0.00 "OthChrg",
--rounding off
T0."RoundDif" "RndOffAmt",
--total invoice value - TotInvVal
T0."DocTotal" "TotInvVal"
FROM OINV T0
INNER JOIN INV12 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."DocEntry" = [%DocEntry]
--item details
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(T0."Dscription",'"',''),'&',''),'-'
,' '), CHAR(13), ''), CHAR(10), ''),' ','') "PrdDesc",
--hsn - HsnCd
--T1."ChapterID" "HsnCd",
CASE WHEN ISNULL(T1."ChapterID", '') <> '' THEN ISNULL(T1."ChapterID", '')
ELSE SAC."ServCode" END "HsnCd",
--barcode - Barcde
REPLACE(T0."CodeBars",'"','') "Barcde",
--quantity - Qty
T0."Quantity" "Qty",
--free quantity - FreeQty
0.00 "FreeQty",
--unit - Unit
COALESCE(T3."U_GstUom", T0."unitMsr") "Unit",
--price - UnitPrice
CASE WHEN T5."DocType"='I' THEN ROUND(T4."BaseSum" / T0."Quantity", 3) ELSE
T0."PriceBefDi" END "UnitPrice",
--line total - TotAmt
T4."BaseSum" "TotAmt",
--discount - Discount
0.00 "Discount",
--other charges - OthChrg
0.00 "OthChrg",
--assessable value - AssAmt
T4."BaseSum" "AssAmt",
--gst rate
T0."VatPrcnt" "GstRt",
--sgst rate - SgstRt
CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "SgstAmt",
--cgst rate - CgstRt
CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "CgstAmt",
--igst rate - IgstRt
CASE WHEN T2."BPStatGSTN" <> T2."LocStaGSTN" And T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum",2) ELSE 0.00 END "IgstAmt",
--cess rate - CesRt
0.00 "CesRt",
--cessnonadval - CesNonAdVal
0.00 "CesNonAdVal",
--state cess - StateCes
0.00 "StateCes",
--total value - TotItemVal
round(T4."BaseSum" +T0."VatSum",2) "TotItemVal"
FROM INV1 T0
LEFT JOIN (
SELECT "AbsEntry",
LEFT(REPLACE("ChapterID", '.', ''),8) "ChapterID"
FROM OCHP
) T1 ON T0."HsnEntry" = T1."AbsEntry"
LEFT JOIN (
SELECT "AbsEntry",
--CASE
--WHEN LEFT("ServCode", 4) = '0000' THEN RIGHT("ServCode",
LEN("ServCode")-4)
--WHEN LEFT("ServCode", 2) = '00' THEN RIGHT("ServCode",
LEN("ServCode")-2)
--ELSE "ServCode"
--END "ServCode"
LEFT(REPLACE("ServCode", '.', ''),8) "ServCode"
FROM OSAC
) SAC ON T0."SacEntry" = SAC."AbsEntry"
LEFT JOIN INV12 T2 ON T0."DocEntry" = T2."DocEntry"
LEFT JOIN (
SELECT T9."DocEntry", T9."LineNum", MAX(T9."BaseSum") "BaseSum"
FROM INV4 T9
WHERE T9."RelateType" = 1
GROUP BY T9."DocEntry", T9."LineNum"
) T4 ON T0."DocEntry" = T4."DocEntry" AND T0."LineNum" = T4."LineNum"
LEFT JOIN OITM T3 ON T0."ItemCode" = T3."ItemCode"
LEFT JOIN OINV T5 on T5."DocEntry" = T0."DocEntry"
WHERE T0."DocEntry" = [%DocEntry]
UNION ALL
--ITEM LIST
SELECT
--serial number
--CAST(T0."LineNum" + 1 AS NVARCHAR) "SlNo",
--is service
'Y' "IsServc",
--product name - PrdNm
CAST(T4."ExpnsCode" AS NVARCHAR) "PrdNm",
--product desc - PrdDesc
T4."ExpnsName" "PrdDesc",
--hsn - HsnCd
T4."SacCode" "HsnCd",
--barcode - Barcde
'' "Barcde",
--quantity - Qty
0.00 "Qty",
--free quantity - FreeQty
0.00 "FreeQty",
--unit - Unit
'' "Unit",
--price - UnitPrice
T0."LineTotal" "UnitPrice",
--line total - TotAmt
T0."LineTotal" "TotAmt",
--discount - Discount
0.00 "Discount",
--other charges - OthChrg
0.00 "OthChrg",
--assessable value - AssAmt
T0."LineTotal" "AssAmt",
--gst rate
T0."VatPrcnt" "GstRt",
--sgst rate - SgstRt
CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "SgstAmt",
--cgst rate - CgstRt
CASE WHEN T2."BPStatGSTN" = T2."LocStaGSTN" AND T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum" / 2,2) ELSE 0.00 END "CgstAmt",
--igst rate - IgstRt
CASE WHEN T2."BPStatGSTN" <> T2."LocStaGSTN" And T2."ImpORExp" = 'N' THEN
ROUND(T0."VatSum",2) ELSE 0.00 END "IgstAmt",
--cess rate - CesRt
0.00 "CesRt",
--cessnonadval - CesNonAdVal
0.00 "CesNonAdVal",
--state cess - StateCes
0.00 "StateCes",
--total value - TotItemVal
T0."LineTotal" + round(T0."VatSum",2) "TotItemVal"
FROM INV3 T0
LEFT JOIN OEXD T4 ON T0."ExpnsCode" = T4."ExpnsCode"
LEFT JOIN INV12 T2 ON T0."DocEntry" = T2."DocEntry"
WHERE T0."DocEntry" = [%DocEntry]
) T1