Commit b4267977 authored by pborate's avatar pborate

Updated sql for sales trend dashboard

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@200685 ce508802-f39f-4f6c-b175-0d175dae99d5
parent d51b829f
create or replace TRIGGER invoice_after_ins_upd
AFTER UPDATE of confirmed ON INVOICE FOR EACH ROW
DECLARE
CONFVAL CHAR(1);
REFCOUNT NUMBER(10,2) DEFAULT 0;
BEGIN
SELECT COUNT(REF_ID) INTO REFCOUNT FROM DWH_TRAN_LOAD WHERE REF_ID=:NEW.INVOICE_ID AND REF_SER='S-INV' ;--AND REF_DATE=:NEW.TRAN_DATE AND UPDATE_STAT='P' ;
CONFVAL:=:NEW.CONFIRMED;
IF(CONFVAL = 'Y') THEN
-- Insert record into DWH_TRAN_LOAD table
INSERT INTO DWH_TRAN_LOAD
( REF_ID,
REF_SER,
REF_DATE,
UPDATE_STAT
)
VALUES
(
:NEW.INVOICE_ID,
'S-INV',
:NEW.TRAN_DATE,
'P'
);
END IF;
END;
create or replace TRIGGER sreturn_after_ins_upd
AFTER UPDATE of confirmed ON SRETURN FOR EACH ROW
DECLARE
CONFVAL CHAR(1);
REFCOUNT NUMBER(10,2) DEFAULT 0;
BEGIN
SELECT COUNT(REF_ID) INTO REFCOUNT FROM DWH_TRAN_LOAD WHERE REF_ID=:NEW.TRAN_ID AND REF_SER='S-RET' ;-- AND REF_DATE=:NEW.TRAN_DATE AND UPDATE_STAT='P' ;
CONFVAL:=:NEW.CONFIRMED;
IF(CONFVAL = 'Y' AND REFCOUNT = 0) THEN
-- Insert record into DWH_TRAN_LOAD table
INSERT INTO DWH_TRAN_LOAD
( REF_ID,
REF_SER,
REF_DATE,
UPDATE_STAT
)
VALUES
(
:new.TRAN_ID,
'S-RET',
:new.TRAN_DATE,
'P'
);
END IF;
END;
-------------------------------To create table DWH_SALES_SUM ---------------------------------------------------------
CREATE TABLE DWH_SALES_SUM
(
SITE_CODE VARCHAR2(8 BYTE),
CUST_CODE VARCHAR2(30 CHAR),
ITEM_CODE VARCHAR2(30 CHAR),
SALES_QTY NUMBER(14,3),
GROSS_SALES_VALUE NUMBER(14,3),
REPL_QTY NUMBER(14,3),
FREE_QTY NUMBER(14,3),
FREE_SALES_VALUE NUMBER(14,3),
NET_SALES_VALUE NUMBER(14,3),
DOC_DATE DATE
);
Delete from DATA_MODEL where DATA_MODEL = 'SALES_ANALYSIS_BY_LEVEL';
Insert into DATA_MODEL (DATA_MODEL,DESCR,DATA_SOURCE,SOURCE_DET,SOURCE_INPUT,FORMAT,CHG_DATE,CHG_USER,CHG_TERM,VALID_DAYS,SCOPE_NAME,SYNC_DATA_MODEL)
values ('SALES_ANALYSIS_BY_LEVEL','SALES ANALYSIS DATA','S',
'select DSS.DOC_DATE as "TRANSACTION DATE",
......@@ -61,7 +63,9 @@ DSS.CITY,
DSS.ITEM_BRAND,
DSS.IGST_AMT,
DSS.IGST_RATE,
DSS.REF_SER
DSS.REF_SER,
DSS.SALES_VALUE,
DSS.RETURN_VALUE
from DWH_SALES_SUM DSS
LEFT OUTER JOIN ITEM I ON DSS.ITEM_CODE = I.ITEM_CODE
LEFT OUTER JOIN ITEMSER ISER ON I.ITEM_SER = ISER.ITEM_SER,
......@@ -72,12 +76,13 @@ lv3.pos_code lv3, lv3.pos_code__repto lv3_repo, case when lv3.descr is null then
lv4.pos_code lv4, lv4.pos_code__repto lv4_repo, case when lv4.descr is null then ''NA'' else lv4.descr end lv4_descr,
lv1.pos_code, lv1.table_no, lv1.version_id, lv1.pool_code
from org_structure lv1
left outer join org_structure lv2 on lv1.pos_code__repto = lv2.pos_code
left outer join org_structure lv3 on lv2.pos_code__repto = lv3.pos_code
left outer join org_structure lv4 on lv3.pos_code__repto = lv4.pos_code
left outer join org_structure lv2 on lv1.pos_code__repto = lv2.pos_code and Lv1.TABLE_NO=Lv2.TABLE_NO and Lv1.VERSION_ID=Lv2.VERSION_ID
left outer join org_structure lv3 on lv2.pos_code__repto = lv3.pos_code and Lv2.TABLE_NO=Lv3.TABLE_NO and Lv2.VERSION_ID=Lv3.VERSION_ID
left outer join org_structure lv4 on lv3.pos_code__repto = lv4.pos_code and Lv3.TABLE_NO=Lv4.TABLE_NO and Lv3.VERSION_ID=Lv4.VERSION_ID
) DHH
WHERE DHH.POS_CODE = DSS.POS_CODE
AND DHH.version_id in (select version_id from version where to_date(sysdate) between eff_from and valid_upto )
AND DHH.TABLE_NO=NVL(ISER.TABLE_NO__HIER, ISER.ITEM_SER)
AND to_char(DSS.DOC_DATE, ''MM/YYYY'')= ?
AND I.ITEM_SER >= ?
AND I.ITEM_SER <= ?
......
delete from DATA_MODEL where DATA_MODEL = 'SALES_ANALYSIS';
Delete from DATA_MODEL where DATA_MODEL = 'SALES_ANALYSIS';
Insert into DATA_MODEL (DATA_MODEL,DESCR,DATA_SOURCE,SOURCE_DET,SOURCE_INPUT,FORMAT,CHG_DATE,CHG_USER,CHG_TERM,VALID_DAYS,SCOPE_NAME,SYNC_DATA_MODEL)
values ('SALES_ANALYSIS','SALES ANALYSIS DATA','S',
'select DS.DOC_DATE as "TRANSACTION DATE",
DS.POS_CODE as "LEVEL CODE",
NVL(DH.lv4,''NA'') as "LEVEL1 CODE",
NVL(DH.lv4_descr,''NA'') as "LEVEL1 DESCRIPTION",
NVL(DH.lv3,''NA'') as "LEVEL2 CODE",
NVL(DH.lv3_descr,''NA'') as "LEVEL2 DESCRIPTION",
NVL(DH.lv2,''NA'') as "LEVEL3 CODE",
NVL(DH.lv2_descr,''NA'') as "LEVEL3 DESCRIPTION",
NVL(DH.lv1,''NA'') as "LEVEL4 CODE",
NVL(DH.lv1_descr,''NA'') as "LEVEL4 DESCRIPTION",
NVL(DH.POS_CODE,''NA'') as "POSITION CODE",
DH.POOL_CODE as "POOL CODE",
DH.TABLE_NO as "TABLE NO",
DH.VERSION_ID as "VERSION ID",
DS.CUST_CODE as "CUSTOMER CODE",
(SELECT CUST_NAME from CUSTOMER where CUST_CODE=DS.CUST_CODE) as "CUSTOMER NAME",
DS.SITE_CODE as "SITE CODE",
(SELECT DESCR from SITE where SITE_CODE=DS.SITE_CODE) as "SITE DESCRIPTION",
DS.ITEM_CODE AS "ITEM CODE",
I.DESCR AS "ITEM DESCRIPTION",
'select D.DOC_DATE as "TRANSACTION DATE",
D.POS_CODE as "LEVEL CODE",
NVL(H.L4,''NA'') as "LEVEL1 CODE",
NVL(H.L4_DESCR,''NA'') as "LEVEL1 DESCRIPTION",
NVL(H.L3,''NA'') as "LEVEL2 CODE",
NVL(H.L3_DESCR,''NA'') as "LEVEL2 DESCRIPTION",
NVL(H.L2,''NA'') as "LEVEL3 CODE",
NVL(H.L2_DESCR,''NA'') as "LEVEL3 DESCRIPTION",
NVL(H.L1,''NA'') as "LEVEL4 CODE",
NVL(H.L1_DESCR,''NA'') as "LEVEL4 DESCRIPTION",
NVL(H.POS_CODE,''NA'') as "POSITION CODE",
H.POOL_CODE as "POOL CODE",
H.TABLE_NO as "TABLE NO",
H.VERSION_ID as "VERSION ID",
D.CUST_CODE as "CUSTOMER CODE",
(select CUST_NAME from CUSTOMER where CUST_CODE=D.CUST_CODE) as "CUSTOMER NAME",
D.SITE_CODE as "SITE CODE",
(select DESCR from SITE where SITE_CODE=D.SITE_CODE) as "SITE DESCRIPTION",
D.ITEM_CODE as "ITEM CODE",
I.DESCR as "ITEM DESCRIPTION",
I.ITEM_SER as "ITEM SERIES",
ISER.DESCR as "ITEM SERIES DESCRIPTION",
ISER.PRODUCT_LINE as "PRODUCT LINE",
(SELECT descr from GENCODES where RPAD(fld_value,5,'' '')=ISER.PRODUCT_LINE) as "PRODUCT LINE DESCRIPTION",
DS.NET_SALES_VALUE as "NET SALES VALUE",
DS.SALES_QTY as "SALES QUANTITY",
DS.GROSS_SALES_VALUE as "GROSS SALES VALUE",
DS.FREE_QTY as "FREE QUANTITY",
DS.FREE_SALES_VALUE as "FREE SALES VALUE",
DS.NET_SALES_QTY as "NET SALES QUANTITY",
DS.SALE_RET_QTY as "SALEABLE RETURN QUANTITY",
DS.SALE_RET_AMT as "SALEABLE RETURN VALUE",
DS.BRK_RET_QTY as "DAMAGED RETURN QUANTITY",
DS.BRK_RET_AMT as "DAMAGED RETURN VALUE",
DS.EXP_RET_QTY as "EXPIRY RETURN QUANTITY",
DS.EXP_RET_AMT as "EXPIRY RETURN VALUE",
DS.COR_RET_QTY as "CANCELED RETURN QUANTITY",
DS.COR_RET_AMT as "CANCELED RETURN VALUE",
DS.REPL_RET_QTY as "REPLACEMENT RETURN QUANTITY",
DS.REPL_RET_VALUE as "REPLACEMENT RETURN VALUE",
DS.RET_QTY as "RETURN QUANTITY",
DS.GROSS_RET_VALUE as "GROSS RETURN VALUE",
DS.NET_RET_VALUE as "NET RETURN VALUE",
DS.REPL_VALUE as "REPLACEMENT VALUE"
ISS.DESCR as "ITEM SERIES DESCRIPTION",
ISS.PRODUCT_LINE as "PRODUCT LINE",
(select DESCR from GENCODES where RPAD(FLD_VALUE,5,'' '')=ISS.PRODUCT_LINE) as "PRODUCT LINE DESCRIPTION",
D.NET_VALUE as "NET SALES VALUE",
D.SAL_QTY as "SALES QUANTITY",
D.GROSS_VALUE as "GROSS SALES VALUE",
D.FR_QTY as "FREE QUANTITY",
D.FREE_VALUE as "FREE SALES VALUE",
D.NET_QTY as "NET SALES QUANTITY",
D.SAL_RET_QTY as "SALEABLE RETURN QUANTITY",
D.SAL_RET_AMT as "SALEABLE RETURN VALUE",
D.BRK_RET_QTY as "DAMAGED RETURN QUANTITY",
D.BRK_RET_AMT as "DAMAGED RETURN VALUE",
D.EXP_RET_QTY as "EXPIRY RETURN QUANTITY",
D.EXP_RET_AMT as "EXPIRY RETURN VALUE",
D.COR_RET_QTY as "CANCELED RETURN QUANTITY",
D.COR_RET_AMT as "CANCELED RETURN VALUE",
D.REPL_RET_QTY as "REPLACEMENT RETURN QUANTITY",
D.REPL_RET_VALUE as "REPLACEMENT RETURN VALUE",
D.RET_QTY as "RETURN QUANTITY",
D.GR_RET_VALUE as "GROSS RETURN VALUE",
D.NET_RET_VALUE as "NET RETURN VALUE",
D.RL_VALUE as "REPLACEMENT VALUE",
D.SALES_VALUE,
D.RETURN_VALUE
from
(
select
DS.DOC_DATE,
DS.POS_CODE,
DS.CUST_CODE,
DS.SITE_CODE,
DS.ITEM_CODE,
SUM(DS.NET_SALES_VALUE) as NET_SALES_VALUE,
SUM(DS.SALES_QTY) as SALES_QTY,
SUM(DS.GROSS_SALES_VALUE) as GROSS_SALES_VALUE,
SUM(DS.FREE_QTY) as FREE_QTY,
SUM(DS.FREE_SALES_VALUE) as FREE_SALES_VALUE,
SUM(DS.NET_SALES_QTY) as NET_SALES_QTY,
SUM(DS.SALEABLE_RETURN_QTY) as SALE_RET_QTY,
SUM(DS.SALEABLE_RETURN_AMT) as SALE_RET_AMT,
SUM(DS.BREAKAGE_RETURN_QTY) as BRK_RET_QTY,
SUM(DS.BREAKAGE_RETURN_AMT) as BRK_RET_AMT,
SUM(DS.EXPIRY_RETURN_QTY) as EXP_RET_QTY,
SUM(DS.EXPIRY_RETURN_AMT) as EXP_RET_AMT,
SUM(DS.CORRECTION_RETURN_QTY) as COR_RET_QTY,
SUM(DS.CORRECTION_RETURN_AMT) as COR_RET_AMT,
SUM(DS.REPL_RETURN_QTY) as REPL_RET_QTY,
SUM(DS.REPL_RETURN_VALUE) as REPL_RET_VALUE,
SUM(DS.RETURN_QTY) as RET_QTY,
SUM(DS.GROSS_RETURN_VALUE) as GROSS_RET_VALUE,
SUM(DS.NET_RETURN_VALUE) as NET_RET_VALUE,
SUM(DS.REPL_VALUE) as REPL_VALUE
from DWH_SALES_SUM DS
group by DS.SITE_CODE,DS.CUST_CODE,DS.ITEM_CODE,DS.DOC_DATE,DS.POS_CODE
) DS
LEFT OUTER JOIN ITEM I ON DS.ITEM_CODE=I.ITEM_CODE
LEFT OUTER JOIN ITEMSER ISER ON I.ITEM_SER=ISER.ITEM_SER
LEFT OUTER JOIN
D.DOC_DATE,
D.POS_CODE,
D.CUST_CODE,
D.SITE_CODE,
D.ITEM_CODE,
SUM(D.NET_SALES_VALUE) as NET_VALUE,
SUM(D.SALES_QTY) as SAL_QTY,
SUM(D.GROSS_SALES_VALUE) as GROSS_VALUE,
SUM(D.FREE_QTY) as FR_QTY,
SUM(D.FREE_SALES_VALUE) as FREE_VALUE,
SUM(D.NET_SALES_QTY) as NET_QTY,
SUM(D.SALEABLE_RETURN_QTY) as SAL_RET_QTY,
SUM(D.SALEABLE_RETURN_AMT) as SAL_RET_AMT,
SUM(D.BREAKAGE_RETURN_QTY) as BRK_RET_QTY,
SUM(D.BREAKAGE_RETURN_AMT) as BRK_RET_AMT,
SUM(D.EXPIRY_RETURN_QTY) as EXP_RET_QTY,
SUM(D.EXPIRY_RETURN_AMT) as EXP_RET_AMT,
SUM(D.CORRECTION_RETURN_QTY) as COR_RET_QTY,
SUM(D.CORRECTION_RETURN_AMT) as COR_RET_AMT,
SUM(D.REPL_RETURN_QTY) as REPL_RET_QTY,
SUM(D.REPL_RETURN_VALUE) as REPL_RET_VALUE,
SUM(D.RETURN_QTY) as RET_QTY,
SUM(D.GROSS_RETURN_VALUE) as GR_RET_VALUE,
SUM(D.NET_RETURN_VALUE) as NET_RET_VALUE,
SUM(D.REPL_VALUE) as RL_VALUE ,
D.SALES_VALUE,
D.RETURN_VALUE
from DWH_SALES_SUM D
group by D.SITE_CODE,D.CUST_CODE,D.ITEM_CODE,D.DOC_DATE,D.POS_CODE,D.SALES_VALUE,
D.RETURN_VALUE
) D
left outer join ITEM I on D.ITEM_CODE=I.ITEM_CODE
left outer join ITEMSER ISS on I.ITEM_SER=ISS.ITEM_SER
left outer join
(
select lv1.pos_code lv1,lv1.pos_code__repto lv1_repo,lv1.descr as lv1_descr,
lv2.pos_code lv2,lv2.pos_code__repto lv2_repo,lv2.descr as lv2_descr,
lv3.pos_code lv3,lv3.pos_code__repto lv3_repo,lv3.descr as lv3_descr,
lv4.pos_code lv4,lv4.pos_code__repto lv4_repo,lv4.descr as lv4_descr,
lv1.pos_code,lv1.table_no,lv1.version_id,lv1.pool_code
from org_structure lv1
left outer join org_structure lv2 on lv1.pos_code__repto=lv2.pos_code
left outer join org_structure lv3 on lv2.pos_code__repto=lv3.pos_code
left outer join org_structure lv4 on lv3.pos_code__repto=lv4.pos_code
)DH ON DH.POS_CODE=DS.POS_CODE
AND DH.version_id in(select version_id from version where to_date(sysdate) between eff_from and valid_upto)
WHERE DS.DOC_DATE >= ?
AND DS.DOC_DATE <= ?
AND I.ITEM_SER >= ?
AND I.ITEM_SER <= ?
AND DS.SITE_CODE >= ?
AND DS.SITE_CODE <= ?',
select L1.POS_CODE L1,L1.POS_CODE__REPTO L1_REPO,L1.DESCR as L1_DESCR,
L2.POS_CODE L2,L2.POS_CODE__REPTO L2_REPO,L2.DESCR as L2_DESCR,
L3.POS_CODE L3,L3.POS_CODE__REPTO L3_REPO,L3.DESCR as L3_DESCR,
L4.POS_CODE L4,L4.POS_CODE__REPTO L4_REPO,L4.DESCR as L4_DESCR,
L1.POS_CODE,L1.TABLE_NO,L1.VERSION_ID,L1.POOL_CODE
from ORG_STRUCTURE L1
left outer join ORG_STRUCTURE L2 on L1.POS_CODE__REPTO=L2.POS_CODE and L1.TABLE_NO=L2.TABLE_NO and L1.VERSION_ID=L2.VERSION_ID
left outer join ORG_STRUCTURE L3 on L2.POS_CODE__REPTO=L3.POS_CODE and L2.TABLE_NO=L3.TABLE_NO and L2.VERSION_ID=L3.VERSION_ID
left outer join ORG_STRUCTURE L4 on L3.POS_CODE__REPTO=L4.POS_CODE and L3.TABLE_NO=L4.TABLE_NO and L3.VERSION_ID=L4.VERSION_ID
)H on H.POS_CODE=D.POS_CODE
and H.VERSION_ID in(select VERSION_ID from version where TO_DATE(sysdate) between EFF_FROM and VALID_UPTO)
and H.TABLE_NO=NVL(ISS.TABLE_NO__HIER, ISS.ITEM_SER)
where D.DOC_DATE >= ?
and D.DOC_DATE <= ?
and I.ITEM_SER >= ?
and I.ITEM_SER <= ?
and D.SITE_CODE >= ?
and D.SITE_CODE <= ?',
':fromDate,:toDate,:ITEM_SER__FR,:ITEM_SER__TO,:SITE_CODE_FR,:SITE_CODE_TO','json',SYSDATE,'ADMIN','SYSTEM',null,
'fromDate'||'&'||'toDate'||'&'||'ITEM_SER__FR'||'&'||'ITEM_SER__TO'||'&'||'SITE_CODE_FR'||'&'||'SITE_CODE_TO',null);
\ No newline at end of file
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