Commit 89166ff9 authored by vbhosale's avatar vbhosale

new plsql for dwh sales

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@194234 ce508802-f39f-4f6c-b175-0d175dae99d5
parent c7b21f60
create or replace PROCEDURE DWH_SALES(
AS_FR_DATE DATE,
AS_TO_DATE DATE)
AS
AS_ACT_KEY VARCHAR2(8);
AS_ACT_TIMESTAMP TIMESTAMP;
AS_DSS_TIMESTAMP TIMESTAMP;
AS_CNT NUMBER(10);
BEGIN
IF (AS_TO_DATE >= AS_FR_DATE) THEN
/*========== INSERT for DWH_SALES_SUM_TEMP Started ==========*/
INSERT
INTO DWH_SALES_SUM
(
SITE_CODE,
CUST_CODE,
ITEM_CODE,
DOC_DATE,
SALES_QTY,
GROSS_SALES_VALUE,
REPL_QTY,
FREE_QTY,
FREE_SALES_VALUE,
NET_SALES_VALUE
)
SELECT DS.SITE_CODE,
DC.CUST_CODE,
DP.ITEM_CODE,
A.TRAN_DATE,
SUM( COALESCE(A.SALES_QTY, 0) ),
SUM( COALESCE(A.GROSS_SALES_VALUE, 0) ),
SUM( COALESCE(A.REPL_QTY, 0) ),
SUM( COALESCE(A.FREE_QTY, 0) ),
SUM( COALESCE(A.FREE_SALES_VALUE, 0) ),
SUM( COALESCE(A.NET_SALES_VALUE, 0) )
FROM
(SELECT INVOICE.SITE_CODE,
INVOICE.CUST_CODE,
INVOICE_TRACE.ITEM_CODE,
INVOICE.TRAN_DATE,
(CASE
WHEN COALESCE(INVOICE_TRACE.LINE_TYPE,'C') = 'F' 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 * INVOICE_TRACE.RATE__STDUOM
ELSE 0
END) AS FREE_SALES_VALUE,
INVOICE_TRACE.NET_AMT AS NET_SALES_VALUE
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 SORDER
ON INVOICE.SALE_ORDER = SORDER.SALE_ORDER
INNER JOIN ITEM
ON INVOICE_TRACE.ITEM_CODE = ITEM.ITEM_CODE
WHERE INVOICE.CONFIRMED = 'Y'
AND INVOICE_TRACE.ITEM_CODE BETWEEN '00' AND 'ZZ'
AND INVOICE.TRAN_DATE >= AS_FR_DATE
AND INVOICE.TRAN_DATE <= AS_TO_DATE
) A
LEFT OUTER JOIN SITE DS
ON A.SITE_CODE = DS.SITE_CODE
LEFT OUTER JOIN CUSTOMER DC
ON A.CUST_CODE = DC.CUST_CODE
LEFT OUTER JOIN ITEM DP
ON A.ITEM_CODE = DP.ITEM_CODE
GROUP BY DS.SITE_CODE,
DC.CUST_CODE,
DP.ITEM_CODE,
A.TRAN_DATE,
COALESCE(AS_DSS_TIMESTAMP, TO_TIMESTAMP(TO_CHAR(SYSTIMESTAMP,'DD-MON-YY HH24:MI:SS'),'DD-MON-YY HH24:MI:SS')),
TO_TIMESTAMP(TO_CHAR(SYSTIMESTAMP,'DD-MON-YYYY HH24:MI:SS'),'DD-MON-YYYY HH24:MI:SS') ,
TO_CHAR(A.TRAN_DATE, 'YYYYMM') ;
/*========== INSERT for DWH_SALES_SUM_TEMP Ended ==========*/
COMMIT ;
/* ==================== DWH_SALES_SUM_TEMP Data Insertion END ==================== */
END IF;
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