First Commit - Source Code from Reply

This commit is contained in:
vincenzofariello
2024-05-13 12:54:14 +02:00
parent 73e32a5020
commit a15aee1f08
11184 changed files with 1065913 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
CREATE TABLE MNP_DBP2DBCFX
(
ID_RICHIESTA VARCHAR2(23 BYTE) NOT NULL,
MSISDN VARCHAR2(15 BYTE) NOT NULL,
CODICE_OPERATORE_RECIPIENT VARCHAR2(4 BYTE),
ROUTING_NUMBER VARCHAR2(3 BYTE) DEFAULT NULL,
DATA_CUT_OVER DATE,
DATA_ESTRAZIONE DATE NOT NULL,
FLAG_LAVORATO NUMBER(1) DEFAULT 0 NOT NULL
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
CREATE UNIQUE INDEX PK_MNP_DBP2DBCFX ON MNP_DBP2DBCFX
(MSISDN)
LOGGING
NOPARALLEL;

View File

@@ -0,0 +1,311 @@
CREATE OR REPLACE PACKAGE MNP.PKG_DBP AS
PROCEDURE estr_RICHIESTA (data_inizio IN DATE, data_fine IN DATE);
PROCEDURE estr_RICHIESTA_REC (data_inizio IN DATE, data_fine IN DATE);
PROCEDURE estr_RICHIESTA_PORTING (data_inizio IN DATE, data_fine IN DATE);
PROCEDURE estr_RICH_CESS_PORT (data_inizio IN DATE, data_fine IN DATE);
PROCEDURE estr_RICHIESTA_CESS (data_inizio IN DATE, data_fine IN DATE);
END PKG_DBP;
/
CREATE OR REPLACE package body MNP.PKG_DBP as
-- PROCESSO DONOR STANDARD/MVNO/PrjHoc
procedure estr_RICHIESTA(data_inizio IN DATE, data_fine IN DATE) IS
oldDataCutOver date ;
CURSOR SEL_RICHIESTA IS
SELECT /*+ full(mgr) parallel(5)*/ mgr.id_richiesta AS ID_RICHIESTA
, NVL (mgr.msisdn, '') AS MSISDN
, mgr.codice_operatore_recipient AS CODICE_OPERATORE_RECIPIENT
, (SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER
, mgr.data_cut_over AS DATA_CUT_OVER, SYSDATE AS DATA_ESTRAZIONE
, 0 AS FLAG_LAVORATO
FROM mnp_gestione_richiesta mgr
WHERE STATO IN(7 --VALIDATAOK
,9 --ACCETTATA
,14 --INCESSAZIONE
,15 --CESSATA
,16 --ESPLETATA
,99 --BLOCCATA
)
AND mgr.DATA_CUT_OVER BETWEEN data_inizio and data_fine;
BEGIN
FOR rigaLetta IN SEL_RICHIESTA LOOP
BEGIN
INSERT INTO MNP_DBP2DBCFX (
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
FLAG_LAVORATO)
VALUES ( rigaLetta.ID_RICHIESTA
,rigaLetta.MSISDN
,rigaLetta.CODICE_OPERATORE_RECIPIENT
,rigaLetta.ROUTING_NUMBER
,rigaLetta.DATA_CUT_OVER
,rigaLetta.DATA_ESTRAZIONE
,rigaLetta.FLAG_LAVORATO
);
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
BEGIN
SELECT DATA_CUT_OVER
INTO oldDataCutOver
FROM MNP_DBP2DBCFX
WHERE MSISDN = rigaLetta.MSISDN;
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
UPDATE MNP_DBP2DBCFX
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
WHERE MSISDN = rigaLetta.MSISDN;
END IF;
END;
END;
END LOOP;
COMMIT;
return;
END estr_RICHIESTA;
-- PROCESSO RECIPIENT STANDARD/MVNO/PrjHoc
procedure estr_RICHIESTA_REC(data_inizio IN DATE, data_fine IN DATE) IS
oldDataCutOver date ;
CURSOR SEL_RICHIESTA IS
SELECT /*+ full(mgr) parallel(5)*/ mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
mgr.codice_operatore_recipient AS codice_operatore_recipient,
(SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER,
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
0 AS flag_lavorato
FROM mnp_gestione_richiesta_rec mgr
WHERE STATO IN(8 --VALIDATA
,10 --ACCETTATA
,11 --ATTESAEVASIONE
,12 --EVASA
)
AND mgr.data_cut_over BETWEEN data_inizio AND data_fine;
BEGIN
FOR rigaLetta IN SEL_RICHIESTA LOOP
BEGIN
INSERT INTO MNP_DBP2DBCFX (
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
FLAG_LAVORATO)
VALUES ( rigaLetta.ID_RICHIESTA
,rigaLetta.MSISDN
,rigaLetta.CODICE_OPERATORE_RECIPIENT
,rigaLetta.ROUTING_NUMBER
,rigaLetta.DATA_CUT_OVER
,rigaLetta.DATA_ESTRAZIONE
,rigaLetta.FLAG_LAVORATO
);
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
BEGIN
SELECT DATA_CUT_OVER
INTO oldDataCutOver
FROM MNP_DBP2DBCFX
WHERE MSISDN = rigaLetta.MSISDN;
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
UPDATE MNP_DBP2DBCFX
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
WHERE MSISDN = rigaLetta.MSISDN;
END IF;
END;
END;
END LOOP;
COMMIT;
return;
END estr_RICHIESTA_REC;
-- PROCESSO PORTING TERZE PARTI
procedure estr_RICHIESTA_PORTING(data_inizio IN DATE, data_fine IN DATE) IS
oldDataCutOver date ;
CURSOR SEL_RICHIESTA IS
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
mgr.codice_operatore_recipient AS codice_operatore_recipient,
(SELECT A.ROUTING_NUMBER FROM MNP_OLO A WHERE A.DESC_OLO=MGR.CODICE_OPERATORE_RECIPIENT) AS ROUTING_NUMBER,
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
0 AS flag_lavorato
FROM mnp_gestione_richiesta_porting mgr
where mgr.data_cut_over BETWEEN data_inizio AND data_fine;
BEGIN
FOR rigaLetta IN SEL_RICHIESTA LOOP
BEGIN
INSERT INTO MNP_DBP2DBCFX (
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
FLAG_LAVORATO)
VALUES ( rigaLetta.ID_RICHIESTA
,rigaLetta.MSISDN
,rigaLetta.CODICE_OPERATORE_RECIPIENT
,rigaLetta.ROUTING_NUMBER
,rigaLetta.DATA_CUT_OVER
,rigaLetta.DATA_ESTRAZIONE
,rigaLetta.FLAG_LAVORATO
);
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
BEGIN
SELECT DATA_CUT_OVER
INTO oldDataCutOver
FROM MNP_DBP2DBCFX
WHERE MSISDN = rigaLetta.MSISDN;
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
UPDATE MNP_DBP2DBCFX
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
WHERE MSISDN = rigaLetta.MSISDN;
END IF;
END;
END;
END LOOP;
COMMIT;
return;
END estr_RICHIESTA_PORTING;
-- PROCESSO CESSAZIONI PORTING
procedure estr_RICH_CESS_PORT(data_inizio IN DATE, data_fine IN DATE) IS
oldDataCutOver date ;
CURSOR SEL_RICHIESTA IS
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
o.desc_olo AS codice_operatore_recipient,
o.ROUTING_NUMBER AS routing_number,
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
0 AS flag_lavorato
FROM mnp_gestione_rich_CESS_PORT mgr, mnp_olo o
where mgr.data_cut_over BETWEEN data_inizio AND data_fine
AND (mgr.STATO='4' OR
(mgr.stato='2' AND NOT EXISTS (SELECT 1 FROM MNP_OLO MO, MNP_OLO_PREFISSI MOP
WHERE MO.DESC_OLO IN('TIMT','TIMG')
AND MOP.COD_OLO=MO.COD_OLO
AND ( MOP.PREFIX=substr(mgr.MSISDN,3,3) OR MOP.PREFIX=substr(mgr.MSISDN,3,4) )
) )
)
AND o.DESC_OLO=mgr.CODICE_OPERATORE_RECIPIENT;
BEGIN
FOR rigaLetta IN SEL_RICHIESTA LOOP
BEGIN
INSERT INTO MNP_DBP2DBCFX (
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
FLAG_LAVORATO)
VALUES ( rigaLetta.ID_RICHIESTA
,rigaLetta.MSISDN
,rigaLetta.CODICE_OPERATORE_RECIPIENT
,rigaLetta.ROUTING_NUMBER
,rigaLetta.DATA_CUT_OVER
,rigaLetta.DATA_ESTRAZIONE
,rigaLetta.FLAG_LAVORATO
);
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
BEGIN
SELECT DATA_CUT_OVER
INTO oldDataCutOver
FROM MNP_DBP2DBCFX
WHERE MSISDN = rigaLetta.MSISDN;
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
UPDATE MNP_DBP2DBCFX
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
WHERE MSISDN = rigaLetta.MSISDN;
END IF;
END;
END;
END LOOP;
COMMIT;
return;
END estr_RICH_CESS_PORT;
-- PROCESSO CESSAZIONI
procedure estr_RICHIESTA_CESS(data_inizio IN DATE, data_fine IN DATE) IS
oldDataCutOver date ;
CURSOR SEL_RICHIESTA IS
SELECT mgr.id_richiesta AS id_richiesta, NVL (mgr.msisdn, '') AS msisdn,
o.desc_olo AS codice_operatore_recipient,
o.ROUTING_NUMBER AS routing_number,
mgr.data_cut_over AS data_cut_over, SYSDATE AS data_estrazione,
0 AS flag_lavorato
FROM mnp_gestione_richiesta_CESS mgr, mnp_olo o , MNP_OLO_PREFISSI MOP, mnp_olo mo
where mgr.data_cut_over BETWEEN data_inizio AND data_fine
AND o.DESC_OLO=mgr.CODICE_OPERATORE_RECIPIENT
and ( MOP.PREFIX=substr(mgr.MSISDN,3,3) OR MOP.PREFIX=substr(mgr.MSISDN,3,4) )
and mo.COD_OLO=mop.cod_olo;
BEGIN
FOR rigaLetta IN SEL_RICHIESTA LOOP
BEGIN
INSERT INTO MNP_DBP2DBCFX (
ID_RICHIESTA, MSISDN, CODICE_OPERATORE_RECIPIENT,
ROUTING_NUMBER, DATA_CUT_OVER, DATA_ESTRAZIONE,
FLAG_LAVORATO)
VALUES ( rigaLetta.ID_RICHIESTA
,rigaLetta.MSISDN
,rigaLetta.CODICE_OPERATORE_RECIPIENT
,rigaLetta.ROUTING_NUMBER
,rigaLetta.DATA_CUT_OVER
,rigaLetta.DATA_ESTRAZIONE
,rigaLetta.FLAG_LAVORATO
);
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
BEGIN
SELECT DATA_CUT_OVER
INTO oldDataCutOver
FROM MNP_DBP2DBCFX
WHERE MSISDN = rigaLetta.MSISDN;
IF rigaLetta.DATA_CUT_OVER >= oldDataCutOver THEN
UPDATE MNP_DBP2DBCFX
SET ID_RICHIESTA=rigaLetta.ID_RICHIESTA
,CODICE_OPERATORE_RECIPIENT = rigaLetta.CODICE_OPERATORE_RECIPIENT
,ROUTING_NUMBER = rigaLetta.ROUTING_NUMBER
,DATA_CUT_OVER = rigaLetta.DATA_CUT_OVER
,DATA_ESTRAZIONE = rigaLetta.DATA_ESTRAZIONE
,FLAG_LAVORATO = rigaLetta.FLAG_LAVORATO
WHERE MSISDN = rigaLetta.MSISDN;
END IF;
END;
END;
END LOOP;
COMMIT;
return;
END estr_RICHIESTA_CESS;
END PKG_DBP;
/

View File

@@ -0,0 +1,3 @@
UPDATE MNP_OLO
SET ROUTING_NUMBER='362' WHERE DESC_OLO='TIMG';
COMMIT;