88 lines
3.7 KiB
SQL
88 lines
3.7 KiB
SQL
CREATE OR REPLACE PROCEDURE P_REPORT_KPI(P_DATA_DA DATE, P_DATA_A DATE) IS
|
|
|
|
v_mese_comp varchar2(10);
|
|
v_rich_attese_controllo number;
|
|
v_rich_attese_contrattuali number;
|
|
v_rich_inviate_controllo number;
|
|
v_perc_controllo number;
|
|
v_rich_ricevute_contrattuali number;
|
|
v_perc_contrattuali number;
|
|
|
|
BEGIN
|
|
|
|
BEGIN
|
|
-- ESTRAZIONE DELLE INFORMAZIONI PER I KPI DI CONTROLLO
|
|
SELECT A.MESE_COMP,ATTESE,OK_ALLE_12, ROUND((OK_ALLE_12/ATTESE)*100,2) AS PERC
|
|
INTO v_mese_comp, v_rich_attese_controllo, v_rich_inviate_controllo, v_perc_controllo
|
|
FROM
|
|
( SELECT TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY') AS MESE_COMP,COUNT(*) AS OK_ALLE_12
|
|
FROM MNP.MNP_GESTIONE_RICHIESTA GR, MNP.MNP_XML_RICHIESTA_OUT MTI, MNP.MNP_XML_OUT XO
|
|
WHERE GR.DATA_CUT_OVER_CALC BETWEEN P_DATA_DA AND P_DATA_A
|
|
AND GR.ID_RICHIESTA =MTI.ID_RICHIESTA
|
|
AND MTI.NOME_FILE= XO.NOME_FILE
|
|
AND XO.TIPO_FILE =6
|
|
AND XO.DESTINATARIO <> 'NPTS'
|
|
AND XO.DATA_INVIO <= TO_DATE(TO_CHAR(DATA_CUT_OVER_CALC,'DD_MM_YYYY')||' 12:00','DD_MM_YYYY HH24:MI')
|
|
AND GR.ABBONATO_PREPAGATO = 'PREPAGATO'
|
|
AND GR.CODICE_CONTROLLO_VALIDAZIONE= 0
|
|
GROUP BY TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY')
|
|
) A,
|
|
( SELECT TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY') AS MESE_COMP,COUNT(*) AS ATTESE
|
|
FROM MNP_GESTIONE_RICHIESTA GR
|
|
WHERE GR.DATA_CUT_OVER_CALC BETWEEN P_DATA_DA AND P_DATA_A
|
|
AND GR.ABBONATO_PREPAGATO = 'PREPAGATO'
|
|
AND GR.CODICE_CONTROLLO_VALIDAZIONE= 0
|
|
GROUP BY TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY')
|
|
)B
|
|
WHERE A.MESE_COMP = B.MESE_COMP;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_mese_comp := TO_CHAR(P_DATA_DA,'MM/YYYY');
|
|
v_rich_attese_controllo := 0;
|
|
v_rich_inviate_controllo := 0;
|
|
v_perc_controllo := 0;
|
|
END;
|
|
--
|
|
|
|
BEGIN
|
|
-- ESTRAZIONE DELLE INFORMAZIONI PER I KPI CONTRATTUALI
|
|
SELECT A.MESE_COMP,ATTESE,OK_ALLE_12, ROUND((OK_ALLE_12/ATTESE)*100,2) AS PERC
|
|
INTO v_mese_comp, v_rich_attese_contrattuali, v_rich_ricevute_contrattuali, v_perc_contrattuali
|
|
FROM
|
|
( SELECT TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY') AS MESE_COMP,COUNT(*) AS OK_ALLE_12
|
|
FROM MNP_GESTIONE_RICHIESTA GR,
|
|
( select t.id_richiesta, min(t.data_ricezione) data_ricezione
|
|
from mnp_mss_cessazione_in t
|
|
group by id_richiesta) MTI
|
|
WHERE GR.DATA_CUT_OVER_CALC BETWEEN P_DATA_DA AND P_DATA_A
|
|
AND GR.ID_RICHIESTA =MTI.ID_RICHIESTA(+)
|
|
AND GR.STATO IN (15, 16)
|
|
AND MTI.DATA_RICEZIONE <= TO_DATE(TO_CHAR(DATA_CUT_OVER_CALC,'DD_MM_YYYY')||' 12:00','DD_MM_YYYY HH24:MI')
|
|
AND GR.ABBONATO_PREPAGATO = 'PREPAGATO'
|
|
GROUP BY TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY')
|
|
) A,
|
|
( SELECT TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY') AS MESE_COMP,COUNT(*) AS ATTESE
|
|
FROM MNP_GESTIONE_RICHIESTA GR
|
|
WHERE GR.DATA_CUT_OVER_CALC BETWEEN P_DATA_DA AND P_DATA_A
|
|
AND GR.ABBONATO_PREPAGATO = 'PREPAGATO'
|
|
AND GR.CODICE_CONTROLLO_VALIDAZIONE= 0
|
|
GROUP BY TO_CHAR(DATA_CUT_OVER_CALC,'MM/YYYY')
|
|
)B
|
|
WHERE A.MESE_COMP = B.MESE_COMP;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_mese_comp := TO_CHAR(P_DATA_DA,'MM/YYYY');
|
|
v_rich_attese_contrattuali := 0;
|
|
v_rich_ricevute_contrattuali := 0;
|
|
v_perc_contrattuali := 0;
|
|
END;
|
|
|
|
|
|
-- INSERIMENTO DATI IN TABELLA
|
|
INSERT INTO MNP_DW_REPORT_KPI (MESE_COMP, NUM_RICH_ATTESE_CONTROLLO, NUM_RICH_ATTESE_CONTRATTUALI, NUM_RICH_OK12_CONTROLLO,
|
|
NUM_RICH_OK12_CONTRATTUALI, PERC_CONTROLLO, PERC_CONTRATTUALI, DATA_ESECUZIONE)
|
|
VALUES (v_mese_comp, v_rich_attese_controllo, v_rich_attese_contrattuali, v_rich_inviate_controllo, v_rich_ricevute_contrattuali,
|
|
v_perc_controllo, v_perc_contrattuali, SYSDATE);
|
|
|
|
COMMIT;
|
|
|
|
END P_REPORT_KPI;
|
|
/ |