Commit 0240f84a authored by skamble's avatar skamble

queris for kpi dashboard

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@215976 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 98f03a58
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
DATA_MODEL
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------ DATA_MODEL = ESI_KPI_DM -------------------------------------
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,
COLUMN_ORDER
)
VALUES
(
'ESI_KPI_DM',
'ESI KPI Dashboard DM',
'S',
'SELECT DESCR,
SH_DESCR,
FLD_VALUE,
ACTUAL_VALUE,
(
CASE
WHEN FLD_VALUE LIKE ''%\%'' ESCAPE ''\''
THEN ACTUAL_VALUE
WHEN FLD_VALUE > 0
THEN ROUND( ( ACTUAL_VALUE/ FLD_VALUE ) * 100 )
ELSE 0
END
) AS PERC
FROM TABLE( ESIKPIBM.GETESIKPIDATA(?, ?, ?, ''ESI'') )',
':FromDate,:ToDate,:empCode',
'json',
to_date('16-01-20','DD-MM-RR'),
'ADMIN ',
'SYSTEM',
NULL,
' ',
NULL,
NULL
);
------------------------------------------ DATA_MODEL_INPUT = ESI_KPI_DM -------------------------------------------------------------------------
INSERT
INTO DATA_MODEL_INPUT
(
DATA_MODEL,
OBJ_NAME,
MODEL_ARGS_BL,
SCOPE_NAME,
LINE_NO
)
VALUES
(
'ESI_KPI_DM',
'kpi_esi_status',
NULL,
NULL,
'1 '
);
------------------------------------------ DATA_MODEL_USE = ESI_KPI_DM -------------------------------------------------------------------------
INSERT
INTO DATA_MODEL_USE
(
DATA_MODEL,
OBJ_NAME,
FORM_NAME,
FIELD_NAME,
IS_CRITICAL,
POPHELP
)
VALUES
(
'ESI_KPI_DM',
'kpi_esi_status',
NULL,
NULL,
'Y',
NULL
);
------------------------------------------ DATA_MODEL = ABM_KPI_DM -------------------------------------------------------------------------
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,
COLUMN_ORDER
)
VALUES
(
'ABM_KPI_DM',
'ABM KPI Dashboard DM',
'S',
'SELECT DESCR,
SH_DESCR,
FLD_VALUE,
ACTUAL_VALUE,
(
CASE
WHEN FLD_VALUE LIKE ''%\%'' ESCAPE ''\''
THEN ACTUAL_VALUE
WHEN FLD_VALUE > 0
THEN ROUND( ( ACTUAL_VALUE/ FLD_VALUE ) * 100 )
ELSE 0
END
) AS PERC
FROM TABLE( ABMKPIBM.GETABMKPIDATA(?, ?, ?, ''ABM'') )',
':FromDate,:ToDate,:empCode',
'json',
to_date('16-01-20','DD-MM-RR'),
'ADMIN ',
'SYSTEM',
NULL,
' ',
NULL,
NULL
);
------------------------------------------ DATA_MODEL_INPUT = ESI_KPI_DM -------------------------------------------------------------------------
INSERT
INTO DATA_MODEL_INPUT
(
DATA_MODEL,
OBJ_NAME,
MODEL_ARGS_BL,
SCOPE_NAME,
LINE_NO
)
VALUES
(
'ABM_KPI_DM',
'kpi_abm_status',
NULL,
NULL,
'1 '
);
------------------------------------------ DATA_MODEL_USE = ESI_KPI_DM -------------------------------------------------------------------------
INSERT
INTO DATA_MODEL_USE
(
DATA_MODEL,
OBJ_NAME,
FORM_NAME,
FIELD_NAME,
IS_CRITICAL,
POPHELP
)
VALUES
(
'ABM_KPI_DM',
'kpi_abm_status',
NULL,
NULL,
'Y',
NULL
);
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GENCODES
-------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------ Mod_Name = 'W_ESI_KPI_BM' ----------------------------------------------------
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_POB','W_ESI_KPI_BM','100','PERSONAL ORDER BOOKING (POB)','POB',to_date('01-01-17','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAH','W_ESI_KPI_BM','130','HCP CALL Average','HCP CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAP','W_ESI_KPI_BM','110','PHARMACY CALL AVERAGE','PHARMACY CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCH','W_ESI_KPI_BM','%','UNIQUE COVERAGE HCP','UC HCP',to_date('01-01-17','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCP','W_ESI_KPI_BM','%','UNIQUE COVERAGE PHARMACY','UC PHARMACY',to_date('01-01-17','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NMM','W_ESI_KPI_BM','100','No. of Mini Mithas Meet (NMM)','NMM',to_date('22-01-20','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_PC','W_ESI_KPI_BM','110','PC Productive CALLS','PC',to_date('01-01-17','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NKA','W_ESI_KPI_BM','100','No. of Kiosk Activity (NKA)','NKA',to_date('22-01-20','DD-MM-RR'),'SYSADM ','SYSADM','Y',' ',' ',' ');
------------------------------------------ Mod_Name = 'W_FR_KPI_BM' -------------------------------------------------------------------------
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NMM','W_FR_KPI_BM','4','No. of Mini Mithas Meet (NMM)','NMM',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_M','W_FR_KPI_BM','73','ECO(EFFECTIVE COVERAGE)','ECO - SPS Meters',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_POB','W_FR_KPI_BM','132','PERSONAL ORDER BOOKING (POB)','POB',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAH','W_FR_KPI_BM','2','HCP CALL Average','HCP CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCH','W_FR_KPI_BM','95%','UNIQUE COVERAGE HCP','UC HCP',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_PC','W_FR_KPI_BM','3','PC Productive CALLS','PC',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCP','W_FR_KPI_BM','95%','Unique Retail coverage','UC PHARMACY',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAP','W_FR_KPI_BM','13','Retail Call Average','PHARMACY CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NKA','W_FR_KPI_BM','5','No. of Kiosk Activity (NKA)','NKA',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_S','W_FR_KPI_BM','92','ECO(EFFECTIVE COVERAGE)','ECO - SPS Strips',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
------------------------------------------ Mod_Name = 'W_ESL_KPI_BM' -------------------------------------------------------------------------
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NMM','W_ESL_KPI_BM','4','No. of Mini Mithas Meet (NMM)','NMM',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_M','W_ESL_KPI_BM','125','ECO(EFFECTIVE COVERAGE)','ECO - SPS Meters',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_POB','W_ESL_KPI_BM','66','PERSONAL ORDER BOOKING (POB)','POB',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAH','W_ESL_KPI_BM','2','HCP CALL Average','HCP CALL AVG',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCH','W_ESL_KPI_BM','95%','UNIQUE COVERAGE HCP','UC HCP',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_PC','W_ESL_KPI_BM','3','PC Productive CALLS','PC',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCP','W_ESL_KPI_BM','95%','Unique Retail coverage','UC PHARMACY',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAP','W_ESL_KPI_BM','13','Retail Call Average','PHARMACY CALL AVG',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NKA','W_ESL_KPI_BM','5','No. of Kiosk Activity (NKA)','NKA',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_S','W_ESL_KPI_BM','100','ECO(EFFECTIVE COVERAGE)','ECO - SPS Strips',to_date('23-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
------------------------------------------ Mod_Name = 'W_ERE_KPI_BM' -------------------------------------------------------------------------
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NMM','W_ERE_KPI_BM','0','No. of Mini Mithas Meet (NMM)','NMM',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_M','W_ERE_KPI_BM','30','ECO(EFFECTIVE COVERAGE)','ECO - SPS Meters',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_POB','W_ERE_KPI_BM','60','PERSONAL ORDER BOOKING (POB)','POB',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_PC','W_ERE_KPI_BM','2','PC Productive CALLS','PC',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAP','W_ERE_KPI_BM','8','Retail Call Average','PHARMACY CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NKA','W_ERE_KPI_BM','15','No. of Kiosk Activity (NKA)','NKA',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_S','W_ERE_KPI_BM','30','ECO(EFFECTIVE COVERAGE)','ECO - SPS Strips',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
------------------------------------------ Mod_Name = 'W_KW_KPI_BM' --------------------------------------------------------------
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NMM','W_KW_KPI_BM','4','No. of Mini Mithas Meet (NMM)','NMM',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_M','W_KW_KPI_BM','42','ECO(EFFECTIVE COVERAGE)','ECO - SPS Meters',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_POB','W_KW_KPI_BM','144','PERSONAL ORDER BOOKING (POB)','POB',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAH','W_KW_KPI_BM','10','HCP CALL Average','HCP CALL AVG',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCH','W_KW_KPI_BM','95%','UNIQUE COVERAGE HCP','UC HCP',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_PC','W_KW_KPI_BM','3','PC Productive CALLS','PC',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_UCP','W_KW_KPI_BM','95%','Unique Retail coverage','UC PHARMACY',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_CAP','W_KW_KPI_BM','10','Retail Call Average','PHARMACY CALL AVG',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_NKA','W_KW_KPI_BM','5','No. of Kiosk Activity (NKA)','NKA',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ESI_BM_ECO_S','W_KW_KPI_BM','34','ECO(EFFECTIVE COVERAGE)','ECO - SPS Strips',to_date('22-01-20','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
------------------------------------------ Mod_Name = 'W_ABM_KPI_BM' -------------------------------------------------------------------------
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ABM_BM_JFW','W_ABM_KPI_BM','18','Number of joint field working days','JOINTFIELD WORKING',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ABM_BM_CAH','W_ABM_KPI_BM','2','HCP call average','HCP CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ABM_BM_CAP','W_ABM_KPI_BM','13','Pharmacy call average','PHARMACY CALL AVG',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ABM_BM_UCH','W_ABM_KPI_BM','36','Unique Coverage HCP','UC HCP',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ABM_BM_UCP','W_ABM_KPI_BM','234','Unique Coverage pharmacy','UC PHARMACY',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
Insert into GENCODES (FLD_NAME,MOD_NAME,FLD_VALUE,DESCR,SH_DESCR,CHG_DATE,CHG_USER,CHG_TERM,ACTIVE,UDF_STR1,UDF_STR2,UDF_STR3)
values ('ABM_BM_CR','W_ABM_KPI_BM','18','Number of coaching reports submitted','COACHING REPORTS',to_date('01-01-17','DD-MM-RR'),'SYSADM','SYSADM','Y',' ',' ',' ');
------------------------------------------------------------------------------------------------------------------------------------------------------------
Packages
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------ESI : PACKAGE = EsiKpiBm -------------------------------------------------------------------------
create or replace PACKAGE EsiKpiBm
AS FUNCTION getEsiKpiData (fromDate in date,toDate in date,empCode in char,optType in char) RETURN EsiKpiTABLE PIPELINED;
END EsiKpiBm;
------------------------------------------ ESI : PACKAGE BODY= EsiKpiBm -------------------------------------------------------------------------
create or replace PACKAGE BODY EsiKpiBm
AS
FUNCTION getEsiKpiData (fromDate in date,toDate in date,empCode in char,optType in char)
RETURN EsiKpiTABLE PIPELINED IS
as_design_code VARCHAR2(10);
as_pob_item_code VARCHAR2(100);
as_eco_meter_item_code VARCHAR2(100);
as_eco_strips_item_code VARCHAR2(100);
BEGIN
as_design_code:= 'ESI';
SELECT DESIGN_CODE INTO as_design_code FROM EMPLOYEE WHERE EMP_CODE = empCode;
SELECT PARM_VALUE INTO as_pob_item_code FROM SFAPARM WHERE PARM_NAME = 'POB_ITEM';
SELECT PARM_VALUE INTO as_eco_strips_item_code FROM SFAPARM WHERE PARM_NAME = 'ECO_STRIPS_ITEM';
SELECT PARM_VALUE INTO as_eco_meter_item_code FROM SFAPARM WHERE PARM_NAME = 'ECO_METER_ITEM';
for x in(
SELECT FLD_NAME, FLD_VALUE, DESCR, SH_DESCR, ACTIVE,
CASE WHEN FLD_NAME = 'ESI_BM_POB' THEN FN_GET_KPI_POB(fromDate,toDate,empCode,optType,as_pob_item_code) || ''
WHEN FLD_NAME = 'ESI_BM_CAH' THEN FN_GET_KPI_CAH(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ESI_BM_CAP' THEN FN_GET_KPI_CAP(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ESI_BM_UCH' THEN FN_GET_KPI_UCH(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ESI_BM_UCP' THEN FN_GET_KPI_UCP(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ESI_BM_ECO_M' THEN FN_GET_KPI_ECO(fromDate,toDate,empCode,optType,as_eco_meter_item_code) || ''
WHEN FLD_NAME = 'ESI_BM_ECO_S' THEN FN_GET_KPI_ECO(fromDate,toDate,empCode,optType,as_eco_strips_item_code) || ''
WHEN FLD_NAME = 'ESI_BM_PC' THEN FN_GET_KPI_PC(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ESI_BM_NMM' THEN '0'
WHEN FLD_NAME = 'ESI_BM_NKA' THEN '0'
WHEN FLD_NAME = 'ESI_BM_SPS' THEN '0'
ELSE ''
END as ACTUAL_VALUE FROM GENCODES WHERE MOD_NAME = 'W_' || trim(as_design_code) || '_KPI_BM'
)
LOOP
PIPE ROW (EsiKpiBmMaster( x.FLD_NAME, x.FLD_VALUE, x.DESCR, x.SH_DESCR, x.ACTIVE, x.ACTUAL_VALUE ));
END LOOP;
RETURN;
END;
END EsiKpiBm;
------------------------------------------ ABM : PACKAGE = AbmKpiBm -------------------------------------------------------------------------
create or replace PACKAGE AbmKpiBm
AS
FUNCTION getAbmKpiData(
fromDate IN DATE,
toDate IN DATE,
empCode IN CHAR,
optType IN CHAR)
RETURN AbmKpiTABLE PIPELINED;
END AbmKpiBm;
------------------------------------------ ABM : PACKAGE BODY= AbmKpiBm -------------------------------------------------------------------------
create or replace PACKAGE BODY AbmKpiBm
AS
FUNCTION getAbmKpiData (fromDate in date,toDate in date,empCode in char,optType in char)
RETURN AbmKpiTABLE PIPELINED IS
as_design_code VARCHAR2(10);
BEGIN
as_design_code:= 'ABM';
for x in(
SELECT FLD_NAME, FLD_VALUE, DESCR, SH_DESCR, ACTIVE,
CASE
WHEN FLD_NAME = 'ABM_BM_CAH' THEN FN_GET_KPI_CAH(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ABM_BM_CAP' THEN FN_GET_KPI_CAP(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ABM_BM_UCH' THEN FN_GET_KPI_UCH(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ABM_BM_UCP' THEN FN_GET_KPI_UCP(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ABM_BM_JFW' THEN FN_GET_KPI_JFW(fromDate,toDate,empCode,optType)
WHEN FLD_NAME = 'ABM_BM_CR' THEN FN_GET_KPI_CR(fromDate,toDate,empCode,optType)
ELSE ''
END as ACTUAL_VALUE FROM GENCODES WHERE MOD_NAME = 'W_' || trim(as_design_code) || '_KPI_BM'
)
LOOP
PIPE ROW (AbmKpiBmMaster( x.FLD_NAME, x.FLD_VALUE, x.DESCR, x.SH_DESCR, x.ACTIVE, x.ACTUAL_VALUE ));
END LOOP;
RETURN;
END;
END AbmKpiBm;
------------------------------------------------------------------------------------------------------------------------------------------------------------
TYPES
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------ ESI : TYPE = EsiKpiBmMaster -------------------------------------------------------------------------
create or replace TYPE EsiKpiBmMaster
AS
OBJECT
(
FLD_NAME CHAR(20),
FLD_VALUE VARCHAR2(20) ,
DESCR VARCHAR2(120),
SH_DESCR VARCHAR2(20),
ACTIVE CHAR(1),
ACTUAL_VALUE NUMBER
);
------------------------------------------ ESI : TYPE = EsiKpiTABLE -------------------------------------------------------------------------
create or replace TYPE EsiKpiTABLE
AS TABLE OF EsiKpiBmMaster;
------------------------------------------ ABM :TYPE = AbmKpiBmMaster -------------------------------------------------------------------------
create or replace TYPE AbmKpiBmMaster
AS
OBJECT
(
FLD_NAME CHAR(20),
FLD_VALUE VARCHAR2(20) ,
DESCR VARCHAR2(120),
SH_DESCR VARCHAR2(20),
ACTIVE CHAR(1),
ACTUAL_VALUE NUMBER
);
------------------------------------------ ABM : TYPE = AbmKpiTABLE -------------------------------------------------------------------------
create or replace TYPE AbmKpiTABLE
AS TABLE OF AbmKpiBmMaster;
------------------------------------------------------------------------------------------------------------------------------------------------------------
FUNCTIONS
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------ ESI : FN_GET_KPI_POB ------------------------------------------------------------------------
create or replace FUNCTION FN_GET_KPI_POB(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR,
AS_ITEM_CODE CHAR)
RETURN NUMBER
IS
POB_VAL VARCHAR2(32767);
BEGIN
IF(AS_OPT_TYPE = 'ESI') THEN
SELECT SUM(SMO.QUANTITY)
INTO POB_VAL
FROM STRG_MEET_ORDER SMO,
STRG_MEET SM
WHERE SMO.DCR_ID =SM.DCR_ID
AND SMO.TRAN_ID =SM.TRAN_ID
AND SM.SALES_PERS=AS_SALES_PERS
AND SM.EVENT_DATE BETWEEN AS_FR_DATE AND AS_TO_DATE
AND SMO.ITEM_CODE IN (select rpad(column_value , 10, ' ' ) from TABLE(csv_to_row(AS_ITEM_CODE)));
-- ( AS_ITEM_CODE );
END IF;
IF (POB_VAL IS NULL OR LENGTH(trim(POB_VAL))=0) THEN
POB_VAL := 0;
ELSE
POB_VAL := ROUND(POB_VAL);
END IF;
RETURN POB_VAL;
END;
------------------------------------------------ ESI : FN_GET_KPI_PC ---------------------------------------
create or replace FUNCTION FN_GET_KPI_PC(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
HCP_CHEM_PER VARCHAR2(32767);
CHEM_FW_CNT NUMBER;
FW_CNT NUMBER;
ORDER_CNT NUMBER;
PROODUCT_CALL VARCHAR2(32767);
BEGIN
SELECT COUNT(*)
INTO CHEM_FW_CNT
FROM strg_meet sm ,
fieldactivity f
WHERE sales_pers=AS_SALES_PERS
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type =f.activity_code
AND f.activity_type='FW'
AND SM.STRG_TYPE ='C';
SELECT COUNT(*)
INTO FW_CNT
FROM SPRS_ACT_TRAN SAT ,
fieldactivity FW
WHERE sat.activity_code=fw.activity_code
AND SAT.SALES_PERS =AS_SALES_PERS
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND fw.activity_type='FW';
IF CHEM_FW_CNT = 0 THEN
HCP_CHEM_PER :=0;
ELSE
HCP_CHEM_PER := ROUND(CHEM_FW_CNT/FW_CNT);
SELECT COUNT(*)
INTO ORDER_CNT
FROM strg_meet sm ,STRG_MEET_ORDER SMO,
fieldactivity f
WHERE sales_pers= AS_SALES_PERS AND SM.DCR_ID=SMO.DCR_ID AND SM.TRAN_ID=SMO.TRAN_ID
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type =f.activity_code
AND f.activity_type='FW'
AND SM.STRG_TYPE ='C';
IF ORDER_CNT =0 THEN
PROODUCT_CALL := 0;
ELSE
PROODUCT_CALL := ROUND(ORDER_CNT/FW_CNT);
END IF;
END IF;
RETURN PROODUCT_CALL;
END;
------------------------------------------------ ESI : FN_GET_KPI_ECO ---------------------------------------
create or replace FUNCTION FN_GET_KPI_ECO(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR,
AS_ITEM_CODE CHAR)
RETURN NUMBER
IS
ECO_PER VARCHAR2(100);
CHEM_CNT NUMBER;
SERIES_CNT NUMBER;
BEGIN
IF(AS_OPT_TYPE = 'ESI') THEN
SELECT COUNT(*)
INTO SERIES_CNT
FROM STRG_SERIES SS
INNER JOIN STRG_STATUS_HIST SSH
ON SS.SALES_PERS =SSH.SALES_PERS
AND SS.SC_CODE =SSH.SC_CODE
WHERE SS.SALES_PERS=AS_SALES_PERS
AND SSH.STATUS ='Y'
AND SS.CUST_TYPE ='C'
AND (AS_FR_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO
OR AS_TO_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO) ;
SELECT COUNT(*) INTO CHEM_CNT
FROM
(SELECT SM.STRG_CODE,
SMO.ITEM_CODE,
COUNT(*)
FROM STRG_MEET SM,
STRG_MEET_ORDER SMO ,
STRG_CUSTOMER SC,
FIELDACTIVITY F
WHERE SM.DCR_ID=SMO.DCR_ID
AND SM.EVENT_DATE BETWEEN AS_FR_DATE AND AS_TO_DATE
AND SM.STRG_TYPE ='C'
AND SM.STRG_CODE =SC.SC_CODE
AND F.ACTIVITY_CODE=SM.EVENT_TYPE
AND F.ACTIVITY_TYPE='FW'
AND SM.SALES_PERS =AS_SALES_PERS
AND SMO.ITEM_CODE IN (select rpad(column_value , 10, ' ' ) from TABLE(csv_to_row(AS_ITEM_CODE)))
GROUP BY SM.STRG_CODE,
SMO.ITEM_CODE
);
END IF;
IF CHEM_CNT=0 THEN
ECO_PER := 0;
ELSE
ECO_PER := ROUND((CHEM_CNT/SERIES_CNT)*100);
END IF;
RETURN ECO_PER;
END;
------------------------------------------------ ESI : FN_GET_KPI_NMM ---------------------------------------
create or replace FUNCTION FN_GET_KPI_NMM(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR,
AS_ITEM_CODE CHAR)
RETURN NUMBER
IS
NMM_VAL NUMBER;
BEGIN
IF(AS_OPT_TYPE = 'ESI') THEN NMM_VAL := 0;
END IF;
RETURN NMM_VAL;
END;
------------------------------------------------ ESI & ABM : FN_GET_KPI_CAH ---------------------------------------
create or replace FUNCTION FN_GET_KPI_CAH(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
HCP_DOC_PER VARCHAR2(32767);
DOC_FW_CNT NUMBER;
FW_CNT NUMBER;
BEGIN
IF AS_OPT_TYPE ='ESI' THEN
SELECT COUNT(*)
INTO DOC_FW_CNT
FROM strg_meet sm ,
fieldactivity f
WHERE sales_pers=AS_SALES_PERS
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type =f.activity_code
AND f.activity_type='FW'
AND SM.STRG_TYPE ='D';
SELECT COUNT(*)
INTO FW_CNT
FROM SPRS_ACT_TRAN SAT ,
fieldactivity FW
WHERE sat.activity_code=fw.activity_code
AND SAT.SALES_PERS =AS_SALES_PERS
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND fw.activity_type='FW';
END IF;
IF AS_OPT_TYPE ='ABM' THEN
SELECT COUNT(*)
INTO DOC_FW_CNT
FROM strg_meet sm ,
fieldactivity f
WHERE sales_pers IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type =f.activity_code
AND f.activity_type='FW'
AND SM.STRG_TYPE ='D';
SELECT COUNT(*)
INTO FW_CNT
FROM SPRS_ACT_TRAN SAT ,
fieldactivity FW
WHERE sat.activity_code=fw.activity_code
AND SAT.SALES_PERS IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND fw.activity_type='FW';
END IF;
IF DOC_FW_CNT = 0 THEN
HCP_DOC_PER :=0;
ELSE
HCP_DOC_PER := ROUND(DOC_FW_CNT/FW_CNT);
END IF;
RETURN HCP_DOC_PER;
END;
------------------------------------------------ ESI & ABM : FN_GET_KPI_CAP ---------------------------------------
create or replace FUNCTION FN_GET_KPI_CAP(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
HCP_CHEM_PER VARCHAR2(32767);
CHEM_FW_CNT NUMBER;
FW_CNT NUMBER;
BEGIN
IF AS_OPT_TYPE ='ESI' THEN
SELECT COUNT(*)
INTO CHEM_FW_CNT
FROM strg_meet sm ,
fieldactivity f
WHERE sales_pers=AS_SALES_PERS
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type =f.activity_code
AND f.activity_type='FW'
AND SM.STRG_TYPE ='C';
SELECT COUNT(*)
INTO FW_CNT
FROM SPRS_ACT_TRAN SAT ,
fieldactivity FW
WHERE sat.activity_code=fw.activity_code
AND SAT.SALES_PERS =AS_SALES_PERS
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND fw.activity_type='FW';
END IF;
IF AS_OPT_TYPE ='ABM' THEN
SELECT COUNT(*)
INTO CHEM_FW_CNT
FROM strg_meet sm ,
fieldactivity f
WHERE sales_pers IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type =f.activity_code
AND f.activity_type='FW'
AND SM.STRG_TYPE ='C';
SELECT COUNT(*)
INTO FW_CNT
FROM SPRS_ACT_TRAN SAT ,
fieldactivity FW
WHERE sat.activity_code=fw.activity_code
AND SAT.SALES_PERS IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND fw.activity_type='FW';
END IF;
IF CHEM_FW_CNT = 0 THEN
HCP_CHEM_PER :=0;
ELSE
HCP_CHEM_PER := ROUND(CHEM_FW_CNT/FW_CNT);
END IF;
RETURN HCP_CHEM_PER;
END;
------------------------------------------------ ESI & ABM : FN_GET_KPI_UCH ---------------------------------------
create or replace FUNCTION FN_GET_KPI_UCH(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
DOC_PER VARCHAR2(100);
MEET_CNT NUMBER;
SERIES_CNT NUMBER;
BEGIN
IF AS_OPT_TYPE ='ESI' THEN
SELECT COUNT(*)
INTO SERIES_CNT
FROM STRG_SERIES SS
INNER JOIN STRG_STATUS_HIST SSH
ON SS.SALES_PERS =SSH.SALES_PERS
AND SS.SC_CODE =SSH.SC_CODE
WHERE SS.SALES_PERS=AS_SALES_PERS
AND SSH.STATUS ='Y'
AND SS.CUST_TYPE ='D'
AND (AS_FR_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO
OR AS_TO_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO) ;
SELECT COUNT(DISTINCT(SM.STRG_CODE))
INTO MEET_CNT
FROM STRG_MEET SM,
FIELDACTIVITY F,
STRG_CUSTOMER SC
WHERE SM.STRG_CODE =SC.SC_CODE
AND SM.SALES_PERS =AS_SALES_PERS
AND SM.STRG_TYPE ='D'
AND EVENT_TYPE =F.ACTIVITY_CODE
AND SM.EVENT_DATE >=AS_FR_DATE
AND SM.EVENT_DATE <=AS_TO_DATE
AND F.ACTIVITY_TYPE='FW';
END IF;
IF AS_OPT_TYPE ='ABM' THEN
SELECT COUNT(*)
INTO SERIES_CNT
FROM STRG_SERIES SS
INNER JOIN STRG_STATUS_HIST SSH
ON SS.SALES_PERS =SSH.SALES_PERS
AND SS.SC_CODE =SSH.SC_CODE
WHERE SS.SALES_PERS IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND SSH.STATUS ='Y'
AND SS.CUST_TYPE ='D'
AND (AS_FR_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO
OR AS_TO_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO) ;
SELECT COUNT(DISTINCT(SM.STRG_CODE))
INTO MEET_CNT
FROM STRG_MEET SM,
FIELDACTIVITY F,
STRG_CUSTOMER SC
WHERE SM.STRG_CODE =SC.SC_CODE
AND SM.SALES_PERS IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND SM.STRG_TYPE ='D'
AND EVENT_TYPE =F.ACTIVITY_CODE
AND SM.EVENT_DATE >=AS_FR_DATE
AND SM.EVENT_DATE <=AS_TO_DATE
AND F.ACTIVITY_TYPE='FW';
END IF;
IF MEET_CNT = 0 THEN
DOC_PER :=0;
ELSE
DOC_PER := ROUND((MEET_CNT/SERIES_CNT)*100);
END IF;
RETURN DOC_PER;
END;
------------------------------------------------ ESI & ABM : FN_GET_KPI_UCP ---------------------------------------
create or replace FUNCTION FN_GET_KPI_UCP(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
CHEM_PER VARCHAR2(100);
MEET_CNT NUMBER;
SERIES_CNT NUMBER;
BEGIN
IF AS_OPT_TYPE ='ESI' THEN
SELECT COUNT(*)
INTO SERIES_CNT
FROM STRG_SERIES SS
INNER JOIN STRG_STATUS_HIST SSH
ON SS.SALES_PERS =SSH.SALES_PERS
AND SS.SC_CODE =SSH.SC_CODE
WHERE SS.SALES_PERS=AS_SALES_PERS
AND SSH.STATUS ='Y'
AND SS.CUST_TYPE ='C'
AND (AS_FR_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO
OR AS_TO_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO) ;
SELECT COUNT(DISTINCT(SM.STRG_CODE))
INTO MEET_CNT
FROM STRG_MEET SM,
FIELDACTIVITY F,
STRG_CUSTOMER SC
WHERE SM.STRG_CODE =SC.SC_CODE
AND SM.SALES_PERS =AS_SALES_PERS
AND SM.STRG_TYPE ='C'
AND EVENT_TYPE =F.ACTIVITY_CODE
AND SM.EVENT_DATE >=AS_FR_DATE
AND SM.EVENT_DATE <=AS_TO_DATE
AND F.ACTIVITY_TYPE='FW';
END IF;
IF AS_OPT_TYPE ='ABM' THEN
SELECT COUNT(*)
INTO SERIES_CNT
FROM STRG_SERIES SS
INNER JOIN STRG_STATUS_HIST SSH
ON SS.SALES_PERS =SSH.SALES_PERS
AND SS.SC_CODE =SSH.SC_CODE
WHERE SS.SALES_PERS IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND SSH.STATUS ='Y'
AND SS.CUST_TYPE ='C'
AND (AS_FR_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO
OR AS_TO_DATE BETWEEN SSH.EFF_FROM AND SSH.VALID_UPTO) ;
SELECT COUNT(DISTINCT(SM.STRG_CODE))
INTO MEET_CNT
FROM STRG_MEET SM,
FIELDACTIVITY F,
STRG_CUSTOMER SC
WHERE SM.STRG_CODE =SC.SC_CODE
AND SM.SALES_PERS IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE =AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN EFF_DATE AND VALID_UPTO
)
)
AND SM.STRG_TYPE ='C'
AND EVENT_TYPE =F.ACTIVITY_CODE
AND SM.EVENT_DATE >=AS_FR_DATE
AND SM.EVENT_DATE <=AS_TO_DATE
AND F.ACTIVITY_TYPE='FW';
END IF;
IF MEET_CNT = 0 THEN
CHEM_PER :=0;
ELSE
CHEM_PER := ROUND((MEET_CNT/SERIES_CNT)*100);
END IF;
RETURN CHEM_PER;
END;
------------------------------------------------ ESI & ABM : FN_GET_KPI_JFW ---------------------------------------
create or replace FUNCTION FN_GET_KPI_JFW(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
JOINT_FW_DAYS NUMBER;
BEGIN
IF AS_OPT_TYPE ='ABM' THEN
SELECT COUNT(DISTINCT(sm.Dcr_Id))
INTO JOINT_FW_DAYS
FROM strg_meet sm
WHERE sales_pers IN(
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE = AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN AS_FR_DATE AND AS_TO_DATE
)
)
AND event_date BETWEEN AS_FR_DATE AND AS_TO_DATE
AND sm.event_type IN( select Distinct Event_Type from strg_meet );
END IF;
IF JOINT_FW_DAYS = 0 THEN
JOINT_FW_DAYS :=0;
ELSE
JOINT_FW_DAYS := JOINT_FW_DAYS;
END IF;
RETURN JOINT_FW_DAYS;
END;
------------------------------------------------ ESI & ABM : FN_GET_KPI_CR ---------------------------------------
create or replace FUNCTION FN_GET_KPI_CR(
AS_FR_DATE DATE,
AS_TO_DATE DATE,
AS_SALES_PERS CHAR,
AS_OPT_TYPE VARCHAR)
RETURN VARCHAR
IS
COCH_REP_SUB NUMBER;
BEGIN
IF AS_OPT_TYPE ='ABM' THEN
SELECT COUNT(distinct SM.TRAN_ID)
INTO COCH_REP_SUB
FROM STRG_MEET SM, SPRS_COACHING SCOCH
WHERE SM.DCR_ID = SCOCH.DCR_ID
AND SM.TRAN_ID = SCOCH.TRAN_ID
AND SM.STRG_CODE = SCOCH.STRG_CODE
AND SM.EVENT_DATE BETWEEN AS_FR_DATE AND AS_TO_DATE
AND SCOCH.SPRS_CODE__WW IN (
SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE IN (
SELECT EMP_CODE
FROM ORG_STRUCTURE START WITH EMP_CODE = AS_SALES_PERS CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO
AND POS_CODE__REPTO IS NOT NULL AND ACTIVE = 'Y' AND SYSDATE BETWEEN AS_FR_DATE AND AS_TO_DATE
)
);
END IF;
IF COCH_REP_SUB = 0 THEN
COCH_REP_SUB :=0;
ELSE
COCH_REP_SUB := COCH_REP_SUB;
END IF;
RETURN COCH_REP_SUB;
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