Files
2024-05-13 12:54:14 +02:00

415 lines
10 KiB
MySQL

CREATE OR REPLACE PACKAGE PKG_POPOLA_SLA_SE AS
/******************************************************************************
NAME: PACKAGE PKG_POPOLA_SLA_SE
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 02/11/2011 1. Created this package.
******************************************************************************/
PROCEDURE CARICAMENTO_SLA3GG_DONOR_VIRT (dataRif IN DATE,cod_errore OUT NUMBER);
PROCEDURE CARICAMENTO_SLA3GG_REC_VIRT (dataRif IN DATE,cod_errore OUT NUMBER);
PROCEDURE CARICAMENTO_SLATC_DONOR_VIRT (dataRif IN DATE,cod_errore OUT NUMBER);
PROCEDURE CARICAMENTO_SLATC_REC_VIRT (dataRif IN DATE,cod_errore OUT NUMBER);
PROCEDURE CARICAMENTO_SLA_SE(dataRif IN DATE);
END PKG_POPOLA_SLA_SE;
/
CREATE OR REPLACE package body PKG_POPOLA_SLA_SE as
procedure CARICAMENTO_SLA3GG_DONOR_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS
--procedura per il caricamento dello SLA1 del DONOR VIRTUALE MVNO
proc_name constant varchar2(30) := 'CARICAMENTO_SLA3GG_DONOR_VIRT';
D_ini DATE;
D_fine DATE;
BEGIN
cod_errore := 0;
D_ini:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO MNP_DW_SLA_SE_IN_OUT
(
UNIQUE_ID,
PROCESSO,
TIPO_SLA,
MESE,
REC_EFF,
DON_EFF,
ID_RICHIESTA,
MSISDN,
TIPO_CLIENTE,
NOME_OT,
DATA_VALIDAZIONE_MAX,
BUSINESS_ID_DONATING,
DATA_AGG
)
SELECT
SEQ_DW_SLA_SE_IN_OUT.NEXTVAL,
a.processo,
a.tipo_messaggio,
a.mese_comp_finale,
a.recipient_effettivo,
a.donor_effettivo,
a.id_richiesta,
b.Msisdn,
b.Tipo_cliente,
b.Nome_ot,
b.data_validazione_max,
b.business_id,
SYSDATE
FROM MNP_DW_SLA_3GG_OUT a, mnp.MNP_GEST_RICH_DONOR_VIRT b
WHERE
a.mese_comp_finale= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND
a.tipo_messaggio='SLA1' AND
a.recipient_effettivo IN ('TIMG') AND
a.donor_effettivo in ('NOVE', 'COOP', 'TISC') AND
a.processo = ('V') AND
a.id_richiesta = b.id_richiesta;
COMMIT;
D_finE:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440));
EXCEPTION
WHEN OTHERS
THEN
cod_errore := 1;
DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLA3GG_DONOR_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
RETURN;
END CARICAMENTO_SLA3GG_DONOR_VIRT;
procedure CARICAMENTO_SLA3GG_REC_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS
--procedura per il caricamento dello degli SLA di: RECIPIENT VIRTUALE MVNO, DONOR VIRTUALE M2M e RECIPIENT VIRTUALE M2M
proc_name constant varchar2(30) := 'CARICAMENTO_SLA3GG_REC_VIRT';
D_ini DATE;
D_fine DATE;
BEGIN
cod_errore := 0;
D_ini:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO MNP_DW_SLA_SE_IN_OUT
(
UNIQUE_ID,
PROCESSO,
TIPO_SLA,
MESE,
REC_EFF,
DON_EFF,
ID_RICHIESTA,
MSISDN,
DESCR_STATO,
TIPO_CLIENTE,
NOME_OT,
DATA_VALIDAZIONE_MAX,
BUSINESS_ID_DONATING,
BUSINESS_ID_RECIPIENT,
CAUSALE_RIF,
DATA_RICEZIONE_RICHIESTA,
DATA_CUT_OVER,
DATA_ESPL_DON,
DATA_ESPL_TP,
DATA_ESPL_GISP,
DATA_AGG
)
SELECT
SEQ_DW_SLA_SE_IN_OUT.NEXTVAL,
a.processo,
a.tipo_messaggio,
a.mese_comp_finale,
a.recipient_effettivo,
a.donor_effettivo,
a.id_richiesta,
b.Msisdn,
d.descr_stato,
b.Tipo_cliente,
b.Nome_ot,
b.data_validazione_max,
b.business_id_donating,
b.business_id_recipient,
b.Codice_rifiuto_validazione,
b.Dataricezionerichiesta,
b.Data_cut_over,
c.data_i_o,
c.data_i_o, -- tbv
c.data_i_o, -- tbv
SYSDATE
FROM MNP_DW_SLA_3GG_OUT a, mnp.MNP_GEST_RICH_REC_VIRT b, mnp.MNP_STORICO_RICH_REC_VIRT c, mnp.MNP_STATO_REC_VIRT d
WHERE
a.mese_comp_finale= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND
a.recipient_effettivo IN ('NOVE', 'COOP', 'TISC') AND
a.donor_effettivo in ('TIMG', 'NOVE', 'COOP', 'TISC') AND
a.processo = ('V') AND
d.id_stato = b.stato AND
a.id_richiesta = b.id_richiesta AND
a.id_richiesta = c.id_richiesta AND
c.stato_a = 12; -- EVASA
COMMIT;
D_finE:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440));
EXCEPTION
WHEN OTHERS
THEN
cod_errore := 1;
DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLA3GG_REC_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
RETURN;
END CARICAMENTO_SLA3GG_REC_VIRT;
procedure CARICAMENTO_SLATC_DONOR_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS
--procedura per il caricamento dello degli SLA di TC: DONOR VIRTUALE
proc_name constant varchar2(30) := 'CARICAMENTO_SLATC_DONOR_VIRT';
D_ini DATE;
D_fine DATE;
BEGIN
cod_errore := 0;
D_ini:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO MNP_DW_SLA_SE_IN_OUT
(
UNIQUE_ID,
PROCESSO,
TIPO_SLA,
MESE,
REC_EFF,
DON_EFF,
ID_RICHIESTA,
MSISDN,
TIPO_CLIENTE,
DON_RETE,
DATA_ESPL_DON,
BUSINESS_ID_DONATING,
DESCR_STATO,
CREDITO,
DATA_NOTIF_RECIPIENT,
DATA_AGG
)
SELECT
SEQ_DW_SLA_SE_IN_OUT.NEXTVAL,
a.processo,
a.tipo_messaggio,
a.mese_comp_finale,
a.recipient_effettivo,
a.donor_effettivo,
a.id_richiesta,
b.Msisdn,
b.Tipo_cliente,
'TIMG',
e.data_i_o,
b.business_id,
c.DESCR_STATO,
d.credito,
d.data_notifica_recipient,
SYSDATE
FROM MNP_DW_SLA_TC_OUT a, mnp.MNP_GEST_RICH_DONOR_VIRT b, mnp.MNP_STATO_DON_VIRT c, mnp.MNP_GEST_RICH_DON_VIRT_TC d, mnp.MNP_STORICO_RICH_DON_VIRT e
WHERE
a.mese_comp_finale = TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND
a.tipo_messaggio IN ('SLA X', 'SLA Y', 'SLA Z') AND
a.recipient_effettivo IN ('TIMG') AND
a.donor_effettivo in ('NOVE', 'COOP', 'TISC') AND
a.processo = ('V') AND
a.id_richiesta = b.id_richiesta AND
a.id_richiesta=d.id_richiesta AND
a.id_richiesta=e.id_richiesta AND
c.ID_STATO= b.STATO AND
e.stato_a = 11; -- EVASA;
COMMIT;
D_finE:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440));
EXCEPTION
WHEN OTHERS
THEN
cod_errore := 1;
DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLATC_DONOR_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
RETURN;
END CARICAMENTO_SLATC_DONOR_VIRT;
procedure CARICAMENTO_SLATC_REC_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS
--procedura per il caricamento dello degli SLA di TC: RECIPIENT VIRTUALE MVNO, DONOR VIRTUALE M2M e RECIPIENT VIRTUALE M2M
proc_name constant varchar2(30) := 'CARICAMENTO_SLATC_REC_VIRT';
D_ini DATE;
D_fine DATE;
BEGIN
cod_errore := 0;
D_ini:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO MNP_DW_SLA_SE_IN_OUT
(
UNIQUE_ID,
PROCESSO,
TIPO_SLA,
MESE,
REC_EFF,
DON_EFF,
ID_RICHIESTA,
MSISDN,
TIPO_CLIENTE,
DON_RETE,
DATA_ESPL_DON,
BUSINESS_ID_DONATING,
BUSINESS_ID_RECIPIENT,
DESCR_STATO,
CREDITO,
DATA_NOTIF_RECIPIENT,
DATA_CUT_OVER,
DATA_AGG
)
SELECT
SEQ_DW_SLA_SE_IN_OUT.NEXTVAL,
a.processo,
a.tipo_messaggio,
a.mese_comp_finale,
a.recipient_effettivo,
a.donor_effettivo,
a.id_richiesta,
b.Msisdn,
b.Tipo_cliente,
'TIMG',
e.data_i_o,
b.business_id_donating,
b.business_id_recipient,
c.DESCR_STATO,
d.credito,
d.data_notifica_recipient,
b.data_cut_over,
SYSDATE
FROM MNP_DW_SLA_TC_OUT a, mnp.MNP_GEST_RICH_REC_VIRT b, mnp.MNP_STATO_REC_VIRT c, mnp.MNP_GEST_RICH_REC_VIRT_TC d, mnp.MNP_STORICO_RICH_REC_VIRT e
WHERE
a.mese_comp_finale = TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND
a.tipo_messaggio IN ('SLA X', 'SLA Y', 'SLA Z') AND
a.recipient_effettivo in ('NOVE', 'COOP', 'TISC') AND
a.donor_effettivo in ('TIMG','NOVE', 'COOP', 'TISC') AND
a.processo = ('V') AND
a.id_richiesta = b.id_richiesta AND
a.id_richiesta=d.id_richiesta AND
a.id_richiesta=e.id_richiesta AND
c.ID_STATO= b.STATO AND
e.stato_a = 12; -- EVASA;;
COMMIT;
D_finE:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440));
EXCEPTION
WHEN OTHERS
THEN
cod_errore := 1;
DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLATC_REC_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
RETURN;
END CARICAMENTO_SLATC_REC_VIRT;
procedure CARICAMENTO_SLA_SE(dataRif IN Date) IS
cod_errore NUMBER (1);
cod_errore_sla3GG_don_virt NUMBER (1):=0;
cod_errore_sla3GG_rec_virt NUMBER (1):=0;
cod_errore_slaTC_don_virt NUMBER (1):=0;
cod_errore_slaTC_rec_virt NUMBER (1):=0;
proc_name constant varchar2(30) := 'CARICAMENTO_SLA_SE';
D_ini DATE;
D_fine DATE;
BEGIN
dbms_output.enable(9999999);
D_ini:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCESSO '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS'));
-----------------------------------------------------
-- DELETE PREVENTIVA DELLA TABELLA
-----------------------------------------------------
DELETE MNP_DW_SLA_SE_IN_OUT WHERE TO_CHAR(MESE,'mm/yyyy')=TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy');
cod_errore := 0;
-- caricamento dati:
CARICAMENTO_SLA3GG_DONOR_VIRT (dataRif,cod_errore_sla3GG_don_virt);
CARICAMENTO_SLA3GG_REC_VIRT (dataRif,cod_errore_sla3GG_rec_virt);
CARICAMENTO_SLATC_DONOR_VIRT (dataRif,cod_errore_slaTC_don_virt);
CARICAMENTO_SLATC_REC_VIRT (dataRif,cod_errore_slaTC_rec_virt);
cod_errore := cod_errore_sla3GG_don_virt + cod_errore_sla3GG_rec_virt+cod_errore_slaTC_don_virt +cod_errore_slaTC_rec_virt;
IF cod_errore = 0
THEN
-- tutto a posto
DBMS_OUTPUT.put_line ('Caricamento dati SLA avvenuto.');
ELSE
-- tutto na sola
DBMS_OUTPUT.put_line ('CARICAMENTO DATI SLA PARZIALE: PROCESSO TERMINATO CON ERRORI VERIFICARE LOG!');
END IF;
COMMIT;
D_fine:=sysdate;
DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCESSO '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440));
EXCEPTION
WHEN OTHERS THEN
cod_errore := 1;
DBMS_OUTPUT.put_line ('Errore nel caricamento dati Sla ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
RETURN;
END CARICAMENTO_SLA_SE;
END PKG_POPOLA_SLA_SE;
/