First Commit - Source Code from Reply
This commit is contained in:
159
dbcmnpsrc/FE/mnpapp/script/sql/infasamento_var_cess_olo.sql
Normal file
159
dbcmnpsrc/FE/mnpapp/script/sql/infasamento_var_cess_olo.sql
Normal file
@@ -0,0 +1,159 @@
|
||||
DECLARE
|
||||
|
||||
V_DATA_CURR DATE;
|
||||
V_DATA_MAX date;
|
||||
V_RECIPIENT_NEW varchar2(10);
|
||||
|
||||
BEGIN
|
||||
-- INTEGRAZIONE CON I DONOR E I REC_VIRT TRA OTTOBRE ED APRILE
|
||||
FOR R_INTEGRAZIONE_VAR IN
|
||||
( SELECT 'V' TIPO_RECORDO, SUBSTR(R.MSISDN, 3) MSISDN, R.DATA_CUT_OVER_EFF, R.CODICE_OPERATORE_REC_EFF RECIPIENT_NEW
|
||||
FROM MNP_GESTIONE_RICHIESTA R
|
||||
WHERE (R.MSISDN, R.DATA_CUT_OVER_EFF) IN
|
||||
( SELECT R1.MSISDN, MAX(R1.DATA_CUT_OVER_EFF)
|
||||
FROM MNP_GESTIONE_RICHIESTA R1
|
||||
WHERE R1.DATA_CUT_OVER_EFF BETWEEN TO_DATE('01102012','DDMMYYYY') AND TO_DATE('12042013','DDMMYYYY')
|
||||
AND R1.STATO NOT IN (22,12,10,4)
|
||||
AND R1.TIPO_CLIENTE = 'CO'
|
||||
GROUP BY R1.MSISDN
|
||||
)
|
||||
UNION
|
||||
SELECT 'V' TIPO_RECORDO, SUBSTR(RV.MSISDN, 3) MSISDN, RV.DATA_CUT_OVER_EFF, RV.CODICE_OPERATORE_RECIPIENT RECIPIENT_NEW
|
||||
FROM MNP_GEST_RICH_REC_VIRT RV
|
||||
WHERE (RV.MSISDN, RV.DATA_CUT_OVER_EFF) IN
|
||||
( SELECT RV1.MSISDN, MAX(RV1.DATA_CUT_OVER_EFF)
|
||||
FROM MNP_GEST_RICH_REC_VIRT RV1
|
||||
WHERE RV1.DATA_CUT_OVER_EFF BETWEEN TO_DATE('01102012','DDMMYYYY') AND TO_DATE('12042013','DDMMYYYY')
|
||||
AND RV1.STATO NOT IN (7,9)
|
||||
AND RV1.TIPO_CLIENTE = 'CO'
|
||||
GROUP BY RV1.MSISDN
|
||||
)
|
||||
)
|
||||
LOOP
|
||||
-- INSERIMENTO IN TABELLA
|
||||
BEGIN
|
||||
|
||||
INSERT INTO MNP_DBC_VARIAZIONE_OLO (tipo_record, num_tel, data, recipient_new)
|
||||
VALUES
|
||||
(R_INTEGRAZIONE_VAR.TIPO_RECORDO, R_INTEGRAZIONE_VAR.MSISDN,
|
||||
R_INTEGRAZIONE_VAR.DATA_CUT_OVER_EFF,R_INTEGRAZIONE_VAR.RECIPIENT_NEW);
|
||||
|
||||
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
|
||||
|
||||
SELECT DATA
|
||||
INTO V_DATA_CURR
|
||||
FROM MNP_DBC_VARIAZIONE_OLO
|
||||
WHERE NUM_TEL = R_INTEGRAZIONE_VAR.MSISDN;
|
||||
|
||||
IF V_DATA_CURR < R_INTEGRAZIONE_VAR.DATA_CUT_OVER_EFF THEN
|
||||
|
||||
UPDATE MNP_DBC_VARIAZIONE_OLO
|
||||
SET DATA = R_INTEGRAZIONE_VAR.DATA_CUT_OVER_EFF,
|
||||
RECIPIENT_NEW = R_INTEGRAZIONE_VAR.RECIPIENT_NEW
|
||||
WHERE NUM_TEL = R_INTEGRAZIONE_VAR.MSISDN;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
|
||||
END LOOP;
|
||||
--
|
||||
|
||||
-- AGGIORNAMENTO DEI CAMPI DATA E RECIPIENT_NEW VERIFICANDO LA PRESENZA DI PORTING TERZE PARTI O RECIPIENT TIM
|
||||
FOR R_VAR_MSISDN IN
|
||||
( SELECT * FROM MNP_DBC_VARIAZIONE_OLO WHERE LAVORATO IS NULL )
|
||||
LOOP
|
||||
|
||||
BEGIN
|
||||
SELECT *
|
||||
INTO V_DATA_MAX, V_RECIPIENT_NEW
|
||||
FROM
|
||||
( SELECT q.*
|
||||
FROM
|
||||
( SELECT P.DATA_CUT_OVER DATA, P.CODICE_OPERATORE_RECIPIENT REC_NEW
|
||||
FROM MNP_GESTIONE_RICHIESTA_PORTING P
|
||||
WHERE (P.MSISDN, P.DATA_CUT_OVER) IN
|
||||
( SELECT MSISDN, MAX(P1.DATA_CUT_OVER)
|
||||
FROM MNP_GESTIONE_RICHIESTA_PORTING P1
|
||||
WHERE P1.STATO = 6
|
||||
AND P1.DATA_CUT_OVER BETWEEN TO_DATE('01102012','DDMMYYYY') AND TO_DATE('12042013','DDMMYYYY')
|
||||
AND P1.MSISDN = '39'||R_VAR_MSISDN.NUM_TEL
|
||||
GROUP BY P1.MSISDN
|
||||
)
|
||||
UNION
|
||||
SELECT R.DATA_CUT_OVER_EFF DATA, R.CODICE_OPERATORE_REC_EFF REC_NEW
|
||||
FROM MNP_GESTIONE_RICHIESTA_REC R
|
||||
WHERE (R.MSISDN, R.DATA_CUT_OVER_EFF) IN
|
||||
( SELECT R1.MSISDN, MAX(R1.DATA_CUT_OVER_EFF)
|
||||
FROM MNP_GESTIONE_RICHIESTA_REC R1
|
||||
WHERE R1.DATA_CUT_OVER_EFF BETWEEN TO_DATE('01102012','DDMMYYYY') AND TO_DATE('12042013','DDMMYYYY')
|
||||
AND R1.STATO = 12
|
||||
AND R1.TIPO_CLIENTE = 'CO'
|
||||
AND R1.MSISDN = '39'||R_VAR_MSISDN.NUM_TEL
|
||||
GROUP BY R1.MSISDN
|
||||
)
|
||||
UNION
|
||||
SELECT DV.DATA_CUT_OVER_EFF DATA, DV.CODICE_OPERATORE_RECIPIENT REC_NEW
|
||||
FROM MNP_GEST_RICH_DONOR_VIRT DV
|
||||
WHERE (DV.MSISDN, DV.DATA_CUT_OVER_EFF) IN
|
||||
( SELECT DV1.MSISDN, MAX(DV1.DATA_CUT_OVER_EFF)
|
||||
FROM MNP_GEST_RICH_DONOR_VIRT DV1
|
||||
WHERE DV1.DATA_CUT_OVER_EFF BETWEEN TO_DATE('01102012','DDMMYYYY') AND TO_DATE('12042013','DDMMYYYY')
|
||||
AND DV1.STATO = 11
|
||||
AND DV1.TIPO_CLIENTE = 'CO'
|
||||
AND DV1.MSISDN = '39'||R_VAR_MSISDN.NUM_TEL
|
||||
GROUP BY DV1.MSISDN
|
||||
)
|
||||
) q
|
||||
ORDER BY q.data desc)
|
||||
WHERE rownum <2;
|
||||
|
||||
UPDATE MNP_DBC_VARIAZIONE_OLO
|
||||
SET DATA = V_DATA_MAX,
|
||||
RECIPIENT_NEW = V_RECIPIENT_NEW,
|
||||
LAVORATO = 1
|
||||
WHERE NUM_TEL = R_VAR_MSISDN.NUM_TEL;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||||
V_DATA_MAX := NULL;
|
||||
V_RECIPIENT_NEW := NULL;
|
||||
--
|
||||
UPDATE MNP_DBC_VARIAZIONE_OLO
|
||||
SET LAVORATO = 1
|
||||
WHERE NUM_TEL = R_VAR_MSISDN.NUM_TEL;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
TRUNCATE TABLE MNP_DBC_CESSAZIONE_OLO;
|
||||
|
||||
INSERT INTO MNP_DBC_CESSAZIONE_OLO
|
||||
SELECT 'C', SUBSTR(CP.MSISDN, 3), CP.DATA_CUT_OVER
|
||||
FROM MNP_GESTIONE_RICH_CESS_PORT CP, MNP_STORICO_CESS_PORTING SCP
|
||||
WHERE CP.ID_RICHIESTA = SCP.ID_RICHIESTA
|
||||
AND SCP.STATO_A = 2
|
||||
AND SCP.DATA_LAVORAZIONE BETWEEN TO_DATE('01102012', 'DDMMYYYY') AND TO_DATE('12042013', 'DDMMYYYY')
|
||||
UNION
|
||||
SELECT 'C', SUBSTR(C.MSISDN, 3), C.DATA_CUT_OVER
|
||||
FROM MNP_GESTIONE_RICHIESTA_CESS C, MNP_STORICO_CESS SC
|
||||
WHERE C.ID_RICHIESTA = SC.ID_RICHIESTA
|
||||
AND SC.STATO_A = 3
|
||||
AND SC.DATA_LAVORAZIONE BETWEEN TO_DATE('01102012', 'DDMMYYYY') AND TO_DATE('12042013', 'DDMMYYYY');
|
||||
|
||||
COMMIT;
|
||||
|
||||
DELETE MNP_DBC_VARIAZIONE_OLO
|
||||
WHERE NUM_TEL IN
|
||||
( SELECT NUM_TEL
|
||||
FROM MNP_DBC_CESSAZIONE_OLO
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user