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,111 @@
create or replace procedure P_REPORT_MONITORAGGIORECIPIENT(p_mese_comp varchar2) is
-- parametro in ingresso nel formato mm/yyyy
v_ora_inizio number;
v_ora_fine number;
begin
-- estrazione fascia oraria per inserimento richiesta
select to_number(replace(inizio,':')), to_number(replace(fine,':'))
into v_ora_inizio, v_ora_fine
from mnp.MNP_FASCIA_ORARIA_MONITOR_REC;
-- popolamento tabella
insert into MNP_DW_REPORT_MONITORAGGIO_REC
(mese_comp, tipo_giorno_inserimento, fascia_oraria_richiesta, fascia_oraria_invio, tipo_cliente, numero_richieste)
select p_mese_comp, tipo_giorno, tipologia, tipologia_invio, tipo_cliente, count(*) from (
select rep.*,
case
when to_char(DATA_RICHIESTA, 'HH24miss')<=v_ora_inizio then '1'
when to_char(DATA_RICHIESTA, 'HH24miss')>v_ora_inizio and to_char(DATA_RICHIESTA, 'HH24miss')<= v_ora_fine then '2'
when to_char(DATA_RICHIESTA, 'HH24miss')>v_ora_fine then '3'
end tipologia,
DECODE(DWH.FUN_GIORNI_LAVORATIVI(data_invio, data_richiesta), 0, 0, 1, 1, 2) tipologia_invio
from (SELECT ric."ID_RICHIESTA" ID_RICHIESTA,
NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE") DATA_RICHIESTA,
ric."COD_OP_DON" COD_OP_DON,
xml_out.data_invio data_invio,
rich_rec.tipo_cliente tipo_cliente,
d.tip_gio tipo_giorno
FROM (SELECT msp.id_richiesta id_richiesta,
msp.data_richiesta data_richiesta,
msp.data_ricezione data_ricezione,
msp.codice_operatore_donating cod_op_don
FROM mnp.mnp_msp_in_rec msp
WHERE msp.progetto_ad_hoc = 'N'
UNION
SELECT msc.id_richiesta id_richiesta,
msc.data_richiesta data_richiesta,
msc.data_ricezione data_ricezione,
msc.codice_operatore_donating cod_op_don
FROM mnp.mnp_msc_in_rec msc
WHERE msc.progetto_ad_hoc = 'N'
UNION
SELECT bit.id_richiesta id_richiesta,
NULL data_richiesta, -- DATA_RICHIESTA NON CONTENENTE ORE:MI:SS
bit.data_ricezione_file data_ricezione,
bit.donating_cod_op cod_op_don
FROM mnp.mnp_bit_in_rec bit
WHERE bit.progetto_ad_hoc IS null) ric,
mnp.mnp_xml_out xml_out,
mnp.mnp_xml_richiesta_out richieste_out,
mnp.mnp_gestione_richiesta_rec rich_rec,
MNP.S_DIM_TEMPO d
WHERE xml_out.nome_file = richieste_out.nome_file
AND xml_out.tipo_file = 1
AND richieste_out.id_richiesta = ric.id_richiesta
AND ric.id_richiesta = rich_rec.id_richiesta
AND ric.cod_op_don IN
( SELECT id_operatore
FROM mnp.mnp_anagrafica_operatori
WHERE tipo_operatore = 'RETE')
AND d.data = trunc(NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE"))
UNION -- Donor Virtuale
SELECT ric."ID_RICHIESTA" ID_RICHIESTA,
NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE") DATA_RICHIESTA,
ric."COD_OP_DON" COD_OP_DON,
not_don_out.data_invio data_invio,
rich_don_virt.tipo_cliente tipo_cliente,
d.tip_gio tipo_giorno
FROM (SELECT msp.id_richiesta id_richiesta,
msp.data_richiesta data_richiesta,
msp.data_ricezione data_ricezione,
msp.codice_operatore_donating cod_op_don
FROM mnp.mnp_msp_in_rec msp
WHERE msp.progetto_ad_hoc = 'N'
UNION
SELECT msc.id_richiesta id_richiesta,
msc.data_richiesta data_richiesta,
msc.data_ricezione data_ricezione,
msc.codice_operatore_donating cod_op_don
FROM mnp.mnp_msc_in_rec msc
WHERE msc.progetto_ad_hoc = 'N'
UNION
SELECT bit.id_richiesta id_richiesta,
NULL data_richiesta, -- DATA_RICHIESTA NON CONTENENTE ORE:MI:SS
bit.data_ricezione_file data_ricezione,
bit.donating_cod_op cod_op_don
FROM mnp.mnp_bit_in_rec bit
WHERE bit.progetto_ad_hoc IS null) ric,
mnp.mnp_gest_rich_donor_virt rich_don_virt,
mnp.mnp_mvno_notifica_don_out not_don_out,
MNP.S_DIM_TEMPO d
WHERE not_don_out.id_richiesta_dbc = ric.id_richiesta
AND not_don_out.tipo_evento = '01'
AND ric.id_richiesta = rich_don_virt.id_richiesta
AND ric.cod_op_don IN
(SELECT id_operatore
FROM mnp.mnp_anagrafica_operatori
WHERE tipo_operatore = 'VIRT'
AND gestore_aom = 'TIMG')
AND d.data = trunc(NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE"))) rep
where data_richiesta between to_date('01/'||p_mese_comp,'dd/mm/yyyy') and last_day(to_date('01/'||p_mese_comp,'dd/mm/yyyy'))
)
group by tipo_giorno, tipologia, tipologia_invio, tipo_cliente;
commit;
exception when others then
DBMS_OUTPUT.put_line ('Errore nel popolamento della tabella MNP_DW_REPORT_MONITORAGGIO_REC ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
end P_REPORT_MONITORAGGIORECIPIENT;
/