Commit 6e444b72 authored by prumde's avatar prumde

Updated

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@210312 ce508802-f39f-4f6c-b175-0d175dae99d5
parent d30cee70
ALTER TABLE SUNERP.DWH_SALES_SUM DROP CONSTRAINT DWH_SALES_SUM_PK;
ALTER TABLE SUNERP.DWH_SALES_SUM ADD CONSTRAINT DWH_SALES_SUM_PK PRIMARY KEY (TRAN_ID,SITE_CODE, CUST_CODE, ITEM_CODE, DOC_DATE,LOT_NO,LINE_TYPE,POS_CODE);
------------------------Procedure Creation ------------------------
create PROCEDURE SUNERP.DWH_SALES(
AS_FR_DATE DATE,
AS_TO_DATE DATE)
AS
BEGIN
IF (AS_TO_DATE >= AS_FR_DATE) THEN
/*========== INSERT for DWH_SALES_SUM Started ==========*/
INSERT
INTO DWH_SALES_SUM
(
TRAN_ID,
SITE_CODE,
CUST_CODE,
CUST_CODE__BIL,
ITEM_CODE,
LOT_NO,
LINE_TYPE,
DOC_DATE,
POS_CODE,
SALES_QTY,
GROSS_SALES_VALUE,
SALES_VALUE,
FREE_QTY,
FREE_SALES_VALUE,
NET_SALES_QTY,
NET_SALES_VALUE,
REPL_QTY,
REPL_VALUE,
SALEABLE_RETURN_QTY,
SALEABLE_RETURN_AMT,
BREAKAGE_RETURN_QTY,
BREAKAGE_RETURN_AMT,
EXPIRY_RETURN_QTY,
EXPIRY_RETURN_AMT,
CORRECTION_RETURN_QTY,
CORRECTION_RETURN_AMT,
REPL_RETURN_QTY,
REPL_RETURN_VALUE,
RETURN_QTY,
GROSS_RETURN_VALUE,
RETURN_VALUE,
NET_RETURN_VALUE,
CGST_RATE,
CGST_AMT,
SGST_RATE,
SGST_AMT,
IGST_RATE,
IGST_AMT,
DISC_AMT,
MRP,
PTR,
PTS,
HSN_CODE,
PACK,
DUE_DATE,
REF_SER,
CITY,
ITEM_BRAND,
ITEM_SER
)
SELECT DSS.TRAN_ID,
DSS.SITE_CODE,
DSS.CUST_CODE,
DSS.CUST_CODE__BIL,
DSS.ITEM_CODE,
DSS.LOT_NO,
DSS.LINE_TYPE,
DSS.DOC_DATE,
ORG.POS_CODE AS POS_CODE,
round(DSS.SALES_QTY / DSS.POS_CODE_CNT) as SALES_QTY,
round(DSS.GROSS_SALES_VALUE / DSS.POS_CODE_CNT, 2) as GROSS_SALES_VALUE,
round(DSS.SALES_VALUE / DSS.POS_CODE_CNT, 2) as SALES_VALUE,
round(DSS.FREE_QTY / DSS.POS_CODE_CNT) as FREE_QTY,
round(DSS.FREE_SALES_VALUE / DSS.POS_CODE_CNT, 2) as FREE_SALES_VALUE,
round(DSS.NET_SALES_QTY / DSS.POS_CODE_CNT, 2) as NET_SALES_QTY,
round(DSS.NET_SALES_VALUE / DSS.POS_CODE_CNT, 2) as NET_SALES_VALUE,
round(DSS.REPL_QTY / DSS.POS_CODE_CNT) as REPL_QTY,
round(DSS.REPL_VALUE / DSS.POS_CODE_CNT, 2) as REPL_VALUE,
round(DSS.SALEABLE_RETURN_QTY / DSS.POS_CODE_CNT) as SALEABLE_RETURN_QTY,
round(DSS.SALEABLE_RETURN_AMT / DSS.POS_CODE_CNT, 2) as SALEABLE_RETURN_AMT,
round(DSS.BREAKAGE_RETURN_QTY / DSS.POS_CODE_CNT) as BREAKAGE_RETURN_QTY,
round(DSS.BREAKAGE_RETURN_AMT / DSS.POS_CODE_CNT, 2) as BREAKAGE_RETURN_AMT,
round(DSS.EXPIRY_RETURN_QTY / DSS.POS_CODE_CNT) as EXPIRY_RETURN_QTY,
round(DSS.EXPIRY_RETURN_AMT / DSS.POS_CODE_CNT, 2) as EXPIRY_RETURN_AMT,
round(DSS.CORRECTION_RETURN_QTY / DSS.POS_CODE_CNT) as CORRECTION_RETURN_QTY,
round(DSS.CORRECTION_RETURN_AMT / DSS.POS_CODE_CNT, 2) as CORRECTION_RETURN_AMT,
round(DSS.REPL_RETURN_QTY / DSS.POS_CODE_CNT) as REPL_RETURN_QTY,
round(DSS.REPL_RETURN_VALUE / DSS.POS_CODE_CNT, 2) as REPL_RETURN_VALUE,
round(DSS.RETURN_QTY / DSS.POS_CODE_CNT) as RETURN_QTY,
round(DSS.GROSS_RETURN_VALUE / DSS.POS_CODE_CNT, 2) as GROSS_RETURN_VALUE,
round(DSS.RETURN_VALUE / DSS.POS_CODE_CNT, 2) as RETURN_VALUE,
round(DSS.NET_RETURN_VALUE / DSS.POS_CODE_CNT, 2) as NET_RETURN_VALUE,
DSS.CGST_RATE,
round(DSS.CGST_AMT / DSS.POS_CODE_CNT, 2) as CGST_AMT,
DSS.SGST_RATE,
round(DSS.SGST_AMT / DSS.POS_CODE_CNT, 2) as SGST_AMT,
DSS.IGST_RATE,
round(DSS.IGST_AMT / DSS.POS_CODE_CNT, 2) as IGST_AMT,
round(DSS.DISC_AMT / DSS.POS_CODE_CNT, 2) as DISC_AMT,
DSS.MRP,
DSS.PTR,
DSS.PTS,
DSS.HSN_CODE,
DSS.PACK,
DSS.DUE_DATE,
DSS.REF_SER,
DSS.CITY,
DSS.ITEM_BRAND,
DSS.ITEM_SER
FROM ORG_STRUCTURE ORG
CROSS JOIN
(
SELECT DSSV.TRAN_ID,
DSSV.SITE_CODE AS SITE_CODE,
DSSV.CUST_CODE AS CUST_CODE,
DSSV.CUST_CODE_BILL AS CUST_CODE__BIL,
DSSV.ITEM_CODE AS ITEM_CODE,
DSSV.LOT_NO AS LOT_NO,
DSSV.LINE_TYPE AS LINE_TYPE,
DSSV.TRAN_DATE AS DOC_DATE,
DSSV.STAN_CODE AS STAN_CODE,
SUM(DSSV.POS_CODE_CNT) AS POS_CODE_CNT,
SUM( DSSV.SALES_QTY ) AS SALES_QTY,
SUM( DSSV.GROSS_SALES_VALUE - DSSV.DISC_AMT_INV ) AS GROSS_SALES_VALUE,
SUM( DSSV.GROSS_SALES_VALUE ) AS SALES_VALUE,
SUM( DSSV.FREE_QTY ) AS FREE_QTY,
SUM( DSSV.FREE_SALES_VALUE ) AS FREE_SALES_VALUE,
SUM( DSSV.SALES_QTY + DSSV.FREE_QTY + DSSV.REPL_QTY - DSSV.RETURN_QTY + DSSV.REPL_RETURN_QTY ) AS NET_SALES_QTY,
SUM( ( DSSV.GROSS_SALES_VALUE - DSSV.DISC_AMT_INV ) - ( DSSV.GROSS_RETURN_VALUE - DSSV.DISC_AMT_RET ) + ( DSSV.REPL_RETURN_VALUE - DSSV.DISC_AMT_REPL_RET ) ) AS NET_SALES_VALUE,
SUM( DSSV.REPL_QTY ) AS REPL_QTY,
SUM( DSSV.REPL_VALUE - DSSV.DISC_AMT_REPL) AS REPL_VALUE,
SUM( DSSV.SALEABLE_RETURN_QTY ) AS SALEABLE_RETURN_QTY,
SUM( DSSV.SALEABLE_RETURN_AMT ) AS SALEABLE_RETURN_AMT,
SUM( DSSV.BREAKAGE_RETURN_QTY ) AS BREAKAGE_RETURN_QTY,
SUM( DSSV.BREAKAGE_RETURN_AMT ) AS BREAKAGE_RETURN_AMT,
SUM( DSSV.EXPIRY_RETURN_QTY ) AS EXPIRY_RETURN_QTY,
SUM( DSSV.EXPIRY_RETURN_AMT ) AS EXPIRY_RETURN_AMT,
SUM( DSSV.CORRECTION_RETURN_QTY ) AS CORRECTION_RETURN_QTY,
SUM( DSSV.CORRECTION_RETURN_AMT ) AS CORRECTION_RETURN_AMT,
SUM( DSSV.REPL_RETURN_QTY ) AS REPL_RETURN_QTY,
SUM( DSSV.REPL_RETURN_VALUE - DSSV.DISC_AMT_REPL_RET) AS REPL_RETURN_VALUE,
SUM( DSSV.RETURN_QTY ) AS RETURN_QTY,
SUM( DSSV.GROSS_RETURN_VALUE - DSSV.DISC_AMT_RET) AS GROSS_RETURN_VALUE,
SUM( DSSV.GROSS_RETURN_VALUE ) AS RETURN_VALUE,
SUM( DSSV.NET_RETURN_VALUE ) AS NET_RETURN_VALUE,
DSSV.CGST_RATE,
SUM(DSSV.CGST_AMT) AS CGST_AMT,
DSSV.SGST_RATE,
SUM(DSSV.SGST_AMT) AS SGST_AMT,
DSSV.IGST_RATE,
SUM(DSSV.IGST_AMT) AS IGST_AMT,
SUM(DSSV.DISC_AMT_INV + DSSV.DISC_AMT_RET + DSSV.DISC_AMT_REPL + DSSV.DISC_AMT_REPL_RET) AS DISC_AMT,
DSSV.MRP,
DSSV.PTR,
DSSV.PTS,
DSSV.HSN_CODE,
(SELECT DESCR FROM PACKING WHERE PACK_CODE = DSSV.PACK_CODE) AS PACK,
DSSV.DUE_DATE,
DSSV.REF_SER,
NVL(DSSV.CITY , 'NOTSPECIFIED') AS CITY,
DSSV.ITEM_BRAND,
DSSV.ITEM_SER
FROM
(SELECT 'S-INV ' AS REF_SER,
ITEM.ITEM_SER,
INVOICE.INVOICE_ID AS TRAN_ID,
INVOICE.SITE_CODE,
INVOICE.CUST_CODE,
INVOICE.CUST_CODE__BIL AS CUST_CODE_BILL,
INVOICE_TRACE.ITEM_CODE,
nvl(INVOICE_TRACE.LOT_NO,'NA') as lot_no,
nvl(INVOICE_TRACE.LINE_TYPE,'NA') as line_type,
INVOICE.TRAN_DATE,
DC.STAN_CODE,
(SELECT COUNT(ORG.POS_CODE)
FROM ORG_STRUCTURE ORG
WHERE ORG.STAN_CODE__HQ = DC.STAN_CODE
AND ORG.VERSION_ID IN (SELECT V.VERSION_ID FROM VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO)
AND ORG.TABLE_NO <> 'NFE'
AND ORG.TABLE_NO = ITEM.ITEM_SER
) AS POS_CODE_CNT,
INVOICE.INV_TYPE AS TRAN_TYPE,
ITEM.HSN_NO AS HSN_CODE,
ITEM.PACK_CODE AS PACK_CODE,
NVL(DC.CITY , 'NOTSPECIFIED') AS CITY,
ITEM.PHY_ATTRIB_2 AS ITEM_BRAND,
TO_CHAR(NVL(INVOICE.DUE_DATE,INVOICE.TRAN_DATE )) AS DUE_DATE,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') IN ( 'F', 'V') AND INVOICE_TRACE.RATE__STDUOM = 0
THEN 0
ELSE INVOICE_TRACE.QUANTITY__STDUOM
END
) AS SALES_QTY,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') = 'F' AND INVOICE_TRACE.RATE__STDUOM = 0
THEN 0
ELSE INVOICE_TRACE.QUANTITY__STDUOM * INVOICE_TRACE.RATE__STDUOM
END
) AS GROSS_SALES_VALUE,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') IN ( 'I', 'V')
THEN INVOICE_TRACE.QUANTITY__STDUOM
ELSE 0
END
) AS REPL_QTY,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') = 'F' AND INVOICE_TRACE.RATE__STDUOM = 0
THEN INVOICE_TRACE.QUANTITY__STDUOM
ELSE 0
END
) AS FREE_QTY,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') = 'F' AND INVOICE_TRACE.RATE__STDUOM = 0
THEN INVOICE_TRACE.QUANTITY__STDUOM * NVL(FN_RPICK_RATE_PL(DC.PRICE_LIST, INVOICE.TRAN_DATE, INVOICE_TRACE.ITEM_CODE, INVOICE_TRACE.LOT_NO) , 0 )
ELSE 0
END
) AS FREE_SALES_VALUE,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') IN ( 'I', 'V') AND INVOICE_TRACE.RATE__STDUOM = 0
THEN INVOICE_TRACE.QUANTITY__STDUOM * NVL(FN_RPICK_RATE_PL(DC.PRICE_LIST, INVOICE.TRAN_DATE, INVOICE_TRACE.ITEM_CODE, INVOICE_TRACE.LOT_NO) , 0 )
ELSE 0
END
) AS REPL_VALUE,
INVOICE_TRACE.NET_AMT AS NET_SALES_VALUE,
0 AS SALEABLE_RETURN_QTY,
0 AS SALEABLE_RETURN_AMT,
0 AS BREAKAGE_RETURN_QTY,
0 AS BREAKAGE_RETURN_AMT,
0 AS EXPIRY_RETURN_QTY,
0 AS EXPIRY_RETURN_AMT,
0 AS CORRECTION_RETURN_QTY,
0 AS CORRECTION_RETURN_AMT,
0 AS REPL_RETURN_QTY,
0 AS REPL_RETURN_VALUE,
0 AS RETURN_QTY,
0 AS GROSS_RETURN_VALUE,
0 AS NET_RETURN_VALUE,
0 AS FREE_RETURN_QTY,
0 AS FREE_RET_VALUE,
NVL(FN_RGET_TAX_NEW('S-INV',INVOICE_TRACE.INVOICE_ID,CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'CGST_TAX',' ',' ','P'),0) AS CGST_RATE,
NVL(FN_RGET_TAX_NEW('S-INV',INVOICE_TRACE.INVOICE_ID,CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'CGST_TAX',' ',' ','T'),0) AS CGST_AMT,
NVL(FN_RGET_TAX_NEW('S-INV',INVOICE_TRACE.INVOICE_ID,CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'SGST_TAX',' ',' ','P'),0) AS SGST_RATE,
NVL(FN_RGET_TAX_NEW('S-INV',INVOICE_TRACE.INVOICE_ID,CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'SGST_TAX',' ',' ','T'),0) AS SGST_AMT,
NVL(FN_RGET_TAX_NEW('S-INV',INVOICE_TRACE.INVOICE_ID,CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'IGST_TAX',' ',' ','P'),0) AS IGST_RATE,
NVL(FN_RGET_TAX_NEW('S-INV',INVOICE_TRACE.INVOICE_ID,CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'IGST_TAX',' ',' ','T'),0) AS IGST_AMT,
( (NVL((((NVL(INVOICE_TRACE.QUANTITY,0)*NVL(INVOICE_TRACE.RATE__STDUOM,0)*NVL(INVOICE.EXCH_RATE,0))*NVL(INVOICE_TRACE.DISCOUNT,0))/100),0) + NVL(FN_RGET_TAX_NEW('S-INV', INVOICE_TRACE.INVOICE_ID, CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'DISC_GST',' ',' ','T')*(-1),0)) ) AS DISC_AMT_INV,
0 AS DISC_AMT_RET,
(
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') IN ( 'I', 'V') AND INVOICE_TRACE.RATE__STDUOM = 0
THEN ( (NVL((((NVL(INVOICE_TRACE.QUANTITY,0)*NVL(INVOICE_TRACE.RATE__STDUOM,0)*NVL(INVOICE.EXCH_RATE,0))*NVL(INVOICE_TRACE.DISCOUNT,0))/100),0)
+ NVL(FN_RGET_TAX_NEW('S-INV', INVOICE_TRACE.INVOICE_ID, CAST(INVOICE_TRACE.LINE_NO AS CHAR(3)),'DISC_GST',' ',' ','T')*(-1),0)) )
ELSE 0
END
) AS DISC_AMT_REPL,
0 AS DISC_AMT_REPL_RET,
NVL(FN_RPICK_MRP_PTR(INVOICE_TRACE.ITEM_CODE,INVOICE.TRAN_DATE,INVOICE_TRACE.LOT_NO,'MRP_GST'),0) AS MRP,
NVL(FN_RPICK_MRP_PTR(INVOICE_TRACE.ITEM_CODE,INVOICE.TRAN_DATE,INVOICE_TRACE.LOT_NO,'PTR_GST'),0) AS PTR,
NVL(FN_RPICK_MRP_PTR(INVOICE_TRACE.ITEM_CODE,INVOICE.TRAN_DATE,INVOICE_TRACE.LOT_NO,'PTS_GST'),0) AS PTS
FROM INVOICE
INNER JOIN INVOICE_TRACE ON INVOICE.INVOICE_ID = INVOICE_TRACE.INVOICE_ID
INNER JOIN SITE ON INVOICE.SITE_CODE = SITE.SITE_CODE
INNER JOIN ITEM ON INVOICE_TRACE.ITEM_CODE = ITEM.ITEM_CODE
LEFT OUTER JOIN CUSTOMER DC ON INVOICE.CUST_CODE = DC.CUST_CODE
WHERE INVOICE.CONFIRMED = 'Y'
AND INVOICE.TRAN_DATE >= AS_FR_DATE
AND INVOICE.TRAN_DATE <= AS_TO_DATE
UNION ALL
SELECT 'S-RET' AS REF_SER,
ITEM.ITEM_SER,
SRETURN.TRAN_ID,
SRETURN.SITE_CODE,
SRETURN.CUST_CODE,
SRETURN.CUST_CODE__BILL AS CUST_CODE_BILL,
SRETURNDET.ITEM_CODE,
nvl(SRETURNDET.LOT_NO,'NA') as lot_no,
nvl(SRETURNDET.LINE_TYPE,'NA') as line_type,
SRETURN.TRAN_DATE,
DC.STAN_CODE ,
(SELECT COUNT(ORG.POS_CODE)
FROM ORG_STRUCTURE ORG
WHERE ORG.STAN_CODE__HQ = DC.STAN_CODE
AND ORG.VERSION_ID IN (SELECT V.VERSION_ID FROM VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO)
AND ORG.TABLE_NO <> 'NFE'
AND ORG.TABLE_NO = ITEM.ITEM_SER
) AS POS_CODE_CNT,
SRETURN.TRAN_TYPE,
ITEM.HSN_NO AS HSN_CODE,
ITEM.PACK_CODE AS PACK_CODE,
ITEM.PHY_ATTRIB_2 AS ITEM_BRAND,
NVL(DC.CITY , 'NOTSPECIFIED') AS CITY,
TO_CHAR( SRETURN.TRAN_DATE) AS DUE_DATE,
0 AS SALES_QTY,
0 AS GROSS_SALES_VALUE,
0 AS REPL_QTY,
0 AS FREE_QTY,
0 AS FREE_SALES_VALUE,
0 AS REPL_VALUE,
0 AS NET_SALES_VALUE,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE IN('SR')
THEN SRETURNDET.QUANTITY__STDUOM
ELSE 0
END
) AS SALEABLE_RETURN_QTY,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE IN('SR')
THEN SRETURNDET.QUANTITY__STDUOM * SRETURNDET.RATE__STDUOM
ELSE 0
END
) AS SALEABLE_RETURN_AMT,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE IN('BR', 'DR')
THEN SRETURNDET.QUANTITY__STDUOM
ELSE 0
END
) AS BREAKAGE_RETURN_QTY,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE IN('BR', 'DR')
THEN SRETURNDET.QUANTITY__STDUOM * SRETURNDET.RATE__STDUOM
ELSE 0
END
) AS BREAKAGE_RETURN_AMT,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE = 'ER'
AND SRETURNDET.DISCOUNT <> 100
THEN SRETURNDET.QUANTITY__STDUOM
ELSE 0
END
) AS EXPIRY_RETURN_QTY,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE = 'ER'
AND SRETURNDET.DISCOUNT <> 100
THEN SRETURNDET.QUANTITY__STDUOM * SRETURNDET.RATE__STDUOM
ELSE 0
END
) AS EXPIRY_RETURN_AMT,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE IN('IC')
THEN SRETURNDET.QUANTITY__STDUOM
ELSE 0
END
) AS CORRECTION_RETURN_QTY,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
AND SRETURN.TRAN_TYPE IN('IC')
THEN SRETURNDET.QUANTITY__STDUOM * SRETURNDET.RATE__STDUOM
ELSE 0
END
) AS CORRECTION_RETURN_AMT,
DECODE(SRETURNDET.RET_REP_FLAG, 'P', SRETURNDET.QUANTITY__STDUOM, 0) AS REPL_RETURN_QTY,
DECODE(SRETURNDET.RET_REP_FLAG, 'P', SRETURNDET.QUANTITY__STDUOM * SRETURNDET.RATE__STDUOM, 0) AS REPL_RETURN_VALUE,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
THEN SRETURNDET.QUANTITY__STDUOM
ELSE 0
END
) AS RETURN_QTY,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
THEN SRETURNDET.QUANTITY__STDUOM * SRETURNDET.RATE__STDUOM
ELSE 0
END
) AS GROSS_RETURN_VALUE,
SRETURNDET.NET_AMT AS NET_RETURN_VALUE,
(
CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
THEN DECODE(INVOICE_TRACE.INVOICE_ID, NULL, 0, (
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') = 'F'
AND INVOICE_TRACE.RATE__STDUOM = 0
THEN SRETURNDET.QUANTITY__STDUOM
ELSE 0
END) )
ELSE 0
END) AS FREE_RETURN_QTY,
(CASE
WHEN SRETURNDET.RET_REP_FLAG = 'R'
THEN DECODE(INVOICE_TRACE.INVOICE_ID, NULL, 0, (
CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') = 'F'
AND INVOICE_TRACE.RATE__STDUOM = 0
THEN SRETURNDET.QUANTITY__STDUOM * INVOICE_TRACE.RATE__STDUOM
ELSE 0
END) )
ELSE 0
END) AS FREE_RET_VALUE,
NVL(FN_RGET_TAX_NEW('S-RET',SRETURN.TRAN_ID,CAST(SRETURNDET.LINE_NO AS CHAR(3)),'CGST_TAX',' ',' ','P'),0) AS CGST_RATE,
NVL(FN_RGET_TAX_NEW('S-RET',SRETURN.TRAN_ID,CAST(SRETURNDET.LINE_NO AS CHAR(3)),'CGST_TAX',' ',' ','T'),0) AS CGST_AMT,
NVL(FN_RGET_TAX_NEW('S-RET',SRETURN.TRAN_ID,CAST(SRETURNDET.LINE_NO AS CHAR(3)),'SGST_TAX',' ',' ','P'),0) AS SGST_RATE,
NVL(FN_RGET_TAX_NEW('S-RET',SRETURN.TRAN_ID,CAST(SRETURNDET.LINE_NO AS CHAR(3)),'SGST_TAX',' ',' ','T'),0) AS SGST_AMT,
NVL(FN_RGET_TAX_NEW('S-RET',SRETURN.TRAN_ID,CAST(SRETURNDET.LINE_NO AS CHAR(3)),'IGST_TAX',' ',' ','P'),0) AS IGST_RATE,
NVL(FN_RGET_TAX_NEW('S-RET',SRETURN.TRAN_ID,CAST(SRETURNDET.LINE_NO AS CHAR(3)),'IGST_TAX',' ',' ','T'),0) AS IGST_AMT,
0 AS DISC_AMT_INV,
((NVL((((NVL(SRETURNDET.QUANTITY__STDUOM,0)*NVL(SRETURNDET.RATE__STDUOM,0)*NVL(SRETURN.EXCH_RATE,0))*NVL(SRETURNDET.DISCOUNT,0))/100),0)
+ NVL(FN_RGET_TAX_NEW('S-RET', SRETURN.TRAN_ID, CAST(SRETURNDET.LINE_NO AS CHAR(3)),'DISC_GST',' ',' ','T')*(-1),0))) AS DISC_AMT_RET,
0 AS DISC_AMT_REPL,
DECODE(SRETURNDET.RET_REP_FLAG,'P',((NVL((((NVL(SRETURNDET.QUANTITY__STDUOM,0)*NVL(SRETURNDET.RATE__STDUOM,0)*NVL(SRETURN.EXCH_RATE,0))*NVL(SRETURNDET.DISCOUNT,0))/100),0)
+ NVL(FN_RGET_TAX_NEW('S-RET', SRETURN.TRAN_ID, CAST(SRETURNDET.LINE_NO AS CHAR(3)),'DISC_GST',' ',' ','T')*(-1),0))), 0) AS DISC_AMT_REPL_RET,
NVL(FN_RPICK_MRP_PTR(SRETURNDET.ITEM_CODE, SRETURN.TRAN_DATE,SRETURNDET.LOT_NO,'MRP_GST'),0) AS MRP,
NVL(FN_RPICK_MRP_PTR(SRETURNDET.ITEM_CODE, SRETURN.TRAN_DATE,SRETURNDET.LOT_NO,'PTR_GST'),0) AS PTR,
NVL(FN_RPICK_MRP_PTR(SRETURNDET.ITEM_CODE, SRETURN.TRAN_DATE,SRETURNDET.LOT_NO,'PTS_GST'),0) AS PTS
FROM SRETURN
INNER JOIN SRETURNDET ON SRETURN.TRAN_ID = SRETURNDET.TRAN_ID
INNER JOIN SITE ON SRETURN.SITE_CODE = SITE.SITE_CODE
INNER JOIN ITEM ON SRETURNDET.ITEM_CODE = ITEM.ITEM_CODE
LEFT OUTER JOIN CUSTOMER DC ON SRETURN.CUST_CODE = DC.CUST_CODE
LEFT OUTER JOIN INVOICE_TRACE ON SRETURN.INVOICE_ID = INVOICE_TRACE.INVOICE_ID
AND SRETURNDET.INVOICE_ID = INVOICE_TRACE.INVOICE_ID
AND SRETURNDET.LINE_NO__INVTRACE = INVOICE_TRACE.LINE_NO
WHERE SRETURN.CONFIRMED = 'Y'
AND SRETURN.TRAN_DATE >= AS_FR_DATE
AND SRETURN.TRAN_DATE <= AS_TO_DATE
) DSSV
GROUP BY DSSV.TRAN_ID,
DSSV.SITE_CODE,
DSSV.CUST_CODE,
DSSV.CUST_CODE_BILL,
DSSV.ITEM_CODE,
DSSV.LOT_NO,
DSSV.LINE_TYPE,
DSSV.TRAN_DATE,
DSSV.STAN_CODE,
DSSV.MRP,
DSSV.PTR,
DSSV.PTS,
DSSV.HSN_CODE,
DSSV.PACK_CODE,
DSSV.DUE_DATE,
DSSV.ITEM_BRAND,
NVL(DSSV.CITY , 'NOTSPECIFIED'),
DSSV.CGST_RATE,
DSSV.SGST_RATE,
DSSV.IGST_RATE,
DSSV.REF_SER,
DSSV.ITEM_SER
) DSS
WHERE ORG.VERSION_ID IN (SELECT V.VERSION_ID FROM VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO)
AND ORG.TABLE_NO = DSS.ITEM_SER
AND ORG.TABLE_NO <> 'NFE'
AND ORG.STAN_CODE__HQ = DSS.STAN_CODE
AND ORG.STAN_CODE__HQ IS NOT NULL;
/*========== INSERT for DWH_SALES_SUM Ended ==========*/
COMMIT ;
/* ==================== DWH_SALES_SUM Data Insertion END ==================== */
END IF;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(' Error occured ');
END;
/
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment